/[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 282 by bh, Mon Aug 26 18:16:54 2002 UTC revision 403 by tkoester, Fri Feb 14 11:20:19 2003 UTC
# Line 1  Line 1 
1    2003-02-11  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/UI/application.py (ThubanApplication.splash_screen): New
4            method to create a splash screen.
5            (ThubanApplication.ShowMainWindow): New. Show the main window.
6            Needed so the splash screen can display the mainwindow
7            (ThubanApplication.OnInit): Call the
8            new splash_screen method to determine whether the application
9            should display a splash screen. If it displays a splash screen do
10            not immediately show the main window.
11    
12    2003-02-11  Jonathan Coles  <[email protected]>
13    
14            * Thuban/Model/classification.py: Added import line to fix
15            feature conflicts between running on python2.2 and python2.1.
16    
17            * Thuban/UI/classifier.py (ClassTable): Didn't need to hang
18            onto the clinfo parameter, so removed the deepcopy().
19    
20    2003-02-10  Jonathan Coles  <[email protected]>
21    
22            * Thuban/Model/save.py (Saver.open_element, Saver.close_element):
23            Added element_open variable to track opening and closing of tags
24            so that tags that don't span more than one line are closed with
25            /> instead of </tag_name>. Use the GetDefault*() methods of
26            the Classification class.
27    
28            * Thuban/Model/classification.py (Classificaton): Added set and
29            get methods for the default data. The class also takes a layer
30            reference so that modification messages can be sent. Fixed the
31            methods to use the new ClassData class.
32            (ClassData): New class to encapsulate the classification data
33    
34            * Thuban/Model/layer.py (Layer): Remove the
35            Set[Fill|Stroke|StrokeWidth]() methods. Code should call the
36            SetDefault*() methods on the layer's classification object.
37            (Layer.__init__): Use the new SetDefault*() methods in the
38            Classification class.
39    
40            * Thuban/Model/load.py (ProcessSession): Use the new ClassData
41            object instead of a dictionary.
42    
43            * Thuban/UI/classifier.py (ClassRenderer): New class to
44            draw the classifications in the dialog box's table.
45            (Classifier): Modified to use the ClassRenderer class.
46    
47            * Thuban/UI/mainwindow.py (MainWindow): Use the SetDefault*()
48            methods of the Classification class.
49    
50            * Thuban/UI/renderer.py (MapRenderer): Use the Get*() methods
51            of the ClassData class.
52    
53            * test/test_classification.py, test/test_layer.py,
54            test/test_map.py, test/test_session.py: Fix the tests to work
55            with the above code changes.
56    
57    2003-02-03  Jonathan Coles  <[email protected]>
58    
59            * Thuban/Model/classification.py (Classification): Added getNull()
60            to return the NullData reference
61    
62            * Thuban/Model/layer.py (Layer.SetFill, Layer.SetStroke,
63            Layer.SetStrokeWidth): Modified these functions to change the
64            null data in the classification rather than keep these values
65            directly in the Layer class. Menu options to change these values
66            work again.
67    
68    2003-01-28  Jonathan Coles  <[email protected]>
69    
70            * Thuban/UI/classifier.py (Classifier): Resolved merging conflicts.
71            Fixed crashing problem on some systems. Dialog box shows
72            classification data.
73    
74            * Thuban/UI/tree.py (SessionTreeCtrl.add_items): Handle drawing
75            Colors in the tree view.
76    
77            * Thuban/Model/layer.py (Layer.TreeInfo): Added a call to build
78            the tree info for classifications. Commented out unnecessary lines.
79    
80            * Thuban/Model/classification.py (Classification.TreeInfo): New
81            function to add information about the classification into the
82            tree view.
83    
84    2003-01-27  Jan-Oliver Wagner <[email protected]>
85    
86            * Thuban/__init__.py (_): New.
87    
88            * Thuban/Model/classification.py, Thuban/Model/extension.py,
89            Thuban/Model/layer.py, Thuban/Model/load.py, Thuban/Model/map.py,
90            Thuban/Model/session.py, Thuban/UI/application.py,
91            Thuban/UI/classifier.py, Thuban/UI/context.py, Thuban/UI/controls.py,
92            Thuban/UI/identifyview.py, Thuban/UI/labeldialog.py,
93            Thuban/UI/mainwindow.py, Thuban/UI/menu.py, Thuban/UI/proj4dialog.py,
94            Thuban/UI/renderer.py, Thuban/UI/tree.py, Thuban/Lib/connector.py,
95            Thuban/Lib/fileutil.py: Replace user string by _() for i18n.
96    
97    2003-01-27  Jonathan Coles  <[email protected]>
98    
99            * Thuban/Model/layer.py: Classification initialization calls.
100    
101            * Thuban/Model/classification.py: Created class to encapsulate
102            a layer classification. Supports specific data points and
103            ranges.
104    
105            * Thuban/Model/load.py: Added support for loading classification
106            information.
107    
108            * Thuban/Model/save.py: Added support for saving classification
109            information.
110    
111            * Thuban/UI/classifier.py: Initial class for a dialog box for
112            specifying classification information.
113    
114            * Thuban/UI/mainwindows.py: Support for opening the classifier
115            dialog.
116    
117            * Thuban/UI/renderer.py: Support for drawing a layer with the
118            classification information.
119    
120            * Data/iceland_sample_class.thuban: iceland_sample with
121            classification data.
122    
123            * test/test_classification: Tests for the Classification class.
124    
125    2002-12-09  Bernhard Herzog  <[email protected]>
126    
127            * test/test_command.py: New. Tests for the command classes.
128    
129            * Thuban/UI/command.py (ToolCommand): New class for tool commands.
130            (Command.IsTool): New method to distinguish between command
131            switching tools and other commands.
132    
133            * Thuban/UI/view.py (MapCanvas.SelectTool): New method to select
134            the tool to avoid direct assignments to instance variables
135            (MapCanvas.ZoomInTool, MapCanvas.ZoomOutTool, MapCanvas.PanTool)
136            (MapCanvas.IdentifyTool, MapCanvas.LabelTool): Use SelectTool to
137            change the tool
138    
139            * Thuban/UI/mainwindow.py (MainWindow.update_command_ui): If an
140            active tool's command turns insensitive, disable the tool.
141            (_tool_command): Use the new ToolCommand class
142    
143            * Examples/simple_extensions/simple_tool.py (simple_tool): Use the
144            SelectTool method to change the tool
145            (iconfile): Use the ToolCommand class
146    
147    2002-12-03  Bernhard Herzog  <[email protected]>
148    
149            * Thuban/UI/tree.py (SessionTreeCtrl.normalize_selection): Handle
150            the case of selected items that are not children of Layers or Maps
151            properly. Previously this bug would trigger an assertion in
152            wxWindows.
153    
154    2002-11-06  Frank Koormann  <[email protected]>
155    
156            * Thuban/UI/mainwindow.py: Altered the order of tools in the
157            toolbar: First now are all navigation tools (Zoom In/Out, Pan,
158            Full Extent).
159    
160    2002-10-23  Bernhard Herzog  <[email protected]>
161    
162            * setup.py (setup call): version now 0.1.3
163    
164            * MANIFEST.in: Add the files in test/
165    
166            * test/README: Add note about tests requiring the iceland data
167    
168            * Thuban/UI/mainwindow.py (MainWindow.About): Add 2002 to
169            copyright notice.
170    
171    2002-10-18  Bernhard Herzog  <[email protected]>
172    
173            * test/test_map.py
174            (TestMapWithContents.test_projected_bounding_box): Use an explicit
175            epsilon.
176    
177            * test/support.py (FloatComparisonMixin.assertFloatEqual)
178            (FloatComparisonMixin.assertFloatSeqEqual): give a more useful
179            message if the assertion fails and don't return the return value
180            of self.assert_. In assertFloatSeqEqual the return meant that not
181            all items of the sequence were compared.
182    
183    2002-09-20  Bernhard Herzog  <[email protected]>
184    
185            * test/test_fileutil.py: New. Test cases for Thuban.Lib.fileutil
186    
187            * Thuban/Lib/fileutil.py: Fixup some whitespace and typos
188    
189            * test/test_map.py (TestMapWithContents.test_tree_info): Create
190            the string with the bounding box on the fly because of platform
191            differences in the way %g is handled.
192    
193            * test/test_layer.py (TestLayer.test_empty_layer): Create an empty
194            DBFfile too because Thuban layers can't yet cope missing DBF
195            files.
196    
197    2002-09-20  Bernhard Herzog  <[email protected]>
198    
199            * test/test_menu.py: Use initthuban instead of
200            add_thuban_dir_to_path to initialize Thuban.
201    
202            * test/support.py (FloatComparisonMixin.assertFloatEqual): New.
203            Mixin class for float comparisons
204            (SubscriberMixin): New. Mixin class to test messages sent through
205            the Connector class
206    
207            * test/README: Fix a typo and add the -v flag to the command for
208            individual tests
209    
210            * test/test_session.py: New. Test cases for Thuban.Model.session
211    
212            * test/test_proj.py: New. Test cases for Thuban.Model.proj
213    
214            * test/test_map.py: New. Test cases for Thuban.Model.map
215    
216            * test/test_layer.py: New. Test cases for Thuban.Model.layer
217    
218            * test/test_label.py: New. Test cases for Thuban.Model.label
219    
220            * test/test_connector.py: New. Test cases for Thuban.Lib.connector
221    
222            * test/test_color.py: New. Test cases for Thuban.Model.color
223    
224            * test/test_base.py: New. Test cases for Thuban.Model.base
225    
226    2002-09-13  Bernhard Herzog  <[email protected]>
227    
228            * Thuban/Model/session.py (Session.forwarded_channels): Forward
229            the CHANGED channel too.
230    
231            * Thuban/Model/map.py (Map.forwarded_channels): Forward the
232            CHANGED channel too.
233            (Map.__init__): Call the Modifiable constructor as well.
234    
235            * Thuban/Model/base.py (Modifiable.UnsetModified): Issue a CHANGED
236            event if the modified flag changes.
237            (Modifiable.changed): Tweak the doc-string.
238    
239            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed)
240            (MainWindow.set_position_text): Put the code that puts the text
241            with the mouse position into the status bar into the new method
242            set_position_text so that it can overwritten in derived classes.
243    
244    2002-09-12  Bernhard Herzog  <[email protected]>
245    
246            * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): Center the
247            message box on the main window.
248    
249    2002-09-11  Bernhard Herzog  <[email protected]>
250    
251            * Thuban/UI/mainwindow.py: Underline the 'x' in "Exit" instead of
252            the 'E' because it's less likely to interfere with other menu
253            entries.
254            (MainWindow.build_menu): remove an incorrect comment.
255    
256    2002-09-10  Bernhard Herzog  <[email protected]>
257    
258            * Thuban/UI/mainwindow.py (MainWindow.Map): New.
259            (_tool_command): Add sensitive parameter
260            (_has_visible_map): Sensitivity callback to tools and other
261            commands that require a visible map. Use it in map_zoom_in_tool,
262            map_zoom_out_tool, map_pan_tool, map_identify_tool, map_label_tool
263            and map_full_extent
264    
265    2002-09-06  Bernhard Herzog  <[email protected]>
266    
267            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Unsubscribe
268            VIEW_POSITION
269    
270    2002-09-04  Frank Koormann  <[email protected]>
271    
272            * Resources/Bitmaps/fullextent.xpm: Updated Icon (removed "potatoe")
273    
274    2002-09-02  Bernhard Herzog  <[email protected]>
275    
276            * Thuban/UI/view.py: Get rid of the idle redraw. This is done by
277            wxWindows already and our implementation doesn't work correctly
278            with wxGTK 2.3:
279            (MapCanvas.__init__): Remove the instance variable
280            (MapCanvas.OnPaint): Always call do_redraw when there's a map to
281            be drawin
282            (MapCanvas.OnIdle): Removed.
283    
284            * Thuban/UI/view.py (MapCanvas.unprojected_rect_around_point): Add
285            a parameter to determine the size of the rectangle.
286            (MapCanvas.find_shape_at): Create the box around the point on a
287            layer by layer basis and make the size depend on the shape type.
288            This solves a problem with the selection of point shapes at the
289            border of the layer's bounding box
290    
291    2002-08-30  Bernhard Herzog  <[email protected]>
292    
293            * Thuban/UI/mainwindow.py (MainWindow.CanRemoveLayer): New method
294            for the sensitivity  of remove layer.
295            (_can_remove_layer): New. Sensitivity callback for remove layer
296            (Command layer_remove): Use _can_remove_layer
297    
298            * Thuban/Model/map.py (Map.CanRemoveLayer): New method to
299            determine whether a given layer can be deleted.
300    
301            * Thuban/UI/view.py (MapCanvas.__init__, MapCanvas.OnPaint)
302            (MapCanvas.do_redraw): Get rid of the unused update_region
303            instance variable
304    
305            * Thuban/UI/view.py: Add/update some doc-strings.
306    
307            * test/: new subdirectory with a bunch of unit tests.
308    
309            * test/README, test/test_table.py, test/test_save.py,
310            test/test_menu.py, test/test_load.py: Initial set of tests and
311            brief instructions on how to run them
312    
313    2002-08-29  Bernhard Herzog  <[email protected]>
314    
315            * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Handle
316            arcs with multiple parts.
317    
318            * Thuban/UI/view.py (ZoomInTool.MouseUp, ZoomOutTool.MouseUp):
319            Handle degenrate rectangles.
320    
321            * Thuban/Model/table.py: Make writing records work correctly:
322            (Table.__init__): Keep track of whether the DBF is open for
323            writing
324            (Table.write_record): Open the DBF file for writing when necessary
325    
326    2002-08-27  Bernhard Herzog  <[email protected]>
327    
328            * Thuban/Model/table.py (Table.write_record, Table.__init__): Open
329            dbf files only for reading by default. Use a new writable dbf
330            object for writing.
331    
332  2002-08-26  Bernhard Herzog  <[email protected]>  2002-08-26  Bernhard Herzog  <[email protected]>
333    
334          * Thuban/UI/mainwindow.py: Refactor the context creation:          * Thuban/UI/mainwindow.py: Refactor the context creation:
# Line 23  Line 354 
354    
355          * Thuban/Model/table.py (Table.write_record): New method to write          * Thuban/Model/table.py (Table.write_record): New method to write
356          records.          records.
357          (Table.__init__): Open the DBF file for writing too.          (Table.__init__): Open the DBF file for writing too.
358    
359          * Thuban/UI/controls.py (RecordTable.SetValue): Write the value          * Thuban/UI/controls.py (RecordTable.SetValue): Write the value
360          into the underlying table.          into the underlying table.
# Line 61  Line 392 
392          * setup.py (ThubanInstall.run): Don't repr install_lib_orig          * setup.py (ThubanInstall.run): Don't repr install_lib_orig
393          because thubaninit_contents will do it for us.          because thubaninit_contents will do it for us.
394    
395  2002-08-16      Jan-Oliver Wagner <[email protected]>  2002-08-16  Jan-Oliver Wagner <[email protected]>
396    
397          * Thuban/UI/mainwindow.py: menu item 'show session tree' now disable if          * Thuban/UI/mainwindow.py: menu item 'show session tree' now disable if
398          tree window already open          tree window already open
# Line 189  Line 520 
520          * Thuban/UI/tree.py: We can now simply subscribe to the session's          * Thuban/UI/tree.py: We can now simply subscribe to the session's
521          CHANGED channel to be informed of changes.          CHANGED channel to be informed of changes.
522          (SessionTreeCtrl.session_channels): Not needed any longer.          (SessionTreeCtrl.session_channels): Not needed any longer.
523          (SessionTreeCtrl.unsubscribe_all, SessionTreeCtrl.session_changed):          (SessionTreeCtrl.unsubscribe_all, SessionTreeCtrl.session_changed):
524          Only have to (un)subscribe CHANGED          Only have to (un)subscribe CHANGED
525    
526          * Thuban/Model/map.py (Map.TreeInfo): Deal better with empty maps.          * Thuban/Model/map.py (Map.TreeInfo): Deal better with empty maps.
# Line 250  Line 581 
581          * Thuban/Model/layer.py (Layer.TreeInfo),          * Thuban/Model/layer.py (Layer.TreeInfo),
582          Thuban/Model/extension.py (Extension.TreeInfo),          Thuban/Model/extension.py (Extension.TreeInfo),
583          Thuban/Model/map.py (Map.TreeInfo),          Thuban/Model/map.py (Map.TreeInfo),
584          Thuban/Model/session.py (Session.TreeInfo):          Thuban/Model/session.py (Session.TreeInfo):
585          Add TreeInfo methods to implement the new tree view update scheme          Add TreeInfo methods to implement the new tree view update scheme
586    
587  2002-07-16  Bernhard Herzog  <[email protected]>  2002-07-16  Bernhard Herzog  <[email protected]>
# Line 331  Line 662 
662          * setup.py: In the setup call, make sure that the library          * setup.py: In the setup call, make sure that the library
663          directories are under $prefix/lib not directly under $prefix.          directories are under $prefix/lib not directly under $prefix.
664    
665  2002-06-20      Jan-Oliver Wagner <[email protected]>  2002-06-20  Jan-Oliver Wagner <[email protected]>
666    
667          * Thuban/Model/extension.py: new module to handle extension objects.          * Thuban/Model/extension.py: new module to handle extension objects.
668          * Thuban/Model/messages.py: new messages for extensions.          * Thuban/Model/messages.py: new messages for extensions.
# Line 560  Line 891 
891          * Thuban/UI/messages.py (VIEW_POSITION): New message for the          * Thuban/UI/messages.py (VIEW_POSITION): New message for the
892          position in the statusbar          position in the statusbar
893    
894  2002-04-26      Frank Koormann <[email protected]>  2002-04-26  Frank Koormann <[email protected]>
895    
896          * Thuban/UI/mainwindow.py: AddLayer, Dialog title s/session/data          * Thuban/UI/mainwindow.py: AddLayer, Dialog title s/session/data
897    
898  2002-04-24      Frank Koormann <[email protected]>  2002-04-24  Frank Koormann <[email protected]>
899            
900          * Resources/Bitmaps/identify.xpm: shadow added          * Resources/Bitmaps/identify.xpm: shadow added
901    
902          * Resources/Bitmaps/fullextent.xpm: new          * Resources/Bitmaps/fullextent.xpm: new
           
 2002-04-22      Jan-Oliver Wagner <[email protected]>  
