/[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 1655 by bh, Mon Aug 25 16:05:33 2003 UTC revision 1906 by bh, Fri Oct 31 17:10:14 2003 UTC
# Line 1  Line 1 
1    2003-10-31  Bernhard Herzog  <[email protected]>
2    
3            Some more refactoring in preparation for new tests:
4    
5            * test/test_classification.py (TestClassification.setUp): New.
6            Instantiate the classification here. Update the test methods
7            accordingly.
8            (TestClassification.test_multiple_groups): Make sure that the two
9            singletons matching 1 are considered different.
10    
11    2003-10-31  Bernhard Herzog  <[email protected]>
12    
13            * test/test_classification.py (red, green, blue): New. These
14            constants were used in several cases. Update the relevant methods.
15            (TestClassification.test_defaults)
16            (TestClassification.test_set_default_properties)
17            (TestClassification.test_add_singleton)
18            (TestClassification.test_add_range)
19            (TestClassification.test_multiple_groups)
20            (TestClassification.test_deepcopy): New. These were formerly all
21            part of the single method test.
22            (TestClassification.test_deepcopy): Removed.
23            (TestClassIterator): Removed. The test case is now a method of
24            TestClassification since it tests part of the public interface of
25            Classification
26            (TestClassification.test_iterator): New. Used to be
27            TestClassIterator effectively
28    
29    2003-10-31  Jan-Oliver Wagner <[email protected]>
30    
31            GUIfied the functions of the profiling extension.
32    
33            * /Extensions/profiling/__init__.py: New: Init to make this
34            directory a package.
35    
36            * Extensions/profiling/profiling.py: Moved menu entries to
37            the Extensions menu. Applied _() for strings.
38            (profile_screen_renderer): Catch the detailed printout and present
39            it in a dialog.
40            (time_screen_renderer): Raise a dialog to present the result instead
41            of printing it to stdout.
42    
43    2003-10-31  Bernhard Herzog  <[email protected]>
44    
45            * test/test_classification.py (TestClassGroupProperties)
46            (TestClassGroup, TestClassGroupDefault, TestClassGroupRange)
47            (TestClassGroupSingleton, TestClassIterator, TestClassification):
48            Split TestClassification into several classes, one for each class
49            being tested. TestClassification itself now only tests
50            Classification. This split makes changes to the tests a bit easier
51    
52    2003-10-31  Bernhard Herzog  <[email protected]>
53    
54            * Extensions/profiling/profiling.py: New. Extension to measure
55            Thuban performance
56    
57    2003-10-31  Frank Koormann <[email protected]>
58    
59            Added two items to legend popup menu: Remove Layer and Show Layer Table
60    
61            * Thuban/UI/legend.py (LegendPanel._OnRemoveLayer,
62            LegendPanel._OnShowTable): New event handlers, call the corresponding
63            mainwindow methods.
64            (LegendTree._OnRightClick): Added items to popup menu.
65    
66    2003-10-30  Bernhard Herzog  <[email protected]>
67    
68            * Thuban/UI/dialogs.py (ThubanFrame.__init__): Handle
69            EVT_WINDOW_DESTROY
70            (ThubanFrame.OnDestroy): New. Handler for EVT_WINDOW_DESTROY. Does
71            nothing but is convenient for the derived classes.
72    
73            * Thuban/UI/tableview.py
74            (TableFrame.OnDestroy, LayerTableFrame.OnDestroy): New.
75            Unsubscribe the messages here not in OnClose because that might
76            get called multiple times. Fixes RT #2196
77            (TableFrame.OnClose, LayerTableFrame.OnClose): Removed. Not needed
78            anymore.
79    
80            * README: Update the minimum requirement for wxPython. Since we
81            now use the EVT_WINDOW_DESTROY event, we need at least 2.4.0.4,
82            the version in which that was introduced for all platforms
83    
84    2003-10-30  Frank Koormann <[email protected]>
85    
86            * Thuban/UI/join.py (JoinDialog.OnJoin): Wrapped the major parts of
87            the join process in a ThubanBeginBusyCursor, ThubanEndBusyCursor
88            frame.
89    
90    2003-10-30  Jan-Oliver Wagner <[email protected]>
91    
92            Improved APR import extension, added further EPSG definitions
93            and some cleanup regarding string class.
94    
95            * test/test_proj.py (TestProjection.test_get_projection_units_geo):
96            Added test for alias 'longlat'.
97    
98            * Resources/Projections/epsg-deprecated.proj: New. Contains
99            deprecated EPSG definitions.
100    
101            * Extensions/importAPR/odb.py (ODBBaseObject.TreeInfo): Added
102            the variable names for objects.
103    
104            * Extensions/importAPR/apr.py (APR_BLnSym, APR_BMkSym, APR_BShSym): New.
105            Copied from importAPR and provided with documentation.
106    
107            * Extensions/importAPR/importAPR.py (APR_BLnSym, APR_BMkSym, APR_BShSym):
108            Moved to apr.py.
109            (APR_View): Added object ref 'ITheme'.
110    
111            * Thuban/Lib/fileutil.py, Thuban/UI/proj4dialog.py: Replaced string
112            split function by corresponding use of the string class method.
113    
114            * Thuban/Model/xmlwriter.py: Replaced string replace function by
115            corresponding string method.
116    
117    2003-10-29  Bernhard Herzog  <[email protected]>
118    
119            * Thuban/UI/baserenderer.py
120            (BaseRenderer.draw_shape_layer_incrementally): Speed up the
121            special case of a classification that only has the default group
122    
123    2003-10-27  Bernhard Herzog  <[email protected]>
124    
125            * po/fr.po, po/es.po: Updated translations from Daniel Calvelo
126    
127            * po/de.po: Update.
128    
129            * Thuban/UI/application.py
130            (ThubanApplication.ShowExceptionDialog): Handle translation of the
131            dialog message properly
132    
133    2003-10-27  Bernhard Herzog  <[email protected]>
134    
135            Rework how localization works so that we use wx's translation
136            functions when running Thuban as a normal application but not when
137            we don't need any UI, such as in the test suite. See the comment
138            in Thuban/__init__.py for details
139    
140            * Thuban/__init__.py (_): Add one level of indirection to make the
141            translation handling more flexible and to make it possible to use
142            either wx's translation services or not.
143            (gettext_identity, translation_function_installed)
144            (install_translation_function): New function to help with this
145    
146            * Thuban/UI/__init__.py: Install the wx specific translation
147            function if it's OK to do that
148    
149            * test/support.py (initthuban): Install a dummy translation
150            function so that importing Thuban.UI doesn't install a wx specific
151            one for which would need to import wxPython
152    
153    2003-10-27  Bernhard Herzog  <[email protected]>
154    
155            * HOWTO-Release: Source archives should be created first and the
156            binary packages should be created from the source archives.
157            There's an official debian package now so there's no need to test
158            the rpm on debian anymore
159    
160    2003-10-27  Bernhard Herzog  <[email protected]>
161    
162            Several rendering changes:
163    
164             - Render the selection into a separate bitmap so that only that
165               bitmap needs to be redrawn when the selection changes
166    
167             - Render incrementally showing previews and allowing interaction
168               before rendering is complete
169    
170             - Update the renderer interface a bit. Most parameters of
171               RenderMap are now parameters of the constructor
172    
173            * Thuban/UI/baserenderer.py (BaseRenderer.__init__): Add the map
174            and the update region as parameters. Update the doc-string
175            (BaseRenderer.render_map_incrementally): New. Generator function
176            to renders the map incrementally
177            (BaseRenderer.render_map): Remove the map argument (it's now in
178            the constructor) and simply iterate over the
179            render_map_incrementally generator to draw the map.
180            (BaseRenderer.draw_shape_layer_incrementally)
181            (BaseRenderer.draw_shape_layer): Renamed to
182            draw_shape_layer_incrementally and changed into a generator that
183            yields True every 500 shapes. Used by render_map_incrementally to
184            render shape layers incrementally
185    
186            * Thuban/UI/renderer.py (ScreenRenderer.RenderMap): Removed the
187            map and region parameters which are now in the constructor
188            (ScreenRenderer.RenderMapIncrementally): New. Public frontend for
189            the inherited render_map_incrementally.
190            (BaseRenderer.draw_shape_layer): Removed.
191            (ScreenRenderer.draw_selection_incrementally): New. The selection
192            drawing part of the removed draw_shape_layer as a generator
193            (ScreenRenderer.layer_shapes): Update because of the region
194            parameter change
195            (ExportRenderer.__init__): New. Extend the inherited constructor
196            with the destination region for the drawing
197            (ExportRenderer.RenderMap): Removed the map and region parameters
198            which are now in the constructor
199    
200            * Thuban/UI/view.py (MapCanvas.PreviewBitmap): New. Return a
201            bitmap suitable for a preview in a tool
202            (CanvasPanTool.MouseMove): Use the PreviewBitmap method to get the
203            bitmap
204            (MapPrintout.draw_on_dc): Adapt to new renderer interface
205            (MapCanvas.OnPaint): Handle drawing the selection bitmap if it
206            exists
207            (MapCanvas.OnIdle): Update the logic to deal with incremental
208            rendering and the selection bitmap
209            (MapCanvas._do_redraw): Handle the instantiation of the render
210            iterator and the redraws during rendering
211            (MapCanvas._render_iterator): New. Generator to incrementally
212            redraw both bitmaps
213            (MapCanvas.Export): Adapt to new renderer interface.
214            (MapCanvas.full_redraw): Reset the selection bitmap and the
215            renderer iterator too
216            (MapCanvas.redraw_selection): New. Force a redraw of the selection
217            bitmap
218            (MapCanvas.shape_selected): Only redraw the selection bitmap
219    
220            * test/test_baserenderer.py
221            (TestBaseRenderer.test_polygon_no_projection)
222            (TestBaseRenderer.test_raster_no_projection)
223            (TestBaseRenderer.test_point_map_projection)
224            (TestBaseRenderer.test_point_layer_and_map_projection)
225            (TestBaseRenderer.test_point_layer_projection)
226            (TestBaseRenderer.test_point_with_classification): Adapt to new
227            renderer interface
228    
229    2003-10-24  Bernhard Herzog  <[email protected]>
230    
231            * libraries/thuban/wxproj.cpp (draw_polygon_shape)
232            (point_in_polygon_shape, shape_centroid): Raise an exception if
233            the shape can't be read. Previously invalid shape ids would lead
234            to a segfault.
235    
236            * test/test_wxproj.py (TestShapeCentroid.test_invalid_shape_id):
237            New. test whether an exception is raised for invalid shape ids
238    
239    2003-10-24  Jan-Oliver Wagner <[email protected]>
240    
241            * Thuban/Model/proj.py (Projection.GetProjectedUnits): Added 'longlat'
242            as alias for 'latlong'.
243    
244            * Thuban/UI/projdialog.py (ProjFrame.__init__): Added 'longlat'
245            as alias for 'latlong'.
246    
247    2003-10-24  Jan-Oliver Wagner <[email protected]>
248    
249            * Thuban/UI/projdialog.py (ProjFrame.proj_selection_changed): Set
250            the projection even for the UnknownPanel.
251            (UnknownProjPanel.__init__): Define the text and create the textctrl
252            widget.
253            (UnknownProjPanel._DoLayout): Replaced static text widget by the
254            textctrl created in __init__.
255            (UnknownProjPanel.SetProjection): Set the text for the text ctrl
256            including the parameters of the projection.
257            
258    2003-10-24  Jan-Oliver Wagner <[email protected]>
259    
260            * Resources/Projections/epsg.proj: New. This is a list of
261            EPSG codes with parameters for proj. The list has been
262            generated using devtools/create_epsg.py based on the
263            file nad/epsg of the proj 4.4.7 package. Four projection
264            definitions have been deleted as they are not accepted by proj:
265            "CH1903+ / LV95", "Bern 1898 (Bern) / LV03C", "CH1903 / LV03"
266            and "HD72 / EOV".
267    
268    2003-10-22  Bernhard Herzog  <[email protected]>
269    
270            Some more tweaks to the projection dialog which should fix RT
271            #1886.
272    
273            * Thuban/UI/projlist.py (ProjectionList.Destroy): Unsubscribe from
274            the ProjFile's messages and call the base class methods correctly
275            (ProjectionList.SelectProjection): Set the wxLIST_STATE_FOCUSED
276            flag on the newly selected item too. Otherwise some other item is
277            focused and the first time the focus is moved with the keyboard
278            the selection moves in unexpected ways.
279    
280            * Thuban/UI/projdialog.py (ProjFrame.__init__): Do not set the
281            focus on the OK button, only on the projection list. That way the
282            list really has the focus initially
283            (ProjFrame.OnClose): Call the projection list's Destroy method to
284            make it unsubscribe all messages
285    
286    2003-10-21  Bernhard Herzog  <[email protected]>
287    
288            Rework the projection dialog to fix a few bugs, including RT 2166
289            and most of 2168
290    
291            * Thuban/UI/projlist.py: New. The class ProjectionList is a
292            special wxListCtrl to show a list of projections in a more MVC
293            fashion
294    
295            * Thuban/UI/projdialog.py (ProjFrame): Substantial changes
296            throughout the class. The main change is to use the ProjectionList
297            class instead of a normal wxListBox. Also, add an explicit
298            "Unknown" projection to the projection choice control.
299            (ProjPanel.__init__): Add an "unknown" ellipsoid
300            (TMPanel.__init__, LCCPanel.__init__): Tweak the order of
301            instantiation of the panel's controls to make the tab-order more
302            natural
303    
304    2003-10-21  Bernhard Herzog  <[email protected]>
305    
306            * test/test_load.py (TestSingleLayer.file_contents)
307            (TestSingleLayer.test): Add non-ascii characters to the titles of
308            session, map and layer. This is effectively a port of the
309            TestUnicodeStrings test in test_load_0_8.py which for some reason
310            was only added there.
311    
312            * test/test_load_0_9.py (TestSingleLayer.file_contents)
313            (TestSingleLayer.test): Same as in test_load.py: add non-ascii
314            characters to the titles of session, map and layer,.
315    
316    2003-10-21  Bernhard Herzog  <[email protected]>
317    
318            Add EPSG projection handling to .thuban files
319    
320            * test/test_save.py (SaveSessionTest.dtd)
321            (SaveSessionTest.testEmptySession)
322            (SaveSessionTest.testLayerProjection)
323            (SaveSessionTest.testRasterLayer)
324            (SaveSessionTest.testClassifiedLayer)
325            (SaveSessionTest.test_dbf_table)
326            (SaveSessionTest.test_joined_table)
327            (SaveSessionTest.test_save_postgis): Update to 1.0-dev namespace
328            (SaveSessionTest.testSingleLayer): Update to 1.0-dev namespace and
329            use a and epsg projection to test saving them
330    
331            * test/test_load.py (LoadSessionTest.dtd): Update to 1.0-dev
332            namespace
333            (TestLayerVisibility.file_contents, TestLabels.file_contents)
334            (TestLayerProjection.file_contents)
335            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
336            (TestPostGISLayer.file_contents)
337            (TestPostGISLayerPassword.file_contents)
338            (TestLoadError.file_contents, TestLoadError.test): Update to use
339            1.0-dev namespace
340            (TestSingleLayer.file_contents, TestSingleLayer.test): Update to
341            use 1.0-dev namespace and use an EPSG projection to test whether
342            loading it works
343    
344            * test/test_load_0_9.py: New. Effectively a copy of test_load.py
345            as of Thuban 0.9. These are now tests to determine whether Thuban
346            can still read files generated by Thuban 0.9
347    
348            * Thuban/Model/save.py (SessionSaver.write)
349            (SessionSaver.write_session): Use the 1.0 dtd and 1.0-dev
350            namespace
351            (SessionSaver.write_projection): Write the projection's epsg
352            attribute
353    
354            * Thuban/Model/load.py (SessionLoader.__init__): Also accept the
355            thuban-1.0-dev.dtd namespace
356            (SessionLoader.check_attrs): Allow a callable object as conversion
357            too
358            (SessionLoader.start_projection, SessionLoader.end_projection)
359            (SessionLoader.start_parameter): Handle the epsg attribute and
360            rename a few instance variables to lower case
361    
362            * Resources/XML/thuban-1.0.dtd: New. Only difference to
363            thuban-0.9.dtd is the epsg attribute for projections.
364    
365    2003-10-21  Bernhard Herzog  <[email protected]>
366    
367            * test/runtests.py (main): Let the user specify which tests to run
368            on the command line
369    
370            * test/support.py (ThubanTestResult.getDescription): Override to
371            give a better short description. The description can be used as a
372            parameter to run_tests to run that particular test in isolation.
373    
374    2003-10-21  Frank Koormann   <[email protected]>
375    
376            Popup menu for legend. Scheduled for the 1.2 release this was too
377            simple to implement: The popup menu is bound to the legend tree, while
378            the events are hanlded by its anchestor, the legend panel. This
379            allows reuse of all the event handlers already implemented for the
380            legend toolbar buttons.
381    
382            * Thuban/UI/legend.py (LegendPanel.__init__): EVT_MENU macros
383            to add handlers for the events issued by the popup menu.
384            (LegendPanel._OnToggleVisibility): Handler for toggling layer
385            visibility event
386            (LegendPanel._OnProjection): Handler for layer projection event.
387            (LegendTree.__init__): Added EVT_TREE_ITEM_RIGHT_CLICK
388            (LegendTree._OnRightClick): Event handler for right click, select item
389            and pop up menu.
390            (LegendTree.ToggleVisibility): Toggle layer visibility
391            (LegendTree.LayerProjection): Raise layer projection dialog for
392            current layer.
393    
394    2003-10-21  Bernhard Herzog  <[email protected]>
395    
396            * Resources/Projections/defaults.proj: Use correct DOCTYPE
397            declaration. The top-level element is projectionlist not projfile
398    
399    2003-10-20  Bernhard Herzog  <[email protected]>
400    
401            * Thuban/UI/projdialog.py (ProjFrame.write_proj_file): New. helper
402            method to write a projfile and display a busy cursor and error
403            dialogs.
404            (ProjFrame._OnSave, ProjFrame._OnAddToList, ProjFrame._OnImport)
405            (ProjFrame._OnExport, ProjFrame._OnRemove): Use write_proj_file
406            (ProjFrame.__FillAvailList): Translate "<None>" too and display a
407            busy cursor while loading the user and system prj files.
408    
409    2003-10-16  Bernhard Herzog  <[email protected]>
410    
411            * Thuban/Model/resource.py (projfile_cache): Introduce a cache for
412            ProjFile objects
413            (clear_proj_file_cache): New function to clear the cache. Mainly
414            useful for use by the test suite
415            (read_proj_file): Use the cache.
416    
417            * test/test_proj.py (TestProjFile): Clarify the doc-string
418            (ProjFileReadTests): Update doc-string
419            (ProjFileReadTests.test_get_system_proj_file): Check whether the
420            system proj files is cached.
421            (ProjFileLoadTestCase): New base class for the proj file tests
422            derived from support.FileLoadTestCase to provide some common
423            behavior.
424            (TestLoadingProjFile)
425            (TestLoadingProjFileWithEmptyProjectionlist.file_contents)
426            (TestProjFileWithInvalidParameters.file_contents): Derive from
427            ProjFileLoadTestCase
428            (TestLoadingProjFile.test_caching): New. Test whether the cache
429            works
430    
431    2003-10-16      Silke Reimer    <[email protected]>
432    
433            * debian/*: New directory with configuration files for building a thuban
434              deb-package.
435    
436    2003-10-14  Bernhard Herzog  <[email protected]>
437    
438            * test/test_proj.py: Execute support.run_tests when run as
439            __main__ so that missing unsubscribes are detected
440            (TestProjFile.tearDown): Destroy the proj_file properly
441    
442    2003-10-14  Bernhard Herzog  <[email protected]>
443    
444            * Thuban/Model/messages.py (PROJECTION_ADDED)
445            (PROJECTION_REPLACED, PROJECTION_REMOVED): New message types for
446            the ProjFile objects
447    
448            * Thuban/Model/proj.py (ProjFile): Derive from Publisher so we can
449            easily send messages when the projections change
450            (ProjFile.Add, ProjFile.Remove, ProjFile.Replace): Issue messages
451            when the change was successful
452    
453            * test/test_proj.py (TestProjFile.setUp): Subscribe to some of the
454            proj file messages
455            (TestProjFile.test_add_remove)
456            (TestProjFile.test_remove_non_existing)
457            (TestProjFile.test_replace)
458            (TestProjFile.test_replace_non_existing): Test whether the right
459            messages are sent
460    
461    2003-10-14  Bernhard Herzog  <[email protected]>
462    
463            * test/test_proj.py (TestProjFile.test): Refactor into several
464            tests
465            (TestProjFile.test_add_remove)
466            (TestProjFile.test_remove_non_existing)
467            (TestProjFile.test_replace)
468            (TestProjFile.test_replace_non_existing): Some of the new
469            individual test cases
470            (TestProjFileSimple): New class for the rest of the test cases
471            that came out of the refactoring
472            (ProjFileTest): Derive from xmlsupport.ValidationTest so that the
473            derived classes don't have to
474    
475    2003-10-13  Bernhard Herzog  <[email protected]>
476    
477            Add an optional EPSG code to the projection objects and extend the
478            .proj file format accordingly.
479    
480            * Resources/XML/projfile.dtd (element projection): Add epsg
481            attribute
482    
483            * Thuban/Model/proj.py (Projection.__init__): New parameter and
484            instance variable epsg. Update doc-string
485            (Projection.EPSGCode, Projection.Label): New methods to provide
486            access to EPSG code and a label for use in dialogs
487    
488            * Thuban/Model/resource.py (ProjFileReader.start_projection)
489            (ProjFileReader.end_projection, ProjFileSaver.write_projfile):
490            Handle the epsg code attribute when reading or writing proj files
491    
492            * Thuban/UI/projdialog.py (ProjFrame._OnSave)
493            (ProjFrame._OnAddToList, ProjFrame.__DoOnProjAvail)
494            (ProjFrame.__FillAvailList): Use the projection's Label method to
495            get the string for the list box
496    
497            * test/test_proj.py (TestProjection.test_label)
498            (TestProjection.test_label_epsg)
499            (TestProjection.test_epsgcode_for_non_epsg_projection)
500            (TestProjection.test_epsgcode_for_real_epsg_projection): New tests
501            for the label and EPSGCode methods
502            (WriteProjFileTests.doTestWrite, WriteProjFileTests.test_write)
503            (WriteProjFileTests.test_write_empty_file): Create the ProjFile
504            objects in the test cases and put the expected contents into the
505            test case methods too. Update doTestWrite accordingly
506            (TestLoadingProjFile)
507            (TestLoadingProjFileWithEmptyProjectionlist): New classes with the
508            read tests from TestProjFile.
509            (TestProjFile.doTestRead, TestProjFile.testRead): Removed. These
510            tests are now in the new classes.
511            (sample_projfile, sample_projfile_data)
512            (sample_projfile2, sample_projfile_data2): Removed. Not used
513            anymore.
514            (TestProjFile.test_read_unreadable_file): No need to reset the
515            permissions at the end anymore since we use a unique filename
516    
517    2003-10-13  Bernhard Herzog  <[email protected]>
518    
519            * test/test_proj.py: Some more refactoring of the test cases
520            (ProjFileTest): New base class for the proj file tests.
521            (TestProjFile): Derive from ProjFileTest
522            (TestProjFile.test_read_unreadable_file)
523            (TestProjFile.test_read_empty_file, TestProjFile.doTestRead): Use
524            the new filename method to get a unique filename
525            (TestProjFile.doTestWrite, TestProjFile.testWrite): Removed.
526            (WriteProjFileTests): New class for proj file write tests.
527            Contains the write test that were in TestProjFile originally.
528    
529    2003-10-13  Bernhard Herzog  <[email protected]>
530    
531            * test/test_proj.py (TestProjFile.testRead)
532            (TestProjFile.test_read_non_existing_file)
533            (TestProjFile.test_read_unreadable_file)
534            (TestProjFile.test_read_empty_file): Split into several methods.
535    
536    2003-10-10  Bernhard Herzog  <[email protected]>
537    
538            * Thuban/UI/sizers.py: New file with custom sizers.
539    
540            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): Instantiate
541            all projection type specific panels and put them into a
542            NotebookLikeSizer. This way the dialog doesn't change its size
543            when a different projection is selected
544            (ProjFrame.__init__): Rename projection_panels
545            projection_panel_defs and reuse projection_panels for a list of
546            the instantiated panels.
547            (ProjFrame._show_proj_panel, ProjFrame.__DoOnProjAvail)
548            (ProjFrame.__DoOnProjChoice): Changes due to the new handling of
549            the panels
550            (UnknownProjPanel._DoLayout): Place the newlines in the message
551            differently to make the panel narrower.
552            (TMPanel._DoLayout): Layout the parameters in one column.
553    
554    2003-10-10  Bernhard Herzog  <[email protected]>
555    
556            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): New method
557            that contains all the setup for the dialog's widgets, layout and
558            event handling.
559            (__): Call build_dialog to build the dialog.
560            (ProjFrame.__set_properties, ProjFrame.__do_layout): Removed.
561            Their functionality is now in build_dialog
562            (ProjFrame.__VerifyButtons, ProjFrame.__VerifyButtons)
563            (ProjFrame.__DoOnProjAvail, ProjFrame.__DoOnProjAvail)
564            (ProjFrame.__DoOnProjChoice): Small updates due to slightly
565            different widget names and hierarchy introduced with build_dialog.
566    
567    2003-10-10  Bernhard Herzog  <[email protected]>
568    
569            * README: Fix typo.
570    
571    2003-10-09  Bernhard Herzog  <[email protected]>
572    
573            * Thuban/Model/proj.py (ProjFile.Add): Do not check whether the
574            projection is already in the list. This is *a lot* faster when
575            loading files with hundreds of projections since it saves a linear
576            search. OTOH this will allow adding the same projection to the
577            user.proj file multiple times in the projection dialog but we'll
578            deal with that later
579    
580    2003-10-09  Jan-Oliver Wagner <[email protected]>
581    
582            * devtools: New. Directory for developer tools that are not intended
583            for the regular user.
584    
585            * devtools/create_epsg.py: New. Convert the epsg file of proj into
586            a python .proj file.
587    
588    2003-10-09  Bernhard Herzog  <[email protected]>
589    
590            * test/test_proj.py
591            (TestProjection.test_get_parameter_without_equals_sign): New. Test
592            whether GetParameter handles parameters without "=" sign correctly
593    
594            * Thuban/Model/proj.py (Projection.GetParameter): Handle
595            parameters that do not contain a "=". Update the doc-string
596    
597    2003-10-08  Bernhard Herzog  <[email protected]>
598    
599            * Thuban/UI/projdialog.py (ProjFrame.__set_properties): Remove the
600            length limit on the projname text control
601    
602    2003-10-08  Bernhard Herzog  <[email protected]>
603    
604            * test/test_proj.py (TestProjection.test_get_projection_units_geo)
605            (TestProjection.test_get_projection_units_normal): New. Tests for
606            the Projection.GetProjectedUnits method
607    
608    2003-10-08  Jan-Oliver Wagner <[email protected]>
609    
610            * Thuban/Model/resource.py (get_user_proj_file): small bug-fix:
611            Added missing 'val' parameter.
612    
613    2003-10-08  Bernhard Herzog  <[email protected]>
614    
615            * Thuban/UI/projdialog.py (ProjFrame.__DoOnProjAvail): When the
616            projection type of the currently selected projection is not known,
617            i.e. there's no panel for it, use the UnknownProjPanel
618            (ProjFrame.__DoOnProjChoice, ProjFrame._show_proj_panel): Split
619            the actual replacing of the proj panel into the new method
620            _show_proj_panel.
621            (UnknownProjPanel): Add doc-string.
622            (UnknownProjPanel._DoLayout): Insert a newline into the text so
623            that the panel is not so wide.
624    
625    2003-10-08  Bernhard Herzog  <[email protected]>
626    
627            * Thuban/Model/resource.py (read_proj_file): Return the warnings
628            too. Update the doc-string
629            (get_proj_files): Removed. It wasn't used anywhere
630            (get_system_proj_files, get_system_proj_file): Rename to
631            get_system_proj_file and return the ProjFile object and not a list
632            of ProjFile objects. Update the callers.
633            (get_user_proj_files, get_user_proj_file): Rename to
634            get_user_proj_file return the ProjFile object and not a list of
635            ProjFile objects. Update the callers.
636            (ProjFileReader.__init__): New instance variable for the warnings.
637            Rename the __pf ivar to projfile. Update the methods referring to
638            __pf
639            (ProjFileReader.end_projection): Catch any errors raised when
640            instantiating the projection and record that as an error. The
641            projection will not be in the final ProjFile object.
642            (ProjFileReader.GetWarnings): New method to return the warnings.
643    
644            * Thuban/UI/projdialog.py (ProjFrame.show_warnings): New method to
645            show the warnings from the projfile reader
646            (ProjFrame._OnImport): Deal with any warnings returned by
647            read_proj_file
648            (ProjFrame.__FillAvailList): Deal with any warnings returned by
649            get_system_proj_file or get_user_proj_file.
650    
651            * test/test_proj.py (TestProjFile.doTestRead): Check the warnings.
652            (TestProjFileWithInvalidParameters.file_contents): New test cases
653            to test whether read_proj_file handles invalid projection
654            parameters correctly
655            (TestProjFile.test_get_system_proj_file): New. Simple test for
656            resource.get_system_proj_file
657    
658    2003-10-07  Bernhard Herzog  <[email protected]>
659    
660            * test/test_derivedshapestore.py
661            (TestDerivedShapeStoreExceptions.tearDown): Clear the session
662            properly so that the temporary directories get deleted correctly
663    
664    2003-10-06  Bernhard Herzog  <[email protected]>
665    
666            Handle the title changes in a proper MVC way.
667    
668            * Thuban/UI/mainwindow.py (MainWindow.__init__): Subscribe to the
669            canvas' TITLE_CHANGED messages
670            (MainWindow.update_title): New. Update the main window's title
671            (MainWindow.__SetTitle): Removed. Use update_title instead.
672            (MainWindow.SetMap): Use update_title instead of __SetTitle
673            (MainWindow.RenameMap): Do change the window title explicitly
674            here. That's handled in a proper MVC way now.
675            (MainWindow.title_changed): New. Subscriber for the TITLE_CHANGED
676            messages
677    
678            * Thuban/Lib/connector.py (Conduit): New class to help classes
679            that forward messages
680    
681            * Thuban/UI/viewport.py: Forward the map's TITLE_CHANGED messages
682            (ViewPort): Derive from Conduit instead of Publisher
683            (ViewPort.Subscribe, ViewPort.Unsubscribe): Use the new base class
684            when calling the inherited versions
685            (ViewPort._subscribe_map, ViewPort._unsubscribe_map): New helper
686            methods to subscribe and unsubscribe map messages
687            (ViewPort.SetMap, ViewPort.Destroy): Use the new helper methods to
688            handle the map subscriptions
689            (ViewPort.Map, ViewPort.map_projection_changed)
690            (ViewPort.layer_projection_changed): Add or update doc-strings
691    
692            * test/test_connector.py (TestPublisher.test_issue_simple): Fix
693            typo
694            (MyConduit): Helper class for the Conduit test.
695            (TestConduit): Test cases for Conduit
696    
697            * test/test_connector.py: Use support.run_tests as main.
698    
699            * test/test_viewport.py (ViewPortTest.setUp): Also subscribe to
700            the TITLE_CHANGED messages
701            (ViewPortTest.test_forwarding_title_changed): New test to check
702            whether the viewport forwards the map's TITLE_CHANGED messages
703            (TestViewportWithPostGIS.tearDown): Call the map's Destroy method
704            after the port's because the latter may require a still functional
705            map.
706    
707    2003-10-06  Bernhard Herzog  <[email protected]>
708    
709            * Thuban/UI/application.py (ThubanApplication.maps_changed): Add
710            doc-string
711    
712    2003-10-06  Bernhard Herzog  <[email protected]>
713    
714            * test/test_viewport.py (ViewPortTest.setUp)
715            (SimpleViewPortTest.test_init_with_size): Move the test for the
716            initial size as a constructor parameter from ViewPortTest.setUp
717            method to a new separate test in SimpleViewPortTest.
718    
719    2003-10-06  Bernhard Herzog  <[email protected]>
720    
721            * test/test_viewport.py (MockView): New class derived from
722            ViewPort with a mock implementation of GetTextExtent to be used in
723            the test cases
724            (ViewPortTest.setUp): Use MockView instead of ViewPort
725    
726            * Thuban/UI/viewport.py (ViewPort.GetTextExtent): Turn this method
727            into what would be a "pure virtual function" in C++: always raise
728            NotImplementedError. Mock implementations for test cases don't
729            belong into the real code
730    
731    2003-10-02  Bernhard Herzog  <[email protected]>
732    
733            * test/test_layer.py (TestLayer.test_empty_layer): Explicitly
734            close the dbf file we create so that it's contents have been
735            written properly.
736    
737            * libraries/shapelib/shptree.c, libraries/shapelib/shpopen.c,
738            libraries/shapelib/shapefil.h, libraries/shapelib/dbfopen.c:
739            Update to shapelib 1.2.10
740    
741    2003-10-01  Jan-Oliver Wagner <[email protected]>
742    
743            * Thuban/UI/tree.py, Thuban/UI/main.py: Remove the #! line as
744            it annoys lintian which warns about these files not being
745            executable. The #! isn't necessary here since if you absolutely
746            must execute them you can always say "python <filename>".
747    
748    2003-09-26  Bernhard Herzog  <[email protected]>
749    
750            * Thuban/Model/classgen.py (GenQuantiles0): Removed since it's
751            only used in GREAT-ER but not used in Thuban itself. When GREAT-ER
752            is ported to a newer the import will fail, so it should be noticed
753            immediately that this function is gone.
754            Fixes RT#1919
755    
756    2003-09-26  Bernhard Herzog  <[email protected]>
757    
758            Add a DTD for the projection files and make thuban write valid
759            projection files
760    
761            * Resources/XML/projfile.dtd: New. DTD for thuban's projection
762            files
763    
764            * Thuban/Model/resource.py (ProjFileSaver.write): Use
765            'projectionlist' as the name in the document type declaration so
766            that it matches the element type of the root element.
767    
768            * test/test_proj.py (sample_projfile, sample_projfile2): Use
769            'projectionlist' as the name in the document type declaration just
770            as it is done now in the files thuban would write
771            (sample_projfile, sample_projfile_data): Fix spelling of
772            "Mercator"
773            (TestProjFile.doTestWrite): Validate the written and the expected
774            XML data
775            (TestProjFile): Derive from ValidationTest so that we can run xml
776            validation tests
777    
778    2003-09-24  Bernhard Herzog  <[email protected]>
779    
780            * Thuban/UI/renderer.py (ExportRenderer.render_legend): Do not
781            modify the list returned by map.Layers() in place since it is the
782            actual list of layers used by the map.
783    
784    2003-09-23  Jan-Oliver Wagner <[email protected]>
785    
786            * Doc/manual/thuban-manual.xml: Added subsection to chapter
787            Extensions to describe the extensions coming with the Thuban
788            standard package (gns2shp and importAPR).
789    
790    2003-09-23  Bernhard Herzog  <[email protected]>
791    
792            * libraries/thuban/wxproj.cpp (project_point): if there's an
793            inverse but no forward projection, convert to degrees after
794            applying the inverse projection. Fixes RT#2096
795    
796            * test/test_wxproj.py: New. Test cases for wxproj.so. One test
797            implicitly tests for the fix to RT#2096
798    
799            * test/support.py (FloatComparisonMixin.assertFloatSeqEqual):
800            Check that the sequences have the same lengths
801    
802            * Resources/Projections/defaults.proj (Geographic projection): Use
803            a much more precise value for the to_meter attribute.
804    
805    2003-09-22  Bernhard Herzog  <[email protected]>
806    
807            * test/support.py (initthuban): Make sure to unset the LANG env.
808            var. so that tests that compare translated strings work. Solves RT
809            #2094
810    
811    2003-09-22  Jan-Oliver Wagner <[email protected]>
812    
813            Small improvement of APR import.
814    
815            * Extensions/importAPR/test/test_apr.py (aprTest.test_LClass):
816            Added tests for text-ranges.
817    
818            * Extensions/importAPR/apr.py (APR_LClass.GetThubanRange): Now
819            returns a string object if the range is based on text.
820    
821            * Extensions/importAPR/importAPR.py (import_apr_dialog): Unified
822            range retrieval.
823    
824    2003-09-22  Jan-Oliver Wagner <[email protected]>
825    
826            Initial version of the importAPR extension which is in
827            experimental state.
828    
829            * /Extensions/importAPR/, /Extensions/importAPR/samples/,
830            /Extensions/importAPR/test/: New directories.
831    
832            * /Extensions/importAPR/samples/README: New: Howto load the samples.
833    
834            * /Extensions/importAPR/samples/iceland.apr: New: A sample APR
835            file which refers to the Thuban Iceland demo data.
836    
837            * /Extensions/importAPR/test/README: New: Howto execute the tests.
838    
839            * /Extensions/importAPR/test/test_apr.py: New: Tests for APR classes.
840    
841            * /Extensions/importAPR/apr.py: New: Classes for ArcView Objects
842            as in '.apr'-files.
843    
844            * /Extensions/importAPR/odb.py: New: Classes for generic ArcView
845            ODB Objects as in '.apr', '.avl' and other files.
846    
847            * /Extensions/importAPR/__init__.py: New: Init to make this
848            directory a package.
849    
850            * /Extensions/importAPR/importAPR.py: New: Import a ArcView
851            project file (.apr) and convert it to Thuban.
852    
853    2003-09-22  Jan-Oliver Wagner <[email protected]>
854    
855            * Extensions/gns2shp.gns2shp.py: The main module of gns2shp.
856    
857    2003-09-19  Jan-Oliver Wagner <[email protected]>
858    
859            * Doc/manual/thuban-manual.xml: Extended section 'Installation'
860            with description on RPM installation and RPM binary package
861            creation.
862    
863    2003-09-18  Bernhard Herzog  <[email protected]>
864    
865            * setup.py (data_files): Only add the mo files if the Locales
866            directory actually exists, so that setup.py works with a fresh CVS
867            checkout
868    
869    2003-09-12  Jan-Oliver Wagner <[email protected]>
870    
871            * Examples/simple_extensions/simple_tool.py: bugfix: Tool is now
872            in viewport, not anymore in view
873    
874    2003-09-04  Jan-Oliver Wagner <[email protected]>
875    
876            Introducing first Extension (gns2shp).
877    
878            * Extensions, Extensions/gns2shp, Extensions/gns2shp/test: New.
879    
880            * Extensions/__init__.py: New. init to make this dir a package.
881    
882            * Extensions/gns2shp/__init__.py: New. init to make this dir a package.
883    
884            * Extensions/gns2shp/test/README: New. some info on this test directory.
885    
886            * Extensions/gns2shp/test/ls.txt: New. test data set (Liechtenstein).
887    
888            * Extensions/gns2shp/test/test_gns2shp.py: New. Test for correct creation
889            of Shapefile from GNS text file format
890    
891    2003-09-03  Jan-Oliver Wagner <[email protected]>
892    
893            Fix/workaround for bug #2019:
894            https://intevation.de/rt/webrt?serial_num=2019
895    
896            * Thuban/UI/identifyview.py (IdentifyView.ID_STOP): New.
897            (IdentifyView.__init__): Added another button that allows to
898            stop the identify mode.
899            (IdentifyView.OnStop): New. Stops the identify mode.
900    
901    2003-09-03  Jan-Oliver Wagner <[email protected]>
902    
903            Introducing a new exception dialog that allows to exit the
904            application immediately.
905            This fixes bug #2060: https://intevation.de/rt/webrt?serial_num=2060
906    
907            * Thuban/UI/exceptiondialog.py: New. A special exception dialog.
908    
909            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
910            Made strings available to translations. Exchanged the simple
911            ScrolledMessageDialog by the new ExceptionDialog.
912    
913    2003-09-01  Bernhard Herzog  <[email protected]>
914    
915            * NEWS: New. Summary of changes and release notes.
916    
917            * MANIFEST.in: Add NEWS
918    
919    2003-09-01  Bernhard Herzog  <[email protected]>
920    
921            * MANIFEST.in: Correct the include statement for the mo-files and
922            include the documentation too.
923    
924            * setup.py (data_files): Add the .mo files
925            (setup call): Up to version 0.9.0
926    
927    2003-09-01  Bernhard Herzog  <[email protected]>
928    
929            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Change the
930            parameter list to just parent and session
931            (ChooseDBTableDialog.__set_properties): Removed. Setting the
932            selection of empty list boxes is not allowed (and produces C++
933            assertion errors) and the rest of the setup is better done in
934            __init__ anyway.
935            (ChooseDBTableDialog.OnCancel, ChooseDBTableDialog.OnOK)
936            (ChooseDBTableDialog.OnLBDClick, DBDialog.OnOK): Use the Python
937            builtins True/False for booleans to avoid warnings from wxPython
938    
939            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Adapt to new
940            ChooseDBTableDialog constructor parameters.
941    
942    2003-09-01  Bernhard Herzog  <[email protected]>
943    
944            * Thuban/Model/postgisdb.py
945            (PostGISTable): Extend doc-string
946            (PostGISTable._fetch_table_information): Set the column index
947            correctly, pretending ignored columns don't exist.
948    
949            * test/test_postgis_db.py (TestPostGISIgnoredColumns): New tests
950            for postgis tables with data types not yet supported by thuban.
951    
952    2003-08-29  Bernhard Herzog  <[email protected]>
953    
954            * HOWTO-Release: Tweak item about running the tests.
955    
956    2003-08-29  Jan-Oliver Wagner <[email protected]>
957    
958            * /Doc/manual/thuban-manual.xml: updated to version 1.0pre2.
959    
960    2003-08-29  Bernhard Herzog  <[email protected]>
961    
962            Add some missing parameters to projections. Proj complains about
963            them on windows but for some reason not on Linux.
964    
965            * test/test_save.py (SaveSessionTest.testLayerProjection): Add
966            missing required projection parameters
967    
968            * test/test_proj.py (TestProjFile.test): Add missing required
969            projection parameters
970    
971            * test/test_load_0_8.py (TestLayerProjection.file_contents)
972            (TestLayerProjection.test): Add missing required projection
973            parameters and tests for them
974    
975            * test/test_load.py (TestLayerProjection.file_contents)
976            (TestLayerProjection.test): Add missing required projection
977            parameters and tests for them
978    
979            * test/test_layer.py (TestLayer.test_base_layer): Add missing
980            required projection parameters
981    
982    2003-08-29  Bernhard Herzog  <[email protected]>
983    
984            * libraries/pyprojection/Projection.i: Use pj_get_errno_ref to
985            access the pj_errno because directly accessing pj_errno doesn't
986            work on windows if the proj library is in a DLL
987    
988            * libraries/pyprojection/Projection_wrap.c: Update from Projection.i
989    
990    2003-08-28  Bernhard Herzog  <[email protected]>
991    
992            * test/test_proj.py: Import things from Thuban after calling
993            initthuban
994    
995            * test/test_load.py (LoadSessionTest.filenames): New class
996            variable with the filename attributes to normalize
997            (LoadSessionTest.check_format): Pass self.filenames to
998            sax_eventlist to normalize the filename attributes
999    
1000            * test/xmlsupport.py: Add cvs keywords
1001            (SaxEventLister.__init__): New parameter filenames which indicates
1002            attributes that contain filenames
1003            (SaxEventLister.startElementNS): Normalize the filename attributes
1004            with os.path.normpath
1005            (sax_eventlist): New parameter filenames to pass through to
1006            SaxEventLister
1007    
1008            * test/test_derivedshapestore.py: Make this file callable as a
1009            program to execute the tests
1010            (TestDerivedShapeStoreExceptions.test_table_with_wrong_size): Bind
1011            the session to self.session so that it gets destroyed properly
1012    
1013            * test/test_layer.py (TestLayer.tearDown): Call the session's
1014            Destroy method
1015    
1016            * test/test_map.py (TestMapBase.tearDown): Destroy self.session
1017            too if it exists
1018            (TestMapAddLayer.test_add_layer): Bind the session to self.session
1019            so that it gets destroyed properly
1020    
1021            * test/postgissupport.py (reason_for_not_running_tests): Add a
1022            test for the existence of popen2.Popen4.
1023    
1024            * test/test_save.py (SaveSessionTest.tearDown): New. Provide a
1025            reliable way to destroy the sessions created in the test cases
1026            (SaveSessionTest.test_dbf_table): Bind the session to self.session
1027            so that it gets destroyed properly
1028            (SaveSessionTest.testLayerProjection): Bind the session to
1029            self.session so that it gets destroyed properly
1030    
1031            * test/test_session.py (UnreferencedTablesTests.tearDown): Make
1032            sure that the session is destroyed properly
1033    
1034            * test/test_shapefilestore.py: Make this callable as a program to
1035            execute the tests
1036    
1037            * test/test_scalebar.py: Remove unnecessary import of _ from
1038            Thuban
1039    
1040            * test/support.py (print_garbage_information): Call initthuban
1041            here because it may be called indirectly from test cases that test
1042            test support modules which do not use anything from thuban itself
1043            (ThubanTestProgram.runTests): Remove unnecessary debug print
1044    
1045    2003-08-28  Bernhard Herzog  <[email protected]>
1046    
1047            * Thuban/version.py (longversion): Update to 0.9
1048    
1049            * Thuban/UI/mainwindow.py: Remove some unused imports
1050    
1051            * README: Add section about required additional software. Add date
1052            and revision CVS keywords
1053    
1054            * HOWTO-Release: Add item about the translations. Add date and
1055            revision CVs keywords and change formatting to match README a bit
1056            better
1057    
1058            * po/de.po: Update for 0.9
1059    
1060            * test/README: Tweak the wording a little because many tests are
1061            not really unittest.
1062    
1063    2003-08-27  Bernhard Herzog  <[email protected]>
1064    
1065            As preparation for the 0.9 release, switch thuban files to a
1066            non-dev namespace
1067    
1068            * Thuban/Model/save.py (SessionSaver.write_session): Write files
1069            with the http://thuban.intevation.org/dtds/thuban-0.9.dtd
1070            namespace
1071    
1072            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
1073            http://thuban.intevation.org/dtds/thuban-0.9.dtd namespace too
1074    
1075            * test/test_save.py (SaveSessionTest.dtd)
1076            (SaveSessionTest.testEmptySession)
1077            (SaveSessionTest.testSingleLayer)
1078            (SaveSessionTest.testLayerProjection)
1079            (SaveSessionTest.testRasterLayer)
1080            (SaveSessionTest.testClassifiedLayer)
1081            (SaveSessionTest.test_dbf_table)
1082            (SaveSessionTest.test_joined_table)
1083            (SaveSessionTest.test_save_postgis): Update for new namespace
1084    
1085            * test/test_load.py (LoadSessionTest.dtd, TestSingleLayer)
1086            (TestLayerVisibility.file_contents, TestLabels.file_contents)
1087            (TestLayerProjection.file_contents)
1088            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
1089            (TestPostGISLayer.file_contents)
1090            (TestPostGISLayerPassword.file_contents)
1091            (TestLoadError.file_contents, TestLoadError.test): Update for new
1092            namespace
1093    
1094    2003-08-27  Bernhard Herzog  <[email protected]>
1095    
1096            Make the table interface distinguish between row ids (an integer
1097            that uniquely identifies a row) and row ordinals (a simple row
1098            count from 0 to NumRows() - 1)
1099    
1100            * Thuban/Model/postgisdb.py (PostGISTable.RowIdToOrdinal)
1101            (PostGISTable.RowOrdinalToId): New methods to conver between row
1102            ids and row ordinals
1103            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue): New keyword
1104            parameter row_is_ordinal to indicate whether the row parameter is
1105            the row id or the ordinal
1106    
1107            * Thuban/Model/transientdb.py (TransientTableBase.RowIdToOrdinal)
1108            (TransientTableBase.RowOrdinalToId)
1109            (AutoTransientTable.RowIdToOrdinal)
1110            (AutoTransientTable.RowOrdinalToId): Same new methods as in
1111            PostGISTable.
1112            (TransientTableBase.ReadRowAsDict, TransientTableBase.ReadValue)
1113            (AutoTransientTable.ReadRowAsDict, AutoTransientTable.ReadValue):
1114            Same new parameter as in PostGISTable.
1115    
1116            * Thuban/Model/table.py (DBFTable.RowIdToOrdinal)
1117            (DBFTable.RowOrdinalToId, MemoryTable.RowIdToOrdinal)
1118            (MemoryTable.RowOrdinalToId): Same new methods as in PostGISTable.
1119            (DBFTable.ReadValue, DBFTable.ReadRowAsDict)
1120            (MemoryTable.ReadValue, MemoryTable.ReadRowAsDict): Same new
1121            parameter as in PostGISTable.
1122    
1123            * Thuban/UI/tableview.py (DataTable.RowIdToOrdinal)
1124            (DataTable.RowOrdinalToId): New methods to convert between row ids
1125            and row ordinals.
1126            (TableGrid.SelectRowById): New method to select a row based on its
1127            ID as opposed to its ordinal
1128            (DataTable.GetValue, TableGrid.OnRangeSelect)
1129            (TableGrid.OnSelectCell, LayerTableGrid.select_shapes)
1130            (QueryTableFrame.OnQuery, QueryTableFrame.get_selected)
1131            (LayerTableFrame.__init__): Convert between row ids and row
1132            ordinals as appropriate
1133    
1134            * test/postgissupport.py (PostGISDatabase.__init__): Add
1135            doc-string.
1136            (PostGISDatabase.initdb): The optional third item in a tuple in
1137            tables is now a (key, value) list with additional arguments to
1138            pass to upload_shapefile
1139            (upload_shapefile): New parameter gid_offset to allow gids that
1140            are not the same as the shapeids in the shapefile
1141            (PostgreSQLServer.get_default_static_data_db): Use the new
1142            gid_offset to make the gids in landmarks 1000 higher than the
1143            shapeids in the shapefile
1144    
1145            * test/test_viewport.py
1146            (TestViewportWithPostGIS.test_find_shape_at_point): Adapt to the
1147            new shapeids in the landmarks table
1148    
1149            * test/test_transientdb.py
1150            (TestTransientTable.run_iceland_political_tests)
1151            (TestTransientTable.test_transient_joined_table): Add tests for
1152            the new table methods and new keywords arguments.
1153    
1154            * test/test_postgis_db.py
1155            (TestPostGISTable.test_read_row_as_dict_row_count_mode)
1156            (TestPostGISTable.test_read_value_row_count_mode)
1157            (TestPostGISTable.test_row_id_to_ordinal)
1158            (TestPostGISTable.test_row_oridnal_to_id): New test for the new
1159            table methods and the new arguments
1160            (TestPostGISShapestorePoint.test_shapes_in_region)
1161            (TestPostGISShapestorePoint.test_shape_raw_data)
1162            (TestPostGISShapestorePoint.test_shape_points)
1163            (TestPostGISShapestorePoint.test_shape_shapeid)
1164            (TestPostGISShapestorePoint.test_all_shapes)
1165            (TestPostGISTable.test_simple_query)
1166            (TestPostGISTable.test_simple_query)
1167            (TestPostGISTable.test_simple_query)
1168            (TestPostGISTable.test_read_value)
1169            (TestPostGISTable.test_read_row_as_dict): Adapt to the new
1170            shapeids in the landmarks table
1171    
1172            * test/test_memory_table.py
1173            (TestMemoryTable.test_read_row_as_dict_row_count_mode)
1174            (TestMemoryTable.test_read_value_row_count_mode)
1175            (TestMemoryTable.test_row_id_to_ordinal)
1176            (TestMemoryTable.test_row_oridnal_to_id): New test for the new
1177            table methods and the new arguments
1178    
1179            * test/test_dbf_table.py
1180            (TestDBFTable.test_read_row_as_dict_row_count_mode)
1181            (TestDBFTable.test_read_value_row_count_mode)
1182            (TestDBFTable.test_row_id_to_ordinal)
1183            (TestDBFTable.test_row_oridnal_to_id): New test for the new table
1184            methods and the new arguments
1185    
1186    2003-08-26  Bernhard Herzog  <[email protected]>
1187    
1188            * Thuban/Model/postgisdb.py (PostGISShapeStore.BoundingBox): Use a
1189            more postgis specific but much faster method to get the bounding
1190            box
1191    
1192    2003-08-26  Bernhard Herzog  <[email protected]>
1193    
1194            * Thuban/Model/postgisdb.py (PostGISTable.Title)
1195            (PostGISShapeStore.AllShapes): Add these missing methods.
1196            (PostGISShapeStore.ShapesInRegion): No need to raise
1197            StopIteration. We can simply return
1198    
1199            * test/test_postgis_db.py (TestPostGISTable.test_title)
1200            (TestPostGISShapestorePoint.test_all_shapes): New tests for the
1201            new methods
1202    
1203    2003-08-25  Bernhard Herzog  <[email protected]>
1204    
1205            * Thuban/Model/postgisdb.py (shapetype_map): Add MUTLIPOLYGON.
1206    
1207            * test/test_postgis_db.py (PolygonTests): New class containing
1208            those tests from TestPostGISShapestorePolygon that can also be
1209            used to test MUTLIPOLYGON tables
1210            (TestPostGISShapestorePolygon): Most tests are now in PolygonTests
1211            so derive from that
1212            (TestPostGISShapestoreMultiPolygon): New class with tests for
1213            MUTLIPOLYGON tables
1214    
1215            * test/postgissupport.py (PostGISDatabase.initdb): Allow the
1216            tables argument to have tuples with three items to override the
1217            WKT type used.
1218            (PostgreSQLServer.get_default_static_data_db): Use the above to
1219            create a polygon table with MUTLIPOLYGONs
1220            (point_to_wkt, coords_to_point, polygon_to_wkt, coords_to_polygon)
1221            (arc_to_wkt, coords_to_multilinestring): Rename from *_to_wkt to
1222            coords_to*
1223            (coords_to_multipolygon): New. Convert to MUTLIPOLYGON
1224            (wkt_converter): New. Map WKT types to converters
1225            (upload_shapefile): New parameter force_wkt_type to use a
1226            different WKT type than the default
1227    
1228  2003-08-25  Bernhard Herzog  <[email protected]>  2003-08-25  Bernhard Herzog  <[email protected]>
1229    
1230          * Thuban/UI/application.py          * Thuban/UI/application.py
# Line 941  Line 2168 
2168    
2169          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as
2170          it annoys lintian which warns about these files not being          it annoys lintian which warns about these files not being
2171          executable. The #1 isn't necessary here since if you absolutely          executable. The #! isn't necessary here since if you absolutely
2172          must execute them you can always say "python <filename>".          must execute them you can always say "python <filename>".
2173    
2174          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove

Legend:
Removed from v.1655  
changed lines
  Added in v.1906

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26