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

Legend:
Removed from v.2085  
changed lines
  Added in v.2395

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26