/[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 1965 by bh, Wed Nov 19 19:48:59 2003 UTC revision 2312 by jan, Sat Jul 31 11:14:08 2004 UTC
# Line 1  Line 1 
1    2004-07-31  Jan-Oliver Wagner <[email protected]>
2    
3            Started translation of Users Manual into german.
4    
5            * Doc/manual/thuban-manual-de.xml: New. German Users Manual.
6    
7            * Doc/manual/Makefile: Added build instructions for german
8            users manual.
9    
10            * Doc/manual/thuban-manual.xml: Minor corrections in Introduction.
11    
12    2004-07-28  Jan Sch�ngel  <[email protected]>
13    
14            * Extensions/umn_mapserver/mapfile.py(MF_Metadata): Changed all class
15            functions. Now all metadata will handle by the function and its not
16            needed to initialize it from outside. Therefor the associated mapobj
17            will be stored in the Metadata Object. So we can use the special
18            functions from the associated mapobj to get the Metadata.
19            Therefor all initialization code for the metadata is removed from the
20            other classes.
21            (MF_Layer): Added a function to get the metadata object.
22            (MF_Map): Added a function to set the mappath, the path where
23            the mapfile ist stored.
24    
25            * Extensions/umn_mapserver/mf_export.py(thuban_to_map): Changed the code
26            to set the extent in the mapfile. Now the code is set by the displayed
27            data in the Thuban-view.
28            (export_mapfile): The shapepath is now set empty, until relative
29            pathnames are supported.
30    
31            * Extension/umn_mapserver/mf_handle.py: Added a dialog to handle
32            metadata. Yet only mapfile metadata are supported. Layer and class
33            supported are not implemented.
34            Added a dialog to handle layer informations. The dialog only shows the
35            selected layer at the moment.
36    
37            * Extensions/umn_mapserver/mf_import.py(import_mapfile): Changed the
38            code for setting the extent in thuban. Now the extent is set to the
39            given extent from the mapfile.
40            Fixed a logical mistake. Now the extent is set when realy a layer is
41            loaded, and not if one is selected to load.
42    
43            * Extensions/umn_mapserver/sample/iceland.html: Added code to zoom and
44            move the shown map in the browser.
45    
46            * Extensions/umn_mapserver/sample/iceland.map: Added a new metadata
47            line to the mapobj and added metadata to the political layer.
48    
49            * Extensions/umn_mapserver/test/test_mapserver.py: Changed the test
50            for Metadata.
51    
52    2004-07-26  Martin Schulze  <[email protected]>
53    
54            * Thuban/Lib/classmapper.py (ClassMapper.has): Added the new
55            ClassMapper
56    
57            * test/test_classmapper.py (TestMapping.test_mapper): Added a Test
58            case for the new ClassMapper
59    
60    
61    2004-07-22  Bernhard Herzog  <[email protected]>
62    
63            * Thuban/UI/viewport.py (ViewPort.VisibleExtent): New.  Return the
64            visible extent of the map in projected coordinates
65    
66            * test/test_viewport.py (SimpleViewPortTest.test_default_size)
67            (SimpleViewPortTest.test_init_with_size): Add some VisibleExtent()
68            tests.
69            (SimpleViewPortTest.test_visible_extent): New. The real test for
70            VisibleExtent()
71    
72    2004-07-22  Bernhard Herzog  <[email protected]>
73    
74            * test/test_viewport.py: Use support.run_tests as the main
75            function when running asa script.
76    
77    2004-07-22  Jan Sch�ngel <[email protected]>
78    
79            * Extensions/umn_mapserver/mf_export.py: Added "import os"
80            Removed the old "import Thuban.UI.mainwindow" code.
81            (tbextent_to_map): Removed the extra function and at the code direct
82            to "thuban_to_map" function.
83            (write_creatorcomment): Added. Now a short comment is added to the
84            beginning of an generated mapfile.
85            (export_mapfile): Now the Path and filename are saved in to variables,
86            and not together in one variable. This is needed for the new
87            write_creatorcomment function.
88                    
89            * Extensions/umn_mapserver/mf_import.py (import_mapfile): Added the
90            import module "re". Also added Range and the ClassGroupRange import
91            from Thuban. Both are needed for the new range expression import.
92            (create_rangeexpression): Added. Creates a Range Expression in Thuban
93            style from a given mapfile expression.
94            (added_rasterlayer): Make some small code changes. The shapepath is
95            now stored in an extra variable and the clazz_name is set empty if no
96            class name set in the mapfile.
97            Changed the Error message for Range Expressions, becaus the new
98            function create a error string which will be shown in the dialog.
99    
100            * Extensions/umn_mapserver/test/test_mapserver.py: Added a test for the
101            range expression import.
102    
103    2004-07-21  Jan-Oliver Wagner <[email protected]>
104    
105            * Extensions/umn_mapserver/README: Added hint that
106            installation as root can be avoided. Removed all tabs.
107    
108    2004-07-16  Bernhard Herzog  <[email protected]>
109    
110            * test/test_viewport.py
111            (ViewPortTest.test_changing_map_projection): Check that changing
112            the projection of an empty map shown in a viewport doesn't lead to
113            exceptions in the viewport's handler for the
114            MAP_PROJECTION_CHANGED messages
115    
116            * Thuban/UI/viewport.py (ViewPort.map_projection_changed): Only
117            try to keep the same region visible when the map actually contains
118            something
119    
120    2004-07-15  Jan Sch�ngel <[email protected]>
121    
122            * Extensions/umn_mapserver/mapfile.py: Added a function to get the
123            mappath directly from the mapobj. Is needed because of the changes
124            in mf_import.py.
125            (MF_Layer.add_thubanclass): Added a new comment.
126            (MF_Map.set_extent): Fixed a bug with exporting empty mapobj. If the
127            mapobj is empty there is no extent get from thuban an so no one can
128            set to th mapobj.
129            
130            * Extensions/umn_mapserver/mf_import.py (import_mapfile): Updated
131            the discription.
132            Split the funktion in to three smaller ones. The new functions are
133            add_rasterlayer, add_polygonlayer and select_layer2import.
134            Removed the mapfilepath and filepath initialisation, because its know
135            include in the new functions.
136            Now nothing will be imported if cancel is pressed in the
137            layer choice dialog.
138    
139    2004-07-14  Jan Sch�ngel <[email protected]>
140    
141            * Extensions/umn_mapserver/mapfile.py: Added ClassGroupDefault to
142            import.
143            (MF_Symbolset): Removed the extra variable for numsymbols.
144            (MF_Class.__init__): Added a comment to the exception clause.
145            Removed the extent init, because it was not needed anymore.
146            (MF_Layer.add_thubanclass): Added the code to set the class name to
147            the expression value from thuban if no label is defined.
148            Added the code to export Range expressions from thuban to the mapfile.
149            (MF_Map.set_extent): Removed the exception and replace it by some if
150            code. If the size of a map is not defined the size will be set to 1,1.
151            This is necessary because if the extent is set, mapscript checks if
152            the size is greater than zero.
153            (MF_Web): Added the get and set function for the template.
154    
155            * Extensions/umn_mapserver/mf_export.py: Added the function to check
156            if a mapobject exists and used it to set the status of the menu items.
157            If no mapfile exists the settings could not be edditied.
158            Define after which menuitem the exportitem will include.
159            
160            * Extensions/umn_mapserver/mf_handle.py: Removed the import
161            Thuban.UI.mainwindow clause, because it is not needed.
162            Added the command Refresh() to all "OnChangeColor()" functions,
163            because the color preview window was not updated on a color change.
164            Added the function to check if a mapobject exists and used it to set the
165            status of the menu items. If no mapobject exists the settings could not
166            be edditied.
167            (Map_Dialog): Moved the imagetype selector from the
168            Outputformat_Dialog to Map_Dialog and removed Outputformat_Dialog.
169            (Web_Dialog): Removed the name label and added the template textbox.
170    
171            * Extensions/umn_mapserver/mf_import.py (import_mapfile): Replace
172            the exception handling on loading the layers by an if statement. It
173            is not necessary to us the exception there.
174            The Filepath creation now use os.path.join to build the path.
175    
176            * Extensions/umn_mapserver/test/test_mapserver.py: Moved the testMap
177            definition from global to the setUp function. Now the testMap will
178            initialize new on each test.
179    
180            * Extensions/umn_mapserver/sample/iceland.map: Include three new
181            classes in the Line Layer, to test logical Expressions.
182            Set the status of the class "Point9" in the Point Layer to off
183            
184    2004-07-13  Bernhard Herzog  <[email protected]>
185    
186            * Thuban/UI/baserenderer.py
187            (BaseRenderer.render_map_incrementally): Fix a logic bug in the
188            optimization that tries not to draw layers under a raster layer.
189            The bug was harmless.  All it effectively did was to produce The a
190            strange messages about not being able to draw Layer instances for
191            all vector layers below a raster layer which would be invisible
192            anyway because the raster layer currently always covers the entire
193            window
194    
195    2004-07-08  Jan Sch�ngel <[email protected]>
196    
197            * Extensions/umn_mapserver/mapfile.py: Added code to generade and get
198            a list of supported outputformats. This formats are not alle supported
199            because there is no possibility to get the outputformat without the
200            name known. Make some formal changes to the code.
201            (MF_Map.set_name()): Fixed a bug if the name is None.
202    
203            * Extensions/umn_mapserver/mf_handle.py: Removed the image_type import
204            statement, because its not needed anymore. The Outputformat is now
205            given as string from the object. Make some formal changes to the code.
206    
207            * Extensions/umn_mapserver/test/test_mapserver.py: Added new test for
208            most of the new setting which were added during the last changes.
209            Removed the MF_Size Test.
210            
211            * Extensions/umn_mapserver/test/test.map: Added a new class to the
212            cultural Layer to test expressions and the the status of that layer
213            from on to default.
214            Changed the data path the the correct Thuban Data
215            Added the Outputformat Object and Symbol Object
216            
217    2004-07-07  Jan Sch�ngel <[email protected]>
218    
219            * Extensions/umn_mapserver/mapfile.py: Added some new
220            settings to edit (outputformat, label, imagetype)
221    
222            * Extensions/umn_mapserver/mf_handle.py: Added some setting to
223            the Label Dialog and add the OutputDialog.
224            Make some changes to the code order.
225    
226    2004-07-06  Jan Sch�ngel <[email protected]>
227    
228            * Extensions/umn_mapserver/mapfile.py: Added the symbolObj, pointObj
229            and line Obj and add the scalebar_status_type, scalebar_style_type and
230            scalebar_position_type.
231            Added the symbol- and symbolsetObject (MF_Symbol,MF_Symbolset). The
232            are only used to create a Symbol like the circle in Thuban.
233            Added the scalebarObject (MF_Scalebar)
234            (MF_Class): Added set_status and get_status.
235            (MF_Layer.add_thubanclass): Added code to set the class status
236            (MF_Map): Added code to handle the symbols and scalebar
237            (MF_Label): Added the set_partials and get_partials functions
238            
239            * Extensions/umn_mapserver/mf_export.py: Added MF_Symbol to import
240            from mapfile. Added a function to create a circle object like the one
241            from thuban if no one exists.
242            
243            * Extensions/umn_mapserver/mf_handle.py: All colors are now set when
244            press ok in the assosiated dialog and not at the end of the
245            colordialog.
246            Added the Dialog for the Scalebar.
247            (Label_Dialog): Added the offset option
248    
249            * Extensions/umn_mapserver/mf_import.py: Added code to import the
250            status of the Classes.
251            Fixed a bug with the projection. Now the to_meter parameter will be
252            added to the Projection only if it doesn't exists.
253    
254    2004-07-01  Jan Sch�ngel <[email protected]>
255    
256            Added the functionality to handle the content thuban is not
257            able to handle directly.
258    
259            * Extensions/umn_mapserver/mf_handle.py: New. This module extents
260            Thuban with the possibility to edit the mapfile content.        
261            
262            * Extensions/umn_mapserver/mf_import.py: Added the possibility
263            to import mapfiles without any layer selected. So it is possible
264            to edit the other settings in a mapfile.
265            (import_mapfile): Added code to use the editing functions.
266            Added the possibility to import the projection to a layer if one
267            is defined.
268            Status settings (On,Off) will now set in thuban (visible, invisible).
269            fixed a bug with with classnames. If no classname is set in mapfile
270            the value in Thuban will set to the expression.
271            
272            * Extensions/umn_mapserver/mf_export.py(export_mapfile): Added the
273            possibility to save a new mapfile or use the old one which is
274            imported or new created.
275            Added code to use the editing functions.
276            Remove some not needed import statements
277    
278            * Extensions/umn_mapserver/mapfile.py: Added new types which are
279            need for the editing functions.
280            Added needed set-functions for the editing functions.
281            Added the possibility to export rasterimages.
282            Added new classes (MF_Web, MF_Label, MF_Legend, MF_Symbol,
283            MF_SymbolSet). MF_Symbol and MF_SymbolSet are not needed at the
284            moment.
285            (MF_Class.set_thubanstyle): Now point layers will set to a default
286            symbol to show a circle in mapserver and not only a 1px dot.
287            (MF_Style.__init__): Fixed a bug with the color. Color was not set
288            correct before.
289            (MF_Size): Removed, because it is not needed.
290            
291            * Extensions/umn_mapserver/README: Added the hints to use the
292            export and editing functions, too.
293    
294            * Extensions/umn_mapserver/sample/iceland.map: Added the
295            new parameter "UNITS METERS".
296            Change the political layer to status OFF.
297    
298            * Extensions/umn_mapserver/sample/README: Added some
299            more details to setup the sample in the MapServer.
300            
301    2004-06-26  Bernhard Reiter <[email protected]>
302    
303            * Extensions/svgexport/test/test_svgmapwriter.py:
304            Removed class VFile and used standard StringIO instead.
305    
306    2004-06-23  Jan Sch�ngel  <[email protected]>
307    
308            Add the export function to the umn_mapserver extension.
309    
310            * Extension/umn_mapserver/mf_export.py: New. This module extents
311            Thuban with the possibility to export the Thuban content.
312    
313            * Extensions/umn_mapserver/mapfile.py: Expand the classes to use
314            with the export module. Especially added the possibility to
315            add thuban objects directly to the map objects.
316    
317            * Extensions/umn_mapserver/mf_import.py: Removed the wxCHANGE_DIR,
318            because of the hint from Bernhard Herzog.
319            Corrected the handling of absolute pathnames.
320            Changed the Text of the Menu-Item, now the beginning is upper case.
321    
322            * Extensions/umn_mapserver/README: Added the --with-tiff statement.
323    
324    2004-06-16  Jan Sch�ngel  <[email protected]>
325    
326            Add a sample and make some changes.
327    
328            * Extension/umn_mapserver/mf_import.py: Changed the wxPython.wx
329            import from * to explicit used statements. Changed the
330            Thuban.UI.mainwindow import phrase, too.
331            (import_mapfile):Corrected a clerical mistake.
332            Added wxCHANGE_DIR in OpenFile Dialog.
333            Added a MultipleChoiceDialog, to select the layers to load from
334            mapfile into thuban. Thereby the projection is only set if one layer
335            is selected.
336            Added the possibility to handle relative pathnames which uses
337            up-level references.
338            Removed some doubled code.
339            Corrected an error with integer values used as label in thuban
340            ClassGroup.
341            
342            * Extensions/umn_mapserver/sample: New.
343    
344            * Extensions/umn_mapserver/sample/README: New. Describes the
345            usage of the sample files.
346    
347            * Extensions/umn_mapserver/sample/iceland.map: New. This is
348            a suitable .map-file for the iceland data.
349    
350            * Extensions/umn_mapserver/sample/index.html: New. The template
351            for the mapfile.  
352    
353            * Extensions/umn_mapserver/sample/iceland.html: New. Initialisation
354            file for the Iceland Application on web.
355    
356            * Extensions/umn_mapserver/README: Corrected a inaccuracy and added
357            some details.
358    
359            * Extensions/umn_mapserver/test/test_mapserver
360            (mapserver_import_Test_generalClasses.test_MF_Color):
361            Corrected the thubancolor test.
362    
363    2004-06-15  Jan Sch�ngel  <[email protected]>
364    
365            * Extensions/umn_mapserver/README: New. Install instruction.
366    
367    2004-06-14  Bernhard Reiter <[email protected]>
368    
369            * libraries/thuban/cpl_mfile.h: Added copyright header.
370    
371            * libraries/thuban/ cpl_mfile.cpp, cpl_mfile.h: Added non-protecting
372            Free Software License so that it is most useful with gdalwarp
373            and bmpdataset.
374    
375    2004-06-14  Bernhard Herzog  <[email protected]>
376    
377            * Thuban/UI/multiplechoicedialog.py (__version__): Add missing
378            import of wxPython.wx itself (as opposed to the contents of
379            wxPython.wx).  For some reason wxPython.wx is available as
380            wxPython.wx.wx in at least some 2.4 releases.  Fixes RT#2482
381            wrt. wxPython 2.4.
382    
383    2004-06-10  Jan Sch�ngel  <[email protected]>
384    
385            Initial version of new extension "umn_mapserver".  This extension aims
386            to manage configuration for the UMN MapServer application.  This
387            inital version just imports the .map-files and displays all, Thuban is
388            capable of.
389    
390            * Extensions/umn_mapserver, Extensions/umn_mapserver/test: New.
391    
392            * Extensions/umn_mapserver/test/README: New. Describes how to run the
393            tests.
394    
395            * Extensions/umn_mapserver/test/test.map: New. This is a test
396            .map-file for automated tests of the umn_mapserver extension of
397            Thuban.
398    
399            * Extensions/umn_mapserver/test/test_mapserver.py: New. Tests for
400            UMN Mapserver classes.
401    
402            * Extensions/umn_mapserver/__init__.py: New. Init to make this
403            directory a package.
404    
405            * Extensions/umn_mapserver/mapfile.py: New. Classes to represent
406            '.map'-file objects.
407    
408            * Extensions/umn_mapserver/mf_import.py: New. This module extends
409            Thuban with the possibility to handle UMN MapServer mapfiles.
410    
411    2004-06-03  Bernhard Herzog  <[email protected]>
412    
413            * Thuban/Model/layer.py (Layer.TreeInfo): Convert the bounding box
414            to a tuple before using it as arguments to the % operator.  This
415            fixes the formatting issue filed in RT#2239 on 2004-01-13 and
416            reported today on thuban-list by Jan Sch�ngel
417    
418            * test/test_layer.py (TestLayerModification.setUp): Save the
419            filename as an instance variable so we can refer to it in tests
420            (TestLayerModification.test_tree_info): Uncomment this method
421            again and make it work.  This tests for the formatting issue
422            filed in RT#2239 on 2004-01-13
423    
424    2004-05-28  Bernhard Herzog  <[email protected]>
425    
426            * Thuban/UI/baserenderer.py: Fix some typos.
427    
428    2004-05-18  Jan-Oliver Wagner <[email protected]>
429    
430            * Extensions/gns2shp/gns2shp.py (gns2shp): Fixed a bug
431            by increasing a field size.
432    
433    2004-05-17  Bernhard Herzog  <[email protected]>
434    
435            Update to newest shapelib and get rid of Thuban specific
436            extensions, i.e. use the new DBFUpdateHeader instead of our
437            DBFCommit kludge
438    
439            * libraries/shapelib/shpopen.c: Update to version from current
440            shapelib CVS.
441    
442            * libraries/shapelib/shapefil.h: Update to version from current
443            shapelib CVS.
444    
445            * libraries/shapelib/dbfopen.c: Update to version from current
446            shapelib CVS.
447            (DBFCommit): Effectively removed since shapelib itself has
448            DBFUpdateHeader now which is better for what DBFCommit wanted to
449            achieve.  
450            We're now using an unmodified version of dbfopen.
451    
452            * setup.py (extensions): Add the HAVE_UPDATE_HEADER macro with
453            value '1' to the Lib.dbflibc extension.  This simply reflects the
454            shapelib and pyshapelib updates
455    
456    2004-05-16  Jan-Oliver Wagner <[email protected]>
457    
458            Finished introduction of Menu.FindOrInsertMenu.
459    
460            * Extensions/drawshape/drawshape.py: Add the command
461            to the experimental menu additionally to the toolbar.
462    
463            * Extensions/svgexport/svgsaver.py: Use FindOrInsertMenu() instead of
464            finding menu on its own.
465    
466            * Doc/manual/thuban-manual.xml: updated sample file
467            to use FindOrInsertMenu().
468    
469            * Examples/simple_extensions/hello_world.py: Use FindOrInsertMenu()
470            instead of finding menu on its own.
471    
472    2004-05-11  Jan-Oliver Wagner <[email protected]>
473    
474            * test/test_menu.py (MenuTest.test): Added testing
475            of method Menu.FindOrInsertMenu.
476    
477    2004-05-10  Jan-Oliver Wagner <[email protected]>
478    
479            Introduce and use Menu.FindOrInsertMenu.
480    
481            * Thuban/UI/menu.py (Menu.FindOrInsertMenu): New. Find a
482              given menu or, if not found, insert it.
483    
484            * Extensions/bboxdump/bboxdump.py, /Extensions/gns2shp/gns2shp.py,
485            /Extensions/importAPR/importAPR.py, Extensions/profiling/profiling.py,
486            /Extensions/wms/wms.py: Use FindOrInsertMenu() instead of finding
487            menu on its own.
488    
489    2004-05-06  Jan-Oliver Wagner <[email protected]>
490    
491            Introduce a abstract ColorDialog class and remove
492            and outdated file.
493    
494            * Thuban/UI/proj4dialog.py: Removed. It is has been
495            replaced by projdialog for quite a while and is not used
496            anymore.
497    
498            * Thuban/UI/colordialog.py: New. Abstraction for color selection
499            dialog(s).
500    
501            * Thuban/UI/classifier.py (SelectPropertiesDialog.__GetColor):
502            Now calls the abstract ColorDialog instead of wxColourDialog.
503            This also removed the dependency to Color class conversion
504            from this function.
505    
506    2004-05-04  Frank Koormann  <[email protected]>
507    
508            * Extensions/bboxdump/__init__.py: Fixed string left over from
509            copying.
510    
511            * Extensions/bboxdump/bboxdump.py (bboxdump):
512            Use layer.ShapeStore().AllShapes() to loop over shapes instead of
513            xrange(layer.NumShapes()). Compile the bboxmessage from a list
514            of formatted outputs (string.join) instead of appending to the
515            message. Two progress bar dialogs to report progress on the sometimes
516            lenghty processing.
517    
518    2004-04-22  Frank Koormann  <[email protected]>
519    
520            New Extension to dump bounding boxes of all shapes of the selected
521            layer. An optional column can be specified to group the objects,
522            in this case the bounding box is a union of the separate boxes.
523            Dump can be displayed in a ScrolledMessageDialog or written to file.
524            The Extension is simply a combination of available and well tested
525            Thuban functionality.
526    
527            * Extensions/bboxdump/__init__.py: New: Init to make this
528            directory a package.
529    
530            * Extensions/bboxdump/bboxdump.py: New: Dump bounding boxes of
531            all shapes of the selected layer.
532    
533    2004-04-22  Jan-Oliver Wagner <[email protected]>
534    
535            * Thuban/UI/classgen.py (GenUniquePanel.__init__): Fixed two
536            strings to be i18n now.
537    
538    2004-04-18  Jan-Oliver Wagner <[email protected]>
539    
540            Changing popup menu of legend from direct building
541            to using the Menu construction as used for the mainwindow.
542    
543            * Thuban/UI/mainwindow.py: New method commands: layer_to_top,
544            layer_to_bottom, layer_visibility
545            (MainWindow.LayerToTop): New. Put current layer to the top.
546            (MainWindow.LayerToBottom): New. Put current layer to bottom.
547            (MainWindow.HideLayer, MainWindow.ShowLayer, _has_visible_map):
548            Replace 1,0 by True, False.
549            (MainWindow.ToggleLayerVisibility): New. Toggle visibility of
550            current layer.
551            (MainWindow.LayerShowTable): Removed raising of dialog.
552            (_has_selected_layer_visible): New. Support function.
553    
554            * Thuban/UI/legend.py: ID_POP_xxx: removed.
555            (LegendPanel.__init__): Removed EVT_MENU bindings.
556            (LegendTree._OnRightClick): Replace direct creation of
557            menu via wx Classes by applying the menu definition
558            as of Menu class of menu.py.
559            
560    2004-04-16  Jan-Oliver Wagner <[email protected]>
561    
562            * Thuban/UI/exceptiondialog.py (ExceptionDialog.dialog_layout): Improved
563        button string to stronger clearify that Thuban will be closed when hitting
564            the button.
565    
566            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Added docstring.
567            Now for layers without a ShapeStore a corresponding message is given
568            to the user, that this layer has no table to show.
569    
570    2004-04-15  Martin Schulze  <[email protected]>
571    
572            * Extensions/wms/layer.py (WMSLayer.setWMSFormat): Need to
573            recalculate the format for the internal render engine as well.
574    
575            * Extensions/wms/properties.py (wmsProperties): First start for a
576            properties dialog.  It's functional for a first selection of
577            layers, but still has some weired wxWidgets/GTK problems but
578            beautification can be done later.
579    
580            * Extensions/wms/layer.py: Added more documentation
581            (WMSLayer.getFormats): New: Return list of supported image formats
582            by the WMS server
583            (WMSLayer.getLayers): New: Return the list of layer names
584            supported by the WMS server
585            (WMSLayer.getLayerTitle): New: Return the title of the named layer
586            (WMSLayer.getWMSFormat): New: Return the image format that is used
587            for WMS GetMap requests
588            (WMSLayer.setWMSFormat): New: Set the image format that is used
589            for WMS GetMap requests
590            (WMSLayer.__init__): Move away from using only one layer to using
591            a list of layers (unsorted at the moment, though).
592            (WMSLayer.getVisibleLayers): New: Return the list of names for all
593            visible layers
594            (WMSLayer.setVisibleLayers): New: Set the list of names for all
595            visible layers
596    
597            * Extensions/wms/wms.py: Moved the WMS layer into layer.py in
598            order to establish a clean structure.
599    
600            * Extensions/wms/layer.py: Moved the WMS layer into a file on its
601            own in order to establish a clean structure.
602    
603    2004-04-13  Martin Schulze  <[email protected]>
604    
605            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Added
606            support for oldstyle (WMS 1.0 apparently) image format
607            specification.
608    
609            * Extensions/wms/wms.py (WMSLayer.calcFormat): Reduce the list of
610            supported graphic formats back to JPEG and BMP, PNG and others are
611            too *cough* experimental...  Sorry, I meant to filter this out
612            before I committed this part.  This should make the WMS extension
613            run from CVS again.
614            (wms_dialog): Reset an empty URL to None so that the subsequent
615            program can depend on this, since the dialog will indeed return an
616            empty URL, causing another declaration of love by Python.
617    
618            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerBBox):
619            Whenever a native BoundingBox request cannot be fulfilled, check
620            whether the requested SRS is EPSG:3426, in which case return the
621            LatLonBoundingBox values.
622    
623            * Extensions/wms/test/test_parser.py
624            (TestWMSCapabilitiesParser.test_LayerSRS): Added a test for
625            ignoring AUTO:* SRS.
626            (TestWMSCapabilitiesParser.test_LatLonBoundingBoxes_as_bboxes):
627            Added another test method to test whether the LatLonBoundingBox
628            values will be returned if BoundingBox values are requested with
629            SRS set to EPSG:3426.
630    
631            * Extensions/wms/parser.py (WMSCapabilitiesParser.peekLayers):
632            Added rudimentary support for non-EPSG SRS, i.e. ignore them for
633            the moment by placing them into a variable which is currently
634            unused.  Also test whether the EPSG SRS is numerical as it should
635            be and add an error message if it is not.
636    
637            * Extensions/wms/test/sample.xml: Added AUTO:* SRS since they
638            appear in the real world as well.  Since we cannot handle them yet
639            (OGCLib can't either), we will ignore them for the moment.
640    
641            * Extensions/wms/parser.py: Use a variable for denoting the sample
642            filename
643            (WMSCapabilitiesParser.peekLayers): Added support for error
644            messages during grok().  They will be aggregated in an array and
645            may be displayed later.  We may have to add a classification
646            "Warning" and "Error" to this.  That requires more experience,
647            though, since not every error may be lethal.
648    
649            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Raise the
650            ShowTable() dialog/frame when the user attempts to display it
651            while it has been opened before already and not closed again.
652    
653    2004-04-11  Martin Schulze  <[email protected]>
654    
655            * Extensions/wms/infodialog.py: Adjusted the class documentation
656    
657            * Extensions/wms/wms.py (WMSLayer.__init__, WMSLayer.GetMapImg):
658            Switch to using Thuban{Begin,End}BusyCursor instead of the pure
659            wxWidgets variants.
660            (WMSLayer.__init__): The epsg_id variable is named top_srs now.
661    
662            * Extensions/wms/infodialog.py: Added an information dialog that
663            will display various information about the WMS current resource,
664            so that additional information such as the title, the abstract,
665            fees and access constraints can be displayed for the user if they
666            are documented in the WMS XML.
667    
668    2004-04-10  Martin Schulze  <[email protected]>
669    
670            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Adjusted
671            string handling.  It's "foo".lower() and not lower(foo) without
672            lower imported from strings or something.
673    
674            * Extensions/wms/wms.py (WMSLayer): Incorporated WMSCapabilities
675            from capabilities.py and parser.py.  Implement priority list for
676            supported graphics formats, take care of wbmp != bmp.  PNG, TIFF
677            and GIF are supported here, but not yet by main Thuban.  Hence,
678            support for them may be removed later.  Special contribution to
679            usability: get wxWidgets to change the cursor when we're waiting
680            for data from the network so the user won't start to worry.  This
681            causes a redrawing error/warning, though.
682    
683            * Extensions/wms/parser.py (WMSCapabilitiesParser.grok): Unlink
684            the DOM object.
685    
686    2004-04-01  Martin Schulze  <[email protected]>
687    
688            * Extensions/wms/capabilities.py: Adjusted documentation
689            (WMSCapabilities.__init__): Improved documentation, fixed syntax
690            (WMSCapabilities.saveCapabilities): Only catch IOError when
691            handling files
692            (WMSCapabilities.loadCapabilities): Only catch IOError when
693            handling files
694            __main__: corrected variable naming
695            (WMSCapabilities.fetchCapabilities,loadCapabilities): Make this
696            class a specialisation of WMSCapabilitiesParser as well.  Also
697            execute grok() after loading or fetching capabilities, if that
698            went well, so that subsequent calls can already access the data.
699            (WMSCapabilities.getVersion): Export the used version of the
700            GetCapabilities request, so we can use it for subsequent calls,
701            i.e. for GetMap requests.
702            (WMSCapabilities.fetchCapabilities): Added proper error handling
703            when the GetCapabilities request failed, so that the surrounding
704            program can act accordingly.
705    
706    2004-03-30  Martin Schulze  <[email protected]>
707    
708            * Extensions/wms/parser.py (WMSCapabilitiesParser.getLayerSRS):
709            Adjusted the getLayerSRS method to return the list of SRSes
710            extracted from <SRS> elements instead of <BoundingBox> elements.
711            Added a bit of documentation as well.
712            (WMSCapabilitiesParser.checkLayerSRS): Removed integrity test
713            since it was only implemented due to a misunderstanding.
714    
715            * Extensions/wms/test/test_parser.py
716            (TestWMSCapabilitiesParser.test_LayerSRS): Adjust the tests to
717            reflect the corrected interpretation of the standard: i.e. a layer
718            does not have to define a BoundingBox for all SRSes it supports.
719            Hence the <SRS></SRS> specification is authoritative, not the list
720            of BoundingBoxes.
721            (TestWMSCapabilitiesParser.test_BoundingBoxes): Added a new test
722            to ensure None is returned for a non-existing SRS.
723            (TestWMSCapabilitiesParser.test_grok): Removed test_grok method
724            since it is not applicable anymore.  Listing more SRSes in <SRS>
725            elements is valid according to the specs.
726    
727    2004-03-26  Bernhard Reiter <[email protected]>
728    
729            * README: Nicer formatting of text. Improved descriptions.
730            Reflected wxWidgets name change.
731            
732            * Thuban/UI/about.py: Extended copyright to 2004 and added
733            information about the thuban-devel mailinglist.
734    
735    2004-03-24  Martin Schulze  <[email protected]>
736    
737            * Extensions/wms/capabilities.py: Renamed the class to contain
738            'WMS', also added a linebreak where required
739    
740            * Extensions/wms/parser.py: Finally added the XML parser for the
741            GetCapabilities response.
742    
743            * Extensions/wms/test/sample.xml: Adjusted the sample file so that
744            <SRS> elements match the <BoundingBox> elements, except for the
745            layer 'beschriftung'.
746    
747            * Extensions/wms/test/test_parser.py: Encode non-ascii strings
748            since Python uses unicode strings internally, otherwise
749            comparisons will fail.  Removed tests for getLayerBBoxSRS() since
750            the SRS will be calculated anyway and this method is obsoleted by
751            getLayerSRS().  Denote SRS as strings and not as cardinal numbers.
752            Move loading the sample file into the setUp method.  Added a test
753            for finding the integrity problem in the sample response.
754            Improved formatting.
755    
756            * Extensions/wms/domutils.py: Added convenience routines for
757            handling of Document Object Model (DOM) nodes.
758    
759            * Extensions/wms/test/test_domutils.py: Added a test for the
760            domutils module
761    
762    2004-03-19  Martin Schulze  <[email protected]>
763    
764            * Extensions/wms/test/test_parser.py (TestWMSCapabilitiesParser):
765            Moved path detection and adding into a module of its own,
766            adjustpath, which exports thubandir as main Thuban directory.
767    
768            * Extensions/wms/test/test_ogclib.py (TestWMSLib): Moved path
769            detection and adding into a module of its own, adjustpath, which
770            exports thubandir as main Thuban directory.  Reorganised the
771            module in order to support the SkipTest feature for Thuban test
772            cases.
773    
774            * Extensions/wms/test/adjustpath.py: Moved path detection and
775            adding into a module of its own.
776    
777    2004-03-18  Martin Schulze  <[email protected]>
778    
779            * Extensions/wms/test/test_parser.py: Added another test for
780            checking whether the WMS XML parser (to be implemented) returns
781            the information we expect.  This requires a sample WMS WML file
782            (sample.xml) which has been extracted from the frida server and
783            "improved" manually.
784    
785            * Extensions/wms/test/test_ogclib.py: Added legacy code to add the
786            main Thuban directory to the path in order to be able to import
787            random modules.  Adjusted the PyOGCLib detection to reuse the
788            information gathered.  Also added a note about the PYTHONPATH
789            environment variable.
790    
791            * Extensions/wms/test/test_ogclib.py: The format specification is
792            a mime-type, not a graphic format, hence image/jpeg wou ld be the
793            proper format and not JPEG.  We'll also have to take care of the
794            encoding of / as %2F.
795    
796    2004-03-16  Martin Schulze  <[email protected]>
797    
798            * Extensions/wms/test/test_ogclib.py: Added a (hopefully)
799            comprehensive test for the getMapURL method, built compare URLs
800            according to the documentation in OGC 01-068r3
801    
802            * Extensions/wms/capabilities.py (WMSCapabilities): Added the
803            class WMSCapabilities to manage capabilites, will incorporate
804            parsing the capabilities response and provide details for other
805            classes.
806    
807    2004-03-12  Bernhard Herzog  <[email protected]>
808    
809            Support views in addition to normal tables in the postgis
810            shapestore
811    
812            * Thuban/Model/postgisdb.py
813            (PostGISShapeStore._fetch_table_information): Add a fallback for
814            the case where the table name is not in the geometry_columns
815            table.  This is usually the case for views.  Also, set
816            self.shapestore here.
817            (PostGISShapeStore.ShapeType): No need to query the database all
818            the time.  The shape type is now determined in
819            _fetch_table_information
820    
821            * test/postgissupport.py (PostgreSQLServer.new_postgis_db)
822            (PostgreSQLServer.get_static_data_db, PostGISDatabase.__init__):
823            New parameter to specify views.
824            (PostGISDatabase.has_data): Also compare the views.  New views
825            parameter
826            (PostGISDatabase.initdb): Create the views.
827            (PostgreSQLServer.get_default_static_data_db): Add the v_landmarks
828            view
829    
830            * test/test_postgis_db.py
831            (TestPostGISShapestorePointFromViews): New.  Test a
832            PostGISShapeStore with a view
833            (TestPostGISShapestorePointOIDAsGIDColumn.setUp): Pass the name of
834            the geometry_column explicitly to test whether that works
835    
836    2004-03-12  Bernhard Herzog  <[email protected]>
837    
838            Final step for explicit id/geometry columns: Loading and saving
839    
840            * Resources/XML/thuban-1.1.dtd: New.  Derived from thuban-1.0.dtd
841            with the following changes:
842            (dbshapesource): Two new attributes id_column and geometry_column
843    
844            * Thuban/Model/save.py (SessionSaver.write): Use the new dtd
845            (SessionSaver.write_session): Use the new namespace
846            (SessionSaver.write_data_containers): Write the new dbshapesource
847            parameters
848    
849            * Thuban/Model/load.py (SessionLoader.__init__): New namespace for
850            the new file format version
851            (SessionLoader.start_dbshapesource): Handle the new db parameters
852    
853            * test/test_save.py: Update to the new dtd and namespace
854            (SaveSessionTest.test_save_postgis): Update the NonConnectionStore
855            mock object to provide a working IDColumn method.
856    
857            * test/test_load_1_0.py: New.  Copy of the test_load.py before
858            today's changes but with the round-trip tests removed.
859    
860            * test/test_load_0_9.py: Update doc-string.
861    
862            * test/test_load.py: Update all .thuban files to the new dtd and
863            namespace.
864            (TestPostGISLayer.file_contents): Add the new dbshapesource
865            paramters
866    
867    2004-03-11  Bernhard Herzog  <[email protected]>
868    
869            Next step for explicit id/geometry columns: User interaction
870    
871            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Rework how
872            the dialog is constructed. Add combo boxes to select id and
873            geometry column.  Rename some instance variables.
874            (ChooseDBTableDialog.GetTable): Return id and geometry column
875            names
876            (ChooseDBTableDialog.OnTableSelect): New. Event handler for
877            selections in the table list
878    
879            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Use id_column
880            and geometry_column
881    
882            * Thuban/Model/session.py (Session.OpenDBShapeStore): Add the new
883            parameters for id_column and geometry column of PostGISShapeStore
884            here as well.
885    
886            * Thuban/Model/postgisdb.py (type_map): Add ROWID psycog type.
887            (_raw_type_map): New. Map raw PostgreSQL type ints to thuban types
888            (PostGISConnection.GeometryTables): Use a better query to
889            determine which relations in the database might be usable for
890            shapestores.  Now supports views as well but is more PostgreSQL
891            specific
892            (PostGISConnection.table_columns): New. Somewhat experimental
893            method to let the db dialogs provide lists of columns to users so
894            that they can select id and geometry columns.
895            (PostGISTable.__init__): The default value of the id_column
896            parameter is now None it still means "gid" effectively, though.
897            (PostGISTable.IDColumn): New introspection method to return a
898            column object for the id column
899            (PostGISShapeStore.GeometryColumn): New introspection method to
900            return a column object for the geometry column
901    
902            * test/test_postgis_db.py
903            (TestPostGISConnection.test_gis_tables_non_empty):
904            Removed. Subsumed by the new:
905            (TestPostGISConnection.test_gis_tables_with_views_and_tables):
906            New. Tes the GeometryTables and table_columns methods with actual
907            tables and views.
908            (PointTests.test_id_column, PointTests.test_geometry_column):
909            New. tests for the new methods.
910            (TestPostGISShapestorePoint.setUp)
911            (TestPostGISShapestorePointSRID.setUp)
912            (TestPostGISShapestorePointExplicitGIDColumn.setUp): Fill the
913            instance variables needed by the new tests
914    
915    2004-03-11  Bernhard Herzog  <[email protected]>
916    
917            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): The row
918            numbers given to ReadValue are ordinals.
919    
920    2004-03-11  Bernhard Herzog  <[email protected]>
921    
922            Elimiate the requirement for PostGIS tables to have a column
923            called "gid".
924    
925            * Thuban/Model/postgisdb.py (PostGISTable.__init__): New parameter
926            id_column to specify which column to use to identify rows.  Also
927            new instance variables id_column and quoted_id_column
928            (PostGISTable.RowIdToOrdinal, PostGISTable.RowOrdinalToId)
929            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue)
930            (PostGISTable.SimpleQuery): Use the id column name provided to the
931            constructor instead of "gid"
932            (PostGISShapeStore.__init__): New parameter id_column analogously
933            to PostGISTable.__init__.  This parameter is simply passed through
934            to the base class constructor
935            (PostGISShapeStore._create_col_from_description): Fix typo in
936            doc-string
937            (PostGISShapeStore.Shape, PostGISShapeStore.AllShapes)
938            (PostGISShapeStore.ShapesInRegion): Use the id column name
939            provided to the constructor instead of "gid"
940    
941            * test/postgissupport.py
942            (PostgreSQLServer.get_default_static_data_db): New static table
943            landmarks_point_id with an id column != "gid.  Update the comments
944            a bit.
945            (skip_if_addgeometrycolumn_does_not_use_quote_ident): Fix typo in
946            doc-
947            (upload_shapefile): New parameter gid_column to use a name other
948            than "gid" for the column to store the shape ids
949    
950            * test/test_postgis_db.py (TableTests): New.  Mixin-class
951            containing all tests previously in TestPostGISTable.  The actual
952            tests are the same but the code is a bit more configurable to
953            allow for different id columns etc.
954            (TestPostGISTable): Derive from TableTests now for the actual
955            tests.
956            (TestPostGISTableExplicitGIDColumn): New. Like TestPostGISTable
957            except that it the landmarks_point_id table to test the id_column
958            parameter
959            (PointTests): Extend the doc-string
960            (TestPostGISShapestorePointExplicitGIDColumn)
961            (TestPostGISShapestorePointOIDAsGIDColumn): New classes derived
962            from PointTests to test the explicit id_column parameter.  One
963            tests with the name of the column holding the shape ids, the other
964            uses PostgreSQL's OID column.  For the latter a number of methods
965            have to be overwritten to make them independent of the actual id
966            values.
967    
968    2004-03-08  Silke Reimer  <[email protected]>
969    
970            Update debian directory:
971    
972            * debian/changelog: Added new version.
973            * deiban/rules: Updated management of patches (with cbds)
974            * debian/control: Added cbds to dependencies
975            * debian/patches/*: New. Adds better support for patches of thuban in
976                            debian
977            * debian/menu: Syntax of menu changed slightly
978            * debian/setup.py.patch: removed because it has been moved to
979                            debian/patechs/setup.py.patch
980            
981    
982    2004-02-26  Bernhard Herzog  <[email protected]>
983    
984            Create the Doc/technotes directory for text files with information
985            for developers
986    
987            * Doc/technotes/README: New. README for the technotes
988    
989            * Doc/technotes/coding_guidelines.txt: New. Coding guidelines for
990            Thuban
991    
992            * Doc/technotes/release_process.txt: New. Used to be
993            HOWTO-Release.  Now slightly adapted to technote formatting style.
994    
995            * HOWTO-Release: Removed.  It's contents are now in
996            Doc/technotes/release_process.txt
997    
998    2004-02-25  Bernhard Herzog  <[email protected]>
999    
1000            * libraries/thuban/wxproj.cpp (get_wx_version): New.  Return the
1001            version of wxWindows the module was compiled with so we can check
1002            that against the wxPython version.
1003    
1004            * Thuban/version.py (thuban_branch, thuban_release): New variables
1005            controlling which and how Thuban versions are shown.  See the
1006            comments for details.
1007            (verify_versions): Also check that the wx version that wxproj is
1008            compiled against matches that of the wxPython we use at runtime
1009    
1010    2004-02-20  Bernhard Herzog  <[email protected]>
1011    
1012            * Extensions/wms/wms.py (epsg_code_to_projection): Use
1013            get_system_proj_file to read the epsg projections.  The old way
1014            depended on the current directory being the top Thuban directory.
1015    
1016    2004-02-20  Bernhard Herzog  <[email protected]>
1017    
1018            * Extensions/svgexport/test/test_svgmapwriter.py
1019            (TestVirtualDC.test_clippath): Remove a debug print
1020    
1021    2004-02-20  Bernhard Herzog  <[email protected]>
1022    
1023            * Extensions/svgexport/__init__.py: New.  Turn
1024            Extensions/svgexport into a package.
1025    
1026            * Extensions/svgexport/svgmapwriter.py: Reorder the imports and
1027            doc-string a bit.  The doc-string must come first, otherwise it's
1028            not a doc-string.  The __future__ import must be the first thing
1029            after the doc-string.  Use only double quotes in doc-strings.
1030            Single quotes trip up emacs syntax highlighting if the text
1031            contains apostrophes.
1032    
1033    2004-02-20  Bernhard Herzog  <[email protected]>
1034    
1035            * Extensions/svgexport/test/__init__.py,
1036            Extensions/svgexport/test/test_svgmapwriter.py: New. Initial test
1037            suite for svgexport
1038    
1039            * test/runtests.py (find_test_modules): New. Function with the
1040            module finding code from main.
1041            (main): Use find_test_modules to figure out the default test
1042            modules and take modules from Extensions.svgexport.test too.
1043    
1044    2004-02-19  Bernhard Herzog  <[email protected]>
1045    
1046            * Thuban/UI/application.py (ThubanApplication.OnInit): Make sure
1047            the mainwindow has a reference to the map of the initial session.
1048            This fixes a bug introduced with the fix for RT#2245
1049    
1050    2004-02-19  Bernhard Herzog  <[email protected]>
1051    
1052            * Extensions/svgexport/svgsaver.py,
1053            Extensions/svgexport/svgmapwriter.py,
1054            Extensions/svgexport/maplegend.py: Added again.  This time in the
1055            correct place.
1056    
1057    2004-02-17  Bernhard Herzog  <[email protected]>
1058    
1059            Fix for RT#2245
1060    
1061            * Thuban/UI/application.py (ThubanApplication.OnInit): Initialize
1062            instance variables before trying to create any windows.  Creating
1063            windows can start an event loop if e.g. message boxes are popped
1064            up for some reason, and event handlers, especially EVT_UPDATE_UI
1065            may want to access things from the application.
1066            (ThubanApplication.maps_changed): The mainwindow may not have been
1067            created yet, so check whether it has been created before calling
1068            its methods
1069    
1070            * Thuban/UI/view.py (MapCanvas.OnIdle): Only try to redraw if we
1071            have a map
1072    
1073    2004-02-17  Bernhard Herzog  <[email protected]>
1074    
1075            * test/test_svgmapwriter.py, Extensions/svgsaver.py,
1076            Extensions/svgmapwriter.py, Extensions/maplegend.py,
1077            extensions/svgexport/svgsaver.py,
1078            extensions/svgexport/svgmapwriter.py,
1079            extensions/svgexport/maplegend.py: Removed.  These files were in
1080            the wrong places or didn't work at all.
1081    
1082    2004-02-16  Bernhard Herzog  <[email protected]>
1083    
1084            * Thuban/UI/view.py (MapCanvas.Export): Remove accidentally added
1085            line
1086    
1087    2004-02-16  Bernhard Herzog  <[email protected]>
1088    
1089            * Thuban/UI/view.py (MapCanvas.Export): Avoid UnboundLocalError.
1090    
1091    2004-02-15  Markus Rechtien  <[email protected]>
1092            
1093            * Extensions/svgexport/svgmapwriter.py: New. Adds the capability
1094            to write a session to a file in SVG format.
1095            * Extensions/svgexport/svgsaver.py: New. Uses svgmapwriter.py
1096            to write a SVG map of a session.
1097            * Extensions/svgexport/maplegend: New. Writes a basic maplegend
1098            in SVG format for the current session.
1099    
1100    2004-02-13  Bernhard Herzog  <[email protected]>
1101    
1102            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): When the layer
1103            can't be created, return immediately after displaying the error
1104            message.
1105    
1106    2004-02-11  Bernhard Herzog  <[email protected]>
1107    
1108            Handle postgis tables with more than one geometry column.
1109    
1110            * Thuban/Model/postgisdb.py
1111            (PostGISTable._fetch_table_information): Delegate the creation of
1112            column objects to a different method so that we can extend that in
1113            derived classes
1114            (PostGISTable._create_col_from_description): New. Column object
1115            creation part of _fetch_table_information
1116            (PostGISShapeStore._create_col_from_description): New. Extend
1117            inherited method to handle geometry columns
1118            (PostGISShapeStore.__init__): New parameter geometry_column to
1119            specify which geometry column to use.  Optional but mandatory for
1120            tables with more than one geometry column
1121            (PostGISShapeStore._fetch_table_information): Also use the name of
1122            the geometry column when looking for the srid
1123            (PostGISShapeStore.ShapeType): Also use the name of the geometry
1124            column when looking for the shape type
1125    
1126            * test/test_save.py (SaveSessionTest.test_save_postgis): Adapt
1127            NonConnectionStore to changes in the PostGISShapeStore
1128    
1129            * test/test_postgis_db.py
1130            (TestPostGISSpecialCases.test_shapestore_two_geom_cols): Test
1131            PostGISShapeStore with tables having two geometry columns.
1132    
1133    2004-02-10  Bernhard Herzog  <[email protected]>
1134    
1135            Fix some postgis problems.  What remains to be done is real
1136            handling of SRIDs as they affect how reprojection is done
1137    
1138            * Thuban/Model/postgisdb.py (quote_identifier): Fix typo in
1139            doc-string
1140            (PostGISShapeStore._fetch_table_information): New. Extend
1141            inherited method to retrieve srid
1142            (PostGISShapeStore.BoundingBox): Handle tables without data.
1143            extent yields NULL for those
1144            (PostGISShapeStore.ShapesInRegion): Use the srid of the table.
1145    
1146            * test/test_postgis_db.py
1147            (TestPostGISSpecialCases.test_shapestore_empty_table): New test
1148            for the special case of a table without any data
1149            (TestPostGISShapestorePointSRID): New class with tests for a table
1150            that uses srids
1151            (PolygonTests): Fix a doc-string typo
1152    
1153            * test/postgissupport.py (PostGISDatabase.__init__): New parameter
1154            reference_systems with a specification of spacial reference
1155            systems to create in the new db.
1156            (PostgreSQLServer.new_postgis_db)
1157            (PostgreSQLServer.get_static_data_db): New parameter
1158            reference_systems to be passed through ultimately to
1159            PostGISDatabase.  In new_postgis_db also check whether an existing
1160            db already has the right srids
1161            (PostgreSQLServer.get_default_static_data_db): Add srids and a
1162            table that uses srids
1163            (PostGISDatabase.initdb): Create the entries for the reference
1164            systems
1165            (PostGISDatabase.has_data): Add reference_systems parameter to
1166            check for those too
1167            (upload_shapefile): New parameter srid to create tables with a
1168            specific srid
1169    
1170    2004-02-06  Frank Koormann  <[email protected]>
1171    
1172            * po/pt_BR.po: Fixed charset
1173    
1174    2004-02-05  Frank Koormann  <[email protected]>
1175    
1176            * po/pt_BR.po: Fixed format string for error message, missing %s
1177            added (Thuban/UI/application.py:273)
1178    
1179    2004-02-03  Frank Koormann  <[email protected]>
1180            
1181            First version of Portuguese (Brazilian) translation
1182    
1183            * po/pt_BR.po: New, translation of pot (2004-01-15 16:07+0300) for
1184            Brazilian Portuguese by Eduardo Patto Kanegae.
1185    
1186            * Thuban/UI/about.py (About.__init.py__): Added Eduardo to the list of
1187            translators.
1188    
1189    
1190    2004-01-22  Frank Koormann  <[email protected]>
1191    
1192            * Doc/manual/thuban-manual.xml: Added section on installation of
1193            Thuban under Win32 systems. Fixed image path references in the postgis
1194            section. Some minor source formattings.
1195    
1196    2004-01-21  Frank Koormann  <[email protected]>
1197    
1198            Make Thuban remember path selections (at least for one application run).
1199    
1200            * Thuban/UI/application.py (Application.OnInit): Initialize path as a
1201            attribute of application object. Path is a dictionary of
1202            strings, currently with the items "data" and "projection".  
1203            (Application.SetPath): New, stores path for the specified item.
1204            (Application.Path): New, return path for the specified item.
1205    
1206            * Thuban/UI/mainwindow.py
1207            (MainWindow.OpenSession, MainWindow.SaveSessionAs,
1208            MainWindow.AddLayer, MainWindow.AddRasterLayer,
1209            MainWindow.TableOpen): Access "data" path information of the
1210            application.
1211            
1212            * Thuban/UI/projdialog.py (ProjFrame._OnImport, ProjFrame._OnExport):
1213            Access "projection" path information of the application.
1214    
1215    2004-01-05  Bernhard Herzog  <[email protected]>
1216    
1217            * po/ru.po: Updated translations from Alex Shevlakov
1218    
1219    2004-01-05  Bernhard Herzog  <[email protected]>
1220    
1221            * po/Makefile, po/README: Move the description of how to generate
1222            the translation statistics to the README.
1223    
1224    2003-12-23  Bernhard Herzog  <[email protected]>
1225    
1226            * NEWS: Update for 1.0.0
1227    
1228            * po/it.po: Another update from Maurizio Napolitano
1229    
1230    2003-12-23  Bernhard Herzog  <[email protected]>
1231    
1232            * po/it.po: Updated translation from Maurizio Napolitano
1233    
1234    2003-12-23  Bernhard Herzog  <[email protected]>
1235    
1236            * Thuban/UI/join.py (JoinDialog.__init__): Mark one more string
1237            for translation
1238    
1239            * Thuban/UI/mainwindow.py (MainWindow.TableRename)
1240            (MainWindow.RenameMap, MainWindow.RenameLayer): Mark some more
1241            strings for translation
1242    
1243            * po/de.po: Update with the newly marked strings.
1244    
1245    2003-12-22  Bernhard Herzog  <[email protected]>
1246    
1247            * HOWTO-Release: Fix the places where version numbers have to be
1248            updated
1249    
1250    2003-12-22  Bernhard Herzog  <[email protected]>
1251    
1252            * setup.py (setup call): 1.0.0, yeah!
1253    
1254            * Thuban/version.py (longversion): 1.0.0, yeah!
1255    
1256            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
1257            1.0.0 namespace too
1258    
1259            * Thuban/Model/save.py (SessionSaver.write_session): Save with
1260            1.0.0 namespace
1261    
1262            * test/test_load.py (LoadSessionTest.dtd)
1263            (TestSingleLayer.file_contents)
1264            (TestNonAsciiColumnName.file_contents)
1265            (TestLayerVisibility.file_contents)
1266            (TestClassification.file_contents, TestLabels.file_contents)
1267            (TestLayerProjection.file_contents)
1268            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
1269            (TestLabelLayer.file_contents, TestPostGISLayer.file_contents)
1270            (TestPostGISLayerPassword.file_contents)
1271            (TestLoadError.file_contents, TestLoadError.test): Update for
1272            1.0.0 namespace
1273    
1274            * test/test_save.py (SaveSessionTest.dtd)
1275            (SaveSessionTest.testEmptySession)
1276            (SaveSessionTest.testSingleLayer)
1277            (SaveSessionTest.testLayerProjection)
1278            (SaveSessionTest.testRasterLayer)
1279            (SaveSessionTest.testClassifiedLayer)
1280            (SaveSessionTest.test_dbf_table)
1281            (SaveSessionTest.test_joined_table)
1282            (SaveSessionTest.test_save_postgis): Update for 1.0.0 namespace
1283    
1284    2003-12-22  Bernhard Herzog  <[email protected]>
1285    
1286            * Thuban/Model/load.py (SessionLoader.start_label): Make sure the
1287            alignment flags are byte strings not unicode and that they have
1288            valid values
1289    
1290            * test/test_load.py (TestLabelLayer): New. Test loading (and
1291            indirectly saving) of maps with labels.
1292    
1293    2003-12-22  Bernhard Herzog  <[email protected]>
1294    
1295            * Thuban/UI/tableview.py (TableGrid.OnDestroy)
1296            (TableGrid.__init__): Handle EVT_WINDOW_DESTROY in the grid to
1297            unsubscribe all subscribers.
1298            (LayerTableFrame.OnDestroy): Do not unsubscribe any messages from
1299            self.grid since it may already have been destroyed.
1300            Fixes RT #2256
1301    
1302    2003-12-19  Bernhard Herzog  <[email protected]>
1303    
1304            * po/fr.po, po/es.po: Updated translations from Daniel Calvelo
1305    
1306    2003-12-16  Bernhard Herzog  <[email protected]>
1307            
1308            * debian/bitmappath.patch, debian/setup.py.patch:
1309                    added to ensure compliance with FHS for debian
1310            * debian/rules, debian/changelog:
1311                added patches in rules to ensure compliance with FHS for debian
1312    
1313    2003-12-16  Bernhard Herzog  <[email protected]>
1314    
1315            * po/Makefile (mo): Make the output a bit nicer so that it prints
1316            statistics about the translations. Add a comment how produce even
1317            nicer statistics with sed.
1318    
1319    2003-12-09  Frank Koormann   <[email protected]>
1320    
1321            * Resources/Projections/defaults.proj:
1322            French projection sample with correct accents (UNICODE).
1323    
1324    2003-12-05  Bernhard Herzog  <[email protected]>
1325    
1326            * MANIFEST.in: Add the devtools directory
1327    
1328            * setup.py (setup call): Use license instead of licence. This
1329            silences a deprecation warning on Python 2.3
1330    
1331    2003-12-05  Frank Koormann   <[email protected]>
1332    
1333            Documentation synced with 1.0rc1
1334    
1335            * Doc/manual/thuban-manual.xml:
1336            Minor formatting changes and references to database layers .
1337            Introduction.Internationalization: New section on i18n.
1338            MapManagement.AddingandRemovingLayers: Added item on database layers.  
1339            MapManagement.TheLegend: Added section and screenshot on popup menu.
1340            ProjectionManagement: Updated screenshot and sentence on EPSG.
1341            Appendix.SupportedDataSources: Added PostGIS.
1342            Appendix.WorkingwithPostGIS: New section.
1343    
1344            * Doc/manual/images/6_projection.png: Updated screenshot including
1345            EPSG checkboxes.
1346    
1347            * Doc/manual/images/3_5_popup_menu.png: New, popup menu screenshot.
1348    
1349            * Doc/manual/images/app_postgis_add_layer.png,
1350            Doc/manual/images/app_postgis_db_add.png,
1351            Doc/manual/images/app_postgis_db_management.png:
1352            New screenshots focussing on database layers
1353    
1354    2003-12-05  Frank Koormann   <[email protected]>
1355    
1356            * Thuban/UI/projdialog.py (load_user_proj): If user.proj is missing
1357            write warning to stderr instead of rising a warning dialog
1358    
1359    2003-12-03  Bernhard Herzog  <[email protected]>
1360    
1361            Fix for RT #2243
1362    
1363            * Thuban/UI/mainwindow.py (MainWindow.has_selected_shape_layer):
1364            New. Like has_selected_layer but for shape layers only
1365            (_has_selected_shape_layer): New. Like _has_selected_layer but for
1366            shape layers only
1367            (layer_show_table command, layer_jointable command): Use these
1368            commands should only be available for shape layers
1369    
1370    2003-12-03  Bernhard Herzog  <[email protected]>
1371    
1372            * Thuban/UI/mainwindow.py (MainWindow.Unsubscribe): Deal with
1373            publishers that are wx objects and may have been destroyed by wx
1374            already. Fixes RT #2242.
1375    
1376    2003-12-03  Bernhard Herzog  <[email protected]>
1377    
1378            * po/ru.po: Updates from Alex Shevlakov
1379    
1380    2003-12-03  Silke Reimer <silkeintevation.de>
1381    
1382            * debian/control, debian/changelog: Added gdal-support to
1383                    debian package, updated to new thuban version
1384    
1385    
1386    2003-12-03  Bernhard Herzog  <[email protected]>
1387    
1388            * Thuban/Lib/version.py: New. Module for version number
1389            manipulations. The version of make_tuple here also deals better
1390            with more unusual version number strings, such as e.g.
1391            "1.2+cvs20031111"
1392    
1393            * Thuban/version.py (make_tuple): Removed. It's now in
1394            Thuban.Lib.version. Use that implementation instead.
1395    
1396            * test/test_lib_version.py: New. Tests for Thuban/Lib/version.py
1397    
1398    2003-12-02  Bernhard Herzog  <[email protected]>
1399    
1400            * MANIFEST.in: Add debian files
1401    
1402            * setup.py (setup call): Add packages for the Extensions so that
1403            they're installed too
1404            (data_files): Add READMEs and sample data from some Extensions
1405    
1406            * NEWS: Add note about the extensions in binary packages
1407    
1408    2003-12-02  Bernhard Herzog  <[email protected]>
1409    
1410            * Thuban/Model/save.py (SessionSaver.write_session): Save files
1411            with the thuban-1.0rc1
1412    
1413            * Thuban/Model/load.py (SessionLoader.__init__): Recognize the
1414            thuban-1.0rc1 namespace too
1415    
1416            * test/test_save.py (SaveSessionTest.dtd)
1417            (SaveSessionTest.testEmptySession)
1418            (SaveSessionTest.testSingleLayer)
1419            (SaveSessionTest.testLayerProjection)
1420            (SaveSessionTest.testRasterLayer)
1421            (SaveSessionTest.testClassifiedLayer)
1422            (SaveSessionTest.test_dbf_table)
1423            (SaveSessionTest.test_joined_table)
1424            (SaveSessionTest.test_save_postgis): Update to thuban-1.0rc1
1425            namespace
1426    
1427            * test/test_load.py (LoadSessionTest.dtd): Update to thuban-1.0rc1
1428            namespace
1429            (TestSingleLayer.file_contents)
1430            (TestNonAsciiColumnName.file_contents)
1431            (TestLayerVisibility.file_contents)
1432            (TestClassification.file_contents, TestLabels.file_contents)
1433            (TestLayerProjection.file_contents)
1434            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
1435            (TestPostGISLayer.file_contents)
1436            (TestPostGISLayerPassword.file_contents)
1437            (TestLoadError.file_contents, TestLoadError.test): Update to
1438            thuban-1.0rc1 namespace
1439    
1440    2003-12-01  Bernhard Herzog  <[email protected]>
1441    
1442            * setup.py (proj4_prefix, wx_prefix, gdal_prefix): Fix these for
1443            nt to better match Intevation's current w32 setup
1444    
1445            * HOWTO-Release: Add note about updating MANIFEST.in
1446    
1447            * MANIFEST.in: Add the Extensions
1448    
1449            * NEWS: Update for 1.0rc1
1450    
1451    2003-12-01  Bernhard Herzog  <[email protected]>
1452    
1453            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Change the wild
1454            cards for the dialog so that shapefiles ending in all uppercase
1455            SHP are listed too
1456    
1457    2003-11-28  Bernhard Herzog  <[email protected]>
1458    
1459            * Thuban/version.py (longversion): Update to 1.0rc1
1460    
1461            * setup.py (setup call): Update version to 1.0rc1. Use the
1462            [email protected] email address as author email instead of my
1463            personal one.
1464    
1465    2003-11-28  Bernhard Herzog  <[email protected]>
1466    
1467            * po/de.po: Update german translation.
1468    
1469    2003-11-28  Bernhard Herzog  <[email protected]>
1470    
1471            Unify the filenames stored in .thuban files so that the .thuban
1472            files are more platform independend
1473    
1474            * Thuban/Model/save.py (unify_filename): New. Unify filenames so
1475            that they can be used on both windows and unix
1476            (SessionSaver.prepare_filename): New. Handle all filename
1477            transformations for filenames stored in the thuban file
1478            (SessionSaver.write_data_containers, SessionSaver.write_layer):
1479            Use prepare_filename
1480    
1481            * test/test_save.py (SaveSessionTest.testSingleLayer)
1482            (SaveSessionTest.testLayerProjection)
1483            (SaveSessionTest.testRasterLayer)
1484            (SaveSessionTest.testClassifiedLayer)
1485            (SaveSessionTest.test_dbf_table)
1486            (SaveSessionTest.test_joined_table): Filenames are always stored
1487            with slashes on all currently supported platforms so adapt all
1488            tests to this
1489    
1490            * test/test_load.py (LoadSessionTest.filenames): With the new
1491            filename scheme the filenames in the tests should be
1492            understandable on all currently supported platforms so we turn
1493            this into an empty list because we don't have to normalize them
1494            anymore
1495    
1496    2003-11-28  Bernhard Herzog  <[email protected]>
1497    
1498            * test/test_layer.py (TestLayer.test_arc_layer_with_projection):
1499            Add the ellipsoid to the projection since some Proj versions
1500            complain if it's missing.
1501    
1502    2003-11-27  Bernhard Herzog  <[email protected]>
1503    
1504            Corect some bounding box projection problems
1505    
1506            * Thuban/Model/proj.py (Projection.InverseBBox): New. Inverse
1507            version of ForwardBBox
1508            (Projection._transform_bbox): New. common implementation of
1509            ForwardBBox and InverseBBox
1510            (Projection.ForwardBBox): Use _transform_bbox.
1511    
1512            * test/test_proj.py (TestProjection.test): Add test for
1513            InverseBBox
1514    
1515            * Thuban/Model/layer.py (Layer.LatLongBoundingBox)
1516            (Layer.ShapesBoundingBox, RasterLayer.LatLongBoundingBox): Use the
1517            new InverseBBox method to determine the unprojected bounding box
1518            (Layer.ShapesInRegion): Use the ForwardBBox method to project the
1519            bbox.
1520    
1521            * test/test_layer.py (TestLayer.test_point_layer_with_projection):
1522            Removed.
1523            (TestLayer.test_arc_layer_with_projection): New. This test is
1524            better able to test whether bounding boxes are projected correctly
1525            than test_point_layer_with_projection
1526    
1527            * Thuban/UI/viewport.py (ViewPort.map_projection_changed): Use
1528            InverseBBox to unproject bboxes
1529    
1530    2003-11-25  Bernhard Herzog  <[email protected]>
1531    
1532            * Thuban/UI/about.py (About.__init__): Make sure we have ASCII
1533            source code.
1534    
1535    2003-11-25  Bernhard Herzog  <[email protected]>
1536    
1537            * Thuban/Model/layer.py (Layer.__getattr__): Removed. It was only
1538            there for backwards compatibility and all code relying on that
1539            should have been updated by now.
1540    
1541    2003-11-25  Bernhard Herzog  <[email protected]>
1542    
1543            * test/test_load.py (TestClassification.test): Add the missing
1544            round trip test.
1545            (TestClassification.file_contents): Update to the newest file
1546            format
1547    
1548    2003-11-25  Bernhard Herzog  <[email protected]>
1549    
1550            Add very experimental (and possibly dangerous) extension to draw
1551            polygons:
1552    
1553            * Extensions/drawshape/README: New. Brief installation
1554            instructions
1555    
1556            * Extensions/drawshape/drawshape.py: New. Implementation of the
1557            drawshape extensions
1558    
1559            * Extensions/drawshape/patch.diff: Patch to apply before the
1560            extension can be used.
1561    
1562    2003-11-24  Bernhard Herzog  <[email protected]>
1563    
1564            * Thuban/Model/data.py (ShapefileStore._open_shapefile)
1565            (ShapefileStore.__init__): Factor opening the shapefile into a
1566            separate method (the new _open_shapefile). This makes the code a
1567            bit more readable but the real reason is that it makes some evil
1568            hacks easier. :-)
1569    
1570    2003-11-24  Bernhard Herzog  <[email protected]>
1571    
1572            * Thuban/Model/load.py (SessionLoader.check_attrs): If no
1573            converter is specified for an attribute assume it's a string
1574            containing only Latin1 characters. Update doc-string accordingly.
1575            This change should fix many places where unicode objects might
1576            accidentally enter Thuban.
1577    
1578            * test/test_load.py (TestNonAsciiColumnName): New test to check
1579            what happens with column names in DBF files that contain non-ascii
1580            characters
1581    
1582    2003-11-21  Bernhard Herzog  <[email protected]>
1583    
1584            Enable the experimental attribute editing again and introduce a
1585            command line switch to actually activate it
1586    
1587            * Thuban/UI/main.py (options): New. Container for options set on
1588            the commmand line
1589            (main): Add the --enable-attribute-editing flag.
1590    
1591            * Thuban/UI/identifyview.py (IdentifyView.__init__): If attribute
1592            editing is enabled use the grid ctrl which allows editing of the
1593            values
1594    
1595            * Thuban/Model/transientdb.py (AutoTransientTable.write_record):
1596            New. Just delegate this to the underlying table.
1597    
1598    2003-11-20  Bernhard Herzog  <[email protected]>
1599    
1600            * test/test_proj.py (ProjFileReadTests.test_read_unreadable_file):
1601            Skip this test if run under non-posix systems since it only works
1602            there
1603    
1604  2003-11-19  Bernhard Herzog  <[email protected]>  2003-11-19  Bernhard Herzog  <[email protected]>
1605    
1606          * Thuban/Model/resource.py: Rework the way gdal support is          * Thuban/Model/resource.py: Rework the way gdal support is
# Line 3612  Line 5215 
5215          Fix problem of hidden properties dialog under windows after double          Fix problem of hidden properties dialog under windows after double
5216          click on layer tree:          click on layer tree:
5217          The tree control always gets an Expanded / Collapsed event after          The tree control always gets an Expanded / Collapsed event after
5218          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.
5219            We add a second ItemActivated event to the queue, which simply
5220          raises the already displayed window.          raises the already displayed window.
5221    
5222          * Thuban/UI/legend.py (LegendTree.__init__): Instance variable          * Thuban/UI/legend.py (LegendTree.__init__): Instance variable

Legend:
Removed from v.1965  
changed lines
  Added in v.2312

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26