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

Legend:
Removed from v.1424  
changed lines
  Added in v.1623

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26