/[thuban]/branches/WIP-pyshapelib-bramz/ChangeLog
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 766 by bh, Tue Apr 29 12:42:27 2003 UTC revision 819 by bh, Mon May 5 17:18:51 2003 UTC
# Line 1  Line 1 
1    2003-05-05  Bernhard Herzog  <[email protected]>
2    
3            Convert the table implementations to a new table interface. All
4            tables use a common mixin class to provide backwards compatibility
5            until all table users have been updated.
6    
7            * Thuban/Model/table.py (OldTableInterfaceMixin): Mixin class to
8            provide backwards compatibility for table classes implementing the
9            new interface
10            (DBFTable, MemoryTable): Implement the new table interface. Use
11            OldTableInterfaceMixin as base for compatibility
12            (DBFColumn, MemoryColumn): New. Column description for DBFTable
13            and MemoryTable resp.
14    
15            * test/test_dbf_table.py: New. Test cases for the DBFTable with
16            the new table interface.
17    
18            * test/test_memory_table.py: New. Test cases for the MemoryTable
19            with the new table interface.
20    
21            * test/test_table.py: Document the all tests in this file as only
22            for backwards compatibility. The equivalent tests for the new
23            interface are in test_memory_table.py and test_dbf_table.py
24            (MemoryTableTest.test_read): field_info should be returning tuples
25            with four items
26            (MemoryTableTest.test_write): Make doc-string a more precise.
27    
28            * Thuban/Model/transientdb.py (TransientTableBase): Convert to new
29            table interface. Derive from from OldTableInterfaceMixin for
30            compatibility.
31            (TransientTableBase.create): New intance variable column_map to
32            map from names and indices to column objects
33            (TransientTable.create): Use the new table interface of the input
34            table
35            (AutoTransientTable): Convert to new table interface. Derive from
36            from OldTableInterfaceMixin for compatibility.
37            (AutoTransientTable.write_record): Removed. It's not implemented
38            yet and we still have to decide how to handle writing with the new
39            table and data framework.
40    
41            * test/test_transientdb.py
42            (TestTransientTable.run_iceland_political_tests)
43            (TestTransientTable.test_transient_joined_table): Use the new
44            table interface
45    
46    2003-05-05  Jonathan Coles   <[email protected]>
47    
48            This is namely a collection of UI updates to improve user interactivity.
49            Tabbing between controls now exists and you can use ESC to close dialog
50            boxes; ENTER will active the default button.
51    
52            * Thuban/UI/classgen.py (ClassGenDialog.__init__): Rearrange the
53            order that the controls are created so that tabbing works correctly.
54            (ClassGenDialog.OnOK): Renamed from _OnGenerate() so that the
55            wxDialog can handle the default button correctly.
56            (ClassGenDialog.OnCancel): Renamed from _OnCloseBtn() for the
57            same reasons as for OnOK.
58            (GenUniformPanel._OnRetrieve): Call wxBeginBusyCursor/wxEndBusyCursor
59            when we ask the table for the maximum/minimum values of a field
60            which could take a very long time.
61    
62            * Thuban/UI/classifier.py (Classifier.__init__): Rearrange the
63            order that the controls are created so that tabbing works correctly.
64            (SelectPropertiesDialog.__init__): Rearrange the order that the
65            controls are created so that tabbing works correctly.
66    
67            * Thuban/UI/dialogs.py: Copied NonModalDialog box and changed it
68            to derive from a wxDialog but behave like the original implementation
69            which was derived from a wxFrame. wxDialog provides useful key
70            handling functionality like ESC calling OnCancel and ENTER calling
71            OnOK which is lost with wxFrame.
72    
73            * Thuban/UI/mainwindow.py: Add "..." to menu items that will open
74            new dialogs.
75    
76            * Thuban/UI/projdialog.py (ProjFrame.__init__): Rearrange the
77            order that the controls are created so that tabbing works correctly.
78            (ProjFrame.OnApply): Renamed from _OnTry() to use wxDialog behaviour.
79            (ProjFrame.OnOK): Renamed from _OnOK() to use wxDialog behaviour.
80            (ProjFrame.OnCancel): Renamed from _OnClose() to use wxDialog behaviour.
81            (ProjPanel.__init__): Add "Airy" to the list of ellipsoids so we
82            can provide the "UK National Grid" as a default projection.
83            (UTMPanel.__init__): Rearrange the order that the controls are
84            created so that tabbing works correctly.
85    
86    2003-05-05  Bernhard Herzog  <[email protected]>
87    
88            * extensions/thuban/wxproj.cpp: Fix some of the comments.
89            (project_point): If a map projection but no layer projection is
90            given, convert degrees to radians before applying the map
91            projection.
92    
93            * Thuban/UI/tableview.py (TableGrid.disallow_messages)
94            (TableGrid.allow_messages): New methods to make it possible to
95            inhibit message sending.
96            (TableGrid.issue): Only send the message if not inhibited.
97            (LayerTableGrid.select_shape): Use the new methods to make sure
98            that no ROW_SELECTED message is sent while we're updating the
99            selected rows to match the selected shapes.
100    
101    2003-05-02  Jan-Oliver Wagner <[email protected]>
102    
103            Implementation of MemoryTable.
104    
105            * Thuban/Model/table.py (MemoryTable): New. Quite simple table
106            implementation that operates on a list of tuples. All of the data
107            are kept in the memory.
108    
109            * test/test_table.py (MemoryTableTest): New.
110    
111            * test/test_transientdb.py (SimpleTable): Removed.
112            (TestTransientTable.test_transient_joined_table,
113            (TestTransientTable.test_transient_table_read_twice): Replaced
114            SimpleTable by MemoryTable.
115    
116    2003-04-30  Jonathan Coles   <[email protected]>
117    
118            * Data/iceland_sample.thuban: Now contains correct projections
119            for each of the layers.
120    
121            * Resources/Projections/defaults.proj: Geographic projection
122            contains unit conversion parameter.
123    
124    2003-04-30  Jonathan Coles   <[email protected]>
125    
126            The most important part of this putback is the projection changes.
127            It should now be possible to specify the projection that a layer
128            is in and then specify a different projection for the map. The
129            projection dialog has an extra parameter for a geographic projection
130            which lets the user select if the input is in degrees or radians.
131    
132            * Thuban/Model/layer.py (Layer.ShapesInRegion): Fix docstring
133            to say that the parameter is a tuple of unprojected
134            points (which is what the callers to this method were assuming).
135            Also, since the points are unprojected we need to projected them.
136    
137            * Thuban/UI/legend.py (LegendTree.MoveCurrentItemUp,
138            LegendTree.MoveCurrentItemDown): If the layer or any of the layer's
139            groups are selected, move the layer up/down. Fixes RTbug #1833.
140    
141            * Thuban/UI/mainwindow.py: Move menu item map_rename up.
142    
143            * Thuban/UI/projdialog.py (ProjFrame._OnSave): Add missing
144            parameter in call to SetClientData.
145            (GeoPanel): Add support for selecting the units that the
146            source data is in (Radians or Degrees).
147    
148            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Optimize
149            the rendering loop by reducing the number of if's, removing the
150            unnecessary try/except block, and checking if the old group
151            is the same as the new one (which happens a lot if there is
152            no classification, or lots of shapes are in the same group).
153    
154            * Thuban/UI/view.py (MapCanvas.OnPaint): Add a try/except block
155            around the redraw routine to try to catch problems that the user
156            may create by selecting invalid projections for the data set and
157            map. Clears the display if there are any problems and prints the
158            error.
159            (MapCanvas.do_redraw): Use DC.Clear() instead of drawing a filled
160            rectangle.
161    
162            * extensions/thuban/wxproj.cpp (project_point): First invert the
163            supplied point (which should be in projected coordinates) using
164            the layer's projection and then project the point using the
165            map's projection.
166            (project_points): Use project_point() to project each point.
167    
168    2003-04-30  Jan-Oliver Wagner <[email protected]>
169    
170            * Thuban/Model/layer.py (Layer.SetShapeStore): Fixed a bug:
171            don't set the Classification to None if the classfication field
172            is None (ie only a DEFAULT).
173    
174    2003-04-30  Bernhard Herzog  <[email protected]>
175    
176            * Thuban/UI/view.py: Fix some typos.
177    
178            * Thuban/UI/mainwindow.py (MainWindow.identify_view_on_demand): Do
179            not pop up the dialog if the selection becomes empty (this could
180            happen if e.g. a new selection is opened while the identify tool
181            is active and dialog had been closed)
182    
183    2003-04-30  Bernhard Herzog  <[email protected]>
184    
185            * Thuban/Model/transientdb.py (TransientTableBase.__init__): New
186            instance variable read_record_last_result
187            (TransientTableBase.read_record): Make sure reading the same
188            record twice works. The implementation uses the new instance
189            variable read_record_last_result
190    
191            * test/test_transientdb.py
192            (TestTransientTable.test_transient_table_read_twice): New test
193            case for the above bug-fix.
194    
195    2003-04-29  Jonathan Coles   <[email protected]>
196    
197            * Thuban/common.py: Removed. No longer needed Str2Num. RTbug #1832.
198    
199            * Thuban/UI/classgen.py: Remove all uses of Str2Num.
200    
201            * Thuban/UI/classifier.py: Remove all uses of Str2Num.
202            (ClassTable.SetValueAsCustom): Rename keyword argument in
203            ClassGroup* constructors to match argument name.
204    
205    2003-04-29  Bernhard Herzog  <[email protected]>
206    
207            * Thuban/Model/session.py (Session.Destroy): Explicitly close the
208            transient DB if it exists to make sure it doesn't leave a journal
209            file in the temp directory.
210    
211            * Thuban/Model/transientdb.py (TransientDatabase.close): Set
212            self.conn to None after closing the connection to make sure it's
213            not closed twice
214    
215    2003-04-29  Jonathan Coles   <[email protected]>
216    
217            Add a visible parameter in the layer XML tag. The default value is
218            "true". If anything other than "false" is specified we also assume
219            "true". Addresses RTbug #1025.
220    
221            * Doc/thuban.dtd: Add visible parameter to a layer.
222    
223            * Thuban/Model/layer.py (BaseLayer.__init__): Change default value
224            of visible from 1 to True.
225            (Layer.__init__): Change default value of visible from 1 to True.
226    
227            * Thuban/Model/load.py (SessionLoader.start_layer): Read visible
228            parameter.
229    
230            * Thuban/Model/save.py (SessionSaver.write_layer): Save visible
231            parameter.
232    
233            * test/test_load.py: Add new test data contents_test_visible.
234            (LoadSessionTest.setUp): save test data.
235            (LoadSessionTest.testLayerVisibility): Test if the visible flag
236            is loaded correctly.
237    
238            * test/test_save.py (SaveSessionTest.testSingleLayer): Add test
239            for saving an invisible layer.
240    
241    2003-04-29  Jonathan Coles   <[email protected]>
242    
243            * Thuban/UI/mainwindow.py (MainWindow.SetMap): Look up the
244            legend dialog box and tell it to change its map to the one
245            supplied to SetMap(). Fixes RTbug #1770.
246    
247  2003-04-29  Bernhard Herzog  <[email protected]>  2003-04-29  Bernhard Herzog  <[email protected]>
248    
249          Next step of table implementation. Introduce a transient database          Next step of table implementation. Introduce a transient database
# Line 51  Line 297 
297          once. Plus it introduces a reference cycle that keeps can keep the          once. Plus it introduces a reference cycle that keeps can keep the
298          session object alive for a long time.          session object alive for a long time.
299    
300  2003-04-25  Jonathan Coles   <[email protected]>  2003-04-29  Jonathan Coles   <[email protected]>
301    
302          * Thuban/Model/proj.py (Projection): Removed Set*() methods to make          * Thuban/Model/proj.py (Projection): Removed Set*() methods to make
303          Projection an immutable item. Fixes RTbug #1825.          Projection an immutable item. Fixes RTbug #1825.

Legend:
Removed from v.766  
changed lines
  Added in v.819

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26