/[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 803 by jonathan, Wed Apr 30 17:07:01 2003 UTC revision 846 by bh, Tue May 6 18:05:23 2003 UTC
# Line 1  Line 1 
1    2003-05-06  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/Model/transientdb.py (AutoTransientTable.SimpleQuery):
4            New. Simply delegate to the transient table's version.
5    
6            * test/test_transientdb.py
7            (TestTransientTable.test_auto_transient_table_query): New. Test
8            case for AutoTransientTable's SimpleQuery
9    
10    2003-05-06  Bernhard Herzog  <[email protected]>
11    
12            * Thuban/Model/transientdb.py (TransientTableBase.SimpleQuery):
13            Implement a simple query method for the query dialog
14            (TransientTableBase.create): Add an INTEGER PRIMARY KEY that holds
15            the row index or shapeid.
16            (TransientTable.create): Insert the right value of the row index
17            (TransientJoinedTable.create): Copy the row index of the left
18            table to the joined result table
19    
20            * test/test_transientdb.py
21            (TestTransientTable.test_transient_table_read_twice): Fix
22            doc-string
23            (TestTransientTable.test_transient_table_query): New. Test for the
24            SimpleQuery method
25    
26    2003-05-06  Bernhard Herzog  <[email protected]>
27    
28            Convert all table users to use the new table interface. This only
29            covers Thuban itself, not GREAT-ER or other applications built on
30            Thuban yet, so the compatibility interface stays in place for the
31            time being but it now issues DeprecationWarnings.
32    
33            Finally, the new Table interface has a new method, HasColumn.
34    
35            * Thuban/Model/table.py (OldTableInterfaceMixin): All methods
36            issue deprecation warnings when they're. The warnings refer to the
37            caller of the method.
38            (OldTableInterfaceMixin.__deprecation_warning): New. Helper method
39            for the deprecation warnings
40    
41            * test/test_table.py: Ignore the deprecation warnings for the old
42            table in the tests in this module. The purpose of the tests is to
43            test the old interface, after all.
44    
45            * test/test_transientdb.py
46            (TestTransientTable.run_iceland_political_tests): Use the
47            constants for the types. Add a test for HasColumn
48            (TestTransientTable.test_transient_joined_table): Adapt to new
49            table interface. Add a test for HasColumn
50            (TestTransientTable.test_transient_table_read_twice): Adapt to new
51            table interface
52    
53            * Thuban/UI/tableview.py (DataTable.SetTable, DataTable.GetValue):
54            Adapt to new table interface
55    
56            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Adapt to
57            new table interface
58    
59            * Thuban/UI/controls.py (RecordListCtrl.fill_list)
60            (RecordTable.SetTable): Adapt to new table interface
61    
62            * Thuban/UI/classifier.py (Classifier.__init__)
63            (Classifier.__init__): Adapt to new table interface
64    
65            * Thuban/UI/classgen.py (ClassGenDialog.__init__)
66            (GenUniformPanel._OnRetrieve, GenUniquePanel._OnRetrieve): Adapt
67            to new table interface
68    
69            * Thuban/Model/transientdb.py (TransientTableBase.HasColumn)
70            (AutoTransientTable.HasColumn): Implement the new table interface
71            method
72            (AutoTransientTable.ReadRowAsDict, AutoTransientTable.ValueRange)
73            (AutoTransientTable.UniqueValues): Adapt to new table interface
74    
75            * Thuban/Model/layer.py (Layer.SetShapeStore, Layer.GetFieldType):
76            Adapt to new table interface
77    
78            * test/test_layer.py (TestLayer.open_shapefile): Helper method to
79            simplify opening shapefiles a bit easier.
80            (TestLayer.test_arc_layer, TestLayer.test_polygon_layer)
81            (TestLayer.test_point_layer): Use the new helper method
82            (TestLayer.test_get_field_type): New. Test for the GetFieldType
83            method
84    
85            * test/test_dbf_table.py (TestDBFTable.test_has_column): Test for
86            the new table method
87    
88            * test/test_memory_table.py (TestMemoryTable.test_has_column):
89            Test for the new table method HasColumn
90    
91    2003-05-06  Jonathan Coles   <[email protected]>
92    
93            Addresses the "Selection Extent" wish of RTbug #1787.
94    
95            * Resources/Bitmaps/fulllayerextent.xpm,
96            Resources/Bitmaps/fullselextent.xpm: Bitmaps for layer and selection
97            extent. These are just place holders for the real bitmaps.
98    
99            * Thuban/Model/layer.py (Shape): Since a Shape is immutable only
100            calculate the bounding box once (the first time compute_bbox() is
101            called).
102            (Layer.ShapesBoundingBox): New. Given a list of shape ids, return
103            the bounding box for the shapes in lat/long coordinates.
104    
105            * Thuban/UI/mainwindow.py: Added new "Full selection extent" menu
106            option.
107            (MainWindow.has_selected_shapes): New. Returns true if there are
108            any selected shapes.
109            (MainWindow.FullSelectionExtent): New. Calls
110            MapCanvas.FitSelectedToWindow() when the user selects the menu option.
111            (_has_selected_shapes): New. Returns true if there are any
112            selected shapes.
113    
114            * Thuban/UI/selection.py (Selection.HasSelectedShapes): New. Returns
115            true if there are any selected shapes.
116    
117            * Thuban/UI/view.py (MapCanvas): Added delegated method
118            HasSelectedShapes.
119            (MapCanvas.FitSelectedToWindow): New. Centers and scales any selected
120            shapes on the canvas using the map projection (if any).
121    
122            * test/test_layer.py (TestLayer.test_arc_layer): Add some tests
123            for Layer.ShapesBoundingBox().
124    
125    2003-05-06  Bernhard Herzog  <[email protected]>
126    
127            * Resources/Projections/defaults.proj: Fix spelling of Mercator
128    
129    2003-05-05  Jonathan Coles   <[email protected]>
130    
131            Addresses the "Full Layer Extent" wish of RTbug #1787.
132    
133            * Resources/Projections/defaults.proj: Added UK National Grid.
134    
135            * Thuban/UI/mainwindow.py: Added new "Full layer extent" menu option.
136            (MainWindow.FullLayerExtent): New. Calls MapCanvas.FitLayerToWindow()
137            when the user selects the menu option.
138    
139            * Thuban/UI/view.py (MapCanvas.FitLayerToWindow): New. Centers and
140            scales the given layer on the canvas using the map projection.
141    
142    2003-05-05  Bernhard Herzog  <[email protected]>
143    
144            Convert the table implementations to a new table interface. All
145            tables use a common mixin class to provide backwards compatibility
146            until all table users have been updated.
147    
148            * Thuban/Model/table.py (OldTableInterfaceMixin): Mixin class to
149            provide backwards compatibility for table classes implementing the
150            new interface
151            (DBFTable, MemoryTable): Implement the new table interface. Use
152            OldTableInterfaceMixin as base for compatibility
153            (DBFColumn, MemoryColumn): New. Column description for DBFTable
154            and MemoryTable resp.
155    
156            * test/test_dbf_table.py: New. Test cases for the DBFTable with
157            the new table interface.
158    
159            * test/test_memory_table.py: New. Test cases for the MemoryTable
160            with the new table interface.
161    
162            * test/test_table.py: Document the all tests in this file as only
163            for backwards compatibility. The equivalent tests for the new
164            interface are in test_memory_table.py and test_dbf_table.py
165            (MemoryTableTest.test_read): field_info should be returning tuples
166            with four items
167            (MemoryTableTest.test_write): Make doc-string a more precise.
168    
169            * Thuban/Model/transientdb.py (TransientTableBase): Convert to new
170            table interface. Derive from from OldTableInterfaceMixin for
171            compatibility.
172            (TransientTableBase.create): New intance variable column_map to
173            map from names and indices to column objects
174            (TransientTable.create): Use the new table interface of the input
175            table
176            (AutoTransientTable): Convert to new table interface. Derive from
177            from OldTableInterfaceMixin for compatibility.
178            (AutoTransientTable.write_record): Removed. It's not implemented
179            yet and we still have to decide how to handle writing with the new
180            table and data framework.
181    
182            * test/test_transientdb.py
183            (TestTransientTable.run_iceland_political_tests)
184            (TestTransientTable.test_transient_joined_table): Use the new
185            table interface
186    
187    2003-05-05  Jonathan Coles   <[email protected]>
188    
189            This is namely a collection of UI updates to improve user interactivity.
190            Tabbing between controls now exists and you can use ESC to close dialog
191            boxes; ENTER will active the default button.
192    
193            * Thuban/UI/classgen.py (ClassGenDialog.__init__): Rearrange the
194            order that the controls are created so that tabbing works correctly.
195            (ClassGenDialog.OnOK): Renamed from _OnGenerate() so that the
196            wxDialog can handle the default button correctly.
197            (ClassGenDialog.OnCancel): Renamed from _OnCloseBtn() for the
198            same reasons as for OnOK.
199            (GenUniformPanel._OnRetrieve): Call wxBeginBusyCursor/wxEndBusyCursor
200            when we ask the table for the maximum/minimum values of a field
201            which could take a very long time.
202    
203            * Thuban/UI/classifier.py (Classifier.__init__): Rearrange the
204            order that the controls are created so that tabbing works correctly.
205            (SelectPropertiesDialog.__init__): Rearrange the order that the
206            controls are created so that tabbing works correctly.
207    
208            * Thuban/UI/dialogs.py: Copied NonModalDialog box and changed it
209            to derive from a wxDialog but behave like the original implementation
210            which was derived from a wxFrame. wxDialog provides useful key
211            handling functionality like ESC calling OnCancel and ENTER calling
212            OnOK which is lost with wxFrame.
213    
214            * Thuban/UI/mainwindow.py: Add "..." to menu items that will open
215            new dialogs.
216    
217            * Thuban/UI/projdialog.py (ProjFrame.__init__): Rearrange the
218            order that the controls are created so that tabbing works correctly.
219            (ProjFrame.OnApply): Renamed from _OnTry() to use wxDialog behaviour.
220            (ProjFrame.OnOK): Renamed from _OnOK() to use wxDialog behaviour.
221            (ProjFrame.OnCancel): Renamed from _OnClose() to use wxDialog behaviour.
222            (ProjPanel.__init__): Add "Airy" to the list of ellipsoids so we
223            can provide the "UK National Grid" as a default projection.
224            (UTMPanel.__init__): Rearrange the order that the controls are
225            created so that tabbing works correctly.
226    
227    2003-05-05  Bernhard Herzog  <[email protected]>
228    
229            * extensions/thuban/wxproj.cpp: Fix some of the comments.
230            (project_point): If a map projection but no layer projection is
231            given, convert degrees to radians before applying the map
232            projection.
233    
234            * Thuban/UI/tableview.py (TableGrid.disallow_messages)
235            (TableGrid.allow_messages): New methods to make it possible to
236            inhibit message sending.
237            (TableGrid.issue): Only send the message if not inhibited.
238            (LayerTableGrid.select_shape): Use the new methods to make sure
239            that no ROW_SELECTED message is sent while we're updating the
240            selected rows to match the selected shapes.
241    
242    2003-05-02  Jan-Oliver Wagner <[email protected]>
243    
244            Implementation of MemoryTable.
245    
246            * Thuban/Model/table.py (MemoryTable): New. Quite simple table
247            implementation that operates on a list of tuples. All of the data
248            are kept in the memory.
249    
250            * test/test_table.py (MemoryTableTest): New.
251    
252            * test/test_transientdb.py (SimpleTable): Removed.
253            (TestTransientTable.test_transient_joined_table,
254            (TestTransientTable.test_transient_table_read_twice): Replaced
255            SimpleTable by MemoryTable.
256    
257  2003-04-30  Jonathan Coles   <[email protected]>  2003-04-30  Jonathan Coles   <[email protected]>
258    
259          * Data/iceland_sample.thuban: Now contains correct projections          * Data/iceland_sample.thuban: Now contains correct projections

Legend:
Removed from v.803  
changed lines
  Added in v.846

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26