/[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 1349 by jonathan, Tue Jul 1 16:12:38 2003 UTC revision 1606 by bh, Tue Aug 19 11:16:40 2003 UTC
# Line 1  Line 1 
1    2003-08-19  Bernhard Herzog  <[email protected]>
2    
3            Add very basic postgis database support and the corresponding test
4            cases. The test cases require a PostgreSQL + postgis installation
5            but no existing database. The database will be created
6            automatically by the test cases
7    
8            * test/README: Add note about skipped tests and the requirements
9            of the postgis tests.
10    
11            * Thuban/Model/postgisdb.py: New. Basic postgis database support.
12    
13            * test/test_postgis_db.py: New. Test cases for the postgis
14            support.
15    
16            * Thuban/Model/wellknowntext.py: New. Parser for well-known-text
17            format
18    
19            * test/test_wellknowntext.py: New. Test cases for the
20            wellknowntext parser
21    
22            * test/postgissupport.py: New. Support module for tests involving
23            a postgis database.
24    
25            * test/support.py (execute_as_testsuite): Shut down the postmaster
26            if it's still running after the tests
27    
28            * Thuban/Model/data.py (RAW_WKT): New constant for raw data in
29            well known text format
30    
31    2003-08-19  Jan-Oliver Wagner <[email protected]>
32    
33            * Examples/simple_extensions/hello_world.py: New. Raises a Hello World
34            message dialog.
35    
36    2003-08-18  Bernhard Herzog  <[email protected]>
37    
38            * test/support.py (ThubanTestResult.printErrors): Indent the
39            reason for the skips in the output to make it a bit more readable.
40            (execute_as_testsuite): New helper function to run a test suite
41            and print some more information.
42            (run_tests): Use execute_as_testsuite to run the tests
43    
44            * test/runtests.py (main): Use execute_as_testsuite to run the
45            tests
46    
47    2003-08-18  Bernhard Herzog  <[email protected]>
48    
49            Fix some bugs in Thuban and the test suite that were uncovered by
50            changes introduced in Python 2.3:
51    
52            * Thuban/Model/table.py (DBFTable.__init__): Make sure the
53            filename is an absolute name
54    
55            * Thuban/Model/layer.py (RasterLayer.__init__): Make sure the
56            filename is an absolute name
57    
58            * test/test_save.py (SaveSessionTest.testRasterLayer): Use a
59            unique filename to save to and use the correct relative filename
60            in the expected output.
61            (SaveSessionTest.test_dbf_table): Use the correct relative
62            filename in the expected output.
63    
64            * test/test_layer.py (TestLayer.test_raster_layer): Update the
65            test to check whether the filename is absolute.
66    
67    2003-08-18  Jan-Oliver Wagner <[email protected]>
68    
69            * Thuban/UI/about.py (About.__init__): Added Silke Reimer.
70    
71    2003-08-15  Bernhard Herzog  <[email protected]>
72    
73            Change the way shapes are returned by a shape store. The
74            ShapesInRegion method returns an iterator over actual shape
75            objects instead of a list of shape ids.
76    
77            * Thuban/Model/data.py (ShapefileShape.ShapeID): New. Return shape
78            id.
79            (ShapefileStore.ShapesInRegion): Return an iterator over the
80            shapes which yields shape objects instead of returning a list of
81            shape ids
82            (ShapefileStore.AllShapes): New. Return an iterator over all
83            shapes in the shape store
84            (DerivedShapeStore.AllShapes): New. Like in ShapefileStore
85    
86            * Thuban/Model/layer.py (Layer.ShapesInRegion): Update
87            doc-string.
88    
89            * Thuban/UI/baserenderer.py
90            (BaseRenderer.layer_ids, BaseRenderer.layer_shapes): Rename to
91            layer_shapes and make it return an iterator containg shapes
92            instead of a list of ids.
93            (BaseRenderer.draw_shape_layer): Update doc-string; Adapt to
94            layer_shapes() change
95    
96            * Thuban/UI/renderer.py (ScreenRenderer.layer_ids)
97            (ScreenRenderer.layer_shapes): Rename as in BaseRenderer
98    
99            * Thuban/UI/viewport.py (ViewPort._find_shape_in_layer): Adapt to
100            changes in the ShapesInRegion return value.
101            (ViewPort._get_hit_tester): Remove commented out code
102    
103            * test/mockgeo.py (SimpleShapeStore.ShapesInRegion): Adapt to the
104            new return value.
105            (SimpleShapeStore.AllShapes): New. Implement this method too.
106    
107            * test/test_layer.py (TestLayer.test_arc_layer)
108            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
109            (TestLayer.test_point_layer_with_projection)
110            (TestLayer.test_derived_store): Adapt to changes in the
111            ShapesInRegion return value.
112    
113            * test/test_shapefilestore.py
114            (TestShapefileStoreArc.test_shapes_in_region)
115            (TestShapefileStorePolygon.test_shapes_in_region)
116            (TestShapefileStorePoint.test_shapes_in_region): Adapt to changes
117            in the ShapesInRegion return value.
118            (TestShapefileStorePoint.test_all_shapes)
119            (TestShapefileStoreArc.test_shape_shapeid): New tests for the new
120            methods
121    
122            * test/test_derivedshapestore.py
123            (TestDerivedShapeStore.test_shapes_in_region): Adapt to changes in
124            the ShapesInRegion return value.
125            (TestDerivedShapeStore.test_all_shapes)
126            (TestDerivedShapeStore.test_shape_shapeid): New tests for the new
127            methods
128    
129    2003-08-15  Bernhard Herzog  <[email protected]>
130    
131            Make the renderers deal correctly with raw vs. python level
132            representation of shape geometries
133    
134            * Thuban/UI/baserenderer.py (BaseRenderer.low_level_renderer):
135            Return a flag useraw in addition to the callable and the parameter
136            to indicate whether the callable can deal with the raw shape data
137            or uses the higher level python lists of coordinates. The callable
138            now should accept either the raw data or the return value of the
139            shape's Points() method.
140            (BaseRenderer.draw_shape_layer): Adapt to the low_level_renderer
141            change
142            (BaseRenderer.projected_points): Instead of the shape id use the
143            points list as parameter.
144            (BaseRenderer.draw_polygon_shape, BaseRenderer.draw_arc_shape)
145            (BaseRenderer.draw_point_shape): Adapt to projected_points()
146            change and accept the points list as parameter instead of the
147            shape id.
148    
149            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Return
150            the useraw flag as required by the BaseRenderer
151            (ScreenRenderer.draw_shape_layer): Adapt to low-level renderer
152            changes.
153    
154            * test/test_baserenderer.py
155            (TestBaseRenderer.test_point_with_classification): New test for
156            rendering a map with classifications.
157    
158    2003-08-15  Bernhard Herzog  <[email protected]>
159    
160            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
161            (ViewPort._find_shape_in_layer, ViewPort._find_shape_in_layer)
162            (ViewPort._get_hit_tester, ViewPort.projected_points)
163            (ViewPort._hit_point, ViewPort._hit_arc, ViewPort._hit_polygon)
164            (ViewPort._find_label_at): Split the find_shape_at method into
165            several new methods and use the functions in the hit-test module.
166    
167            * Thuban/UI/hittest.py: New module with Python-level hit-testing
168            functions
169    
170            * test/test_hittest.py: New. Test for the new hittest module
171    
172    2003-08-15  Bernhard Herzog  <[email protected]>
173    
174            * Thuban/Model/layer.py (Layer.ShapesInRegion): Apply the layer
175            projection to all corners of the bounding box to get a better
176            approximation of the projected bounding box
177    
178            * test/test_layer.py (TestLayer.test_point_layer_with_projection):
179            New. Test coordinate handling of a layer with a projection.
180            Catches the bug fixed in Layer.ShapesInRegion
181    
182    2003-08-15  Bernhard Herzog  <[email protected]>
183    
184            Move some of the mock objects in test_baserenderer into their own
185            module so they can easily be used from other tests
186    
187            * test/mockgeo.py: New test helper module with some mock objects
188            for geometry related things like shapes, shapestores and
189            projections.
190    
191            * test/test_mockgeo.py: New. Tests for the new helper module
192    
193            * test/test_baserenderer.py: Some of the mock-objects are in
194            mockgeo now.
195    
196    2003-08-12  Jan-Oliver Wagner <[email protected]>
197    
198            * Thuban/UI/about.py (About.__init__): Added Bj�rn Broscheit.
199    
200    2003-08-12  Bernhard Herzog  <[email protected]>
201    
202            * po/de.po: New. German translations by Bjoern Broscheit
203    
204    2003-08-12  Bernhard Herzog  <[email protected]>
205    
206            * Thuban/UI/projdialog.py (UnknownProjPanel._DoLayout): Translated
207            strings have to be one string literal.
208    
209    2003-08-11  Bernhard Herzog  <[email protected]>
210    
211            * test/support.py (FloatComparisonMixin.assertPointListEquals):
212            New. This method was used in various derived classes, but it's
213            better to have it here.
214    
215            * test/test_shapefilestore.py
216            (ShapefileStoreTests.assertPointListEquals): Removed. It's now in
217            FloatComparisonMixin
218    
219            * test/test_layer.py (TestLayer.assertPointListEquals): Removed.
220            It's now in FloatComparisonMixin
221    
222            * test/test_derivedshapestore.py
223            (TestDerivedShapeStore.assertPointListEquals): Removed. It's now
224            in FloatComparisonMixin
225    
226    2003-08-11  Bernhard Herzog  <[email protected]>
227    
228            * Thuban/UI/join.py (JoinDialog.OnJoin): Add missing space to
229            error message
230    
231    2003-08-08  Jan-Oliver Wagner <[email protected]>
232    
233            * Doc/manual/thuban-manual.xml: Now use authorgroup. Added revhistory
234            with version number.
235            Changed title to reflect version number of Thuban.
236    
237    2003-08-08  Jan-Oliver Wagner <[email protected]>
238    
239            * Thuban/UI/about.py (About.__init__): Reworked the hall of fame. Now
240            the list corresponds to the "About" web page.
241    
242    2003-08-08  Bernhard Herzog  <[email protected]>
243    
244            * Thuban/UI/projdialog.py (UTMProposeZoneDialog.dialogLayout):
245            Make sure translated strings are recognized as one string literal.
246    
247            * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog.dialogLayout):
248            Make sure translated strings are recognized as one string literal.
249    
250            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Make sure
251            translated strings are recognized as one string literal.
252    
253            * Thuban/UI/application.py (ThubanApplication.OpenSession): Make
254            sure translated strings are recognized as one string literal.
255    
256    2003-08-07  Bernhard Herzog  <[email protected]>
257    
258            * Thuban/Model/data.py (DerivedShapeStore.RawShapeFormat): New.
259            Simply delegates to the original shapestore.
260    
261            * test/test_derivedshapestore.py
262            (TestDerivedShapeStore.test_raw_format): New. Test case for
263            DerivedShapeStore.RawShapeFormat
264    
265    2003-08-07  Bernhard Herzog  <[email protected]>
266    
267            Add raw data interface to shape objects.
268    
269            * Thuban/Model/data.py (ShapefileShape, Shape): Rname the shape
270            class to ShapefileShape which now holds shapefile specific
271            information.
272            (ShapefileShape.compute_bbox): Simplified to not cache any
273            information. The way this method is used that shouldn't matter
274            performance wise.
275            (ShapefileShape.RawData): New. Return the shapeid which is the raw
276            data format for shapes from shapefiles.
277            (ShapefileStore.RawShapeFormat): New. Return the raw datatype used
278            in the shape objects returned by a shapestore. For a
279            ShapefileStore this is always RAW_SHAPEFILE.
280            (RAW_PYTHON, RAW_SHAPEFILE): Constants for the RawShapeFormat
281            method.
282    
283            * test/test_shapefilestore.py
284            (TestShapefileStore.test_raw_format): New test to test the raw
285            format feature of shapes.
286    
287            * Thuban/Model/layer.py: Remove the unused import of Shape from
288            data. It was only there for interface compatibility but it's not
289            used inside of Thuban and the generic Shape class has gone away.
290    
291            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Check
292            the raw data format and only use an optimized version of its a
293            shapefile.
294    
295    2003-08-07  Bernhard Herzog  <[email protected]>
296    
297            * test/test_baserenderer.py (SimpleShape): Shape class for the
298            tests.
299            (SimpleShapeStore.Shape): Use SimpleShape instead of
300            Thuban.Model.data.Shape to make the tests independed of the coming
301            changes.
302    
303    2003-08-07  Bernhard Herzog  <[email protected]>
304    
305            * test/support.py (SkipTest, ThubanTestResult, ThubanTestRunner)
306            (ThubanTestProgram): New classes that extend the respective
307            classes from unittest. These new version support skipping tests
308            under certain expected conditions. In the Thuban test suite we
309            uses this for tests that require the optional gdal support.
310            (run_tests): Use ThubanTestProgram instead of the unittest.main()
311    
312            * test/runtests.py (main): Use the new ThubanTestRunner instead of
313            the normal one from unittest
314    
315            * test/test_layer.py (TestLayer.test_raster_layer): If this test
316            is not run because gdal support isn't available report this to the
317            runner.
318    
319            * test/test_baserenderer.py
320            (TestBaseRenderer.test_raster_no_projection): Do not run this test
321            if gdal support isn't available and report this to the runner.
322    
323    2003-08-06  Bernhard Herzog  <[email protected]>
324    
325            Rearrange the renderers a bit, partly in preparation for changes
326            required for the postgis merge, partly to make it more testable.
327            Also make the representation of coordinates in Shapes more
328            consistent.
329    
330            * Thuban/UI/renderer.py (MapRenderer): Most of the code/methods in
331            this class is now in BaseRenderer. This class is now practically
332            only a specialization of BaseRenderer for rendering to an actual
333            wx DC.
334            (ScreenRenderer.draw_shape_layer): Use self.low_level_renderer()
335            to get the shapetype specific rendering functions.
336    
337            * Thuban/UI/baserenderer.py: New file with the basic rendering
338            logic. The code in this file is completely independend of wx.
339            (BaseRenderer): Class with the basic rendering logic
340    
341            * test/test_baserenderer.py: New. Test cases for BaseRenderer
342    
343            * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
344            error_on_redraw to guard agains endless loops and stack overflows
345            when there's a bug in the rendering code that raises exceptions.
346            (MapCanvas.OnIdle, MapCanvas._do_redraw): Split the actual
347            rendering into a separate method _do_redraw so that error handling
348            is a bit easier. When an exception occurs, set error_on_redraw to
349            true. When it's true on entry to OnIdle do nothing and return
350            immediately.
351    
352            * Thuban/Model/data.py (ShapefileStore.Shape): For consistency, a
353            Shape object will always have the coordinates as a list of list of
354            coordinate pairs (tuples).
355            (Shape.compute_bbox): Adapt to new representation.
356    
357            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
358            (ViewPort.LabelShapeAt): Adapt to new coordinate representation in
359            Shape objects.
360    
361            * test/test_shapefilestore.py
362            (ShapefileStoreTests.assertFloatTuplesEqual)
363            (ShapefileStoreTests.assertPointListEquals): Rename to
364            assertPointListEquals and change purpose to checking equality of
365            the lists returned by Shape.Points().
366            (TestShapefileStoreArc.test_shape)
367            (TestShapefileStorePolygon.test_shape)
368            (TestShapefileStorePoint.test_shape): Use the new
369            assertPointListEquals instead of assertFloatTuplesEqual
370    
371            * test/test_layer.py (TestLayer.assertFloatTuplesEqual)
372            (TestLayer.assertPointListEquals): Rename to assertPointListEquals
373            and change purpose to checking equality of the lists returned by
374            Shape.Points().
375            (TestLayer.test_arc_layer, TestLayer.test_arc_layer)
376            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
377            (TestLayer.test_derived_store): Use the new assertPointListEquals
378            instead of assertFloatTuplesEqual
379    
380            * test/test_derivedshapestore.py
381            (TestDerivedShapeStore.assertFloatTuplesEqual)
382            (TestDerivedShapeStore.assertPointListEquals): Rename to
383            assertPointListEquals and change purpose to checking equality of
384            the lists returned by Shape.Points().
385            (TestDerivedShapeStore.test_shape): Use the new
386            assertPointListEquals instead of assertFloatTuplesEqual
387    
388    2003-08-06  Jan-Oliver Wagner <[email protected]>
389    
390            * Thuban/UI/projdialog.py (UTMPanel._OnPropose): Added test for
391            a bounding box. A dialog is raised in case, no bounding box
392            is found. This fixes bug #2043:
393            https://intevation.de/rt/webrt?serial_num=2043
394    
395    2003-08-05  Bernhard Herzog  <[email protected]>
396    
397            * Thuban/Model/color.py (Color.__repr__): Make the repr of a color
398            object look like a Color instantiation. Formerly it looked like a
399            tuple.
400    
401            * test/test_color.py (TestColor.test_repr)
402            (TestColor.test_equality, TestColor.test_inequality): New. test
403            some more apects of the Color class
404            (TestTransparent.test_repr, TestTransparent.test_hex)
405            (TestTransparent.test_equality): New. Test cases for the
406            Transparent object.
407    
408    2003-08-04  Jan-Oliver Wagner <[email protected]>
409    
410            * Doc/manual/thuban-manual.xml: a number of small improvements.
411            The resulting file is the version submitted for GREAT-ER II.
412    
413    2003-08-01  Bernhard Herzog  <[email protected]>
414    
415            * Thuban/UI/resource.py, Thuban/UI/projdialog.py,
416            Thuban/UI/join.py, Thuban/UI/classgen.py, Thuban/UI/about.py,
417            Thuban/Model/resource.py: Insert cvs keywords and doc-strings.
418    
419            * Thuban/UI/common.py: Insert cvs keywords and doc-strings.
420            (Color2wxColour, wxColour2Color, ThubanBeginBusyCursor)
421            (ThubanEndBusyCursor): Add doc-strings
422    
423    2003-08-01  Bernhard Herzog  <[email protected]>
424    
425            First step towards PostGIS integration. More abstraction by movin
426            more code from the layer to the shapestore. More methods of the
427            layer are now simply delegated to the equivalent method of the
428            shapestore. The SHAPETYPE_* constants are now in data not in
429            layer.
430    
431            * Thuban/Model/data.py (SHAPETYPE_POLYGON, SHAPETYPE_ARC)
432            (SHAPETYPE_POINT, Shape): Move these constants and classes from
433            layer.py to data.py
434            (ShapefileStore.__init__): More Initialization for the new methods
435            and functionality.
436            (ShapefileStore.ShapeType, ShapefileStore.NumShapes)
437            (ShapefileStore.BoundingBox, ShapefileStore.ShapesInRegion)
438            (ShapefileStore.Shape): New methods that were formerly implemented
439            in the layer.
440            (DerivedShapeStore.Shape, DerivedShapeStore.ShapesInRegion)
441            (DerivedShapeStore.ShapeType, DerivedShapeStore.NumShapes)
442            (DerivedShapeStore.BoundingBox): New. DerivedShapeStore
443            equivalents of the new shape methods. These versions are simply
444            delegated to the original shapstore.
445    
446            * Thuban/Model/layer.py (SHAPETYPE_POLYGON, SHAPETYPE_ARC)
447            (SHAPETYPE_POINT, Shape): Removed. They're now in data.py
448            (Layer.SetShapeStore): Removed the initializatin of instance
449            variables that were needed for the stuff that's now in
450            ShapefileStore
451            (Layer.BoundingBox, Layer.NumShapes, Layer.ShapeType)
452            (Layer.Shape, Layer.ShapesInRegion): Simply delegate to the
453            shapestore.
454    
455            * Thuban/UI/classifier.py, Thuban/UI/renderer.py,
456            Thuban/UI/viewport.py: Import the SHAPETYPE_* constants from data
457            instead of layer.
458    
459            * test/test_shapefilestore.py: New. Tests for ShapefileStore.
460    
461            * test/test_derivedshapestore.py: New. Tests for DerivedShapeStore.
462    
463            * test/test_layer.py: Import the SHAPETYPE_* constants from data
464            instead of layer.
465            (TestLayer.test_derived_store): Remove the test for the exception
466            when instantiating the DerivedShapeStore with an incompatible
467            table which is now in test_derivedshapestore.py. Add some more
468            tests of the layer methods to determine whether they work for a
469            DerivedShapeStore as well.
470    
471    2003-07-31  Jonathan Coles   <[email protected]>
472    
473            * Doc/manual/thuban-manual.xml: Fix the list of required packages
474            by just listing the name and where they can be found.
475    
476    2003-07-31  Frank Koormann   <[email protected]>
477    
478            * Doc/manual/thuban-manual.xml:
479            Changed the screenshot elements to figure.
480            Changed some variablelist elements to itemizedlist.
481            Added section on GDAL formats.
482    
483    2003-07-31  Jonathan Coles   <[email protected]>
484    
485            * Doc/manual/thuban-manual.xml: Added a few sentences about
486            the Fix Border Color option when generating classes.
487    
488    2003-07-30  Jonathan Coles   <[email protected]>
489    
490            * Thuban/Model/classgen.py: Add docstrings. Rename specific
491            Ramp instances to use lower_case_style.
492    
493            * Thuban/UI/classgen.py: Use renamed Ramp instances.
494            
495            * Thuban/UI/classifier.py: Add docstrings.
496    
497            * Thuban/UI/dock.py: Add docstrings.
498    
499            * test/test_classgen.py: Use renamed Ramp instances.
500    
501    2003-07-30  Bernhard Herzog  <[email protected]>
502    
503            * Thuban/Lib/connector.py (QueueingPublisher): Removed. This class
504            was never used in Thuban.
505    
506    2003-07-30  Bernhard Herzog  <[email protected]>
507    
508            * Thuban/UI/join.py (JoinDialog.__init__): Use the table's Title()
509            method directly instead of going through the transient_table
510            method. This faster because transient_table may force the copy of
511            a DBF file into the transient database and setting a table's title
512            doesnm't affect the title of the associated transient table, so
513            this fixes RT #2042
514    
515            * Thuban/UI/main.py (__version__): Don't import the already
516            removed show_exception_dialog.
517    
518    2003-07-29  Jonathan Coles   <[email protected]>
519    
520            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
521            Put back this method and remove the equivalent function since we
522            are setting the exception hook from within this class (OnInit).
523    
524    2003-07-29  Jonathan Coles   <[email protected]>
525    
526            * Doc/manual/images/5_2_custom_ramp.png,
527            Doc/manual/images/5_2_quantiles.png,
528            Doc/manual/images/5_2_uniform_dist.png,
529            Doc/manual/images/5_2_unique_values.png,
530            Doc/manual/images/8_int_error.png: New screen shots.
531    
532            * Doc/manual/thuban-manual.xml: Fixed typos and wording, clarified
533            some points, and added more screen shots.
534    
535    2003-07-29  Bernhard Herzog  <[email protected]>
536    
537            * Thuban/Model/data.py: Remove the now unused import of warnings
538    
539    2003-07-29  Bernhard Herzog  <[email protected]>
540    
541            * Thuban/Model/data.py (SimpleStore): Removed. This class has been
542            deprecated since before the 0.8 release and isn't used in Thuban
543            itself anymore.
544    
545            * Thuban/Model/transientdb.py: Remove some unnecessary imports
546    
547    2003-07-29  Jonathan Coles   <[email protected]>
548    
549            * Thuban/UI/application.py (ThubanApplication.OnInit): set the
550            python exception hook here so that we are sure to catch any
551            Thuban exception that happen during initialization.
552    
553            * Thuban/UI/main.py (main): Don't set the exception hook here,
554            it will get set in ThubanApplication.OnInit.
555    
556    2003-07-29  Jonathan Coles   <[email protected]>
557                                                                                
558            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
559            Removed and called it show_exception_dialog() so that the exception
560            handler can be set before the class is created.
561                                                                                
562            * Thuban/UI/main.py (main): Install the exception handler before
563            a ThubanApplication is created.
564                                                                                    
565    2003-07-29  Bernhard Herzog  <[email protected]>
566    
567            * po/it.po: New. Italian translation by Maurizio Napolitano
568    
569            * po/ru.po: New. Russian translation by Alex Shevlakov
570    
571    2003-07-29  Frank Koormann   <[email protected]>
572    
573            * Doc/manual/thuban-manual.xml: Extended section on supported
574            projections.
575            
576    2003-07-29  Frank Koormann   <[email protected]>
577    
578            * Doc/manual/thuban-manual.xml: gaspell-checked.
579    
580    2003-07-29  Jonathan Coles   <[email protected]>
581    
582            * Doc/manual/images/3_5_legend.png: Added border to improve look
583            on white background.
584    
585    2003-07-29  Jonathan Coles   <[email protected]>
586    
587            * Doc/manual/thuban-manual.xml: Fixed grammar and typos. Added
588            descriptions for the legend toolbar.
589    
590            * Doc/manual/images/4_2_raster_layer_properties.png: Removed
591            cursor from dialog box.
592    
593    2003-07-28  Jonathan Coles   <[email protected]>
594    
595            * Doc/manual/thuban-manual.xml: More screenshots and more chapters.
596    
597            * Doc/manual/images/2_4_session_tree.png,
598            Doc/manual/images/3_5_legend.png, Doc/manual/images/3_rename_map.png,
599            Doc/manual/images/4_2_layer_properties.png,
600            Doc/manual/images/4_2_raster_layer_properties.png,
601            Doc/manual/images/5_3_genclass.png,
602            Doc/manual/images/5_classification.png,
603            Doc/manual/images/6_projection.png,
604            Doc/manual/images/7_1_table_view.png,
605            Doc/manual/images/7_2_5_join.png: New screenshots.
606    
607    2003-07-24  Jonathan Coles   <[email protected]>
608    
609            * Doc/manual/thuban-manual.xml: Chapter on Projection Management.
610    
611    2003-07-24  Jonathan Coles   <[email protected]>
612    
613            * Doc/manual/thuban-manual.xml: Added EPS images and wrote
614            chapter on Layer Management.
615    
616            * Doc/manual/Makefile: New. Makefile to generate all formats for the
617            manual and images.
618    
619    2003-07-24  Bernhard Herzog  <[email protected]>
620    
621            * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as
622            it annoys lintian which warns about these files not being
623            executable. The #1 isn't necessary here since if you absolutely
624            must execute them you can always say "python <filename>".
625    
626            * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove
627            superfluous code to set brush and pen for point shapes
628    
629            * Thuban/UI/viewport.py: Remove commented out code that wouldn't
630            belong in viewport anyway
631    
632    2003-07-24  Frank Koormann   <[email protected]>
633    
634            * Doc/manual/thuban-manual.xml: Added section on table management.
635    
636    2003-07-24  Bernhard Herzog  <[email protected]>
637    
638            * test/runtests.py (main): Recognize the long "verbose" option
639            correctly.
640    
641    2003-07-22  Jonathan Coles   <[email protected]>
642    
643            * Doc/manual/thuban-manual.xml: Continue to write first revision
644            of the manual.
645    
646            * Thuban/UI/renderer.py (MapRenderer.render_map): Wrap method
647            with Begin/EndDrawing() calls to ensure we aren't doing to
648            many updates to the dc during rendering.
649            (ScreenRenderer.draw_shape_layer): self.draw_point_shape takes
650            a pen and brush argument so they need to be passed to the function.
651    
652            * Thuban/UI/viewport.py (ViewPort.calc_min_max_scales): New.
653            Calculates the minimum and maximum scale values. Factored out
654            of set_view_transform so that it could be used to zoom all the
655            way into a single point.
656            (ViewPort.set_view_transform): Call calc_min_max_scales().
657            (ViewPort.FitSelectedToWindow): Zoom to the maximum scale
658            if only a single point is selected.
659    
660            * Doc/manual/images/1_2_legend_close.png,
661            Doc/manual/images/1_2_legend_dock.png,
662            Doc/manual/images/1_2_mainwindow.png,
663            Doc/manual/images/1_2_mainwindow.ps,
664            Doc/manual/images/1_2_mainwindow.sk,
665            Doc/manual/images/3_2_fullextent.png,
666            Doc/manual/images/3_2_fulllayerextent.png,
667            Doc/manual/images/3_2_fullshapeextent.png,
668            Doc/manual/images/3_2_pan.png,
669            Doc/manual/images/3_2_zoomin.png,
670            Doc/manual/images/3_2_zoomout.png,
671            Doc/manual/images/3_3_identify.png,
672            Doc/manual/images/3_3_label.png,
673            Doc/manual/images/3_5_invisible.png,
674            Doc/manual/images/3_5_movedown.png,
675            Doc/manual/images/3_5_moveup.png,
676            Doc/manual/images/3_5_props.png,
677            Doc/manual/images/3_5_tobottom.png,
678            Doc/manual/images/3_5_totop.png,
679            Doc/manual/images/3_5_visible.png: New. Images for the documentation.
680    
681    2003-07-18  Bernhard Herzog  <[email protected]>
682    
683            * Thuban/UI/messages.py (MAP_REPLACED): New message.
684    
685            * Thuban/UI/viewport.py (ViewPort.SetMap): Issue MAP_REPLACED
686            after the new map has been assigned
687    
688            * Thuban/UI/mainwindow.py (MainWindow.delegated_messages):
689            Delegate MAP_REPLACED to the canvas too
690            (MainWindow.prepare_new_session): Removed. Thanks to the new
691            MAP_REPLACED message it's no longer needed
692            (MainWindow.OpenSession, MainWindow.NewSession):
693            prepare_new_session has been removed.
694    
695            * Thuban/UI/classifier.py (Classifier.__init__): Subscribe to
696            MAP_REPLACED so that we can close the dialog if a new map is set.
697            (Classifier.unsubscribe_messages): Unsubscribe from MAP_REPLACED
698            (Classifier.map_replaced): Handle MAP_REPLACED by closing the
699            dialog
700    
701            * test/test_viewport.py (SimpleViewPortTest)
702            (SimpleViewPortTest.test_default_size): Add doc-strings
703            (ViewPortTest.setUp): Bind map to self.map so we can use it in
704            tests. Subscribe to MAP_REPLACED messages too.
705            (ViewPortTest.tearDown): No need to explicitly unsubscribe
706            (ViewPortTest.test_set_map): New test for the SetMap method.
707    
708    2003-07-18  Bernhard Herzog  <[email protected]>
709    
710            * test/test_viewport.py (SimpleViewPortTest.test_default_size):
711            Move this test from ViewPortTest.setUp to this new separate test
712            case. setUp is not the place for the actual tests.
713            (ViewPortTest.test_inital_settings, ViewPortTest.setUp): Move some
714            more of the test from setUp to the new test test_inital_settings.
715            (ViewPortTest.test_win_to_proj, ViewPortTest.test_proj_to_win)
716            (ViewPortTest.test_proj_conv): Split test_proj_conv into
717            test_win_to_proj and test_proj_to_win and make the tests easier to
718            understand
719            (ViewPortTest.testFitRectToWindow, ViewPortTest.testZoomFactor)
720            (ViewPortTest.testZoomOutToRect, ViewPortTest.testTranslate)
721            (ViewPortTest.test_unprojected_rect_around_point)
722            (ViewPortTest.test_find_shape_at, ViewPortTest.testTools):
723            Reformat to increase readability.
724    
725    2003-07-18  Bernhard Herzog  <[email protected]>
726    
727            * Thuban/UI/view.py (MapCanvas.OnLeftDown): Capture the mouse.
728    
729    2003-07-18  Bernhard Herzog  <[email protected]>
730    
731            * test/runtests.py: The test suite can now be run without an X
732            connection. To make sure this remains true, remove the DISPLAY
733            environment variable so that an error occurs if the wxGTK is
734            imported accidentally
735    
736    2003-07-18  Bernhard Herzog  <[email protected]>
737    
738            * Thuban/UI/viewport.py: Remove unused imports
739    
740            * Thuban/UI/view.py: Remove unused imports
741    
742    2003-07-18  Bernhard Herzog  <[email protected]>
743    
744            * test/test_export.py Remove unused imports. The OutputTransform
745            function is now in viewport.py and is called output_transform
746            (TestScalebar.test_output_transform)
747            (TestScalebar.test_OutputTransform): Renamed to
748            test_output_transform and updated to use output_transform instead
749            of OutputTransform
750    
751            * Thuban/UI/view.py (OutputTransform): Moved to viewport.py and
752            renamed.
753            (MapCanvas.Export, MapPrintout.draw_on_dc): OutputTransform was
754            renamed to output_transform
755    
756            * Thuban/UI/viewport.py (OutputTransform, output_transform):
757            Rename to output_transform
758    
759    2003-07-18  Bernhard Herzog  <[email protected]>
760    
761            * Thuban/Model/layer.py (Layer.__init__): Rename
762            classificationField to classificatin_column and init it here so
763            that it can be used in SetClassificationColumn
764            (Layer.GetClassificationColumn, Layer.GetClassificationField):
765            Rename to GetClassificationColumn.
766            (Layer.SetClassificationColumn, Layer.SetClassificationField):
767            Rename to SetClassificationColumn and issue a LAYER_CHANGED
768            message if the column changes.
769            (Layer._classification_changed, Layer.ClassChanged): Rename to
770            _classification_changed. Update the callers.
771            (Layer.SetShapeStore): Further field->column renames.
772    
773            * Thuban/Model/load.py (SessionLoader.start_classification)
774            (SessionLoader.start_clpoint): Updates because of
775            field->column method name changes in the Layer class
776    
777            * Thuban/Model/save.py (SessionSaver.write_classification): Updates
778            because of field->column method name changes in the Layer class
779    
780            * Thuban/UI/classifier.py (Classifier.__init__)
781            (Classifier._OnTry, Classifier._OnRevert): Updates because of
782            field->column method name changes in the Layer class
783    
784            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Updates
785            because of field->column method name changes in the Layer class
786    
787            * Thuban/UI/viewport.py (ViewPort.find_shape_at): Updates because
788            of field->column method name changes in the Layer class
789    
790            * test/test_save.py (SaveSessionTest.testClassifiedLayer)
791            (SaveSessionTest.testClassifiedLayer): Update because of
792            field->column method name changes in the Layer class
793    
794            * test/test_layer.py (SetShapeStoreTests.setUp)
795            (SetShapeStoreTests.test_sanity): Update because of field->column
796            method name changes in the Layer class
797            (TestLayerModification.setUp): Subscribe to LAYER_CHANGED as well
798            (TestLayerModification.test_sanity)
799            (TestLayerModification.test_initial_settings): remove unsued code
800            and rename to test_sanity.
801            (TestLayerModification.test_set_classification): New test for
802            SetClassification and SetClassificationField.
803    
804    2003-07-18  Bernhard Herzog  <[email protected]>
805    
806            * test/test_classgen.py (TestFixedRamp.test): Extend test to check
807            the non-fixed values as well. The old test would have accepted a
808            fixed ramp that only returnes the fixed properties
809    
810    2003-07-17  Jonathan Coles   <[email protected]>
811    
812            * Doc/manual/mainwindow.png, Doc/manual/mainwindow.xcf: Screen
813            shots for the manual. The XCF file is the source image and
814            has additional layers to support changes.
815    
816            * Doc/manual/thuban-manual.xml: Wrote an initial Introduction.
817    
818            * Thuban/UI/classifier.py (Classifier.__BuildClassification):
819            Return both the new class and the field name.
820    
821            * Thuban/UI/mainwindow.py (MainWindow.ToggleLegend): Don't
822            fit the map to the window as this changes any zoom level that
823            the user may have set.
824    
825    2003-07-16  Jonathan Coles   <[email protected]>
826    
827            * Thuban/Model/classgen.py (generate_singletons,
828            generate_uniform_distribution, generate_quantiles): Remove
829            fixes parameter, but maintain the same functionality by having
830            the calling function pass a FixedRamp object for the ramp.
831            (FixedRamp): New. Adapts a ramp to have fixed property values.
832    
833            * Thuban/Model/classification.py: Use new CLASS_CHANGED message.
834            (Classification): Inherit from Publisher.
835            (Classification.__init__): Remove the layer parameter.
836            Classifications no longer need to have a parent layer.
837            (Classification.GetField, Classification.GetFieldType,
838            Classification.SetFieldInfo): Removed. The field name is stored
839            in the layer, and the type can be retreived by calling
840            Layer.GetFieldType().
841            (Classification._set_layer, Classification.GetLayer): Removed.
842            Classifications no longer have a parent layer.
843    
844            * Thuban/Model/layer.py (Layer.Destroy): Unsubscribe from the
845            classification.
846            (Layer.SetShapeStore): Reset the classification first while
847            we still have the old shape store to work with.
848            (Layer.GetClassificationField, Layer.SetClassificationField):
849            New. Method for getting/setting the field to classify on.
850            (Layer.SetClassification): Simplified now that the layer
851            simply has to hold a reference to the classification and not
852            tell the classification who owns it.
853            Fixes RTbug #2023.
854    
855            * Thuban/Model/load.py (SessionLoader.start_classification):
856            Set the field name on the layer, not the classification.
857    
858            * Thuban/Model/messages.py: Add CLASS_CHANGED for when a
859            classification is modified.
860    
861            * Thuban/Model/save.py (SessionSaver.write_classification):
862            Get the field name and type from the layer.
863    
864            * Thuban/Model/table.py (table_to_dbf, table_to_csv): Renamed
865            parameter records to rows and add docstring. Fixes RTbug #1997.
866    
867            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Use a fixed
868            ramp when we need to fix certain values of a ramp rather than
869            using the old fixes parameter. Fixes RTbug #2024.
870    
871            * Thuban/UI/classifier.py (ClassGrid.CreateTable): Add fieldType
872            parameter.
873            (ClassTable.Reset): Add fieldType parameter and use it, rather
874            than asking the classification.
875            (Classifier.__init__): Remember the original class's field
876            and ask the layer for the field type, rather than the classification.
877            (Classifier.__SetGridTable): Retrieve the field and field type
878            for the table because they are not in the classification.
879            (Classifier._OnTry, Classifier._OnRevert): Set the classification
880            field on the layer in addition to the classification itself.
881    
882            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Get the
883            classification field from layer.
884    
885            * Thuban/UI/viewport.py (ViewPort.find_shape_at): Get the
886            classification field from layer. Split up tests and remove
887            *-imports. Fixes RTbug #1992.
888    
889            * test/test_classgen.py (TestFixedRamp): Test for the FixedRamp class.
890    
891            * test/test_classification.py
892            (TestClassification.test_classification): Remove tests for methods
893            that no longer exist.
894    
895            * test/test_layer.py (SetShapeStoreTests.setUp): Classification
896            __init__ no longer has a field parameter, use SetClassificationField.
897            (SetShapeStoreTests.test_sanity): Use layer object to get class
898            field info.
899    
900            * test/test_save.py (SaveSessionTest.testClassifiedLayer): Use
901            SetClassificationField on layer to set class field info.
902    
903            * test/test_viewport.py: Renamed from test/test_view.py.
904    
905    2003-07-16  Jan-Oliver Wagner <[email protected]>
906    
907            * Doc/manual/thuban-manual.xml: Added authors and an initial
908            coarse structure.
909    
910    2003-07-15  Bernhard Herzog  <[email protected]>
911    
912            * test/support.py (FloatComparisonMixin): This is a mix-in class
913            and therefore should not be derived from any other class.
914    
915            * test/test_range.py (RangeTest): FloatComparisonMixin is a
916            mix-in, so derive from TestCase as well.
917    
918    2003-07-15  Bernhard Herzog  <[email protected]>
919    
920            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Rework the
921            draw_func handling a bit to remove one layer of indirection. This
922            makes the renderer about 10% faster in the non-classifying case
923            and the code a bit cleaner
924            (MapRenderer.draw_point_shape): Add the pen and brush parameters
925            and set them in the dc. Now the draw_point_shape method and
926            wxproj's draw_polygon_shape function have basically the same
927            signature so that both can be directly used as draw_func
928    
929    2003-07-15  Bernhard Herzog  <[email protected]>
930    
931            * Thuban/Model/save.py (SessionSaver.write_classification): Encode
932            string values (in addition to the labels) as UTF 8
933    
934            * Thuban/Model/load.py (SessionLoader.start_clpoint): Decode the
935            values if the field type is string
936    
937            * test/test_save.py (SaveSessionTest.testClassifiedLayer): Test
938            saving a session with non-ascii string classification values.
939    
940            * test/test_load.py (TestClassification.file_contents)
941            (TestClassification.test): Check for non-ascii values in string
942            classifications
943    
944    2003-07-14  Jonathan Coles   <[email protected]>
945    
946            * test/test_view.py: New. Tests for ViewPort.
947    
948    2003-07-14  Frank Koormann   <[email protected]>
949    
950            * Thuban/Model/load.py (SessionLoader.start_map): Encode map
951            title to latin1.  Fixes https://intevation.de/rt/webrt?serial_num=2013
952    
953            * test/test_load_0_8.py (TestUnicodeStrings): New, test load of
954            unicode strings from session file: session title, map title and
955            projection name.
956            
957    2003-07-10  Jonathan Coles   <[email protected]>
958    
959            * Thuban/UI/viewport.py (Tool.MouseUp): Should have called
960            drag_stop, not drag_move when the mouse is released.
961    
962    2003-07-10  Jonathan Coles   <[email protected]>
963    
964            The most important part of this is the seperation of view.py into
965            two pieces. viewport.py now has a class called ViewPort which
966            contains all the non-wx parts of view.py and can therefore be
967            tested. view.py contains only the wx-specific parts and is fairly
968            simple.
969    
970            * Thuban/UI/view.py: Stripped out all non-wx functionality. Fixes
971            RTTbug #1992.
972            * Thuban/UI/viewport.py: New. Contains non-wx view functionality.
973            RTTbug #1992.
974    
975            * Thuban/Model/classgen.py (generate_singletons,
976            generate_uniform_distribution, generate_quantiles):
977            Added 'fixes' parameter so that property attributes can
978            be held constant over the generated classification groups.
979            (CustomRamp.GetProperties): Remove unused variables.
980    
981            * Thuban/Model/map.py (Map.SetProjection): Send the old
982            projection as an argument to listeners of the MAP_PROJECTION_CHANGED
983            event.
984    
985            * Thuban/Model/table.py (table_to_dbf, table_to_csv): Added 'records'
986            parameter which is a list of records that restricts which
987            records are saved. Fixes RTbug #1997.
988    
989            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
990            Port exception dialog from GREAT-ER. Fixes RTbug #1993.
991    
992            * Thuban/UI/classgen.py (ClassGenDialog.__init__): Add controls
993            to allow the user to fix line color/width on generated groups.
994            (ClassGenDialog.OnOK): Use new 'fixes' parameter of the generate_*
995            functions to optionally fix group properties.
996    
997            * Thuban/UI/main.py (main): Set exception hook to the
998            ShowExceptionDialog. Fixes RTbug #1993.
999    
1000            * Thuban/UI/mainwindow.py (MainWindow.ShowTableView): Raise
1001            the table window when it is selectd to be shown.
1002    
1003            * Thuban/UI/tableview.py (QueryTableFrame.__init__): Add an
1004            Export Selection button and move the export buttons underneath
1005            the table.
1006            (QueryTableFrame.UpdateStatusText): Added event argument so
1007            that it can respond to grid selection events. The status text
1008            is now updated even when the table is not associated with a
1009            layer as was previously assumed.
1010            (QueryTableFrame.OnGridSelectRange, OnGridSelectCell): Removed.
1011            UpdateStatusText responds to these events.
1012            (QueryTableFrame.OnSaveAs): Renamed to doExport.
1013            (QueryTableFrame.doExport): Helper function that saves the
1014            entire table, or selected rows, to a file.
1015            (QueryTableFrame.OnExport, QueryTableFrame.OnExportSel): New.
1016            Respond to export button events and call doExport.
1017    
1018            * extensions/thuban/gdalwarp.cpp (ProjectRasterFile): Make sure
1019            the function doesn't return NULL without first setting a Python
1020            Error.
1021    
1022            * test/runtests.py (main): Only print "Unknown option" for
1023            unsupported options.
1024    
1025            * test/support.py (FloatComparisonMixin.assertFloatEqual): Take
1026            optional epsilon argument to specify floating point accuracy.
1027            (FloatComparisonMixin.assertFloatSeqEqual): Call assertFloatEqual
1028            for each item test.
1029    
1030            * test/test_csv_table.py (TestCSVTable.test_table_to_cvs): Add
1031            tests for saving selected records.
1032    
1033            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): Add
1034            tests for saving selected records.
1035    
1036            * test/test_map.py (TestMapWithContents.test_set_projection):
1037            MAP_PROJECTION_CHANGED events send the old projection.
1038    
1039            * test/test_session.py
1040            (TestSessionWithContent.test_forward_map_projection):
1041            MAP_PROJECTION_CHANGED events send the old projection.
1042    
1043            * test/test_table.py (TableTest): Update tests to use non-deprecated
1044            functions.
1045    
1046    2003-07-08  Bernhard Herzog  <[email protected]>
1047    
1048            * Thuban/Model/transientdb.py (TransientTableBase.Width): The type
1049            constants in the column objects are the standard ones defined in
1050            the table module.
1051    
1052            * test/test_transientdb.py
1053            (TestTransientTable.test_transienttable_to_dbf): New. Test whether
1054            exporting transient tables as DBF works. This should catch the bug
1055            just fixed in TransientTableBase.Width.
1056    
1057    2003-07-08  Bernhard Herzog  <[email protected]>
1058    
1059            * Thuban/Model/classgen.py (CustomRamp.GetProperties): Compute the
1060            interpolated colors correctly.
1061    
1062            * test/test_classgen.py (TestCustomRamp.test_color_interpolation):
1063            New. Test case for the fix in classgen.py
1064    
1065    2003-07-08  Bernhard Herzog  <[email protected]>
1066    
1067            * test/runtests.py (main): Make the default output less verbose
1068            and add a verbosity option (-v) to get the old output
1069    
1070    2003-07-08  Bernhard Herzog  <[email protected]>
1071    
1072            * Resources/XML/thuban-0.9.dtd: New. This will become the DTD for
1073            0.9.
1074    
1075            * Thuban/Model/transientdb.py (TransientJoinedTable.JoinType):
1076            New. Return the join type
1077    
1078            * Thuban/Model/save.py (SessionSaver.write_session): Use new 0.9
1079            DTD
1080            (SessionSaver.write_data_containers): Save the join type for
1081            joined tables
1082    
1083            * Thuban/Model/load.py (SessionLoader.__init__): Add the new 0.9
1084            namespace
1085            (SessionLoader.start_jointable): Handle the jointype attribute
1086    
1087            * test/test_load_0_8.py: New. Effectively a copy of test_load.py
1088            as of Thuban 0.8. These are now tests to determine whether Thuban
1089            can still read files generated by Thuban 0.8
1090    
1091            * test/test_load.py (LoadSessionTest.dtd)
1092            (TestSingleLayer.file_contents)
1093            (TestLayerVisibility.file_contents, TestLabels.file_contents)
1094            (TestLayerProjection.file_contents)
1095            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
1096            (TestJoinedTable.file_contents)
1097            (TestLoadError.file_contents): Update for new DTD
1098            (TestJoinedTable.file_contents, TestJoinedTable.setUp): Add test
1099            for new join type attribute
1100    
1101            * test/test_save.py (SaveSessionTest.dtd)
1102            (SaveSessionTest.testEmptySession)
1103            (SaveSessionTest.testSingleLayer)
1104            (SaveSessionTest.testLayerProjection)
1105            (SaveSessionTest.testRasterLayer)
1106            (SaveSessionTest.testClassifiedLayer)
1107            (SaveSessionTest.test_dbf_table)
1108            (SaveSessionTest.test_joined_table): Update for new DTD
1109            (SaveSessionTest.test_joined_table): Add test for new join type
1110            attribute
1111    
1112    2003-07-04  Bernhard Herzog  <[email protected]>
1113    
1114            * Thuban/Model/table.py (_find_dbf_column_names): New. Helper
1115            function for table_to_dbf
1116            (table_to_dbf): Deal with names longer than the 10 character limit
1117    
1118            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): Add
1119            doc-string
1120            (TestTableToDBF.test_table_to_dbf_long_col_names): New test for
1121            long column names
1122    
1123    2003-07-03  Bernhard Herzog  <[email protected]>
1124    
1125            * Doc/manual/thuban-manual.xml: Fix the CVS Revision Tag syntax
1126    
1127    2003-07-03  Bernhard Herzog  <[email protected]>
1128    
1129            * Doc/manual/thuban-manual.xml, Doc/manual/README: New. Skeleton
1130            for the Thuban manual and README with some basic information about
1131            the manual
1132    
1133    2003-07-03  Bernhard Herzog  <[email protected]>
1134    
1135            * Thuban/Model/transientdb.py (TransientJoinedTable.__init__):
1136            Update doc-string
1137            (TransientJoinedTable.create): Do not modify the column objects of
1138            the input tables in place and copy all columns of the input tables
1139            into the joined table after all.
1140    
1141            * test/test_transientdb.py
1142            (TestTransientTable.test_transient_joined_table_same_column_name):
1143            Update to reflect the new behavior
1144            (TestTransientTable.test_transient_joined_table_with_equal_column_names):
1145            Update to reflect the new behavior
1146            (TestTransientTable.test_transient_joined_table_name_collisions_dont_modify_in_place):
1147            New test case for a bug which modified the column objects in place
1148    
1149    2003-07-02  Jonathan Coles   <[email protected]>
1150    
1151            * Thuban/Model/classgen.py (generate_singletons,
1152            generate_uniform_distribution, generate_quantiles,
1153            GenQuantiles0): Make sure maxValue isn't less than
1154            one, otherwise we could divide by zero.
1155    
1156            * test/test_classgen.py (ClassGenTest.doClassRangeTest,
1157            ClassGenTest.doClassSingleTest): Call doBoundsTest to
1158            check the end classification groups against the
1159            proper property values.
1160            (ClassGenTest.doBoundsTest): New. Checks the first and
1161            last classification groups to make sure their properties
1162            are the correct upper and lower bounds for a color ramp.
1163    
1164    2003-07-02  Jonathan Coles   <[email protected]>
1165    
1166            * Thuban/Model/classgen.py (generate_singletons,
1167            generate_uniform_distribution, generate_quantiles,
1168            GenQuantiles0): The denominator was one to high when
1169            calculating the index for the ramp causing the index
1170            to never to reach one.
1171    
1172    2003-07-02  Jonathan Coles   <[email protected]>
1173    
1174            Changed the singature of ClassGroupRange.__init__ and
1175            ClassGroupRange.SetRange() so that the min/max values are
1176            passed as a tuple. This makes a better calling scheme for
1177            when a Range object is passed instead.
1178    
1179            * Thuban/Model/classgen.py: Fixed parameters to
1180            ClassGroupRange constructor.
1181    
1182            * Thuban/Model/classification.py (ClassGroupRange.__init__):
1183            Consolidate the min/max parameters into a single _range which
1184            can either be a tuple or a Range object.
1185            (ClassGroupRange.SetRange): Consolidate the min/max parameters
1186            into a single _range which can either be a tuple or a Range object.
1187    
1188            * Thuban/Model/load.py (SessionLoader.start_clrange): Fix
1189            call to ClassGroupRange constructor to use a tuple.
1190    
1191            * Thuban/Model/layer.py (Layer.SetClassification): Switch
1192            the classification instance variable to the new class
1193            before calling _set_layer otherwise subscribers to a
1194            LAYER_CHANGED event will not see any difference.
1195    
1196            * test/test_classification.py: Fix tests of ClassGroupRange
1197            so that they use the new signature.
1198    
1199            * test/test_load.py: Fix use of ClassGroupRange so that it
1200            uses the new signature.
1201    
1202            * test/test_load_0_2.py: Fix use of ClassGroupRange so that it
1203            uses the new signature.
1204    
1205            * test/test_save.py: Fix use of ClassGroupRange so that it
1206            uses the new signature.
1207    
1208    
1209  2003-07-01  Jonathan Coles   <[email protected]>  2003-07-01  Jonathan Coles   <[email protected]>
1210    
1211          * Thuban/Model/classgen.py: Fixes RTbug #1972, 1971.          * Thuban/Model/classgen.py: Fixes RTbug #1972, 1971.

Legend:
Removed from v.1349  
changed lines
  Added in v.1606

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26