/[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 995 by bh, Thu May 22 18:05:25 2003 UTC revision 1093 by bh, Wed May 28 17:10:09 2003 UTC
# Line 1  Line 1 
1    2003-05-28  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/UI/tableview.py (NullRenderer.Draw): New. Our own
4            renderer so that NULL/None values get displayed differently (by a
5            gray rectangle).
6            (TableGrid.__init__): Override the default renderers
7    
8    2003-05-28  Bernhard Herzog  <[email protected]>
9    
10            * Thuban/Model/layer.py (Layer.SetShapeStore): Set the
11            classification to "None" if the type of the field has changed.
12    
13            * test/test_layer.py (SetShapeStoreTests): New. Class with a few
14            test for the Layer.SetShapeStore method
15    
16    2003-05-28  Jan-Oliver Wagner <[email protected]>
17    
18            * Thuban/Model/layer.py (Layer.TreeInfo): Fixed a bug (a layer
19            does not necessarily have a filename).
20    
21    2003-05-28  Jan-Oliver Wagner <[email protected]>
22    
23            * Thuban/UI/mainwindow.py (MainWindow.TableClose, MainWindow.TableShow):
24            sort the selection list for the dialog.
25    
26    2003-05-28  Frank Koormann  <[email protected]>
27    
28            * extensions/thuban/wxproj.cpp
29            (project_point): Removed cast to int for projected point coordinates.
30            (shape_centroid): Return last point if all polygon vertices fall
31            to one point.
32    
33    2003-05-28  Bernhard Herzog  <[email protected]>
34    
35            * Thuban/UI/mainwindow.py (_can_unjoin): Add doc-string and cope
36            with layers that don't have shapestores, i.e. raster layers.
37    
38    2003-05-28  Bernhard Herzog  <[email protected]>
39    
40            * Thuban/Model/table.py (DBFTable.__init__): Omit the extension
41            when determining the title from the filename.
42    
43            * test/test_dbf_table.py (TestDBFTable.test_title): Update to
44            reflect changes in the way the title is derived from the filename
45    
46    2003-05-28  Frank Koormann  <[email protected]>
47    
48            * Thuban/UI/mainwindow.py (MainWindow.TableShow):
49            Added wxDEFAULT_DIALOG_STYLE to show table dialog styles.
50    
51    2003-05-27  Bernhard Herzog  <[email protected]>
52    
53            * Thuban/UI/mainwindow.py (MainWindow.delegated_messages): Also
54            delegate SelectedLayer.
55            (MainWindow.LayerUnjoinTable): Implement.
56            (_can_unjoin): New. Helper function for the sensitivity of the
57            layer/unjoin command.
58    
59            * Thuban/Model/data.py (ShapefileStore.OrigShapeStore)
60            (DerivedShapeStore.OrigShapeStore): New. Return the original
61            shapestore. Used to figure out how to unjoin.
62            (DerivedShapeStore.Shapefile): Fix a typo.
63    
64    2003-05-27  Bernhard Herzog  <[email protected]>
65    
66            * Thuban/UI/join.py (JoinDialog): Extend to handle layer joins as
67            well
68            (JoinDialog.__init__): Use the layer parameter and only build the
69            left choice when a layer is given
70            (JoinDialog.OnJoin): Handle layer joins as well
71            (JoinDialog.OnLeftTable, JoinDialog.OnRightTable): Handle the case
72            that the user selects the "Select..." item. The sensitivitly
73            updating is now in update_sensitivity
74            (JoinDialog.y): New method to refactor the sensitivity update of
75            the join button into its own method.
76    
77            * Thuban/UI/mainwindow.py (MainWindow.LayerJoinTable): Implement.
78    
79    2003-05-27  Bernhard Herzog  <[email protected]>
80    
81            * Thuban/UI/mainwindow.py (table_close command): Make it sensitive
82            iff there are unreferenced tables in the session
83    
84    2003-05-27  Bernhard Herzog  <[email protected]>
85    
86            * Thuban/Model/messages.py (TABLE_REMOVED): New message.
87    
88            * Thuban/Model/session.py (Session.UnreferencedTables): New method
89            to return tables that are not referenced by other tables or shape
90            stores and can be removed.
91            (Session.RemoveTable): Issue a TABLE_REMOVED message after
92            removing the table
93    
94            * Thuban/UI/mainwindow.py: Remove unused imports
95            (MainWindow.TableClose): Implement.
96    
97            * Thuban/UI/tableview.py (TableFrame.__init__): Subscribe to some
98            messages so that the frame will be automatically closed when a new
99            session is opened or the table is removed.
100            (TableFrame.OnClose): Unsubscribe the Subscriptions made in
101            __init__
102            (TableFrame.close_on_session_replaced)
103            (TableFrame.close_on_table_removed): New. Subscribers that close
104            the window
105    
106            * test/test_session.py (TestSessionMessages.test_remove_table)
107            (TestSessionSimple.test_remove_table): Move the test to
108            TestSessionSimple and add test for the TABLE_REMOVED message
109            (TestSessionBase.setUp): Also subscribe to TABLE_REMOVED
110            (TestSessionSimple.test_unreferenced_tables) New. Test for the
111            UnreferencedTables method.
112            (UnreferencedTablesTests): New. Class with some more sophisticated
113            tests for UnreferencedTables.
114    
115    2003-05-27  Frank Koormann  <[email protected]>
116    
117            * Thuban/UI/tableview.py (QueryTableFrame.__init__): The "_S_election"
118            display has some unwanted side effects. Removed again.
119    
120    2003-05-27  Frank Koormann  <[email protected]>
121    
122            * Resources/Bitmaps/legend_icon_layer.xpm: New, icon for legend.
123    
124            * Thuban/UI/legend.py (LegendTree.__FillTree): Use "legend_icon_layer"
125    
126    2003-05-27  Jan-Oliver Wagner <[email protected]>
127    
128            * test/test_menu.py (MenuTest.test): Added test for
129            Menu.RemoveItem().
130    
131            * Thuban/UI/menu.py (Menu.RemoveItem): New. Remove an item from
132            the menu.
133    
134    2003-05-27  Frank Koormann  <[email protected]>
135            
136            Nonmodal dialogs without parent (i.e. they can fall behind the main
137            window)
138    
139            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Explicitly destroy
140            all dialogs in the dialogs dictionary and the canvas.
141    
142            * Thuban/UI/dialogs.py (NonModalNonParentDialog): New class, without
143            parent, i.e. can fall behind other windows.
144            (NonModalDialog.OnClose): Check is dialog is in mainwindow.dialog
145            dictionary before removing it.
146    
147            * Thuban/UI/classifier.py: Dialog derived from NonModalNonParentDialog
148    
149            * Thuban/UI/projdialog.py: Dialog derived from NonModalNonParentDialog
150            * Thuban/UI/tableview.py: Dialog derived from NonModalNonParentDialog
151            * Thuban/UI/tree.py: Dialog derived from NonModalNonParentDialog
152    
153    2003-05-27  Bernhard Herzog  <[email protected]>
154    
155            * Thuban/UI/mainwindow.py (MainWindow.ShowTableView): New. Open a
156            tableview dialog
157            (MainWindow.TableShow): Use ShowTableView to open the dialogs.
158            Also, don't use the table's titles as the dialog names. The titles
159            aren't guaranteed to be unique.
160            (MainWindow.TableOpen): Open a table view dialog after opening the
161            table
162    
163    2003-05-27  Bernhard Herzog  <[email protected]>
164    
165            * Thuban/UI/mainwindow.py: Remove the Table/Hide menu item. Its
166            effect can be achieved by simply closing the window showing the
167            table.
168            (MainWindow.TableHide): Removed.
169            (main_menu): Removed "table_hide"
170    
171    2003-05-27  Frank Koormann  <[email protected]>
172    
173            Fix legend tree display problems under Win32
174    
175            * Thuban/UI/legend.py:  BMP_SIZE_W = 15
176            (LegendTree.__FillTree): Display "legend_icon_map.xpm" with layer title.
177            (LegendTree.__FillTreeLayer): Explicitely set SelectedImage.
178    
179            * Resources/Bitmaps/legend_icon_map.xpm: New icon for legend.
180    
181    2003-05-27  Jan-Oliver Wagner <[email protected]>
182    
183            * Thuban/UI/menu.py (Menu.InsertSeparator): Additional optional parameter
184            'after' now allows to insert separators almost anywhere in the menu.
185    
186    2003-05-27  Frank Koormann  <[email protected]>
187    
188            * Thuban/UI/tableview.py (QueryTableFrame.__init__): Underline the
189            "S" of selection box label to hint on hot key (Alt-S). Works under
190            Win32 but is ignored under GTK.
191    
192    2003-05-26  Frank Koormann  <[email protected]>
193    
194            * Thuban/UI/projdialog.py (ProjFrame.__do_layout, ProjPanel._DoLayout):
195            Center Choices.
196    
197    2003-05-26  Bernhard Herzog  <[email protected]>
198    
199            Remove the Precision methods again. They're too DBF specific to be
200            part of the table interface and they're only used in table_to_dbf
201            anyway.
202            
203            * Thuban/Model/transientdb.py (TransientTableBase.Width):Use a
204            fixed precision of 12 for doubles.
205            (TransientTableBase.Precision): Removed
206            (AutoTransientTable.Width): Delegate to self.table.
207    
208            * Thuban/Model/table.py (DBFTable.Precision)
209            (MemoryTable.Precision): Removed.
210            (MemoryTable.Width): Use a fixed precision of 12 for doubles.
211            (table_to_dbf): Use a fixed precision of 12 for floats unless the
212            column object specifies something else.
213    
214            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): New.
215            test for table_to_dbf
216    
217    2003-05-26  Bernhard Herzog  <[email protected]>
218    
219            * test/test_transientdb.py
220            (TestTransientTable.run_iceland_political_tests): Fix a comment.
221    
222    2003-05-26  Bernhard Herzog  <[email protected]>
223    
224            * Thuban/UI/mainwindow.py (MainWindow.TableOpen): Real
225            implementation. Mark parts of the file format strings for
226            localization.
227    
228            * Thuban/Model/session.py (Session.OpenTableFile): New. Open a dbf
229            file and add the table to the tables managed by the session
230    
231            * test/test_session.py (TestSessionSimple.test_open_table_file):
232            New. test case for OpenTableFile
233    
234    2003-05-26  Jan-Oliver Wagner <[email protected]>
235    
236            * Thuban/UI/controls.py, Thuban/UI/identifyview.py, Thuban/UI/join.py,
237            Thuban/UI/labeldialog.py, Thuban/UI/mainwindow.py,
238            Thuban/UI/proj4dialog.py, Thuban/UI/tableview.py, Thuban/UI/view.py:
239            Replace the true/false of wxWindows by True/False of Python 2.2.1.
240    
241    2003-05-26  Jan-Oliver Wagner <[email protected]>
242    
243            * Thuban/UI/tableview.py (LayerTableFrame.__init__): If there is
244            already a selection present, update the grid accordingly.
245    
246            * Thuban/UI/mainwindow.py (MainWindow.TableShow): Make the dialog
247            resizeable and increase its initial size.
248    
249    2003-05-26  Frank Koormann  <[email protected]>
250    
251            Table export functionality
252    
253            * Thuban/Model/table.py (DBFTable.Width, MemoryTable.Width):
254            Return width (in characters) for a column.
255            (DBFTable.Precision, MemoryTable.Precision): Return decimal precision.
256            (table_to_dbf): Write table to dbf file.
257            (table_to_csv): Write table to csv file.
258    
259            * Thuban/Model/transientdb.py (TransientTableBase.Width,
260            TransientTableBase.Precision): Return column width and precision.
261    
262            * Thuban/UI/tableview.py (QueryTableFrame.OnSaveAs): Call table_to_dbf
263            or table_to_csv depending on file selection.
264    
265            * test/test_dbf_table.py:
266            Test table_to_dbf (extension of former part of test).
267    
268            * test/test_csv_table.py:
269            Test table_to_csv.
270    
271    2003-05-23  Jan-Oliver Wagner <[email protected]>
272    
273            * Thuban/UI/join.py (JoinDialog.OnJoin): Use _() for strings.
274            Use QueryTableFrame instead of TableFrame.
275    
276            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Prefix the
277            table window with 'Layer Table:' instead of 'Table:'.
278    
279    2003-05-23  Jan-Oliver Wagner <[email protected]>
280    
281            Give all tables a title via mix-in TitledObject.LayerShowTable
282    
283            * Thuban/Model/base.py (TitledObject.SetTitle): Call method 'issue'
284            only if it exists.
285    
286            * Thuban/Model/table.py (DBFTable, MemoryTable): mix-in TitledObject
287            and call its init-method with a default title. Remove Title() method.
288    
289            * Thuban/Model/transientdb.py (TransientTable, TransientJoinedTable,
290            AutoTransientTable): mix-in TitledObject and call its init-method with
291            a default title. Remove Title() method.
292    
293    2003-05-23  Bernhard Herzog  <[email protected]>
294    
295            * Thuban/Model/session.py (Session.AddShapeStore): Define
296            AddShapeStore analogously to AddTable.
297    
298            * test/test_session.py (TestSessionSimple.test_add_shapestore):
299            New. Test for AddShapeStore
300    
301    2003-05-23  Jan-Oliver Wagner <[email protected]>
302    
303            Introducing QueryTableFrame and a very coarse ShowTable implementation.
304    
305            * Thuban/UI/tableview.py (LayerTableFrame, QueryTableFrame): Split the
306            class LayerTableFrame into two classes, LayerTableFrame and QueryTableFrame.
307            The latter implements the selection GUI without dependency on a layer.
308            LayerTableFrame now is derived from QueryTableFrame and connects
309            to a layer.
310    
311            * Thuban/UI/mainwindow.py (MainWindow.TableShow): A very coarse
312            implementation that still needs work.
313    
314            * Thuban/Model/layer.py (Layer.TreeInfo): Added filename.
315    
316    2003-05-22  Frank Koormann  <[email protected]>
317    
318            * Thuban/Model/transientdb.py (TransientJoinedTable.__init__):
319            Added "outer_join = False" as optional parameter.
320            (TransientJoinedTable.create): If outer join is true, perform a
321            "LEFT OUTER JOIN" instead of "JOIN", which preserves all records of
322            the left table. Records not matching are filled with 0 / None.
323    
324            * Thuban/UI/join.py (JoinDialog.__init__): Checkbox for outer join.
325            (JoinDialog.OnJoin): Consider outer join check box.
326    
327    2003-05-22  Bernhard Herzog  <[email protected]>
328    
329            * Thuban/UI/join.py (JoinDialog.OnJoin): Use exc_info in a
330            somewhat safer way. Storing the traceback in a local variable can
331            lead to memory leaks
332    
333    2003-05-22  Bernhard Herzog  <[email protected]>
334    
335            * Thuban/UI/join.py (JoinDialog.OnJoin): Make sure to really call
336            the wxMessageDialog's Destroy() method.
337    
338    2003-05-22  Frank Koormann  <[email protected]>
339    
340            * Thuban/UI/join.py (JoinDialog.__init__): Make use of
341            TransientTable.Title()
342    
343    2003-05-22  Frank Koormann  <[email protected]>
344    
345            Join Dialog, initial version.
346    
347            * Thuban/UI/mainwindow.py (MainWindow.TableJoin): Removed print.
348    
349            * Thuban/UI/join.py (JoinDialog): Functional implementation of
350            former framework. Renamed Table1/Table2 to LeftTable/RightTable
351            in all occurences.
352    
353            * Thuban/Model/transientdb.py (TransientJoinedTable.__doc__):
354            Typo fixed.
355    
356    2003-05-22  Bernhard Herzog  <[email protected]>
357    
358            Give the tables titles so that the GUI can display more meaningful
359            names. For now the titles are fixed but depend on e.g. filenames
360            or the titles of the joined tables.
361    
362            * Thuban/Model/transientdb.py (TransientTable.Title)
363            (TransientJoinedTable.Title, AutoTransientTable.Title): New.
364    
365            * Thuban/Model/table.py (DBFTable.Title, MemoryTable.Title): New.
366    
367            * test/test_transientdb.py
368            (TestTransientTable.test_auto_transient_table_title): New. Test
369            for the Title method
370            (TestTransientTable.test_transient_joined_table)
371            (TestTransientTable.test_transient_table): Add test for the Title
372            methods
373    
374            * test/test_memory_table.py (TestMemoryTable.test_title): New.
375            Test for the Title method
376    
377            * test/test_dbf_table.py (TestDBFTable.test_title): New. Test for
378            the Title method
379    
380    2003-05-22  Bernhard Herzog  <[email protected]>
381    
382            * test/test_layer.py (TestLayer.setUp, TestLayer.tearDown):
383            Provide a better way to destroy the layers
384            (TestLayer.test_base_layer, TestLayer.test_arc_layer)
385            (TestLayer.test_point_layer, TestLayer.test_empty_layer)
386            (TestLayer.test_polygon_layer, TestLayer.test_get_field_type): Use
387            the new way to destroy the layers.
388            (TestLayer.test_derived_store): New. Test for using a layer with a
389            DerivedShapeStore
390    
391            * Thuban/Model/layer.py (Layer.SetShapeStore): Only set the
392            filename if the shape store actually has one.
393    
394  2003-05-22  Bernhard Herzog  <[email protected]>  2003-05-22  Bernhard Herzog  <[email protected]>
395    
396          * Thuban/Model/table.py (DBFTable.FileName): New. Accessor method          * Thuban/Model/table.py (DBFTable.FileName): New. Accessor method

Legend:
Removed from v.995  
changed lines
  Added in v.1093

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26