/[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 2089 by bh, Wed Feb 25 10:41:35 2004 UTC revision 2250 by jschuengel, Wed Jun 16 11:01:42 2004 UTC
# Line 1  Line 1 
1    2004-06-16  Jan Sch�ngel  <[email protected]>
2    
3            Add a sample and make some changes.
4    
5            * Extension/umn_mapserver/mf_import.py: Changed the wxPython.wx
6            import from * to explicit used statements. Changed the
7            Thuban.UI.mainwindow import phrase, too.
8            (import_mapfile):Corrected a clerical mistake.
9            Added wxCHANGE_DIR in OpenFile Dialog.
10            Added a MultipleChoiceDialog, to select the layers to load from
11            mapfile into thuban. Thereby the projection is only set if one layer
12            is selected.
13            Added the possibility to handle relative pathnames which uses
14            up-level references.
15            Removed some doubled code.
16            Corrected an error with integer values used as label in thuban
17            ClassGroup.
18            
19            * Extensions/umn_mapserver/sample: New.
20    
21            * Extensions/umn_mapserver/sample/README: New. Describes the
22            usage of the sample files.
23    
24            * Extensions/umn_mapserver/sample/iceland.map: New. This is
25            a suitable .map-file for the iceland data.
26    
27            * Extensions/umn_mapserver/sample/index.html: New. The template
28            for the mapfile.  
29    
30            * Extensions/umn_mapserver/sample/iceland.html: New. Initialisation
31            file for the Iceland Application on web.
32    
33            * Extensions/umn_mapserver/README: Corrected a inaccuracy and added
34            some details.
35    
36            * Extensions/umn_mapserver/test/test_mapserver
37            (mapserver_import_Test_generalClasses.test_MF_Color):
38            Corrected the thubancolor test.
39    
40    2004-06-15  Jan Sch�ngel  <[email protected]>
41    
42            * Extensions/umn_mapserver/README: New. Install instruction.
43    
44    2004-06-14  Bernhard Reiter <[email protected]>
45    
46            * libraries/thuban/cpl_mfile.h: Added copyright header.
47    
48            * libraries/thuban/ cpl_mfile.cpp, cpl_mfile.h: Added non-protecting
49            Free Software License so that it is most useful with gdalwarp
50            and bmpdataset.
51    
52    2004-06-14  Bernhard Herzog  <[email protected]>
53    
54            * Thuban/UI/multiplechoicedialog.py (__version__): Add missing
55            import of wxPython.wx itself (as opposed to the contents of
56            wxPython.wx).  For some reason wxPython.wx is available as
57            wxPython.wx.wx in at least some 2.4 releases.  Fixes RT#2482
58            wrt. wxPython 2.4.
59    
60    2004-06-10  Jan Sch�ngel  <[email protected]>
61    
62            Initial version of new extension "umn_mapserver".  This extension aims
63            to manage configuration for the UMN MapServer application.  This
64            inital version just imports the .map-files and displays all, Thuban is
65            capable of.
66    
67            * Extensions/umn_mapserver, Extensions/umn_mapserver/test: New.
68    
69            * Extensions/umn_mapserver/test/README: New. Describes how to run the
70            tests.
71    
72            * Extensions/umn_mapserver/test/test.map: New. This is a test
73            .map-file for automated tests of the umn_mapserver extension of
74            Thuban.
75    
76            * Extensions/umn_mapserver/test/test_mapserver.py: New. Tests for
77            UMN Mapserver classes.
78    
79            * Extensions/umn_mapserver/__init__.py: New. Init to make this
80            directory a package.
81    
82            * Extensions/umn_mapserver/mapfile.py: New. Classes to represent
83            '.map'-file objects.
84    
85            * Extensions/umn_mapserver/mf_import.py: New. This module extends
86            Thuban with the possibility to handle UMN MapServer mapfiles.
87    
88    2004-06-03  Bernhard Herzog  <[email protected]>
89    
90            * Thuban/Model/layer.py (Layer.TreeInfo): Convert the bounding box
91            to a tuple before using it as arguments to the % operator.  This
92            fixes the formatting issue filed in RT#2239 on 2004-01-13 and
93            reported today on thuban-list by Jan Sch�ngel
94    
95            * test/test_layer.py (TestLayerModification.setUp): Save the
96            filename as an instance variable so we can refer to it in tests
97            (TestLayerModification.test_tree_info): Uncomment this method
98            again and make it work.  This tests for the formatting issue
99            filed in RT#2239 on 2004-01-13
100    
101    2004-05-28  Bernhard Herzog  <[email protected]>
102    
103            * Thuban/UI/baserenderer.py: Fix some typos.
104    
105    2004-05-18  Jan-Oliver Wagner <[email protected]>
106    
107            * Extensions/gns2shp/gns2shp.py (gns2shp): Fixed a bug
108            by increasing a field size.
109    
110    2004-05-17  Bernhard Herzog  <[email protected]>
111    
112            Update to newest shapelib and get rid of Thuban specific
113            extensions, i.e. use the new DBFUpdateHeader instead of our
114            DBFCommit kludge
115    
116            * libraries/shapelib/shpopen.c: Update to version from current
117            shapelib CVS.
118    
119            * libraries/shapelib/shapefil.h: Update to version from current
120            shapelib CVS.
121    
122            * libraries/shapelib/dbfopen.c: Update to version from current
123            shapelib CVS.
124            (DBFCommit): Effectively removed since shapelib itself has
125            DBFUpdateHeader now which is better for what DBFCommit wanted to
126            achieve.  
127            We're now using an unmodified version of dbfopen.
128    
129            * setup.py (extensions): Add the HAVE_UPDATE_HEADER macro with
130            value '1' to the Lib.dbflibc extension.  This simply reflects the
131            shapelib and pyshapelib updates
132    
133    2004-05-16  Jan-Oliver Wagner <[email protected]>
134    
135            Finished introduction of Menu.FindOrInsertMenu.
136    
137            * Extensions/drawshape/drawshape.py: Add the command
138            to the experimental menu additionally to the toolbar.
139    
140            * Extensions/svgexport/svgsaver.py: Use FindOrInsertMenu() instead of
141            finding menu on its own.
142    
143            * Doc/manual/thuban-manual.xml: updated sample file
144            to use FindOrInsertMenu().
145    
146            * Examples/simple_extensions/hello_world.py: Use FindOrInsertMenu()
147            instead of finding menu on its own.
148    
149    2004-05-11  Jan-Oliver Wagner <[email protected]>
150    
151            * test/test_menu.py (MenuTest.test): Added testing
152            of method Menu.FindOrInsertMenu.
153    
154    2004-05-10  Jan-Oliver Wagner <[email protected]>
155    
156            Introduce and use Menu.FindOrInsertMenu.
157    
158            * Thuban/UI/menu.py (Menu.FindOrInsertMenu): New. Find a
159              given menu or, if not found, insert it.
160    
161            * Extensions/bboxdump/bboxdump.py, /Extensions/gns2shp/gns2shp.py,
162            /Extensions/importAPR/importAPR.py, Extensions/profiling/profiling.py,
163            /Extensions/wms/wms.py: Use FindOrInsertMenu() instead of finding
164            menu on its own.
165    
166    2004-05-06  Jan-Oliver Wagner <[email protected]>
167    
168            Introduce a abstract ColorDialog class and remove
169            and outdated file.
170    
171            * Thuban/UI/proj4dialog.py: Removed. It is has been
172            replaced by projdialog for quite a while and is not used
173            anymore.
174    
175            * Thuban/UI/colordialog.py: New. Abstraction for color selection
176            dialog(s).
177    
178            * Thuban/UI/classifier.py (SelectPropertiesDialog.__GetColor):
179            Now calls the abstract ColorDialog instead of wxColourDialog.
180            This also removed the dependency to Color class conversion
181            from this function.
182    
183    2004-05-04  Frank Koormann  <[email protected]>
184    
185            * Extensions/bboxdump/__init__.py: Fixed string left over from
186            copying.
187    
188            * Extensions/bboxdump/bboxdump.py (bboxdump):
189            Use layer.ShapeStore().AllShapes() to loop over shapes instead of
190            xrange(layer.NumShapes()). Compile the bboxmessage from a list
191            of formatted outputs (string.join) instead of appending to the
192            message. Two progress bar dialogs to report progress on the sometimes
193            lenghty processing.
194    
195    2004-04-22  Frank Koormann  <[email protected]>
196    
197            New Extension to dump bounding boxes of all shapes of the selected
198            layer. An optional column can be specified to group the objects,
199            in this case the bounding box is a union of the separate boxes.
200            Dump can be displayed in a ScrolledMessageDialog or written to file.
201            The Extension is simply a combination of available and well tested
202            Thuban functionality.
203    
204            * Extensions/bboxdump/__init__.py: New: Init to make this
205            directory a package.
206    
207            * Extensions/bboxdump/bboxdump.py: New: Dump bounding boxes of
208            all shapes of the selected layer.
209    
210    2004-04-22  Jan-Oliver Wagner <[email protected]>
211    
212            * Thuban/UI/classgen.py (GenUniquePanel.__init__): Fixed two
213            strings to be i18n now.
214    
215    2004-04-18  Jan-Oliver Wagner <[email protected]>
216    
217            Changing popup menu of legend from direct building
218            to using the Menu construction as used for the mainwindow.
219    
220            * Thuban/UI/mainwindow.py: New method commands: layer_to_top,
221            layer_to_bottom, layer_visibility
222            (MainWindow.LayerToTop): New. Put current layer to the top.
223            (MainWindow.LayerToBottom): New. Put current layer to bottom.
224            (MainWindow.HideLayer, MainWindow.ShowLayer, _has_visible_map):
225            Replace 1,0 by True, False.
226            (MainWindow.ToggleLayerVisibility): New. Toggle visibility of
227            current layer.
228            (MainWindow.LayerShowTable): Removed raising of dialog.
229            (_has_selected_layer_visible): New. Support function.
230    
231            * Thuban/UI/legend.py: ID_POP_xxx: removed.
232            (LegendPanel.__init__): Removed EVT_MENU bindings.
233            (LegendTree._OnRightClick): Replace direct creation of
234            menu via wx Classes by applying the menu definition
235            as of Menu class of menu.py.
236            
237    2004-04-16  Jan-Oliver Wagner <[email protected]>
238    
239            * Thuban/UI/exceptiondialog.py (ExceptionDialog.dialog_layout): Improved
240        button string to stronger clearify that Thuban will be closed when hitting
241            the button.
242    
243            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Added docstring.
244            Now for layers without a ShapeStore a corresponding message is given
245            to the user, that this layer has no table to show.
246    
247    2004-04-15  Martin Schulze  <[email protected]>
248    
249            * Extensions/wms/layer.py (WMSLayer.setWMSFormat): Need to
250            recalculate the format for the internal render engine as well.
251    
252            * Extensions/wms/properties.py (wmsProperties): First start for a
253            properties dialog.  It's functional for a first selection of
254            layers, but still has some weired wxWidgets/GTK problems but
255            beautification can be done later.
256    
257            * Extensions/wms/layer.py: Added more documentation
258            (WMSLayer.getFormats): New: Return list of supported image formats
259            by the WMS server
260            (WMSLayer.getLayers): New: Return the list of layer names
261            supported by the WMS server
262            (WMSLayer.getLayerTitle): New: Return the title of the named layer
263            (WMSLayer.getWMSFormat): New: Return the image format that is used
264            for WMS GetMap requests
265            (WMSLayer.setWMSFormat): New: Set the image format that is used
266            for WMS GetMap requests
267            (WMSLayer.__init__): Move away from using only one layer to using
268            a list of layers (unsorted at the moment, though).
269            (WMSLayer.getVisibleLayers): New: Return the list of names for all
270            visible layers
271            (WMSLayer.setVisibleLayers): New: Set the list of names for all
272            visible layers
273    
274            * Extensions/wms/wms.py: Moved the WMS layer into layer.py in
275            order to establish a clean structure.
276    
277            * Extensions/wms/layer.py: Moved the WMS layer into a file on its
278            own in order to establish a clean structure.
279    
280    2004-04-13  Martin Schulze  <[email protected]>
281    
282            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Added
283            support for oldstyle (WMS 1.0 apparently) image format
284            specification.
285    
286            * Extensions/wms/wms.py (WMSLayer.calcFormat): Reduce the list of
287            supported graphic formats back to JPEG and BMP, PNG and others are
288            too *cough* experimental...  Sorry, I meant to filter this out
289            before I committed this part.  This should make the WMS extension
290            run from CVS again.
291            (wms_dialog): Reset an empty URL to None so that the subsequent
292            program can depend on this, since the dialog will indeed return an
293            empty URL, causing another declaration of love by Python.
294    
295            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerBBox):
296            Whenever a native BoundingBox request cannot be fulfilled, check
297            whether the requested SRS is EPSG:3426, in which case return the
298            LatLonBoundingBox values.
299    
300            * Extensions/wms/test/test_parser.py
301            (TestWMSCapabilitiesParser.test_LayerSRS): Added a test for
302            ignoring AUTO:* SRS.
303            (TestWMSCapabilitiesParser.test_LatLonBoundingBoxes_as_bboxes):
304            Added another test method to test whether the LatLonBoundingBox
305            values will be returned if BoundingBox values are requested with
306            SRS set to EPSG:3426.
307    
308            * Extensions/wms/parser.py (WMSCapabilitiesParser.peekLayers):
309            Added rudimentary support for non-EPSG SRS, i.e. ignore them for
310            the moment by placing them into a variable which is currently
311            unused.  Also test whether the EPSG SRS is numerical as it should
312            be and add an error message if it is not.
313    
314            * Extensions/wms/test/sample.xml: Added AUTO:* SRS since they
315            appear in the real world as well.  Since we cannot handle them yet
316            (OGCLib can't either), we will ignore them for the moment.
317    
318            * Extensions/wms/parser.py: Use a variable for denoting the sample
319            filename
320            (WMSCapabilitiesParser.peekLayers): Added support for error
321            messages during grok().  They will be aggregated in an array and
322            may be displayed later.  We may have to add a classification
323            "Warning" and "Error" to this.  That requires more experience,
324            though, since not every error may be lethal.
325    
326            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Raise the
327            ShowTable() dialog/frame when the user attempts to display it
328            while it has been opened before already and not closed again.
329    
330    2004-04-11  Martin Schulze  <[email protected]>
331    
332            * Extensions/wms/infodialog.py: Adjusted the class documentation
333    
334            * Extensions/wms/wms.py (WMSLayer.__init__, WMSLayer.GetMapImg):
335            Switch to using Thuban{Begin,End}BusyCursor instead of the pure
336            wxWidgets variants.
337            (WMSLayer.__init__): The epsg_id variable is named top_srs now.
338    
339            * Extensions/wms/infodialog.py: Added an information dialog that
340            will display various information about the WMS current resource,
341            so that additional information such as the title, the abstract,
342            fees and access constraints can be displayed for the user if they
343            are documented in the WMS XML.
344    
345    2004-04-10  Martin Schulze  <[email protected]>
346    
347            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Adjusted
348            string handling.  It's "foo".lower() and not lower(foo) without
349            lower imported from strings or something.
350    
351            * Extensions/wms/wms.py (WMSLayer): Incorporated WMSCapabilities
352            from capabilities.py and parser.py.  Implement priority list for
353            supported graphics formats, take care of wbmp != bmp.  PNG, TIFF
354            and GIF are supported here, but not yet by main Thuban.  Hence,
355            support for them may be removed later.  Special contribution to
356            usability: get wxWidgets to change the cursor when we're waiting
357            for data from the network so the user won't start to worry.  This
358            causes a redrawing error/warning, though.
359    
360            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Unlink
361            the DOM object.
362    
363    2004-04-01  Martin Schulze  <[email protected]>
364    
365            * Extensions/wms/capabilities.py: Adjusted documentation
366            (WMSCapabilities.__init__): Improved documentation, fixed syntax
367            (WMSCapabilities.saveCapabilities): Only catch IOError when
368            handling files
369            (WMSCapabilities.loadCapabilities): Only catch IOError when
370            handling files
371            __main__: corrected variable naming
372            (WMSCapabilities.fetchCapabilities,loadCapabilities): Make this
373            class a specialisation of WMSCapabilitiesParser as well.  Also
374            execute grok() after loading or fetching capabilities, if that
375            went well, so that subsequent calls can already access the data.
376            (WMSCapabilities.getVersion): Export the used version of the
377            GetCapabilities request, so we can use it for subsequent calls,
378            i.e. for GetMap requests.
379            (WMSCapabilities.fetchCapabilities): Added proper error handling
380            when the GetCapabilities request failed, so that the surrounding
381            program can act accordingly.
382    
383    2004-03-30  Martin Schulze  <[email protected]>
384    
385            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerSRS):
386            Adjusted the getLayerSRS method to return the list of SRSes
387            extracted from <SRS> elements instead of <BoundingBox> elements.
388            Added a bit of documentation as well.
389            (WMSCapabilitiesParser.checkLayerSRS): Removed integrity test
390            since it was only implemented due to a misunderstanding.
391    
392            * Extensions/wms/test/test_parser.py
393            (TestWMSCapabilitiesParser.test_LayerSRS): Adjust the tests to
394            reflect the corrected interpretation of the standard: i.e. a layer
395            does not have to define a BoundingBox for all SRSes it supports.
396            Hence the <SRS></SRS> specification is authoritative, not the list
397            of BoundingBoxes.
398            (TestWMSCapabilitiesParser.test_BoundingBoxes): Added a new test
399            to ensure None is returned for a non-existing SRS.
400            (TestWMSCapabilitiesParser.test_grok): Removed test_grok method
401            since it is not applicable anymore.  Listing more SRSes in <SRS>
402            elements is valid according to the specs.
403    
404    2004-03-26  Bernhard Reiter <[email protected]>
405    
406            * README: Nicer formatting of text. Improved descriptions.
407            Reflected wxWidgets name change.
408            
409            * Thuban/UI/about.py: Extended copyright to 2004 and added
410            information about the thuban-devel mailinglist.
411    
412    2004-03-24  Martin Schulze  <[email protected]>
413    
414            * Extensions/wms/capabilities.py: Renamed the class to contain
415            'WMS', also added a linebreak where required
416    
417            * Extensions/wms/parser.py: Finally added the XML parser for the
418            GetCapabilities response.
419    
420            * Extensions/wms/test/sample.xml: Adjusted the sample file so that
421            <SRS> elements match the <BoundingBox> elements, except for the
422            layer 'beschriftung'.
423    
424            * Extensions/wms/test/test_parser.py: Encode non-ascii strings
425            since Python uses unicode strings internally, otherwise
426            comparisons will fail.  Removed tests for getLayerBBoxSRS() since
427            the SRS will be calculated anyway and this method is obsoleted by
428            getLayerSRS().  Denote SRS as strings and not as cardinal numbers.
429            Move loading the sample file into the setUp method.  Added a test
430            for finding the integrity problem in the sample response.
431            Improved formatting.
432    
433            * Extensions/wms/domutils.py: Added convenience routines for
434            handling of Document Object Model (DOM) nodes.
435    
436            * Extensions/wms/test/test_domutils.py: Added a test for the
437            domutils module
438    
439    2004-03-19  Martin Schulze  <[email protected]>
440    
441            * Extensions/wms/test/test_parser.py (TestWMSCapabilitiesParser):
442            Moved path detection and adding into a module of its own,
443            adjustpath, which exports thubandir as main Thuban directory.
444    
445            * Extensions/wms/test/test_ogclib.py (TestWMSLib): Moved path
446            detection and adding into a module of its own, adjustpath, which
447            exports thubandir as main Thuban directory.  Reorganised the
448            module in order to support the SkipTest feature for Thuban test
449            cases.
450    
451            * Extensions/wms/test/adjustpath.py: Moved path detection and
452            adding into a module of its own.
453    
454    2004-03-18  Martin Schulze  <[email protected]>
455    
456            * Extensions/wms/test/test_parser.py: Added another test for
457            checking whether the WMS XML parser (to be implemented) returns
458            the information we expect.  This requires a sample WMS WML file
459            (sample.xml) which has been extracted from the frida server and
460            "improved" manually.
461    
462            * Extensions/wms/test/test_ogclib.py: Added legacy code to add the
463            main Thuban directory to the path in order to be able to import
464            random modules.  Adjusted the PyOGCLib detection to reuse the
465            information gathered.  Also added a note about the PYTHONPATH
466            environment variable.
467    
468            * Extensions/wms/test/test_ogclib.py: The format specification is
469            a mime-type, not a graphic format, hence image/jpeg wou ld be the
470            proper format and not JPEG.  We'll also have to take care of the
471            encoding of / as %2F.
472    
473    2004-03-16  Martin Schulze  <[email protected]>
474    
475            * Extensions/wms/test/test_ogclib.py: Added a (hopefully)
476            comprehensive test for the getMapURL method, built compare URLs
477            according to the documentation in OGC 01-068r3
478    
479            * Extensions/wms/capabilities.py (WMSCapabilities): Added the
480            class WMSCapabilities to manage capabilites, will incorporate
481            parsing the capabilities response and provide details for other
482            classes.
483    
484    2004-03-12  Bernhard Herzog  <[email protected]>
485    
486            Support views in addition to normal tables in the postgis
487            shapestore
488    
489            * Thuban/Model/postgisdb.py
490            (PostGISShapeStore._fetch_table_information): Add a fallback for
491            the case where the table name is not in the geometry_columns
492            table.  This is usually the case for views.  Also, set
493            self.shapestore here.
494            (PostGISShapeStore.ShapeType): No need to query the database all
495            the time.  The shape type is now determined in
496            _fetch_table_information
497    
498            * test/postgissupport.py (PostgreSQLServer.new_postgis_db)
499            (PostgreSQLServer.get_static_data_db, PostGISDatabase.__init__):
500            New parameter to specify views.
501            (PostGISDatabase.has_data): Also compare the views.  New views
502            parameter
503            (PostGISDatabase.initdb): Create the views.
504            (PostgreSQLServer.get_default_static_data_db): Add the v_landmarks
505            view
506    
507            * test/test_postgis_db.py
508            (TestPostGISShapestorePointFromViews): New.  Test a
509            PostGISShapeStore with a view
510            (TestPostGISShapestorePointOIDAsGIDColumn.setUp): Pass the name of
511            the geometry_column explicitly to test whether that works
512    
513    2004-03-12  Bernhard Herzog  <[email protected]>
514    
515            Final step for explicit id/geometry columns: Loading and saving
516    
517            * Resources/XML/thuban-1.1.dtd: New.  Derived from thuban-1.0.dtd
518            with the following changes:
519            (dbshapesource): Two new attributes id_column and geometry_column
520    
521            * Thuban/Model/save.py (SessionSaver.write): Use the new dtd
522            (SessionSaver.write_session): Use the new namespace
523            (SessionSaver.write_data_containers): Write the new dbshapesource
524            parameters
525    
526            * Thuban/Model/load.py (SessionLoader.__init__): New namespace for
527            the new file format version
528            (SessionLoader.start_dbshapesource): Handle the new db parameters
529    
530            * test/test_save.py: Update to the new dtd and namespace
531            (SaveSessionTest.test_save_postgis): Update the NonConnectionStore
532            mock object to provide a working IDColumn method.
533    
534            * test/test_load_1_0.py: New.  Copy of the test_load.py before
535            today's changes but with the round-trip tests removed.
536    
537            * test/test_load_0_9.py: Update doc-string.
538    
539            * test/test_load.py: Update all .thuban files to the new dtd and
540            namespace.
541            (TestPostGISLayer.file_contents): Add the new dbshapesource
542            paramters
543    
544    2004-03-11  Bernhard Herzog  <[email protected]>
545    
546            Next step for explicit id/geometry columns: User interaction
547    
548            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Rework how
549            the dialog is constructed. Add combo boxes to select id and
550            geometry column.  Rename some instance variables.
551            (ChooseDBTableDialog.GetTable): Return id and geometry column
552            names
553            (ChooseDBTableDialog.OnTableSelect): New. Event handler for
554            selections in the table list
555    
556            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Use id_column
557            and geometry_column
558    
559            * Thuban/Model/session.py (Session.OpenDBShapeStore): Add the new
560            parameters for id_column and geometry column of PostGISShapeStore
561            here as well.
562    
563            * Thuban/Model/postgisdb.py (type_map): Add ROWID psycog type.
564            (_raw_type_map): New. Map raw PostgreSQL type ints to thuban types
565            (PostGISConnection.GeometryTables): Use a better query to
566            determine which relations in the database might be usable for
567            shapestores.  Now supports views as well but is more PostgreSQL
568            specific
569            (PostGISConnection.table_columns): New. Somewhat experimental
570            method to let the db dialogs provide lists of columns to users so
571            that they can select id and geometry columns.
572            (PostGISTable.__init__): The default value of the id_column
573            parameter is now None it still means "gid" effectively, though.
574            (PostGISTable.IDColumn): New introspection method to return a
575            column object for the id column
576            (PostGISShapeStore.GeometryColumn): New introspection method to
577            return a column object for the geometry column
578    
579            * test/test_postgis_db.py
580            (TestPostGISConnection.test_gis_tables_non_empty):
581            Removed. Subsumed by the new:
582            (TestPostGISConnection.test_gis_tables_with_views_and_tables):
583            New. Tes the GeometryTables and table_columns methods with actual
584            tables and views.
585            (PointTests.test_id_column, PointTests.test_geometry_column):
586            New. tests for the new methods.
587            (TestPostGISShapestorePoint.setUp)
588            (TestPostGISShapestorePointSRID.setUp)
589            (TestPostGISShapestorePointExplicitGIDColumn.setUp): Fill the
590            instance variables needed by the new tests
591    
592    2004-03-11  Bernhard Herzog  <[email protected]>
593    
594            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): The row
595            numbers given to ReadValue are ordinals.
596    
597    2004-03-11  Bernhard Herzog  <[email protected]>
598    
599            Elimiate the requirement for PostGIS tables to have a column
600            called "gid".
601    
602            * Thuban/Model/postgisdb.py (PostGISTable.__init__): New parameter
603            id_column to specify which column to use to identify rows.  Also
604            new instance variables id_column and quoted_id_column
605            (PostGISTable.RowIdToOrdinal, PostGISTable.RowOrdinalToId)
606            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue)
607            (PostGISTable.SimpleQuery): Use the id column name provided to the
608            constructor instead of "gid"
609            (PostGISShapeStore.__init__): New parameter id_column analogously
610            to PostGISTable.__init__.  This parameter is simply passed through
611            to the base class constructor
612            (PostGISShapeStore._create_col_from_description): Fix typo in
613            doc-string
614            (PostGISShapeStore.Shape, PostGISShapeStore.AllShapes)
615            (PostGISShapeStore.ShapesInRegion): Use the id column name
616            provided to the constructor instead of "gid"
617    
618            * test/postgissupport.py
619            (PostgreSQLServer.get_default_static_data_db): New static table
620            landmarks_point_id with an id column != "gid.  Update the comments
621            a bit.
622            (skip_if_addgeometrycolumn_does_not_use_quote_ident): Fix typo in
623            doc-
624            (upload_shapefile): New parameter gid_column to use a name other
625            than "gid" for the column to store the shape ids
626    
627            * test/test_postgis_db.py (TableTests): New.  Mixin-class
628            containing all tests previously in TestPostGISTable.  The actual
629            tests are the same but the code is a bit more configurable to
630            allow for different id columns etc.
631            (TestPostGISTable): Derive from TableTests now for the actual
632            tests.
633            (TestPostGISTableExplicitGIDColumn): New. Like TestPostGISTable
634            except that it the landmarks_point_id table to test the id_column
635            parameter
636            (PointTests): Extend the doc-string
637            (TestPostGISShapestorePointExplicitGIDColumn)
638            (TestPostGISShapestorePointOIDAsGIDColumn): New classes derived
639            from PointTests to test the explicit id_column parameter.  One
640            tests with the name of the column holding the shape ids, the other
641            uses PostgreSQL's OID column.  For the latter a number of methods
642            have to be overwritten to make them independent of the actual id
643            values.
644    
645    2004-03-08  Silke Reimer  <[email protected]>
646    
647            Update debian directory:
648    
649            * debian/changelog: Added new version.
650            * deiban/rules: Updated management of patches (with cbds)
651            * debian/control: Added cbds to dependencies
652            * debian/patches/*: New. Adds better support for patches of thuban in
653                            debian
654            * debian/menu: Syntax of menu changed slightly
655            * debian/setup.py.patch: removed because it has been moved to
656                            debian/patechs/setup.py.patch
657            
658    
659    2004-02-26  Bernhard Herzog  <[email protected]>
660    
661            Create the Doc/technotes directory for text files with information
662            for developers
663    
664            * Doc/technotes/README: New. README for the technotes
665    
666            * Doc/technotes/coding_guidelines.txt: New. Coding guidelines for
667            Thuban
668    
669            * Doc/technotes/release_process.txt: New. Used to be
670            HOWTO-Release.  Now slightly adapted to technote formatting style.
671    
672            * HOWTO-Release: Removed.  It's contents are now in
673            Doc/technotes/release_process.txt
674    
675  2004-02-25  Bernhard Herzog  <[email protected]>  2004-02-25  Bernhard Herzog  <[email protected]>
676    
677          * libraries/thuban/wxproj.cpp (get_wx_version): New.  Return the          * libraries/thuban/wxproj.cpp (get_wx_version): New.  Return the
# Line 4218  Line 4892 
4892          Fix problem of hidden properties dialog under windows after double          Fix problem of hidden properties dialog under windows after double
4893          click on layer tree:          click on layer tree:
4894          The tree control always gets an Expanded / Collapsed event after          The tree control always gets an Expanded / Collapsed event after
4895          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.
4896            We add a second ItemActivated event to the queue, which simply
4897          raises the already displayed window.          raises the already displayed window.
4898    
4899          * Thuban/UI/legend.py (LegendTree.__init__): Instance variable          * Thuban/UI/legend.py (LegendTree.__init__): Instance variable

Legend:
Removed from v.2089  
changed lines
  Added in v.2250

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26