/[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 402 by bh, Tue Feb 11 15:19:47 2003 UTC revision 434 by jonathan, Thu Feb 27 15:51:55 2003 UTC
# Line 1  Line 1 
1    2003-02-26  Jonathan Coles   <[email protected]>
2    
3            * Thuban/common.py: Moved color conversion functions into
4            Thuban/UI/common.py.
5            (Str2Num): Now converts the float (not the string) to a long/int
6            so that an exception isn't thrown.
7    
8            * Thuban/UI/common.py: Common functions used in several UI modules
9    
10            * Thuban/Model/classification.py: Changed the class hierarchy
11            so that a Classification consists of Groups which return
12            Properties when a value matches a Group.
13    
14            * Thuban/Model/layer.py: Fixed name resolution problem.
15    
16            * Thuban/Model/load.py: Use new Classification and Group functions.
17    
18            * Thuban/Model/save.py (Saver.write_attribs): Fixes a test case
19            failure.
20            (Saver.write_classification): Use new Classification and Group
21            functions.
22    
23            * Thuban/UI/classifier.py: Changes to use new Classification and Group
24            functions
25    
26            * Thuban/UI/renderer.py: Use new Classification and Group functions.
27            Use common.py functions.
28    
29            * Thuban/UI/tree.py: Use common.py functions
30    
31    2003-02-24  Jonathan Coles   <[email protected]>
32    
33            * Thuban/common.py (Color2wxColour, wxColour2Color): Conversion
34            functions from Thuban color objects to wxWindow colour objects.
35    
36            * Thuban/Model/classification.py (Classification): Renamed
37            GetProperties() to GetClassData(). Used the new iterator
38            in TreeInfo().
39            (ClassIterator): Iterator implementation to iterate over the
40            ClassData objects in a classification object.
41    
42            * Thuban/Model/save.py (Saver.write_classificaton): Uses
43            the new iterator to save the classification information.
44    
45            * Thuban/UI/classifier.py (SelectPropertiesDialog): Support
46            for changing the stroke and fill colors and previewing the
47            changes.
48    
49            * Thuban/UI/mainwindow.py (MainWindow.OpenSession,
50            MainWindow.SaveSessionAs): Text string changes so the dialogs
51            have more meaningful titles.
52    
53            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Change
54            Classification method name from GetProperties to GetClassData.
55    
56            * Thuban/UI/view.py (MapCanvas.find_shape_at): Use method calls
57            instead of accessing now non-existent class variables.
58    
59    2003-02-24  Bernhard Herzog  <[email protected]>
60    
61            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Remove
62            unneeded Shape() call. Rendering is substantially faster without
63            it and it avoids some problems with broken shape files.
64    
65    2003-02-20  Frank Koormann   <[email protected]>
66    
67            Force minimal size of identify and label dialogs. The autosizing
68            looked too ugly.
69    
70            * Thuban/UI/controls.py (RecordListCtrl): Set minimal width for columns.
71            * Thuban/UI/labeldialog.py (LabelDialog.dialog_layout):
72            Set size of listctrl.
73            * Thuban/UI/identifyview.py (IdentifyView.__init__):
74            Set size of dialog.
75    
76    2003-02-19  Jonathan Coles   <[email protected]>
77    
78            * test/test_classification.py, test/test_layer.py,
79            test/test_load.py, test/test_map.py, test/test_session.py:
80            Updated the tests to use the new functions that are in the
81            respective classes.
82    
83            * Thuban/Model/classification.py (Classification):
84            Uses the new ClassData* classes. Modification messages are
85            passed up to the parent layer (if it exists).
86            (ClassData): New class to encapsulate the common data in each
87            classification property.
88            (ClassDataDefault): Represents the Default class. data.
89            (ClassDataPoint): Represents a single class. data point
90            (ClassDataRange): Represents a class. range
91            (ClassDataMap): Represents a class. map (unused).
92    
93            * Thuban/Model/color.py: Added Color.None to represent something
94            with no color. Color.Black represents the color black.
95            (NoColor): Helper class derived from Color to represent something
96            with no color.
97    
98            * Thuban/Model/layer.py (Layer): Removed references to fill, stroke,
99            stroke_width attributes. Made the 'classification' attribute private.
100            New methods for setting/getting the classification.
101    
102            * Thuban/Model/load.py (ProcessSession): Use new methods on Layer
103            to get the classifcation and use the new ClassData* classes to
104            hold the classification data. Use Str2Num to convert numbers
105            properly.
106    
107            * Thuban/Model/save.py (Saver): Use new Color and Classification
108            methods
109    
110            * Thuban/UI/classifier.py (ClassGrid): New class to represent a
111            custom grid.
112            (ClassTable): Support for editing Values and Labels and for
113            changing what type (point or range) of data is stored in each
114            property based on how the user enters the data.
115            (Classifier): Support for saving the new classifications and
116            launching the dialog to edit a property.
117            (SelectPropertiesDialog): New class for editing the visual
118            properties of a classification (stroke color, width, and fill color)
119            (ClassPreviewer): Took the Draw method from ClassRenderer and
120            made most of it into this new class. Intend to use this class in
121            the SelectPropertiesDialog for previewing changes.
122    
123            * Thuban/UI/renderer.py: Use new Color and Classification methods.
124    
125            * Thuban/UI/tree.py: Formatting changes.
126    
127            * Doc/thuban.dtd: Add 'label' element
128    
129            * Thuban/common.py: New. Contains common routines used throughout
130            the code.
131            (Str2Num): Takes a string and converts it to the "best" type of
132            number.
133    
134    2003-02-14  Bernhard Herzog  <[email protected]>
135    
136            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Make sure that the
137            dragging flag is always set to 0 even when the tool implementation
138            raises an exception
139    
140  2003-02-11  Bernhard Herzog  <[email protected]>  2003-02-11  Bernhard Herzog  <[email protected]>
141    
142          * Thuban/UI/application.py (ThubanApplication.splash_screen): New          * Thuban/UI/application.py (ThubanApplication.splash_screen): New
# Line 19  Line 158 
158    
159  2003-02-10  Jonathan Coles  <[email protected]>  2003-02-10  Jonathan Coles  <[email protected]>
160    
161          * Thuban/Model/save.py (Saver.open_element, Saver.close_element):          * Thuban/Model/save.py (Saver.open_element, Saver.close_element):
162          Added element_open variable to track opening and closing of tags          Added element_open variable to track opening and closing of tags
163          so that tags that don't span more than one line are closed with          so that tags that don't span more than one line are closed with
164          /> instead of </tag_name>. Use the GetDefault*() methods of          /> instead of </tag_name>. Use the GetDefault*() methods of
# Line 32  Line 171 
171          (ClassData): New class to encapsulate the classification data          (ClassData): New class to encapsulate the classification data
172    
173          * Thuban/Model/layer.py (Layer): Remove the          * Thuban/Model/layer.py (Layer): Remove the
174          Set[Fill|Stroke|StrokeWidth]() methods. Code should call the          Set[Fill|Stroke|StrokeWidth]() methods. Code should call the
175          SetDefault*() methods on the layer's classification object.          SetDefault*() methods on the layer's classification object.
176          (Layer.__init__): Use the new SetDefault*() methods in the          (Layer.__init__): Use the new SetDefault*() methods in the
177          Classification class.          Classification class.
178    
179          * Thuban/Model/load.py (ProcessSession): Use the new ClassData          * Thuban/Model/load.py (ProcessSession): Use the new ClassData
180          object instead of a dictionary.          object instead of a dictionary.
181    
182          * Thuban/UI/classifier.py (ClassRenderer): New class to          * Thuban/UI/classifier.py (ClassRenderer): New class to
183          draw the classifications in the dialog box's table.          draw the classifications in the dialog box's table.
184          (Classifier): Modified to use the ClassRenderer class.          (Classifier): Modified to use the ClassRenderer class.
185    
186          * Thuban/UI/mainwindow.py (MainWindow): Use the SetDefault*()          * Thuban/UI/mainwindow.py (MainWindow): Use the SetDefault*()
187          methods of the Classification class.              methods of the Classification class.
188    
189          * Thuban/UI/renderer.py (MapRenderer): Use the Get*() methods          * Thuban/UI/renderer.py (MapRenderer): Use the Get*() methods
190          of the ClassData class.          of the ClassData class.
# Line 68  Line 207 
207  2003-01-28  Jonathan Coles  <[email protected]>  2003-01-28  Jonathan Coles  <[email protected]>
208    
209          * Thuban/UI/classifier.py (Classifier): Resolved merging conflicts.          * Thuban/UI/classifier.py (Classifier): Resolved merging conflicts.
210          Fixed crashing problem on some systems. Dialog box shows          Fixed crashing problem on some systems. Dialog box shows
211          classification data.          classification data.
212    
213          * Thuban/UI/tree.py (SessionTreeCtrl.add_items): Handle drawing          * Thuban/UI/tree.py (SessionTreeCtrl.add_items): Handle drawing
# Line 81  Line 220 
220          function to add information about the classification into the          function to add information about the classification into the
221          tree view.          tree view.
222    
223  2003-01-27      Jan-Oliver Wagner <[email protected]>  2003-01-27  Jan-Oliver Wagner <[email protected]>
224    
225          * Thuban/__init__.py (_): New.          * Thuban/__init__.py (_): New.
226    
227          * Thuban/Model/classification.py, Thuban/Model/extension.py,          * Thuban/Model/classification.py, Thuban/Model/extension.py,
228          Thuban/Model/layer.py, Thuban/Model/load.py, Thuban/Model/map.py,          Thuban/Model/layer.py, Thuban/Model/load.py, Thuban/Model/map.py,
229          Thuban/Model/session.py, Thuban/UI/application.py, Thuban/UI/classifier.py,          Thuban/Model/session.py, Thuban/UI/application.py,
230          Thuban/UI/context.py, Thuban/UI/controls.py, Thuban/UI/identifyview.py,          Thuban/UI/classifier.py, Thuban/UI/context.py, Thuban/UI/controls.py,
231          Thuban/UI/labeldialog.py, Thuban/UI/mainwindow.py, Thuban/UI/menu.py,          Thuban/UI/identifyview.py, Thuban/UI/labeldialog.py,
232          Thuban/UI/proj4dialog.py, Thuban/UI/renderer.py, Thuban/UI/tree.py,          Thuban/UI/mainwindow.py, Thuban/UI/menu.py, Thuban/UI/proj4dialog.py,
233          Thuban/Lib/connector.py, Thuban/Lib/fileutil.py:          Thuban/UI/renderer.py, Thuban/UI/tree.py, Thuban/Lib/connector.py,
234          Replace user string by _() for i18n.          Thuban/Lib/fileutil.py: Replace user string by _() for i18n.
235    
236  2003-01-27  Jonathan Coles  <[email protected]>  2003-01-27  Jonathan Coles  <[email protected]>
237    
238    * Thuban/Model/layer.py: Classification initialization calls.          * Thuban/Model/layer.py: Classification initialization calls.
239    
240    * Thuban/Model/classification.py: Created class to encapsulate          * Thuban/Model/classification.py: Created class to encapsulate
241    a layer classification. Supports specific data points and          a layer classification. Supports specific data points and
242    ranges.          ranges.
243    
244    * Thuban/Model/load.py: Added support for loading classification          * Thuban/Model/load.py: Added support for loading classification
245    information.          information.
246    
247    * Thuban/Model/save.py: Added support for saving classification          * Thuban/Model/save.py: Added support for saving classification
248    information.          information.
249    
250    * Thuban/UI/classifier.py: Initial class for a dialog box for          * Thuban/UI/classifier.py: Initial class for a dialog box for
251    specifying classification information.          specifying classification information.
252    
253    * Thuban/UI/mainwindows.py: Support for opening the classifier          * Thuban/UI/mainwindows.py: Support for opening the classifier
254    dialog.          dialog.
255    
256    * Thuban/UI/renderer.py: Support for drawing a layer with the          * Thuban/UI/renderer.py: Support for drawing a layer with the
257    classification information.          classification information.
258    
259    * Data/iceland_sample_class.thuban: iceland_sample with          * Data/iceland_sample_class.thuban: iceland_sample with
260    classification data.          classification data.
261    
262    * test/test_classification: Tests for the Classification class.          * test/test_classification: Tests for the Classification class.
263    
264  2002-12-09  Bernhard Herzog  <[email protected]>  2002-12-09  Bernhard Herzog  <[email protected]>
265    
# Line 156  Line 295 
295          * Thuban/UI/mainwindow.py: Altered the order of tools in the          * Thuban/UI/mainwindow.py: Altered the order of tools in the
296          toolbar: First now are all navigation tools (Zoom In/Out, Pan,          toolbar: First now are all navigation tools (Zoom In/Out, Pan,
297          Full Extent).          Full Extent).
298        
299  2002-10-23  Bernhard Herzog  <[email protected]>  2002-10-23  Bernhard Herzog  <[email protected]>
300    
301          * setup.py (setup call): version now 0.1.3          * setup.py (setup call): version now 0.1.3
# Line 267  Line 406 
406          * Thuban/UI/mainwindow.py (MainWindow.OnClose): Unsubscribe          * Thuban/UI/mainwindow.py (MainWindow.OnClose): Unsubscribe
407          VIEW_POSITION          VIEW_POSITION
408    
409  2002-09-04  Frank Koormann   <[email protected]>  2002-09-04  Frank Koormann  <[email protected]>
410    
411          * Resources/Bitmaps/fullextent.xpm: Updated Icon (removed "potatoe")          * Resources/Bitmaps/fullextent.xpm: Updated Icon (removed "potatoe")
412    
# Line 354  Line 493 
493    
494          * Thuban/Model/table.py (Table.write_record): New method to write          * Thuban/Model/table.py (Table.write_record): New method to write
495          records.          records.
496          (Table.__init__): Open the DBF file for writing too.          (Table.__init__): Open the DBF file for writing too.
497    
498          * Thuban/UI/controls.py (RecordTable.SetValue): Write the value          * Thuban/UI/controls.py (RecordTable.SetValue): Write the value
499          into the underlying table.          into the underlying table.
# Line 392  Line 531 
531          * setup.py (ThubanInstall.run): Don't repr install_lib_orig          * setup.py (ThubanInstall.run): Don't repr install_lib_orig
532          because thubaninit_contents will do it for us.          because thubaninit_contents will do it for us.
533    
534  2002-08-16      Jan-Oliver Wagner <[email protected]>  2002-08-16  Jan-Oliver Wagner <[email protected]>
535    
536          * Thuban/UI/mainwindow.py: menu item 'show session tree' now disable if          * Thuban/UI/mainwindow.py: menu item 'show session tree' now disable if
537          tree window already open          tree window already open
# Line 520  Line 659 
659          * 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
660          CHANGED channel to be informed of changes.          CHANGED channel to be informed of changes.
661          (SessionTreeCtrl.session_channels): Not needed any longer.          (SessionTreeCtrl.session_channels): Not needed any longer.
662          (SessionTreeCtrl.unsubscribe_all, SessionTreeCtrl.session_changed):          (SessionTreeCtrl.unsubscribe_all, SessionTreeCtrl.session_changed):
663          Only have to (un)subscribe CHANGED          Only have to (un)subscribe CHANGED
664    
665          * Thuban/Model/map.py (Map.TreeInfo): Deal better with empty maps.          * Thuban/Model/map.py (Map.TreeInfo): Deal better with empty maps.
# Line 581  Line 720 
720          * Thuban/Model/layer.py (Layer.TreeInfo),          * Thuban/Model/layer.py (Layer.TreeInfo),
721          Thuban/Model/extension.py (Extension.TreeInfo),          Thuban/Model/extension.py (Extension.TreeInfo),
722          Thuban/Model/map.py (Map.TreeInfo),          Thuban/Model/map.py (Map.TreeInfo),
723          Thuban/Model/session.py (Session.TreeInfo):          Thuban/Model/session.py (Session.TreeInfo):
724          Add TreeInfo methods to implement the new tree view update scheme          Add TreeInfo methods to implement the new tree view update scheme
725    
726  2002-07-16  Bernhard Herzog  <[email protected]>  2002-07-16  Bernhard Herzog  <[email protected]>
# Line 662  Line 801 
801          * setup.py: In the setup call, make sure that the library          * setup.py: In the setup call, make sure that the library
802          directories are under $prefix/lib not directly under $prefix.          directories are under $prefix/lib not directly under $prefix.
803    
804  2002-06-20      Jan-Oliver Wagner <[email protected]>  2002-06-20  Jan-Oliver Wagner <[email protected]>
805    
806          * Thuban/Model/extension.py: new module to handle extension objects.          * Thuban/Model/extension.py: new module to handle extension objects.
807          * Thuban/Model/messages.py: new messages for extensions.          * Thuban/Model/messages.py: new messages for extensions.
# Line 891  Line 1030 
1030          * Thuban/UI/messages.py (VIEW_POSITION): New message for the          * Thuban/UI/messages.py (VIEW_POSITION): New message for the
1031          position in the statusbar          position in the statusbar
1032    
1033  2002-04-26      Frank Koormann <[email protected]>  2002-04-26  Frank Koormann <[email protected]>
1034    
1035          * Thuban/UI/mainwindow.py: AddLayer, Dialog title s/session/data          * Thuban/UI/mainwindow.py: AddLayer, Dialog title s/session/data
1036    
1037  2002-04-24      Frank Koormann <[email protected]>  2002-04-24  Frank Koormann <[email protected]>
1038            
1039          * Resources/Bitmaps/identify.xpm: shadow added          * Resources/Bitmaps/identify.xpm: shadow added
1040    
1041          * Resources/Bitmaps/fullextent.xpm: new          * Resources/Bitmaps/fullextent.xpm: new
           
 2002-04-22      Jan-Oliver Wagner <[email protected]>  
1042    
1043          * Thuban/UI/tree.py (update_tree): added test for None on map bounding box  2002-04-22  Jan-Oliver Wagner <[email protected]>
1044    
1045  2002-04-21      Jan-Oliver Wagner <[email protected]>          * Thuban/UI/tree.py (update_tree): added test for None on map bounding
1046            box
1047    
1048    2002-04-21  Jan-Oliver Wagner <[email protected]>
1049    
1050          * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog): new          * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog): new
1051    
1052          * Thuban/UI/tree.py (update_tree): added added map extent          * Thuban/UI/tree.py (update_tree): added added map extent
1053    
1054          * Thuban/UI/mainwindow.py (_method_command): extended by parameter          * Thuban/UI/mainwindow.py (_method_command): extended by parameter
1055          icon; added map_full_extend as tool          icon; added map_full_extend as tool
1056    
1057  2002-04-19      Jan-Oliver Wagner <[email protected]>  2002-04-19  Jan-Oliver Wagner <[email protected]>
1058    
1059          * Thuban/UI/mainwindow.py (SaveSession): launch save as dialog for          * Thuban/UI/mainwindow.py (SaveSession): launch save as dialog for
1060          saving _new_ sessions          saving _new_ sessions
# Line 1016  Line 1156 
1156    
1157          * setup.py: increase version number to 0.1          * setup.py: increase version number to 0.1
1158          (data_dist): New command class for data distribution          (data_dist): New command class for data distribution
           
