/[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 259 by bh, Thu Aug 15 12:48:13 2002 UTC revision 387 by jonathan, Mon Feb 3 11:44:41 2003 UTC
# Line 1  Line 1 
1    2003-02-03  Jonathan Coles  <[email protected]>
2    
3            * Thuban/Model/classification.py (Classification): Added getNull()
4            to return the NullData reference
5    
6            * Thuban/Model/layer.py (Layer.SetFill, Layer.SetStroke,
7            Layer.SetStrokeWidth): Modified these functions to change the
8            null data in the classification rather than keep these values
9            directly in the Layer class. Menu options to change these values
10            work again.
11    
12    2003-01-28  Jonathan Coles  <[email protected]>
13    
14            * Thuban/UI/classifier.py (Classifier): Resolved merging conflicts.
15            Fixed crashing problem on some systems. Dialog box shows
16            classification data.
17    
18            * Thuban/UI/tree.py (SessionTreeCtrl.add_items): Handle drawing
19            Colors in the tree view.
20    
21            * Thuban/Model/layer.py (Layer.TreeInfo): Added a call to build
22            the tree info for classifications. Commented out unnecessary lines.
23    
24            * Thuban/Model/classification.py (Classification.TreeInfo): New
25            function to add information about the classification into the
26            tree view.
27    
28    2003-01-27      Jan-Oliver Wagner <[email protected]>
29    
30            * Thuban/__init__.py (_): New.
31    
32            * Thuban/Model/classification.py, Thuban/Model/extension.py,
33            Thuban/Model/layer.py, Thuban/Model/load.py, Thuban/Model/map.py,
34            Thuban/Model/session.py, Thuban/UI/application.py, Thuban/UI/classifier.py,
35            Thuban/UI/context.py, Thuban/UI/controls.py, Thuban/UI/identifyview.py,
36            Thuban/UI/labeldialog.py, Thuban/UI/mainwindow.py, Thuban/UI/menu.py,
37            Thuban/UI/proj4dialog.py, Thuban/UI/renderer.py, Thuban/UI/tree.py,
38            Thuban/Lib/connector.py, Thuban/Lib/fileutil.py:
39            Replace user string by _() for i18n.
40    
41    2003-01-27  Jonathan Coles  <[email protected]>
42    
43      * Thuban/Model/layer.py: Classification initialization calls.
44    
45      * Thuban/Model/classification.py: Created class to encapsulate
46      a layer classification. Supports specific data points and
47      ranges.
48    
49      * Thuban/Model/load.py: Added support for loading classification
50      information.
51    
52      * Thuban/Model/save.py: Added support for saving classification
53      information.
54    
55      * Thuban/UI/classifier.py: Initial class for a dialog box for
56      specifying classification information.
57    
58      * Thuban/UI/mainwindows.py: Support for opening the classifier
59      dialog.
60    
61      * Thuban/UI/renderer.py: Support for drawing a layer with the
62      classification information.
63    
64      * Data/iceland_sample_class.thuban: iceland_sample with
65      classification data.
66    
67      * test/test_classification: Tests for the Classification class.
68    
69    2002-12-09  Bernhard Herzog  <[email protected]>
70    
71            * test/test_command.py: New. Tests for the command classes.
72    
73            * Thuban/UI/command.py (ToolCommand): New class for tool commands.
74            (Command.IsTool): New method to distinguish between command
75            switching tools and other commands.
76    
77            * Thuban/UI/view.py (MapCanvas.SelectTool): New method to select
78            the tool to avoid direct assignments to instance variables
79            (MapCanvas.ZoomInTool, MapCanvas.ZoomOutTool, MapCanvas.PanTool)
80            (MapCanvas.IdentifyTool, MapCanvas.LabelTool): Use SelectTool to
81            change the tool
82    
83            * Thuban/UI/mainwindow.py (MainWindow.update_command_ui): If an
84            active tool's command turns insensitive, disable the tool.
85            (_tool_command): Use the new ToolCommand class
86    
87            * Examples/simple_extensions/simple_tool.py (simple_tool): Use the
88            SelectTool method to change the tool
89            (iconfile): Use the ToolCommand class
90    
91    2002-12-03  Bernhard Herzog  <[email protected]>
92    
93            * Thuban/UI/tree.py (SessionTreeCtrl.normalize_selection): Handle
94            the case of selected items that are not children of Layers or Maps
95            properly. Previously this bug would trigger an assertion in
96            wxWindows.
97    
98    2002-11-06  Frank Koormann  <[email protected]>
99    
100            * Thuban/UI/mainwindow.py: Altered the order of tools in the
101            toolbar: First now are all navigation tools (Zoom In/Out, Pan,
102            Full Extent).
103        
104    2002-10-23  Bernhard Herzog  <[email protected]>
105    
106            * setup.py (setup call): version now 0.1.3
107    
108            * MANIFEST.in: Add the files in test/
109    
110            * test/README: Add note about tests requiring the iceland data
111    
112            * Thuban/UI/mainwindow.py (MainWindow.About): Add 2002 to
113            copyright notice.
114    
115    2002-10-18  Bernhard Herzog  <[email protected]>
116    
117            * test/test_map.py
118            (TestMapWithContents.test_projected_bounding_box): Use an explicit
119            epsilon.
120    
121            * test/support.py (FloatComparisonMixin.assertFloatEqual)
122            (FloatComparisonMixin.assertFloatSeqEqual): give a more useful
123            message if the assertion fails and don't return the return value
124            of self.assert_. In assertFloatSeqEqual the return meant that not
125            all items of the sequence were compared.
126    
127    2002-09-20  Bernhard Herzog  <[email protected]>
128    
129            * test/test_fileutil.py: New. Test cases for Thuban.Lib.fileutil
130    
131            * Thuban/Lib/fileutil.py: Fixup some whitespace and typos
132    
133            * test/test_map.py (TestMapWithContents.test_tree_info): Create
134            the string with the bounding box on the fly because of platform
135            differences in the way %g is handled.
136    
137            * test/test_layer.py (TestLayer.test_empty_layer): Create an empty
138            DBFfile too because Thuban layers can't yet cope missing DBF
139            files.
140    
141    2002-09-20  Bernhard Herzog  <[email protected]>
142    
143            * test/test_menu.py: Use initthuban instead of
144            add_thuban_dir_to_path to initialize Thuban.
145    
146            * test/support.py (FloatComparisonMixin.assertFloatEqual): New.
147            Mixin class for float comparisons
148            (SubscriberMixin): New. Mixin class to test messages sent through
149            the Connector class
150    
151            * test/README: Fix a typo and add the -v flag to the command for
152            individual tests
153    
154            * test/test_session.py: New. Test cases for Thuban.Model.session
155    
156            * test/test_proj.py: New. Test cases for Thuban.Model.proj
157    
158            * test/test_map.py: New. Test cases for Thuban.Model.map
159    
160            * test/test_layer.py: New. Test cases for Thuban.Model.layer
161    
162            * test/test_label.py: New. Test cases for Thuban.Model.label
163    
164            * test/test_connector.py: New. Test cases for Thuban.Lib.connector
165    
166            * test/test_color.py: New. Test cases for Thuban.Model.color
167    
168            * test/test_base.py: New. Test cases for Thuban.Model.base
169    
170    2002-09-13  Bernhard Herzog  <[email protected]>
171    
172            * Thuban/Model/session.py (Session.forwarded_channels): Forward
173            the CHANGED channel too.
174    
175            * Thuban/Model/map.py (Map.forwarded_channels): Forward the
176            CHANGED channel too.
177            (Map.__init__): Call the Modifiable constructor as well.
178    
179            * Thuban/Model/base.py (Modifiable.UnsetModified): Issue a CHANGED
180            event if the modified flag changes.
181            (Modifiable.changed): Tweak the doc-string.
182    
183            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed)
184            (MainWindow.set_position_text): Put the code that puts the text
185            with the mouse position into the status bar into the new method
186            set_position_text so that it can overwritten in derived classes.
187    
188    2002-09-12  Bernhard Herzog  <[email protected]>
189    
190            * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): Center the
191            message box on the main window.
192    
193    2002-09-11  Bernhard Herzog  <[email protected]>
194    
195            * Thuban/UI/mainwindow.py: Underline the 'x' in "Exit" instead of
196            the 'E' because it's less likely to interfere with other menu
197            entries.
198            (MainWindow.build_menu): remove an incorrect comment.
199    
200    2002-09-10  Bernhard Herzog  <[email protected]>
201    
202            * Thuban/UI/mainwindow.py (MainWindow.Map): New.
203            (_tool_command): Add sensitive parameter
204            (_has_visible_map): Sensitivity callback to tools and other
205            commands that require a visible map. Use it in map_zoom_in_tool,
206            map_zoom_out_tool, map_pan_tool, map_identify_tool, map_label_tool
207            and map_full_extent
208    
209    2002-09-06  Bernhard Herzog  <[email protected]>
210    
211            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Unsubscribe
212            VIEW_POSITION
213    
214    2002-09-04  Frank Koormann   <[email protected]>
215    
216            * Resources/Bitmaps/fullextent.xpm: Updated Icon (removed "potatoe")
217    
218    2002-09-02  Bernhard Herzog  <[email protected]>
219    
220            * Thuban/UI/view.py: Get rid of the idle redraw. This is done by
221            wxWindows already and our implementation doesn't work correctly
222            with wxGTK 2.3:
223            (MapCanvas.__init__): Remove the instance variable
224            (MapCanvas.OnPaint): Always call do_redraw when there's a map to
225            be drawin
226            (MapCanvas.OnIdle): Removed.
227    
228            * Thuban/UI/view.py (MapCanvas.unprojected_rect_around_point): Add
229            a parameter to determine the size of the rectangle.
230            (MapCanvas.find_shape_at): Create the box around the point on a
231            layer by layer basis and make the size depend on the shape type.
232            This solves a problem with the selection of point shapes at the
233            border of the layer's bounding box
234    
235    2002-08-30  Bernhard Herzog  <[email protected]>
236    
237            * Thuban/UI/mainwindow.py (MainWindow.CanRemoveLayer): New method
238            for the sensitivity  of remove layer.
239            (_can_remove_layer): New. Sensitivity callback for remove layer
240            (Command layer_remove): Use _can_remove_layer
241    
242            * Thuban/Model/map.py (Map.CanRemoveLayer): New method to
243            determine whether a given layer can be deleted.
244    
245            * Thuban/UI/view.py (MapCanvas.__init__, MapCanvas.OnPaint)
246            (MapCanvas.do_redraw): Get rid of the unused update_region
247            instance variable
248    
249            * Thuban/UI/view.py: Add/update some doc-strings.
250    
251            * test/: new subdirectory with a bunch of unit tests.
252    
253            * test/README, test/test_table.py, test/test_save.py,
254            test/test_menu.py, test/test_load.py: Initial set of tests and
255            brief instructions on how to run them
256    
257    2002-08-29  Bernhard Herzog  <[email protected]>
258    
259            * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Handle
260            arcs with multiple parts.
261    
262            * Thuban/UI/view.py (ZoomInTool.MouseUp, ZoomOutTool.MouseUp):
263            Handle degenrate rectangles.
264    
265            * Thuban/Model/table.py: Make writing records work correctly:
266            (Table.__init__): Keep track of whether the DBF is open for
267            writing
268            (Table.write_record): Open the DBF file for writing when necessary
269    
270    2002-08-27  Bernhard Herzog  <[email protected]>
271    
272            * Thuban/Model/table.py (Table.write_record, Table.__init__): Open
273            dbf files only for reading by default. Use a new writable dbf
274            object for writing.
275    
276    2002-08-26  Bernhard Herzog  <[email protected]>
277    
278            * Thuban/UI/mainwindow.py: Refactor the context creation:
279            (MainWindow.Context): New method to return a context
280            (MainWindow.invoke_command, MainWindow.update_command_ui): Use the
281            new method
282    
283            * Thuban/UI/tableview.py (TableGrid, LayerTableGrid): Split the
284            layer table specific code from TableGrid into LayerTableGrid
285            (TableFrame, LayerTableFrame): Split the layer table specific code
286            from TableFrame into LayerTableFrame
287            (LayerTableGrid.select_shape): Remove a debug print
288    
289            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Use the
290            LayerTableFrame
291    
292    2002-08-23  Bernhard Herzog  <[email protected]>
293    
294            * Thuban/Model/layer.py (Layer.__init__): Make sure we have an
295            absolute filename.
296    
297    2002-08-22  Bernhard Herzog  <[email protected]>
298    
299            * Thuban/Model/table.py (Table.write_record): New method to write
300            records.
301            (Table.__init__): Open the DBF file for writing too.
302    
303            * Thuban/UI/controls.py (RecordTable.SetValue): Write the value
304            into the underlying table.
305    
306            * extensions/shapelib/shapefil.h (DBFCommit),
307            extensions/shapelib/dbfopen.c (DBFCommit): New API function to
308            commit any changes made to the DBF file.
309    
310            * Thuban/UI/mainwindow.py (make_check_current_tool)
311            (_tool_command): Put the code that generates the "checked"
312            callback into a separate function so that we can reuse it
313            elsewhere
314    
315            * Thuban/Model/save.py (Saver): New class to handle serializing a
316            session into an XML file. The main reason to introduce a class is
317            that applications built on Thuban can derive from it so that they
318            can save additional information in a session file.
319            (save_session): Delegate almost all the work to the Saver class.
320            Rename the filename argument to file because it may be a file like
321            object now.
322    
323            * Thuban/Model/load.py: Get rid of the Python 1.5.2 compatibility
324            code. Remove the little test code which would be executed when the
325            module is run as a script which didn't work anymore since it can't
326            import the other Thuban modules.
327            (ProcessSession, load_session): Refactor the ProcessSession to
328            have one method for each element start and end tag so that derived
329            classes can easily override the processing of individual tags.
330            Also, always parse with namespaces enabled because applications
331            built on top of Thuban will likely use namespaces if they extend
332            the session file format.
333    
334    2002-08-21  Bernhard Herzog  <[email protected]>
335    
336            * setup.py (ThubanInstall.run): Don't repr install_lib_orig
337            because thubaninit_contents will do it for us.
338    
339    2002-08-16      Jan-Oliver Wagner <[email protected]>
340    
341            * Thuban/UI/mainwindow.py: menu item 'show session tree' now disable if
342            tree window already open
343    
344  2002-08-15  Bernhard Herzog  <[email protected]>  2002-08-15  Bernhard Herzog  <[email protected]>
345    
346            * Thuban/Model/layer.py (Layer.Destroy): Call the unboundd method
347            with self.
348    
349            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Only release the mouse
350            when we have actually captured it.
351    
352          * Thuban/Model/layer.py (Layer.Destroy): New. Explicitly close the          * Thuban/Model/layer.py (Layer.Destroy): New. Explicitly close the
353          shapefile and destroy the table.          shapefile and destroy the table.
354    

Legend:
Removed from v.259  
changed lines
  Added in v.387

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26