/[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 927 by frank, Mon May 19 12:09:25 2003 UTC revision 999 by bh, Thu May 22 19:29:50 2003 UTC
# Line 1  Line 1 
1    2003-05-22  Bernhard Herzog  <[email protected]>
2    
3            Give the tables titles so that the GUI can display more meaningful
4            names. For now the titles are fixed but depend on e.g. filenames
5            or the titles of the joined tables.
6    
7            * Thuban/Model/transientdb.py (TransientTable.Title)
8            (TransientJoinedTable.Title, AutoTransientTable.Title): New.
9    
10            * Thuban/Model/table.py (DBFTable.Title, MemoryTable.Title): New.
11    
12            * test/test_transientdb.py
13            (TestTransientTable.test_auto_transient_table_title): New. Test
14            for the Title method
15            (TestTransientTable.test_transient_joined_table)
16            (TestTransientTable.test_transient_table): Add test for the Title
17            methods
18    
19            * test/test_memory_table.py (TestMemoryTable.test_title): New.
20            Test for the Title method
21    
22            * test/test_dbf_table.py (TestDBFTable.test_title): New. Test for
23            the Title method
24    
25    2003-05-22  Bernhard Herzog  <[email protected]>
26    
27            * test/test_layer.py (TestLayer.setUp, TestLayer.tearDown):
28            Provide a better way to destroy the layers
29            (TestLayer.test_base_layer, TestLayer.test_arc_layer)
30            (TestLayer.test_point_layer, TestLayer.test_empty_layer)
31            (TestLayer.test_polygon_layer, TestLayer.test_get_field_type): Use
32            the new way to destroy the layers.
33            (TestLayer.test_derived_store): New. Test for using a layer with a
34            DerivedShapeStore
35    
36            * Thuban/Model/layer.py (Layer.SetShapeStore): Only set the
37            filename if the shape store actually has one.
38    
39    2003-05-22  Bernhard Herzog  <[email protected]>
40    
41            * Thuban/Model/table.py (DBFTable.FileName): New. Accessor method
42            for the filename
43    
44            * test/test_dbf_table.py (TestDBFTable.test_filename): New. Test
45            for the FileName method
46            (TestDBFTableWriting.test_write): Fix spelling of filename
47    
48    2003-05-22  Thomas Koester  <[email protected]>
49    
50            * Thuban/Model/range.py, test/test_range.py: Brought over new Range
51            from SciParam that now really is immutable.
52    
53    2003-05-22  Frank Koormann  <[email protected]>
54    
55            Layer Top/Bottom placement added to legend.
56    
57            * Thuban/UI/legend.py
58            (LegendPanel._OnMoveTop(), LayerPanel._OnMoveBottom): New, methods
59            bound to tool events.
60            (LegendTree.MoveCurrentItemTop(), LegendTree.MoveCurrentItemBottom):
61            New, methods binding the event methods with the map methods.
62    
63            * Thuban/Model/map.py (Map.TopLayer(), Map.BottomLayer()): New, place
64            layer at top/bottom of layer stack.
65    
66            * Resources/Bitmaps/top_layer.xpm: New button icon.
67    
68            * Resources/Bitmaps/bottom_layer.xpm: New button icon.
69    
70    2003-05-22  Bernhard Herzog  <[email protected]>
71    
72            * Thuban/Model/session.py (Session.RemoveTable): New method to
73            remove tables
74    
75            * test/test_session.py (TestSessionSimple.test_remove_table): New.
76            Test for RemoveTable
77    
78    2003-05-22  Thomas Koester  <[email protected]>
79    
80            * Thuban/Model/classgen.py: Added short module doc string and CVS id.
81            (ClassGenerator.GenUniformDistribution): Use new Range __init__, too.
82    
83    2003-05-22  Bernhard Herzog  <[email protected]>
84    
85            Implement a way to discover dependencies between tables and
86            shapestores.
87    
88            * Thuban/Model/transientdb.py (TransientTableBase.Dependencies)
89            (TransientJoinedTable.Dependencies)
90            (AutoTransientTable.SimpleQuery): New. Implement the dependencies
91            interface
92            (TransientJoinedTable.__init__): Keep tack of the original table
93            objects in addition to the corresponding transient tables.
94    
95            * Thuban/Model/table.py (DBFTable.Dependencies)
96            (MemoryTable.Dependencies): New. Implement the dependencies
97            interface
98    
99            * Thuban/Model/data.py (ShapeTable): New. Helper class for
100            ShapefileStore
101            (ShapefileStore.__init__): Use ShapeTable instead of
102            AutoTransientTable
103            (ShapefileStore.Table, ShapefileStore.Shapefile): Add doc-strings
104            (ShapefileStore.FileName, ShapefileStore.FileType): New. Accessor
105            methods for filename and type
106            (ShapefileStore.Dependencies): New. Implement the dependencies
107            interface
108            (DerivedShapeStore): New class to replace SimpleStore. The main
109            difference to SimpleStore is that it depends not on a shapefile
110            but another shapestore which expresses the dependencies a bit
111            better
112            (SimpleStore.__init__): Add deprecation warning.
113    
114            * test/test_dbf_table.py (TestDBFTable.test_dependencies): New.
115            Test for the Dependencies method.
116    
117            * test/test_memory_table.py (TestMemoryTable.test_dependencies):
118            New. Test for the Dependencies method.
119    
120            * test/test_transientdb.py
121            (TestTransientTable.test_auto_transient_table_dependencies): New.
122            Test for the Dependencies method.
123            (TestTransientTable.test_transient_joined_table): Add test for the
124            Dependencies method.
125    
126            * test/test_session.py (TestSessionSimple.setUp)
127            (TestSessionSimple.tearDown): New. Implement a better way to
128            destroy the sessions.
129            (TestSessionSimple.test_initial_state)
130            (TestSessionSimple.test_add_table): Bind session to self.session
131            so that it's destroyed by tearDown
132            (TestSessionSimple.test_open_shapefile): New. Test for
133            OpenShapefile and the object it returns
134    
135    2003-05-22  Bernhard Herzog  <[email protected]>
136    
137            * Thuban/Model/session.py (Session.AddTable): New method to
138            register tables with the session.
139            (Session.Tables): Return the tables registered with AddTable too.
140    
141            * test/test_session.py (TestSessionSimple.test_add_table): New.
142            Test case for the AddTable method
143    
144    2003-05-22  Frank Koormann  <[email protected]>
145    
146            UI polishing updates: Place main buttons (OK, Cancel, etc) in the
147            lower right corner, center labels for selections, initialize controls
148            in reasonable order for keyboard navigation.
149    
150            * Thuban/UI/projdialog.py (ProjFrame.__init__, ProjFrame.__doLayout)
151            (ProjFrame.__DoOnProjAvail): Determine position of current projection
152            using the wxListBox.FindString() method. Still a problem (#1886)
153    
154            * Thuban/UI/classifier.py
155            (Classifier.__init__, SelectPropertiesDialog.__init__)
156    
157            * Thuban/UI/classgen.py (ClassGenDialog.__init__,
158            (ClassGenDialog.__DoOnGenTypeSelect): Moved initialization of the
159            different classification types from here to __init__.
160            (GenUniquePanel.__init__): Set the column width of the first field
161            in the Field ListCtrl to the full width.
162    
163            * Thuban/UI/tableview.py (LayerTableFrame.__init__): Rename 'Save As'
164            Button to 'Export'. Center Buttons in Selection Box, set Focus to
165            Grid.
166            (LayerTableFrame.OnKeyDown()): New, bound to the grid with EVT_KEY_DOWN,
167            changes focus to the Selection when pressing "Alt-S".
168    
169            * Thuban/UI/legend.py (LegendTree.__SetVisibilityStyle): Only gray out
170            the text if not visible. The italic font sometimes exceeds the
171            rendering area.
172    
173    2003-05-21  Jonathan Coles   <[email protected]>
174    
175            * Thuban/UI/dock.py (DockFrame): Rename references to _OnClose
176            to OnClose so that Thuban closes correctly.
177    
178            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Call
179            DockFrame.OnClose, not DockFrame._OnClose.
180    
181    2003-05-21  Jonathan Coles   <[email protected]>
182    
183            * Thuban/Model/classgen.py (ClassGenerator.GenQuantiles): Remove
184            references to 'inf' and use new Range __init__ to pass floats
185            directly rather than converting them to strings first.
186            Fixes RTBug #1876.
187    
188            * Thuban/Model/classification.py (ClassGroupRange.SetRange):
189            Use new Range ___init__ to pass floats.
190    
191            * Thuban/Model/layer.py (RasterLayer.__init__): Test if the
192            filename is a valid image file. Throw IOError otherwise.
193    
194            * Thuban/Model/range.py: Brought over new Range from SciParam that
195            is immutable and has an __init__ which can accept floats.
196    
197            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Move OpenShapefile
198            into try block. AddLayer doesn't throw any exceptions anymore.
199            (MainWindow.AddRasterLayer): Move constructor of RasterLayer into
200            try block.
201    
202            * Thuban/UI/projdialog.py (GeoPanel.__init__): Put Degrees as
203            the first item in choices. Fixes RTBug #1882.
204    
205            * Thuban/UI/renderer.py (MapRenderer.render_map): Check if scale
206            has gone to 0 which is a serious problem. abort.
207            (MapRenderer.draw_raster_layer): Catch IOError seperately and
208            print the error from GDAL.
209    
210            * Thuban/UI/tableview.py (TableGrid.__init__): Call
211            ToggleEventListeners to turn on listening.
212            (TableGrid.ToggleEventListeners): New. Turns event listening on
213            and off so as to prevent excessive messages.
214            (LayerTableFrame.OnQuery): Use TableGrid.ToggleEventListeners
215            to suppress excessive messages when selecting many rows.
216            Fixes RTBug #1880.
217    
218            * Thuban/UI/view.py: Added checks against if scale == 0. This
219            is a serious problem that can occur when an image without
220            geo data is loading and causes the map projection bounds to
221            go to infinity. Right now, the solution is to simply try
222            to recover.
223    
224            * extensions/thuban/cpl_mfile.cpp (MFILEClose): Make sure
225            to set the MFILEReceiver attributes even if the data is NULL.
226    
227            * extensions/thuban/gdalwarp.cpp: Improved the error handling
228            and passed GDAL messages back up to the Python layer. Also
229            tried to fix some memory leaks that were present in the original
230            utility but didn't matter because the program aborted.
231    
232            * test/test_range.py: Copied over tests from SciParam. Removed
233            tests against importing. Fixes RTBug #1867.
234    
235    2003-05-21  Bernhard Herzog  <[email protected]>
236    
237            * test/test_load.py: Remove unused imports and restructure the
238            test code
239            (LoadSessionTest): Split into one class for each test and turn
240            LoadSessionTest itself into the base class for all such session
241            tests.
242            (ClassificationTest): New base class for load tests that test
243            classifications
244            (TestSingleLayer, TestLayerVisibility, TestClassification)
245            (TestLabels, TestLayerProjection, TestRasterLayer): New classes
246            for the individual tests
247    
248            * test/support.py (FileLoadTestCase.filename): New base class for
249            file loading tests
250    
251    2003-05-21  Jan-Oliver Wagner <[email protected]>
252    
253            * Resources/Projections/defaults.proj: Renamed 'Universal Transverse
254            Mercator' to 'UTM Zone 32' as a more convenient example.
255            Added 'Gauss Krueger Zone 6'.
256    
257            * Data/iceland_sample_raster.thuban: political polygon now
258            filled transparent to have the raster image visible at once.
259    
260    2003-05-21  Frank Koormann  <[email protected]>
261    
262            * Thuban/UI/mainwindow.py (MainWindow): Renamed _OnClose() back to
263            OnClose() to keep in sync with extensions. Internally Thuban
264            still uses "underscored" names.
265    
266    2003-05-20  Jonathan Coles   <[email protected]>
267    
268            This puts back Raster layer support. These layers support projections
269            through the GDAL library. Currently, the CVS version is being used.
270            There are no Debian packages available although this may change soon.
271            A GDAL driver was extended to support writing to memory rather to
272            files.
273    
274            There is still some work that needs to be done, such as some error
275            handling when loading invalid images or when there is a problem
276            projecting the image. This putback simply checks in the majority
277            of the work.
278    
279            * setup.py: Add gdalwarp library extension.
280    
281            * Thuban/Model/layer.py (BaseLayer.HasClassification): New.
282            Defaults to False, but can be overridden by subclasses if they
283            support classification.
284            (RasterLayer): New. Defines a new layer that represents an
285            image.
286    
287            * Thuban/Model/load.py (SessionLoader.__init__): Add rasterlayer
288            tag handler.
289            (SessionLoader.start_layer): Encode the filename.
290            (SessionLoader.start_rasterlayer, SessionLoader.end_rasterlayer):
291            New. Supports reading a rasterlayer tag.
292    
293            * Thuban/Model/map.py (Map.BoundingBox): Fix typo in comment.
294    
295            * Thuban/Model/save.py (XMLWriter.encode): Don't assume that we
296            get a string in Latin1. If we get such as string convert it to
297            unicode first, otherwise leave if alone before encoding.
298            (SessionSaver.write_layer): Add support for writing both Layers
299            and RasterLayers.
300    
301            * Thuban/Model/transientdb.py (AutoTransientTable.SimpleQuery):
302            The right argument may not be a string, it could also be a Column.
303    
304            * Thuban/UI/application.py (ThubanApplication.CreateMainWindow):
305            Make initial window size 600x400. Fixes RTBug #1872.
306    
307            * Thuban/UI/classifier.py (Classifier.__init__): Rearrange how
308            the dialog is constructed so that we can support layers that
309            do not have classifications.
310            (Classifier._OnTry): Only build a classification if the layer
311            supports one.
312    
313            * Thuban/UI/legend.py: Change all checks that a layer is an
314            instance of Layer into checks against BaseLayer.
315            (LegendTree.__FillTreeLayer): Only add children to a branch if
316            the layer supports classification.
317    
318            * Thuban/UI/mainwindow.py (MainWindow.NewSession,
319            MainWindow.OpenSession): Don't proceed with an action if the
320            user chooses Cancel when they are asked to save changes.
321            (MainWindow.AddRasterLayer): New. Open a dialog to allow the
322            user to select an image file. Create a new RasterLayer and add
323            it to the map.
324    
325            * Thuban/UI/renderer.py (MapRenderer.render_map): Add support
326            for rendering RasterLayer layers.
327            (MapRenderer.draw_raster_layer): Actually method that calls
328            the GDALWarp python wrapper and constructs an image from the
329            data returned.
330    
331            * Thuban/UI/tableview.py (LayerTableFrame.__init__): Change the
332            Choices symbols to match those used in the table query method.
333            Replace deprecated method calls on table with new method names.
334    
335            * Thuban/UI/view.py (MapCanvas.set_view_transform): Try to limit
336            how small the scale can get. This still needs more testing.
337    
338            * extensions/thuban/bmpdataset.cpp: New, but copied from GDAL.
339            Provides a driver to output in .bmp format.
340    
341            * extensions/thuban/cpl_mfile.cpp, extensions/thuban/cpl_mfile.h:
342            New. Provides IO routines which write to memory, rather than a file.
343    
344            * extensions/thuban/gdalwarp.cpp: New, but basically a direct copy
345            of the gdalwarp utility provided in GDAL. Added function calls
346            that can be accessed from python.
347    
348            * Data/iceland_sample_raster.thuban: New. Sample file that uses
349            a raster layer.
350    
351            * Data/iceland/island.tfw, Data/iceland/island.tif: New. Raster
352            layer image data.
353    
354            * Doc/thuban.dtd: Added rasterlayer attribute definition.
355    
356            * test/test_layer.py, test/test_load.py, test/test_save.py: Added
357            tests associated with the raster layer code.
358    
359            * test/test_transientdb.py
360            (TestTransientTable.test_auto_transient_table_query): Added a test
361            for using a Column object as the "right" parameter to a query.
362    
363  2003-05-19  Frank Koormann  <[email protected]>  2003-05-19  Frank Koormann  <[email protected]>
364    
365          * Thuban/version.py (get_changelog_date):          * Thuban/version.py (get_changelog_date):

Legend:
Removed from v.927  
changed lines
  Added in v.999

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26