/[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 1580 by bh, Tue Aug 12 12:34:19 2003 UTC revision 1814 by bh, Mon Oct 13 14:01:53 2003 UTC
# Line 1  Line 1 
1    2003-10-13  Bernhard Herzog  <[email protected]>
2    
3            * test/test_proj.py: Some more refactoring of the test cases
4            (ProjFileTest): New base class for the proj file tests.
5            (TestProjFile): Derive from ProjFileTest
6            (TestProjFile.test_read_unreadable_file)
7            (TestProjFile.test_read_empty_file, TestProjFile.doTestRead): Use
8            the new filename method to get a unique filename
9            (TestProjFile.doTestWrite, TestProjFile.testWrite): Removed.
10            (WriteProjFileTests): New class for proj file write tests.
11            Contains the write test that were in TestProjFile originally.
12    
13    2003-10-13  Bernhard Herzog  <[email protected]>
14    
15            * test/test_proj.py (TestProjFile.testRead)
16            (TestProjFile.test_read_non_existing_file)
17            (TestProjFile.test_read_unreadable_file)
18            (TestProjFile.test_read_empty_file): Split into several methods.
19    
20    2003-10-10  Bernhard Herzog  <[email protected]>
21    
22            * Thuban/UI/sizers.py: New file with custom sizers.
23    
24            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): Instantiate
25            all projection type specific panels and put them into a
26            NotebookLikeSizer. This way the dialog doesn't change its size
27            when a different projection is selected
28            (ProjFrame.__init__): Rename projection_panels
29            projection_panel_defs and reuse projection_panels for a list of
30            the instantiated panels.
31            (ProjFrame._show_proj_panel, ProjFrame.__DoOnProjAvail)
32            (ProjFrame.__DoOnProjChoice): Changes due to the new handling of
33            the panels
34            (UnknownProjPanel._DoLayout): Place the newlines in the message
35            differently to make the panel narrower.
36            (TMPanel._DoLayout): Layout the parameters in one column.
37    
38    2003-10-10  Bernhard Herzog  <[email protected]>
39    
40            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): New method
41            that contains all the setup for the dialog's widgets, layout and
42            event handling.
43            (__): Call build_dialog to build the dialog.
44            (ProjFrame.__set_properties, ProjFrame.__do_layout): Removed.
45            Their functionality is now in build_dialog
46            (ProjFrame.__VerifyButtons, ProjFrame.__VerifyButtons)
47            (ProjFrame.__DoOnProjAvail, ProjFrame.__DoOnProjAvail)
48            (ProjFrame.__DoOnProjChoice): Small updates due to slightly
49            different widget names and hierarchy introduced with build_dialog.
50    
51    2003-10-10  Bernhard Herzog  <[email protected]>
52    
53            * README: Fix typo.
54    
55    2003-10-09  Bernhard Herzog  <[email protected]>
56    
57            * Thuban/Model/proj.py (ProjFile.Add): Do not check whether the
58            projection is already in the list. This is *a lot* faster when
59            loading files with hundreds of projections since it saves a linear
60            search. OTOH this will allow adding the same projection to the
61            user.proj file multiple times in the projection dialog but we'll
62            deal with that later
63    
64    2003-10-09  Jan-Oliver Wagner <[email protected]>
65    
66            * devtools: New. Directory for developer tools that are not intended
67            for the regular user.
68    
69            * devtools/create_epsg.py: New. Convert the epsg file of proj into
70            a python .proj file.
71    
72    2003-10-09  Bernhard Herzog  <[email protected]>
73    
74            * test/test_proj.py
75            (TestProjection.test_get_parameter_without_equals_sign): New. Test
76            whether GetParameter handles parameters without "=" sign correctly
77    
78            * Thuban/Model/proj.py (Projection.GetParameter): Handle
79            parameters that do not contain a "=". Update the doc-string
80    
81    2003-10-08  Bernhard Herzog  <[email protected]>
82    
83            * Thuban/UI/projdialog.py (ProjFrame.__set_properties): Remove the
84            length limit on the projname text control
85    
86    2003-10-08  Bernhard Herzog  <[email protected]>
87    
88            * test/test_proj.py (TestProjection.test_get_projection_units_geo)
89            (TestProjection.test_get_projection_units_normal): New. Tests for
90            the Projection.GetProjectedUnits method
91    
92    2003-10-08  Jan-Oliver Wagner <[email protected]>
93    
94            * Thuban/Model/resource.py (get_user_proj_file): small bug-fix:
95            Added missing 'val' parameter.
96    
97    2003-10-08  Bernhard Herzog  <[email protected]>
98    
99            * Thuban/UI/projdialog.py (ProjFrame.__DoOnProjAvail): When the
100            projection type of the currently selected projection is not known,
101            i.e. there's no panel for it, use the UnknownProjPanel
102            (ProjFrame.__DoOnProjChoice, ProjFrame._show_proj_panel): Split
103            the actual replacing of the proj panel into the new method
104            _show_proj_panel.
105            (UnknownProjPanel): Add doc-string.
106            (UnknownProjPanel._DoLayout): Insert a newline into the text so
107            that the panel is not so wide.
108    
109    2003-10-08  Bernhard Herzog  <[email protected]>
110    
111            * Thuban/Model/resource.py (read_proj_file): Return the warnings
112            too. Update the doc-string
113            (get_proj_files): Removed. It wasn't used anywhere
114            (get_system_proj_files, get_system_proj_file): Rename to
115            get_system_proj_file and return the ProjFile object and not a list
116            of ProjFile objects. Update the callers.
117            (get_user_proj_files, get_user_proj_file): Rename to
118            get_user_proj_file return the ProjFile object and not a list of
119            ProjFile objects. Update the callers.
120            (ProjFileReader.__init__): New instance variable for the warnings.
121            Rename the __pf ivar to projfile. Update the methods referring to
122            __pf
123            (ProjFileReader.end_projection): Catch any errors raised when
124            instantiating the projection and record that as an error. The
125            projection will not be in the final ProjFile object.
126            (ProjFileReader.GetWarnings): New method to return the warnings.
127    
128            * Thuban/UI/projdialog.py (ProjFrame.show_warnings): New method to
129            show the warnings from the projfile reader
130            (ProjFrame._OnImport): Deal with any warnings returned by
131            read_proj_file
132            (ProjFrame.__FillAvailList): Deal with any warnings returned by
133            get_system_proj_file or get_user_proj_file.
134    
135            * test/test_proj.py (TestProjFile.doTestRead): Check the warnings.
136            (TestProjFileWithInvalidParameters.file_contents): New test cases
137            to test whether read_proj_file handles invalid projection
138            parameters correctly
139            (TestProjFile.test_get_system_proj_file): New. Simple test for
140            resource.get_system_proj_file
141    
142    2003-10-07  Bernhard Herzog  <[email protected]>
143    
144            * test/test_derivedshapestore.py
145            (TestDerivedShapeStoreExceptions.tearDown): Clear the session
146            properly so that the temporary directories get deleted correctly
147    
148    2003-10-06  Bernhard Herzog  <[email protected]>
149    
150            Handle the title changes in a proper MVC way.
151    
152            * Thuban/UI/mainwindow.py (MainWindow.__init__): Subscribe to the
153            canvas' TITLE_CHANGED messages
154            (MainWindow.update_title): New. Update the main window's title
155            (MainWindow.__SetTitle): Removed. Use update_title instead.
156            (MainWindow.SetMap): Use update_title instead of __SetTitle
157            (MainWindow.RenameMap): Do change the window title explicitly
158            here. That's handled in a proper MVC way now.
159            (MainWindow.title_changed): New. Subscriber for the TITLE_CHANGED
160            messages
161    
162            * Thuban/Lib/connector.py (Conduit): New class to help classes
163            that forward messages
164    
165            * Thuban/UI/viewport.py: Forward the map's TITLE_CHANGED messages
166            (ViewPort): Derive from Conduit instead of Publisher
167            (ViewPort.Subscribe, ViewPort.Unsubscribe): Use the new base class
168            when calling the inherited versions
169            (ViewPort._subscribe_map, ViewPort._unsubscribe_map): New helper
170            methods to subscribe and unsubscribe map messages
171            (ViewPort.SetMap, ViewPort.Destroy): Use the new helper methods to
172            handle the map subscriptions
173            (ViewPort.Map, ViewPort.map_projection_changed)
174            (ViewPort.layer_projection_changed): Add or update doc-strings
175    
176            * test/test_connector.py (TestPublisher.test_issue_simple): Fix
177            typo
178            (MyConduit): Helper class for the Conduit test.
179            (TestConduit): Test cases for Conduit
180    
181            * test/test_connector.py: Use support.run_tests as main.
182    
183            * test/test_viewport.py (ViewPortTest.setUp): Also subscribe to
184            the TITLE_CHANGED messages
185            (ViewPortTest.test_forwarding_title_changed): New test to check
186            whether the viewport forwards the map's TITLE_CHANGED messages
187            (TestViewportWithPostGIS.tearDown): Call the map's Destroy method
188            after the port's because the latter may require a still functional
189            map.
190    
191    2003-10-06  Bernhard Herzog  <[email protected]>
192    
193            * Thuban/UI/application.py (ThubanApplication.maps_changed): Add
194            doc-string
195    
196    2003-10-06  Bernhard Herzog  <[email protected]>
197    
198            * test/test_viewport.py (ViewPortTest.setUp)
199            (SimpleViewPortTest.test_init_with_size): Move the test for the
200            initial size as a constructor parameter from ViewPortTest.setUp
201            method to a new separate test in SimpleViewPortTest.
202    
203    2003-10-06  Bernhard Herzog  <[email protected]>
204    
205            * test/test_viewport.py (MockView): New class derived from
206            ViewPort with a mock implementation of GetTextExtent to be used in
207            the test cases
208            (ViewPortTest.setUp): Use MockView instead of ViewPort
209    
210            * Thuban/UI/viewport.py (ViewPort.GetTextExtent): Turn this method
211            into what would be a "pure virtual function" in C++: always raise
212            NotImplementedError. Mock implementations for test cases don't
213            belong into the real code
214    
215    2003-10-02  Bernhard Herzog  <[email protected]>
216    
217            * test/test_layer.py (TestLayer.test_empty_layer): Explicitly
218            close the dbf file we create so that it's contents have been
219            written properly.
220    
221            * libraries/shapelib/shptree.c, libraries/shapelib/shpopen.c,
222            libraries/shapelib/shapefil.h, libraries/shapelib/dbfopen.c:
223            Update to shapelib 1.2.10
224    
225    2003-10-01  Jan-Oliver Wagner <[email protected]>
226    
227            * Thuban/UI/tree.py, Thuban/UI/main.py: Remove the #! line as
228            it annoys lintian which warns about these files not being
229            executable. The #! isn't necessary here since if you absolutely
230            must execute them you can always say "python <filename>".
231    
232    2003-09-26  Bernhard Herzog  <[email protected]>
233    
234            * Thuban/Model/classgen.py (GenQuantiles0): Removed since it's
235            only used in GREAT-ER but not used in Thuban itself. When GREAT-ER
236            is ported to a newer the import will fail, so it should be noticed
237            immediately that this function is gone.
238            Fixes RT#1919
239    
240    2003-09-26  Bernhard Herzog  <[email protected]>
241    
242            Add a DTD for the projection files and make thuban write valid
243            projection files
244    
245            * Resources/XML/projfile.dtd: New. DTD for thuban's projection
246            files
247    
248            * Thuban/Model/resource.py (ProjFileSaver.write): Use
249            'projectionlist' as the name in the document type declaration so
250            that it matches the element type of the root element.
251    
252            * test/test_proj.py (sample_projfile, sample_projfile2): Use
253            'projectionlist' as the name in the document type declaration just
254            as it is done now in the files thuban would write
255            (sample_projfile, sample_projfile_data): Fix spelling of
256            "Mercator"
257            (TestProjFile.doTestWrite): Validate the written and the expected
258            XML data
259            (TestProjFile): Derive from ValidationTest so that we can run xml
260            validation tests
261    
262    2003-09-24  Bernhard Herzog  <[email protected]>
263    
264            * Thuban/UI/renderer.py (ExportRenderer.render_legend): Do not
265            modify the list returned by map.Layers() in place since it is the
266            actual list of layers used by the map.
267    
268    2003-09-23  Jan-Oliver Wagner <[email protected]>
269    
270            * Doc/manual/thuban-manual.xml: Added subsection to chapter
271            Extensions to describe the extensions coming with the Thuban
272            standard package (gns2shp and importAPR).
273    
274    2003-09-23  Bernhard Herzog  <[email protected]>
275    
276            * libraries/thuban/wxproj.cpp (project_point): if there's an
277            inverse but no forward projection, convert to degrees after
278            applying the inverse projection. Fixes RT#2096
279    
280            * test/test_wxproj.py: New. Test cases for wxproj.so. One test
281            implicitly tests for the fix to RT#2096
282    
283            * test/support.py (FloatComparisonMixin.assertFloatSeqEqual):
284            Check that the sequences have the same lengths
285    
286            * Resources/Projections/defaults.proj (Geographic projection): Use
287            a much more precise value for the to_meter attribute.
288    
289    2003-09-22  Bernhard Herzog  <[email protected]>
290    
291            * test/support.py (initthuban): Make sure to unset the LANG env.
292            var. so that tests that compare translated strings work. Solves RT
293            #2094
294    
295    2003-09-22  Jan-Oliver Wagner <[email protected]>
296    
297            Small improvement of APR import.
298    
299            * Extensions/importAPR/test/test_apr.py (aprTest.test_LClass):
300            Added tests for text-ranges.
301    
302            * Extensions/importAPR/apr.py (APR_LClass.GetThubanRange): Now
303            returns a string object if the range is based on text.
304    
305            * Extensions/importAPR/importAPR.py (import_apr_dialog): Unified
306            range retrieval.
307    
308    2003-09-22  Jan-Oliver Wagner <[email protected]>
309    
310            Initial version of the importAPR extension which is in
311            experimental state.
312    
313            * /Extensions/importAPR/, /Extensions/importAPR/samples/,
314            /Extensions/importAPR/test/: New directories.
315    
316            * /Extensions/importAPR/samples/README: New: Howto load the samples.
317    
318            * /Extensions/importAPR/samples/iceland.apr: New: A sample APR
319            file which refers to the Thuban Iceland demo data.
320    
321            * /Extensions/importAPR/test/README: New: Howto execute the tests.
322    
323            * /Extensions/importAPR/test/test_apr.py: New: Tests for APR classes.
324    
325            * /Extensions/importAPR/apr.py: New: Classes for ArcView Objects
326            as in '.apr'-files.
327    
328            * /Extensions/importAPR/odb.py: New: Classes for generic ArcView
329            ODB Objects as in '.apr', '.avl' and other files.
330    
331            * /Extensions/importAPR/__init__.py: New: Init to make this
332            directory a package.
333    
334            * /Extensions/importAPR/importAPR.py: New: Import a ArcView
335            project file (.apr) and convert it to Thuban.
336    
337    2003-09-22  Jan-Oliver Wagner <[email protected]>
338    
339            * Extensions/gns2shp.gns2shp.py: The main module of gns2shp.
340    
341    2003-09-19  Jan-Oliver Wagner <[email protected]>
342    
343            * Doc/manual/thuban-manual.xml: Extended section 'Installation'
344            with description on RPM installation and RPM binary package
345            creation.
346    
347    2003-09-18  Bernhard Herzog  <[email protected]>
348    
349            * setup.py (data_files): Only add the mo files if the Locales
350            directory actually exists, so that setup.py works with a fresh CVS
351            checkout
352    
353    2003-09-12  Jan-Oliver Wagner <[email protected]>
354    
355            * Examples/simple_extensions/simple_tool.py: bugfix: Tool is now
356            in viewport, not anymore in view
357    
358    2003-09-04  Jan-Oliver Wagner <[email protected]>
359    
360            Introducing first Extension (gns2shp).
361    
362            * Extensions, Extensions/gns2shp, Extensions/gns2shp/test: New.
363    
364            * Extensions/__init__.py: New. init to make this dir a package.
365    
366            * Extensions/gns2shp/__init__.py: New. init to make this dir a package.
367    
368            * Extensions/gns2shp/test/README: New. some info on this test directory.
369    
370            * Extensions/gns2shp/test/ls.txt: New. test data set (Liechtenstein).
371    
372            * Extensions/gns2shp/test/test_gns2shp.py: New. Test for correct creation
373            of Shapefile from GNS text file format
374    
375    2003-09-03  Jan-Oliver Wagner <[email protected]>
376    
377            Fix/workaround for bug #2019:
378            https://intevation.de/rt/webrt?serial_num=2019
379    
380            * Thuban/UI/identifyview.py (IdentifyView.ID_STOP): New.
381            (IdentifyView.__init__): Added another button that allows to
382            stop the identify mode.
383            (IdentifyView.OnStop): New. Stops the identify mode.
384    
385    2003-09-03  Jan-Oliver Wagner <[email protected]>
386    
387            Introducing a new exception dialog that allows to exit the
388            application immediately.
389            This fixes bug #2060: https://intevation.de/rt/webrt?serial_num=2060
390    
391            * Thuban/UI/exceptiondialog.py: New. A special exception dialog.
392    
393            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
394            Made strings available to translations. Exchanged the simple
395            ScrolledMessageDialog by the new ExceptionDialog.
396    
397    2003-09-01  Bernhard Herzog  <[email protected]>
398    
399            * NEWS: New. Summary of changes and release notes.
400    
401            * MANIFEST.in: Add NEWS
402    
403    2003-09-01  Bernhard Herzog  <[email protected]>
404    
405            * MANIFEST.in: Correct the include statement for the mo-files and
406            include the documentation too.
407    
408            * setup.py (data_files): Add the .mo files
409            (setup call): Up to version 0.9.0
410    
411    2003-09-01  Bernhard Herzog  <[email protected]>
412    
413            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Change the
414            parameter list to just parent and session
415            (ChooseDBTableDialog.__set_properties): Removed. Setting the
416            selection of empty list boxes is not allowed (and produces C++
417            assertion errors) and the rest of the setup is better done in
418            __init__ anyway.
419            (ChooseDBTableDialog.OnCancel, ChooseDBTableDialog.OnOK)
420            (ChooseDBTableDialog.OnLBDClick, DBDialog.OnOK): Use the Python
421            builtins True/False for booleans to avoid warnings from wxPython
422    
423            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Adapt to new
424            ChooseDBTableDialog constructor parameters.
425    
426    2003-09-01  Bernhard Herzog  <[email protected]>
427    
428            * Thuban/Model/postgisdb.py
429            (PostGISTable): Extend doc-string
430            (PostGISTable._fetch_table_information): Set the column index
431            correctly, pretending ignored columns don't exist.
432    
433            * test/test_postgis_db.py (TestPostGISIgnoredColumns): New tests
434            for postgis tables with data types not yet supported by thuban.
435    
436    2003-08-29  Bernhard Herzog  <[email protected]>
437    
438            * HOWTO-Release: Tweak item about running the tests.
439    
440    2003-08-29  Jan-Oliver Wagner <[email protected]>
441    
442            * /Doc/manual/thuban-manual.xml: updated to version 1.0pre2.
443    
444    2003-08-29  Bernhard Herzog  <[email protected]>
445    
446            Add some missing parameters to projections. Proj complains about
447            them on windows but for some reason not on Linux.
448    
449            * test/test_save.py (SaveSessionTest.testLayerProjection): Add
450            missing required projection parameters
451    
452            * test/test_proj.py (TestProjFile.test): Add missing required
453            projection parameters
454    
455            * test/test_load_0_8.py (TestLayerProjection.file_contents)
456            (TestLayerProjection.test): Add missing required projection
457            parameters and tests for them
458    
459            * test/test_load.py (TestLayerProjection.file_contents)
460            (TestLayerProjection.test): Add missing required projection
461            parameters and tests for them
462    
463            * test/test_layer.py (TestLayer.test_base_layer): Add missing
464            required projection parameters
465    
466    2003-08-29  Bernhard Herzog  <[email protected]>
467    
468            * libraries/pyprojection/Projection.i: Use pj_get_errno_ref to
469            access the pj_errno because directly accessing pj_errno doesn't
470            work on windows if the proj library is in a DLL
471    
472            * libraries/pyprojection/Projection_wrap.c: Update from Projection.i
473    
474    2003-08-28  Bernhard Herzog  <[email protected]>
475    
476            * test/test_proj.py: Import things from Thuban after calling
477            initthuban
478    
479            * test/test_load.py (LoadSessionTest.filenames): New class
480            variable with the filename attributes to normalize
481            (LoadSessionTest.check_format): Pass self.filenames to
482            sax_eventlist to normalize the filename attributes
483    
484            * test/xmlsupport.py: Add cvs keywords
485            (SaxEventLister.__init__): New parameter filenames which indicates
486            attributes that contain filenames
487            (SaxEventLister.startElementNS): Normalize the filename attributes
488            with os.path.normpath
489            (sax_eventlist): New parameter filenames to pass through to
490            SaxEventLister
491    
492            * test/test_derivedshapestore.py: Make this file callable as a
493            program to execute the tests
494            (TestDerivedShapeStoreExceptions.test_table_with_wrong_size): Bind
495            the session to self.session so that it gets destroyed properly
496    
497            * test/test_layer.py (TestLayer.tearDown): Call the session's
498            Destroy method
499    
500            * test/test_map.py (TestMapBase.tearDown): Destroy self.session
501            too if it exists
502            (TestMapAddLayer.test_add_layer): Bind the session to self.session
503            so that it gets destroyed properly
504    
505            * test/postgissupport.py (reason_for_not_running_tests): Add a
506            test for the existence of popen2.Popen4.
507    
508            * test/test_save.py (SaveSessionTest.tearDown): New. Provide a
509            reliable way to destroy the sessions created in the test cases
510            (SaveSessionTest.test_dbf_table): Bind the session to self.session
511            so that it gets destroyed properly
512            (SaveSessionTest.testLayerProjection): Bind the session to
513            self.session so that it gets destroyed properly
514    
515            * test/test_session.py (UnreferencedTablesTests.tearDown): Make
516            sure that the session is destroyed properly
517    
518            * test/test_shapefilestore.py: Make this callable as a program to
519            execute the tests
520    
521            * test/test_scalebar.py: Remove unnecessary import of _ from
522            Thuban
523    
524            * test/support.py (print_garbage_information): Call initthuban
525            here because it may be called indirectly from test cases that test
526            test support modules which do not use anything from thuban itself
527            (ThubanTestProgram.runTests): Remove unnecessary debug print
528    
529    2003-08-28  Bernhard Herzog  <[email protected]>
530    
531            * Thuban/version.py (longversion): Update to 0.9
532    
533            * Thuban/UI/mainwindow.py: Remove some unused imports
534    
535            * README: Add section about required additional software. Add date
536            and revision CVS keywords
537    
538            * HOWTO-Release: Add item about the translations. Add date and
539            revision CVs keywords and change formatting to match README a bit
540            better
541    
542            * po/de.po: Update for 0.9
543    
544            * test/README: Tweak the wording a little because many tests are
545            not really unittest.
546    
547    2003-08-27  Bernhard Herzog  <[email protected]>
548    
549            As preparation for the 0.9 release, switch thuban files to a
550            non-dev namespace
551    
552            * Thuban/Model/save.py (SessionSaver.write_session): Write files
553            with the http://thuban.intevation.org/dtds/thuban-0.9.dtd
554            namespace
555    
556            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
557            http://thuban.intevation.org/dtds/thuban-0.9.dtd namespace too
558    
559            * test/test_save.py (SaveSessionTest.dtd)
560            (SaveSessionTest.testEmptySession)
561            (SaveSessionTest.testSingleLayer)
562            (SaveSessionTest.testLayerProjection)
563            (SaveSessionTest.testRasterLayer)
564            (SaveSessionTest.testClassifiedLayer)
565            (SaveSessionTest.test_dbf_table)
566            (SaveSessionTest.test_joined_table)
567            (SaveSessionTest.test_save_postgis): Update for new namespace
568    
569            * test/test_load.py (LoadSessionTest.dtd, TestSingleLayer)
570            (TestLayerVisibility.file_contents, TestLabels.file_contents)
571            (TestLayerProjection.file_contents)
572            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
573            (TestPostGISLayer.file_contents)
574            (TestPostGISLayerPassword.file_contents)
575            (TestLoadError.file_contents, TestLoadError.test): Update for new
576            namespace
577    
578    2003-08-27  Bernhard Herzog  <[email protected]>
579    
580            Make the table interface distinguish between row ids (an integer
581            that uniquely identifies a row) and row ordinals (a simple row
582            count from 0 to NumRows() - 1)
583    
584            * Thuban/Model/postgisdb.py (PostGISTable.RowIdToOrdinal)
585            (PostGISTable.RowOrdinalToId): New methods to conver between row
586            ids and row ordinals
587            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue): New keyword
588            parameter row_is_ordinal to indicate whether the row parameter is
589            the row id or the ordinal
590    
591            * Thuban/Model/transientdb.py (TransientTableBase.RowIdToOrdinal)
592            (TransientTableBase.RowOrdinalToId)
593            (AutoTransientTable.RowIdToOrdinal)
594            (AutoTransientTable.RowOrdinalToId): Same new methods as in
595            PostGISTable.
596            (TransientTableBase.ReadRowAsDict, TransientTableBase.ReadValue)
597            (AutoTransientTable.ReadRowAsDict, AutoTransientTable.ReadValue):
598            Same new parameter as in PostGISTable.
599    
600            * Thuban/Model/table.py (DBFTable.RowIdToOrdinal)
601            (DBFTable.RowOrdinalToId, MemoryTable.RowIdToOrdinal)
602            (MemoryTable.RowOrdinalToId): Same new methods as in PostGISTable.
603            (DBFTable.ReadValue, DBFTable.ReadRowAsDict)
604            (MemoryTable.ReadValue, MemoryTable.ReadRowAsDict): Same new
605            parameter as in PostGISTable.
606    
607            * Thuban/UI/tableview.py (DataTable.RowIdToOrdinal)
608            (DataTable.RowOrdinalToId): New methods to convert between row ids
609            and row ordinals.
610            (TableGrid.SelectRowById): New method to select a row based on its
611            ID as opposed to its ordinal
612            (DataTable.GetValue, TableGrid.OnRangeSelect)
613            (TableGrid.OnSelectCell, LayerTableGrid.select_shapes)
614            (QueryTableFrame.OnQuery, QueryTableFrame.get_selected)
615            (LayerTableFrame.__init__): Convert between row ids and row
616            ordinals as appropriate
617    
618            * test/postgissupport.py (PostGISDatabase.__init__): Add
619            doc-string.
620            (PostGISDatabase.initdb): The optional third item in a tuple in
621            tables is now a (key, value) list with additional arguments to
622            pass to upload_shapefile
623            (upload_shapefile): New parameter gid_offset to allow gids that
624            are not the same as the shapeids in the shapefile
625            (PostgreSQLServer.get_default_static_data_db): Use the new
626            gid_offset to make the gids in landmarks 1000 higher than the
627            shapeids in the shapefile
628    
629            * test/test_viewport.py
630            (TestViewportWithPostGIS.test_find_shape_at_point): Adapt to the
631            new shapeids in the landmarks table
632    
633            * test/test_transientdb.py
634            (TestTransientTable.run_iceland_political_tests)
635            (TestTransientTable.test_transient_joined_table): Add tests for
636            the new table methods and new keywords arguments.
637    
638            * test/test_postgis_db.py
639            (TestPostGISTable.test_read_row_as_dict_row_count_mode)
640            (TestPostGISTable.test_read_value_row_count_mode)
641            (TestPostGISTable.test_row_id_to_ordinal)
642            (TestPostGISTable.test_row_oridnal_to_id): New test for the new
643            table methods and the new arguments
644            (TestPostGISShapestorePoint.test_shapes_in_region)
645            (TestPostGISShapestorePoint.test_shape_raw_data)
646            (TestPostGISShapestorePoint.test_shape_points)
647            (TestPostGISShapestorePoint.test_shape_shapeid)
648            (TestPostGISShapestorePoint.test_all_shapes)
649            (TestPostGISTable.test_simple_query)
650            (TestPostGISTable.test_simple_query)
651            (TestPostGISTable.test_simple_query)
652            (TestPostGISTable.test_read_value)
653            (TestPostGISTable.test_read_row_as_dict): Adapt to the new
654            shapeids in the landmarks table
655    
656            * test/test_memory_table.py
657            (TestMemoryTable.test_read_row_as_dict_row_count_mode)
658            (TestMemoryTable.test_read_value_row_count_mode)
659            (TestMemoryTable.test_row_id_to_ordinal)
660            (TestMemoryTable.test_row_oridnal_to_id): New test for the new
661            table methods and the new arguments
662    
663            * test/test_dbf_table.py
664            (TestDBFTable.test_read_row_as_dict_row_count_mode)
665            (TestDBFTable.test_read_value_row_count_mode)
666            (TestDBFTable.test_row_id_to_ordinal)
667            (TestDBFTable.test_row_oridnal_to_id): New test for the new table
668            methods and the new arguments
669    
670    2003-08-26  Bernhard Herzog  <[email protected]>
671    
672            * Thuban/Model/postgisdb.py (PostGISShapeStore.BoundingBox): Use a
673            more postgis specific but much faster method to get the bounding
674            box
675    
676    2003-08-26  Bernhard Herzog  <[email protected]>
677    
678            * Thuban/Model/postgisdb.py (PostGISTable.Title)
679            (PostGISShapeStore.AllShapes): Add these missing methods.
680            (PostGISShapeStore.ShapesInRegion): No need to raise
681            StopIteration. We can simply return
682    
683            * test/test_postgis_db.py (TestPostGISTable.test_title)
684            (TestPostGISShapestorePoint.test_all_shapes): New tests for the
685            new methods
686    
687    2003-08-25  Bernhard Herzog  <[email protected]>
688    
689            * Thuban/Model/postgisdb.py (shapetype_map): Add MUTLIPOLYGON.
690    
691            * test/test_postgis_db.py (PolygonTests): New class containing
692            those tests from TestPostGISShapestorePolygon that can also be
693            used to test MUTLIPOLYGON tables
694            (TestPostGISShapestorePolygon): Most tests are now in PolygonTests
695            so derive from that
696            (TestPostGISShapestoreMultiPolygon): New class with tests for
697            MUTLIPOLYGON tables
698    
699            * test/postgissupport.py (PostGISDatabase.initdb): Allow the
700            tables argument to have tuples with three items to override the
701            WKT type used.
702            (PostgreSQLServer.get_default_static_data_db): Use the above to
703            create a polygon table with MUTLIPOLYGONs
704            (point_to_wkt, coords_to_point, polygon_to_wkt, coords_to_polygon)
705            (arc_to_wkt, coords_to_multilinestring): Rename from *_to_wkt to
706            coords_to*
707            (coords_to_multipolygon): New. Convert to MUTLIPOLYGON
708            (wkt_converter): New. Map WKT types to converters
709            (upload_shapefile): New parameter force_wkt_type to use a
710            different WKT type than the default
711    
712    2003-08-25  Bernhard Herzog  <[email protected]>
713    
714            * Thuban/UI/application.py
715            (ThubanApplication.run_db_param_dialog): New. Suitable as a
716            db_connection_callback. Main difference is that the dialog run
717            from this method doesn't have a parent so it can be used even when
718            there is no main window
719            (ThubanApplication.OpenSession): Use self.run_db_param_dialog if
720            no db_connection_callback was given. This way the dialog pops up
721            even when the .thuban file was given as a command line parameter.
722    
723    2003-08-25  Bernhard Herzog  <[email protected]>
724    
725            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Release the the mouse
726            before calling MouseLeftUp. MouseLeftUp may pop up modal dialogs
727            which leads to an effectively frozen X session because the user
728            can only interact with the dialog but the mouse is still grabbed
729            by the canvas.
730            Also, call the tool's Hide method before MouseLeftUp because
731            MouseLeftUp may change the tool's coordinates.
732    
733    2003-08-25  Bernhard Herzog  <[email protected]>
734    
735            * Thuban/UI/application.py (ThubanApplication.OpenSession): Catch
736            LoadCancelled exceptions and handle them by returning immediately.
737    
738    2003-08-25  Bernhard Herzog  <[email protected]>
739    
740            GUI part of loading sessions with postgis connections which may
741            require user interaction to get passwords or updated parameters
742    
743            * Thuban/UI/dbdialog.py (DBDialog): Reimplement to make it look a
744            bit nucer and be more generic.
745            (DBFrame.OnAdd): Adapt to new DBDialog interface
746    
747            * Thuban/UI/application.py (ThubanApplication.OpenSession): New
748            optional parameter db_connection_callback which is passed to
749            load_session.
750    
751            * Thuban/UI/mainwindow.py (MainWindow.run_db_param_dialog): New.
752            Suitable as a db_connection_callback
753            (MainWindow.OpenSession): Use self.run_db_param_dialog as the
754            db_connection_callback of the application's OpenSession method
755    
756    
757    2003-08-25  Bernhard Herzog  <[email protected]>
758    
759            Basic loading of sessions containing postgis connections:
760    
761            * Thuban/Model/load.py (LoadError): Add doc-string
762            (LoadCancelled): New exception class to indicate a cancelled load
763            (SessionLoader.__init__): Add the db_connection_callback parameter
764            which will be used by the loader to get updated parameters and a
765            password for a database connection
766            (SessionLoader.__init__): Add the new XML elements to the
767            dispatchers dictionary
768            (SessionLoader.check_attrs): Two new conversions, ascii to convert
769            to a byte-string object and idref as a generic id reference
770            (SessionLoader.start_dbconnection)
771            (SessionLoader.start_dbshapesource): New. Handlers for the new XML
772            elements
773            (load_session): Add the db_connection_callback to pass through the
774            SessionLoader
775    
776            * test/test_load.py (TestPostGISLayer, TestPostGISLayerPassword):
777            New classes to test loading of sessions with postgis database
778            connections.
779    
780    2003-08-25  Bernhard Herzog  <[email protected]>
781    
782            * Thuban/UI/mainwindow.py (__ThubanVersion__): Remove this and
783            replace it and the comment with __BuildDate__ by the Source: and
784            Id: cvs keywords as used in the other files.
785    
786    2003-08-25  Bernhard Herzog  <[email protected]>
787    
788            * Thuban/Model/load.py (SessionLoader.check_attrs): Raise a
789            LoadError when a required attribute is missing. The code used to
790            be commented out for some reason, but probably should have been
791            active.
792    
793            * test/test_load.py (TestLoadError.test): Test the message in the
794            LoadError too to make sure it really is about the missing
795            attribute
796    
797    2003-08-22  Bernhard Herzog  <[email protected]>
798    
799            * test/test_save.py (SaveSessionTest.test_dbf_table)
800            (SaveSessionTest.test_joined_table): Add XML validation tests.
801    
802    2003-08-22  Bernhard Herzog  <[email protected]>
803    
804            Implement saving a session with a postgis connection
805    
806            * Resources/XML/thuban-0.9.dtd (dbconnection, dbshapesource) New
807            elements for database connections and shapestores using db
808            connections
809            (session): Add the dbconnections to the content model
810    
811            * Thuban/Model/save.py (SessionSaver.write_db_connections): New.
812            Write the db connections
813            (SessionSaver.write_session): Call write_db_connections to write
814            the connection before the data sources
815            (SessionSaver.write_data_containers): Handle postgis shapestores
816    
817            * test/test_save.py (SaveSessionTest.thubanids)
818            (SaveSessionTest.thubanidrefs): Update for new DTD
819            (SaveSessionTest.test_save_postgis): New. Test saving a session
820            with postgis connections
821    
822            * Thuban/Model/postgisdb.py (PostGISTable.DBConnection)
823            (PostGISTable.TableName): New accessor methods for the connection
824            and table name
825    
826            * test/test_postgis_db.py (TestPostGISTable.test_dbconn)
827            (TestPostGISTable.test_dbname): New methods to test the new
828            PostGISConnection methods
829    
830    2003-08-22  Bernhard Herzog  <[email protected]>
831    
832            * Thuban/Model/postgisdb.py (ConnectionError): New exception class
833            for exceptions occurring when establishing a Database connection
834            (PostGISConnection.connect): Catch psycopg.OperationalError during
835            connects and raise ConnectionError.
836    
837            * test/test_postgis_db.py (TestPostgisDBExceptions): New class for
838            tests for database exceptions
839    
840    2003-08-22  Bernhard Herzog  <[email protected]>
841    
842            Prepare the test suite for tests with required authentication
843    
844            * test/postgissupport.py (PostgreSQLServer.__init__): Add instance
845            variables with two predefined users/passwords, one for the admin
846            and one for a non-privileged user.
847            (PostgreSQLServer.createdb): Pass the admin name to initdb and add
848            the non-privileged user to the database and set the admin password
849            (PostgreSQLServer.wait_for_postmaster): Use the admin user name.
850            Better error reporting
851            (PostgreSQLServer.connection_params)
852            (PostgreSQLServer.connection_string): New methods to return
853            information about how to connect to the server
854            (PostgreSQLServer.execute_sql): New. Convenience method to execute
855            SQL statements
856            (PostgreSQLServer.require_authentication): Toggle whether the
857            server requires authentication
858            (PostgreSQLServer.create_user, PostgreSQLServer.alter_user): New.
859            Add or alter users
860            (PostGISDatabase.initdb): Pass the admin name one the
861            subprocesses' command lines. Grant select rights on
862            geometry_columns to everybody.
863            (upload_shapefile): Use the admin name and password when
864            connecting. Grant select rights on the new table to everybody.
865    
866            * test/test_viewport.py (TestViewportWithPostGIS.setUp): Use the
867            server's new methods to get the connection parameters.
868    
869            * test/test_postgis_session.py (TestSessionWithPostGIS.setUp)
870            (TestSessionWithPostGIS.test_remove_dbconn_exception): Use the
871            server's new methods to get the connection parameters.
872    
873            * test/test_postgis_db.py
874            (TestPostGISConnection.test_gis_tables_empty)
875            (TestPostGISConnection.test_gis_tables_non_empty)
876            (PostGISStaticTests.setUp): Use the server's new methods to get
877            the connection parameters.
878    
879    2003-08-22  Bernhard Herzog  <[email protected]>
880    
881            * Thuban/UI/about.py (About.__init__): Add the psycopg version.
882    
883            * Thuban/version.py: Add psycopg version
884    
885            * Thuban/Model/postgisdb.py (psycopg_version): New. Return the
886            version of the psycopg module
887    
888    2003-08-22  Bernhard Herzog  <[email protected]>
889    
890            * Thuban/UI/dbdialog.py (DBPwdDlg): Removed because it's not used.
891            (DBFrame.OnEdit): Removed because it's not used and wouldn't work
892            at the moment. The functionality should probably be implemented
893            some time, though.
894            (DBFrame.OnRemove): Display a message if the connection can't be
895            removed because it's still in use.
896    
897    2003-08-22  Jan-Oliver Wagner <[email protected]>
898    
899            * Thuban/UI/about.py (About.__init__): split up the huge about
900            text into elements/lists for easier translation. This fixes bug
901            https://intevation.de/rt/webrt?serial_num=2058
902            Also, made some forgotten string available for the i18n.
903    
904    2003-08-21  Bernhard Herzog  <[email protected]>
905    
906            Make postgis support really optional including insensitive menu
907            items.
908    
909            * Thuban/Model/postgisdb.py (has_postgis_support): New. Return
910            whether the postgis is supported.
911    
912            * Thuban/UI/dbdialog.py: Put the psycopg import into try..except
913            to make postgis support optional
914    
915            * Thuban/UI/mainwindow.py (_has_postgis_support): New. Context
916            version of Thuban.Model.postgisdb.has_postgis_support
917            (database_management command): Make it only sensitive if postgis
918            is supported.
919    
920    2003-08-21  Jan-Oliver Wagner <[email protected]>
921    
922            * Doc/manual/thuban-manual.xml: Added CVS revision for rev-history.
923            (section Adding and Removing Layers): Added text and described
924            multi-selection.
925            (chapter Extensions): New.
926    
927    2003-08-21  Jan-Oliver Wagner <[email protected]>
928    
929            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Changed dialog
930            settings to allow multiple files to load into the map.
931            Also reduced selection to *.shp as a default.
932    
933    2003-08-20  Bernhard Herzog  <[email protected]>
934    
935            Add dialogs and commands to open database connections and add
936            database layers.
937    
938            * Thuban/UI/mainwindow.py (MainWindow.DatabaseManagement): New
939            method to open the database connection management dialog
940            (MainWindow.AddDBLayer): New method to add a layer from a database
941            (_has_dbconnections): New helper function to use for sensitivity
942            (database_management command, layer_add_db command): New commands
943            that call the above new methods.
944            (main_menu): Add the new commands to the menu.
945    
946            * Thuban/Model/postgisdb.py (PostGISConnection.__init__)
947            (PostGISConnection.connect): Establish the actual connection in a
948            separate method and call it in __init__. This makes it easier to
949            override the behavior in test cases
950            (PostGISConnection.BriefDescription): New method to return a brief
951            description for use in dialogs.
952    
953            * test/test_postgis_db.py (NonConnection): DB connection that
954            doesn't actually connect
955            (TestBriefDescription): New class with tests for the new
956            BriefDescription method
957    
958    2003-08-19  Jan-Oliver Wagner <[email protected]>
959    
960            Moved anything from extensions to libraries.
961    
962            * libraries: New.
963    
964            * libraries/ pyprojection, pyshapelib, shapelib, thuban: New.
965    
966            * libraries/pyprojection/ LICENSE, MANIFEST.in, Projection.i,
967            Projection.py, Projection_wrap.c, setup.py, swighelp.txt: These files have
968            been moved here from thuban/extensions/pyprojection/
969            See there in the Attic for the older history.
970    
971            * libraries/pyshapelib/ COPYING, ChangeLog, NEWS, README, dbflib.i,
972            dbflib.py, dbflib_wrap.c, pyshapelib_api.h, pytest.py, setup.py,
973            shapelib.i, shapelib.py, shapelib_wrap.c, shptreemodule.c: These files
974            have been moved here from thuban/extensions/pyshapelib/
975            See there in the Attic for the older history.
976    
977            * libraries/shapelib/ dbfopen.c, shapefil.h, shpopen.c, shptree.c: These
978            files have been moved here from thuban/extensions/shapelib/
979            See there in the Attic for the older history.
980    
981            * libraries/thuban/ bmpdataset.cpp, cpl_mfile.cpp, cpl_mfile.h,
982            gdalwarp.cpp, wxproj.cpp: These files have been moved here from
983            thuban/extensions/thuban/
984            See there in the Attic for the older history.
985    
986            * MANIFEST.in, setup.cfg, setup.py: renamed extensions to libraries.
987    
988            * extensions/thuban/ bmpdataset.cpp, cpl_mfile.cpp, cpl_mfile.h,
989            gdalwarp.cpp, wxproj.cpp: Moved to libraries/thuban.
990    
991            * extensions/shapelib/ dbfopen.c, shapefil.h, shpopen.c, shptree.c:
992            Moved to libraries/shapelib.
993    
994            * extensions/pyshapelib/ COPYING, NEWS, dbflib.py, pytest.py,
995            shapelib.py, README, dbflib_wrap.c, setup.py, shapelib_wrap.c,
996            ChangeLog, dbflib.i, pyshapelib_api.h, shapelib.i, shptreemodule.c:
997            Moved to libraries/pyshapelib.
998    
999            * extensions/pyprojection/ MANIFEST.in, Projection.py, setup.py,
1000            LICENSE, Projection.i, Projection_wrap.c, swighelp.txt:
1001            Moved to libraries/pyprojection.
1002    
1003            * extensions/ pyprojection, pyshapelib, shapelib, thuban: Removed.
1004    
1005            * extensions: Removed.
1006    
1007    2003-08-19  Bernhard Herzog  <[email protected]>
1008    
1009            * test/test_viewport.py (ViewPortTest): We don't use the
1010            facilities of FileTestMixin so don't derive from it.
1011            (TestViewportWithPostGIS): New class with tests for using a
1012            viewport on a map with postgis layers.
1013    
1014    2003-08-19  Bernhard Herzog  <[email protected]>
1015    
1016            Add the db connection management to the session.
1017    
1018            * Thuban/Model/session.py (Session.__init__): New instance
1019            variable db_connections
1020            (Session.AddDBConnection, Session.DBConnections)
1021            (Session.HasDBConnections, Session.CanRemoveDBConnection)
1022            (Session.RemoveDBConnection): New methods to manage and query the
1023            db connections managed by the session
1024            (Session.OpenDBShapeStore): New method to open a shapestore from a
1025            db connection
1026    
1027            * Thuban/Model/messages.py (DBCONN_REMOVED, DBCONN_ADDED): New
1028            messages for the db connection handling in the session
1029    
1030            * test/test_postgis_session.py: New. test cases for the session's
1031            db connection handling with postgis connections
1032    
1033    2003-08-19  Bernhard Herzog  <[email protected]>
1034    
1035            Add very basic postgis database support and the corresponding test
1036            cases. The test cases require a PostgreSQL + postgis installation
1037            but no existing database. The database will be created
1038            automatically by the test cases
1039    
1040            * test/README: Add note about skipped tests and the requirements
1041            of the postgis tests.
1042    
1043            * Thuban/Model/postgisdb.py: New. Basic postgis database support.
1044    
1045            * test/test_postgis_db.py: New. Test cases for the postgis
1046            support.
1047    
1048            * Thuban/Model/wellknowntext.py: New. Parser for well-known-text
1049            format
1050    
1051            * test/test_wellknowntext.py: New. Test cases for the
1052            wellknowntext parser
1053    
1054            * test/postgissupport.py: New. Support module for tests involving
1055            a postgis database.
1056    
1057            * test/support.py (execute_as_testsuite): Shut down the postmaster
1058            if it's still running after the tests
1059    
1060            * Thuban/Model/data.py (RAW_WKT): New constant for raw data in
1061            well known text format
1062    
1063    2003-08-19  Jan-Oliver Wagner <[email protected]>
1064    
1065            * Examples/simple_extensions/hello_world.py: New. Raises a Hello World
1066            message dialog.
1067    
1068    2003-08-18  Bernhard Herzog  <[email protected]>
1069    
1070            * test/support.py (ThubanTestResult.printErrors): Indent the
1071            reason for the skips in the output to make it a bit more readable.
1072            (execute_as_testsuite): New helper function to run a test suite
1073            and print some more information.
1074            (run_tests): Use execute_as_testsuite to run the tests
1075    
1076            * test/runtests.py (main): Use execute_as_testsuite to run the
1077            tests
1078    
1079    2003-08-18  Bernhard Herzog  <[email protected]>
1080    
1081            Fix some bugs in Thuban and the test suite that were uncovered by
1082            changes introduced in Python 2.3:
1083    
1084            * Thuban/Model/table.py (DBFTable.__init__): Make sure the
1085            filename is an absolute name
1086    
1087            * Thuban/Model/layer.py (RasterLayer.__init__): Make sure the
1088            filename is an absolute name
1089    
1090            * test/test_save.py (SaveSessionTest.testRasterLayer): Use a
1091            unique filename to save to and use the correct relative filename
1092            in the expected output.
1093            (SaveSessionTest.test_dbf_table): Use the correct relative
1094            filename in the expected output.
1095    
1096            * test/test_layer.py (TestLayer.test_raster_layer): Update the
1097            test to check whether the filename is absolute.
1098    
1099    2003-08-18  Jan-Oliver Wagner <[email protected]>
1100    
1101            * Thuban/UI/about.py (About.__init__): Added Silke Reimer.
1102    
1103    2003-08-15  Bernhard Herzog  <[email protected]>
1104    
1105            Change the way shapes are returned by a shape store. The
1106            ShapesInRegion method returns an iterator over actual shape
1107            objects instead of a list of shape ids.
1108    
1109            * Thuban/Model/data.py (ShapefileShape.ShapeID): New. Return shape
1110            id.
1111            (ShapefileStore.ShapesInRegion): Return an iterator over the
1112            shapes which yields shape objects instead of returning a list of
1113            shape ids
1114            (ShapefileStore.AllShapes): New. Return an iterator over all
1115            shapes in the shape store
1116            (DerivedShapeStore.AllShapes): New. Like in ShapefileStore
1117    
1118            * Thuban/Model/layer.py (Layer.ShapesInRegion): Update
1119            doc-string.
1120    
1121            * Thuban/UI/baserenderer.py
1122            (BaseRenderer.layer_ids, BaseRenderer.layer_shapes): Rename to
1123            layer_shapes and make it return an iterator containg shapes
1124            instead of a list of ids.
1125            (BaseRenderer.draw_shape_layer): Update doc-string; Adapt to
1126            layer_shapes() change
1127    
1128            * Thuban/UI/renderer.py (ScreenRenderer.layer_ids)
1129            (ScreenRenderer.layer_shapes): Rename as in BaseRenderer
1130    
1131            * Thuban/UI/viewport.py (ViewPort._find_shape_in_layer): Adapt to
1132            changes in the ShapesInRegion return value.
1133            (ViewPort._get_hit_tester): Remove commented out code
1134    
1135            * test/mockgeo.py (SimpleShapeStore.ShapesInRegion): Adapt to the
1136            new return value.
1137            (SimpleShapeStore.AllShapes): New. Implement this method too.
1138    
1139            * test/test_layer.py (TestLayer.test_arc_layer)
1140            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
1141            (TestLayer.test_point_layer_with_projection)
1142            (TestLayer.test_derived_store): Adapt to changes in the
1143            ShapesInRegion return value.
1144    
1145            * test/test_shapefilestore.py
1146            (TestShapefileStoreArc.test_shapes_in_region)
1147            (TestShapefileStorePolygon.test_shapes_in_region)
1148            (TestShapefileStorePoint.test_shapes_in_region): Adapt to changes
1149            in the ShapesInRegion return value.
1150            (TestShapefileStorePoint.test_all_shapes)
1151            (TestShapefileStoreArc.test_shape_shapeid): New tests for the new
1152            methods
1153    
1154            * test/test_derivedshapestore.py
1155            (TestDerivedShapeStore.test_shapes_in_region): Adapt to changes in
1156            the ShapesInRegion return value.
1157            (TestDerivedShapeStore.test_all_shapes)
1158            (TestDerivedShapeStore.test_shape_shapeid): New tests for the new
1159            methods
1160    
1161    2003-08-15  Bernhard Herzog  <[email protected]>
1162    
1163            Make the renderers deal correctly with raw vs. python level
1164            representation of shape geometries
1165    
1166            * Thuban/UI/baserenderer.py (BaseRenderer.low_level_renderer):
1167            Return a flag useraw in addition to the callable and the parameter
1168            to indicate whether the callable can deal with the raw shape data
1169            or uses the higher level python lists of coordinates. The callable
1170            now should accept either the raw data or the return value of the
1171            shape's Points() method.
1172            (BaseRenderer.draw_shape_layer): Adapt to the low_level_renderer
1173            change
1174            (BaseRenderer.projected_points): Instead of the shape id use the
1175            points list as parameter.
1176            (BaseRenderer.draw_polygon_shape, BaseRenderer.draw_arc_shape)
1177            (BaseRenderer.draw_point_shape): Adapt to projected_points()
1178            change and accept the points list as parameter instead of the
1179            shape id.
1180    
1181            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Return
1182            the useraw flag as required by the BaseRenderer
1183            (ScreenRenderer.draw_shape_layer): Adapt to low-level renderer
1184            changes.
1185    
1186            * test/test_baserenderer.py
1187            (TestBaseRenderer.test_point_with_classification): New test for
1188            rendering a map with classifications.
1189    
1190    2003-08-15  Bernhard Herzog  <[email protected]>
1191    
1192            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
1193            (ViewPort._find_shape_in_layer, ViewPort._find_shape_in_layer)
1194            (ViewPort._get_hit_tester, ViewPort.projected_points)
1195            (ViewPort._hit_point, ViewPort._hit_arc, ViewPort._hit_polygon)
1196            (ViewPort._find_label_at): Split the find_shape_at method into
1197            several new methods and use the functions in the hit-test module.
1198    
1199            * Thuban/UI/hittest.py: New module with Python-level hit-testing
1200            functions
1201    
1202            * test/test_hittest.py: New. Test for the new hittest module
1203    
1204    2003-08-15  Bernhard Herzog  <[email protected]>
1205    
1206            * Thuban/Model/layer.py (Layer.ShapesInRegion): Apply the layer
1207            projection to all corners of the bounding box to get a better
1208            approximation of the projected bounding box
1209    
1210            * test/test_layer.py (TestLayer.test_point_layer_with_projection):
1211            New. Test coordinate handling of a layer with a projection.
1212            Catches the bug fixed in Layer.ShapesInRegion
1213    
1214    2003-08-15  Bernhard Herzog  <[email protected]>
1215    
1216            Move some of the mock objects in test_baserenderer into their own
1217            module so they can easily be used from other tests
1218    
1219            * test/mockgeo.py: New test helper module with some mock objects
1220            for geometry related things like shapes, shapestores and
1221            projections.
1222    
1223            * test/test_mockgeo.py: New. Tests for the new helper module
1224    
1225            * test/test_baserenderer.py: Some of the mock-objects are in
1226            mockgeo now.
1227    
1228    2003-08-12  Jan-Oliver Wagner <[email protected]>
1229    
1230            * Thuban/UI/about.py (About.__init__): Added Bj�rn Broscheit.
1231    
1232    2003-08-12  Bernhard Herzog  <[email protected]>
1233    
1234            * po/de.po: New. German translations by Bjoern Broscheit
1235    
1236  2003-08-12  Bernhard Herzog  <[email protected]>  2003-08-12  Bernhard Herzog  <[email protected]>
1237    
1238          * Thuban/UI/projdialog.py (UnknownProjPanel._DoLayout): Translated          * Thuban/UI/projdialog.py (UnknownProjPanel._DoLayout): Translated
# Line 417  Line 1652 
1652    
1653          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as
1654          it annoys lintian which warns about these files not being          it annoys lintian which warns about these files not being
1655          executable. The #1 isn't necessary here since if you absolutely          executable. The #! isn't necessary here since if you absolutely
1656          must execute them you can always say "python <filename>".          must execute them you can always say "python <filename>".
1657    
1658          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove

Legend:
Removed from v.1580  
changed lines
  Added in v.1814

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26