/[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 786 by bh, Wed Apr 30 10:54:32 2003 UTC revision 848 by frank, Wed May 7 07:20:52 2003 UTC
# Line 1  Line 1 
1    2003-05-07  Frank Koormann <[email protected]>
2    
3            * Resources/Bitmaps/fulllayerextent.xpm,
4            Resources/Bitmaps/fullselextent.xpm: Replaced the place holders with
5            new icons.
6    
7    2003-05-06  Bernhard Herzog  <[email protected]>
8    
9            * Thuban/Model/transientdb.py (AutoTransientTable.SimpleQuery):
10            New. Simply delegate to the transient table's version.
11    
12            * test/test_transientdb.py
13            (TestTransientTable.test_auto_transient_table_query): New. Test
14            case for AutoTransientTable's SimpleQuery
15    
16    2003-05-06  Bernhard Herzog  <[email protected]>
17    
18            * Thuban/Model/transientdb.py (TransientTableBase.SimpleQuery):
19            Implement a simple query method for the query dialog
20            (TransientTableBase.create): Add an INTEGER PRIMARY KEY that holds
21            the row index or shapeid.
22            (TransientTable.create): Insert the right value of the row index
23            (TransientJoinedTable.create): Copy the row index of the left
24            table to the joined result table
25    
26            * test/test_transientdb.py
27            (TestTransientTable.test_transient_table_read_twice): Fix
28            doc-string
29            (TestTransientTable.test_transient_table_query): New. Test for the
30            SimpleQuery method
31    
32    2003-05-06  Bernhard Herzog  <[email protected]>
33    
34            Convert all table users to use the new table interface. This only
35            covers Thuban itself, not GREAT-ER or other applications built on
36            Thuban yet, so the compatibility interface stays in place for the
37            time being but it now issues DeprecationWarnings.
38    
39            Finally, the new Table interface has a new method, HasColumn.
40    
41            * Thuban/Model/table.py (OldTableInterfaceMixin): All methods
42            issue deprecation warnings when they're. The warnings refer to the
43            caller of the method.
44            (OldTableInterfaceMixin.__deprecation_warning): New. Helper method
45            for the deprecation warnings
46    
47            * test/test_table.py: Ignore the deprecation warnings for the old
48            table in the tests in this module. The purpose of the tests is to
49            test the old interface, after all.
50    
51            * test/test_transientdb.py
52            (TestTransientTable.run_iceland_political_tests): Use the
53            constants for the types. Add a test for HasColumn
54            (TestTransientTable.test_transient_joined_table): Adapt to new
55            table interface. Add a test for HasColumn
56            (TestTransientTable.test_transient_table_read_twice): Adapt to new
57            table interface
58    
59            * Thuban/UI/tableview.py (DataTable.SetTable, DataTable.GetValue):
60            Adapt to new table interface
61    
62            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Adapt to
63            new table interface
64    
65            * Thuban/UI/controls.py (RecordListCtrl.fill_list)
66            (RecordTable.SetTable): Adapt to new table interface
67    
68            * Thuban/UI/classifier.py (Classifier.__init__)
69            (Classifier.__init__): Adapt to new table interface
70    
71            * Thuban/UI/classgen.py (ClassGenDialog.__init__)
72            (GenUniformPanel._OnRetrieve, GenUniquePanel._OnRetrieve): Adapt
73            to new table interface
74    
75            * Thuban/Model/transientdb.py (TransientTableBase.HasColumn)
76            (AutoTransientTable.HasColumn): Implement the new table interface
77            method
78            (AutoTransientTable.ReadRowAsDict, AutoTransientTable.ValueRange)
79            (AutoTransientTable.UniqueValues): Adapt to new table interface
80    
81            * Thuban/Model/layer.py (Layer.SetShapeStore, Layer.GetFieldType):
82            Adapt to new table interface
83    
84            * test/test_layer.py (TestLayer.open_shapefile): Helper method to
85            simplify opening shapefiles a bit easier.
86            (TestLayer.test_arc_layer, TestLayer.test_polygon_layer)
87            (TestLayer.test_point_layer): Use the new helper method
88            (TestLayer.test_get_field_type): New. Test for the GetFieldType
89            method
90    
91            * test/test_dbf_table.py (TestDBFTable.test_has_column): Test for
92            the new table method
93    
94            * test/test_memory_table.py (TestMemoryTable.test_has_column):
95            Test for the new table method HasColumn
96    
97    2003-05-06  Jonathan Coles   <[email protected]>
98    
99            Addresses the "Selection Extent" wish of RTbug #1787.
100    
101            * Resources/Bitmaps/fulllayerextent.xpm,
102            Resources/Bitmaps/fullselextent.xpm: Bitmaps for layer and selection
103            extent. These are just place holders for the real bitmaps.
104    
105            * Thuban/Model/layer.py (Shape): Since a Shape is immutable only
106            calculate the bounding box once (the first time compute_bbox() is
107            called).
108            (Layer.ShapesBoundingBox): New. Given a list of shape ids, return
109            the bounding box for the shapes in lat/long coordinates.
110    
111            * Thuban/UI/mainwindow.py: Added new "Full selection extent" menu
112            option.
113            (MainWindow.has_selected_shapes): New. Returns true if there are
114            any selected shapes.
115            (MainWindow.FullSelectionExtent): New. Calls
116            MapCanvas.FitSelectedToWindow() when the user selects the menu option.
117            (_has_selected_shapes): New. Returns true if there are any
118            selected shapes.
119    
120            * Thuban/UI/selection.py (Selection.HasSelectedShapes): New. Returns
121            true if there are any selected shapes.
122    
123            * Thuban/UI/view.py (MapCanvas): Added delegated method
124            HasSelectedShapes.
125            (MapCanvas.FitSelectedToWindow): New. Centers and scales any selected
126            shapes on the canvas using the map projection (if any).
127    
128            * test/test_layer.py (TestLayer.test_arc_layer): Add some tests
129            for Layer.ShapesBoundingBox().
130    
131    2003-05-06  Bernhard Herzog  <[email protected]>
132    
133            * Resources/Projections/defaults.proj: Fix spelling of Mercator
134    
135    2003-05-05  Jonathan Coles   <[email protected]>
136    
137            Addresses the "Full Layer Extent" wish of RTbug #1787.
138    
139            * Resources/Projections/defaults.proj: Added UK National Grid.
140    
141            * Thuban/UI/mainwindow.py: Added new "Full layer extent" menu option.
142            (MainWindow.FullLayerExtent): New. Calls MapCanvas.FitLayerToWindow()
143            when the user selects the menu option.
144    
145            * Thuban/UI/view.py (MapCanvas.FitLayerToWindow): New. Centers and
146            scales the given layer on the canvas using the map projection.
147    
148    2003-05-05  Bernhard Herzog  <[email protected]>
149    
150            Convert the table implementations to a new table interface. All
151            tables use a common mixin class to provide backwards compatibility
152            until all table users have been updated.
153    
154            * Thuban/Model/table.py (OldTableInterfaceMixin): Mixin class to
155            provide backwards compatibility for table classes implementing the
156            new interface
157            (DBFTable, MemoryTable): Implement the new table interface. Use
158            OldTableInterfaceMixin as base for compatibility
159            (DBFColumn, MemoryColumn): New. Column description for DBFTable
160            and MemoryTable resp.
161    
162            * test/test_dbf_table.py: New. Test cases for the DBFTable with
163            the new table interface.
164    
165            * test/test_memory_table.py: New. Test cases for the MemoryTable
166            with the new table interface.
167    
168            * test/test_table.py: Document the all tests in this file as only
169            for backwards compatibility. The equivalent tests for the new
170            interface are in test_memory_table.py and test_dbf_table.py
171            (MemoryTableTest.test_read): field_info should be returning tuples
172            with four items
173            (MemoryTableTest.test_write): Make doc-string a more precise.
174    
175            * Thuban/Model/transientdb.py (TransientTableBase): Convert to new
176            table interface. Derive from from OldTableInterfaceMixin for
177            compatibility.
178            (TransientTableBase.create): New intance variable column_map to
179            map from names and indices to column objects
180            (TransientTable.create): Use the new table interface of the input
181            table
182            (AutoTransientTable): Convert to new table interface. Derive from
183            from OldTableInterfaceMixin for compatibility.
184            (AutoTransientTable.write_record): Removed. It's not implemented
185            yet and we still have to decide how to handle writing with the new
186            table and data framework.
187    
188            * test/test_transientdb.py
189            (TestTransientTable.run_iceland_political_tests)
190            (TestTransientTable.test_transient_joined_table): Use the new
191            table interface
192    
193    2003-05-05  Jonathan Coles   <[email protected]>
194    
195            This is namely a collection of UI updates to improve user interactivity.
196            Tabbing between controls now exists and you can use ESC to close dialog
197            boxes; ENTER will active the default button.
198    
199            * Thuban/UI/classgen.py (ClassGenDialog.__init__): Rearrange the
200            order that the controls are created so that tabbing works correctly.
201            (ClassGenDialog.OnOK): Renamed from _OnGenerate() so that the
202            wxDialog can handle the default button correctly.
203            (ClassGenDialog.OnCancel): Renamed from _OnCloseBtn() for the
204            same reasons as for OnOK.
205            (GenUniformPanel._OnRetrieve): Call wxBeginBusyCursor/wxEndBusyCursor
206            when we ask the table for the maximum/minimum values of a field
207            which could take a very long time.
208    
209            * Thuban/UI/classifier.py (Classifier.__init__): Rearrange the
210            order that the controls are created so that tabbing works correctly.
211            (SelectPropertiesDialog.__init__): Rearrange the order that the
212            controls are created so that tabbing works correctly.
213    
214            * Thuban/UI/dialogs.py: Copied NonModalDialog box and changed it
215            to derive from a wxDialog but behave like the original implementation
216            which was derived from a wxFrame. wxDialog provides useful key
217            handling functionality like ESC calling OnCancel and ENTER calling
218            OnOK which is lost with wxFrame.
219    
220            * Thuban/UI/mainwindow.py: Add "..." to menu items that will open
221            new dialogs.
222    
223            * Thuban/UI/projdialog.py (ProjFrame.__init__): Rearrange the
224            order that the controls are created so that tabbing works correctly.
225            (ProjFrame.OnApply): Renamed from _OnTry() to use wxDialog behaviour.
226            (ProjFrame.OnOK): Renamed from _OnOK() to use wxDialog behaviour.
227            (ProjFrame.OnCancel): Renamed from _OnClose() to use wxDialog behaviour.
228            (ProjPanel.__init__): Add "Airy" to the list of ellipsoids so we
229            can provide the "UK National Grid" as a default projection.
230            (UTMPanel.__init__): Rearrange the order that the controls are
231            created so that tabbing works correctly.
232    
233    2003-05-05  Bernhard Herzog  <[email protected]>
234    
235            * extensions/thuban/wxproj.cpp: Fix some of the comments.
236            (project_point): If a map projection but no layer projection is
237            given, convert degrees to radians before applying the map
238            projection.
239    
240            * Thuban/UI/tableview.py (TableGrid.disallow_messages)
241            (TableGrid.allow_messages): New methods to make it possible to
242            inhibit message sending.
243            (TableGrid.issue): Only send the message if not inhibited.
244            (LayerTableGrid.select_shape): Use the new methods to make sure
245            that no ROW_SELECTED message is sent while we're updating the
246            selected rows to match the selected shapes.
247    
248    2003-05-02  Jan-Oliver Wagner <[email protected]>
249    
250            Implementation of MemoryTable.
251    
252            * Thuban/Model/table.py (MemoryTable): New. Quite simple table
253            implementation that operates on a list of tuples. All of the data
254            are kept in the memory.
255    
256            * test/test_table.py (MemoryTableTest): New.
257    
258            * test/test_transientdb.py (SimpleTable): Removed.
259            (TestTransientTable.test_transient_joined_table,
260            (TestTransientTable.test_transient_table_read_twice): Replaced
261            SimpleTable by MemoryTable.
262    
263    2003-04-30  Jonathan Coles   <[email protected]>
264    
265            * Data/iceland_sample.thuban: Now contains correct projections
266            for each of the layers.
267    
268            * Resources/Projections/defaults.proj: Geographic projection
269            contains unit conversion parameter.
270    
271    2003-04-30  Jonathan Coles   <[email protected]>
272    
273            The most important part of this putback is the projection changes.
274            It should now be possible to specify the projection that a layer
275            is in and then specify a different projection for the map. The
276            projection dialog has an extra parameter for a geographic projection
277            which lets the user select if the input is in degrees or radians.
278    
279            * Thuban/Model/layer.py (Layer.ShapesInRegion): Fix docstring
280            to say that the parameter is a tuple of unprojected
281            points (which is what the callers to this method were assuming).
282            Also, since the points are unprojected we need to projected them.
283    
284            * Thuban/UI/legend.py (LegendTree.MoveCurrentItemUp,
285            LegendTree.MoveCurrentItemDown): If the layer or any of the layer's
286            groups are selected, move the layer up/down. Fixes RTbug #1833.
287    
288            * Thuban/UI/mainwindow.py: Move menu item map_rename up.
289    
290            * Thuban/UI/projdialog.py (ProjFrame._OnSave): Add missing
291            parameter in call to SetClientData.
292            (GeoPanel): Add support for selecting the units that the
293            source data is in (Radians or Degrees).
294    
295            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Optimize
296            the rendering loop by reducing the number of if's, removing the
297            unnecessary try/except block, and checking if the old group
298            is the same as the new one (which happens a lot if there is
299            no classification, or lots of shapes are in the same group).
300    
301            * Thuban/UI/view.py (MapCanvas.OnPaint): Add a try/except block
302            around the redraw routine to try to catch problems that the user
303            may create by selecting invalid projections for the data set and
304            map. Clears the display if there are any problems and prints the
305            error.
306            (MapCanvas.do_redraw): Use DC.Clear() instead of drawing a filled
307            rectangle.
308    
309            * extensions/thuban/wxproj.cpp (project_point): First invert the
310            supplied point (which should be in projected coordinates) using
311            the layer's projection and then project the point using the
312            map's projection.
313            (project_points): Use project_point() to project each point.
314    
315    2003-04-30  Jan-Oliver Wagner <[email protected]>
316    
317            * Thuban/Model/layer.py (Layer.SetShapeStore): Fixed a bug:
318            don't set the Classification to None if the classfication field
319            is None (ie only a DEFAULT).
320    
321    2003-04-30  Bernhard Herzog  <[email protected]>
322    
323            * Thuban/UI/view.py: Fix some typos.
324    
325            * Thuban/UI/mainwindow.py (MainWindow.identify_view_on_demand): Do
326            not pop up the dialog if the selection becomes empty (this could
327            happen if e.g. a new selection is opened while the identify tool
328            is active and dialog had been closed)
329    
330  2003-04-30  Bernhard Herzog  <[email protected]>  2003-04-30  Bernhard Herzog  <[email protected]>
331    
332          * Thuban/Model/transientdb.py (TransientTableBase.__init__): New          * Thuban/Model/transientdb.py (TransientTableBase.__init__): New
# Line 10  Line 339 
339          (TestTransientTable.test_transient_table_read_twice): New test          (TestTransientTable.test_transient_table_read_twice): New test
340          case for the above bug-fix.          case for the above bug-fix.
341    
342    2003-04-29  Jonathan Coles   <[email protected]>
343    
344            * Thuban/common.py: Removed. No longer needed Str2Num. RTbug #1832.
345    
346            * Thuban/UI/classgen.py: Remove all uses of Str2Num.
347    
348            * Thuban/UI/classifier.py: Remove all uses of Str2Num.
349            (ClassTable.SetValueAsCustom): Rename keyword argument in
350            ClassGroup* constructors to match argument name.
351    
352  2003-04-29  Bernhard Herzog  <[email protected]>  2003-04-29  Bernhard Herzog  <[email protected]>
353    
354          * Thuban/Model/session.py (Session.Destroy): Explicitly close the          * Thuban/Model/session.py (Session.Destroy): Explicitly close the

Legend:
Removed from v.786  
changed lines
  Added in v.848

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26