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

Legend:
Removed from v.2083  
changed lines
  Added in v.2412

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26