/[thuban]/branches/greater-ms3/thuban/ChangeLog
ViewVC logotype

Diff of /branches/greater-ms3/thuban/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 477 by bh, Thu Mar 6 15:03:48 2003 UTC revision 541 by jonathan, Wed Mar 19 16:03:12 2003 UTC
# Line 1  Line 1 
1    2003-03-19  Jonathan Coles   <[email protected]>
2    
3            * Thuban/UI/main.py (verify_versions): New. Checks the versions
4            of Python, wxPython, and some other libraries.
5    
6            * extensions/thuban/wxproj.cpp (check_version): Checks the given
7            version against what wxproj was compiled with.
8            (check_version_gtk): If wxproj was compiled with gtk then check
9            the given version against the version of the gtk library
10            currently being used.
11    
12    2003-03-14  Bernhard Herzog  <[email protected]>
13    
14            * test/test_command.py: Run the tests when the module is run as a
15            script
16    
17    2003-03-14  Bernhard Herzog  <[email protected]>
18    
19            Implement selection of multiple selected shapes in the same layer:
20    
21            - Introduce a new class to hold the selection. This basically
22              replaces the interactor which was nothing more than the
23              selection anyway. A major difference is of course that the new
24              selection class supports multiple selected shapes in one layer
25            
26            - Move the object that represents the selection from the
27              application to the canvas. The canvas is a better place than the
28              application because the selection represents which shapes and
29              layer of the map displayed by the canvas are selected and
30              affects how the map is drawn.
31    
32            - Make the selection and its messages publicly available through
33              the mainwindow.
34    
35            - The non-modal dialogs do not get a reference to the interactor
36              anymore as they can simply refer to their parent, the
37              mainwindow, for the what the interactor had to offer.
38    
39            * Thuban/UI/selection.py: New module with a class to represent the
40            selection.
41    
42            * Thuban/UI/messages.py (SELECTED_TABLE, SELECTED_MAP): Remove
43            these unused messages
44    
45            * Thuban/UI/application.py (ThubanApplication.OnInit)
46            (ThubanApplication.OnExit, ThubanApplication.SetSession): The
47            interactor is gone now.
48            (ThubanApplication.CreateMainWindow): There is no interactor
49            anymore so we pass None as the interactor argument for now for
50            compatibility.
51    
52            * Thuban/UI/view.py (MapCanvas.delegated_messages)
53            (MapCanvas.Subscribe, MapCanvas.Unsubscribe): In Subscribe and
54            Unsubscribe, delegate messages according to the delegated_messages
55            class variable.
56            (MapCanvas.__getattr__, MapCanvas.delegated_methods): Get some
57            attributes from instance variables as described with the
58            delegated_methods class variable.
59            (MapCanvas.__init__): New instance variable selection holding the
60            current selection
61            (MapCanvas.do_redraw): Deal with multiple selected shapes. Simply
62            pass them on to the renderer
63            (MapCanvas.SetMap): Clear the selection when a different map is
64            selected.
65            (MapCanvas.shape_selected): Simple force a complete redraw. The
66            selection class now takes care of only issueing SHAPES_SELECTED
67            messages when the set of selected shapes actually does change.
68            (MapCanvas.SelectShapeAt): The selection is now managed in
69            self.selection
70    
71            * Thuban/UI/mainwindow.py (MainWindow.delegated_messages)
72            (MainWindow.Subscribe, MainWindow.Unsubscribe): In Subscribe and
73            Unsubscribe, delegate messages according to the delegated_messages
74            class variable.
75            (MainWindow.delegated_methods, MainWindow.__getattr__): Get some
76            attributes from instance variables as described with the
77            delegated_methods class variable.
78            (MainWindow.__init__): The interactor as ivar is gone. The
79            parameter is still there for compatibility. The selection messages
80            now come from the canvas.
81            (MainWindow.current_layer, MainWindow.has_selected_layer):
82            Delegate to the the canvas.
83            (MainWindow.LayerShowTable, MainWindow.Classify)
84            (MainWindow.identify_view_on_demand): The dialogs don't need the
85            interactor parameter anymore.
86    
87            * Thuban/UI/tableview.py (TableFrame.__init__)
88            (LayerTableFrame.__init__, LayerTableFrame.OnClose)
89            (LayerTableFrame.row_selected): The interactor is gone. It's job
90            from the dialog's point of view is now done by the mainwindow,
91            i.e. the parent. Subscribe to SHAPES_SELECTED instead
92            of SELECTED_SHAPE
93            
94            * Thuban/UI/dialogs.py (NonModalDialog.__init__): The interactor
95            is gone. It's job from the dialog's point of view is now done by
96            the mainwindow, i.e. the parent.
97            
98            * Thuban/UI/classifier.py (Classifier.__init__): The interactor is
99            gone. It's job from the dialog's point of view is now done by the
100            mainwindow, i.e. the parent.
101    
102            * Thuban/UI/tree.py (SessionTreeView.__init__): The interactor is
103            gone. It's job from the dialog's point of view is now done by the
104            mainwindow, i.e. the parent.
105            (SessionTreeCtrl.__init__): New parameter mainwindow which is
106            stored as self.mainwindow. The mainwindow is need so that the tree
107            can still subscribe to the selection messages.
108            (SessionTreeCtrl.__init__, SessionTreeCtrl.unsubscribe_all)
109            (SessionTreeCtrl.update_tree, SessionTreeCtrl.OnSelChanged): The
110            selection is now accessible through the mainwindow. Subscribe to
111            SHAPES_SELECTED instead of SELECTED_SHAPE
112    
113            * Thuban/UI/identifyview.py (IdentifyView.__init__): Use the
114            SHAPES_SELECTED message now.
115            (IdentifyView.selected_shape): Now subscribed to SHAPES_SELECTED,
116            so deal with multiple shapes
117            (IdentifyView.__init__, IdentifyView.OnClose): The interactor is
118            gone. It's job from the dialog's point of view is now done by the
119            mainwindow, i.e. the parent.
120    
121            * Thuban/UI/controls.py (RecordListCtrl.fill_list): The second
122            parameter is now a list of shape ids.
123            (RecordTable.SetTable): The second parameter is now a list of
124            indices.
125    
126            * Thuban/UI/renderer.py (ScreenRenderer.RenderMap): Rename the
127            selected_shape parameter and ivar to selected_shapes. It's now a
128            list of shape ids.
129            (MapRenderer.draw_label_layer): Deal with multiple selected
130            shapes. Rearrange the code a bit so that the setup and shape type
131            distinctions are only executed once.
132    
133            * test/test_selection.py: Test cases for the selection class
134    
135    2003-03-11  Jonathan Coles   <[email protected]>
136    
137            * Thuban/Model/load.py: Temporary fix so that the xml reader
138            doesn't cause Thuban to crash.
139    
140            * Thuban/Model/layer.py: Handle the cyclic references between
141            a layer and its classification better, and be sure to disconnect
142            the classification from the layer when the layer is destroyed
143            so that we don't maintain a cyclic reference that may not be
144            garbage collected.
145    
146            * Thuban/Model/classification.py: See comment for layer.py.
147    
148    2003-03-12  Jan-Oliver Wagner <[email protected]>
149    
150            * HOWTO-Release: New. Information on the steps for releasing
151            a new version of Thuban.
152    
153    2003-03-11  Jonathan Coles   <[email protected]>
154    
155            * Thuban/UI/classifier.py: Add normal border to SelectPropertiesDialog.
156            Use True instead of true.
157            (Classifier): Should have a single panel in which all the controls lie.
158    
159            * Thuban/UI/proj4dialog.py: Add normal border.
160    
161            * Thuban/UI/tree.py: Fixed problem with bad item images under Windows.
162    
163            * Thuban/UI/mainwindow.py: Use True instead of true.
164    
165            * setup.py: Update some definitions to use wxWindows2.4 files
166    
167            * Data/iceland_sample_class.thuban: Fixed file so that the
168            field_type information is present.
169    
170    2003-03-10  Jonathan Coles   <[email protected]>
171    
172            * Thuban/UI/classifier.py (Classifier.__init__): Make the
173            field type label grow so that when the text changes the
174            size is updated correctly. This may be a wxWindows bug.
175    
176    2003-03-10  Jonathan Coles   <[email protected]>
177    
178            * Thuban/UI/application.py: Changed SESSION_CHANGED to
179            SESSION_REPLACED.
180    
181            * Thuban/UI/classifier.py: Wrap text with _().
182            (ClassGrid.CreateTable): Set dimensions and size hints here,
183            instead of in Reset, so we only set the size once.
184    
185            * Thuban/UI/dialogs.py: Don't need Shutdown(); just use Close()!
186    
187            * Thuban/UI/mainwindow.py (MainWindow.prepare_new_session):
188            Call Close() instead of Shutdown().
189    
190            * Thuban/UI/messages.py: Changed SESSION_CHANGED to SESSION_REPLACED.
191    
192            * Thuban/UI/tree.py: Changed SESSION_CHANGED to SESSION_REPLACED.
193            Go back to using OnClose() instead of Shutdown().
194    
195    2003-03-10  Jonathan Coles   <[email protected]>
196    
197            * Thuban/UI/classifier.py (Classifier): SelectField() needed
198            to know the old field index as well as the new one.
199    
200    2003-03-10  Jonathan Coles   <[email protected]>
201    
202            * Thuban/UI/classifier.py (Classifier): Use __SelectField()
203            to correctly set the table information and call this from
204            __init__ and from _OnFieldSelect so that all the information
205            is up to date when the dialog opens and when a field is changed.
206    
207    2003-03-10  Jonathan Coles   <[email protected]>
208    
209            * Thuban/Model/classification.py (Classification): Don't use
210            layer's message function directly, use the ClassChanged() method
211            when then classification changes. SetField/SetFieldType/SetLayer
212            must keep the information about field name and field type in
213            sync when an owning layer is set or removed.
214    
215            * Thuban/Model/layer.py: Added ClassChanged() so that the
216            classification can tell the layer when its data has changed.
217            (Layer.SetClassification): Accepts None as an arguement to
218            remove the current classification and correctly handles
219            adding a new classification.
220    
221            * Thuban/Model/load.py: Comment out print statement
222    
223            * test/test_classification.py, test/test_save.py: New and
224            improved tests.
225    
226    2003-03-07  Jonathan Coles   <[email protected]>
227    
228            * Thuban/Model/classification.py: Implemented __copy__ and
229            __deepcopy__ for ClassGroup* and ClassGroupProperites so
230            they can easily be copied by the classifier dialog.
231            (ClassGroupProperites.__init__): The default line color should
232            have been Color.Black.
233    
234            * Thuban/UI/classifier.py: Setting and Getting table values now
235            uses a consistent set of functions.
236            (Classifier): Now non-modal. Has field type label which changes
237            as the field changes. Keep track of buttons in a list so that
238            we can enable/disable the buttons when the None field is selected.
239            (SelectPropertiesDialog): Add buttons to make the colors transparent.
240    
241            * Thuban/UI/dialogs.py (NonModalDialog.Shutdown): New method which
242            does what OnClose did, but can be called by the application to
243            close a window. Needed when a session changes, and we have to
244            close the classifier windows.
245    
246            * Thuban/UI/mainwindow.py (MainWindow.prepare_new_session):
247            Shuts down open dialogs. Used when a new session is created
248            or a session is opened.
249            (MainWindow.SaveSession): Should only call application.SaveSession()
250            if we don't call SaveSessionAs first.
251            (MainWindow.Classify): Allow different classifier dialogs for
252            different layers.
253    
254            * Thuban/UI/tree.py (SessionTreeView): Remove OnClose and let
255            the parent class handle it. Add Shutdown() to unsubscibe from
256            event notification and call the parent Shutdown(). This was
257            necessary so the application can close the tree window.
258    
259    2003-03-06  Jonathan Coles   <[email protected]>
260    
261            * Thuban/Model/classification.py: Minor documentation changes,
262            Addition of __eq__ and __ne__ methods.
263            (Classification.SetLayer): prevent recursion between this method
264            and Layer.SetClassification().
265    
266            * Thuban/Model/color.py: Addition of __eq__ and __ne__ methods.
267    
268            * Thuban/Model/layer.py (SetClassification): prevent recursion
269            between this method and Classification.SetLayer().
270    
271            * test/test_classification.py, test/test_load.py,
272            test/test_session.py: Fixed and added tests for the classification
273            classes.
274    
275  2003-03-06  Bernhard Herzog  <[email protected]>  2003-03-06  Bernhard Herzog  <[email protected]>
276    
277          * Thuban/UI/classifier.py (ClassGrid.__init__)          * Thuban/UI/classifier.py (ClassGrid.__init__)

Legend:
Removed from v.477  
changed lines
  Added in v.541

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26