/[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 490 by jonathan, Mon Mar 10 10:44:24 2003 UTC revision 567 by jonathan, Wed Mar 26 11:51:01 2003 UTC
# Line 1  Line 1 
1    2003-03-26  Jonathan Coles   <[email protected]>
2    
3            * Thuban/UI/legend.py: Removed unnecessary LegendDialog class.
4            (LegendPanel): Removed _OnDock()/_OnUnDock() methods which are
5            now part of DockableWindow.
6            (LegendPanel.DoOnSelChanged): Select the current layer in the
7            map.
8            (LegendTree._OnSelChanged): Call LegendPanel.DoOnSelChanged()
9            with the selected layer and/or group.
10    
11    2003-03-26  Jonathan Coles   <[email protected]>
12    
13            This putback contains the code for dockable windows. There is
14            no support in wxWindows as of this date for windows that can
15            attach themselves to other windows.
16    
17            The current model contains a DockableWindow which has a parent
18            window for when it is detached and a dock window that it puts
19            its contents in when it is docked. The contents of a DockableWindow
20            must be a DockPanel. DockPanel itself derives from wxPanel.
21    
22            * Thuban/Model/layer.py (Layer.ClassChanged): Send a LAYER_CHANGED
23            message, not a LAYER_LEGEND_CHANGED message.
24    
25            * Thuban/Model/map.py (Map): Forward LAYER_CHANGED messages.
26    
27            * Thuban/UI/classifier.py (Classifier.__init__): Use wxADJUST_MINSIZE
28            as one of the style properties for the fieldTypeText item to
29            be sure that its size is correct when the text changes.
30    
31            * Thuban/UI/dock.py: New. Classes for the DockPanel and
32            DockableWindow.
33    
34            * Thuban/UI/legend.py: Added some more buttons and made the
35            LegendPanel a DockPanel.
36    
37            * Thuban/UI/mainwindow.py: Added sash windows to the main window
38            and supporting functions for manipulating the sashes.
39            (MainWindow.ShowLegend): Create a DockableWindow with the
40            LegendPanel as the contents.
41    
42            * Thuban/UI/messages.py: Added DOCKABLE_* messages
43    
44            * Thuban/UI/view.py (MapCanves.SetMap): Listen for LAYER_CHANGED,
45            not LAYER_LEGEND_CHANGED, messages.
46    
47    2003-03-25  Jonathan Coles   <[email protected]>
48    
49            * setup.py: Added custom script bdist_rpm_build_script so that
50            when the rpm is built the path to wx-config is correct.
51    
52            * setup.cfg: Added line saying to use the custom build script
53    
54    2003-03-20  Jonathan Coles   <[email protected]>
55    
56            Initial implementation of the Legend.
57    
58            * Thuban/UI/legend.py: New. Creates a window that shows the map's
59            Legend information and allows the user to add/modify classifications
60            and how the layers are drawn on the map.
61    
62            * setup.py: New command 'build_docs' which currently uses
63            happydoc to generate html documentation for Thuban.
64    
65            * Thuban/Model/classification.py (ClassGroup.GetDisplayText): New.
66            Returns a string which is appropriately describes the group.
67    
68            * Thuban/Model/layer.py (Layer.SetClassification): Generate a
69            LAYER_CHANGED event instead of a LAYER_LEGEND_CHANGED event.
70    
71            * Thuban/Model/map.py (Map): Rename messages and use new, more
72            specific, messages.
73    
74            * Thuban/Model/messages.py: New message to indicate that a layer's
75            data has changed (LAYER_CHANGED). New map messages to indicate
76            when layers have been added/removed/changed or if the stacking order
77            of the layers has changed.
78    
79            * Thuban/Model/session.py: Rename and use new messages.
80    
81            * Thuban/UI/classifier.py: Remember if any changes have actually
82            been applied so that if the dialog is cancelled without an application
83            of changes we don't have to set a new classification.
84            (ClassDataPreviewer): Pulled out the window specific code and put it
85            ClassDataPreviewWindow. ClassDataPreviewer can then be used to draw
86            symbols on any DC.
87            
88            * Thuban/UI/mainwindow.py: New code to open the legend.
89    
90            * Thuban/UI/view.py: Use new message names.
91    
92    2003-03-19  Jonathan Coles   <[email protected]>
93    
94            * Thuban/UI/main.py (verify_versions): New. Checks the versions
95            of Python, wxPython, and some other libraries.
96    
97            * extensions/thuban/wxproj.cpp (check_version): Checks the given
98            version against what wxproj was compiled with.
99            (check_version_gtk): If wxproj was compiled with gtk then check
100            the given version against the version of the gtk library
101            currently being used.
102    
103    2003-03-14  Bernhard Herzog  <[email protected]>
104    
105            * test/test_command.py: Run the tests when the module is run as a
106            script
107    
108    2003-03-14  Bernhard Herzog  <[email protected]>
109    
110            Implement selection of multiple selected shapes in the same layer:
111    
112            - Introduce a new class to hold the selection. This basically
113              replaces the interactor which was nothing more than the
114              selection anyway. A major difference is of course that the new
115              selection class supports multiple selected shapes in one layer
116            
117            - Move the object that represents the selection from the
118              application to the canvas. The canvas is a better place than the
119              application because the selection represents which shapes and
120              layer of the map displayed by the canvas are selected and
121              affects how the map is drawn.
122    
123            - Make the selection and its messages publicly available through
124              the mainwindow.
125    
126            - The non-modal dialogs do not get a reference to the interactor
127              anymore as they can simply refer to their parent, the
128              mainwindow, for the what the interactor had to offer.
129    
130            * Thuban/UI/selection.py: New module with a class to represent the
131            selection.
132    
133            * Thuban/UI/messages.py (SELECTED_TABLE, SELECTED_MAP): Remove
134            these unused messages
135    
136            * Thuban/UI/application.py (ThubanApplication.OnInit)
137            (ThubanApplication.OnExit, ThubanApplication.SetSession): The
138            interactor is gone now.
139            (ThubanApplication.CreateMainWindow): There is no interactor
140            anymore so we pass None as the interactor argument for now for
141            compatibility.
142    
143            * Thuban/UI/view.py (MapCanvas.delegated_messages)
144            (MapCanvas.Subscribe, MapCanvas.Unsubscribe): In Subscribe and
145            Unsubscribe, delegate messages according to the delegated_messages
146            class variable.
147            (MapCanvas.__getattr__, MapCanvas.delegated_methods): Get some
148            attributes from instance variables as described with the
149            delegated_methods class variable.
150            (MapCanvas.__init__): New instance variable selection holding the
151            current selection
152            (MapCanvas.do_redraw): Deal with multiple selected shapes. Simply
153            pass them on to the renderer
154            (MapCanvas.SetMap): Clear the selection when a different map is
155            selected.
156            (MapCanvas.shape_selected): Simple force a complete redraw. The
157            selection class now takes care of only issueing SHAPES_SELECTED
158            messages when the set of selected shapes actually does change.
159            (MapCanvas.SelectShapeAt): The selection is now managed in
160            self.selection
161    
162            * Thuban/UI/mainwindow.py (MainWindow.delegated_messages)
163            (MainWindow.Subscribe, MainWindow.Unsubscribe): In Subscribe and
164            Unsubscribe, delegate messages according to the delegated_messages
165            class variable.
166            (MainWindow.delegated_methods, MainWindow.__getattr__): Get some
167            attributes from instance variables as described with the
168            delegated_methods class variable.
169            (MainWindow.__init__): The interactor as ivar is gone. The
170            parameter is still there for compatibility. The selection messages
171            now come from the canvas.
172            (MainWindow.current_layer, MainWindow.has_selected_layer):
173            Delegate to the the canvas.
174            (MainWindow.LayerShowTable, MainWindow.Classify)
175            (MainWindow.identify_view_on_demand): The dialogs don't need the
176            interactor parameter anymore.
177    
178            * Thuban/UI/tableview.py (TableFrame.__init__)
179            (LayerTableFrame.__init__, LayerTableFrame.OnClose)
180            (LayerTableFrame.row_selected): The interactor is gone. It's job
181            from the dialog's point of view is now done by the mainwindow,
182            i.e. the parent. Subscribe to SHAPES_SELECTED instead
183            of SELECTED_SHAPE
184            
185            * Thuban/UI/dialogs.py (NonModalDialog.__init__): The interactor
186            is gone. It's job from the dialog's point of view is now done by
187            the mainwindow, i.e. the parent.
188            
189            * Thuban/UI/classifier.py (Classifier.__init__): The interactor is
190            gone. It's job from the dialog's point of view is now done by the
191            mainwindow, i.e. the parent.
192    
193            * Thuban/UI/tree.py (SessionTreeView.__init__): The interactor is
194            gone. It's job from the dialog's point of view is now done by the
195            mainwindow, i.e. the parent.
196            (SessionTreeCtrl.__init__): New parameter mainwindow which is
197            stored as self.mainwindow. The mainwindow is need so that the tree
198            can still subscribe to the selection messages.
199            (SessionTreeCtrl.__init__, SessionTreeCtrl.unsubscribe_all)
200            (SessionTreeCtrl.update_tree, SessionTreeCtrl.OnSelChanged): The
201            selection is now accessible through the mainwindow. Subscribe to
202            SHAPES_SELECTED instead of SELECTED_SHAPE
203    
204            * Thuban/UI/identifyview.py (IdentifyView.__init__): Use the
205            SHAPES_SELECTED message now.
206            (IdentifyView.selected_shape): Now subscribed to SHAPES_SELECTED,
207            so deal with multiple shapes
208            (IdentifyView.__init__, IdentifyView.OnClose): The interactor is
209            gone. It's job from the dialog's point of view is now done by the
210            mainwindow, i.e. the parent.
211    
212            * Thuban/UI/controls.py (RecordListCtrl.fill_list): The second
213            parameter is now a list of shape ids.
214            (RecordTable.SetTable): The second parameter is now a list of
215            indices.
216    
217            * Thuban/UI/renderer.py (ScreenRenderer.RenderMap): Rename the
218            selected_shape parameter and ivar to selected_shapes. It's now a
219            list of shape ids.
220            (MapRenderer.draw_label_layer): Deal with multiple selected
221            shapes. Rearrange the code a bit so that the setup and shape type
222            distinctions are only executed once.
223    
224            * test/test_selection.py: Test cases for the selection class
225    
226    2003-03-11  Jonathan Coles   <[email protected]>
227    
228            * Thuban/Model/load.py: Temporary fix so that the xml reader
229            doesn't cause Thuban to crash.
230    
231            * Thuban/Model/layer.py: Handle the cyclic references between
232            a layer and its classification better, and be sure to disconnect
233            the classification from the layer when the layer is destroyed
234            so that we don't maintain a cyclic reference that may not be
235            garbage collected.
236    
237            * Thuban/Model/classification.py: See comment for layer.py.
238    
239    2003-03-12  Jan-Oliver Wagner <[email protected]>
240    
241            * HOWTO-Release: New. Information on the steps for releasing
242            a new version of Thuban.
243    
244    2003-03-11  Jonathan Coles   <[email protected]>
245    
246            * Thuban/UI/classifier.py: Add normal border to SelectPropertiesDialog.
247            Use True instead of true.
248            (Classifier): Should have a single panel in which all the controls lie.
249    
250            * Thuban/UI/proj4dialog.py: Add normal border.
251    
252            * Thuban/UI/tree.py: Fixed problem with bad item images under Windows.
253    
254            * Thuban/UI/mainwindow.py: Use True instead of true.
255    
256            * setup.py: Update some definitions to use wxWindows2.4 files
257    
258            * Data/iceland_sample_class.thuban: Fixed file so that the
259            field_type information is present.
260    
261    2003-03-10  Jonathan Coles   <[email protected]>
262    
263            * Thuban/UI/classifier.py (Classifier.__init__): Make the
264            field type label grow so that when the text changes the
265            size is updated correctly. This may be a wxWindows bug.
266    
267    2003-03-10  Jonathan Coles   <[email protected]>
268    
269            * Thuban/UI/application.py: Changed SESSION_CHANGED to
270            SESSION_REPLACED.
271    
272            * Thuban/UI/classifier.py: Wrap text with _().
273            (ClassGrid.CreateTable): Set dimensions and size hints here,
274            instead of in Reset, so we only set the size once.
275    
276            * Thuban/UI/dialogs.py: Don't need Shutdown(); just use Close()!
277    
278            * Thuban/UI/mainwindow.py (MainWindow.prepare_new_session):
279            Call Close() instead of Shutdown().
280    
281            * Thuban/UI/messages.py: Changed SESSION_CHANGED to SESSION_REPLACED.
282    
283            * Thuban/UI/tree.py: Changed SESSION_CHANGED to SESSION_REPLACED.
284            Go back to using OnClose() instead of Shutdown().
285    
286    2003-03-10  Jonathan Coles   <[email protected]>
287    
288            * Thuban/UI/classifier.py (Classifier): SelectField() needed
289            to know the old field index as well as the new one.
290    
291    2003-03-10  Jonathan Coles   <[email protected]>
292    
293            * Thuban/UI/classifier.py (Classifier): Use __SelectField()
294            to correctly set the table information and call this from
295            __init__ and from _OnFieldSelect so that all the information
296            is up to date when the dialog opens and when a field is changed.
297    
298  2003-03-10  Jonathan Coles   <[email protected]>  2003-03-10  Jonathan Coles   <[email protected]>
299    
300          * Thuban/Model/classification.py (Classification): Don't use          * Thuban/Model/classification.py (Classification): Don't use

Legend:
Removed from v.490  
changed lines
  Added in v.567

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26