/[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 1512 by bh, Tue Jul 29 14:49:05 2003 UTC revision 1639 by bh, Fri Aug 22 18:19:27 2003 UTC
# Line 1  Line 1 
1    2003-08-22  Bernhard Herzog  <[email protected]>
2          
3            Implement saving a session with a postgis connection
4    
5            * Resources/XML/thuban-0.9.dtd (dbconnection, dbshapesource) New
6            elements for database connections and shapestores using db
7            connections
8            (session): Add the dbconnections to the content model
9    
10            * Thuban/Model/save.py (SessionSaver.write_db_connections): New.
11            Write the db connections
12            (SessionSaver.write_session): Call write_db_connections to write
13            the connection before the data sources
14            (SessionSaver.write_data_containers): Handle postgis shapestores
15    
16            * test/test_save.py (SaveSessionTest.thubanids)
17            (SaveSessionTest.thubanidrefs): Update for new DTD
18            (SaveSessionTest.test_save_postgis): New. Test saving a session
19            with postgis connections
20    
21            * Thuban/Model/postgisdb.py (PostGISTable.DBConnection)
22            (PostGISTable.TableName): New accessor methods for the connection
23            and table name
24    
25            * test/test_postgis_db.py (TestPostGISTable.test_dbconn)
26            (TestPostGISTable.test_dbname): New methods to test the new
27            PostGISConnection methods
28    
29    2003-08-22  Bernhard Herzog  <[email protected]>
30    
31            * Thuban/Model/postgisdb.py (ConnectionError): New exception class
32            for exceptions occurring when establishing a Database connection
33            (PostGISConnection.connect): Catch psycopg.OperationalError during
34            connects and raise ConnectionError.
35    
36            * test/test_postgis_db.py (TestPostgisDBExceptions): New class for
37            tests for database exceptions
38    
39    2003-08-22  Bernhard Herzog  <[email protected]>
40    
41            Prepare the test suite for tests with required authentication
42    
43            * test/postgissupport.py (PostgreSQLServer.__init__): Add instance
44            variables with two predefined users/passwords, one for the admin
45            and one for a non-privileged user.
46            (PostgreSQLServer.createdb): Pass the admin name to initdb and add
47            the non-privileged user to the database and set the admin password
48            (PostgreSQLServer.wait_for_postmaster): Use the admin user name.
49            Better error reporting
50            (PostgreSQLServer.connection_params)
51            (PostgreSQLServer.connection_string): New methods to return
52            information about how to connect to the server
53            (PostgreSQLServer.execute_sql): New. Convenience method to execute
54            SQL statements
55            (PostgreSQLServer.require_authentication): Toggle whether the
56            server requires authentication
57            (PostgreSQLServer.create_user, PostgreSQLServer.alter_user): New.
58            Add or alter users
59            (PostGISDatabase.initdb): Pass the admin name one the
60            subprocesses' command lines. Grant select rights on
61            geometry_columns to everybody.
62            (upload_shapefile): Use the admin name and password when
63            connecting. Grant select rights on the new table to everybody.
64    
65            * test/test_viewport.py (TestViewportWithPostGIS.setUp): Use the
66            server's new methods to get the connection parameters.
67    
68            * test/test_postgis_session.py (TestSessionWithPostGIS.setUp)
69            (TestSessionWithPostGIS.test_remove_dbconn_exception): Use the
70            server's new methods to get the connection parameters.
71    
72            * test/test_postgis_db.py
73            (TestPostGISConnection.test_gis_tables_empty)
74            (TestPostGISConnection.test_gis_tables_non_empty)
75            (PostGISStaticTests.setUp): Use the server's new methods to get
76            the connection parameters.
77    
78    2003-08-22  Bernhard Herzog  <[email protected]>
79    
80            * Thuban/UI/about.py (About.__init__): Add the psycopg version.
81    
82            * Thuban/version.py: Add psycopg version
83    
84            * Thuban/Model/postgisdb.py (psycopg_version): New. Return the
85            version of the psycopg module
86    
87    2003-08-22  Bernhard Herzog  <[email protected]>
88    
89            * Thuban/UI/dbdialog.py (DBPwdDlg): Removed because it's not used.
90            (DBFrame.OnEdit): Removed because it's not used and wouldn't work
91            at the moment. The functionality should probably be implemented
92            some time, though.
93            (DBFrame.OnRemove): Display a message if the connection can't be
94            removed because it's still in use.
95    
96    2003-08-22  Jan-Oliver Wagner <[email protected]>
97    
98            * Thuban/UI/about.py (About.__init__): split up the huge about
99            text into elements/lists for easier translation. This fixes bug
100            https://intevation.de/rt/webrt?serial_num=2058
101            Also, made some forgotten string available for the i18n.
102    
103    2003-08-21  Bernhard Herzog  <[email protected]>
104    
105            Make postgis support really optional including insensitive menu
106            items.
107    
108            * Thuban/Model/postgisdb.py (has_postgis_support): New. Return
109            whether the postgis is supported.
110    
111            * Thuban/UI/dbdialog.py: Put the psycopg import into try..except
112            to make postgis support optional
113    
114            * Thuban/UI/mainwindow.py (_has_postgis_support): New. Context
115            version of Thuban.Model.postgisdb.has_postgis_support
116            (database_management command): Make it only sensitive if postgis
117            is supported.
118    
119    2003-08-21  Jan-Oliver Wagner <[email protected]>
120    
121            * Doc/manual/thuban-manual.xml: Added CVS revision for rev-history.
122            (section Adding and Removing Layers): Added text and described
123            multi-selection.
124            (chapter Extensions): New.
125    
126    2003-08-21  Jan-Oliver Wagner <[email protected]>
127    
128            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Changed dialog
129            settings to allow multiple files to load into the map.
130            Also reduced selection to *.shp as a default.
131    
132    2003-08-20  Bernhard Herzog  <[email protected]>
133    
134            Add dialogs and commands to open database connections and add
135            database layers.
136    
137            * Thuban/UI/mainwindow.py (MainWindow.DatabaseManagement): New
138            method to open the database connection management dialog
139            (MainWindow.AddDBLayer): New method to add a layer from a database
140            (_has_dbconnections): New helper function to use for sensitivity
141            (database_management command, layer_add_db command): New commands
142            that call the above new methods.
143            (main_menu): Add the new commands to the menu.
144    
145            * Thuban/Model/postgisdb.py (PostGISConnection.__init__)
146            (PostGISConnection.connect): Establish the actual connection in a
147            separate method and call it in __init__. This makes it easier to
148            override the behavior in test cases
149            (PostGISConnection.BriefDescription): New method to return a brief
150            description for use in dialogs.
151    
152            * test/test_postgis_db.py (NonConnection): DB connection that
153            doesn't actually connect
154            (TestBriefDescription): New class with tests for the new
155            BriefDescription method
156    
157    2003-08-19  Jan-Oliver Wagner <[email protected]>
158    
159            Moved anything from extensions to libraries.
160    
161            * libraries: New.
162    
163            * libraries/ pyprojection, pyshapelib, shapelib, thuban: New.
164    
165            * libraries/pyprojection/ LICENSE, MANIFEST.in, Projection.i,
166            Projection.py, Projection_wrap.c, setup.py, swighelp.txt: These files have
167            been moved here from thuban/extensions/pyprojection/
168            See there in the Attic for the older history.
169    
170            * libraries/pyshapelib/ COPYING, ChangeLog, NEWS, README, dbflib.i,
171            dbflib.py, dbflib_wrap.c, pyshapelib_api.h, pytest.py, setup.py,
172            shapelib.i, shapelib.py, shapelib_wrap.c, shptreemodule.c: These files
173            have been moved here from thuban/extensions/pyshapelib/
174            See there in the Attic for the older history.
175    
176            * libraries/shapelib/ dbfopen.c, shapefil.h, shpopen.c, shptree.c: These
177            files have been moved here from thuban/extensions/shapelib/
178            See there in the Attic for the older history.
179    
180            * libraries/thuban/ bmpdataset.cpp, cpl_mfile.cpp, cpl_mfile.h,
181            gdalwarp.cpp, wxproj.cpp: These files have been moved here from
182            thuban/extensions/thuban/
183            See there in the Attic for the older history.
184    
185            * MANIFEST.in, setup.cfg, setup.py: renamed extensions to libraries.
186    
187            * extensions/thuban/ bmpdataset.cpp, cpl_mfile.cpp, cpl_mfile.h,
188            gdalwarp.cpp, wxproj.cpp: Moved to libraries/thuban.
189    
190            * extensions/shapelib/ dbfopen.c, shapefil.h, shpopen.c, shptree.c:
191            Moved to libraries/shapelib.
192    
193            * extensions/pyshapelib/ COPYING, NEWS, dbflib.py, pytest.py,
194            shapelib.py, README, dbflib_wrap.c, setup.py, shapelib_wrap.c,
195            ChangeLog, dbflib.i, pyshapelib_api.h, shapelib.i, shptreemodule.c:
196            Moved to libraries/pyshapelib.
197    
198            * extensions/pyprojection/ MANIFEST.in, Projection.py, setup.py,
199            LICENSE, Projection.i, Projection_wrap.c, swighelp.txt:
200            Moved to libraries/pyprojection.
201    
202            * extensions/ pyprojection, pyshapelib, shapelib, thuban: Removed.
203    
204            * extensions: Removed.
205    
206    2003-08-19  Bernhard Herzog  <[email protected]>
207    
208            * test/test_viewport.py (ViewPortTest): We don't use the
209            facilities of FileTestMixin so don't derive from it.
210            (TestViewportWithPostGIS): New class with tests for using a
211            viewport on a map with postgis layers.
212    
213    2003-08-19  Bernhard Herzog  <[email protected]>
214    
215            Add the db connection management to the session.
216    
217            * Thuban/Model/session.py (Session.__init__): New instance
218            variable db_connections
219            (Session.AddDBConnection, Session.DBConnections)
220            (Session.HasDBConnections, Session.CanRemoveDBConnection)
221            (Session.RemoveDBConnection): New methods to manage and query the
222            db connections managed by the session
223            (Session.OpenDBShapeStore): New method to open a shapestore from a
224            db connection
225    
226            * Thuban/Model/messages.py (DBCONN_REMOVED, DBCONN_ADDED): New
227            messages for the db connection handling in the session
228    
229            * test/test_postgis_session.py: New. test cases for the session's
230            db connection handling with postgis connections
231    
232    2003-08-19  Bernhard Herzog  <[email protected]>
233    
234            Add very basic postgis database support and the corresponding test
235            cases. The test cases require a PostgreSQL + postgis installation
236            but no existing database. The database will be created
237            automatically by the test cases
238    
239            * test/README: Add note about skipped tests and the requirements
240            of the postgis tests.
241    
242            * Thuban/Model/postgisdb.py: New. Basic postgis database support.
243    
244            * test/test_postgis_db.py: New. Test cases for the postgis
245            support.
246    
247            * Thuban/Model/wellknowntext.py: New. Parser for well-known-text
248            format
249    
250            * test/test_wellknowntext.py: New. Test cases for the
251            wellknowntext parser
252    
253            * test/postgissupport.py: New. Support module for tests involving
254            a postgis database.
255    
256            * test/support.py (execute_as_testsuite): Shut down the postmaster
257            if it's still running after the tests
258    
259            * Thuban/Model/data.py (RAW_WKT): New constant for raw data in
260            well known text format
261    
262    2003-08-19  Jan-Oliver Wagner <[email protected]>
263    
264            * Examples/simple_extensions/hello_world.py: New. Raises a Hello World
265            message dialog.
266    
267    2003-08-18  Bernhard Herzog  <[email protected]>
268    
269            * test/support.py (ThubanTestResult.printErrors): Indent the
270            reason for the skips in the output to make it a bit more readable.
271            (execute_as_testsuite): New helper function to run a test suite
272            and print some more information.
273            (run_tests): Use execute_as_testsuite to run the tests
274    
275            * test/runtests.py (main): Use execute_as_testsuite to run the
276            tests
277    
278    2003-08-18  Bernhard Herzog  <[email protected]>
279    
280            Fix some bugs in Thuban and the test suite that were uncovered by
281            changes introduced in Python 2.3:
282    
283            * Thuban/Model/table.py (DBFTable.__init__): Make sure the
284            filename is an absolute name
285    
286            * Thuban/Model/layer.py (RasterLayer.__init__): Make sure the
287            filename is an absolute name
288    
289            * test/test_save.py (SaveSessionTest.testRasterLayer): Use a
290            unique filename to save to and use the correct relative filename
291            in the expected output.
292            (SaveSessionTest.test_dbf_table): Use the correct relative
293            filename in the expected output.
294    
295            * test/test_layer.py (TestLayer.test_raster_layer): Update the
296            test to check whether the filename is absolute.
297    
298    2003-08-18  Jan-Oliver Wagner <[email protected]>
299    
300            * Thuban/UI/about.py (About.__init__): Added Silke Reimer.
301    
302    2003-08-15  Bernhard Herzog  <[email protected]>
303    
304            Change the way shapes are returned by a shape store. The
305            ShapesInRegion method returns an iterator over actual shape
306            objects instead of a list of shape ids.
307    
308            * Thuban/Model/data.py (ShapefileShape.ShapeID): New. Return shape
309            id.
310            (ShapefileStore.ShapesInRegion): Return an iterator over the
311            shapes which yields shape objects instead of returning a list of
312            shape ids
313            (ShapefileStore.AllShapes): New. Return an iterator over all
314            shapes in the shape store
315            (DerivedShapeStore.AllShapes): New. Like in ShapefileStore
316    
317            * Thuban/Model/layer.py (Layer.ShapesInRegion): Update
318            doc-string.
319    
320            * Thuban/UI/baserenderer.py
321            (BaseRenderer.layer_ids, BaseRenderer.layer_shapes): Rename to
322            layer_shapes and make it return an iterator containg shapes
323            instead of a list of ids.
324            (BaseRenderer.draw_shape_layer): Update doc-string; Adapt to
325            layer_shapes() change
326    
327            * Thuban/UI/renderer.py (ScreenRenderer.layer_ids)
328            (ScreenRenderer.layer_shapes): Rename as in BaseRenderer
329    
330            * Thuban/UI/viewport.py (ViewPort._find_shape_in_layer): Adapt to
331            changes in the ShapesInRegion return value.
332            (ViewPort._get_hit_tester): Remove commented out code
333    
334            * test/mockgeo.py (SimpleShapeStore.ShapesInRegion): Adapt to the
335            new return value.
336            (SimpleShapeStore.AllShapes): New. Implement this method too.
337    
338            * test/test_layer.py (TestLayer.test_arc_layer)
339            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
340            (TestLayer.test_point_layer_with_projection)
341            (TestLayer.test_derived_store): Adapt to changes in the
342            ShapesInRegion return value.
343    
344            * test/test_shapefilestore.py
345            (TestShapefileStoreArc.test_shapes_in_region)
346            (TestShapefileStorePolygon.test_shapes_in_region)
347            (TestShapefileStorePoint.test_shapes_in_region): Adapt to changes
348            in the ShapesInRegion return value.
349            (TestShapefileStorePoint.test_all_shapes)
350            (TestShapefileStoreArc.test_shape_shapeid): New tests for the new
351            methods
352    
353            * test/test_derivedshapestore.py
354            (TestDerivedShapeStore.test_shapes_in_region): Adapt to changes in
355            the ShapesInRegion return value.
356            (TestDerivedShapeStore.test_all_shapes)
357            (TestDerivedShapeStore.test_shape_shapeid): New tests for the new
358            methods
359    
360    2003-08-15  Bernhard Herzog  <[email protected]>
361    
362            Make the renderers deal correctly with raw vs. python level
363            representation of shape geometries
364    
365            * Thuban/UI/baserenderer.py (BaseRenderer.low_level_renderer):
366            Return a flag useraw in addition to the callable and the parameter
367            to indicate whether the callable can deal with the raw shape data
368            or uses the higher level python lists of coordinates. The callable
369            now should accept either the raw data or the return value of the
370            shape's Points() method.
371            (BaseRenderer.draw_shape_layer): Adapt to the low_level_renderer
372            change
373            (BaseRenderer.projected_points): Instead of the shape id use the
374            points list as parameter.
375            (BaseRenderer.draw_polygon_shape, BaseRenderer.draw_arc_shape)
376            (BaseRenderer.draw_point_shape): Adapt to projected_points()
377            change and accept the points list as parameter instead of the
378            shape id.
379    
380            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Return
381            the useraw flag as required by the BaseRenderer
382            (ScreenRenderer.draw_shape_layer): Adapt to low-level renderer
383            changes.
384    
385            * test/test_baserenderer.py
386            (TestBaseRenderer.test_point_with_classification): New test for
387            rendering a map with classifications.
388    
389    2003-08-15  Bernhard Herzog  <[email protected]>
390    
391            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
392            (ViewPort._find_shape_in_layer, ViewPort._find_shape_in_layer)
393            (ViewPort._get_hit_tester, ViewPort.projected_points)
394            (ViewPort._hit_point, ViewPort._hit_arc, ViewPort._hit_polygon)
395            (ViewPort._find_label_at): Split the find_shape_at method into
396            several new methods and use the functions in the hit-test module.
397    
398            * Thuban/UI/hittest.py: New module with Python-level hit-testing
399            functions
400    
401            * test/test_hittest.py: New. Test for the new hittest module
402    
403    2003-08-15  Bernhard Herzog  <[email protected]>
404    
405            * Thuban/Model/layer.py (Layer.ShapesInRegion): Apply the layer
406            projection to all corners of the bounding box to get a better
407            approximation of the projected bounding box
408    
409            * test/test_layer.py (TestLayer.test_point_layer_with_projection):
410            New. Test coordinate handling of a layer with a projection.
411            Catches the bug fixed in Layer.ShapesInRegion
412    
413    2003-08-15  Bernhard Herzog  <[email protected]>
414    
415            Move some of the mock objects in test_baserenderer into their own
416            module so they can easily be used from other tests
417    
418            * test/mockgeo.py: New test helper module with some mock objects
419            for geometry related things like shapes, shapestores and
420            projections.
421    
422            * test/test_mockgeo.py: New. Tests for the new helper module
423    
424            * test/test_baserenderer.py: Some of the mock-objects are in
425            mockgeo now.
426    
427    2003-08-12  Jan-Oliver Wagner <[email protected]>
428    
429            * Thuban/UI/about.py (About.__init__): Added Bj�rn Broscheit.
430    
431    2003-08-12  Bernhard Herzog  <[email protected]>
432    
433            * po/de.po: New. German translations by Bjoern Broscheit
434    
435    2003-08-12  Bernhard Herzog  <[email protected]>
436    
437            * Thuban/UI/projdialog.py (UnknownProjPanel._DoLayout): Translated
438            strings have to be one string literal.
439    
440    2003-08-11  Bernhard Herzog  <[email protected]>
441    
442            * test/support.py (FloatComparisonMixin.assertPointListEquals):
443            New. This method was used in various derived classes, but it's
444            better to have it here.
445    
446            * test/test_shapefilestore.py
447            (ShapefileStoreTests.assertPointListEquals): Removed. It's now in
448            FloatComparisonMixin
449    
450            * test/test_layer.py (TestLayer.assertPointListEquals): Removed.
451            It's now in FloatComparisonMixin
452    
453            * test/test_derivedshapestore.py
454            (TestDerivedShapeStore.assertPointListEquals): Removed. It's now
455            in FloatComparisonMixin
456    
457    2003-08-11  Bernhard Herzog  <[email protected]>
458    
459            * Thuban/UI/join.py (JoinDialog.OnJoin): Add missing space to
460            error message
461    
462    2003-08-08  Jan-Oliver Wagner <[email protected]>
463    
464            * Doc/manual/thuban-manual.xml: Now use authorgroup. Added revhistory
465            with version number.
466            Changed title to reflect version number of Thuban.
467    
468    2003-08-08  Jan-Oliver Wagner <[email protected]>
469    
470            * Thuban/UI/about.py (About.__init__): Reworked the hall of fame. Now
471            the list corresponds to the "About" web page.
472    
473    2003-08-08  Bernhard Herzog  <[email protected]>
474    
475            * Thuban/UI/projdialog.py (UTMProposeZoneDialog.dialogLayout):
476            Make sure translated strings are recognized as one string literal.
477    
478            * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog.dialogLayout):
479            Make sure translated strings are recognized as one string literal.
480    
481            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Make sure
482            translated strings are recognized as one string literal.
483    
484            * Thuban/UI/application.py (ThubanApplication.OpenSession): Make
485            sure translated strings are recognized as one string literal.
486    
487    2003-08-07  Bernhard Herzog  <[email protected]>
488    
489            * Thuban/Model/data.py (DerivedShapeStore.RawShapeFormat): New.
490            Simply delegates to the original shapestore.
491    
492            * test/test_derivedshapestore.py
493            (TestDerivedShapeStore.test_raw_format): New. Test case for
494            DerivedShapeStore.RawShapeFormat
495    
496    2003-08-07  Bernhard Herzog  <[email protected]>
497    
498            Add raw data interface to shape objects.
499    
500            * Thuban/Model/data.py (ShapefileShape, Shape): Rname the shape
501            class to ShapefileShape which now holds shapefile specific
502            information.
503            (ShapefileShape.compute_bbox): Simplified to not cache any
504            information. The way this method is used that shouldn't matter
505            performance wise.
506            (ShapefileShape.RawData): New. Return the shapeid which is the raw
507            data format for shapes from shapefiles.
508            (ShapefileStore.RawShapeFormat): New. Return the raw datatype used
509            in the shape objects returned by a shapestore. For a
510            ShapefileStore this is always RAW_SHAPEFILE.
511            (RAW_PYTHON, RAW_SHAPEFILE): Constants for the RawShapeFormat
512            method.
513    
514            * test/test_shapefilestore.py
515            (TestShapefileStore.test_raw_format): New test to test the raw
516            format feature of shapes.
517    
518            * Thuban/Model/layer.py: Remove the unused import of Shape from
519            data. It was only there for interface compatibility but it's not
520            used inside of Thuban and the generic Shape class has gone away.
521    
522            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Check
523            the raw data format and only use an optimized version of its a
524            shapefile.
525    
526    2003-08-07  Bernhard Herzog  <[email protected]>
527    
528            * test/test_baserenderer.py (SimpleShape): Shape class for the
529            tests.
530            (SimpleShapeStore.Shape): Use SimpleShape instead of
531            Thuban.Model.data.Shape to make the tests independed of the coming
532            changes.
533    
534    2003-08-07  Bernhard Herzog  <[email protected]>
535    
536            * test/support.py (SkipTest, ThubanTestResult, ThubanTestRunner)
537            (ThubanTestProgram): New classes that extend the respective
538            classes from unittest. These new version support skipping tests
539            under certain expected conditions. In the Thuban test suite we
540            uses this for tests that require the optional gdal support.
541            (run_tests): Use ThubanTestProgram instead of the unittest.main()
542    
543            * test/runtests.py (main): Use the new ThubanTestRunner instead of
544            the normal one from unittest
545    
546            * test/test_layer.py (TestLayer.test_raster_layer): If this test
547            is not run because gdal support isn't available report this to the
548            runner.
549    
550            * test/test_baserenderer.py
551            (TestBaseRenderer.test_raster_no_projection): Do not run this test
552            if gdal support isn't available and report this to the runner.
553    
554    2003-08-06  Bernhard Herzog  <[email protected]>
555    
556            Rearrange the renderers a bit, partly in preparation for changes
557            required for the postgis merge, partly to make it more testable.
558            Also make the representation of coordinates in Shapes more
559            consistent.
560    
561            * Thuban/UI/renderer.py (MapRenderer): Most of the code/methods in
562            this class is now in BaseRenderer. This class is now practically
563            only a specialization of BaseRenderer for rendering to an actual
564            wx DC.
565            (ScreenRenderer.draw_shape_layer): Use self.low_level_renderer()
566            to get the shapetype specific rendering functions.
567    
568            * Thuban/UI/baserenderer.py: New file with the basic rendering
569            logic. The code in this file is completely independend of wx.
570            (BaseRenderer): Class with the basic rendering logic
571    
572            * test/test_baserenderer.py: New. Test cases for BaseRenderer
573    
574            * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
575            error_on_redraw to guard agains endless loops and stack overflows
576            when there's a bug in the rendering code that raises exceptions.
577            (MapCanvas.OnIdle, MapCanvas._do_redraw): Split the actual
578            rendering into a separate method _do_redraw so that error handling
579            is a bit easier. When an exception occurs, set error_on_redraw to
580            true. When it's true on entry to OnIdle do nothing and return
581            immediately.
582    
583            * Thuban/Model/data.py (ShapefileStore.Shape): For consistency, a
584            Shape object will always have the coordinates as a list of list of
585            coordinate pairs (tuples).
586            (Shape.compute_bbox): Adapt to new representation.
587    
588            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
589            (ViewPort.LabelShapeAt): Adapt to new coordinate representation in
590            Shape objects.
591    
592            * test/test_shapefilestore.py
593            (ShapefileStoreTests.assertFloatTuplesEqual)
594            (ShapefileStoreTests.assertPointListEquals): Rename to
595            assertPointListEquals and change purpose to checking equality of
596            the lists returned by Shape.Points().
597            (TestShapefileStoreArc.test_shape)
598            (TestShapefileStorePolygon.test_shape)
599            (TestShapefileStorePoint.test_shape): Use the new
600            assertPointListEquals instead of assertFloatTuplesEqual
601    
602            * test/test_layer.py (TestLayer.assertFloatTuplesEqual)
603            (TestLayer.assertPointListEquals): Rename to assertPointListEquals
604            and change purpose to checking equality of the lists returned by
605            Shape.Points().
606            (TestLayer.test_arc_layer, TestLayer.test_arc_layer)
607            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
608            (TestLayer.test_derived_store): Use the new assertPointListEquals
609            instead of assertFloatTuplesEqual
610    
611            * test/test_derivedshapestore.py
612            (TestDerivedShapeStore.assertFloatTuplesEqual)
613            (TestDerivedShapeStore.assertPointListEquals): Rename to
614            assertPointListEquals and change purpose to checking equality of
615            the lists returned by Shape.Points().
616            (TestDerivedShapeStore.test_shape): Use the new
617            assertPointListEquals instead of assertFloatTuplesEqual
618    
619    2003-08-06  Jan-Oliver Wagner <[email protected]>
620    
621            * Thuban/UI/projdialog.py (UTMPanel._OnPropose): Added test for
622            a bounding box. A dialog is raised in case, no bounding box
623            is found. This fixes bug #2043:
624            https://intevation.de/rt/webrt?serial_num=2043
625    
626    2003-08-05  Bernhard Herzog  <[email protected]>
627    
628            * Thuban/Model/color.py (Color.__repr__): Make the repr of a color
629            object look like a Color instantiation. Formerly it looked like a
630            tuple.
631    
632            * test/test_color.py (TestColor.test_repr)
633            (TestColor.test_equality, TestColor.test_inequality): New. test
634            some more apects of the Color class
635            (TestTransparent.test_repr, TestTransparent.test_hex)
636            (TestTransparent.test_equality): New. Test cases for the
637            Transparent object.
638    
639    2003-08-04  Jan-Oliver Wagner <[email protected]>
640    
641            * Doc/manual/thuban-manual.xml: a number of small improvements.
642            The resulting file is the version submitted for GREAT-ER II.
643    
644    2003-08-01  Bernhard Herzog  <[email protected]>
645    
646            * Thuban/UI/resource.py, Thuban/UI/projdialog.py,
647            Thuban/UI/join.py, Thuban/UI/classgen.py, Thuban/UI/about.py,
648            Thuban/Model/resource.py: Insert cvs keywords and doc-strings.
649    
650            * Thuban/UI/common.py: Insert cvs keywords and doc-strings.
651            (Color2wxColour, wxColour2Color, ThubanBeginBusyCursor)
652            (ThubanEndBusyCursor): Add doc-strings
653    
654    2003-08-01  Bernhard Herzog  <[email protected]>
655    
656            First step towards PostGIS integration. More abstraction by movin
657            more code from the layer to the shapestore. More methods of the
658            layer are now simply delegated to the equivalent method of the
659            shapestore. The SHAPETYPE_* constants are now in data not in
660            layer.
661    
662            * Thuban/Model/data.py (SHAPETYPE_POLYGON, SHAPETYPE_ARC)
663            (SHAPETYPE_POINT, Shape): Move these constants and classes from
664            layer.py to data.py
665            (ShapefileStore.__init__): More Initialization for the new methods
666            and functionality.
667            (ShapefileStore.ShapeType, ShapefileStore.NumShapes)
668            (ShapefileStore.BoundingBox, ShapefileStore.ShapesInRegion)
669            (ShapefileStore.Shape): New methods that were formerly implemented
670            in the layer.
671            (DerivedShapeStore.Shape, DerivedShapeStore.ShapesInRegion)
672            (DerivedShapeStore.ShapeType, DerivedShapeStore.NumShapes)
673            (DerivedShapeStore.BoundingBox): New. DerivedShapeStore
674            equivalents of the new shape methods. These versions are simply
675            delegated to the original shapstore.
676    
677            * Thuban/Model/layer.py (SHAPETYPE_POLYGON, SHAPETYPE_ARC)
678            (SHAPETYPE_POINT, Shape): Removed. They're now in data.py
679            (Layer.SetShapeStore): Removed the initializatin of instance
680            variables that were needed for the stuff that's now in
681            ShapefileStore
682            (Layer.BoundingBox, Layer.NumShapes, Layer.ShapeType)
683            (Layer.Shape, Layer.ShapesInRegion): Simply delegate to the
684            shapestore.
685    
686            * Thuban/UI/classifier.py, Thuban/UI/renderer.py,
687            Thuban/UI/viewport.py: Import the SHAPETYPE_* constants from data
688            instead of layer.
689    
690            * test/test_shapefilestore.py: New. Tests for ShapefileStore.
691    
692            * test/test_derivedshapestore.py: New. Tests for DerivedShapeStore.
693    
694            * test/test_layer.py: Import the SHAPETYPE_* constants from data
695            instead of layer.
696            (TestLayer.test_derived_store): Remove the test for the exception
697            when instantiating the DerivedShapeStore with an incompatible
698            table which is now in test_derivedshapestore.py. Add some more
699            tests of the layer methods to determine whether they work for a
700            DerivedShapeStore as well.
701    
702    2003-07-31  Jonathan Coles   <[email protected]>
703    
704            * Doc/manual/thuban-manual.xml: Fix the list of required packages
705            by just listing the name and where they can be found.
706    
707    2003-07-31  Frank Koormann   <[email protected]>
708    
709            * Doc/manual/thuban-manual.xml:
710            Changed the screenshot elements to figure.
711            Changed some variablelist elements to itemizedlist.
712            Added section on GDAL formats.
713    
714    2003-07-31  Jonathan Coles   <[email protected]>
715    
716            * Doc/manual/thuban-manual.xml: Added a few sentences about
717            the Fix Border Color option when generating classes.
718    
719    2003-07-30  Jonathan Coles   <[email protected]>
720    
721            * Thuban/Model/classgen.py: Add docstrings. Rename specific
722            Ramp instances to use lower_case_style.
723    
724            * Thuban/UI/classgen.py: Use renamed Ramp instances.
725            
726            * Thuban/UI/classifier.py: Add docstrings.
727    
728            * Thuban/UI/dock.py: Add docstrings.
729    
730            * test/test_classgen.py: Use renamed Ramp instances.
731    
732    2003-07-30  Bernhard Herzog  <[email protected]>
733    
734            * Thuban/Lib/connector.py (QueueingPublisher): Removed. This class
735            was never used in Thuban.
736    
737    2003-07-30  Bernhard Herzog  <[email protected]>
738    
739            * Thuban/UI/join.py (JoinDialog.__init__): Use the table's Title()
740            method directly instead of going through the transient_table
741            method. This faster because transient_table may force the copy of
742            a DBF file into the transient database and setting a table's title
743            doesnm't affect the title of the associated transient table, so
744            this fixes RT #2042
745    
746            * Thuban/UI/main.py (__version__): Don't import the already
747            removed show_exception_dialog.
748    
749    2003-07-29  Jonathan Coles   <[email protected]>
750    
751            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
752            Put back this method and remove the equivalent function since we
753            are setting the exception hook from within this class (OnInit).
754    
755    2003-07-29  Jonathan Coles   <[email protected]>
756    
757            * Doc/manual/images/5_2_custom_ramp.png,
758            Doc/manual/images/5_2_quantiles.png,
759            Doc/manual/images/5_2_uniform_dist.png,
760            Doc/manual/images/5_2_unique_values.png,
761            Doc/manual/images/8_int_error.png: New screen shots.
762    
763            * Doc/manual/thuban-manual.xml: Fixed typos and wording, clarified
764            some points, and added more screen shots.
765    
766    2003-07-29  Bernhard Herzog  <[email protected]>
767    
768            * Thuban/Model/data.py: Remove the now unused import of warnings
769    
770  2003-07-29  Bernhard Herzog  <[email protected]>  2003-07-29  Bernhard Herzog  <[email protected]>
771    
772            * Thuban/Model/data.py (SimpleStore): Removed. This class has been
773            deprecated since before the 0.8 release and isn't used in Thuban
774            itself anymore.
775    
776          * Thuban/Model/transientdb.py: Remove some unnecessary imports          * Thuban/Model/transientdb.py: Remove some unnecessary imports
777    
778  2003-07-29  Jonathan Coles   <[email protected]>  2003-07-29  Jonathan Coles   <[email protected]>

Legend:
Removed from v.1512  
changed lines
  Added in v.1639

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26