/[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 315 by bh, Wed Sep 11 15:18:19 2002 UTC revision 423 by frank, Thu Feb 20 16:23:59 2003 UTC
# Line 1  Line 1 
1    2003-02-20  Frank Koormann   <[email protected]>
2    
3            Force minimal size of identify and label dialogs. The autosizing
4            looked too ugly.
5    
6            * Thuban/UI/controls.py (RecordListCtrl): Set minimal width for columns.
7            * Thuban/UI/labeldialog.py (LabelDialog.dialog_layout):
8            Set size of listctrl.
9            * Thuban/UI/identifyview.py (IdentifyView.__init__):
10            Set size of dialog.
11    
12    2003-02-19  Jonathan Coles   <[email protected]>
13    
14            * test/test_classification.py, test/test_layer.py,
15            test/test_load.py, test/test_map.py, test/test_session.py:
16            Updated the tests to use the new functions that are in the
17            respective classes.
18    
19            * Thuban/Model/classification.py (Classification):
20            Uses the new ClassData* classes. Modification messages are
21            passed up to the parent layer (if it exists).
22            (ClassData): New class to encapsulate the common data in each
23            classification property.
24            (ClassDataDefault): Represents the Default class. data.
25            (ClassDataPoint): Represents a single class. data point
26            (ClassDataRange): Represents a class. range
27            (ClassDataMap): Represents a class. map (unused).
28    
29            * Thuban/Model/color.py: Added Color.None to represent something
30            with no color. Color.Black represents the color black.
31            (NoColor): Helper class derived from Color to represent something
32            with no color.
33    
34            * Thuban/Model/layer.py (Layer): Removed references to fill, stroke,
35            stroke_width attributes. Made the 'classification' attribute private.
36            New methods for setting/getting the classification.
37    
38            * Thuban/Model/load.py (ProcessSession): Use new methods on Layer
39            to get the classifcation and use the new ClassData* classes to
40            hold the classification data. Use Str2Num to convert numbers
41            properly.
42    
43            * Thuban/Model/save.py (Saver): Use new Color and Classification
44            methods
45    
46            * Thuban/UI/classifier.py (ClassGrid): New class to represent a
47            custom grid.
48            (ClassTable): Support for editing Values and Labels and for
49            changing what type (point or range) of data is stored in each
50            property based on how the user enters the data.
51            (Classifier): Support for saving the new classifications and
52            launching the dialog to edit a property.
53            (SelectPropertiesDialog): New class for editing the visual
54            properties of a classification (stroke color, width, and fill color)
55            (ClassPreviewer): Took the Draw method from ClassRenderer and
56            made most of it into this new class. Intend to use this class in
57            the SelectPropertiesDialog for previewing changes.
58    
59            * Thuban/UI/renderer.py: Use new Color and Classification methods.
60    
61            * Thuban/UI/tree.py: Formatting changes.
62    
63            * Doc/thuban.dtd: Add 'label' element
64    
65            * Thuban/common.py: New. Contains common routines used throughout
66            the code.
67            (Str2Num): Takes a string and converts it to the "best" type of
68            number.
69    
70    2003-02-14  Bernhard Herzog  <[email protected]>
71    
72            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Make sure that the
73            dragging flag is always set to 0 even when the tool implementation
74            raises an exception
75    
76    2003-02-11  Bernhard Herzog  <[email protected]>
77    
78            * Thuban/UI/application.py (ThubanApplication.splash_screen): New
79            method to create a splash screen.
80            (ThubanApplication.ShowMainWindow): New. Show the main window.
81            Needed so the splash screen can display the mainwindow
82            (ThubanApplication.OnInit): Call the
83            new splash_screen method to determine whether the application
84            should display a splash screen. If it displays a splash screen do
85            not immediately show the main window.
86    
87    2003-02-11  Jonathan Coles  <[email protected]>
88    
89            * Thuban/Model/classification.py: Added import line to fix
90            feature conflicts between running on python2.2 and python2.1.
91    
92            * Thuban/UI/classifier.py (ClassTable): Didn't need to hang
93            onto the clinfo parameter, so removed the deepcopy().
94    
95    2003-02-10  Jonathan Coles  <[email protected]>
96    
97            * Thuban/Model/save.py (Saver.open_element, Saver.close_element):
98            Added element_open variable to track opening and closing of tags
99            so that tags that don't span more than one line are closed with
100            /> instead of </tag_name>. Use the GetDefault*() methods of
101            the Classification class.
102    
103            * Thuban/Model/classification.py (Classificaton): Added set and
104            get methods for the default data. The class also takes a layer
105            reference so that modification messages can be sent. Fixed the
106            methods to use the new ClassData class.
107            (ClassData): New class to encapsulate the classification data
108    
109            * Thuban/Model/layer.py (Layer): Remove the
110            Set[Fill|Stroke|StrokeWidth]() methods. Code should call the
111            SetDefault*() methods on the layer's classification object.
112            (Layer.__init__): Use the new SetDefault*() methods in the
113            Classification class.
114    
115            * Thuban/Model/load.py (ProcessSession): Use the new ClassData
116            object instead of a dictionary.
117    
118            * Thuban/UI/classifier.py (ClassRenderer): New class to
119            draw the classifications in the dialog box's table.
120            (Classifier): Modified to use the ClassRenderer class.
121    
122            * Thuban/UI/mainwindow.py (MainWindow): Use the SetDefault*()
123            methods of the Classification class.
124    
125            * Thuban/UI/renderer.py (MapRenderer): Use the Get*() methods
126            of the ClassData class.
127    
128            * test/test_classification.py, test/test_layer.py,
129            test/test_map.py, test/test_session.py: Fix the tests to work
130            with the above code changes.
131    
132    2003-02-03  Jonathan Coles  <[email protected]>
133    
134            * Thuban/Model/classification.py (Classification): Added getNull()
135            to return the NullData reference
136    
137            * Thuban/Model/layer.py (Layer.SetFill, Layer.SetStroke,
138            Layer.SetStrokeWidth): Modified these functions to change the
139            null data in the classification rather than keep these values
140            directly in the Layer class. Menu options to change these values
141            work again.
142    
143    2003-01-28  Jonathan Coles  <[email protected]>
144    
145            * Thuban/UI/classifier.py (Classifier): Resolved merging conflicts.
146            Fixed crashing problem on some systems. Dialog box shows
147            classification data.
148    
149            * Thuban/UI/tree.py (SessionTreeCtrl.add_items): Handle drawing
150            Colors in the tree view.
151    
152            * Thuban/Model/layer.py (Layer.TreeInfo): Added a call to build
153            the tree info for classifications. Commented out unnecessary lines.
154    
155            * Thuban/Model/classification.py (Classification.TreeInfo): New
156            function to add information about the classification into the
157            tree view.
158    
159    2003-01-27  Jan-Oliver Wagner <[email protected]>
160    
161            * Thuban/__init__.py (_): New.
162    
163            * Thuban/Model/classification.py, Thuban/Model/extension.py,
164            Thuban/Model/layer.py, Thuban/Model/load.py, Thuban/Model/map.py,
165            Thuban/Model/session.py, Thuban/UI/application.py,
166            Thuban/UI/classifier.py, Thuban/UI/context.py, Thuban/UI/controls.py,
167            Thuban/UI/identifyview.py, Thuban/UI/labeldialog.py,
168            Thuban/UI/mainwindow.py, Thuban/UI/menu.py, Thuban/UI/proj4dialog.py,
169            Thuban/UI/renderer.py, Thuban/UI/tree.py, Thuban/Lib/connector.py,
170            Thuban/Lib/fileutil.py: Replace user string by _() for i18n.
171    
172    2003-01-27  Jonathan Coles  <[email protected]>
173    
174            * Thuban/Model/layer.py: Classification initialization calls.
175    
176            * Thuban/Model/classification.py: Created class to encapsulate
177            a layer classification. Supports specific data points and
178            ranges.
179    
180            * Thuban/Model/load.py: Added support for loading classification
181            information.
182    
183            * Thuban/Model/save.py: Added support for saving classification
184            information.
185    
186            * Thuban/UI/classifier.py: Initial class for a dialog box for
187            specifying classification information.
188    
189            * Thuban/UI/mainwindows.py: Support for opening the classifier
190            dialog.
191    
192            * Thuban/UI/renderer.py: Support for drawing a layer with the
193            classification information.
194    
195            * Data/iceland_sample_class.thuban: iceland_sample with
196            classification data.
197    
198            * test/test_classification: Tests for the Classification class.
199    
200    2002-12-09  Bernhard Herzog  <[email protected]>
201    
202            * test/test_command.py: New. Tests for the command classes.
203    
204            * Thuban/UI/command.py (ToolCommand): New class for tool commands.
205            (Command.IsTool): New method to distinguish between command
206            switching tools and other commands.
207    
208            * Thuban/UI/view.py (MapCanvas.SelectTool): New method to select
209            the tool to avoid direct assignments to instance variables
210            (MapCanvas.ZoomInTool, MapCanvas.ZoomOutTool, MapCanvas.PanTool)
211            (MapCanvas.IdentifyTool, MapCanvas.LabelTool): Use SelectTool to
212            change the tool
213    
214            * Thuban/UI/mainwindow.py (MainWindow.update_command_ui): If an
215            active tool's command turns insensitive, disable the tool.
216            (_tool_command): Use the new ToolCommand class
217    
218            * Examples/simple_extensions/simple_tool.py (simple_tool): Use the
219            SelectTool method to change the tool
220            (iconfile): Use the ToolCommand class
221    
222    2002-12-03  Bernhard Herzog  <[email protected]>
223    
224            * Thuban/UI/tree.py (SessionTreeCtrl.normalize_selection): Handle
225            the case of selected items that are not children of Layers or Maps
226            properly. Previously this bug would trigger an assertion in
227            wxWindows.
228    
229    2002-11-06  Frank Koormann  <[email protected]>
230    
231            * Thuban/UI/mainwindow.py: Altered the order of tools in the
232            toolbar: First now are all navigation tools (Zoom In/Out, Pan,
233            Full Extent).
234    
235    2002-10-23  Bernhard Herzog  <[email protected]>
236    
237            * setup.py (setup call): version now 0.1.3
238    
239            * MANIFEST.in: Add the files in test/
240    
241            * test/README: Add note about tests requiring the iceland data
242    
243            * Thuban/UI/mainwindow.py (MainWindow.About): Add 2002 to
244            copyright notice.
245    
246    2002-10-18  Bernhard Herzog  <[email protected]>
247    
248            * test/test_map.py
249            (TestMapWithContents.test_projected_bounding_box): Use an explicit
250            epsilon.
251    
252            * test/support.py (FloatComparisonMixin.assertFloatEqual)
253            (FloatComparisonMixin.assertFloatSeqEqual): give a more useful
254            message if the assertion fails and don't return the return value
255            of self.assert_. In assertFloatSeqEqual the return meant that not
256            all items of the sequence were compared.
257    
258    2002-09-20  Bernhard Herzog  <[email protected]>
259    
260            * test/test_fileutil.py: New. Test cases for Thuban.Lib.fileutil
261    
262            * Thuban/Lib/fileutil.py: Fixup some whitespace and typos
263    
264            * test/test_map.py (TestMapWithContents.test_tree_info): Create
265            the string with the bounding box on the fly because of platform
266            differences in the way %g is handled.
267    
268            * test/test_layer.py (TestLayer.test_empty_layer): Create an empty
269            DBFfile too because Thuban layers can't yet cope missing DBF
270            files.
271    
272    2002-09-20  Bernhard Herzog  <[email protected]>
273    
274            * test/test_menu.py: Use initthuban instead of
275            add_thuban_dir_to_path to initialize Thuban.
276    
277            * test/support.py (FloatComparisonMixin.assertFloatEqual): New.
278            Mixin class for float comparisons
279            (SubscriberMixin): New. Mixin class to test messages sent through
280            the Connector class
281    
282            * test/README: Fix a typo and add the -v flag to the command for
283            individual tests
284    
285            * test/test_session.py: New. Test cases for Thuban.Model.session
286    
287            * test/test_proj.py: New. Test cases for Thuban.Model.proj
288    
289            * test/test_map.py: New. Test cases for Thuban.Model.map
290    
291            * test/test_layer.py: New. Test cases for Thuban.Model.layer
292    
293            * test/test_label.py: New. Test cases for Thuban.Model.label
294    
295            * test/test_connector.py: New. Test cases for Thuban.Lib.connector
296    
297            * test/test_color.py: New. Test cases for Thuban.Model.color
298    
299            * test/test_base.py: New. Test cases for Thuban.Model.base
300    
301    2002-09-13  Bernhard Herzog  <[email protected]>
302    
303            * Thuban/Model/session.py (Session.forwarded_channels): Forward
304            the CHANGED channel too.
305    
306            * Thuban/Model/map.py (Map.forwarded_channels): Forward the
307            CHANGED channel too.
308            (Map.__init__): Call the Modifiable constructor as well.
309    
310            * Thuban/Model/base.py (Modifiable.UnsetModified): Issue a CHANGED
311            event if the modified flag changes.
312            (Modifiable.changed): Tweak the doc-string.
313    
314            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed)
315            (MainWindow.set_position_text): Put the code that puts the text
316            with the mouse position into the status bar into the new method
317            set_position_text so that it can overwritten in derived classes.
318    
319    2002-09-12  Bernhard Herzog  <[email protected]>
320    
321            * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): Center the
322            message box on the main window.
323    
324  2002-09-11  Bernhard Herzog  <[email protected]>  2002-09-11  Bernhard Herzog  <[email protected]>
325    
326          * Thuban/UI/mainwindow.py: Underline the 'x' in "Exit" instead of          * Thuban/UI/mainwindow.py: Underline the 'x' in "Exit" instead of
# Line 19  Line 342 
342          * Thuban/UI/mainwindow.py (MainWindow.OnClose): Unsubscribe          * Thuban/UI/mainwindow.py (MainWindow.OnClose): Unsubscribe
343          VIEW_POSITION          VIEW_POSITION
344    
345  2002-09-04  Frank Koormann   <[email protected]>  2002-09-04  Frank Koormann  <[email protected]>
346    
347          * Resources/Bitmaps/fullextent.xpm: Updated Icon (removed "potatoe")          * Resources/Bitmaps/fullextent.xpm: Updated Icon (removed "potatoe")
348    
# Line 106  Line 429 
429    
430          * Thuban/Model/table.py (Table.write_record): New method to write          * Thuban/Model/table.py (Table.write_record): New method to write
431          records.          records.
432          (Table.__init__): Open the DBF file for writing too.          (Table.__init__): Open the DBF file for writing too.
433    
434          * Thuban/UI/controls.py (RecordTable.SetValue): Write the value          * Thuban/UI/controls.py (RecordTable.SetValue): Write the value
435          into the underlying table.          into the underlying table.
# Line 144  Line 467 
467          * setup.py (ThubanInstall.run): Don't repr install_lib_orig          * setup.py (ThubanInstall.run): Don't repr install_lib_orig
468          because thubaninit_contents will do it for us.          because thubaninit_contents will do it for us.
469    
470  2002-08-16      Jan-Oliver Wagner <[email protected]>  2002-08-16  Jan-Oliver Wagner <[email protected]>
471    
472          * Thuban/UI/mainwindow.py: menu item 'show session tree' now disable if          * Thuban/UI/mainwindow.py: menu item 'show session tree' now disable if
473          tree window already open          tree window already open
# Line 272  Line 595 
595          * 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
596          CHANGED channel to be informed of changes.          CHANGED channel to be informed of changes.
597          (SessionTreeCtrl.session_channels): Not needed any longer.          (SessionTreeCtrl.session_channels): Not needed any longer.
598          (SessionTreeCtrl.unsubscribe_all, SessionTreeCtrl.session_changed):          (SessionTreeCtrl.unsubscribe_all, SessionTreeCtrl.session_changed):
599          Only have to (un)subscribe CHANGED          Only have to (un)subscribe CHANGED
600    
601          * Thuban/Model/map.py (Map.TreeInfo): Deal better with empty maps.          * Thuban/Model/map.py (Map.TreeInfo): Deal better with empty maps.
# Line 333  Line 656 
656          * Thuban/Model/layer.py (Layer.TreeInfo),          * Thuban/Model/layer.py (Layer.TreeInfo),
657          Thuban/Model/extension.py (Extension.TreeInfo),          Thuban/Model/extension.py (Extension.TreeInfo),
658          Thuban/Model/map.py (Map.TreeInfo),          Thuban/Model/map.py (Map.TreeInfo),
659          Thuban/Model/session.py (Session.TreeInfo):          Thuban/Model/session.py (Session.TreeInfo):
660          Add TreeInfo methods to implement the new tree view update scheme          Add TreeInfo methods to implement the new tree view update scheme
661    
662  2002-07-16  Bernhard Herzog  <[email protected]>  2002-07-16  Bernhard Herzog  <[email protected]>
# Line 414  Line 737 
737          * setup.py: In the setup call, make sure that the library          * setup.py: In the setup call, make sure that the library
738          directories are under $prefix/lib not directly under $prefix.          directories are under $prefix/lib not directly under $prefix.
739    
740  2002-06-20      Jan-Oliver Wagner <[email protected]>  2002-06-20  Jan-Oliver Wagner <[email protected]>
741    
742          * Thuban/Model/extension.py: new module to handle extension objects.          * Thuban/Model/extension.py: new module to handle extension objects.
743          * Thuban/Model/messages.py: new messages for extensions.          * Thuban/Model/messages.py: new messages for extensions.
# Line 643  Line 966 
966          * Thuban/UI/messages.py (VIEW_POSITION): New message for the          * Thuban/UI/messages.py (VIEW_POSITION): New message for the
967          position in the statusbar          position in the statusbar
968    
969  2002-04-26      Frank Koormann <[email protected]>  2002-04-26  Frank Koormann <[email protected]>
970    
971          * Thuban/UI/mainwindow.py: AddLayer, Dialog title s/session/data          * Thuban/UI/mainwindow.py: AddLayer, Dialog title s/session/data
972    
973  2002-04-24      Frank Koormann <[email protected]>  2002-04-24  Frank Koormann <[email protected]>
974            
975          * Resources/Bitmaps/identify.xpm: shadow added          * Resources/Bitmaps/identify.xpm: shadow added
976    
977          * Resources/Bitmaps/fullextent.xpm: new          * Resources/Bitmaps/fullextent.xpm: new
           
 2002-04-22      Jan-Oliver Wagner <[email protected]>  