903    
904          * Thuban/UI/tree.py (update_tree): added test for None on map bounding box  2002-04-22  Jan-Oliver Wagner <[email protected]>
905    
906            * Thuban/UI/tree.py (update_tree): added test for None on map bounding
907            box
908    
909  2002-04-21      Jan-Oliver Wagner <[email protected]>  2002-04-21  Jan-Oliver Wagner <[email protected]>
910    
911          * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog): new          * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog): new
912    
913          * Thuban/UI/tree.py (update_tree): added added map extent          * Thuban/UI/tree.py (update_tree): added added map extent
914    
915          * Thuban/UI/mainwindow.py (_method_command): extended by parameter          * Thuban/UI/mainwindow.py (_method_command): extended by parameter
916          icon; added map_full_extend as tool          icon; added map_full_extend as tool
917    
918  2002-04-19      Jan-Oliver Wagner <[email protected]>  2002-04-19  Jan-Oliver Wagner <[email protected]>
919    
920          * Thuban/UI/mainwindow.py (SaveSession): launch save as dialog for          * Thuban/UI/mainwindow.py (SaveSession): launch save as dialog for
921          saving _new_ sessions          saving _new_ sessions
# Line 685  Line 1017 
1017    
1018          * setup.py: increase version number to 0.1          * setup.py: increase version number to 0.1
1019          (data_dist): New command class for data distribution          (data_dist): New command class for data distribution
           
