/[thuban]/branches/WIP-pyshapelib-bramz/ChangeLog
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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

Legend:
Removed from v.988  
changed lines
  Added in v.1085

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26