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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26