978    
979          * Thuban/UI/tree.py (update_tree): added test for None on map bounding box  2002-04-22  Jan-Oliver Wagner <[email protected]>
980    
981            * Thuban/UI/tree.py (update_tree): added test for None on map bounding
982            box
983    
984  2002-04-21      Jan-Oliver Wagner <[email protected]>  2002-04-21  Jan-Oliver Wagner <[email protected]>
985    
986          * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog): new          * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog): new
987    
988          * Thuban/UI/tree.py (update_tree): added added map extent          * Thuban/UI/tree.py (update_tree): added added map extent
989    
990          * Thuban/UI/mainwindow.py (_method_command): extended by parameter          * Thuban/UI/mainwindow.py (_method_command): extended by parameter
991          icon; added map_full_extend as tool          icon; added map_full_extend as tool
992    
993  2002-04-19      Jan-Oliver Wagner <[email protected]>  2002-04-19  Jan-Oliver Wagner <[email protected]>
994    
995          * Thuban/UI/mainwindow.py (SaveSession): launch save as dialog for          * Thuban/UI/mainwindow.py (SaveSession): launch save as dialog for
996          saving _new_ sessions          saving _new_ sessions
# Line 768  Line 1092 
1092    
1093          * setup.py: increase version number to 0.1          * setup.py: increase version number to 0.1
1094          (data_dist): New command class for data distribution          (data_dist): New command class for data distribution
           
