/[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 1637 by bh, Fri Aug 22 17:20:38 2003 UTC revision 1812 by bh, Mon Oct 13 13:36:46 2003 UTC
# Line 1  Line 1 
1    2003-10-13  Bernhard Herzog  <[email protected]>
2    
3            * test/test_proj.py (TestProjFile.testRead)
4            (TestProjFile.test_read_non_existing_file)
5            (TestProjFile.test_read_unreadable_file)
6            (TestProjFile.test_read_empty_file): Split into several methods.
7    
8    2003-10-10  Bernhard Herzog  <[email protected]>
9    
10            * Thuban/UI/sizers.py: New file with custom sizers.
11    
12            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): Instantiate
13            all projection type specific panels and put them into a
14            NotebookLikeSizer. This way the dialog doesn't change its size
15            when a different projection is selected
16            (ProjFrame.__init__): Rename projection_panels
17            projection_panel_defs and reuse projection_panels for a list of
18            the instantiated panels.
19            (ProjFrame._show_proj_panel, ProjFrame.__DoOnProjAvail)
20            (ProjFrame.__DoOnProjChoice): Changes due to the new handling of
21            the panels
22            (UnknownProjPanel._DoLayout): Place the newlines in the message
23            differently to make the panel narrower.
24            (TMPanel._DoLayout): Layout the parameters in one column.
25    
26    2003-10-10  Bernhard Herzog  <[email protected]>
27    
28            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): New method
29            that contains all the setup for the dialog's widgets, layout and
30            event handling.
31            (__): Call build_dialog to build the dialog.
32            (ProjFrame.__set_properties, ProjFrame.__do_layout): Removed.
33            Their functionality is now in build_dialog
34            (ProjFrame.__VerifyButtons, ProjFrame.__VerifyButtons)
35            (ProjFrame.__DoOnProjAvail, ProjFrame.__DoOnProjAvail)
36            (ProjFrame.__DoOnProjChoice): Small updates due to slightly
37            different widget names and hierarchy introduced with build_dialog.
38    
39    2003-10-10  Bernhard Herzog  <[email protected]>
40    
41            * README: Fix typo.
42    
43    2003-10-09  Bernhard Herzog  <[email protected]>
44    
45            * Thuban/Model/proj.py (ProjFile.Add): Do not check whether the
46            projection is already in the list. This is *a lot* faster when
47            loading files with hundreds of projections since it saves a linear
48            search. OTOH this will allow adding the same projection to the
49            user.proj file multiple times in the projection dialog but we'll
50            deal with that later
51    
52    2003-10-09  Jan-Oliver Wagner <[email protected]>
53    
54            * devtools: New. Directory for developer tools that are not intended
55            for the regular user.
56    
57            * devtools/create_epsg.py: New. Convert the epsg file of proj into
58            a python .proj file.
59    
60    2003-10-09  Bernhard Herzog  <[email protected]>
61    
62            * test/test_proj.py
63            (TestProjection.test_get_parameter_without_equals_sign): New. Test
64            whether GetParameter handles parameters without "=" sign correctly
65    
66            * Thuban/Model/proj.py (Projection.GetParameter): Handle
67            parameters that do not contain a "=". Update the doc-string
68    
69    2003-10-08  Bernhard Herzog  <[email protected]>
70    
71            * Thuban/UI/projdialog.py (ProjFrame.__set_properties): Remove the
72            length limit on the projname text control
73    
74    2003-10-08  Bernhard Herzog  <[email protected]>
75    
76            * test/test_proj.py (TestProjection.test_get_projection_units_geo)
77            (TestProjection.test_get_projection_units_normal): New. Tests for
78            the Projection.GetProjectedUnits method
79    
80    2003-10-08  Jan-Oliver Wagner <[email protected]>
81    
82            * Thuban/Model/resource.py (get_user_proj_file): small bug-fix:
83            Added missing 'val' parameter.
84    
85    2003-10-08  Bernhard Herzog  <[email protected]>
86    
87            * Thuban/UI/projdialog.py (ProjFrame.__DoOnProjAvail): When the
88            projection type of the currently selected projection is not known,
89            i.e. there's no panel for it, use the UnknownProjPanel
90            (ProjFrame.__DoOnProjChoice, ProjFrame._show_proj_panel): Split
91            the actual replacing of the proj panel into the new method
92            _show_proj_panel.
93            (UnknownProjPanel): Add doc-string.
94            (UnknownProjPanel._DoLayout): Insert a newline into the text so
95            that the panel is not so wide.
96    
97    2003-10-08  Bernhard Herzog  <[email protected]>
98    
99            * Thuban/Model/resource.py (read_proj_file): Return the warnings
100            too. Update the doc-string
101            (get_proj_files): Removed. It wasn't used anywhere
102            (get_system_proj_files, get_system_proj_file): Rename to
103            get_system_proj_file and return the ProjFile object and not a list
104            of ProjFile objects. Update the callers.
105            (get_user_proj_files, get_user_proj_file): Rename to
106            get_user_proj_file return the ProjFile object and not a list of
107            ProjFile objects. Update the callers.
108            (ProjFileReader.__init__): New instance variable for the warnings.
109            Rename the __pf ivar to projfile. Update the methods referring to
110            __pf
111            (ProjFileReader.end_projection): Catch any errors raised when
112            instantiating the projection and record that as an error. The
113            projection will not be in the final ProjFile object.
114            (ProjFileReader.GetWarnings): New method to return the warnings.
115    
116            * Thuban/UI/projdialog.py (ProjFrame.show_warnings): New method to
117            show the warnings from the projfile reader
118            (ProjFrame._OnImport): Deal with any warnings returned by
119            read_proj_file
120            (ProjFrame.__FillAvailList): Deal with any warnings returned by
121            get_system_proj_file or get_user_proj_file.
122    
123            * test/test_proj.py (TestProjFile.doTestRead): Check the warnings.
124            (TestProjFileWithInvalidParameters.file_contents): New test cases
125            to test whether read_proj_file handles invalid projection
126            parameters correctly
127            (TestProjFile.test_get_system_proj_file): New. Simple test for
128            resource.get_system_proj_file
129    
130    2003-10-07  Bernhard Herzog  <[email protected]>
131    
132            * test/test_derivedshapestore.py
133            (TestDerivedShapeStoreExceptions.tearDown): Clear the session
134            properly so that the temporary directories get deleted correctly
135    
136    2003-10-06  Bernhard Herzog  <[email protected]>
137    
138            Handle the title changes in a proper MVC way.
139    
140            * Thuban/UI/mainwindow.py (MainWindow.__init__): Subscribe to the
141            canvas' TITLE_CHANGED messages
142            (MainWindow.update_title): New. Update the main window's title
143            (MainWindow.__SetTitle): Removed. Use update_title instead.
144            (MainWindow.SetMap): Use update_title instead of __SetTitle
145            (MainWindow.RenameMap): Do change the window title explicitly
146            here. That's handled in a proper MVC way now.
147            (MainWindow.title_changed): New. Subscriber for the TITLE_CHANGED
148            messages
149    
150            * Thuban/Lib/connector.py (Conduit): New class to help classes
151            that forward messages
152    
153            * Thuban/UI/viewport.py: Forward the map's TITLE_CHANGED messages
154            (ViewPort): Derive from Conduit instead of Publisher
155            (ViewPort.Subscribe, ViewPort.Unsubscribe): Use the new base class
156            when calling the inherited versions
157            (ViewPort._subscribe_map, ViewPort._unsubscribe_map): New helper
158            methods to subscribe and unsubscribe map messages
159            (ViewPort.SetMap, ViewPort.Destroy): Use the new helper methods to
160            handle the map subscriptions
161            (ViewPort.Map, ViewPort.map_projection_changed)
162            (ViewPort.layer_projection_changed): Add or update doc-strings
163    
164            * test/test_connector.py (TestPublisher.test_issue_simple): Fix
165            typo
166            (MyConduit): Helper class for the Conduit test.
167            (TestConduit): Test cases for Conduit
168    
169            * test/test_connector.py: Use support.run_tests as main.
170    
171            * test/test_viewport.py (ViewPortTest.setUp): Also subscribe to
172            the TITLE_CHANGED messages
173            (ViewPortTest.test_forwarding_title_changed): New test to check
174            whether the viewport forwards the map's TITLE_CHANGED messages
175            (TestViewportWithPostGIS.tearDown): Call the map's Destroy method
176            after the port's because the latter may require a still functional
177            map.
178    
179    2003-10-06  Bernhard Herzog  <[email protected]>
180    
181            * Thuban/UI/application.py (ThubanApplication.maps_changed): Add
182            doc-string
183    
184    2003-10-06  Bernhard Herzog  <[email protected]>
185    
186            * test/test_viewport.py (ViewPortTest.setUp)
187            (SimpleViewPortTest.test_init_with_size): Move the test for the
188            initial size as a constructor parameter from ViewPortTest.setUp
189            method to a new separate test in SimpleViewPortTest.
190    
191    2003-10-06  Bernhard Herzog  <[email protected]>
192    
193            * test/test_viewport.py (MockView): New class derived from
194            ViewPort with a mock implementation of GetTextExtent to be used in
195            the test cases
196            (ViewPortTest.setUp): Use MockView instead of ViewPort
197    
198            * Thuban/UI/viewport.py (ViewPort.GetTextExtent): Turn this method
199            into what would be a "pure virtual function" in C++: always raise
200            NotImplementedError. Mock implementations for test cases don't
201            belong into the real code
202    
203    2003-10-02  Bernhard Herzog  <[email protected]>
204    
205            * test/test_layer.py (TestLayer.test_empty_layer): Explicitly
206            close the dbf file we create so that it's contents have been
207            written properly.
208    
209            * libraries/shapelib/shptree.c, libraries/shapelib/shpopen.c,
210            libraries/shapelib/shapefil.h, libraries/shapelib/dbfopen.c:
211            Update to shapelib 1.2.10
212    
213    2003-10-01  Jan-Oliver Wagner <[email protected]>
214    
215            * Thuban/UI/tree.py, Thuban/UI/main.py: Remove the #! line as
216            it annoys lintian which warns about these files not being
217            executable. The #! isn't necessary here since if you absolutely
218            must execute them you can always say "python <filename>".
219    
220    2003-09-26  Bernhard Herzog  <[email protected]>
221    
222            * Thuban/Model/classgen.py (GenQuantiles0): Removed since it's
223            only used in GREAT-ER but not used in Thuban itself. When GREAT-ER
224            is ported to a newer the import will fail, so it should be noticed
225            immediately that this function is gone.
226            Fixes RT#1919
227    
228    2003-09-26  Bernhard Herzog  <[email protected]>
229    
230            Add a DTD for the projection files and make thuban write valid
231            projection files
232    
233            * Resources/XML/projfile.dtd: New. DTD for thuban's projection
234            files
235    
236            * Thuban/Model/resource.py (ProjFileSaver.write): Use
237            'projectionlist' as the name in the document type declaration so
238            that it matches the element type of the root element.
239    
240            * test/test_proj.py (sample_projfile, sample_projfile2): Use
241            'projectionlist' as the name in the document type declaration just
242            as it is done now in the files thuban would write
243            (sample_projfile, sample_projfile_data): Fix spelling of
244            "Mercator"
245            (TestProjFile.doTestWrite): Validate the written and the expected
246            XML data
247            (TestProjFile): Derive from ValidationTest so that we can run xml
248            validation tests
249    
250    2003-09-24  Bernhard Herzog  <[email protected]>
251    
252            * Thuban/UI/renderer.py (ExportRenderer.render_legend): Do not
253            modify the list returned by map.Layers() in place since it is the
254            actual list of layers used by the map.
255    
256    2003-09-23  Jan-Oliver Wagner <[email protected]>
257    
258            * Doc/manual/thuban-manual.xml: Added subsection to chapter
259            Extensions to describe the extensions coming with the Thuban
260            standard package (gns2shp and importAPR).
261    
262    2003-09-23  Bernhard Herzog  <[email protected]>
263    
264            * libraries/thuban/wxproj.cpp (project_point): if there's an
265            inverse but no forward projection, convert to degrees after
266            applying the inverse projection. Fixes RT#2096
267    
268            * test/test_wxproj.py: New. Test cases for wxproj.so. One test
269            implicitly tests for the fix to RT#2096
270    
271            * test/support.py (FloatComparisonMixin.assertFloatSeqEqual):
272            Check that the sequences have the same lengths
273    
274            * Resources/Projections/defaults.proj (Geographic projection): Use
275            a much more precise value for the to_meter attribute.
276    
277    2003-09-22  Bernhard Herzog  <[email protected]>
278    
279            * test/support.py (initthuban): Make sure to unset the LANG env.
280            var. so that tests that compare translated strings work. Solves RT
281            #2094
282    
283    2003-09-22  Jan-Oliver Wagner <[email protected]>
284    
285            Small improvement of APR import.
286    
287            * Extensions/importAPR/test/test_apr.py (aprTest.test_LClass):
288            Added tests for text-ranges.
289    
290            * Extensions/importAPR/apr.py (APR_LClass.GetThubanRange): Now
291            returns a string object if the range is based on text.
292    
293            * Extensions/importAPR/importAPR.py (import_apr_dialog): Unified
294            range retrieval.
295    
296    2003-09-22  Jan-Oliver Wagner <[email protected]>
297    
298            Initial version of the importAPR extension which is in
299            experimental state.
300    
301            * /Extensions/importAPR/, /Extensions/importAPR/samples/,
302            /Extensions/importAPR/test/: New directories.
303    
304            * /Extensions/importAPR/samples/README: New: Howto load the samples.
305    
306            * /Extensions/importAPR/samples/iceland.apr: New: A sample APR
307            file which refers to the Thuban Iceland demo data.
308    
309            * /Extensions/importAPR/test/README: New: Howto execute the tests.
310    
311            * /Extensions/importAPR/test/test_apr.py: New: Tests for APR classes.
312    
313            * /Extensions/importAPR/apr.py: New: Classes for ArcView Objects
314            as in '.apr'-files.
315    
316            * /Extensions/importAPR/odb.py: New: Classes for generic ArcView
317            ODB Objects as in '.apr', '.avl' and other files.
318    
319            * /Extensions/importAPR/__init__.py: New: Init to make this
320            directory a package.
321    
322            * /Extensions/importAPR/importAPR.py: New: Import a ArcView
323            project file (.apr) and convert it to Thuban.
324    
325    2003-09-22  Jan-Oliver Wagner <[email protected]>
326    
327            * Extensions/gns2shp.gns2shp.py: The main module of gns2shp.
328    
329    2003-09-19  Jan-Oliver Wagner <[email protected]>
330    
331            * Doc/manual/thuban-manual.xml: Extended section 'Installation'
332            with description on RPM installation and RPM binary package
333            creation.
334    
335    2003-09-18  Bernhard Herzog  <[email protected]>
336    
337            * setup.py (data_files): Only add the mo files if the Locales
338            directory actually exists, so that setup.py works with a fresh CVS
339            checkout
340    
341    2003-09-12  Jan-Oliver Wagner <[email protected]>
342    
343            * Examples/simple_extensions/simple_tool.py: bugfix: Tool is now
344            in viewport, not anymore in view
345    
346    2003-09-04  Jan-Oliver Wagner <[email protected]>
347    
348            Introducing first Extension (gns2shp).
349    
350            * Extensions, Extensions/gns2shp, Extensions/gns2shp/test: New.
351    
352            * Extensions/__init__.py: New. init to make this dir a package.
353    
354            * Extensions/gns2shp/__init__.py: New. init to make this dir a package.
355    
356            * Extensions/gns2shp/test/README: New. some info on this test directory.
357    
358            * Extensions/gns2shp/test/ls.txt: New. test data set (Liechtenstein).
359    
360            * Extensions/gns2shp/test/test_gns2shp.py: New. Test for correct creation
361            of Shapefile from GNS text file format
362    
363    2003-09-03  Jan-Oliver Wagner <[email protected]>
364    
365            Fix/workaround for bug #2019:
366            https://intevation.de/rt/webrt?serial_num=2019
367    
368            * Thuban/UI/identifyview.py (IdentifyView.ID_STOP): New.
369            (IdentifyView.__init__): Added another button that allows to
370            stop the identify mode.
371            (IdentifyView.OnStop): New. Stops the identify mode.
372    
373    2003-09-03  Jan-Oliver Wagner <[email protected]>
374    
375            Introducing a new exception dialog that allows to exit the
376            application immediately.
377            This fixes bug #2060: https://intevation.de/rt/webrt?serial_num=2060
378    
379            * Thuban/UI/exceptiondialog.py: New. A special exception dialog.
380    
381            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
382            Made strings available to translations. Exchanged the simple
383            ScrolledMessageDialog by the new ExceptionDialog.
384    
385    2003-09-01  Bernhard Herzog  <[email protected]>
386    
387            * NEWS: New. Summary of changes and release notes.
388    
389            * MANIFEST.in: Add NEWS
390    
391    2003-09-01  Bernhard Herzog  <[email protected]>
392    
393            * MANIFEST.in: Correct the include statement for the mo-files and
394            include the documentation too.
395    
396            * setup.py (data_files): Add the .mo files
397            (setup call): Up to version 0.9.0
398    
399    2003-09-01  Bernhard Herzog  <[email protected]>
400    
401            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Change the
402            parameter list to just parent and session
403            (ChooseDBTableDialog.__set_properties): Removed. Setting the
404            selection of empty list boxes is not allowed (and produces C++
405            assertion errors) and the rest of the setup is better done in
406            __init__ anyway.
407            (ChooseDBTableDialog.OnCancel, ChooseDBTableDialog.OnOK)
408            (ChooseDBTableDialog.OnLBDClick, DBDialog.OnOK): Use the Python
409            builtins True/False for booleans to avoid warnings from wxPython
410    
411            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Adapt to new
412            ChooseDBTableDialog constructor parameters.
413    
414    2003-09-01  Bernhard Herzog  <[email protected]>
415    
416            * Thuban/Model/postgisdb.py
417            (PostGISTable): Extend doc-string
418            (PostGISTable._fetch_table_information): Set the column index
419            correctly, pretending ignored columns don't exist.
420    
421            * test/test_postgis_db.py (TestPostGISIgnoredColumns): New tests
422            for postgis tables with data types not yet supported by thuban.
423    
424    2003-08-29  Bernhard Herzog  <[email protected]>
425    
426            * HOWTO-Release: Tweak item about running the tests.
427    
428    2003-08-29  Jan-Oliver Wagner <[email protected]>
429    
430            * /Doc/manual/thuban-manual.xml: updated to version 1.0pre2.
431    
432    2003-08-29  Bernhard Herzog  <[email protected]>
433    
434            Add some missing parameters to projections. Proj complains about
435            them on windows but for some reason not on Linux.
436    
437            * test/test_save.py (SaveSessionTest.testLayerProjection): Add
438            missing required projection parameters
439    
440            * test/test_proj.py (TestProjFile.test): Add missing required
441            projection parameters
442    
443            * test/test_load_0_8.py (TestLayerProjection.file_contents)
444            (TestLayerProjection.test): Add missing required projection
445            parameters and tests for them
446    
447            * test/test_load.py (TestLayerProjection.file_contents)
448            (TestLayerProjection.test): Add missing required projection
449            parameters and tests for them
450    
451            * test/test_layer.py (TestLayer.test_base_layer): Add missing
452            required projection parameters
453    
454    2003-08-29  Bernhard Herzog  <[email protected]>
455    
456            * libraries/pyprojection/Projection.i: Use pj_get_errno_ref to
457            access the pj_errno because directly accessing pj_errno doesn't
458            work on windows if the proj library is in a DLL
459    
460            * libraries/pyprojection/Projection_wrap.c: Update from Projection.i
461    
462    2003-08-28  Bernhard Herzog  <[email protected]>
463    
464            * test/test_proj.py: Import things from Thuban after calling
465            initthuban
466    
467            * test/test_load.py (LoadSessionTest.filenames): New class
468            variable with the filename attributes to normalize
469            (LoadSessionTest.check_format): Pass self.filenames to
470            sax_eventlist to normalize the filename attributes
471    
472            * test/xmlsupport.py: Add cvs keywords
473            (SaxEventLister.__init__): New parameter filenames which indicates
474            attributes that contain filenames
475            (SaxEventLister.startElementNS): Normalize the filename attributes
476            with os.path.normpath
477            (sax_eventlist): New parameter filenames to pass through to
478            SaxEventLister
479    
480            * test/test_derivedshapestore.py: Make this file callable as a
481            program to execute the tests
482            (TestDerivedShapeStoreExceptions.test_table_with_wrong_size): Bind
483            the session to self.session so that it gets destroyed properly
484    
485            * test/test_layer.py (TestLayer.tearDown): Call the session's
486            Destroy method
487    
488            * test/test_map.py (TestMapBase.tearDown): Destroy self.session
489            too if it exists
490            (TestMapAddLayer.test_add_layer): Bind the session to self.session
491            so that it gets destroyed properly
492    
493            * test/postgissupport.py (reason_for_not_running_tests): Add a
494            test for the existence of popen2.Popen4.
495    
496            * test/test_save.py (SaveSessionTest.tearDown): New. Provide a
497            reliable way to destroy the sessions created in the test cases
498            (SaveSessionTest.test_dbf_table): Bind the session to self.session
499            so that it gets destroyed properly
500            (SaveSessionTest.testLayerProjection): Bind the session to
501            self.session so that it gets destroyed properly
502    
503            * test/test_session.py (UnreferencedTablesTests.tearDown): Make
504            sure that the session is destroyed properly
505    
506            * test/test_shapefilestore.py: Make this callable as a program to
507            execute the tests
508    
509            * test/test_scalebar.py: Remove unnecessary import of _ from
510            Thuban
511    
512            * test/support.py (print_garbage_information): Call initthuban
513            here because it may be called indirectly from test cases that test
514            test support modules which do not use anything from thuban itself
515            (ThubanTestProgram.runTests): Remove unnecessary debug print
516    
517    2003-08-28  Bernhard Herzog  <[email protected]>
518    
519            * Thuban/version.py (longversion): Update to 0.9
520    
521            * Thuban/UI/mainwindow.py: Remove some unused imports
522    
523            * README: Add section about required additional software. Add date
524            and revision CVS keywords
525    
526            * HOWTO-Release: Add item about the translations. Add date and
527            revision CVs keywords and change formatting to match README a bit
528            better
529    
530            * po/de.po: Update for 0.9
531    
532            * test/README: Tweak the wording a little because many tests are
533            not really unittest.
534    
535    2003-08-27  Bernhard Herzog  <[email protected]>
536    
537            As preparation for the 0.9 release, switch thuban files to a
538            non-dev namespace
539    
540            * Thuban/Model/save.py (SessionSaver.write_session): Write files
541            with the http://thuban.intevation.org/dtds/thuban-0.9.dtd
542            namespace
543    
544            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
545            http://thuban.intevation.org/dtds/thuban-0.9.dtd namespace too
546    
547            * test/test_save.py (SaveSessionTest.dtd)
548            (SaveSessionTest.testEmptySession)
549            (SaveSessionTest.testSingleLayer)
550            (SaveSessionTest.testLayerProjection)
551            (SaveSessionTest.testRasterLayer)
552            (SaveSessionTest.testClassifiedLayer)
553            (SaveSessionTest.test_dbf_table)
554            (SaveSessionTest.test_joined_table)
555            (SaveSessionTest.test_save_postgis): Update for new namespace
556    
557            * test/test_load.py (LoadSessionTest.dtd, TestSingleLayer)
558            (TestLayerVisibility.file_contents, TestLabels.file_contents)
559            (TestLayerProjection.file_contents)
560            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
561            (TestPostGISLayer.file_contents)
562            (TestPostGISLayerPassword.file_contents)
563            (TestLoadError.file_contents, TestLoadError.test): Update for new
564            namespace
565    
566    2003-08-27  Bernhard Herzog  <[email protected]>
567    
568            Make the table interface distinguish between row ids (an integer
569            that uniquely identifies a row) and row ordinals (a simple row
570            count from 0 to NumRows() - 1)
571    
572            * Thuban/Model/postgisdb.py (PostGISTable.RowIdToOrdinal)
573            (PostGISTable.RowOrdinalToId): New methods to conver between row
574            ids and row ordinals
575            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue): New keyword
576            parameter row_is_ordinal to indicate whether the row parameter is
577            the row id or the ordinal
578    
579            * Thuban/Model/transientdb.py (TransientTableBase.RowIdToOrdinal)
580            (TransientTableBase.RowOrdinalToId)
581            (AutoTransientTable.RowIdToOrdinal)
582            (AutoTransientTable.RowOrdinalToId): Same new methods as in
583            PostGISTable.
584            (TransientTableBase.ReadRowAsDict, TransientTableBase.ReadValue)
585            (AutoTransientTable.ReadRowAsDict, AutoTransientTable.ReadValue):
586            Same new parameter as in PostGISTable.
587    
588            * Thuban/Model/table.py (DBFTable.RowIdToOrdinal)
589            (DBFTable.RowOrdinalToId, MemoryTable.RowIdToOrdinal)
590            (MemoryTable.RowOrdinalToId): Same new methods as in PostGISTable.
591            (DBFTable.ReadValue, DBFTable.ReadRowAsDict)
592            (MemoryTable.ReadValue, MemoryTable.ReadRowAsDict): Same new
593            parameter as in PostGISTable.
594    
595            * Thuban/UI/tableview.py (DataTable.RowIdToOrdinal)
596            (DataTable.RowOrdinalToId): New methods to convert between row ids
597            and row ordinals.
598            (TableGrid.SelectRowById): New method to select a row based on its
599            ID as opposed to its ordinal
600            (DataTable.GetValue, TableGrid.OnRangeSelect)
601            (TableGrid.OnSelectCell, LayerTableGrid.select_shapes)
602            (QueryTableFrame.OnQuery, QueryTableFrame.get_selected)
603            (LayerTableFrame.__init__): Convert between row ids and row
604            ordinals as appropriate
605    
606            * test/postgissupport.py (PostGISDatabase.__init__): Add
607            doc-string.
608            (PostGISDatabase.initdb): The optional third item in a tuple in
609            tables is now a (key, value) list with additional arguments to
610            pass to upload_shapefile
611            (upload_shapefile): New parameter gid_offset to allow gids that
612            are not the same as the shapeids in the shapefile
613            (PostgreSQLServer.get_default_static_data_db): Use the new
614            gid_offset to make the gids in landmarks 1000 higher than the
615            shapeids in the shapefile
616    
617            * test/test_viewport.py
618            (TestViewportWithPostGIS.test_find_shape_at_point): Adapt to the
619            new shapeids in the landmarks table
620    
621            * test/test_transientdb.py
622            (TestTransientTable.run_iceland_political_tests)
623            (TestTransientTable.test_transient_joined_table): Add tests for
624            the new table methods and new keywords arguments.
625    
626            * test/test_postgis_db.py
627            (TestPostGISTable.test_read_row_as_dict_row_count_mode)
628            (TestPostGISTable.test_read_value_row_count_mode)
629            (TestPostGISTable.test_row_id_to_ordinal)
630            (TestPostGISTable.test_row_oridnal_to_id): New test for the new
631            table methods and the new arguments
632            (TestPostGISShapestorePoint.test_shapes_in_region)
633            (TestPostGISShapestorePoint.test_shape_raw_data)
634            (TestPostGISShapestorePoint.test_shape_points)
635            (TestPostGISShapestorePoint.test_shape_shapeid)
636            (TestPostGISShapestorePoint.test_all_shapes)
637            (TestPostGISTable.test_simple_query)
638            (TestPostGISTable.test_simple_query)
639            (TestPostGISTable.test_simple_query)
640            (TestPostGISTable.test_read_value)
641            (TestPostGISTable.test_read_row_as_dict): Adapt to the new
642            shapeids in the landmarks table
643    
644            * test/test_memory_table.py
645            (TestMemoryTable.test_read_row_as_dict_row_count_mode)
646            (TestMemoryTable.test_read_value_row_count_mode)
647            (TestMemoryTable.test_row_id_to_ordinal)
648            (TestMemoryTable.test_row_oridnal_to_id): New test for the new
649            table methods and the new arguments
650    
651            * test/test_dbf_table.py
652            (TestDBFTable.test_read_row_as_dict_row_count_mode)
653            (TestDBFTable.test_read_value_row_count_mode)
654            (TestDBFTable.test_row_id_to_ordinal)
655            (TestDBFTable.test_row_oridnal_to_id): New test for the new table
656            methods and the new arguments
657    
658    2003-08-26  Bernhard Herzog  <[email protected]>
659    
660            * Thuban/Model/postgisdb.py (PostGISShapeStore.BoundingBox): Use a
661            more postgis specific but much faster method to get the bounding
662            box
663    
664    2003-08-26  Bernhard Herzog  <[email protected]>
665    
666            * Thuban/Model/postgisdb.py (PostGISTable.Title)
667            (PostGISShapeStore.AllShapes): Add these missing methods.
668            (PostGISShapeStore.ShapesInRegion): No need to raise
669            StopIteration. We can simply return
670    
671            * test/test_postgis_db.py (TestPostGISTable.test_title)
672            (TestPostGISShapestorePoint.test_all_shapes): New tests for the
673            new methods
674    
675    2003-08-25  Bernhard Herzog  <[email protected]>
676    
677            * Thuban/Model/postgisdb.py (shapetype_map): Add MUTLIPOLYGON.
678    
679            * test/test_postgis_db.py (PolygonTests): New class containing
680            those tests from TestPostGISShapestorePolygon that can also be
681            used to test MUTLIPOLYGON tables
682            (TestPostGISShapestorePolygon): Most tests are now in PolygonTests
683            so derive from that
684            (TestPostGISShapestoreMultiPolygon): New class with tests for
685            MUTLIPOLYGON tables
686    
687            * test/postgissupport.py (PostGISDatabase.initdb): Allow the
688            tables argument to have tuples with three items to override the
689            WKT type used.
690            (PostgreSQLServer.get_default_static_data_db): Use the above to
691            create a polygon table with MUTLIPOLYGONs
692            (point_to_wkt, coords_to_point, polygon_to_wkt, coords_to_polygon)
693            (arc_to_wkt, coords_to_multilinestring): Rename from *_to_wkt to
694            coords_to*
695            (coords_to_multipolygon): New. Convert to MUTLIPOLYGON
696            (wkt_converter): New. Map WKT types to converters
697            (upload_shapefile): New parameter force_wkt_type to use a
698            different WKT type than the default
699    
700    2003-08-25  Bernhard Herzog  <[email protected]>
701    
702            * Thuban/UI/application.py
703            (ThubanApplication.run_db_param_dialog): New. Suitable as a
704            db_connection_callback. Main difference is that the dialog run
705            from this method doesn't have a parent so it can be used even when
706            there is no main window
707            (ThubanApplication.OpenSession): Use self.run_db_param_dialog if
708            no db_connection_callback was given. This way the dialog pops up
709            even when the .thuban file was given as a command line parameter.
710    
711    2003-08-25  Bernhard Herzog  <[email protected]>
712    
713            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Release the the mouse
714            before calling MouseLeftUp. MouseLeftUp may pop up modal dialogs
715            which leads to an effectively frozen X session because the user
716            can only interact with the dialog but the mouse is still grabbed
717            by the canvas.
718            Also, call the tool's Hide method before MouseLeftUp because
719            MouseLeftUp may change the tool's coordinates.
720    
721    2003-08-25  Bernhard Herzog  <[email protected]>
722    
723            * Thuban/UI/application.py (ThubanApplication.OpenSession): Catch
724            LoadCancelled exceptions and handle them by returning immediately.
725    
726    2003-08-25  Bernhard Herzog  <[email protected]>
727    
728            GUI part of loading sessions with postgis connections which may
729            require user interaction to get passwords or updated parameters
730    
731            * Thuban/UI/dbdialog.py (DBDialog): Reimplement to make it look a
732            bit nucer and be more generic.
733            (DBFrame.OnAdd): Adapt to new DBDialog interface
734    
735            * Thuban/UI/application.py (ThubanApplication.OpenSession): New
736            optional parameter db_connection_callback which is passed to
737            load_session.
738    
739            * Thuban/UI/mainwindow.py (MainWindow.run_db_param_dialog): New.
740            Suitable as a db_connection_callback
741            (MainWindow.OpenSession): Use self.run_db_param_dialog as the
742            db_connection_callback of the application's OpenSession method
743    
744    
745    2003-08-25  Bernhard Herzog  <[email protected]>
746    
747            Basic loading of sessions containing postgis connections:
748    
749            * Thuban/Model/load.py (LoadError): Add doc-string
750            (LoadCancelled): New exception class to indicate a cancelled load
751            (SessionLoader.__init__): Add the db_connection_callback parameter
752            which will be used by the loader to get updated parameters and a
753            password for a database connection
754            (SessionLoader.__init__): Add the new XML elements to the
755            dispatchers dictionary
756            (SessionLoader.check_attrs): Two new conversions, ascii to convert
757            to a byte-string object and idref as a generic id reference
758            (SessionLoader.start_dbconnection)
759            (SessionLoader.start_dbshapesource): New. Handlers for the new XML
760            elements
761            (load_session): Add the db_connection_callback to pass through the
762            SessionLoader
763    
764            * test/test_load.py (TestPostGISLayer, TestPostGISLayerPassword):
765            New classes to test loading of sessions with postgis database
766            connections.
767    
768    2003-08-25  Bernhard Herzog  <[email protected]>
769    
770            * Thuban/UI/mainwindow.py (__ThubanVersion__): Remove this and
771            replace it and the comment with __BuildDate__ by the Source: and
772            Id: cvs keywords as used in the other files.
773    
774    2003-08-25  Bernhard Herzog  <[email protected]>
775    
776            * Thuban/Model/load.py (SessionLoader.check_attrs): Raise a
777            LoadError when a required attribute is missing. The code used to
778            be commented out for some reason, but probably should have been
779            active.
780    
781            * test/test_load.py (TestLoadError.test): Test the message in the
782            LoadError too to make sure it really is about the missing
783            attribute
784    
785    2003-08-22  Bernhard Herzog  <[email protected]>
786    
787            * test/test_save.py (SaveSessionTest.test_dbf_table)
788            (SaveSessionTest.test_joined_table): Add XML validation tests.
789    
790    2003-08-22  Bernhard Herzog  <[email protected]>
791    
792            Implement saving a session with a postgis connection
793    
794            * Resources/XML/thuban-0.9.dtd (dbconnection, dbshapesource) New
795            elements for database connections and shapestores using db
796            connections
797            (session): Add the dbconnections to the content model
798    
799            * Thuban/Model/save.py (SessionSaver.write_db_connections): New.
800            Write the db connections
801            (SessionSaver.write_session): Call write_db_connections to write
802            the connection before the data sources
803            (SessionSaver.write_data_containers): Handle postgis shapestores
804    
805            * test/test_save.py (SaveSessionTest.thubanids)
806            (SaveSessionTest.thubanidrefs): Update for new DTD
807            (SaveSessionTest.test_save_postgis): New. Test saving a session
808            with postgis connections
809    
810            * Thuban/Model/postgisdb.py (PostGISTable.DBConnection)
811            (PostGISTable.TableName): New accessor methods for the connection
812            and table name
813    
814            * test/test_postgis_db.py (TestPostGISTable.test_dbconn)
815            (TestPostGISTable.test_dbname): New methods to test the new
816            PostGISConnection methods
817    
818  2003-08-22  Bernhard Herzog  <[email protected]>  2003-08-22  Bernhard Herzog  <[email protected]>
819    
820          * Thuban/Model/postgisdb.py (ConnectionError): New exception class          * Thuban/Model/postgisdb.py (ConnectionError): New exception class
# Line 823  Line 1640 
1640    
1641          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as
1642          it annoys lintian which warns about these files not being          it annoys lintian which warns about these files not being
1643          executable. The #1 isn't necessary here since if you absolutely          executable. The #! isn't necessary here since if you absolutely
1644          must execute them you can always say "python <filename>".          must execute them you can always say "python <filename>".
1645    
1646          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove

Legend:
Removed from v.1637  
changed lines
  Added in v.1812

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26