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

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

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

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

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26