/[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 1582 by bh, Tue Aug 12 15:08:40 2003 UTC revision 1665 by bh, Wed Aug 27 15:21:06 2003 UTC
# Line 1  Line 1 
1    2003-08-27  Bernhard Herzog  <[email protected]>
2    
3            As preparation for the 0.9 release, switch thuban files to a
4            non-dev namespace
5    
6            * Thuban/Model/save.py (SessionSaver.write_session): Write files
7            with the http://thuban.intevation.org/dtds/thuban-0.9.dtd
8            namespace
9    
10            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
11            http://thuban.intevation.org/dtds/thuban-0.9.dtd namespace too
12    
13            * test/test_save.py (SaveSessionTest.dtd)
14            (SaveSessionTest.testEmptySession)
15            (SaveSessionTest.testSingleLayer)
16            (SaveSessionTest.testLayerProjection)
17            (SaveSessionTest.testRasterLayer)
18            (SaveSessionTest.testClassifiedLayer)
19            (SaveSessionTest.test_dbf_table)
20            (SaveSessionTest.test_joined_table)
21            (SaveSessionTest.test_save_postgis): Update for new namespace
22    
23            * test/test_load.py (LoadSessionTest.dtd, TestSingleLayer)
24            (TestLayerVisibility.file_contents, TestLabels.file_contents)
25            (TestLayerProjection.file_contents)
26            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
27            (TestPostGISLayer.file_contents)
28            (TestPostGISLayerPassword.file_contents)
29            (TestLoadError.file_contents, TestLoadError.test): Update for new
30            namespace
31    
32    2003-08-27  Bernhard Herzog  <[email protected]>
33    
34            Make the table interface distinguish between row ids (an integer
35            that uniquely identifies a row) and row ordinals (a simple row
36            count from 0 to NumRows() - 1)
37    
38            * Thuban/Model/postgisdb.py (PostGISTable.RowIdToOrdinal)
39            (PostGISTable.RowOrdinalToId): New methods to conver between row
40            ids and row ordinals
41            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue): New keyword
42            parameter row_is_ordinal to indicate whether the row parameter is
43            the row id or the ordinal
44    
45            * Thuban/Model/transientdb.py (TransientTableBase.RowIdToOrdinal)
46            (TransientTableBase.RowOrdinalToId)
47            (AutoTransientTable.RowIdToOrdinal)
48            (AutoTransientTable.RowOrdinalToId): Same new methods as in
49            PostGISTable.
50            (TransientTableBase.ReadRowAsDict, TransientTableBase.ReadValue)
51            (AutoTransientTable.ReadRowAsDict, AutoTransientTable.ReadValue):
52            Same new parameter as in PostGISTable.
53    
54            * Thuban/Model/table.py (DBFTable.RowIdToOrdinal)
55            (DBFTable.RowOrdinalToId, MemoryTable.RowIdToOrdinal)
56            (MemoryTable.RowOrdinalToId): Same new methods as in PostGISTable.
57            (DBFTable.ReadValue, DBFTable.ReadRowAsDict)
58            (MemoryTable.ReadValue, MemoryTable.ReadRowAsDict): Same new
59            parameter as in PostGISTable.
60    
61            * Thuban/UI/tableview.py (DataTable.RowIdToOrdinal)
62            (DataTable.RowOrdinalToId): New methods to convert between row ids
63            and row ordinals.
64            (TableGrid.SelectRowById): New method to select a row based on its
65            ID as opposed to its ordinal
66            (DataTable.GetValue, TableGrid.OnRangeSelect)
67            (TableGrid.OnSelectCell, LayerTableGrid.select_shapes)
68            (QueryTableFrame.OnQuery, QueryTableFrame.get_selected)
69            (LayerTableFrame.__init__): Convert between row ids and row
70            ordinals as appropriate
71    
72            * test/postgissupport.py (PostGISDatabase.__init__): Add
73            doc-string.
74            (PostGISDatabase.initdb): The optional third item in a tuple in
75            tables is now a (key, value) list with additional arguments to
76            pass to upload_shapefile
77            (upload_shapefile): New parameter gid_offset to allow gids that
78            are not the same as the shapeids in the shapefile
79            (PostgreSQLServer.get_default_static_data_db): Use the new
80            gid_offset to make the gids in landmarks 1000 higher than the
81            shapeids in the shapefile
82    
83            * test/test_viewport.py
84            (TestViewportWithPostGIS.test_find_shape_at_point): Adapt to the
85            new shapeids in the landmarks table
86    
87            * test/test_transientdb.py
88            (TestTransientTable.run_iceland_political_tests)
89            (TestTransientTable.test_transient_joined_table): Add tests for
90            the new table methods and new keywords arguments.
91    
92            * test/test_postgis_db.py
93            (TestPostGISTable.test_read_row_as_dict_row_count_mode)
94            (TestPostGISTable.test_read_value_row_count_mode)
95            (TestPostGISTable.test_row_id_to_ordinal)
96            (TestPostGISTable.test_row_oridnal_to_id): New test for the new
97            table methods and the new arguments
98            (TestPostGISShapestorePoint.test_shapes_in_region)
99            (TestPostGISShapestorePoint.test_shape_raw_data)
100            (TestPostGISShapestorePoint.test_shape_points)
101            (TestPostGISShapestorePoint.test_shape_shapeid)
102            (TestPostGISShapestorePoint.test_all_shapes)
103            (TestPostGISTable.test_simple_query)
104            (TestPostGISTable.test_simple_query)
105            (TestPostGISTable.test_simple_query)
106            (TestPostGISTable.test_read_value)
107            (TestPostGISTable.test_read_row_as_dict): Adapt to the new
108            shapeids in the landmarks table
109    
110            * test/test_memory_table.py
111            (TestMemoryTable.test_read_row_as_dict_row_count_mode)
112            (TestMemoryTable.test_read_value_row_count_mode)
113            (TestMemoryTable.test_row_id_to_ordinal)
114            (TestMemoryTable.test_row_oridnal_to_id): New test for the new
115            table methods and the new arguments
116    
117            * test/test_dbf_table.py
118            (TestDBFTable.test_read_row_as_dict_row_count_mode)
119            (TestDBFTable.test_read_value_row_count_mode)
120            (TestDBFTable.test_row_id_to_ordinal)
121            (TestDBFTable.test_row_oridnal_to_id): New test for the new table
122            methods and the new arguments
123    
124    2003-08-26  Bernhard Herzog  <[email protected]>
125    
126            * Thuban/Model/postgisdb.py (PostGISShapeStore.BoundingBox): Use a
127            more postgis specific but much faster method to get the bounding
128            box
129    
130    2003-08-26  Bernhard Herzog  <[email protected]>
131    
132            * Thuban/Model/postgisdb.py (PostGISTable.Title)
133            (PostGISShapeStore.AllShapes): Add these missing methods.
134            (PostGISShapeStore.ShapesInRegion): No need to raise
135            StopIteration. We can simply return
136    
137            * test/test_postgis_db.py (TestPostGISTable.test_title)
138            (TestPostGISShapestorePoint.test_all_shapes): New tests for the
139            new methods
140    
141    2003-08-25  Bernhard Herzog  <[email protected]>
142    
143            * Thuban/Model/postgisdb.py (shapetype_map): Add MUTLIPOLYGON.
144    
145            * test/test_postgis_db.py (PolygonTests): New class containing
146            those tests from TestPostGISShapestorePolygon that can also be
147            used to test MUTLIPOLYGON tables
148            (TestPostGISShapestorePolygon): Most tests are now in PolygonTests
149            so derive from that
150            (TestPostGISShapestoreMultiPolygon): New class with tests for
151            MUTLIPOLYGON tables
152    
153            * test/postgissupport.py (PostGISDatabase.initdb): Allow the
154            tables argument to have tuples with three items to override the
155            WKT type used.
156            (PostgreSQLServer.get_default_static_data_db): Use the above to
157            create a polygon table with MUTLIPOLYGONs
158            (point_to_wkt, coords_to_point, polygon_to_wkt, coords_to_polygon)
159            (arc_to_wkt, coords_to_multilinestring): Rename from *_to_wkt to
160            coords_to*
161            (coords_to_multipolygon): New. Convert to MUTLIPOLYGON
162            (wkt_converter): New. Map WKT types to converters
163            (upload_shapefile): New parameter force_wkt_type to use a
164            different WKT type than the default
165    
166    2003-08-25  Bernhard Herzog  <[email protected]>
167    
168            * Thuban/UI/application.py
169            (ThubanApplication.run_db_param_dialog): New. Suitable as a
170            db_connection_callback. Main difference is that the dialog run
171            from this method doesn't have a parent so it can be used even when
172            there is no main window
173            (ThubanApplication.OpenSession): Use self.run_db_param_dialog if
174            no db_connection_callback was given. This way the dialog pops up
175            even when the .thuban file was given as a command line parameter.
176    
177    2003-08-25  Bernhard Herzog  <[email protected]>
178    
179            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Release the the mouse
180            before calling MouseLeftUp. MouseLeftUp may pop up modal dialogs
181            which leads to an effectively frozen X session because the user
182            can only interact with the dialog but the mouse is still grabbed
183            by the canvas.
184            Also, call the tool's Hide method before MouseLeftUp because
185            MouseLeftUp may change the tool's coordinates.
186    
187    2003-08-25  Bernhard Herzog  <[email protected]>
188    
189            * Thuban/UI/application.py (ThubanApplication.OpenSession): Catch
190            LoadCancelled exceptions and handle them by returning immediately.
191    
192    2003-08-25  Bernhard Herzog  <[email protected]>
193    
194            GUI part of loading sessions with postgis connections which may
195            require user interaction to get passwords or updated parameters
196    
197            * Thuban/UI/dbdialog.py (DBDialog): Reimplement to make it look a
198            bit nucer and be more generic.
199            (DBFrame.OnAdd): Adapt to new DBDialog interface
200    
201            * Thuban/UI/application.py (ThubanApplication.OpenSession): New
202            optional parameter db_connection_callback which is passed to
203            load_session.
204    
205            * Thuban/UI/mainwindow.py (MainWindow.run_db_param_dialog): New.
206            Suitable as a db_connection_callback
207            (MainWindow.OpenSession): Use self.run_db_param_dialog as the
208            db_connection_callback of the application's OpenSession method
209    
210    
211    2003-08-25  Bernhard Herzog  <[email protected]>
212    
213            Basic loading of sessions containing postgis connections:
214    
215            * Thuban/Model/load.py (LoadError): Add doc-string
216            (LoadCancelled): New exception class to indicate a cancelled load
217            (SessionLoader.__init__): Add the db_connection_callback parameter
218            which will be used by the loader to get updated parameters and a
219            password for a database connection
220            (SessionLoader.__init__): Add the new XML elements to the
221            dispatchers dictionary
222            (SessionLoader.check_attrs): Two new conversions, ascii to convert
223            to a byte-string object and idref as a generic id reference
224            (SessionLoader.start_dbconnection)
225            (SessionLoader.start_dbshapesource): New. Handlers for the new XML
226            elements
227            (load_session): Add the db_connection_callback to pass through the
228            SessionLoader
229    
230            * test/test_load.py (TestPostGISLayer, TestPostGISLayerPassword):
231            New classes to test loading of sessions with postgis database
232            connections.
233    
234    2003-08-25  Bernhard Herzog  <[email protected]>
235    
236            * Thuban/UI/mainwindow.py (__ThubanVersion__): Remove this and
237            replace it and the comment with __BuildDate__ by the Source: and
238            Id: cvs keywords as used in the other files.
239    
240    2003-08-25  Bernhard Herzog  <[email protected]>
241    
242            * Thuban/Model/load.py (SessionLoader.check_attrs): Raise a
243            LoadError when a required attribute is missing. The code used to
244            be commented out for some reason, but probably should have been
245            active.
246    
247            * test/test_load.py (TestLoadError.test): Test the message in the
248            LoadError too to make sure it really is about the missing
249            attribute
250    
251    2003-08-22  Bernhard Herzog  <[email protected]>
252    
253            * test/test_save.py (SaveSessionTest.test_dbf_table)
254            (SaveSessionTest.test_joined_table): Add XML validation tests.
255    
256    2003-08-22  Bernhard Herzog  <[email protected]>
257    
258            Implement saving a session with a postgis connection
259    
260            * Resources/XML/thuban-0.9.dtd (dbconnection, dbshapesource) New
261            elements for database connections and shapestores using db
262            connections
263            (session): Add the dbconnections to the content model
264    
265            * Thuban/Model/save.py (SessionSaver.write_db_connections): New.
266            Write the db connections
267            (SessionSaver.write_session): Call write_db_connections to write
268            the connection before the data sources
269            (SessionSaver.write_data_containers): Handle postgis shapestores
270    
271            * test/test_save.py (SaveSessionTest.thubanids)
272            (SaveSessionTest.thubanidrefs): Update for new DTD
273            (SaveSessionTest.test_save_postgis): New. Test saving a session
274            with postgis connections
275    
276            * Thuban/Model/postgisdb.py (PostGISTable.DBConnection)
277            (PostGISTable.TableName): New accessor methods for the connection
278            and table name
279    
280            * test/test_postgis_db.py (TestPostGISTable.test_dbconn)
281            (TestPostGISTable.test_dbname): New methods to test the new
282            PostGISConnection methods
283    
284    2003-08-22  Bernhard Herzog  <[email protected]>
285    
286            * Thuban/Model/postgisdb.py (ConnectionError): New exception class
287            for exceptions occurring when establishing a Database connection
288            (PostGISConnection.connect): Catch psycopg.OperationalError during
289            connects and raise ConnectionError.
290    
291            * test/test_postgis_db.py (TestPostgisDBExceptions): New class for
292            tests for database exceptions
293    
294    2003-08-22  Bernhard Herzog  <[email protected]>
295    
296            Prepare the test suite for tests with required authentication
297    
298            * test/postgissupport.py (PostgreSQLServer.__init__): Add instance
299            variables with two predefined users/passwords, one for the admin
300            and one for a non-privileged user.
301            (PostgreSQLServer.createdb): Pass the admin name to initdb and add
302            the non-privileged user to the database and set the admin password
303            (PostgreSQLServer.wait_for_postmaster): Use the admin user name.
304            Better error reporting
305            (PostgreSQLServer.connection_params)
306            (PostgreSQLServer.connection_string): New methods to return
307            information about how to connect to the server
308            (PostgreSQLServer.execute_sql): New. Convenience method to execute
309            SQL statements
310            (PostgreSQLServer.require_authentication): Toggle whether the
311            server requires authentication
312            (PostgreSQLServer.create_user, PostgreSQLServer.alter_user): New.
313            Add or alter users
314            (PostGISDatabase.initdb): Pass the admin name one the
315            subprocesses' command lines. Grant select rights on
316            geometry_columns to everybody.
317            (upload_shapefile): Use the admin name and password when
318            connecting. Grant select rights on the new table to everybody.
319    
320            * test/test_viewport.py (TestViewportWithPostGIS.setUp): Use the
321            server's new methods to get the connection parameters.
322    
323            * test/test_postgis_session.py (TestSessionWithPostGIS.setUp)
324            (TestSessionWithPostGIS.test_remove_dbconn_exception): Use the
325            server's new methods to get the connection parameters.
326    
327            * test/test_postgis_db.py
328            (TestPostGISConnection.test_gis_tables_empty)
329            (TestPostGISConnection.test_gis_tables_non_empty)
330            (PostGISStaticTests.setUp): Use the server's new methods to get
331            the connection parameters.
332    
333    2003-08-22  Bernhard Herzog  <[email protected]>
334    
335            * Thuban/UI/about.py (About.__init__): Add the psycopg version.
336    
337            * Thuban/version.py: Add psycopg version
338    
339            * Thuban/Model/postgisdb.py (psycopg_version): New. Return the
340            version of the psycopg module
341    
342    2003-08-22  Bernhard Herzog  <[email protected]>
343    
344            * Thuban/UI/dbdialog.py (DBPwdDlg): Removed because it's not used.
345            (DBFrame.OnEdit): Removed because it's not used and wouldn't work
346            at the moment. The functionality should probably be implemented
347            some time, though.
348            (DBFrame.OnRemove): Display a message if the connection can't be
349            removed because it's still in use.
350    
351    2003-08-22  Jan-Oliver Wagner <[email protected]>
352    
353            * Thuban/UI/about.py (About.__init__): split up the huge about
354            text into elements/lists for easier translation. This fixes bug
355            https://intevation.de/rt/webrt?serial_num=2058
356            Also, made some forgotten string available for the i18n.
357    
358    2003-08-21  Bernhard Herzog  <[email protected]>
359    
360            Make postgis support really optional including insensitive menu
361            items.
362    
363            * Thuban/Model/postgisdb.py (has_postgis_support): New. Return
364            whether the postgis is supported.
365    
366            * Thuban/UI/dbdialog.py: Put the psycopg import into try..except
367            to make postgis support optional
368    
369            * Thuban/UI/mainwindow.py (_has_postgis_support): New. Context
370            version of Thuban.Model.postgisdb.has_postgis_support
371            (database_management command): Make it only sensitive if postgis
372            is supported.
373    
374    2003-08-21  Jan-Oliver Wagner <[email protected]>
375    
376            * Doc/manual/thuban-manual.xml: Added CVS revision for rev-history.
377            (section Adding and Removing Layers): Added text and described
378            multi-selection.
379            (chapter Extensions): New.
380    
381    2003-08-21  Jan-Oliver Wagner <[email protected]>
382    
383            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Changed dialog
384            settings to allow multiple files to load into the map.
385            Also reduced selection to *.shp as a default.
386    
387    2003-08-20  Bernhard Herzog  <[email protected]>
388    
389            Add dialogs and commands to open database connections and add
390            database layers.
391    
392            * Thuban/UI/mainwindow.py (MainWindow.DatabaseManagement): New
393            method to open the database connection management dialog
394            (MainWindow.AddDBLayer): New method to add a layer from a database
395            (_has_dbconnections): New helper function to use for sensitivity
396            (database_management command, layer_add_db command): New commands
397            that call the above new methods.
398            (main_menu): Add the new commands to the menu.
399    
400            * Thuban/Model/postgisdb.py (PostGISConnection.__init__)
401            (PostGISConnection.connect): Establish the actual connection in a
402            separate method and call it in __init__. This makes it easier to
403            override the behavior in test cases
404            (PostGISConnection.BriefDescription): New method to return a brief
405            description for use in dialogs.
406    
407            * test/test_postgis_db.py (NonConnection): DB connection that
408            doesn't actually connect
409            (TestBriefDescription): New class with tests for the new
410            BriefDescription method
411    
412    2003-08-19  Jan-Oliver Wagner <[email protected]>
413    
414            Moved anything from extensions to libraries.
415    
416            * libraries: New.
417    
418            * libraries/ pyprojection, pyshapelib, shapelib, thuban: New.
419    
420            * libraries/pyprojection/ LICENSE, MANIFEST.in, Projection.i,
421            Projection.py, Projection_wrap.c, setup.py, swighelp.txt: These files have
422            been moved here from thuban/extensions/pyprojection/
423            See there in the Attic for the older history.
424    
425            * libraries/pyshapelib/ COPYING, ChangeLog, NEWS, README, dbflib.i,
426            dbflib.py, dbflib_wrap.c, pyshapelib_api.h, pytest.py, setup.py,
427            shapelib.i, shapelib.py, shapelib_wrap.c, shptreemodule.c: These files
428            have been moved here from thuban/extensions/pyshapelib/
429            See there in the Attic for the older history.
430    
431            * libraries/shapelib/ dbfopen.c, shapefil.h, shpopen.c, shptree.c: These
432            files have been moved here from thuban/extensions/shapelib/
433            See there in the Attic for the older history.
434    
435            * libraries/thuban/ bmpdataset.cpp, cpl_mfile.cpp, cpl_mfile.h,
436            gdalwarp.cpp, wxproj.cpp: These files have been moved here from
437            thuban/extensions/thuban/
438            See there in the Attic for the older history.
439    
440            * MANIFEST.in, setup.cfg, setup.py: renamed extensions to libraries.
441    
442            * extensions/thuban/ bmpdataset.cpp, cpl_mfile.cpp, cpl_mfile.h,
443            gdalwarp.cpp, wxproj.cpp: Moved to libraries/thuban.
444    
445            * extensions/shapelib/ dbfopen.c, shapefil.h, shpopen.c, shptree.c:
446            Moved to libraries/shapelib.
447    
448            * extensions/pyshapelib/ COPYING, NEWS, dbflib.py, pytest.py,
449            shapelib.py, README, dbflib_wrap.c, setup.py, shapelib_wrap.c,
450            ChangeLog, dbflib.i, pyshapelib_api.h, shapelib.i, shptreemodule.c:
451            Moved to libraries/pyshapelib.
452    
453            * extensions/pyprojection/ MANIFEST.in, Projection.py, setup.py,
454            LICENSE, Projection.i, Projection_wrap.c, swighelp.txt:
455            Moved to libraries/pyprojection.
456    
457            * extensions/ pyprojection, pyshapelib, shapelib, thuban: Removed.
458    
459            * extensions: Removed.
460    
461    2003-08-19  Bernhard Herzog  <[email protected]>
462    
463            * test/test_viewport.py (ViewPortTest): We don't use the
464            facilities of FileTestMixin so don't derive from it.
465            (TestViewportWithPostGIS): New class with tests for using a
466            viewport on a map with postgis layers.
467    
468    2003-08-19  Bernhard Herzog  <[email protected]>
469    
470            Add the db connection management to the session.
471    
472            * Thuban/Model/session.py (Session.__init__): New instance
473            variable db_connections
474            (Session.AddDBConnection, Session.DBConnections)
475            (Session.HasDBConnections, Session.CanRemoveDBConnection)
476            (Session.RemoveDBConnection): New methods to manage and query the
477            db connections managed by the session
478            (Session.OpenDBShapeStore): New method to open a shapestore from a
479            db connection
480    
481            * Thuban/Model/messages.py (DBCONN_REMOVED, DBCONN_ADDED): New
482            messages for the db connection handling in the session
483    
484            * test/test_postgis_session.py: New. test cases for the session's
485            db connection handling with postgis connections
486    
487    2003-08-19  Bernhard Herzog  <[email protected]>
488    
489            Add very basic postgis database support and the corresponding test
490            cases. The test cases require a PostgreSQL + postgis installation
491            but no existing database. The database will be created
492            automatically by the test cases
493    
494            * test/README: Add note about skipped tests and the requirements
495            of the postgis tests.
496    
497            * Thuban/Model/postgisdb.py: New. Basic postgis database support.
498    
499            * test/test_postgis_db.py: New. Test cases for the postgis
500            support.
501    
502            * Thuban/Model/wellknowntext.py: New. Parser for well-known-text
503            format
504    
505            * test/test_wellknowntext.py: New. Test cases for the
506            wellknowntext parser
507    
508            * test/postgissupport.py: New. Support module for tests involving
509            a postgis database.
510    
511            * test/support.py (execute_as_testsuite): Shut down the postmaster
512            if it's still running after the tests
513    
514            * Thuban/Model/data.py (RAW_WKT): New constant for raw data in
515            well known text format
516    
517    2003-08-19  Jan-Oliver Wagner <[email protected]>
518    
519            * Examples/simple_extensions/hello_world.py: New. Raises a Hello World
520            message dialog.
521    
522    2003-08-18  Bernhard Herzog  <[email protected]>
523    
524            * test/support.py (ThubanTestResult.printErrors): Indent the
525            reason for the skips in the output to make it a bit more readable.
526            (execute_as_testsuite): New helper function to run a test suite
527            and print some more information.
528            (run_tests): Use execute_as_testsuite to run the tests
529    
530            * test/runtests.py (main): Use execute_as_testsuite to run the
531            tests
532    
533    2003-08-18  Bernhard Herzog  <[email protected]>
534    
535            Fix some bugs in Thuban and the test suite that were uncovered by
536            changes introduced in Python 2.3:
537    
538            * Thuban/Model/table.py (DBFTable.__init__): Make sure the
539            filename is an absolute name
540    
541            * Thuban/Model/layer.py (RasterLayer.__init__): Make sure the
542            filename is an absolute name
543    
544            * test/test_save.py (SaveSessionTest.testRasterLayer): Use a
545            unique filename to save to and use the correct relative filename
546            in the expected output.
547            (SaveSessionTest.test_dbf_table): Use the correct relative
548            filename in the expected output.
549    
550            * test/test_layer.py (TestLayer.test_raster_layer): Update the
551            test to check whether the filename is absolute.
552    
553    2003-08-18  Jan-Oliver Wagner <[email protected]>
554    
555            * Thuban/UI/about.py (About.__init__): Added Silke Reimer.
556    
557    2003-08-15  Bernhard Herzog  <[email protected]>
558    
559            Change the way shapes are returned by a shape store. The
560            ShapesInRegion method returns an iterator over actual shape
561            objects instead of a list of shape ids.
562    
563            * Thuban/Model/data.py (ShapefileShape.ShapeID): New. Return shape
564            id.
565            (ShapefileStore.ShapesInRegion): Return an iterator over the
566            shapes which yields shape objects instead of returning a list of
567            shape ids
568            (ShapefileStore.AllShapes): New. Return an iterator over all
569            shapes in the shape store
570            (DerivedShapeStore.AllShapes): New. Like in ShapefileStore
571    
572            * Thuban/Model/layer.py (Layer.ShapesInRegion): Update
573            doc-string.
574    
575            * Thuban/UI/baserenderer.py
576            (BaseRenderer.layer_ids, BaseRenderer.layer_shapes): Rename to
577            layer_shapes and make it return an iterator containg shapes
578            instead of a list of ids.
579            (BaseRenderer.draw_shape_layer): Update doc-string; Adapt to
580            layer_shapes() change
581    
582            * Thuban/UI/renderer.py (ScreenRenderer.layer_ids)
583            (ScreenRenderer.layer_shapes): Rename as in BaseRenderer
584    
585            * Thuban/UI/viewport.py (ViewPort._find_shape_in_layer): Adapt to
586            changes in the ShapesInRegion return value.
587            (ViewPort._get_hit_tester): Remove commented out code
588    
589            * test/mockgeo.py (SimpleShapeStore.ShapesInRegion): Adapt to the
590            new return value.
591            (SimpleShapeStore.AllShapes): New. Implement this method too.
592    
593            * test/test_layer.py (TestLayer.test_arc_layer)
594            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
595            (TestLayer.test_point_layer_with_projection)
596            (TestLayer.test_derived_store): Adapt to changes in the
597            ShapesInRegion return value.
598    
599            * test/test_shapefilestore.py
600            (TestShapefileStoreArc.test_shapes_in_region)
601            (TestShapefileStorePolygon.test_shapes_in_region)
602            (TestShapefileStorePoint.test_shapes_in_region): Adapt to changes
603            in the ShapesInRegion return value.
604            (TestShapefileStorePoint.test_all_shapes)
605            (TestShapefileStoreArc.test_shape_shapeid): New tests for the new
606            methods
607    
608            * test/test_derivedshapestore.py
609            (TestDerivedShapeStore.test_shapes_in_region): Adapt to changes in
610            the ShapesInRegion return value.
611            (TestDerivedShapeStore.test_all_shapes)
612            (TestDerivedShapeStore.test_shape_shapeid): New tests for the new
613            methods
614    
615    2003-08-15  Bernhard Herzog  <[email protected]>
616    
617            Make the renderers deal correctly with raw vs. python level
618            representation of shape geometries
619    
620            * Thuban/UI/baserenderer.py (BaseRenderer.low_level_renderer):
621            Return a flag useraw in addition to the callable and the parameter
622            to indicate whether the callable can deal with the raw shape data
623            or uses the higher level python lists of coordinates. The callable
624            now should accept either the raw data or the return value of the
625            shape's Points() method.
626            (BaseRenderer.draw_shape_layer): Adapt to the low_level_renderer
627            change
628            (BaseRenderer.projected_points): Instead of the shape id use the
629            points list as parameter.
630            (BaseRenderer.draw_polygon_shape, BaseRenderer.draw_arc_shape)
631            (BaseRenderer.draw_point_shape): Adapt to projected_points()
632            change and accept the points list as parameter instead of the
633            shape id.
634    
635            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Return
636            the useraw flag as required by the BaseRenderer
637            (ScreenRenderer.draw_shape_layer): Adapt to low-level renderer
638            changes.
639    
640            * test/test_baserenderer.py
641            (TestBaseRenderer.test_point_with_classification): New test for
642            rendering a map with classifications.
643    
644    2003-08-15  Bernhard Herzog  <[email protected]>
645    
646            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
647            (ViewPort._find_shape_in_layer, ViewPort._find_shape_in_layer)
648            (ViewPort._get_hit_tester, ViewPort.projected_points)
649            (ViewPort._hit_point, ViewPort._hit_arc, ViewPort._hit_polygon)
650            (ViewPort._find_label_at): Split the find_shape_at method into
651            several new methods and use the functions in the hit-test module.
652    
653            * Thuban/UI/hittest.py: New module with Python-level hit-testing
654            functions
655    
656            * test/test_hittest.py: New. Test for the new hittest module
657    
658    2003-08-15  Bernhard Herzog  <[email protected]>
659    
660            * Thuban/Model/layer.py (Layer.ShapesInRegion): Apply the layer
661            projection to all corners of the bounding box to get a better
662            approximation of the projected bounding box
663    
664            * test/test_layer.py (TestLayer.test_point_layer_with_projection):
665            New. Test coordinate handling of a layer with a projection.
666            Catches the bug fixed in Layer.ShapesInRegion
667    
668    2003-08-15  Bernhard Herzog  <[email protected]>
669    
670            Move some of the mock objects in test_baserenderer into their own
671            module so they can easily be used from other tests
672    
673            * test/mockgeo.py: New test helper module with some mock objects
674            for geometry related things like shapes, shapestores and
675            projections.
676    
677            * test/test_mockgeo.py: New. Tests for the new helper module
678    
679            * test/test_baserenderer.py: Some of the mock-objects are in
680            mockgeo now.
681    
682    2003-08-12  Jan-Oliver Wagner <[email protected]>
683    
684            * Thuban/UI/about.py (About.__init__): Added Bj�rn Broscheit.
685    
686  2003-08-12  Bernhard Herzog  <[email protected]>  2003-08-12  Bernhard Herzog  <[email protected]>
687    
688          * po/de.po: New. German translations by Bjoern Broscheit          * po/de.po: New. German translations by Bjoern Broscheit

Legend:
Removed from v.1582  
changed lines
  Added in v.1665

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26