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

Legend:
Removed from v.983  
changed lines
  Added in v.1083

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26