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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26