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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26