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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26