Parent Directory
|
Revision Log
Links to HEAD: | (view) (annotate) |
Sticky Revision: |
Remember if any changes have actually been applied so that if the dialog is cancelled without an application of changes we don't have to set a new classification. (ClassDataPreviewer): Pulled out the window specific code and put it ClassDataPreviewWindow. ClassDataPreviewer can then be used to draw symbols on any DC.
Implement multiple selected shapes * Thuban/UI/selection.py: New module with a class to represent the selection. * Thuban/UI/messages.py (SELECTED_TABLE, SELECTED_MAP): Remove these unused messages * Thuban/UI/application.py (ThubanApplication.OnInit) (ThubanApplication.OnExit, ThubanApplication.SetSession): The interactor is gone now. (ThubanApplication.CreateMainWindow): There is no interactor anymore so we pass None as the interactor argument for now for compatibility. * Thuban/UI/view.py (MapCanvas.delegated_messages) (MapCanvas.Subscribe, MapCanvas.Unsubscribe): In Subscribe and Unsubscribe, delegate messages according to the delegated_messages class variable. (MapCanvas.__getattr__, MapCanvas.delegated_methods): Get some attributes from instance variables as described with the delegated_methods class variable. (MapCanvas.__init__): New instance variable selection holding the current selection (MapCanvas.do_redraw): Deal with multiple selected shapes. Simply pass them on to the renderer (MapCanvas.SetMap): Clear the selection when a different map is selected. (MapCanvas.shape_selected): Simple force a complete redraw. The selection class now takes care of only issueing SHAPES_SELECTED messages when the set of selected shapes actually does change. (MapCanvas.SelectShapeAt): The selection is now managed in self.selection * Thuban/UI/mainwindow.py (MainWindow.delegated_messages) (MainWindow.Subscribe, MainWindow.Unsubscribe): In Subscribe and Unsubscribe, delegate messages according to the delegated_messages class variable. (MainWindow.delegated_methods, MainWindow.__getattr__): Get some attributes from instance variables as described with the delegated_methods class variable. (MainWindow.__init__): The interactor as ivar is gone. The parameter is still there for compatibility. The selection messages now come from the canvas. (MainWindow.current_layer, MainWindow.has_selected_layer): Delegate to the the canvas. (MainWindow.LayerShowTable, MainWindow.Classify) (MainWindow.identify_view_on_demand): The dialogs don't need the interactor parameter anymore. * Thuban/UI/tableview.py (TableFrame.__init__) (LayerTableFrame.__init__, LayerTableFrame.OnClose) (LayerTableFrame.row_selected): The interactor is gone. It's job from the dialog's point of view is now done by the mainwindow, i.e. the parent. Subscribe to SHAPES_SELECTED instead of SELECTED_SHAPE * Thuban/UI/dialogs.py (NonModalDialog.__init__): The interactor is gone. It's job from the dialog's point of view is now done by the mainwindow, i.e. the parent. * Thuban/UI/classifier.py (Classifier.__init__): The interactor is gone. It's job from the dialog's point of view is now done by the mainwindow, i.e. the parent. * Thuban/UI/tree.py (SessionTreeView.__init__): The interactor is gone. It's job from the dialog's point of view is now done by the mainwindow, i.e. the parent. (SessionTreeCtrl.__init__): New parameter mainwindow which is stored as self.mainwindow. The mainwindow is need so that the tree can still subscribe to the selection messages. (SessionTreeCtrl.__init__, SessionTreeCtrl.unsubscribe_all) (SessionTreeCtrl.update_tree, SessionTreeCtrl.OnSelChanged): The selection is now accessible through the mainwindow. Subscribe to SHAPES_SELECTED instead of SELECTED_SHAPE * Thuban/UI/identifyview.py (IdentifyView.__init__): Use the SHAPES_SELECTED message now. (IdentifyView.selected_shape): Now subscribed to SHAPES_SELECTED, so deal with multiple shapes (IdentifyView.__init__, IdentifyView.OnClose): The interactor is gone. It's job from the dialog's point of view is now done by the mainwindow, i.e. the parent. * Thuban/UI/renderer.py (ScreenRenderer.RenderMap): Rename the selected_shape parameter and ivar to selected_shapes. It's now a list of shape ids. (MapRenderer.draw_label_layer): Deal with multiple selected shapes. Rearrange the code a bit so that the setup and shape type distinctions are only executed once.
Undo last changes so that we now need wxWindows2.4
Quick fix so that the ClassGrid works on wxWindows 2.3.
More work with the classifier panel.
Working to get wxPanel to behave correctly.
Add normal border to SelectPropertiesDialog.
(Classifier.__init__): Make the field type label grow so that when the text changes the size is updated correctly. This may be a wxWindows bug.
Wrap text with _(). (ClassGrid.CreateTable): Set dimensions and size hints here, instead of in Reset, so we only set the size once.
(Classifier): SelectField() needed to know the old field index as well as the new one.
(Classifier): Use __SelectField() to correctly set the table information and call this from __init__ and from _OnFieldSelect so that all the information is up to date when the dialog opens and when a field is changed.
removed print statement
Setting and Getting table values now uses a consistent set of functions. (Classifier): Now non-modal. Has field type label which changes as the field changes. Keep track of buttons in a list so that we can enable/disable the buttons when the None field is selected. (SelectPropertiesDialog): Add buttons to make the colors transparent.
(ClassGrid.__init__) (ClassGrid.CreateTable): Move the SetSelectionMode call to CreateTable because otherwise it triggers an assertion in wxPython/wxGTK 2.4.
import FIELDTYPE constants from table
Added class documentation. Fixed RTbug #1713, #1714. Added Move[Up|Down] buttons. Store just the groups in the table and generate the other column information when it is requested. Add "None" field to pull-down to select no classification.
(ClassGrid.__init__): Set the table before the selection mode. Doing it the other way round triggers an assertion in wxWindows.
(ClassGrid): Moved OnCellDClick() from Classifier to ClassGrid. Added support for removing selected rows, which including code for keeping track of when cells are selected, and deselected. (ClassTable): Support for added/removing rows. Fixed a problem with __ParseInput whereby it would not allow strings (only numbers) to be entered. (Classifier): Added button and supporting code for removing selected rows.
Fix to create a tuple with a single value instead of simply returning the value.
Changes to use new Classification and Group functions.
(SelectPropertiesDialog): Support for changing the stroke and fill colors and previewing the changes.
(ClassGrid): New class to represent a custom grid. (ClassTable): Support for editing Values and Labels and for changing what type (point or range) of data is stored in each property based on how the user enters the data. (Classifier): Support for saving the new classifications and launching the dialog to edit a property. (SelectPropertiesDialog): New class for editing the visual properties of a classification (stroke color, width, and fill color) (ClassPreviewer): Took the Draw method from ClassRenderer and made most of it into this new class. Intend to use this class in the SelectPropertiesDialog for previewing changes.
typo fix
* Thuban/UI/classifier.py (ClassTable): Didn't need to hang onto the clinfo parameter, so removed the deepcopy().
* Thuban/UI/classifier.py (ClassRenderer): New class to draw the classifications in the dialog box's table. (Classifier): Modified to use the ClassRenderer class.
added i18n wrapper _() to text
fixed a missed conflict
fix i18n merge conflict
Replace user string by _() for i18n.
Dialog box for modifying classification information
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
[email protected] | ViewVC Help |
Powered by ViewVC 1.1.26 |