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

Legend:
Removed from v.505  
changed lines
  Added in v.569

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26