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

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26