1159    
1160  2001-09-14  Bernhard Herzog  <[email protected]>  2001-09-14  Bernhard Herzog  <[email protected]>
1161    
1162          * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):          * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):
1163          Handle the case of no layer (i.e. layer is None) properly.          Handle the case of no layer (i.e. layer is None) properly.
1164    
1165          * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):          * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):
1166          Set the initial selection of the combo boxes to reflect the          Set the initial selection of the combo boxes to reflect the
1167          projection we're starting with in a way that works on windows,          projection we're starting with in a way that works on windows,
1168          too.          too.
# Line 1133  Line 1272 
1272          (MainWindow.identify_view_on_demand): Store the interactor in an          (MainWindow.identify_view_on_demand): Store the interactor in an
1273          instvar and use that reference instead of going through main.app          instvar and use that reference instead of going through main.app
1274    
1275          * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):          * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):
1276          * Thuban/UI/application.py (ThubanApplication.OnInit):          * Thuban/UI/application.py (ThubanApplication.OnInit):
1277          * Thuban/UI/main.py (main): Create the session tree view in main          * Thuban/UI/main.py (main): Create the session tree view in main
1278          with the new mainwindow method ShowSessionTree and not directly          with the new mainwindow method ShowSessionTree and not directly
1279          the application's OnInit method          the application's OnInit method
# Line 1150  Line 1289 
1289          layer to the tableview dialog.          layer to the tableview dialog.
1290    
1291          * Thuban/UI/tableview.py: Add some doc-strings          * Thuban/UI/tableview.py: Add some doc-strings
1292          (TableGrid):          (TableGrid):
1293          (TableGrid.OnRangeSelect):          (TableGrid.OnRangeSelect):
1294          (TableGrid.OnSelectCell):          (TableGrid.OnSelectCell):
1295          (TableFrame.__init__):          (TableFrame.__init__):
# Line 1217  Line 1356 
1356  2001-09-05  Bernhard Herzog  <[email protected]>  2001-09-05  Bernhard Herzog  <[email protected]>
1357    
1358          * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.          * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.
1359            
1360          * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument          * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument
1361          interactor to pass through to the MapCanvas          interactor to pass through to the MapCanvas
1362            
1363          * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new          * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new
1364          argument to the MainWindow constructor to get rid of the ugly hack          argument to the MainWindow constructor to get rid of the ugly hack
1365          that made main.app available early just so that the mapcanvas          that made main.app available early just so that the mapcanvas
# Line 1267  Line 1406 
1406          (ThubanInstall.run): Remove the leading install root from the          (ThubanInstall.run): Remove the leading install root from the
1407          script filename if an install root was specified and use the new          script filename if an install root was specified and use the new
1408          link_file method          link_file method
1409            
1410          * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Fit the map to          * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Fit the map to
1411          the window when the first layer is added to the map.          the window when the first layer is added to the map.
1412    
# Line 1304  Line 1443 
1443          (InnoIconItem): Helper class for bdist_inno          (InnoIconItem): Helper class for bdist_inno
1444          (thuban_bdist_inno): Thuban specific version of bdist_inno. Added          (thuban_bdist_inno): Thuban specific version of bdist_inno. Added
1445          this together with the appropriate parameters, to the setup call.          this together with the appropriate parameters, to the setup call.
1446            
1447          * setup.cfg (bdist_inno): added new section for the inno setup          * setup.cfg (bdist_inno): added new section for the inno setup
1448          installer          installer
1449    

Legend:
Removed from v.402  
changed lines
  Added in v.434

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26