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

Legend:
Removed from v.1403  
changed lines
  Added in v.1609

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26