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

Legend:
Removed from v.269  
changed lines
  Added in v.399

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26