/[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 600 by bh, Thu Apr 3 11:37:26 2003 UTC revision 705 by bh, Tue Apr 22 16:55:58 2003 UTC
# Line 1  Line 1 
1    2003-04-22  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/UI/mainwindow.py: Remove some unused imports and global
4            constants
5    
6            * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape)
7            (IdentifyGridCtrl.selected_shape): Use table, not shapetable.
8    
9    2003-04-17  Bernhard Herzog  <[email protected]>
10    
11            * Thuban/Model/layer.py: Don't import LAYER_LEGEND_CHANGED.
12            (Layer): Update doc-string since LAYER_LEGEND_CHANGED is not used
13            anymore.
14            (Layer.BoundingBox, Layer.GetFieldType, Layer.NumShapes)
15            (Layer.ShapeType, Layer.Shape): No need to call
16            self.open_shapefile since it's always called in __init__
17    
18            * Thuban/UI/application.py (ThubanApplication.MainLoop): Removed.
19            In wxPython 2.4 there's no need to extend MainLoop anymore since
20            wxPython itself makes sure OnExit is called.
21    
22    2003-04-16  Jonathan Coles   <[email protected]>
23    
24            Initial putback of projection management code. Includes new
25            classes to read and write projection files. The current load
26            and save classes were abstracted a bit so they could be reused.
27            The Projection class was extended to provide new methods and
28            have a name.
29    
30            * Thuban/Model/load.py (XMLProcessor): New. Contains all the
31            general XML reading methods that were part of ProcessSession.
32    
33            * Thuban/Model/proj.py (Projection.__init__): Accepts an optional
34            name.
35            (ProjFile): New. Represents a file that contains projection
36            information.
37    
38            * Thuban/Model/resource.py: New. Contains general utilities
39            for read and writing projection files.
40    
41            * Thuban/Model/save.py (XMLSaver): New. Contains all the
42            general XML writing methods that were part of SessionSaver.
43            (SessionSaver): Renamed from Saver.
44    
45            * test/test_proj.py: New test cases for the projection
46            file read and write functions.
47    
48    2003-04-16  Jonathan Coles   <[email protected]>
49    
50            * Thuban/Model/classification.py: Use repr() around values
51            in the ClassGroup*.__repr__() methods so it is clearer when
52            a value is a string and when it is a number.
53    
54            * test/test_load.py: Rework the classification test to test
55            that we can load old files.
56            (testLabels): Test a file where the groups have labels.
57    
58    2003-04-16  Bernhard Herzog  <[email protected]>
59    
60            Safer implementation of the performance enhancements of the
61            low-level renderer:
62            
63            * extensions/thuban/wxproj.cpp (extract_projection)
64            (extract_pointer): Rename extract_projection to extract_pointer
65            and redefine its purpose to return the pointer stored in a CObject
66            returned by the object's cobject method. Update all callers.
67            (s_draw_info, free_draw_info, draw_polygon_init): Implement the
68            handling of these low-level parameters so that each s_draw_info
69            instance is handled as a CObject at python level that also
70            contains real references to the actual python objects which
71            contain the values in the struct. Add free_draw_info as the
72            destructor.
73            (draw_polygon_shape): Add the py_draw_info parameter which must a
74            cobject containing an s_draw_info pointer.
75    
76            * Thuban/UI/renderer.py (MapRenderer.polygon_render_param): New
77            method to instantiat the low-level render parameter
78            (MapRenderer.draw_shape_layer): Use the new method. Remove some
79            commented out code.
80            (MapRenderer.draw_polygon_shape): Make the first parameter not the
81            layer but the low-level render parameter
82            (ScreenRenderer.draw_shape_layer): Use the low-level render
83            parameter.
84    
85    2003-04-15  Jonathan Coles   <[email protected]>
86    
87            * Thuban/Model/classification.py: Implemented __repr__ for
88            the ClassGroup* classes to make debugging a bit easier.
89            (ClassGroup.SetLabel): Check that the string is an instance
90            of StringTypes not StringType. Accounts for Unicode strings.
91    
92            * Thuban/Model/color.py: Implemented __repr__ to make
93            debugging a bit easier.
94    
95            * Thuban/Model/save.py (Saver.write_classification): Need to
96            save the group label.
97    
98            * test/test_load.py (testClassification): New. Loads the
99            iceland_sample_test.thuban file and checks if it was loaded
100            correctly.
101    
102    2003-04-15  Jonathan Coles   <[email protected]>
103    
104            * extensions/thuban/wxproj.cpp (draw_polygon_init): New. Used
105            to improve rendering performance by initializing the variables
106            that are not change each time draw_polygon_shape() is called.
107            The values are stored in a global struct draw_info.
108            (draw_polygon_shape): Removed initialization code that is
109            now in draw_polygon_init().
110    
111            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Make
112            drawing initialization call to draw_polygon_init()
113            (MapRenderer.draw_polygon_shape): Use new signature of
114            draw_polygon_shape.
115    
116            * Thuban/UI/classgen.py (GenUniformPanel): Fix spin control
117            weirdness by setting the range to (1, maxint).
118    
119            * Thuban/Model/classification.py (ClassGroupProperties): Make
120            instance variables private and optimize comparison operator
121            by first checking if the color references are the same.
122            (ClassGroupSingleton): Make instance variables private.
123            (ClassGroupRange): Make instance variables private.
124    
125            * HOWTO-Release: Filled in missing steps for releasing packages.
126    
127    2003-04-15  Bernhard Herzog  <[email protected]>
128    
129            First stab at internationalized messages:
130    
131            * Thuban/__init__.py (_): Implement the translation function for
132            real using the python gettext module.
133    
134            * Thuban/UI/classifier.py (ClassTable.GetRowLabelValue): Don't
135            translate empty strings.
136    
137            * Thuban/UI/application.py (ThubanApplication.read_startup_files):
138            Add a missing space to a warning message
139    
140            * po/README: New. Notes about the management of the translation
141            files.
142    
143            * po/Makefile: New. Makefile to help manage the translation files.
144    
145            * po/es.po: New. Spanish translation by Daniel Calvelo Aros
146    
147            * MANIFEST.in: Include the *.mo files in Resources/Locale and the
148            translations and support files in po/
149    
150            * setup.py (data_files): Add the *.mo files to the data_files too
151    
152            * README: Add note about the translations when building from CVS
153    
154    2003-04-14  Jonathan Coles   <[email protected]>
155    
156            * Thuban/UI/dock.py: Fixes some window resizing problems most
157            noticable under windows. Always assume the button bitmaps will
158            be there. Code clean up.
159            (DockabelWindow.Dock, DockableWindow.UnDock): Force all the
160            images for the dock/undock button to the same images.
161            Work around for RTbug #1801.
162    
163            * Thuban/UI/legend.py (LegendPanel.__init__): The toolbar should
164            be allowed to grow within the sizer. Fixes a bug under Windows
165            where the toolbar wasn't being drawn.
166    
167    2003-04-14  Frank Koormann   <[email protected]>
168    
169            * Resources/Bitmaps/dock_12.xpm, Resources/Bitmaps/undock_12.xpm:
170            Updated design to try to make the button functionality more
171            transparent.
172    
173    2003-04-14  Jonathan Coles   <[email protected]>
174    
175            * Thuban/UI/legend.py (LegendPanel.__init__): Call Create() to
176            finalize the intialization of the panel.
177    
178            * Thuban/UI/dock.py (DockPanel.Create): New. Finalizes the
179            creation of the panel. Should be the last thing called in the
180            initializer of a subclass.
181    
182            * Thuban/UI/classgen.py (ClassGenDialog.__init__): Actively
183            set the current selections in the combo boxes. This is needed
184            under Windows.
185    
186            * Thuban/UI/classifier.py (Classifier.__init__): Add a top
187            level panel to the dialog so that the background colors are
188            consistent under Windows.
189    
190    2003-04-11  Jonathan Coles   <[email protected]>
191    
192            * Thuban/UI/classgen.py: Change color ramps to start at white
193            not black.
194    
195            * Thuban/UI/legend.py: Enable/disable the legend buttons when
196            the legend changes. Fixes RTbug #1793.
197    
198            * test/test_classification.py: Added test for copying of
199            classifications.
200    
201    2003-04-11  Jonathan Coles   <[email protected]>
202    
203            * Thuban/UI/resource.py: New. Centralize the loading of resources
204            such as bitmaps.
205    
206            * Thuban/UI/classgen.py (GenUniquePanel.__init__): Reordered buttons,
207            added images to the move buttons, added 'reverse' button.
208            (CustomRampPanel.__init__): Added images to the move buttons.
209            (GreyRamp): New. Generates a ramp from white to black.
210            (HotToColdRamp): New. Generates a ramp from cold to hot colors.
211    
212            * Thuban/UI/classifier.py: Refactored ID's from ID_CLASSIFY_* to
213            ID_PROPERTY_*.
214            (Classifier.__init__): Minor changes to the layout.
215            (Classifier._OnTitleChanged): Listen for when the user edits the
216            title and update the dialog's title and the layer's title.
217    
218            * Thuban/UI/dock.py: Use new bitmaps for the control buttons.
219    
220            * Thuban/UI/legend.py: Use new bitmaps for the control buttons.
221            (LegendTree._OnMsgLayerTitleChanged): Change the displayed title
222            if the layer's title changes.
223    
224            * Thuban/UI/mainwindow.py: Added new menu item and associated code
225            to open a dialog to rename the map.
226            (MainWindow): Use new resource class to import bitmaps.
227    
228    2003-04-11  Jonathan Coles   <[email protected]>
229    
230            * Resources/Bitmaps/close_12.xpm, Resources/Bitmaps/dock_12.xpm,
231            Resources/Bitmaps/group_use.xpm, Resources/Bitmaps/group_use_all.xpm,
232            Resources/Bitmaps/group_use_none.xpm,
233            Resources/Bitmaps/group_use_not.xpm,
234            Resources/Bitmaps/hide_layer.xpm,
235            Resources/Bitmaps/layer_properties.xpm,
236            Resources/Bitmaps/lower_layer.xpm, Resources/Bitmaps/raise_layer.xpm,
237            Resources/Bitmaps/show_layer.xpm, Resources/Bitmaps/undock_12.xpm:
238            New.
239    
240    2003-04-10  Jonathan Coles   <[email protected]>
241    
242            * Thuban/Model/classification.py: (ClassGroupRange.__init__):
243            Should pass group to ClassGroup constructor.
244    
245    2003-04-10  Jonathan Coles   <[email protected]>
246    
247            * Thuban/Model/classification.py: (ClassGroup): Move all the common
248            methods of the derived classes ([Set|Get]Properties(), __eq__, __ne__)
249            here. Implement SetVisible(), IsVisible().
250            (ClassGroup.__init__): Add group parameter which acts as a copy
251            constructor.
252    
253            * Thuban/UI/classifier.py (ClassTable): Add a new column for the
254            "Visible" check boxes.
255            (Classifier): Rename the buttons and refactor the code to match
256            the new labels.
257    
258            * Thuban/UI/legend.py: Classify button is now called "Properties".
259            Refactored the code to change variable names.
260            (LegendTree.__FillTreeLayer): Only list a group if it is visible.
261    
262            * Thuban/UI/mainwindow.py: MainWindow.OpenClassifier renamed to
263            MainWindow.OpenLayerProperties. MainWindow.LayerEditProperties
264            renamed to MainWindow.LayerEditProperties.
265            (MainWindow.ToggleLegend): Don't include map name in legend title.
266            (MainWindow.SetMap): Added the map name to the window title.
267            (MainWindow.LayerFillColor, MainWindow.LayerTransparentFill,
268            MainWindow.LayerOutlineColor, MainWindow.LayerNoOutline): Removed.
269            Functionality is found in the layer properties dialog.
270    
271            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Only
272            draw visible groups.
273    
274    2003-04-09  Jonathan Coles   <[email protected]>
275    
276            * Thuban/UI/classgen.py: Modifications to allow simple
277            addition and selection of new color schemes.
278            (MonochromaticRamp): New. Generates a ramp between two colors.
279            (RedRamp): New. Generates a ramp of all red.
280            (GreenRamp): New. Generates a ramp of all green.
281            (BlueRamp): New. Generates a ramp of all blue.
282    
283    2003-04-09  Jonathan Coles   <[email protected]>
284    
285            * Thuban/Model/classification.py (Classification.__deepcopy__):
286            Need to copy over field and fieldType attributes.
287    
288            * Thuban/Model/table.py (Table.field_range): New. Retrive the
289            maximum and minimum values over the entire table for a given
290            field.
291            (Table.GetUniqueValues): New. Retrieve all the unique values
292            in the table for a given field.
293    
294            * Thuban/UI/classgen.py: Renamed GenRangePanel to GenUniformPanel.
295            (GenUniquePanel): New. Controls to allow the user to select
296            which unique field values they would like in the classification.
297            (CustomRampPanel): Code that was in ClassGenDialog that allows
298            the user to select the properties for a custom ramp.
299            (ClassGenerator.GenUniformDistribution): Was called GenerateRanges.
300    
301            * Thuban/UI/classifier.py: Removed a lot of debugging code.
302            (Classifier._SetClassification): Callback method so that the
303            class generator can set the classification in the grid.
304            (ClassGroupPropertiesCtrl): New. Encapsulates the drawing and
305            editing of a group properties class into a wxWindows control.
306    
307            * Thuban/UI/dock.py: It was decided that if the user closes
308            a dockable window the window should simply hide itself. That
309            way if the user wants to show the dock again it appears in the
310            same place as it was when it was closed.
311            (DockableWindow.Destroy): Call renamed method OnDockDestroy().
312            (DockableWindow._OnButtonClose): Hide the window instead of
313            destroying it.
314            (DockableWindow._OnClose): Hide the window instead of
315            destroying it.
316    
317            * Thuban/UI/legend.py (LegendTree): Use a private method to
318            consistently set the font and style of the text. Fixes RTbug #1786.
319    
320            * Thuban/UI/mainwindow.py: Import just the Classifier class.
321    
322    2003-04-07  Bernhard Herzog  <[email protected]>
323    
324            * Thuban/UI/mainwindow.py (main_menu): Move the toggle_legend item
325            to the map module
326    
327    2003-04-07  Bernhard Herzog  <[email protected]>
328    
329            * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree): Removed in
330            favor of ToggleSessionTree
331            (MainWindow.ToggleSessionTree): New method to toggle visibility of
332            the session tree.
333            (MainWindow.SessionTreeShown): New method to return whether the
334            session tree is currently shown.
335            (MainWindow.ToggleLegend): New method to toggle visibility of the
336            legend
337            (MainWindow.ShowLegend): Implement in terms of ToggleLegend and
338            LegendShown
339            (MainWindow.LegendShown): New method to return whether the legend
340            is currently shown.
341            (_method_command): Add checked parameter so we can define check
342            menu items
343            (_has_tree_window_shown, _has_legend_shown): Use the appropriate
344            mainwindow methods.
345            (show_session_tree, show_legend commands): Removed.
346            (toggle_session_tree, toggle_legend commands): New commands to
347            toggle the visibility of the dialogs
348    
349    2003-04-07  Jonathan Coles   <[email protected]>
350    
351            * Thuban/UI/classgen.py: Fix Windows problem.
352    
353            * Thuban/UI/dock.py: Fix Windows problem.
354    
355            * Thuban/UI/mainwindow.py: Use False instead of false.
356            (MainWindow.ShowLegend): Remove unnecessary switch parameter.
357    
358    2003-04-07  Jonathan Coles   <[email protected]>
359    
360            Since we now say that the order of the groups in a classification
361            matters, it makes sense to be able to manipulate that order. Most
362            of the changes to Thuban/Model/classification.py are to that end.
363    
364            * Thuban/Model/classification.py (Classification.AppendGroup,
365            Classification.InsertGroup, Classification.ReplaceGroup,
366            Classification.RemoveGroup, Classification.GetGroup): Do as the
367            names imply.
368            (Classification.FindGroup): This was called GetGroup, but GetGroup
369            takes an index, while FindGroup takes a value.
370            (Classification.__deepcopy__): Copy all the groups, BUT NOT THE LAYER
371            REFERENCE. Currently there is a cyclic reference between the layer
372            and its classification. If the classification doesn't need to know
373            its owning layer we can change this, since it may make sense to be
374            able to use the same classification with different layers.
375    
376            * Thuban/Model/load.py: Use Classification.AppendGroup(), not AddGroup()
377    
378            * Thuban/UI/classgen.py: Use Classification.AppendGroup(),
379            not AddGroup()
380    
381            * Thuban/UI/classifier.py: Now that we can depend on the order in
382            a Classification and have methods to manipulate that order we don't
383            need to use our own data structures in the grid. We can simply make
384            the grid/table access the information they need from a copy of
385            the classification object.
386            (Classifier._OnCloseBtn): Event handler for when the user clicks
387            'Close'. This is needed so if the user applies changes and then
388            continues to change the table the user has the option of discarding
389            the most recent changes and keeping what they applied.
390    
391            * Thuban/UI/mainwindow.py: Put "Show Legend" and "Show Session Tree"
392            into the same group.
393    
394            * extensions/thuban/wxproj.cpp (check_version): If Thuban is compiled
395            with a really old version of proj, PJ_VERSION won't even be defined.
396            If it isn't defined then just compile so that the function always
397            returns Py_False.
398    
399            * test/test_classification.py: Fix tests to use the renamed methods.
400            Still need to write tests for the new methods.
401    
402    2003-04-04  Jonathan Coles   <[email protected]>
403    
404            * Thuban/UI/classifier.py (Classifier.__SelectField): Move the
405            call to SetSelection out of the method and before the call
406            to __SelectField in __init__. This prevents a recursion of events
407            when _OnFieldSelect is triggered by the user.
408    
409    2003-04-04  Jonathan Coles   <[email protected]>
410    
411            * Thuban/Model/classification.py: Rename Color.None to
412            Color.Transparent.
413            (ClassGroupProperties.SetLineColori, ClassGroupProperties.SetFill):
414            Don't bother copying the color, since Colors are immutable.
415    
416            * Thuban/Model/color.py, Thuban/Model/layer.py, Thuban/Model/load.py,
417            Thuban/UI/classifier.py, Thuban/UI/mainwindow.py,
418            Thuban/UI/renderer.py, Thuban/UI/view.py:
419            Rename Color.None to Color.Transparent.
420        
421            * test/test_classification.py, test/test_load.py: Rename Color.None
422            to Color.Transparent.
423    
424    2003-04-04  Jonathan Coles   <[email protected]>
425    
426            * Thuban/Model/classification.py: Fix assert calls.
427            (ClassGroupProperties.SetLineColor, ClassGroupProperties.SetFill):
428            Copy the color parameter rather than hold onto a reference.
429    
430            * Thuban/Model/color.py (Color.__copy__, Color.__deepcopy): Copy
431            the color object.
432            (NoColor.__copy__, NoColor.__deepcopy): Return 'self' so that we
433            are sure there exists only one refernce to Color.None in the system.
434            This allows us to use 'is' rather than the comparision functions.
435            
436            * Thuban/Model/save.py: Fix assert calls.
437            
438            * Thuban/UI/classifier.py: Fix assert calls.
439            (ClassGrid._OnCellDClick): Call up to the classifier to open the
440            dialog to edit the groups properties.
441            (ClassGrid._OnCellResize): Make sure that the scollbars are drawn
442            correctly if a cell is resized.
443            (ClassTable.SetClassification): New. Changes the classification
444            that is in the table.
445            (ClassTable.__SetRow): Allow groups to be prepended.
446            (Classifier): New code for opening the EditProperties and
447            GenerateRanges dialogs.
448            (SelectPropertiesDialog.__GetColor): Only set the color in the
449            color dialog if the current color is not None.
450            
451            * Thuban/UI/dock.py: Fix assert calls.
452            
453            * Thuban/UI/legend.py: Fix assert calls.
454            
455            * Thuban/UI/renderer.py: Fix assert calls.
456            
457            * Thuban/UI/classgen.py (ClassGenDialog): Dialog for generating
458            classifications.
459            (GenRangePanel): Panel specific to range generation.
460            (GenSingletonPanel): Panel specific to singleton generation.
461            (ClassGenerator): Class responsible for actually generating
462            the classification from the data gathered in the dialog box.
463            (PropertyRamp): Generates properties whose values range from
464            a starting property to an ending property.
465    
466  2003-04-03  Bernhard Herzog  <[email protected]>  2003-04-03  Bernhard Herzog  <[email protected]>
467    
468          * test/support.py (print_garbage_information): New function that          * test/support.py (print_garbage_information): New function that

Legend:
Removed from v.600  
changed lines
  Added in v.705

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26