/[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 949 by jonathan, Tue May 20 15:27:40 2003 UTC revision 1021 by jan, Fri May 23 13:03:50 2003 UTC
# Line 1  Line 1 
1    2003-05-23  Jan-Oliver Wagner <[email protected]>
2    
3            Give all tables a title via mix-in TitledObject.
4    
5            * Thuban/Model/base.py (TitledObject.SetTitle): Call method 'issue'
6            only if it exists.
7    
8            * Thuban/Model/table.py (DBFTable, MemoryTable): mix-in TitledObject
9            and call its init-method with a default title. Remove Title() method.
10    
11            * Thuban/Model/transientdb.py (TransientTable, TransientJoinedTable,
12            AutoTransientTable): mix-in TitledObject and call its init-method with
13            a default title. Remove Title() method.
14    
15    2003-05-23  Bernhard Herzog  <[email protected]>
16    
17            * Thuban/Model/session.py (Session.AddShapeStore): Define
18            AddShapeStore analogously to AddTable.
19    
20            * test/test_session.py (TestSessionSimple.test_add_shapestore):
21            New. Test for AddShapeStore
22    
23    2003-05-23  Jan-Oliver Wagner <[email protected]>
24    
25            Introducing QueryTableFrame and a very coarse ShowTable implementation.
26    
27            * Thuban/UI/tableview.py (LayerTableFrame, QueryTableFrame): Split the
28            class LayerTableFrame into two classes, LayerTableFrame and QueryTableFrame.
29            The latter implements the selection GUI without dependency on a layer.
30            LayerTableFrame now is derived from QueryTableFrame and connects
31            to a layer.
32    
33            * Thuban/UI/mainwindow.py (MainWindow.TableShow): A very coarse
34            implementation that still needs work.
35    
36            * Thuban/Model/layer.py (Layer.TreeInfo): Added filename.
37    
38    2003-05-22  Frank Koormann  <[email protected]>
39    
40            * Thuban/Model/transientdb.py (TransientJoinedTable.__init__):
41            Added "outer_join = False" as optional parameter.
42            (TransientJoinedTable.create): If outer join is true, perform a
43            "LEFT OUTER JOIN" instead of "JOIN", which preserves all records of
44            the left table. Records not matching are filled with 0 / None.
45    
46            * Thuban/UI/join.py (JoinDialog.__init__): Checkbox for outer join.
47            (JoinDialog.OnJoin): Consider outer join check box.
48    
49    2003-05-22  Bernhard Herzog  <[email protected]>
50    
51            * Thuban/UI/join.py (JoinDialog.OnJoin): Use exc_info in a
52            somewhat safer way. Storing the traceback in a local variable can
53            lead to memory leaks
54    
55    2003-05-22  Bernhard Herzog  <[email protected]>
56    
57            * Thuban/UI/join.py (JoinDialog.OnJoin): Make sure to really call
58            the wxMessageDialog's Destroy() method.
59    
60    2003-05-22  Frank Koormann  <[email protected]>
61    
62            * Thuban/UI/join.py (JoinDialog.__init__): Make use of
63            TransientTable.Title()
64    
65    2003-05-22  Frank Koormann  <[email protected]>
66    
67            Join Dialog, initial version.
68    
69            * Thuban/UI/mainwindow.py (MainWindow.TableJoin): Removed print.
70    
71            * Thuban/UI/join.py (JoinDialog): Functional implementation of
72            former framework. Renamed Table1/Table2 to LeftTable/RightTable
73            in all occurences.
74    
75            * Thuban/Model/transientdb.py (TransientJoinedTable.__doc__):
76            Typo fixed.
77    
78    2003-05-22  Bernhard Herzog  <[email protected]>
79    
80            Give the tables titles so that the GUI can display more meaningful
81            names. For now the titles are fixed but depend on e.g. filenames
82            or the titles of the joined tables.
83    
84            * Thuban/Model/transientdb.py (TransientTable.Title)
85            (TransientJoinedTable.Title, AutoTransientTable.Title): New.
86    
87            * Thuban/Model/table.py (DBFTable.Title, MemoryTable.Title): New.
88    
89            * test/test_transientdb.py
90            (TestTransientTable.test_auto_transient_table_title): New. Test
91            for the Title method
92            (TestTransientTable.test_transient_joined_table)
93            (TestTransientTable.test_transient_table): Add test for the Title
94            methods
95    
96            * test/test_memory_table.py (TestMemoryTable.test_title): New.
97            Test for the Title method
98    
99            * test/test_dbf_table.py (TestDBFTable.test_title): New. Test for
100            the Title method
101    
102    2003-05-22  Bernhard Herzog  <[email protected]>
103    
104            * test/test_layer.py (TestLayer.setUp, TestLayer.tearDown):
105            Provide a better way to destroy the layers
106            (TestLayer.test_base_layer, TestLayer.test_arc_layer)
107            (TestLayer.test_point_layer, TestLayer.test_empty_layer)
108            (TestLayer.test_polygon_layer, TestLayer.test_get_field_type): Use
109            the new way to destroy the layers.
110            (TestLayer.test_derived_store): New. Test for using a layer with a
111            DerivedShapeStore
112    
113            * Thuban/Model/layer.py (Layer.SetShapeStore): Only set the
114            filename if the shape store actually has one.
115    
116    2003-05-22  Bernhard Herzog  <[email protected]>
117    
118            * Thuban/Model/table.py (DBFTable.FileName): New. Accessor method
119            for the filename
120    
121            * test/test_dbf_table.py (TestDBFTable.test_filename): New. Test
122            for the FileName method
123            (TestDBFTableWriting.test_write): Fix spelling of filename
124    
125    2003-05-22  Thomas Koester  <[email protected]>
126    
127            * Thuban/Model/range.py, test/test_range.py: Brought over new Range
128            from SciParam that now really is immutable.
129    
130    2003-05-22  Frank Koormann  <[email protected]>
131    
132            Layer Top/Bottom placement added to legend.
133    
134            * Thuban/UI/legend.py
135            (LegendPanel._OnMoveTop(), LayerPanel._OnMoveBottom): New, methods
136            bound to tool events.
137            (LegendTree.MoveCurrentItemTop(), LegendTree.MoveCurrentItemBottom):
138            New, methods binding the event methods with the map methods.
139    
140            * Thuban/Model/map.py (Map.TopLayer(), Map.BottomLayer()): New, place
141            layer at top/bottom of layer stack.
142    
143            * Resources/Bitmaps/top_layer.xpm: New button icon.
144    
145            * Resources/Bitmaps/bottom_layer.xpm: New button icon.
146    
147    2003-05-22  Bernhard Herzog  <[email protected]>
148    
149            * Thuban/Model/session.py (Session.RemoveTable): New method to
150            remove tables
151    
152            * test/test_session.py (TestSessionSimple.test_remove_table): New.
153            Test for RemoveTable
154    
155    2003-05-22  Thomas Koester  <[email protected]>
156    
157            * Thuban/Model/classgen.py: Added short module doc string and CVS id.
158            (ClassGenerator.GenUniformDistribution): Use new Range __init__, too.
159    
160    2003-05-22  Bernhard Herzog  <[email protected]>
161    
162            Implement a way to discover dependencies between tables and
163            shapestores.
164    
165            * Thuban/Model/transientdb.py (TransientTableBase.Dependencies)
166            (TransientJoinedTable.Dependencies)
167            (AutoTransientTable.SimpleQuery): New. Implement the dependencies
168            interface
169            (TransientJoinedTable.__init__): Keep tack of the original table
170            objects in addition to the corresponding transient tables.
171    
172            * Thuban/Model/table.py (DBFTable.Dependencies)
173            (MemoryTable.Dependencies): New. Implement the dependencies
174            interface
175    
176            * Thuban/Model/data.py (ShapeTable): New. Helper class for
177            ShapefileStore
178            (ShapefileStore.__init__): Use ShapeTable instead of
179            AutoTransientTable
180            (ShapefileStore.Table, ShapefileStore.Shapefile): Add doc-strings
181            (ShapefileStore.FileName, ShapefileStore.FileType): New. Accessor
182            methods for filename and type
183            (ShapefileStore.Dependencies): New. Implement the dependencies
184            interface
185            (DerivedShapeStore): New class to replace SimpleStore. The main
186            difference to SimpleStore is that it depends not on a shapefile
187            but another shapestore which expresses the dependencies a bit
188            better
189            (SimpleStore.__init__): Add deprecation warning.
190    
191            * test/test_dbf_table.py (TestDBFTable.test_dependencies): New.
192            Test for the Dependencies method.
193    
194            * test/test_memory_table.py (TestMemoryTable.test_dependencies):
195            New. Test for the Dependencies method.
196    
197            * test/test_transientdb.py
198            (TestTransientTable.test_auto_transient_table_dependencies): New.
199            Test for the Dependencies method.
200            (TestTransientTable.test_transient_joined_table): Add test for the
201            Dependencies method.
202    
203            * test/test_session.py (TestSessionSimple.setUp)
204            (TestSessionSimple.tearDown): New. Implement a better way to
205            destroy the sessions.
206            (TestSessionSimple.test_initial_state)
207            (TestSessionSimple.test_add_table): Bind session to self.session
208            so that it's destroyed by tearDown
209            (TestSessionSimple.test_open_shapefile): New. Test for
210            OpenShapefile and the object it returns
211    
212    2003-05-22  Bernhard Herzog  <[email protected]>
213    
214            * Thuban/Model/session.py (Session.AddTable): New method to
215            register tables with the session.
216            (Session.Tables): Return the tables registered with AddTable too.
217    
218            * test/test_session.py (TestSessionSimple.test_add_table): New.
219            Test case for the AddTable method
220    
221    2003-05-22  Frank Koormann  <[email protected]>
222    
223            UI polishing updates: Place main buttons (OK, Cancel, etc) in the
224            lower right corner, center labels for selections, initialize controls
225            in reasonable order for keyboard navigation.
226    
227            * Thuban/UI/projdialog.py (ProjFrame.__init__, ProjFrame.__doLayout)
228            (ProjFrame.__DoOnProjAvail): Determine position of current projection
229            using the wxListBox.FindString() method. Still a problem (#1886)
230    
231            * Thuban/UI/classifier.py
232            (Classifier.__init__, SelectPropertiesDialog.__init__)
233    
234            * Thuban/UI/classgen.py (ClassGenDialog.__init__,
235            (ClassGenDialog.__DoOnGenTypeSelect): Moved initialization of the
236            different classification types from here to __init__.
237            (GenUniquePanel.__init__): Set the column width of the first field
238            in the Field ListCtrl to the full width.
239    
240            * Thuban/UI/tableview.py (LayerTableFrame.__init__): Rename 'Save As'
241            Button to 'Export'. Center Buttons in Selection Box, set Focus to
242            Grid.
243            (LayerTableFrame.OnKeyDown()): New, bound to the grid with EVT_KEY_DOWN,
244            changes focus to the Selection when pressing "Alt-S".
245    
246            * Thuban/UI/legend.py (LegendTree.__SetVisibilityStyle): Only gray out
247            the text if not visible. The italic font sometimes exceeds the
248            rendering area.
249    
250    2003-05-21  Jonathan Coles   <[email protected]>
251    
252            * Thuban/UI/dock.py (DockFrame): Rename references to _OnClose
253            to OnClose so that Thuban closes correctly.
254    
255            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Call
256            DockFrame.OnClose, not DockFrame._OnClose.
257    
258    2003-05-21  Jonathan Coles   <[email protected]>
259    
260            * Thuban/Model/classgen.py (ClassGenerator.GenQuantiles): Remove
261            references to 'inf' and use new Range __init__ to pass floats
262            directly rather than converting them to strings first.
263            Fixes RTBug #1876.
264    
265            * Thuban/Model/classification.py (ClassGroupRange.SetRange):
266            Use new Range ___init__ to pass floats.
267    
268            * Thuban/Model/layer.py (RasterLayer.__init__): Test if the
269            filename is a valid image file. Throw IOError otherwise.
270    
271            * Thuban/Model/range.py: Brought over new Range from SciParam that
272            is immutable and has an __init__ which can accept floats.
273    
274            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Move OpenShapefile
275            into try block. AddLayer doesn't throw any exceptions anymore.
276            (MainWindow.AddRasterLayer): Move constructor of RasterLayer into
277            try block.
278    
279            * Thuban/UI/projdialog.py (GeoPanel.__init__): Put Degrees as
280            the first item in choices. Fixes RTBug #1882.
281    
282            * Thuban/UI/renderer.py (MapRenderer.render_map): Check if scale
283            has gone to 0 which is a serious problem. abort.
284            (MapRenderer.draw_raster_layer): Catch IOError seperately and
285            print the error from GDAL.
286    
287            * Thuban/UI/tableview.py (TableGrid.__init__): Call
288            ToggleEventListeners to turn on listening.
289            (TableGrid.ToggleEventListeners): New. Turns event listening on
290            and off so as to prevent excessive messages.
291            (LayerTableFrame.OnQuery): Use TableGrid.ToggleEventListeners
292            to suppress excessive messages when selecting many rows.
293            Fixes RTBug #1880.
294    
295            * Thuban/UI/view.py: Added checks against if scale == 0. This
296            is a serious problem that can occur when an image without
297            geo data is loading and causes the map projection bounds to
298            go to infinity. Right now, the solution is to simply try
299            to recover.
300    
301            * extensions/thuban/cpl_mfile.cpp (MFILEClose): Make sure
302            to set the MFILEReceiver attributes even if the data is NULL.
303    
304            * extensions/thuban/gdalwarp.cpp: Improved the error handling
305            and passed GDAL messages back up to the Python layer. Also
306            tried to fix some memory leaks that were present in the original
307            utility but didn't matter because the program aborted.
308    
309            * test/test_range.py: Copied over tests from SciParam. Removed
310            tests against importing. Fixes RTBug #1867.
311    
312    2003-05-21  Bernhard Herzog  <[email protected]>
313    
314            * test/test_load.py: Remove unused imports and restructure the
315            test code
316            (LoadSessionTest): Split into one class for each test and turn
317            LoadSessionTest itself into the base class for all such session
318            tests.
319            (ClassificationTest): New base class for load tests that test
320            classifications
321            (TestSingleLayer, TestLayerVisibility, TestClassification)
322            (TestLabels, TestLayerProjection, TestRasterLayer): New classes
323            for the individual tests
324    
325            * test/support.py (FileLoadTestCase.filename): New base class for
326            file loading tests
327    
328    2003-05-21  Jan-Oliver Wagner <[email protected]>
329    
330            * Resources/Projections/defaults.proj: Renamed 'Universal Transverse
331            Mercator' to 'UTM Zone 32' as a more convenient example.
332            Added 'Gauss Krueger Zone 6'.
333    
334            * Data/iceland_sample_raster.thuban: political polygon now
335            filled transparent to have the raster image visible at once.
336    
337    2003-05-21  Frank Koormann  <[email protected]>
338    
339            * Thuban/UI/mainwindow.py (MainWindow): Renamed _OnClose() back to
340            OnClose() to keep in sync with extensions. Internally Thuban
341            still uses "underscored" names.
342    
343  2003-05-20  Jonathan Coles   <[email protected]>  2003-05-20  Jonathan Coles   <[email protected]>
344    
345          This puts back Raster layer support. These layers support projections          This puts back Raster layer support. These layers support projections

Legend:
Removed from v.949  
changed lines
  Added in v.1021

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26