/[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 2021 by bh, Wed Dec 3 18:57:06 2003 UTC revision 2256 by bernhard, Mon Jun 28 10:55:10 2004 UTC
# Line 1  Line 1 
1    2004-06-26  Bernhard Reiter <[email protected]>
2    
3            * Extensions/svgexport/test/test_svgmapwriter.py:
4            Removed class VFile and used standard StringIO instead.
5    
6    2004-06-23  Jan Sch�ngel  <[email protected]>
7    
8            Add the export function to the umn_mapserver extension.
9    
10            * Extension/umn_mapserver/mf_export.py: New. This module extents
11            Thuban with the possibility to export the Thuban content.
12    
13            * Extensions/umn_mapserver/mapfile.py: Expand the classes to use
14            with the export module. Especially added the possibility to
15            add thuban objects directly to the map objects.
16    
17            * Extensions/umn_mapserver/mf_import.py: Removed the wxCHANGE_DIR,
18            because of the hint from Bernhard Herzog.
19            Corrected the handling of absolute pathnames.
20            Changed the Text of the Menu-Item, now the beginning is upper case.
21    
22            * Extensions/umn_mapserver/README: Added the --with-tiff statement.
23    
24    2004-06-16  Jan Sch�ngel  <[email protected]>
25    
26            Add a sample and make some changes.
27    
28            * Extension/umn_mapserver/mf_import.py: Changed the wxPython.wx
29            import from * to explicit used statements. Changed the
30            Thuban.UI.mainwindow import phrase, too.
31            (import_mapfile):Corrected a clerical mistake.
32            Added wxCHANGE_DIR in OpenFile Dialog.
33            Added a MultipleChoiceDialog, to select the layers to load from
34            mapfile into thuban. Thereby the projection is only set if one layer
35            is selected.
36            Added the possibility to handle relative pathnames which uses
37            up-level references.
38            Removed some doubled code.
39            Corrected an error with integer values used as label in thuban
40            ClassGroup.
41            
42            * Extensions/umn_mapserver/sample: New.
43    
44            * Extensions/umn_mapserver/sample/README: New. Describes the
45            usage of the sample files.
46    
47            * Extensions/umn_mapserver/sample/iceland.map: New. This is
48            a suitable .map-file for the iceland data.
49    
50            * Extensions/umn_mapserver/sample/index.html: New. The template
51            for the mapfile.  
52    
53            * Extensions/umn_mapserver/sample/iceland.html: New. Initialisation
54            file for the Iceland Application on web.
55    
56            * Extensions/umn_mapserver/README: Corrected a inaccuracy and added
57            some details.
58    
59            * Extensions/umn_mapserver/test/test_mapserver
60            (mapserver_import_Test_generalClasses.test_MF_Color):
61            Corrected the thubancolor test.
62    
63    2004-06-15  Jan Sch�ngel  <[email protected]>
64    
65            * Extensions/umn_mapserver/README: New. Install instruction.
66    
67    2004-06-14  Bernhard Reiter <[email protected]>
68    
69            * libraries/thuban/cpl_mfile.h: Added copyright header.
70    
71            * libraries/thuban/ cpl_mfile.cpp, cpl_mfile.h: Added non-protecting
72            Free Software License so that it is most useful with gdalwarp
73            and bmpdataset.
74    
75    2004-06-14  Bernhard Herzog  <[email protected]>
76    
77            * Thuban/UI/multiplechoicedialog.py (__version__): Add missing
78            import of wxPython.wx itself (as opposed to the contents of
79            wxPython.wx).  For some reason wxPython.wx is available as
80            wxPython.wx.wx in at least some 2.4 releases.  Fixes RT#2482
81            wrt. wxPython 2.4.
82    
83    2004-06-10  Jan Sch�ngel  <[email protected]>
84    
85            Initial version of new extension "umn_mapserver".  This extension aims
86            to manage configuration for the UMN MapServer application.  This
87            inital version just imports the .map-files and displays all, Thuban is
88            capable of.
89    
90            * Extensions/umn_mapserver, Extensions/umn_mapserver/test: New.
91    
92            * Extensions/umn_mapserver/test/README: New. Describes how to run the
93            tests.
94    
95            * Extensions/umn_mapserver/test/test.map: New. This is a test
96            .map-file for automated tests of the umn_mapserver extension of
97            Thuban.
98    
99            * Extensions/umn_mapserver/test/test_mapserver.py: New. Tests for
100            UMN Mapserver classes.
101    
102            * Extensions/umn_mapserver/__init__.py: New. Init to make this
103            directory a package.
104    
105            * Extensions/umn_mapserver/mapfile.py: New. Classes to represent
106            '.map'-file objects.
107    
108            * Extensions/umn_mapserver/mf_import.py: New. This module extends
109            Thuban with the possibility to handle UMN MapServer mapfiles.
110    
111    2004-06-03  Bernhard Herzog  <[email protected]>
112    
113            * Thuban/Model/layer.py (Layer.TreeInfo): Convert the bounding box
114            to a tuple before using it as arguments to the % operator.  This
115            fixes the formatting issue filed in RT#2239 on 2004-01-13 and
116            reported today on thuban-list by Jan Sch�ngel
117    
118            * test/test_layer.py (TestLayerModification.setUp): Save the
119            filename as an instance variable so we can refer to it in tests
120            (TestLayerModification.test_tree_info): Uncomment this method
121            again and make it work.  This tests for the formatting issue
122            filed in RT#2239 on 2004-01-13
123    
124    2004-05-28  Bernhard Herzog  <[email protected]>
125    
126            * Thuban/UI/baserenderer.py: Fix some typos.
127    
128    2004-05-18  Jan-Oliver Wagner <[email protected]>
129    
130            * Extensions/gns2shp/gns2shp.py (gns2shp): Fixed a bug
131            by increasing a field size.
132    
133    2004-05-17  Bernhard Herzog  <[email protected]>
134    
135            Update to newest shapelib and get rid of Thuban specific
136            extensions, i.e. use the new DBFUpdateHeader instead of our
137            DBFCommit kludge
138    
139            * libraries/shapelib/shpopen.c: Update to version from current
140            shapelib CVS.
141    
142            * libraries/shapelib/shapefil.h: Update to version from current
143            shapelib CVS.
144    
145            * libraries/shapelib/dbfopen.c: Update to version from current
146            shapelib CVS.
147            (DBFCommit): Effectively removed since shapelib itself has
148            DBFUpdateHeader now which is better for what DBFCommit wanted to
149            achieve.  
150            We're now using an unmodified version of dbfopen.
151    
152            * setup.py (extensions): Add the HAVE_UPDATE_HEADER macro with
153            value '1' to the Lib.dbflibc extension.  This simply reflects the
154            shapelib and pyshapelib updates
155    
156    2004-05-16  Jan-Oliver Wagner <[email protected]>
157    
158            Finished introduction of Menu.FindOrInsertMenu.
159    
160            * Extensions/drawshape/drawshape.py: Add the command
161            to the experimental menu additionally to the toolbar.
162    
163            * Extensions/svgexport/svgsaver.py: Use FindOrInsertMenu() instead of
164            finding menu on its own.
165    
166            * Doc/manual/thuban-manual.xml: updated sample file
167            to use FindOrInsertMenu().
168    
169            * Examples/simple_extensions/hello_world.py: Use FindOrInsertMenu()
170            instead of finding menu on its own.
171    
172    2004-05-11  Jan-Oliver Wagner <[email protected]>
173    
174            * test/test_menu.py (MenuTest.test): Added testing
175            of method Menu.FindOrInsertMenu.
176    
177    2004-05-10  Jan-Oliver Wagner <[email protected]>
178    
179            Introduce and use Menu.FindOrInsertMenu.
180    
181            * Thuban/UI/menu.py (Menu.FindOrInsertMenu): New. Find a
182              given menu or, if not found, insert it.
183    
184            * Extensions/bboxdump/bboxdump.py, /Extensions/gns2shp/gns2shp.py,
185            /Extensions/importAPR/importAPR.py, Extensions/profiling/profiling.py,
186            /Extensions/wms/wms.py: Use FindOrInsertMenu() instead of finding
187            menu on its own.
188    
189    2004-05-06  Jan-Oliver Wagner <[email protected]>
190    
191            Introduce a abstract ColorDialog class and remove
192            and outdated file.
193    
194            * Thuban/UI/proj4dialog.py: Removed. It is has been
195            replaced by projdialog for quite a while and is not used
196            anymore.
197    
198            * Thuban/UI/colordialog.py: New. Abstraction for color selection
199            dialog(s).
200    
201            * Thuban/UI/classifier.py (SelectPropertiesDialog.__GetColor):
202            Now calls the abstract ColorDialog instead of wxColourDialog.
203            This also removed the dependency to Color class conversion
204            from this function.
205    
206    2004-05-04  Frank Koormann  <[email protected]>
207    
208            * Extensions/bboxdump/__init__.py: Fixed string left over from
209            copying.
210    
211            * Extensions/bboxdump/bboxdump.py (bboxdump):
212            Use layer.ShapeStore().AllShapes() to loop over shapes instead of
213            xrange(layer.NumShapes()). Compile the bboxmessage from a list
214            of formatted outputs (string.join) instead of appending to the
215            message. Two progress bar dialogs to report progress on the sometimes
216            lenghty processing.
217    
218    2004-04-22  Frank Koormann  <[email protected]>
219    
220            New Extension to dump bounding boxes of all shapes of the selected
221            layer. An optional column can be specified to group the objects,
222            in this case the bounding box is a union of the separate boxes.
223            Dump can be displayed in a ScrolledMessageDialog or written to file.
224            The Extension is simply a combination of available and well tested
225            Thuban functionality.
226    
227            * Extensions/bboxdump/__init__.py: New: Init to make this
228            directory a package.
229    
230            * Extensions/bboxdump/bboxdump.py: New: Dump bounding boxes of
231            all shapes of the selected layer.
232    
233    2004-04-22  Jan-Oliver Wagner <[email protected]>
234    
235            * Thuban/UI/classgen.py (GenUniquePanel.__init__): Fixed two
236            strings to be i18n now.
237    
238    2004-04-18  Jan-Oliver Wagner <[email protected]>
239    
240            Changing popup menu of legend from direct building
241            to using the Menu construction as used for the mainwindow.
242    
243            * Thuban/UI/mainwindow.py: New method commands: layer_to_top,
244            layer_to_bottom, layer_visibility
245            (MainWindow.LayerToTop): New. Put current layer to the top.
246            (MainWindow.LayerToBottom): New. Put current layer to bottom.
247            (MainWindow.HideLayer, MainWindow.ShowLayer, _has_visible_map):
248            Replace 1,0 by True, False.
249            (MainWindow.ToggleLayerVisibility): New. Toggle visibility of
250            current layer.
251            (MainWindow.LayerShowTable): Removed raising of dialog.
252            (_has_selected_layer_visible): New. Support function.
253    
254            * Thuban/UI/legend.py: ID_POP_xxx: removed.
255            (LegendPanel.__init__): Removed EVT_MENU bindings.
256            (LegendTree._OnRightClick): Replace direct creation of
257            menu via wx Classes by applying the menu definition
258            as of Menu class of menu.py.
259            
260    2004-04-16  Jan-Oliver Wagner <[email protected]>
261    
262            * Thuban/UI/exceptiondialog.py (ExceptionDialog.dialog_layout): Improved
263        button string to stronger clearify that Thuban will be closed when hitting
264            the button.
265    
266            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Added docstring.
267            Now for layers without a ShapeStore a corresponding message is given
268            to the user, that this layer has no table to show.
269    
270    2004-04-15  Martin Schulze  <[email protected]>
271    
272            * Extensions/wms/layer.py (WMSLayer.setWMSFormat): Need to
273            recalculate the format for the internal render engine as well.
274    
275            * Extensions/wms/properties.py (wmsProperties): First start for a
276            properties dialog.  It's functional for a first selection of
277            layers, but still has some weired wxWidgets/GTK problems but
278            beautification can be done later.
279    
280            * Extensions/wms/layer.py: Added more documentation
281            (WMSLayer.getFormats): New: Return list of supported image formats
282            by the WMS server
283            (WMSLayer.getLayers): New: Return the list of layer names
284            supported by the WMS server
285            (WMSLayer.getLayerTitle): New: Return the title of the named layer
286            (WMSLayer.getWMSFormat): New: Return the image format that is used
287            for WMS GetMap requests
288            (WMSLayer.setWMSFormat): New: Set the image format that is used
289            for WMS GetMap requests
290            (WMSLayer.__init__): Move away from using only one layer to using
291            a list of layers (unsorted at the moment, though).
292            (WMSLayer.getVisibleLayers): New: Return the list of names for all
293            visible layers
294            (WMSLayer.setVisibleLayers): New: Set the list of names for all
295            visible layers
296    
297            * Extensions/wms/wms.py: Moved the WMS layer into layer.py in
298            order to establish a clean structure.
299    
300            * Extensions/wms/layer.py: Moved the WMS layer into a file on its
301            own in order to establish a clean structure.
302    
303    2004-04-13  Martin Schulze  <[email protected]>
304    
305            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Added
306            support for oldstyle (WMS 1.0 apparently) image format
307            specification.
308    
309            * Extensions/wms/wms.py (WMSLayer.calcFormat): Reduce the list of
310            supported graphic formats back to JPEG and BMP, PNG and others are
311            too *cough* experimental...  Sorry, I meant to filter this out
312            before I committed this part.  This should make the WMS extension
313            run from CVS again.
314            (wms_dialog): Reset an empty URL to None so that the subsequent
315            program can depend on this, since the dialog will indeed return an
316            empty URL, causing another declaration of love by Python.
317    
318            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerBBox):
319            Whenever a native BoundingBox request cannot be fulfilled, check
320            whether the requested SRS is EPSG:3426, in which case return the
321            LatLonBoundingBox values.
322    
323            * Extensions/wms/test/test_parser.py
324            (TestWMSCapabilitiesParser.test_LayerSRS): Added a test for
325            ignoring AUTO:* SRS.
326            (TestWMSCapabilitiesParser.test_LatLonBoundingBoxes_as_bboxes):
327            Added another test method to test whether the LatLonBoundingBox
328            values will be returned if BoundingBox values are requested with
329            SRS set to EPSG:3426.
330    
331            * Extensions/wms/parser.py (WMSCapabilitiesParser.peekLayers):
332            Added rudimentary support for non-EPSG SRS, i.e. ignore them for
333            the moment by placing them into a variable which is currently
334            unused.  Also test whether the EPSG SRS is numerical as it should
335            be and add an error message if it is not.
336    
337            * Extensions/wms/test/sample.xml: Added AUTO:* SRS since they
338            appear in the real world as well.  Since we cannot handle them yet
339            (OGCLib can't either), we will ignore them for the moment.
340    
341            * Extensions/wms/parser.py: Use a variable for denoting the sample
342            filename
343            (WMSCapabilitiesParser.peekLayers): Added support for error
344            messages during grok().  They will be aggregated in an array and
345            may be displayed later.  We may have to add a classification
346            "Warning" and "Error" to this.  That requires more experience,
347            though, since not every error may be lethal.
348    
349            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Raise the
350            ShowTable() dialog/frame when the user attempts to display it
351            while it has been opened before already and not closed again.
352    
353    2004-04-11  Martin Schulze  <[email protected]>
354    
355            * Extensions/wms/infodialog.py: Adjusted the class documentation
356    
357            * Extensions/wms/wms.py (WMSLayer.__init__, WMSLayer.GetMapImg):
358            Switch to using Thuban{Begin,End}BusyCursor instead of the pure
359            wxWidgets variants.
360            (WMSLayer.__init__): The epsg_id variable is named top_srs now.
361    
362            * Extensions/wms/infodialog.py: Added an information dialog that
363            will display various information about the WMS current resource,
364            so that additional information such as the title, the abstract,
365            fees and access constraints can be displayed for the user if they
366            are documented in the WMS XML.
367    
368    2004-04-10  Martin Schulze  <[email protected]>
369    
370            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Adjusted
371            string handling.  It's "foo".lower() and not lower(foo) without
372            lower imported from strings or something.
373    
374            * Extensions/wms/wms.py (WMSLayer): Incorporated WMSCapabilities
375            from capabilities.py and parser.py.  Implement priority list for
376            supported graphics formats, take care of wbmp != bmp.  PNG, TIFF
377            and GIF are supported here, but not yet by main Thuban.  Hence,
378            support for them may be removed later.  Special contribution to
379            usability: get wxWidgets to change the cursor when we're waiting
380            for data from the network so the user won't start to worry.  This
381            causes a redrawing error/warning, though.
382    
383            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Unlink
384            the DOM object.
385    
386    2004-04-01  Martin Schulze  <[email protected]>
387    
388            * Extensions/wms/capabilities.py: Adjusted documentation
389            (WMSCapabilities.__init__): Improved documentation, fixed syntax
390            (WMSCapabilities.saveCapabilities): Only catch IOError when
391            handling files
392            (WMSCapabilities.loadCapabilities): Only catch IOError when
393            handling files
394            __main__: corrected variable naming
395            (WMSCapabilities.fetchCapabilities,loadCapabilities): Make this
396            class a specialisation of WMSCapabilitiesParser as well.  Also
397            execute grok() after loading or fetching capabilities, if that
398            went well, so that subsequent calls can already access the data.
399            (WMSCapabilities.getVersion): Export the used version of the
400            GetCapabilities request, so we can use it for subsequent calls,
401            i.e. for GetMap requests.
402            (WMSCapabilities.fetchCapabilities): Added proper error handling
403            when the GetCapabilities request failed, so that the surrounding
404            program can act accordingly.
405    
406    2004-03-30  Martin Schulze  <[email protected]>
407    
408            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerSRS):
409            Adjusted the getLayerSRS method to return the list of SRSes
410            extracted from <SRS> elements instead of <BoundingBox> elements.
411            Added a bit of documentation as well.
412            (WMSCapabilitiesParser.checkLayerSRS): Removed integrity test
413            since it was only implemented due to a misunderstanding.
414    
415            * Extensions/wms/test/test_parser.py
416            (TestWMSCapabilitiesParser.test_LayerSRS): Adjust the tests to
417            reflect the corrected interpretation of the standard: i.e. a layer
418            does not have to define a BoundingBox for all SRSes it supports.
419            Hence the <SRS></SRS> specification is authoritative, not the list
420            of BoundingBoxes.
421            (TestWMSCapabilitiesParser.test_BoundingBoxes): Added a new test
422            to ensure None is returned for a non-existing SRS.
423            (TestWMSCapabilitiesParser.test_grok): Removed test_grok method
424            since it is not applicable anymore.  Listing more SRSes in <SRS>
425            elements is valid according to the specs.
426    
427    2004-03-26  Bernhard Reiter <[email protected]>
428    
429            * README: Nicer formatting of text. Improved descriptions.
430            Reflected wxWidgets name change.
431            
432            * Thuban/UI/about.py: Extended copyright to 2004 and added
433            information about the thuban-devel mailinglist.
434    
435    2004-03-24  Martin Schulze  <[email protected]>
436    
437            * Extensions/wms/capabilities.py: Renamed the class to contain
438            'WMS', also added a linebreak where required
439    
440            * Extensions/wms/parser.py: Finally added the XML parser for the
441            GetCapabilities response.
442    
443            * Extensions/wms/test/sample.xml: Adjusted the sample file so that
444            <SRS> elements match the <BoundingBox> elements, except for the
445            layer 'beschriftung'.
446    
447            * Extensions/wms/test/test_parser.py: Encode non-ascii strings
448            since Python uses unicode strings internally, otherwise
449            comparisons will fail.  Removed tests for getLayerBBoxSRS() since
450            the SRS will be calculated anyway and this method is obsoleted by
451            getLayerSRS().  Denote SRS as strings and not as cardinal numbers.
452            Move loading the sample file into the setUp method.  Added a test
453            for finding the integrity problem in the sample response.
454            Improved formatting.
455    
456            * Extensions/wms/domutils.py: Added convenience routines for
457            handling of Document Object Model (DOM) nodes.
458    
459            * Extensions/wms/test/test_domutils.py: Added a test for the
460            domutils module
461    
462    2004-03-19  Martin Schulze  <[email protected]>
463    
464            * Extensions/wms/test/test_parser.py (TestWMSCapabilitiesParser):
465            Moved path detection and adding into a module of its own,
466            adjustpath, which exports thubandir as main Thuban directory.
467    
468            * Extensions/wms/test/test_ogclib.py (TestWMSLib): Moved path
469            detection and adding into a module of its own, adjustpath, which
470            exports thubandir as main Thuban directory.  Reorganised the
471            module in order to support the SkipTest feature for Thuban test
472            cases.
473    
474            * Extensions/wms/test/adjustpath.py: Moved path detection and
475            adding into a module of its own.
476    
477    2004-03-18  Martin Schulze  <[email protected]>
478    
479            * Extensions/wms/test/test_parser.py: Added another test for
480            checking whether the WMS XML parser (to be implemented) returns
481            the information we expect.  This requires a sample WMS WML file
482            (sample.xml) which has been extracted from the frida server and
483            "improved" manually.
484    
485            * Extensions/wms/test/test_ogclib.py: Added legacy code to add the
486            main Thuban directory to the path in order to be able to import
487            random modules.  Adjusted the PyOGCLib detection to reuse the
488            information gathered.  Also added a note about the PYTHONPATH
489            environment variable.
490    
491            * Extensions/wms/test/test_ogclib.py: The format specification is
492            a mime-type, not a graphic format, hence image/jpeg wou ld be the
493            proper format and not JPEG.  We'll also have to take care of the
494            encoding of / as %2F.
495    
496    2004-03-16  Martin Schulze  <[email protected]>
497    
498            * Extensions/wms/test/test_ogclib.py: Added a (hopefully)
499            comprehensive test for the getMapURL method, built compare URLs
500            according to the documentation in OGC 01-068r3
501    
502            * Extensions/wms/capabilities.py (WMSCapabilities): Added the
503            class WMSCapabilities to manage capabilites, will incorporate
504            parsing the capabilities response and provide details for other
505            classes.
506    
507    2004-03-12  Bernhard Herzog  <[email protected]>
508    
509            Support views in addition to normal tables in the postgis
510            shapestore
511    
512            * Thuban/Model/postgisdb.py
513            (PostGISShapeStore._fetch_table_information): Add a fallback for
514            the case where the table name is not in the geometry_columns
515            table.  This is usually the case for views.  Also, set
516            self.shapestore here.
517            (PostGISShapeStore.ShapeType): No need to query the database all
518            the time.  The shape type is now determined in
519            _fetch_table_information
520    
521            * test/postgissupport.py (PostgreSQLServer.new_postgis_db)
522            (PostgreSQLServer.get_static_data_db, PostGISDatabase.__init__):
523            New parameter to specify views.
524            (PostGISDatabase.has_data): Also compare the views.  New views
525            parameter
526            (PostGISDatabase.initdb): Create the views.
527            (PostgreSQLServer.get_default_static_data_db): Add the v_landmarks
528            view
529    
530            * test/test_postgis_db.py
531            (TestPostGISShapestorePointFromViews): New.  Test a
532            PostGISShapeStore with a view
533            (TestPostGISShapestorePointOIDAsGIDColumn.setUp): Pass the name of
534            the geometry_column explicitly to test whether that works
535    
536    2004-03-12  Bernhard Herzog  <[email protected]>
537    
538            Final step for explicit id/geometry columns: Loading and saving
539    
540            * Resources/XML/thuban-1.1.dtd: New.  Derived from thuban-1.0.dtd
541            with the following changes:
542            (dbshapesource): Two new attributes id_column and geometry_column
543    
544            * Thuban/Model/save.py (SessionSaver.write): Use the new dtd
545            (SessionSaver.write_session): Use the new namespace
546            (SessionSaver.write_data_containers): Write the new dbshapesource
547            parameters
548    
549            * Thuban/Model/load.py (SessionLoader.__init__): New namespace for
550            the new file format version
551            (SessionLoader.start_dbshapesource): Handle the new db parameters
552    
553            * test/test_save.py: Update to the new dtd and namespace
554            (SaveSessionTest.test_save_postgis): Update the NonConnectionStore
555            mock object to provide a working IDColumn method.
556    
557            * test/test_load_1_0.py: New.  Copy of the test_load.py before
558            today's changes but with the round-trip tests removed.
559    
560            * test/test_load_0_9.py: Update doc-string.
561    
562            * test/test_load.py: Update all .thuban files to the new dtd and
563            namespace.
564            (TestPostGISLayer.file_contents): Add the new dbshapesource
565            paramters
566    
567    2004-03-11  Bernhard Herzog  <[email protected]>
568    
569            Next step for explicit id/geometry columns: User interaction
570    
571            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Rework how
572            the dialog is constructed. Add combo boxes to select id and
573            geometry column.  Rename some instance variables.
574            (ChooseDBTableDialog.GetTable): Return id and geometry column
575            names
576            (ChooseDBTableDialog.OnTableSelect): New. Event handler for
577            selections in the table list
578    
579            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Use id_column
580            and geometry_column
581    
582            * Thuban/Model/session.py (Session.OpenDBShapeStore): Add the new
583            parameters for id_column and geometry column of PostGISShapeStore
584            here as well.
585    
586            * Thuban/Model/postgisdb.py (type_map): Add ROWID psycog type.
587            (_raw_type_map): New. Map raw PostgreSQL type ints to thuban types
588            (PostGISConnection.GeometryTables): Use a better query to
589            determine which relations in the database might be usable for
590            shapestores.  Now supports views as well but is more PostgreSQL
591            specific
592            (PostGISConnection.table_columns): New. Somewhat experimental
593            method to let the db dialogs provide lists of columns to users so
594            that they can select id and geometry columns.
595            (PostGISTable.__init__): The default value of the id_column
596            parameter is now None it still means "gid" effectively, though.
597            (PostGISTable.IDColumn): New introspection method to return a
598            column object for the id column
599            (PostGISShapeStore.GeometryColumn): New introspection method to
600            return a column object for the geometry column
601    
602            * test/test_postgis_db.py
603            (TestPostGISConnection.test_gis_tables_non_empty):
604            Removed. Subsumed by the new:
605            (TestPostGISConnection.test_gis_tables_with_views_and_tables):
606            New. Tes the GeometryTables and table_columns methods with actual
607            tables and views.
608            (PointTests.test_id_column, PointTests.test_geometry_column):
609            New. tests for the new methods.
610            (TestPostGISShapestorePoint.setUp)
611            (TestPostGISShapestorePointSRID.setUp)
612            (TestPostGISShapestorePointExplicitGIDColumn.setUp): Fill the
613            instance variables needed by the new tests
614    
615    2004-03-11  Bernhard Herzog  <[email protected]>
616    
617            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): The row
618            numbers given to ReadValue are ordinals.
619    
620    2004-03-11  Bernhard Herzog  <[email protected]>
621    
622            Elimiate the requirement for PostGIS tables to have a column
623            called "gid".
624    
625            * Thuban/Model/postgisdb.py (PostGISTable.__init__): New parameter
626            id_column to specify which column to use to identify rows.  Also
627            new instance variables id_column and quoted_id_column
628            (PostGISTable.RowIdToOrdinal, PostGISTable.RowOrdinalToId)
629            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue)
630            (PostGISTable.SimpleQuery): Use the id column name provided to the
631            constructor instead of "gid"
632            (PostGISShapeStore.__init__): New parameter id_column analogously
633            to PostGISTable.__init__.  This parameter is simply passed through
634            to the base class constructor
635            (PostGISShapeStore._create_col_from_description): Fix typo in
636            doc-string
637            (PostGISShapeStore.Shape, PostGISShapeStore.AllShapes)
638            (PostGISShapeStore.ShapesInRegion): Use the id column name
639            provided to the constructor instead of "gid"
640    
641            * test/postgissupport.py
642            (PostgreSQLServer.get_default_static_data_db): New static table
643            landmarks_point_id with an id column != "gid.  Update the comments
644            a bit.
645            (skip_if_addgeometrycolumn_does_not_use_quote_ident): Fix typo in
646            doc-
647            (upload_shapefile): New parameter gid_column to use a name other
648            than "gid" for the column to store the shape ids
649    
650            * test/test_postgis_db.py (TableTests): New.  Mixin-class
651            containing all tests previously in TestPostGISTable.  The actual
652            tests are the same but the code is a bit more configurable to
653            allow for different id columns etc.
654            (TestPostGISTable): Derive from TableTests now for the actual
655            tests.
656            (TestPostGISTableExplicitGIDColumn): New. Like TestPostGISTable
657            except that it the landmarks_point_id table to test the id_column
658            parameter
659            (PointTests): Extend the doc-string
660            (TestPostGISShapestorePointExplicitGIDColumn)
661            (TestPostGISShapestorePointOIDAsGIDColumn): New classes derived
662            from PointTests to test the explicit id_column parameter.  One
663            tests with the name of the column holding the shape ids, the other
664            uses PostgreSQL's OID column.  For the latter a number of methods
665            have to be overwritten to make them independent of the actual id
666            values.
667    
668    2004-03-08  Silke Reimer  <[email protected]>
669    
670            Update debian directory:
671    
672            * debian/changelog: Added new version.
673            * deiban/rules: Updated management of patches (with cbds)
674            * debian/control: Added cbds to dependencies
675            * debian/patches/*: New. Adds better support for patches of thuban in
676                            debian
677            * debian/menu: Syntax of menu changed slightly
678            * debian/setup.py.patch: removed because it has been moved to
679                            debian/patechs/setup.py.patch
680            
681    
682    2004-02-26  Bernhard Herzog  <[email protected]>
683    
684            Create the Doc/technotes directory for text files with information
685            for developers
686    
687            * Doc/technotes/README: New. README for the technotes
688    
689            * Doc/technotes/coding_guidelines.txt: New. Coding guidelines for
690            Thuban
691    
692            * Doc/technotes/release_process.txt: New. Used to be
693            HOWTO-Release.  Now slightly adapted to technote formatting style.
694    
695            * HOWTO-Release: Removed.  It's contents are now in
696            Doc/technotes/release_process.txt
697    
698    2004-02-25  Bernhard Herzog  <[email protected]>
699    
700            * libraries/thuban/wxproj.cpp (get_wx_version): New.  Return the
701            version of wxWindows the module was compiled with so we can check
702            that against the wxPython version.
703    
704            * Thuban/version.py (thuban_branch, thuban_release): New variables
705            controlling which and how Thuban versions are shown.  See the
706            comments for details.
707            (verify_versions): Also check that the wx version that wxproj is
708            compiled against matches that of the wxPython we use at runtime
709    
710    2004-02-20  Bernhard Herzog  <[email protected]>
711    
712            * Extensions/wms/wms.py (epsg_code_to_projection): Use
713            get_system_proj_file to read the epsg projections.  The old way
714            depended on the current directory being the top Thuban directory.
715    
716    2004-02-20  Bernhard Herzog  <[email protected]>
717    
718            * Extensions/svgexport/test/test_svgmapwriter.py
719            (TestVirtualDC.test_clippath): Remove a debug print
720    
721    2004-02-20  Bernhard Herzog  <[email protected]>
722    
723            * Extensions/svgexport/__init__.py: New.  Turn
724            Extensions/svgexport into a package.
725    
726            * Extensions/svgexport/svgmapwriter.py: Reorder the imports and
727            doc-string a bit.  The doc-string must come first, otherwise it's
728            not a doc-string.  The __future__ import must be the first thing
729            after the doc-string.  Use only double quotes in doc-strings.
730            Single quotes trip up emacs syntax highlighting if the text
731            contains apostrophes.
732    
733    2004-02-20  Bernhard Herzog  <[email protected]>
734    
735            * Extensions/svgexport/test/__init__.py,
736            Extensions/svgexport/test/test_svgmapwriter.py: New. Initial test
737            suite for svgexport
738    
739            * test/runtests.py (find_test_modules): New. Function with the
740            module finding code from main.
741            (main): Use find_test_modules to figure out the default test
742            modules and take modules from Extensions.svgexport.test too.
743    
744    2004-02-19  Bernhard Herzog  <[email protected]>
745    
746            * Thuban/UI/application.py (ThubanApplication.OnInit): Make sure
747            the mainwindow has a reference to the map of the initial session.
748            This fixes a bug introduced with the fix for RT#2245
749    
750    2004-02-19  Bernhard Herzog  <[email protected]>
751    
752            * Extensions/svgexport/svgsaver.py,
753            Extensions/svgexport/svgmapwriter.py,
754            Extensions/svgexport/maplegend.py: Added again.  This time in the
755            correct place.
756    
757    2004-02-17  Bernhard Herzog  <[email protected]>
758    
759            Fix for RT#2245
760    
761            * Thuban/UI/application.py (ThubanApplication.OnInit): Initialize
762            instance variables before trying to create any windows.  Creating
763            windows can start an event loop if e.g. message boxes are popped
764            up for some reason, and event handlers, especially EVT_UPDATE_UI
765            may want to access things from the application.
766            (ThubanApplication.maps_changed): The mainwindow may not have been
767            created yet, so check whether it has been created before calling
768            its methods
769    
770            * Thuban/UI/view.py (MapCanvas.OnIdle): Only try to redraw if we
771            have a map
772    
773    2004-02-17  Bernhard Herzog  <[email protected]>
774    
775            * test/test_svgmapwriter.py, Extensions/svgsaver.py,
776            Extensions/svgmapwriter.py, Extensions/maplegend.py,
777            extensions/svgexport/svgsaver.py,
778            extensions/svgexport/svgmapwriter.py,
779            extensions/svgexport/maplegend.py: Removed.  These files were in
780            the wrong places or didn't work at all.
781    
782    2004-02-16  Bernhard Herzog  <[email protected]>
783    
784            * Thuban/UI/view.py (MapCanvas.Export): Remove accidentally added
785            line
786    
787    2004-02-16  Bernhard Herzog  <[email protected]>
788    
789            * Thuban/UI/view.py (MapCanvas.Export): Avoid UnboundLocalError.
790    
791    2004-02-15  Markus Rechtien  <[email protected]>
792            
793            * Extensions/svgexport/svgmapwriter.py: New. Adds the capability
794            to write a session to a file in SVG format.
795            * Extensions/svgexport/svgsaver.py: New. Uses svgmapwriter.py
796            to write a SVG map of a session.
797            * Extensions/svgexport/maplegend: New. Writes a basic maplegend
798            in SVG format for the current session.
799    
800    2004-02-13  Bernhard Herzog  <[email protected]>
801    
802            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): When the layer
803            can't be created, return immediately after displaying the error
804            message.
805    
806    2004-02-11  Bernhard Herzog  <[email protected]>
807    
808            Handle postgis tables with more than one geometry column.
809    
810            * Thuban/Model/postgisdb.py
811            (PostGISTable._fetch_table_information): Delegate the creation of
812            column objects to a different method so that we can extend that in
813            derived classes
814            (PostGISTable._create_col_from_description): New. Column object
815            creation part of _fetch_table_information
816            (PostGISShapeStore._create_col_from_description): New. Extend
817            inherited method to handle geometry columns
818            (PostGISShapeStore.__init__): New parameter geometry_column to
819            specify which geometry column to use.  Optional but mandatory for
820            tables with more than one geometry column
821            (PostGISShapeStore._fetch_table_information): Also use the name of
822            the geometry column when looking for the srid
823            (PostGISShapeStore.ShapeType): Also use the name of the geometry
824            column when looking for the shape type
825    
826            * test/test_save.py (SaveSessionTest.test_save_postgis): Adapt
827            NonConnectionStore to changes in the PostGISShapeStore
828    
829            * test/test_postgis_db.py
830            (TestPostGISSpecialCases.test_shapestore_two_geom_cols): Test
831            PostGISShapeStore with tables having two geometry columns.
832    
833    2004-02-10  Bernhard Herzog  <[email protected]>
834    
835            Fix some postgis problems.  What remains to be done is real
836            handling of SRIDs as they affect how reprojection is done
837    
838            * Thuban/Model/postgisdb.py (quote_identifier): Fix typo in
839            doc-string
840            (PostGISShapeStore._fetch_table_information): New. Extend
841            inherited method to retrieve srid
842            (PostGISShapeStore.BoundingBox): Handle tables without data.
843            extent yields NULL for those
844            (PostGISShapeStore.ShapesInRegion): Use the srid of the table.
845    
846            * test/test_postgis_db.py
847            (TestPostGISSpecialCases.test_shapestore_empty_table): New test
848            for the special case of a table without any data
849            (TestPostGISShapestorePointSRID): New class with tests for a table
850            that uses srids
851            (PolygonTests): Fix a doc-string typo
852    
853            * test/postgissupport.py (PostGISDatabase.__init__): New parameter
854            reference_systems with a specification of spacial reference
855            systems to create in the new db.
856            (PostgreSQLServer.new_postgis_db)
857            (PostgreSQLServer.get_static_data_db): New parameter
858            reference_systems to be passed through ultimately to
859            PostGISDatabase.  In new_postgis_db also check whether an existing
860            db already has the right srids
861            (PostgreSQLServer.get_default_static_data_db): Add srids and a
862            table that uses srids
863            (PostGISDatabase.initdb): Create the entries for the reference
864            systems
865            (PostGISDatabase.has_data): Add reference_systems parameter to
866            check for those too
867            (upload_shapefile): New parameter srid to create tables with a
868            specific srid
869    
870    2004-02-06  Frank Koormann  <[email protected]>
871    
872            * po/pt_BR.po: Fixed charset
873    
874    2004-02-05  Frank Koormann  <[email protected]>
875    
876            * po/pt_BR.po: Fixed format string for error message, missing %s
877            added (Thuban/UI/application.py:273)
878    
879    2004-02-03  Frank Koormann  <[email protected]>
880            
881            First version of Portuguese (Brazilian) translation
882    
883            * po/pt_BR.po: New, translation of pot (2004-01-15 16:07+0300) for
884            Brazilian Portuguese by Eduardo Patto Kanegae.
885    
886            * Thuban/UI/about.py (About.__init.py__): Added Eduardo to the list of
887            translators.
888    
889    
890    2004-01-22  Frank Koormann  <[email protected]>
891    
892            * Doc/manual/thuban-manual.xml: Added section on installation of
893            Thuban under Win32 systems. Fixed image path references in the postgis
894            section. Some minor source formattings.
895    
896    2004-01-21  Frank Koormann  <[email protected]>
897    
898            Make Thuban remember path selections (at least for one application run).
899    
900            * Thuban/UI/application.py (Application.OnInit): Initialize path as a
901            attribute of application object. Path is a dictionary of
902            strings, currently with the items "data" and "projection".  
903            (Application.SetPath): New, stores path for the specified item.
904            (Application.Path): New, return path for the specified item.
905    
906            * Thuban/UI/mainwindow.py
907            (MainWindow.OpenSession, MainWindow.SaveSessionAs,
908            MainWindow.AddLayer, MainWindow.AddRasterLayer,
909            MainWindow.TableOpen): Access "data" path information of the
910            application.
911            
912            * Thuban/UI/projdialog.py (ProjFrame._OnImport, ProjFrame._OnExport):
913            Access "projection" path information of the application.
914    
915    2004-01-05  Bernhard Herzog  <[email protected]>
916    
917            * po/ru.po: Updated translations from Alex Shevlakov
918    
919    2004-01-05  Bernhard Herzog  <[email protected]>
920    
921            * po/Makefile, po/README: Move the description of how to generate
922            the translation statistics to the README.
923    
924    2003-12-23  Bernhard Herzog  <[email protected]>
925    
926            * NEWS: Update for 1.0.0
927    
928            * po/it.po: Another update from Maurizio Napolitano
929    
930    2003-12-23  Bernhard Herzog  <[email protected]>
931    
932            * po/it.po: Updated translation from Maurizio Napolitano
933    
934    2003-12-23  Bernhard Herzog  <[email protected]>
935    
936            * Thuban/UI/join.py (JoinDialog.__init__): Mark one more string
937            for translation
938    
939            * Thuban/UI/mainwindow.py (MainWindow.TableRename)
940            (MainWindow.RenameMap, MainWindow.RenameLayer): Mark some more
941            strings for translation
942    
943            * po/de.po: Update with the newly marked strings.
944    
945    2003-12-22  Bernhard Herzog  <[email protected]>
946    
947            * HOWTO-Release: Fix the places where version numbers have to be
948            updated
949    
950    2003-12-22  Bernhard Herzog  <[email protected]>
951    
952            * setup.py (setup call): 1.0.0, yeah!
953    
954            * Thuban/version.py (longversion): 1.0.0, yeah!
955    
956            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
957            1.0.0 namespace too
958    
959            * Thuban/Model/save.py (SessionSaver.write_session): Save with
960            1.0.0 namespace
961    
962            * test/test_load.py (LoadSessionTest.dtd)
963            (TestSingleLayer.file_contents)
964            (TestNonAsciiColumnName.file_contents)
965            (TestLayerVisibility.file_contents)
966            (TestClassification.file_contents, TestLabels.file_contents)
967            (TestLayerProjection.file_contents)
968            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
969            (TestLabelLayer.file_contents, TestPostGISLayer.file_contents)
970            (TestPostGISLayerPassword.file_contents)
971            (TestLoadError.file_contents, TestLoadError.test): Update for
972            1.0.0 namespace
973    
974            * test/test_save.py (SaveSessionTest.dtd)
975            (SaveSessionTest.testEmptySession)
976            (SaveSessionTest.testSingleLayer)
977            (SaveSessionTest.testLayerProjection)
978            (SaveSessionTest.testRasterLayer)
979            (SaveSessionTest.testClassifiedLayer)
980            (SaveSessionTest.test_dbf_table)
981            (SaveSessionTest.test_joined_table)
982            (SaveSessionTest.test_save_postgis): Update for 1.0.0 namespace
983    
984    2003-12-22  Bernhard Herzog  <[email protected]>
985    
986            * Thuban/Model/load.py (SessionLoader.start_label): Make sure the
987            alignment flags are byte strings not unicode and that they have
988            valid values
989    
990            * test/test_load.py (TestLabelLayer): New. Test loading (and
991            indirectly saving) of maps with labels.
992    
993    2003-12-22  Bernhard Herzog  <[email protected]>
994    
995            * Thuban/UI/tableview.py (TableGrid.OnDestroy)
996            (TableGrid.__init__): Handle EVT_WINDOW_DESTROY in the grid to
997            unsubscribe all subscribers.
998            (LayerTableFrame.OnDestroy): Do not unsubscribe any messages from
999            self.grid since it may already have been destroyed.
1000            Fixes RT #2256
1001    
1002    2003-12-19  Bernhard Herzog  <[email protected]>
1003    
1004            * po/fr.po, po/es.po: Updated translations from Daniel Calvelo
1005    
1006    2003-12-16  Bernhard Herzog  <[email protected]>
1007            
1008            * debian/bitmappath.patch, debian/setup.py.patch:
1009                    added to ensure compliance with FHS for debian
1010            * debian/rules, debian/changelog:
1011                added patches in rules to ensure compliance with FHS for debian
1012    
1013    2003-12-16  Bernhard Herzog  <[email protected]>
1014    
1015            * po/Makefile (mo): Make the output a bit nicer so that it prints
1016            statistics about the translations. Add a comment how produce even
1017            nicer statistics with sed.
1018    
1019    2003-12-09  Frank Koormann   <[email protected]>
1020    
1021            * Resources/Projections/defaults.proj:
1022            French projection sample with correct accents (UNICODE).
1023    
1024    2003-12-05  Bernhard Herzog  <[email protected]>
1025    
1026            * MANIFEST.in: Add the devtools directory
1027    
1028            * setup.py (setup call): Use license instead of licence. This
1029            silences a deprecation warning on Python 2.3
1030    
1031    2003-12-05  Frank Koormann   <[email protected]>
1032    
1033            Documentation synced with 1.0rc1
1034    
1035            * Doc/manual/thuban-manual.xml:
1036            Minor formatting changes and references to database layers .
1037            Introduction.Internationalization: New section on i18n.
1038            MapManagement.AddingandRemovingLayers: Added item on database layers.  
1039            MapManagement.TheLegend: Added section and screenshot on popup menu.
1040            ProjectionManagement: Updated screenshot and sentence on EPSG.
1041            Appendix.SupportedDataSources: Added PostGIS.
1042            Appendix.WorkingwithPostGIS: New section.
1043    
1044            * Doc/manual/images/6_projection.png: Updated screenshot including
1045            EPSG checkboxes.
1046    
1047            * Doc/manual/images/3_5_popup_menu.png: New, popup menu screenshot.
1048    
1049            * Doc/manual/images/app_postgis_add_layer.png,
1050            Doc/manual/images/app_postgis_db_add.png,
1051            Doc/manual/images/app_postgis_db_management.png:
1052            New screenshots focussing on database layers
1053    
1054    2003-12-05  Frank Koormann   <[email protected]>
1055    
1056            * Thuban/UI/projdialog.py (load_user_proj): If user.proj is missing
1057            write warning to stderr instead of rising a warning dialog
1058    
1059  2003-12-03  Bernhard Herzog  <[email protected]>  2003-12-03  Bernhard Herzog  <[email protected]>
1060    
1061          Fix for RT #2243          Fix for RT #2243
# Line 3857  Line 4915 
4915          Fix problem of hidden properties dialog under windows after double          Fix problem of hidden properties dialog under windows after double
4916          click on layer tree:          click on layer tree:
4917          The tree control always gets an Expanded / Collapsed event after          The tree control always gets an Expanded / Collapsed event after
4918          the ItemActivated  on double click, which raises the main window again.         We add a second ItemActivated event to the queue, which simply          the ItemActivated  on double click, which raises the main window again.
4919            We add a second ItemActivated event to the queue, which simply
4920          raises the already displayed window.          raises the already displayed window.
4921    
4922          * Thuban/UI/legend.py (LegendTree.__init__): Instance variable          * Thuban/UI/legend.py (LegendTree.__init__): Instance variable

Legend:
Removed from v.2021  
changed lines
  Added in v.2256

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26