1095    
1096  2001-09-14  Bernhard Herzog  <[email protected]>  2001-09-14  Bernhard Herzog  <[email protected]>
1097    
1098          * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):          * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):
1099          Handle the case of no layer (i.e. layer is None) properly.          Handle the case of no layer (i.e. layer is None) properly.
1100    
1101          * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):          * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):
1102          Set the initial selection of the combo boxes to reflect the          Set the initial selection of the combo boxes to reflect the
1103          projection we're starting with in a way that works on windows,          projection we're starting with in a way that works on windows,
1104          too.          too.
# Line 885  Line 1208 
1208          (MainWindow.identify_view_on_demand): Store the interactor in an          (MainWindow.identify_view_on_demand): Store the interactor in an
1209          instvar and use that reference instead of going through main.app          instvar and use that reference instead of going through main.app
1210    
1211          * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):          * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):
1212          * Thuban/UI/application.py (ThubanApplication.OnInit):          * Thuban/UI/application.py (ThubanApplication.OnInit):
1213          * Thuban/UI/main.py (main): Create the session tree view in main          * Thuban/UI/main.py (main): Create the session tree view in main
1214          with the new mainwindow method ShowSessionTree and not directly          with the new mainwindow method ShowSessionTree and not directly
1215          the application's OnInit method          the application's OnInit method
# Line 902  Line 1225 
1225          layer to the tableview dialog.          layer to the tableview dialog.
1226    
1227          * Thuban/UI/tableview.py: Add some doc-strings          * Thuban/UI/tableview.py: Add some doc-strings
1228          (TableGrid):          (TableGrid):
1229          (TableGrid.OnRangeSelect):          (TableGrid.OnRangeSelect):
1230          (TableGrid.OnSelectCell):          (TableGrid.OnSelectCell):
1231          (TableFrame.__init__):          (TableFrame.__init__):
# Line 969  Line 1292 
1292  2001-09-05  Bernhard Herzog  <[email protected]>  2001-09-05  Bernhard Herzog  <[email protected]>
1293    
1294          * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.          * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.
1295            
1296          * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument          * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument
1297          interactor to pass through to the MapCanvas          interactor to pass through to the MapCanvas
1298            
1299          * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new          * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new
1300          argument to the MainWindow constructor to get rid of the ugly hack          argument to the MainWindow constructor to get rid of the ugly hack
1301          that made main.app available early just so that the mapcanvas          that made main.app available early just so that the mapcanvas
# Line 1019  Line 1342 
1342          (ThubanInstall.run): Remove the leading install root from the          (ThubanInstall.run): Remove the leading install root from the
1343          script filename if an install root was specified and use the new          script filename if an install root was specified and use the new
1344          link_file method          link_file method
1345            
1346          * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Fit the map to          * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Fit the map to
1347          the window when the first layer is added to the map.          the window when the first layer is added to the map.
1348    
# Line 1056  Line 1379 
1379          (InnoIconItem): Helper class for bdist_inno          (InnoIconItem): Helper class for bdist_inno
1380          (thuban_bdist_inno): Thuban specific version of bdist_inno. Added          (thuban_bdist_inno): Thuban specific version of bdist_inno. Added
1381          this together with the appropriate parameters, to the setup call.          this together with the appropriate parameters, to the setup call.
1382            
1383          * setup.cfg (bdist_inno): added new section for the inno setup          * setup.cfg (bdist_inno): added new section for the inno setup
1384          installer          installer
1385    

Legend:
Removed from v.315  
changed lines
  Added in v.423

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26