/[thuban]/branches/WIP-pyshapelib-bramz/ChangeLog
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26