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

Legend:
Removed from v.793  
changed lines
  Added in v.857

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26