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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26