/[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 833 by jonathan, Tue May 6 12:07:44 2003 UTC revision 993 by tkoester, Thu May 22 16:54:04 2003 UTC
# Line 1  Line 1 
1    2003-05-22  Thomas Koester  <[email protected]>
2    
3            * Thuban/Model/range.py, test/test_range.py: Brought over new Range
4            from SciParam that now really is immutable.
5    
6    2003-05-22  Frank Koormann  <[email protected]>
7    
8            Layer Top/Bottom placement added to legend.
9    
10            * Thuban/UI/legend.py
11            (LegendPanel._OnMoveTop(), LayerPanel._OnMoveBottom): New, methods
12            bound to tool events.
13            (LegendTree.MoveCurrentItemTop(), LegendTree.MoveCurrentItemBottom):
14            New, methods binding the event methods with the map methods.
15    
16            * Thuban/Model/map.py (Map.TopLayer(), Map.BottomLayer()): New, place
17            layer at top/bottom of layer stack.
18    
19            * Resources/Bitmaps/top_layer.xpm: New button icon.
20    
21            * Resources/Bitmaps/bottom_layer.xpm: New button icon.
22    
23    2003-05-22  Bernhard Herzog  <[email protected]>
24    
25            * Thuban/Model/session.py (Session.RemoveTable): New method to
26            remove tables
27    
28            * test/test_session.py (TestSessionSimple.test_remove_table): New.
29            Test for RemoveTable
30    
31    2003-05-22  Thomas Koester  <[email protected]>
32    
33            * Thuban/Model/classgen.py: Added short module doc string and CVS id.
34            (ClassGenerator.GenUniformDistribution): Use new Range __init__, too.
35    
36    2003-05-22  Bernhard Herzog  <[email protected]>
37    
38            Implement a way to discover dependencies between tables and
39            shapestores.
40    
41            * Thuban/Model/transientdb.py (TransientTableBase.Dependencies)
42            (TransientJoinedTable.Dependencies)
43            (AutoTransientTable.SimpleQuery): New. Implement the dependencies
44            interface
45            (TransientJoinedTable.__init__): Keep tack of the original table
46            objects in addition to the corresponding transient tables.
47    
48            * Thuban/Model/table.py (DBFTable.Dependencies)
49            (MemoryTable.Dependencies): New. Implement the dependencies
50            interface
51    
52            * Thuban/Model/data.py (ShapeTable): New. Helper class for
53            ShapefileStore
54            (ShapefileStore.__init__): Use ShapeTable instead of
55            AutoTransientTable
56            (ShapefileStore.Table, ShapefileStore.Shapefile): Add doc-strings
57            (ShapefileStore.FileName, ShapefileStore.FileType): New. Accessor
58            methods for filename and type
59            (ShapefileStore.Dependencies): New. Implement the dependencies
60            interface
61            (DerivedShapeStore): New class to replace SimpleStore. The main
62            difference to SimpleStore is that it depends not on a shapefile
63            but another shapestore which expresses the dependencies a bit
64            better
65            (SimpleStore.__init__): Add deprecation warning.
66    
67            * test/test_dbf_table.py (TestDBFTable.test_dependencies): New.
68            Test for the Dependencies method.
69    
70            * test/test_memory_table.py (TestMemoryTable.test_dependencies):
71            New. Test for the Dependencies method.
72    
73            * test/test_transientdb.py
74            (TestTransientTable.test_auto_transient_table_dependencies): New.
75            Test for the Dependencies method.
76            (TestTransientTable.test_transient_joined_table): Add test for the
77            Dependencies method.
78    
79            * test/test_session.py (TestSessionSimple.setUp)
80            (TestSessionSimple.tearDown): New. Implement a better way to
81            destroy the sessions.
82            (TestSessionSimple.test_initial_state)
83            (TestSessionSimple.test_add_table): Bind session to self.session
84            so that it's destroyed by tearDown
85            (TestSessionSimple.test_open_shapefile): New. Test for
86            OpenShapefile and the object it returns
87    
88    2003-05-22  Bernhard Herzog  <[email protected]>
89    
90            * Thuban/Model/session.py (Session.AddTable): New method to
91            register tables with the session.
92            (Session.Tables): Return the tables registered with AddTable too.
93    
94            * test/test_session.py (TestSessionSimple.test_add_table): New.
95            Test case for the AddTable method
96    
97    2003-05-22  Frank Koormann  <[email protected]>
98    
99            UI polishing updates: Place main buttons (OK, Cancel, etc) in the
100            lower right corner, center labels for selections, initialize controls
101            in reasonable order for keyboard navigation.
102    
103            * Thuban/UI/projdialog.py (ProjFrame.__init__, ProjFrame.__doLayout)
104            (ProjFrame.__DoOnProjAvail): Determine position of current projection
105            using the wxListBox.FindString() method. Still a problem (#1886)
106    
107            * Thuban/UI/classifier.py
108            (Classifier.__init__, SelectPropertiesDialog.__init__)
109    
110            * Thuban/UI/classgen.py (ClassGenDialog.__init__,
111            (ClassGenDialog.__DoOnGenTypeSelect): Moved initialization of the
112            different classification types from here to __init__.
113            (GenUniquePanel.__init__): Set the column width of the first field
114            in the Field ListCtrl to the full width.
115    
116            * Thuban/UI/tableview.py (LayerTableFrame.__init__): Rename 'Save As'
117            Button to 'Export'. Center Buttons in Selection Box, set Focus to
118            Grid.
119            (LayerTableFrame.OnKeyDown()): New, bound to the grid with EVT_KEY_DOWN,
120            changes focus to the Selection when pressing "Alt-S".
121    
122            * Thuban/UI/legend.py (LegendTree.__SetVisibilityStyle): Only gray out
123            the text if not visible. The italic font sometimes exceeds the
124            rendering area.
125    
126    2003-05-21  Jonathan Coles   <[email protected]>
127    
128            * Thuban/UI/dock.py (DockFrame): Rename references to _OnClose
129            to OnClose so that Thuban closes correctly.
130    
131            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Call
132            DockFrame.OnClose, not DockFrame._OnClose.
133    
134    2003-05-21  Jonathan Coles   <[email protected]>
135    
136            * Thuban/Model/classgen.py (ClassGenerator.GenQuantiles): Remove
137            references to 'inf' and use new Range __init__ to pass floats
138            directly rather than converting them to strings first.
139            Fixes RTBug #1876.
140    
141            * Thuban/Model/classification.py (ClassGroupRange.SetRange):
142            Use new Range ___init__ to pass floats.
143    
144            * Thuban/Model/layer.py (RasterLayer.__init__): Test if the
145            filename is a valid image file. Throw IOError otherwise.
146    
147            * Thuban/Model/range.py: Brought over new Range from SciParam that
148            is immutable and has an __init__ which can accept floats.
149    
150            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Move OpenShapefile
151            into try block. AddLayer doesn't throw any exceptions anymore.
152            (MainWindow.AddRasterLayer): Move constructor of RasterLayer into
153            try block.
154    
155            * Thuban/UI/projdialog.py (GeoPanel.__init__): Put Degrees as
156            the first item in choices. Fixes RTBug #1882.
157    
158            * Thuban/UI/renderer.py (MapRenderer.render_map): Check if scale
159            has gone to 0 which is a serious problem. abort.
160            (MapRenderer.draw_raster_layer): Catch IOError seperately and
161            print the error from GDAL.
162    
163            * Thuban/UI/tableview.py (TableGrid.__init__): Call
164            ToggleEventListeners to turn on listening.
165            (TableGrid.ToggleEventListeners): New. Turns event listening on
166            and off so as to prevent excessive messages.
167            (LayerTableFrame.OnQuery): Use TableGrid.ToggleEventListeners
168            to suppress excessive messages when selecting many rows.
169            Fixes RTBug #1880.
170    
171            * Thuban/UI/view.py: Added checks against if scale == 0. This
172            is a serious problem that can occur when an image without
173            geo data is loading and causes the map projection bounds to
174            go to infinity. Right now, the solution is to simply try
175            to recover.
176    
177            * extensions/thuban/cpl_mfile.cpp (MFILEClose): Make sure
178            to set the MFILEReceiver attributes even if the data is NULL.
179    
180            * extensions/thuban/gdalwarp.cpp: Improved the error handling
181            and passed GDAL messages back up to the Python layer. Also
182            tried to fix some memory leaks that were present in the original
183            utility but didn't matter because the program aborted.
184    
185            * test/test_range.py: Copied over tests from SciParam. Removed
186            tests against importing. Fixes RTBug #1867.
187    
188    2003-05-21  Bernhard Herzog  <[email protected]>
189    
190            * test/test_load.py: Remove unused imports and restructure the
191            test code
192            (LoadSessionTest): Split into one class for each test and turn
193            LoadSessionTest itself into the base class for all such session
194            tests.
195            (ClassificationTest): New base class for load tests that test
196            classifications
197            (TestSingleLayer, TestLayerVisibility, TestClassification)
198            (TestLabels, TestLayerProjection, TestRasterLayer): New classes
199            for the individual tests
200    
201            * test/support.py (FileLoadTestCase.filename): New base class for
202            file loading tests
203    
204    2003-05-21  Jan-Oliver Wagner <[email protected]>
205    
206            * Resources/Projections/defaults.proj: Renamed 'Universal Transverse
207            Mercator' to 'UTM Zone 32' as a more convenient example.
208            Added 'Gauss Krueger Zone 6'.
209    
210            * Data/iceland_sample_raster.thuban: political polygon now
211            filled transparent to have the raster image visible at once.
212    
213    2003-05-21  Frank Koormann  <[email protected]>
214    
215            * Thuban/UI/mainwindow.py (MainWindow): Renamed _OnClose() back to
216            OnClose() to keep in sync with extensions. Internally Thuban
217            still uses "underscored" names.
218    
219    2003-05-20  Jonathan Coles   <[email protected]>
220    
221            This puts back Raster layer support. These layers support projections
222            through the GDAL library. Currently, the CVS version is being used.
223            There are no Debian packages available although this may change soon.
224            A GDAL driver was extended to support writing to memory rather to
225            files.
226    
227            There is still some work that needs to be done, such as some error
228            handling when loading invalid images or when there is a problem
229            projecting the image. This putback simply checks in the majority
230            of the work.
231    
232            * setup.py: Add gdalwarp library extension.
233    
234            * Thuban/Model/layer.py (BaseLayer.HasClassification): New.
235            Defaults to False, but can be overridden by subclasses if they
236            support classification.
237            (RasterLayer): New. Defines a new layer that represents an
238            image.
239    
240            * Thuban/Model/load.py (SessionLoader.__init__): Add rasterlayer
241            tag handler.
242            (SessionLoader.start_layer): Encode the filename.
243            (SessionLoader.start_rasterlayer, SessionLoader.end_rasterlayer):
244            New. Supports reading a rasterlayer tag.
245    
246            * Thuban/Model/map.py (Map.BoundingBox): Fix typo in comment.
247    
248            * Thuban/Model/save.py (XMLWriter.encode): Don't assume that we
249            get a string in Latin1. If we get such as string convert it to
250            unicode first, otherwise leave if alone before encoding.
251            (SessionSaver.write_layer): Add support for writing both Layers
252            and RasterLayers.
253    
254            * Thuban/Model/transientdb.py (AutoTransientTable.SimpleQuery):
255            The right argument may not be a string, it could also be a Column.
256    
257            * Thuban/UI/application.py (ThubanApplication.CreateMainWindow):
258            Make initial window size 600x400. Fixes RTBug #1872.
259    
260            * Thuban/UI/classifier.py (Classifier.__init__): Rearrange how
261            the dialog is constructed so that we can support layers that
262            do not have classifications.
263            (Classifier._OnTry): Only build a classification if the layer
264            supports one.
265    
266            * Thuban/UI/legend.py: Change all checks that a layer is an
267            instance of Layer into checks against BaseLayer.
268            (LegendTree.__FillTreeLayer): Only add children to a branch if
269            the layer supports classification.
270    
271            * Thuban/UI/mainwindow.py (MainWindow.NewSession,
272            MainWindow.OpenSession): Don't proceed with an action if the
273            user chooses Cancel when they are asked to save changes.
274            (MainWindow.AddRasterLayer): New. Open a dialog to allow the
275            user to select an image file. Create a new RasterLayer and add
276            it to the map.
277    
278            * Thuban/UI/renderer.py (MapRenderer.render_map): Add support
279            for rendering RasterLayer layers.
280            (MapRenderer.draw_raster_layer): Actually method that calls
281            the GDALWarp python wrapper and constructs an image from the
282            data returned.
283    
284            * Thuban/UI/tableview.py (LayerTableFrame.__init__): Change the
285            Choices symbols to match those used in the table query method.
286            Replace deprecated method calls on table with new method names.
287    
288            * Thuban/UI/view.py (MapCanvas.set_view_transform): Try to limit
289            how small the scale can get. This still needs more testing.
290    
291            * extensions/thuban/bmpdataset.cpp: New, but copied from GDAL.
292            Provides a driver to output in .bmp format.
293    
294            * extensions/thuban/cpl_mfile.cpp, extensions/thuban/cpl_mfile.h:
295            New. Provides IO routines which write to memory, rather than a file.
296    
297            * extensions/thuban/gdalwarp.cpp: New, but basically a direct copy
298            of the gdalwarp utility provided in GDAL. Added function calls
299            that can be accessed from python.
300    
301            * Data/iceland_sample_raster.thuban: New. Sample file that uses
302            a raster layer.
303    
304            * Data/iceland/island.tfw, Data/iceland/island.tif: New. Raster
305            layer image data.
306    
307            * Doc/thuban.dtd: Added rasterlayer attribute definition.
308    
309            * test/test_layer.py, test/test_load.py, test/test_save.py: Added
310            tests associated with the raster layer code.
311    
312            * test/test_transientdb.py
313            (TestTransientTable.test_auto_transient_table_query): Added a test
314            for using a Column object as the "right" parameter to a query.
315    
316    2003-05-19  Frank Koormann  <[email protected]>
317    
318            * Thuban/version.py (get_changelog_date):
319            Catch exceptions if ChangeLog does not exist.
320    
321            * Thuban/UI/view.py (MapCanvas.Export): Bugfix
322    
323    2003-05-19  Frank Koormann  <[email protected]>
324    
325            Extended version information for Thuban
326    
327            * Thuban/version.py: New, version information for Thuban: Last
328            modification date and last ChangeLog entry date.
329    
330            * Thuban/UI/mainwindow.py (MainWindow.About()): Extended version
331            information: Display Thuban, wxPython and Python version.
332    
333    2003-05-16  Bernhard Herzog  <[email protected]>
334    
335            * Thuban/Model/save.py: Remove some unused imports including the
336            __future__ import for nested_scopes as Thuban relies on Python 2.2
337            now.
338            (XMLWriter.encode): Remove the special case for a None argument.
339            In the saver encode is always called with a string argument.
340    
341    2003-05-16  Bernhard Herzog  <[email protected]>
342    
343            * Thuban/UI/__init__.py: Remove the work-around for the locale bug
344            in wxPython (at least when usinvg wxGTK) prior to 2.4. The symptom
345            of the bug was that e.g. float("1.2") would fail. Thuban now
346            requires 2.4.x.
347            
348    2003-05-16  Frank Koormann   <[email protected]>
349    
350            Printing enhancement and WMF export (under Win32)
351    
352            * Thuban/UI/renderer.py (ExportRenderer): New, derived from
353            ScreenRenderer. Renders Map, Legend and Scalebar for export.
354            (PrinterRenderer): New, derived from ExportRenderer. Replaces the old
355            PrintRender.
356    
357            * Thuban/UI/view.py (MapPrintout.__init__): Enhanced parameter set
358            to fullfil information needed for PrinterRenderer.
359            (MapCanvas.Export): New. Export Map (currently only to WMF on Win32).
360            (MapCanvas.Print): Adapted to new MapPrintout.
361            (OutputTransform): General calculations to transform from canvas
362            coordinates to export/printing devices.
363    
364            * Thuban/UI/mainwindow.py (MainWindow.ExportMap()): New. Added also
365            new method_command to call ExportMap, with platform dependency (only
366            __WXMSW__)
367      
368            * Thuban/UI/scalebar.py (ScaleBar.DrawScaleBar): Position and Size
369            of scalebar drawing area as new parameters.
370            
371            * Thuban/Model/scalebar.py (roundInterval): round long instead of int
372    
373            * Thuban/UI/legend.py (ScalebarBitmap.__SetScale):
374            Update to extended scalebar.DrawScalebar header.
375    
376            * test/test_export.py: New, test Thuban.UI.view.OutputTransform()
377    
378            * test/test_scalebar.py: Made test executable as standalone.
379    
380    2003-05-16  Bernhard Herzog  <[email protected]>
381    
382            * Thuban/Model/table.py (Table): Remove this compatibility alias
383            for DBFTable.
384    
385            * test/test_table.py: Import DBFTable as Table because that alias
386            doesn't exist anymore.
387    
388            * Thuban/UI/classgen.py: Remove some unused imports
389    
390    2003-05-14  Jonathan Coles   <[email protected]>
391    
392            * Thuban/Model/classgen.py (ClassGenerator.GenSingletonsFromList):
393            Fix docstring.
394            (ClassGenerator.GenUniformDistribution): Fix spelling of method name.
395            (ClassGenerator.GenQuantiles): Use the left/right brackets and min/max
396            values of the supplied range to determine the beginning and end
397            bounds of the generated classes.
398    
399            * Thuban/Model/range.py (Range.number_re): Now accepts floats that
400            do not have a leading 0 (.5 is now accepted as well as 0.5).
401    
402            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Fix name of method
403            call to ClassGenerator.GenUniformDistribution.
404    
405            * Thuban/UI/projdialog.py (ProjFrame.__do_layout): Fix Windows
406            layout bug with the 'Projection' label.
407    
408            * test/support.py (FloatTestCase): New. Needed for the Range tests.
409    
410            * test/test_range.py: New. Imported from SciParam.
411    
412    2003-05-12  Jonathan Coles   <[email protected]>
413    
414            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): Replace call
415            to table.UniqueValues() with calls that retrieve all the values
416            from the table. This will need to be replaced by a method on table
417            which can simply return the list (perhaps more efficiently).
418    
419    2003-05-12  Jonathan Coles   <[email protected]>
420    
421            The return value of ClassGenerator.CalculateQuantiles has changed.
422            Refer to the documentation for details.
423    
424            * test/test_classgen.py: Modified Quantile tests to use the
425            new return values.
426    
427            * Thuban/Model/classgen.py
428            (ClassGenerator.GenQuantiles): Add comments describing the parameters,
429            use new return values from CalculateQuantiles to produce the correct
430            range bounds in the Classification.
431            (ClassGenerator.CalculateQuantiles): Add more comments describing
432            the return values and parameters. Make minor adjustments to improve
433            the legibility of the code. Fix problem with adjusted not being set
434            in most cases.
435    
436    2003-05-12  Frank Koormann <[email protected]>
437            
438            * Thuban/Model/save.py (XMLWriter.encode()): Explicite call to unicode
439            and latin1. Fixes #1851 finally.
440    
441    2003-05-09  Jonathan Coles   <[email protected]>
442    
443            * test/test_classgen.py: New. Tests the Quantile algorithm.
444    
445            * Thuban/Model/classgen.py (ClassGenerator.CalculateQuantiles):
446            Clean up debugging statement, add comments, fix a small bug in the
447            returned adjusted percentiles.
448            
449    2003-05-09  Jonathan Coles   <[email protected]>
450    
451            Introduces Range class from SciParam into the ClassGroupRange class,
452            and such ranges can now be saved and loaded from disk.
453    
454            Quantiles are now available in the Classification Generator.
455    
456            Initial support for building Queries on a table. Doesn't do anything
457            but run some tests.
458    
459            * Thuban/Model/classification.py: Explicit imports.
460            (ClassGroupRange): Use the Range class to store the underlying
461            range information. The interface remains the same, except for
462            GetRange(), and you can also supply a Range object as the min
463            parameter to SetRange or __init__.
464    
465            * Thuban/Model/load.py (XMLReader.encode): New. Encodes the given
466            string appropriately for use in Thuban. Fixes RTbug #1851.
467            (SessionLoader.end_projection): Handle the context of the
468            projection tag a bit better by looking at what objects are not
469            None. There was an assumption that a projection tag for a map
470            could occur before any layers.
471            (SessionLoader.start_clrange): Provide backward compatibility for
472            reading min/max values as well as the new range parameter.
473    
474            * Thuban/Model/map.py: Explicit imports.
475    
476            * Thuban/Model/resource.py: Import _.
477            (ProjFileSaver.write): write header using projfile.dtd.
478    
479            * Thuban/Model/save.py: Explicit imports.
480            (XMLWriter.encode): New. Encode the given string from a format
481            used by Thuban into UTF-8. Fixes RTbug #1851.
482    
483            * Thuban/UI/classgen.py: Explicit imports.
484            (ClassGenDialog.__init__): Clean up the code and add support
485            for Quantiles.
486            (ClassGenDialog.OnOK): Add support for Quantiles.
487            (GenQuantilesPanel): New. Input panel for Quantiles.
488            (ClassGenerator, CustomRamp, MonochromaticRamp, GreyRamp, RedRamp,
489            GreenRamp, BlueRamp, HotToColdRamp): Move to Thuban/Model/classgen.py
490    
491            * Thuban/Model/classgen.py: New. Contains all the classes named above.
492    
493            * Thuban/UI/classifier.py: Explicit imports.
494            (ClassTable.GetValueAsCust, ClassTable.__ParseInput,
495            ClassTable.SetValueAsCustom): Reworked to use new Range class.
496    
497            * Thuban/UI/legend.py: Explicit imports.
498    
499            * Thuban/UI/mainwindow.py: Add support for the Join Dialog. Added
500            a Table menu and associated method calls.
501            (MainWindow.choose_color): Removed. No longer needed.
502    
503            * Thuban/UI/projdialog.py (ProjFrame.__VerifyButtons): Save button
504            should be disabled if no projection is selected in the available
505            list.
506    
507            * Thuban/UI/renderer.py: Explicit imports.
508    
509            * Thuban/UI/tableview.py (TableGrid.OnRangeSelect): Fix some issues
510            with correctly selecting the rows and issuing the right events.
511            Be sure to call Skip() to allow the grid to do some of its own
512            handling which allows the rows to actually be selected.
513            (LayerTableGrid.select_shapes): Rename from select_shape. Supports
514            selecting multiple shapes.
515            (LayerTableFrame): Support for building Queries.
516            (LayerTableFrame.select_shapes): Allow multiple shapes to be selected.
517    
518            * Thuban/UI/tree.py: Explicit imports.
519    
520            * Thuban/UI/view.py (MapCanvas): Delegate "SelectedShapes" so the
521            table view can call it.
522    
523            * test/test_classification.py: Explicit imports.
524            (TestClassification.test_ClassGroupRange): Fix test for new
525            Range class.
526    
527            * Doc/thuban.dtd: Add range parameter for clrange.
528    
529            * Thuban/Model/range.py: Taken from SciParam. Used as the underlying
530            object in ClassGroupRange, and also uesd for inputting ranges in
531            the classifer table and elsewhere.
532    
533            * Thuban/UI/join.py: New. Initial Join dialog. No real functionality
534            yet.
535    
536    2003-05-09  Frank Koormann <[email protected]>
537    
538            * Thuban/UI/scalebar.py (DrawScaleBar): Draw only if interval > 0.0.
539    
540    2003-05-08  Frank Koormann <[email protected]>
541    
542            Coding style updates
543    
544            * test/test_scalebar.py: Replaced tab indentation by spaces.
545    
546            * Thuban/UI/scalebar.py: Explicit imports.
547    
548    2003-05-08  Frank Koormann <[email protected]>
549    
550            * Thuban/UI/scalebar.py
551            (ScaleBar.DrawScalebar): Format string bug fixed.
552    
553    2003-05-08  Frank Koormann <[email protected]>
554    
555            Reorganization of scalebar component (no wx in Thuban/Model)
556    
557            * Thuban/Model/scalebar.py: Rendering moved to Thuban/UI/scalebar.py
558            (deriveInterval):
559            Calculate scalebar interval and unit which fits in width for scale.
560            (roundInterval): Round float.
561    
562            * Thuban/UI/scalebar.py (ScaleBar): Scalebar rendering
563    
564            * test/test_scalebar.py: Test for Thuban/Model/scalebar.py methods.
565    
566            * Thuban/UI/legend.py: Import Thuban.UI.scalebar
567    
568    2003-05-08  Frank Koormann <[email protected]>
569    
570            * Thuban/UI/legend.py (ScalebarBitmap.SetCanvas):
571            Initialize ScaleBar with canvas.map
572    
573            * Thuban/Model/scalebar.py (ScaleBar.roundInterval()): New,
574            round intervals to display smarter lengths
575            (ScaleBar.DrawScalebar): Draw Scalebar only if the map contains a
576            layer. If the maps has no projection applied grey the scalebar.
577    
578    2003-05-07  Frank Koormann <[email protected]>
579            
580            Basic Scalebar features added.
581    
582            * Thuban/Model/scalebar.py (ScaleBar): New, scalebar rendering.
583    
584            * Thuban/UI/legend.py (LegendPanel): Added scalebar bitmap
585            (ScaleBarBitmap): New, links the scalebar bitmap with view messages
586            and the renderer.
587    
588            * Thuban/UI/view.py (MapCanvas.set_view_transform): Issue SCALE_CHANGED.
589    
590            * Thuban/UI/messages.py: SCALE_CHANGED added.
591    
592    2003-05-07  Bernhard Herzog  <[email protected]>
593    
594            * Thuban/Model/session.py (Session.__init__): New instance
595            variable shapestores to hold a list of all open shapestore objects
596            (Session.ShapeStores): New. Accessor method for the shapestores
597            list.
598            (Session._add_shapestore, Session._clean_weak_store_refs): New.
599            Internal methods to maintain the shapestores list.
600            (Session.Tables): New. Return all tables open in the session.
601            (Session.OpenShapefile): Insert the new ShapeStore into the
602            shapestores list.
603    
604            * test/test_session.py (TestSessionSimple.test_initial_state): Add
605            tests for ShapeStores and Tables
606            (TestSessionWithContent.test_shape_stores)
607            (TestSessionWithContent.test_tables): New. Test cases for
608            ShapeStores and Tables
609    
610    2003-05-07  Bernhard Herzog  <[email protected]>
611    
612            * Thuban/Model/transientdb.py (TransientTableBase.ReadRowAsDict):
613            Add comments about the optimizations used.
614            (AutoTransientTable.ReadValue, TransientTableBase.ReadValue): New.
615            Implement the ReadValue table interface method.
616    
617            * test/test_transientdb.py
618            (TestTransientTable.run_iceland_political_tests)
619            (TestTransientTable.test_transient_joined_table): Add tests for
620            ReadValue
621    
622    2003-05-07  Frank Koormann <[email protected]>
623    
624            * Resources/Bitmaps/fulllayerextent.xpm,
625            Resources/Bitmaps/fullselextent.xpm: Replaced the place holders with
626            new icons.
627    
628    2003-05-06  Bernhard Herzog  <[email protected]>
629    
630            * Thuban/Model/transientdb.py (AutoTransientTable.SimpleQuery):
631            New. Simply delegate to the transient table's version.
632    
633            * test/test_transientdb.py
634            (TestTransientTable.test_auto_transient_table_query): New. Test
635            case for AutoTransientTable's SimpleQuery
636    
637    2003-05-06  Bernhard Herzog  <[email protected]>
638    
639            * Thuban/Model/transientdb.py (TransientTableBase.SimpleQuery):
640            Implement a simple query method for the query dialog
641            (TransientTableBase.create): Add an INTEGER PRIMARY KEY that holds
642            the row index or shapeid.
643            (TransientTable.create): Insert the right value of the row index
644            (TransientJoinedTable.create): Copy the row index of the left
645            table to the joined result table
646    
647            * test/test_transientdb.py
648            (TestTransientTable.test_transient_table_read_twice): Fix
649            doc-string
650            (TestTransientTable.test_transient_table_query): New. Test for the
651            SimpleQuery method
652    
653    2003-05-06  Bernhard Herzog  <[email protected]>
654    
655            Convert all table users to use the new table interface. This only
656            covers Thuban itself, not GREAT-ER or other applications built on
657            Thuban yet, so the compatibility interface stays in place for the
658            time being but it now issues DeprecationWarnings.
659    
660            Finally, the new Table interface has a new method, HasColumn.
661    
662            * Thuban/Model/table.py (OldTableInterfaceMixin): All methods
663            issue deprecation warnings when they're. The warnings refer to the
664            caller of the method.
665            (OldTableInterfaceMixin.__deprecation_warning): New. Helper method
666            for the deprecation warnings
667    
668            * test/test_table.py: Ignore the deprecation warnings for the old
669            table in the tests in this module. The purpose of the tests is to
670            test the old interface, after all.
671    
672            * test/test_transientdb.py
673            (TestTransientTable.run_iceland_political_tests): Use the
674            constants for the types. Add a test for HasColumn
675            (TestTransientTable.test_transient_joined_table): Adapt to new
676            table interface. Add a test for HasColumn
677            (TestTransientTable.test_transient_table_read_twice): Adapt to new
678            table interface
679    
680            * Thuban/UI/tableview.py (DataTable.SetTable, DataTable.GetValue):
681            Adapt to new table interface
682    
683            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Adapt to
684            new table interface
685    
686            * Thuban/UI/controls.py (RecordListCtrl.fill_list)
687            (RecordTable.SetTable): Adapt to new table interface
688    
689            * Thuban/UI/classifier.py (Classifier.__init__)
690            (Classifier.__init__): Adapt to new table interface
691    
692            * Thuban/UI/classgen.py (ClassGenDialog.__init__)
693            (GenUniformPanel._OnRetrieve, GenUniquePanel._OnRetrieve): Adapt
694            to new table interface
695    
696            * Thuban/Model/transientdb.py (TransientTableBase.HasColumn)
697            (AutoTransientTable.HasColumn): Implement the new table interface
698            method
699            (AutoTransientTable.ReadRowAsDict, AutoTransientTable.ValueRange)
700            (AutoTransientTable.UniqueValues): Adapt to new table interface
701    
702            * Thuban/Model/layer.py (Layer.SetShapeStore, Layer.GetFieldType):
703            Adapt to new table interface
704    
705            * test/test_layer.py (TestLayer.open_shapefile): Helper method to
706            simplify opening shapefiles a bit easier.
707            (TestLayer.test_arc_layer, TestLayer.test_polygon_layer)
708            (TestLayer.test_point_layer): Use the new helper method
709            (TestLayer.test_get_field_type): New. Test for the GetFieldType
710            method
711    
712            * test/test_dbf_table.py (TestDBFTable.test_has_column): Test for
713            the new table method
714    
715            * test/test_memory_table.py (TestMemoryTable.test_has_column):
716            Test for the new table method HasColumn
717    
718  2003-05-06  Jonathan Coles   <[email protected]>  2003-05-06  Jonathan Coles   <[email protected]>
719    
720          Addresses the "Selection Extent" wish of RTbug #1787.          Addresses the "Selection Extent" wish of RTbug #1787.

Legend:
Removed from v.833  
changed lines
  Added in v.993

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26