/[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 958 by bh, Wed May 21 17:12:30 2003 UTC revision 1053 by bh, Tue May 27 09:34:40 2003 UTC
# Line 1  Line 1 
1    2003-05-27  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/UI/mainwindow.py: Remove the Table/Hide menu item. Its
4            effect can be achieved by simply closing the window showing the
5            table.
6            (MainWindow.TableHide): Removed.
7            (main_menu): Removed "table_hide"
8    
9    2003-05-27  Frank Koormann  <[email protected]>
10    
11            Fix legend tree display problems under Win32
12    
13            * Thuban/UI/legend.py:  BMP_SIZE_W = 15
14            (LegendTree.__FillTree): Display "legend_icon_map.xpm" with layer title.
15            (LegendTree.__FillTreeLayer): Explicitely set SelectedImage.
16    
17            * Resources/Bitmaps/legend_icon_map.xpm: New icon for legend.
18    
19    2003-05-27  Jan-Oliver Wagner <[email protected]>
20    
21            * Thuban/UI/menu.py (Menu.InsertSeparator): Additional optional parameter
22            'after' now allows to insert separators almost anywhere in the menu.
23    
24    2003-05-27  Frank Koormann  <[email protected]>
25    
26            * Thuban/UI/tableview.py (QueryTableFrame.__init__): Underline the
27            "S" of selection box label to hint on hot key (Alt-S). Works under
28            Win32 but is ignored under GTK.
29    
30    2003-05-26  Frank Koormann  <[email protected]>
31    
32            * Thuban/UI/projdialog.py (ProjFrame.__do_layout, ProjPanel._DoLayout):
33            Center Choices.
34    
35    2003-05-26  Bernhard Herzog  <[email protected]>
36    
37            Remove the Precision methods again. They're too DBF specific to be
38            part of the table interface and they're only used in table_to_dbf
39            anyway.
40            
41            * Thuban/Model/transientdb.py (TransientTableBase.Width):Use a
42            fixed precision of 12 for doubles.
43            (TransientTableBase.Precision): Removed
44            (AutoTransientTable.Width): Delegate to self.table.
45    
46            * Thuban/Model/table.py (DBFTable.Precision)
47            (MemoryTable.Precision): Removed.
48            (MemoryTable.Width): Use a fixed precision of 12 for doubles.
49            (table_to_dbf): Use a fixed precision of 12 for floats unless the
50            column object specifies something else.
51    
52            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): New.
53            test for table_to_dbf
54    
55    2003-05-26  Bernhard Herzog  <[email protected]>
56    
57            * test/test_transientdb.py
58            (TestTransientTable.run_iceland_political_tests): Fix a comment.
59    
60    2003-05-26  Bernhard Herzog  <[email protected]>
61    
62            * Thuban/UI/mainwindow.py (MainWindow.TableOpen): Real
63            implementation. Mark parts of the file format strings for
64            localization.
65    
66            * Thuban/Model/session.py (Session.OpenTableFile): New. Open a dbf
67            file and add the table to the tables managed by the session
68    
69            * test/test_session.py (TestSessionSimple.test_open_table_file):
70            New. test case for OpenTableFile
71    
72    2003-05-26  Jan-Oliver Wagner <[email protected]>
73    
74            * Thuban/UI/controls.py, Thuban/UI/identifyview.py, Thuban/UI/join.py,
75            Thuban/UI/labeldialog.py, Thuban/UI/mainwindow.py,
76            Thuban/UI/proj4dialog.py, Thuban/UI/tableview.py, Thuban/UI/view.py:
77            Replace the true/false of wxWindows by True/False of Python 2.2.1.
78    
79    2003-05-26  Jan-Oliver Wagner <[email protected]>
80    
81            * Thuban/UI/tableview.py (LayerTableFrame.__init__): If there is
82            already a selection present, update the grid accordingly.
83    
84            * Thuban/UI/mainwindow.py (MainWindow.TableShow): Make the dialog
85            resizeable and increase its initial size.
86    
87    2003-05-26  Frank Koormann  <[email protected]>
88    
89            Table export functionality
90    
91            * Thuban/Model/table.py (DBFTable.Width, MemoryTable.Width):
92            Return width (in characters) for a column.
93            (DBFTable.Precision, MemoryTable.Precision): Return decimal precision.
94            (table_to_dbf): Write table to dbf file.
95            (table_to_csv): Write table to csv file.
96    
97            * Thuban/Model/transientdb.py (TransientTableBase.Width,
98            TransientTableBase.Precision): Return column width and precision.
99    
100            * Thuban/UI/tableview.py (QueryTableFrame.OnSaveAs): Call table_to_dbf
101            or table_to_csv depending on file selection.
102    
103            * test/test_dbf_table.py:
104            Test table_to_dbf (extension of former part of test).
105    
106            * test/test_csv_table.py:
107            Test table_to_csv.
108    
109    2003-05-23  Jan-Oliver Wagner <[email protected]>
110    
111            * Thuban/UI/join.py (JoinDialog.OnJoin): Use _() for strings.
112            Use QueryTableFrame instead of TableFrame.
113    
114            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Prefix the
115            table window with 'Layer Table:' instead of 'Table:'.
116    
117    2003-05-23  Jan-Oliver Wagner <[email protected]>
118    
119            Give all tables a title via mix-in TitledObject.LayerShowTable
120    
121            * Thuban/Model/base.py (TitledObject.SetTitle): Call method 'issue'
122            only if it exists.
123    
124            * Thuban/Model/table.py (DBFTable, MemoryTable): mix-in TitledObject
125            and call its init-method with a default title. Remove Title() method.
126    
127            * Thuban/Model/transientdb.py (TransientTable, TransientJoinedTable,
128            AutoTransientTable): mix-in TitledObject and call its init-method with
129            a default title. Remove Title() method.
130    
131    2003-05-23  Bernhard Herzog  <[email protected]>
132    
133            * Thuban/Model/session.py (Session.AddShapeStore): Define
134            AddShapeStore analogously to AddTable.
135    
136            * test/test_session.py (TestSessionSimple.test_add_shapestore):
137            New. Test for AddShapeStore
138    
139    2003-05-23  Jan-Oliver Wagner <[email protected]>
140    
141            Introducing QueryTableFrame and a very coarse ShowTable implementation.
142    
143            * Thuban/UI/tableview.py (LayerTableFrame, QueryTableFrame): Split the
144            class LayerTableFrame into two classes, LayerTableFrame and QueryTableFrame.
145            The latter implements the selection GUI without dependency on a layer.
146            LayerTableFrame now is derived from QueryTableFrame and connects
147            to a layer.
148    
149            * Thuban/UI/mainwindow.py (MainWindow.TableShow): A very coarse
150            implementation that still needs work.
151    
152            * Thuban/Model/layer.py (Layer.TreeInfo): Added filename.
153    
154    2003-05-22  Frank Koormann  <[email protected]>
155    
156            * Thuban/Model/transientdb.py (TransientJoinedTable.__init__):
157            Added "outer_join = False" as optional parameter.
158            (TransientJoinedTable.create): If outer join is true, perform a
159            "LEFT OUTER JOIN" instead of "JOIN", which preserves all records of
160            the left table. Records not matching are filled with 0 / None.
161    
162            * Thuban/UI/join.py (JoinDialog.__init__): Checkbox for outer join.
163            (JoinDialog.OnJoin): Consider outer join check box.
164    
165    2003-05-22  Bernhard Herzog  <[email protected]>
166    
167            * Thuban/UI/join.py (JoinDialog.OnJoin): Use exc_info in a
168            somewhat safer way. Storing the traceback in a local variable can
169            lead to memory leaks
170    
171    2003-05-22  Bernhard Herzog  <[email protected]>
172    
173            * Thuban/UI/join.py (JoinDialog.OnJoin): Make sure to really call
174            the wxMessageDialog's Destroy() method.
175    
176    2003-05-22  Frank Koormann  <[email protected]>
177    
178            * Thuban/UI/join.py (JoinDialog.__init__): Make use of
179            TransientTable.Title()
180    
181    2003-05-22  Frank Koormann  <[email protected]>
182    
183            Join Dialog, initial version.
184    
185            * Thuban/UI/mainwindow.py (MainWindow.TableJoin): Removed print.
186    
187            * Thuban/UI/join.py (JoinDialog): Functional implementation of
188            former framework. Renamed Table1/Table2 to LeftTable/RightTable
189            in all occurences.
190    
191            * Thuban/Model/transientdb.py (TransientJoinedTable.__doc__):
192            Typo fixed.
193    
194    2003-05-22  Bernhard Herzog  <[email protected]>
195    
196            Give the tables titles so that the GUI can display more meaningful
197            names. For now the titles are fixed but depend on e.g. filenames
198            or the titles of the joined tables.
199    
200            * Thuban/Model/transientdb.py (TransientTable.Title)
201            (TransientJoinedTable.Title, AutoTransientTable.Title): New.
202    
203            * Thuban/Model/table.py (DBFTable.Title, MemoryTable.Title): New.
204    
205            * test/test_transientdb.py
206            (TestTransientTable.test_auto_transient_table_title): New. Test
207            for the Title method
208            (TestTransientTable.test_transient_joined_table)
209            (TestTransientTable.test_transient_table): Add test for the Title
210            methods
211    
212            * test/test_memory_table.py (TestMemoryTable.test_title): New.
213            Test for the Title method
214    
215            * test/test_dbf_table.py (TestDBFTable.test_title): New. Test for
216            the Title method
217    
218    2003-05-22  Bernhard Herzog  <[email protected]>
219    
220            * test/test_layer.py (TestLayer.setUp, TestLayer.tearDown):
221            Provide a better way to destroy the layers
222            (TestLayer.test_base_layer, TestLayer.test_arc_layer)
223            (TestLayer.test_point_layer, TestLayer.test_empty_layer)
224            (TestLayer.test_polygon_layer, TestLayer.test_get_field_type): Use
225            the new way to destroy the layers.
226            (TestLayer.test_derived_store): New. Test for using a layer with a
227            DerivedShapeStore
228    
229            * Thuban/Model/layer.py (Layer.SetShapeStore): Only set the
230            filename if the shape store actually has one.
231    
232    2003-05-22  Bernhard Herzog  <[email protected]>
233    
234            * Thuban/Model/table.py (DBFTable.FileName): New. Accessor method
235            for the filename
236    
237            * test/test_dbf_table.py (TestDBFTable.test_filename): New. Test
238            for the FileName method
239            (TestDBFTableWriting.test_write): Fix spelling of filename
240    
241    2003-05-22  Thomas Koester  <[email protected]>
242    
243            * Thuban/Model/range.py, test/test_range.py: Brought over new Range
244            from SciParam that now really is immutable.
245    
246    2003-05-22  Frank Koormann  <[email protected]>
247    
248            Layer Top/Bottom placement added to legend.
249    
250            * Thuban/UI/legend.py
251            (LegendPanel._OnMoveTop(), LayerPanel._OnMoveBottom): New, methods
252            bound to tool events.
253            (LegendTree.MoveCurrentItemTop(), LegendTree.MoveCurrentItemBottom):
254            New, methods binding the event methods with the map methods.
255    
256            * Thuban/Model/map.py (Map.TopLayer(), Map.BottomLayer()): New, place
257            layer at top/bottom of layer stack.
258    
259            * Resources/Bitmaps/top_layer.xpm: New button icon.
260    
261            * Resources/Bitmaps/bottom_layer.xpm: New button icon.
262    
263    2003-05-22  Bernhard Herzog  <[email protected]>
264    
265            * Thuban/Model/session.py (Session.RemoveTable): New method to
266            remove tables
267    
268            * test/test_session.py (TestSessionSimple.test_remove_table): New.
269            Test for RemoveTable
270    
271    2003-05-22  Thomas Koester  <[email protected]>
272    
273            * Thuban/Model/classgen.py: Added short module doc string and CVS id.
274            (ClassGenerator.GenUniformDistribution): Use new Range __init__, too.
275    
276    2003-05-22  Bernhard Herzog  <[email protected]>
277    
278            Implement a way to discover dependencies between tables and
279            shapestores.
280    
281            * Thuban/Model/transientdb.py (TransientTableBase.Dependencies)
282            (TransientJoinedTable.Dependencies)
283            (AutoTransientTable.SimpleQuery): New. Implement the dependencies
284            interface
285            (TransientJoinedTable.__init__): Keep tack of the original table
286            objects in addition to the corresponding transient tables.
287    
288            * Thuban/Model/table.py (DBFTable.Dependencies)
289            (MemoryTable.Dependencies): New. Implement the dependencies
290            interface
291    
292            * Thuban/Model/data.py (ShapeTable): New. Helper class for
293            ShapefileStore
294            (ShapefileStore.__init__): Use ShapeTable instead of
295            AutoTransientTable
296            (ShapefileStore.Table, ShapefileStore.Shapefile): Add doc-strings
297            (ShapefileStore.FileName, ShapefileStore.FileType): New. Accessor
298            methods for filename and type
299            (ShapefileStore.Dependencies): New. Implement the dependencies
300            interface
301            (DerivedShapeStore): New class to replace SimpleStore. The main
302            difference to SimpleStore is that it depends not on a shapefile
303            but another shapestore which expresses the dependencies a bit
304            better
305            (SimpleStore.__init__): Add deprecation warning.
306    
307            * test/test_dbf_table.py (TestDBFTable.test_dependencies): New.
308            Test for the Dependencies method.
309    
310            * test/test_memory_table.py (TestMemoryTable.test_dependencies):
311            New. Test for the Dependencies method.
312    
313            * test/test_transientdb.py
314            (TestTransientTable.test_auto_transient_table_dependencies): New.
315            Test for the Dependencies method.
316            (TestTransientTable.test_transient_joined_table): Add test for the
317            Dependencies method.
318    
319            * test/test_session.py (TestSessionSimple.setUp)
320            (TestSessionSimple.tearDown): New. Implement a better way to
321            destroy the sessions.
322            (TestSessionSimple.test_initial_state)
323            (TestSessionSimple.test_add_table): Bind session to self.session
324            so that it's destroyed by tearDown
325            (TestSessionSimple.test_open_shapefile): New. Test for
326            OpenShapefile and the object it returns
327    
328    2003-05-22  Bernhard Herzog  <[email protected]>
329    
330            * Thuban/Model/session.py (Session.AddTable): New method to
331            register tables with the session.
332            (Session.Tables): Return the tables registered with AddTable too.
333    
334            * test/test_session.py (TestSessionSimple.test_add_table): New.
335            Test case for the AddTable method
336    
337    2003-05-22  Frank Koormann  <[email protected]>
338    
339            UI polishing updates: Place main buttons (OK, Cancel, etc) in the
340            lower right corner, center labels for selections, initialize controls
341            in reasonable order for keyboard navigation.
342    
343            * Thuban/UI/projdialog.py (ProjFrame.__init__, ProjFrame.__doLayout)
344            (ProjFrame.__DoOnProjAvail): Determine position of current projection
345            using the wxListBox.FindString() method. Still a problem (#1886)
346    
347            * Thuban/UI/classifier.py
348            (Classifier.__init__, SelectPropertiesDialog.__init__)
349    
350            * Thuban/UI/classgen.py (ClassGenDialog.__init__,
351            (ClassGenDialog.__DoOnGenTypeSelect): Moved initialization of the
352            different classification types from here to __init__.
353            (GenUniquePanel.__init__): Set the column width of the first field
354            in the Field ListCtrl to the full width.
355    
356            * Thuban/UI/tableview.py (LayerTableFrame.__init__): Rename 'Save As'
357            Button to 'Export'. Center Buttons in Selection Box, set Focus to
358            Grid.
359            (LayerTableFrame.OnKeyDown()): New, bound to the grid with EVT_KEY_DOWN,
360            changes focus to the Selection when pressing "Alt-S".
361    
362            * Thuban/UI/legend.py (LegendTree.__SetVisibilityStyle): Only gray out
363            the text if not visible. The italic font sometimes exceeds the
364            rendering area.
365    
366    2003-05-21  Jonathan Coles   <[email protected]>
367    
368            * Thuban/UI/dock.py (DockFrame): Rename references to _OnClose
369            to OnClose so that Thuban closes correctly.
370    
371            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Call
372            DockFrame.OnClose, not DockFrame._OnClose.
373    
374    2003-05-21  Jonathan Coles   <[email protected]>
375    
376            * Thuban/Model/classgen.py (ClassGenerator.GenQuantiles): Remove
377            references to 'inf' and use new Range __init__ to pass floats
378            directly rather than converting them to strings first.
379            Fixes RTBug #1876.
380    
381            * Thuban/Model/classification.py (ClassGroupRange.SetRange):
382            Use new Range ___init__ to pass floats.
383    
384            * Thuban/Model/layer.py (RasterLayer.__init__): Test if the
385            filename is a valid image file. Throw IOError otherwise.
386    
387            * Thuban/Model/range.py: Brought over new Range from SciParam that
388            is immutable and has an __init__ which can accept floats.
389    
390            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Move OpenShapefile
391            into try block. AddLayer doesn't throw any exceptions anymore.
392            (MainWindow.AddRasterLayer): Move constructor of RasterLayer into
393            try block.
394    
395            * Thuban/UI/projdialog.py (GeoPanel.__init__): Put Degrees as
396            the first item in choices. Fixes RTBug #1882.
397    
398            * Thuban/UI/renderer.py (MapRenderer.render_map): Check if scale
399            has gone to 0 which is a serious problem. abort.
400            (MapRenderer.draw_raster_layer): Catch IOError seperately and
401            print the error from GDAL.
402    
403            * Thuban/UI/tableview.py (TableGrid.__init__): Call
404            ToggleEventListeners to turn on listening.
405            (TableGrid.ToggleEventListeners): New. Turns event listening on
406            and off so as to prevent excessive messages.
407            (LayerTableFrame.OnQuery): Use TableGrid.ToggleEventListeners
408            to suppress excessive messages when selecting many rows.
409            Fixes RTBug #1880.
410    
411            * Thuban/UI/view.py: Added checks against if scale == 0. This
412            is a serious problem that can occur when an image without
413            geo data is loading and causes the map projection bounds to
414            go to infinity. Right now, the solution is to simply try
415            to recover.
416    
417            * extensions/thuban/cpl_mfile.cpp (MFILEClose): Make sure
418            to set the MFILEReceiver attributes even if the data is NULL.
419    
420            * extensions/thuban/gdalwarp.cpp: Improved the error handling
421            and passed GDAL messages back up to the Python layer. Also
422            tried to fix some memory leaks that were present in the original
423            utility but didn't matter because the program aborted.
424    
425            * test/test_range.py: Copied over tests from SciParam. Removed
426            tests against importing. Fixes RTBug #1867.
427    
428  2003-05-21  Bernhard Herzog  <[email protected]>  2003-05-21  Bernhard Herzog  <[email protected]>
429    
430          * test/test_load.py: Remove unused imports and restructure the          * test/test_load.py: Remove unused imports and restructure the

Legend:
Removed from v.958  
changed lines
  Added in v.1053

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26