1020    
1021  2001-09-14  Bernhard Herzog  <[email protected]>  2001-09-14  Bernhard Herzog  <[email protected]>
1022    
1023          * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):          * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):
1024          Handle the case of no layer (i.e. layer is None) properly.          Handle the case of no layer (i.e. layer is None) properly.
1025    
1026          * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):          * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):
1027          Set the initial selection of the combo boxes to reflect the          Set the initial selection of the combo boxes to reflect the
1028          projection we're starting with in a way that works on windows,          projection we're starting with in a way that works on windows,
1029          too.          too.
# Line 802  Line 1133 
1133          (MainWindow.identify_view_on_demand): Store the interactor in an          (MainWindow.identify_view_on_demand): Store the interactor in an
1134          instvar and use that reference instead of going through main.app          instvar and use that reference instead of going through main.app
1135    
1136          * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):          * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):
1137          * Thuban/UI/application.py (ThubanApplication.OnInit):          * Thuban/UI/application.py (ThubanApplication.OnInit):
1138          * Thuban/UI/main.py (main): Create the session tree view in main          * Thuban/UI/main.py (main): Create the session tree view in main
1139          with the new mainwindow method ShowSessionTree and not directly          with the new mainwindow method ShowSessionTree and not directly
1140          the application's OnInit method          the application's OnInit method
# Line 819  Line 1150 
1150          layer to the tableview dialog.          layer to the tableview dialog.
1151    
1152          * Thuban/UI/tableview.py: Add some doc-strings          * Thuban/UI/tableview.py: Add some doc-strings
1153          (TableGrid):          (TableGrid):
1154          (TableGrid.OnRangeSelect):          (TableGrid.OnRangeSelect):
1155          (TableGrid.OnSelectCell):          (TableGrid.OnSelectCell):
1156          (TableFrame.__init__):          (TableFrame.__init__):
# Line 886  Line 1217 
1217  2001-09-05  Bernhard Herzog  <[email protected]>  2001-09-05  Bernhard Herzog  <[email protected]>
1218    
1219          * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.          * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.
1220            
1221          * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument          * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument
1222          interactor to pass through to the MapCanvas          interactor to pass through to the MapCanvas
1223            
1224          * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new          * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new
1225          argument to the MainWindow constructor to get rid of the ugly hack          argument to the MainWindow constructor to get rid of the ugly hack
1226          that made main.app available early just so that the mapcanvas          that made main.app available early just so that the mapcanvas
# Line 936  Line 1267 
1267          (ThubanInstall.run): Remove the leading install root from the          (ThubanInstall.run): Remove the leading install root from the
1268          script filename if an install root was specified and use the new          script filename if an install root was specified and use the new
1269          link_file method          link_file method
1270            
1271          * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Fit the map to          * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Fit the map to
1272          the window when the first layer is added to the map.          the window when the first layer is added to the map.
1273    
# Line 973  Line 1304 
1304          (InnoIconItem): Helper class for bdist_inno          (InnoIconItem): Helper class for bdist_inno
1305          (thuban_bdist_inno): Thuban specific version of bdist_inno. Added          (thuban_bdist_inno): Thuban specific version of bdist_inno. Added
1306          this together with the appropriate parameters, to the setup call.          this together with the appropriate parameters, to the setup call.
1307            
1308          * setup.cfg (bdist_inno): added new section for the inno setup          * setup.cfg (bdist_inno): added new section for the inno setup
1309          installer          installer
1310    

Legend:
Removed from v.282  
changed lines
  Added in v.403

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26