/[thuban]/branches/greater-ms3/thuban/ChangeLog
ViewVC logotype

Diff of /branches/greater-ms3/thuban/ChangeLog

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

revision 893 by frank, Mon May 12 10:46:05 2003 UTC revision 1046 by frank, Tue May 27 06:54:29 2003 UTC
# Line 1  Line 1 
1    2003-05-27  Frank Koormann  <[email protected]>
2    
3            * Thuban/UI/tableview.py (QueryTableFrame.__init__): Underline the
4            "S" of selection box label to hint on hot key (Alt-S). Works under
5            Win32 but is ignored under GTK.
6    
7    2003-05-26  Frank Koormann  <[email protected]>
8    
9            * Thuban/UI/projdialog.py (ProjFrame.__do_layout, ProjPanel._DoLayout):
10            Center Choices.
11    
12    2003-05-26  Bernhard Herzog  <[email protected]>
13    
14            Remove the Precision methods again. They're too DBF specific to be
15            part of the table interface and they're only used in table_to_dbf
16            anyway.
17            
18            * Thuban/Model/transientdb.py (TransientTableBase.Width):Use a
19            fixed precision of 12 for doubles.
20            (TransientTableBase.Precision): Removed
21            (AutoTransientTable.Width): Delegate to self.table.
22    
23            * Thuban/Model/table.py (DBFTable.Precision)
24            (MemoryTable.Precision): Removed.
25            (MemoryTable.Width): Use a fixed precision of 12 for doubles.
26            (table_to_dbf): Use a fixed precision of 12 for floats unless the
27            column object specifies something else.
28    
29            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): New.
30            test for table_to_dbf
31    
32    2003-05-26  Bernhard Herzog  <[email protected]>
33    
34            * test/test_transientdb.py
35            (TestTransientTable.run_iceland_political_tests): Fix a comment.
36    
37    2003-05-26  Bernhard Herzog  <[email protected]>
38    
39            * Thuban/UI/mainwindow.py (MainWindow.TableOpen): Real
40            implementation. Mark parts of the file format strings for
41            localization.
42    
43            * Thuban/Model/session.py (Session.OpenTableFile): New. Open a dbf
44            file and add the table to the tables managed by the session
45    
46            * test/test_session.py (TestSessionSimple.test_open_table_file):
47            New. test case for OpenTableFile
48    
49    2003-05-26  Jan-Oliver Wagner <[email protected]>
50    
51            * Thuban/UI/controls.py, Thuban/UI/identifyview.py, Thuban/UI/join.py,
52            Thuban/UI/labeldialog.py, Thuban/UI/mainwindow.py,
53            Thuban/UI/proj4dialog.py, Thuban/UI/tableview.py, Thuban/UI/view.py:
54            Replace the true/false of wxWindows by True/False of Python 2.2.1.
55    
56    2003-05-26  Jan-Oliver Wagner <[email protected]>
57    
58            * Thuban/UI/tableview.py (LayerTableFrame.__init__): If there is
59            already a selection present, update the grid accordingly.
60    
61            * Thuban/UI/mainwindow.py (MainWindow.TableShow): Make the dialog
62            resizeable and increase its initial size.
63    
64    2003-05-26  Frank Koormann  <[email protected]>
65    
66            Table export functionality
67    
68            * Thuban/Model/table.py (DBFTable.Width, MemoryTable.Width):
69            Return width (in characters) for a column.
70            (DBFTable.Precision, MemoryTable.Precision): Return decimal precision.
71            (table_to_dbf): Write table to dbf file.
72            (table_to_csv): Write table to csv file.
73    
74            * Thuban/Model/transientdb.py (TransientTableBase.Width,
75            TransientTableBase.Precision): Return column width and precision.
76    
77            * Thuban/UI/tableview.py (QueryTableFrame.OnSaveAs): Call table_to_dbf
78            or table_to_csv depending on file selection.
79    
80            * test/test_dbf_table.py:
81            Test table_to_dbf (extension of former part of test).
82    
83            * test/test_csv_table.py:
84            Test table_to_csv.
85    
86    2003-05-23  Jan-Oliver Wagner <[email protected]>
87    
88            * Thuban/UI/join.py (JoinDialog.OnJoin): Use _() for strings.
89            Use QueryTableFrame instead of TableFrame.
90    
91            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Prefix the
92            table window with 'Layer Table:' instead of 'Table:'.
93    
94    2003-05-23  Jan-Oliver Wagner <[email protected]>
95    
96            Give all tables a title via mix-in TitledObject.LayerShowTable
97    
98            * Thuban/Model/base.py (TitledObject.SetTitle): Call method 'issue'
99            only if it exists.
100    
101            * Thuban/Model/table.py (DBFTable, MemoryTable): mix-in TitledObject
102            and call its init-method with a default title. Remove Title() method.
103    
104            * Thuban/Model/transientdb.py (TransientTable, TransientJoinedTable,
105            AutoTransientTable): mix-in TitledObject and call its init-method with
106            a default title. Remove Title() method.
107    
108    2003-05-23  Bernhard Herzog  <[email protected]>
109    
110            * Thuban/Model/session.py (Session.AddShapeStore): Define
111            AddShapeStore analogously to AddTable.
112    
113            * test/test_session.py (TestSessionSimple.test_add_shapestore):
114            New. Test for AddShapeStore
115    
116    2003-05-23  Jan-Oliver Wagner <[email protected]>
117    
118            Introducing QueryTableFrame and a very coarse ShowTable implementation.
119    
120            * Thuban/UI/tableview.py (LayerTableFrame, QueryTableFrame): Split the
121            class LayerTableFrame into two classes, LayerTableFrame and QueryTableFrame.
122            The latter implements the selection GUI without dependency on a layer.
123            LayerTableFrame now is derived from QueryTableFrame and connects
124            to a layer.
125    
126            * Thuban/UI/mainwindow.py (MainWindow.TableShow): A very coarse
127            implementation that still needs work.
128    
129            * Thuban/Model/layer.py (Layer.TreeInfo): Added filename.
130    
131    2003-05-22  Frank Koormann  <[email protected]>
132    
133            * Thuban/Model/transientdb.py (TransientJoinedTable.__init__):
134            Added "outer_join = False" as optional parameter.
135            (TransientJoinedTable.create): If outer join is true, perform a
136            "LEFT OUTER JOIN" instead of "JOIN", which preserves all records of
137            the left table. Records not matching are filled with 0 / None.
138    
139            * Thuban/UI/join.py (JoinDialog.__init__): Checkbox for outer join.
140            (JoinDialog.OnJoin): Consider outer join check box.
141    
142    2003-05-22  Bernhard Herzog  <[email protected]>
143    
144            * Thuban/UI/join.py (JoinDialog.OnJoin): Use exc_info in a
145            somewhat safer way. Storing the traceback in a local variable can
146            lead to memory leaks
147    
148    2003-05-22  Bernhard Herzog  <[email protected]>
149    
150            * Thuban/UI/join.py (JoinDialog.OnJoin): Make sure to really call
151            the wxMessageDialog's Destroy() method.
152    
153    2003-05-22  Frank Koormann  <[email protected]>
154    
155            * Thuban/UI/join.py (JoinDialog.__init__): Make use of
156            TransientTable.Title()
157    
158    2003-05-22  Frank Koormann  <[email protected]>
159    
160            Join Dialog, initial version.
161    
162            * Thuban/UI/mainwindow.py (MainWindow.TableJoin): Removed print.
163    
164            * Thuban/UI/join.py (JoinDialog): Functional implementation of
165            former framework. Renamed Table1/Table2 to LeftTable/RightTable
166            in all occurences.
167    
168            * Thuban/Model/transientdb.py (TransientJoinedTable.__doc__):
169            Typo fixed.
170    
171    2003-05-22  Bernhard Herzog  <[email protected]>
172    
173            Give the tables titles so that the GUI can display more meaningful
174            names. For now the titles are fixed but depend on e.g. filenames
175            or the titles of the joined tables.
176    
177            * Thuban/Model/transientdb.py (TransientTable.Title)
178            (TransientJoinedTable.Title, AutoTransientTable.Title): New.
179    
180            * Thuban/Model/table.py (DBFTable.Title, MemoryTable.Title): New.
181    
182            * test/test_transientdb.py
183            (TestTransientTable.test_auto_transient_table_title): New. Test
184            for the Title method
185            (TestTransientTable.test_transient_joined_table)
186            (TestTransientTable.test_transient_table): Add test for the Title
187            methods
188    
189            * test/test_memory_table.py (TestMemoryTable.test_title): New.
190            Test for the Title method
191    
192            * test/test_dbf_table.py (TestDBFTable.test_title): New. Test for
193            the Title method
194    
195    2003-05-22  Bernhard Herzog  <[email protected]>
196    
197            * test/test_layer.py (TestLayer.setUp, TestLayer.tearDown):
198            Provide a better way to destroy the layers
199            (TestLayer.test_base_layer, TestLayer.test_arc_layer)
200            (TestLayer.test_point_layer, TestLayer.test_empty_layer)
201            (TestLayer.test_polygon_layer, TestLayer.test_get_field_type): Use
202            the new way to destroy the layers.
203            (TestLayer.test_derived_store): New. Test for using a layer with a
204            DerivedShapeStore
205    
206            * Thuban/Model/layer.py (Layer.SetShapeStore): Only set the
207            filename if the shape store actually has one.
208    
209    2003-05-22  Bernhard Herzog  <[email protected]>
210    
211            * Thuban/Model/table.py (DBFTable.FileName): New. Accessor method
212            for the filename
213    
214            * test/test_dbf_table.py (TestDBFTable.test_filename): New. Test
215            for the FileName method
216            (TestDBFTableWriting.test_write): Fix spelling of filename
217    
218    2003-05-22  Thomas Koester  <[email protected]>
219    
220            * Thuban/Model/range.py, test/test_range.py: Brought over new Range
221            from SciParam that now really is immutable.
222    
223    2003-05-22  Frank Koormann  <[email protected]>
224    
225            Layer Top/Bottom placement added to legend.
226    
227            * Thuban/UI/legend.py
228            (LegendPanel._OnMoveTop(), LayerPanel._OnMoveBottom): New, methods
229            bound to tool events.
230            (LegendTree.MoveCurrentItemTop(), LegendTree.MoveCurrentItemBottom):
231            New, methods binding the event methods with the map methods.
232    
233            * Thuban/Model/map.py (Map.TopLayer(), Map.BottomLayer()): New, place
234            layer at top/bottom of layer stack.
235    
236            * Resources/Bitmaps/top_layer.xpm: New button icon.
237    
238            * Resources/Bitmaps/bottom_layer.xpm: New button icon.
239    
240    2003-05-22  Bernhard Herzog  <[email protected]>
241    
242            * Thuban/Model/session.py (Session.RemoveTable): New method to
243            remove tables
244    
245            * test/test_session.py (TestSessionSimple.test_remove_table): New.
246            Test for RemoveTable
247    
248    2003-05-22  Thomas Koester  <[email protected]>
249    
250            * Thuban/Model/classgen.py: Added short module doc string and CVS id.
251            (ClassGenerator.GenUniformDistribution): Use new Range __init__, too.
252    
253    2003-05-22  Bernhard Herzog  <[email protected]>
254    
255            Implement a way to discover dependencies between tables and
256            shapestores.
257    
258            * Thuban/Model/transientdb.py (TransientTableBase.Dependencies)
259            (TransientJoinedTable.Dependencies)
260            (AutoTransientTable.SimpleQuery): New. Implement the dependencies
261            interface
262            (TransientJoinedTable.__init__): Keep tack of the original table
263            objects in addition to the corresponding transient tables.
264    
265            * Thuban/Model/table.py (DBFTable.Dependencies)
266            (MemoryTable.Dependencies): New. Implement the dependencies
267            interface
268    
269            * Thuban/Model/data.py (ShapeTable): New. Helper class for
270            ShapefileStore
271            (ShapefileStore.__init__): Use ShapeTable instead of
272            AutoTransientTable
273            (ShapefileStore.Table, ShapefileStore.Shapefile): Add doc-strings
274            (ShapefileStore.FileName, ShapefileStore.FileType): New. Accessor
275            methods for filename and type
276            (ShapefileStore.Dependencies): New. Implement the dependencies
277            interface
278            (DerivedShapeStore): New class to replace SimpleStore. The main
279            difference to SimpleStore is that it depends not on a shapefile
280            but another shapestore which expresses the dependencies a bit
281            better
282            (SimpleStore.__init__): Add deprecation warning.
283    
284            * test/test_dbf_table.py (TestDBFTable.test_dependencies): New.
285            Test for the Dependencies method.
286    
287            * test/test_memory_table.py (TestMemoryTable.test_dependencies):
288            New. Test for the Dependencies method.
289    
290            * test/test_transientdb.py
291            (TestTransientTable.test_auto_transient_table_dependencies): New.
292            Test for the Dependencies method.
293            (TestTransientTable.test_transient_joined_table): Add test for the
294            Dependencies method.
295    
296            * test/test_session.py (TestSessionSimple.setUp)
297            (TestSessionSimple.tearDown): New. Implement a better way to
298            destroy the sessions.
299            (TestSessionSimple.test_initial_state)
300            (TestSessionSimple.test_add_table): Bind session to self.session
301            so that it's destroyed by tearDown
302            (TestSessionSimple.test_open_shapefile): New. Test for
303            OpenShapefile and the object it returns
304    
305    2003-05-22  Bernhard Herzog  <[email protected]>
306    
307            * Thuban/Model/session.py (Session.AddTable): New method to
308            register tables with the session.
309            (Session.Tables): Return the tables registered with AddTable too.
310    
311            * test/test_session.py (TestSessionSimple.test_add_table): New.
312            Test case for the AddTable method
313    
314    2003-05-22  Frank Koormann  <[email protected]>
315    
316            UI polishing updates: Place main buttons (OK, Cancel, etc) in the
317            lower right corner, center labels for selections, initialize controls
318            in reasonable order for keyboard navigation.
319    
320            * Thuban/UI/projdialog.py (ProjFrame.__init__, ProjFrame.__doLayout)
321            (ProjFrame.__DoOnProjAvail): Determine position of current projection
322            using the wxListBox.FindString() method. Still a problem (#1886)
323    
324            * Thuban/UI/classifier.py
325            (Classifier.__init__, SelectPropertiesDialog.__init__)
326    
327            * Thuban/UI/classgen.py (ClassGenDialog.__init__,
328            (ClassGenDialog.__DoOnGenTypeSelect): Moved initialization of the
329            different classification types from here to __init__.
330            (GenUniquePanel.__init__): Set the column width of the first field
331            in the Field ListCtrl to the full width.
332    
333            * Thuban/UI/tableview.py (LayerTableFrame.__init__): Rename 'Save As'
334            Button to 'Export'. Center Buttons in Selection Box, set Focus to
335            Grid.
336            (LayerTableFrame.OnKeyDown()): New, bound to the grid with EVT_KEY_DOWN,
337            changes focus to the Selection when pressing "Alt-S".
338    
339            * Thuban/UI/legend.py (LegendTree.__SetVisibilityStyle): Only gray out
340            the text if not visible. The italic font sometimes exceeds the
341            rendering area.
342    
343    2003-05-21  Jonathan Coles   <[email protected]>
344    
345            * Thuban/UI/dock.py (DockFrame): Rename references to _OnClose
346            to OnClose so that Thuban closes correctly.
347    
348            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Call
349            DockFrame.OnClose, not DockFrame._OnClose.
350    
351    2003-05-21  Jonathan Coles   <[email protected]>
352    
353            * Thuban/Model/classgen.py (ClassGenerator.GenQuantiles): Remove
354            references to 'inf' and use new Range __init__ to pass floats
355            directly rather than converting them to strings first.
356            Fixes RTBug #1876.
357    
358            * Thuban/Model/classification.py (ClassGroupRange.SetRange):
359            Use new Range ___init__ to pass floats.
360    
361            * Thuban/Model/layer.py (RasterLayer.__init__): Test if the
362            filename is a valid image file. Throw IOError otherwise.
363    
364            * Thuban/Model/range.py: Brought over new Range from SciParam that
365            is immutable and has an __init__ which can accept floats.
366    
367            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Move OpenShapefile
368            into try block. AddLayer doesn't throw any exceptions anymore.
369            (MainWindow.AddRasterLayer): Move constructor of RasterLayer into
370            try block.
371    
372            * Thuban/UI/projdialog.py (GeoPanel.__init__): Put Degrees as
373            the first item in choices. Fixes RTBug #1882.
374    
375            * Thuban/UI/renderer.py (MapRenderer.render_map): Check if scale
376            has gone to 0 which is a serious problem. abort.
377            (MapRenderer.draw_raster_layer): Catch IOError seperately and
378            print the error from GDAL.
379    
380            * Thuban/UI/tableview.py (TableGrid.__init__): Call
381            ToggleEventListeners to turn on listening.
382            (TableGrid.ToggleEventListeners): New. Turns event listening on
383            and off so as to prevent excessive messages.
384            (LayerTableFrame.OnQuery): Use TableGrid.ToggleEventListeners
385            to suppress excessive messages when selecting many rows.
386            Fixes RTBug #1880.
387    
388            * Thuban/UI/view.py: Added checks against if scale == 0. This
389            is a serious problem that can occur when an image without
390            geo data is loading and causes the map projection bounds to
391            go to infinity. Right now, the solution is to simply try
392            to recover.
393    
394            * extensions/thuban/cpl_mfile.cpp (MFILEClose): Make sure
395            to set the MFILEReceiver attributes even if the data is NULL.
396    
397            * extensions/thuban/gdalwarp.cpp: Improved the error handling
398            and passed GDAL messages back up to the Python layer. Also
399            tried to fix some memory leaks that were present in the original
400            utility but didn't matter because the program aborted.
401    
402            * test/test_range.py: Copied over tests from SciParam. Removed
403            tests against importing. Fixes RTBug #1867.
404    
405    2003-05-21  Bernhard Herzog  <[email protected]>
406    
407            * test/test_load.py: Remove unused imports and restructure the
408            test code
409            (LoadSessionTest): Split into one class for each test and turn
410            LoadSessionTest itself into the base class for all such session
411            tests.
412            (ClassificationTest): New base class for load tests that test
413            classifications
414            (TestSingleLayer, TestLayerVisibility, TestClassification)
415            (TestLabels, TestLayerProjection, TestRasterLayer): New classes
416            for the individual tests
417    
418            * test/support.py (FileLoadTestCase.filename): New base class for
419            file loading tests
420    
421    2003-05-21  Jan-Oliver Wagner <[email protected]>
422    
423            * Resources/Projections/defaults.proj: Renamed 'Universal Transverse
424            Mercator' to 'UTM Zone 32' as a more convenient example.
425            Added 'Gauss Krueger Zone 6'.
426    
427            * Data/iceland_sample_raster.thuban: political polygon now
428            filled transparent to have the raster image visible at once.
429    
430    2003-05-21  Frank Koormann  <[email protected]>
431    
432            * Thuban/UI/mainwindow.py (MainWindow): Renamed _OnClose() back to
433            OnClose() to keep in sync with extensions. Internally Thuban
434            still uses "underscored" names.
435    
436    2003-05-20  Jonathan Coles   <[email protected]>
437    
438            This puts back Raster layer support. These layers support projections
439            through the GDAL library. Currently, the CVS version is being used.
440            There are no Debian packages available although this may change soon.
441            A GDAL driver was extended to support writing to memory rather to
442            files.
443    
444            There is still some work that needs to be done, such as some error
445            handling when loading invalid images or when there is a problem
446            projecting the image. This putback simply checks in the majority
447            of the work.
448    
449            * setup.py: Add gdalwarp library extension.
450    
451            * Thuban/Model/layer.py (BaseLayer.HasClassification): New.
452            Defaults to False, but can be overridden by subclasses if they
453            support classification.
454            (RasterLayer): New. Defines a new layer that represents an
455            image.
456    
457            * Thuban/Model/load.py (SessionLoader.__init__): Add rasterlayer
458            tag handler.
459            (SessionLoader.start_layer): Encode the filename.
460            (SessionLoader.start_rasterlayer, SessionLoader.end_rasterlayer):
461            New. Supports reading a rasterlayer tag.
462    
463            * Thuban/Model/map.py (Map.BoundingBox): Fix typo in comment.
464    
465            * Thuban/Model/save.py (XMLWriter.encode): Don't assume that we
466            get a string in Latin1. If we get such as string convert it to
467            unicode first, otherwise leave if alone before encoding.
468            (SessionSaver.write_layer): Add support for writing both Layers
469            and RasterLayers.
470    
471            * Thuban/Model/transientdb.py (AutoTransientTable.SimpleQuery):
472            The right argument may not be a string, it could also be a Column.
473    
474            * Thuban/UI/application.py (ThubanApplication.CreateMainWindow):
475            Make initial window size 600x400. Fixes RTBug #1872.
476    
477            * Thuban/UI/classifier.py (Classifier.__init__): Rearrange how
478            the dialog is constructed so that we can support layers that
479            do not have classifications.
480            (Classifier._OnTry): Only build a classification if the layer
481            supports one.
482    
483            * Thuban/UI/legend.py: Change all checks that a layer is an
484            instance of Layer into checks against BaseLayer.
485            (LegendTree.__FillTreeLayer): Only add children to a branch if
486            the layer supports classification.
487    
488            * Thuban/UI/mainwindow.py (MainWindow.NewSession,
489            MainWindow.OpenSession): Don't proceed with an action if the
490            user chooses Cancel when they are asked to save changes.
491            (MainWindow.AddRasterLayer): New. Open a dialog to allow the
492            user to select an image file. Create a new RasterLayer and add
493            it to the map.
494    
495            * Thuban/UI/renderer.py (MapRenderer.render_map): Add support
496            for rendering RasterLayer layers.
497            (MapRenderer.draw_raster_layer): Actually method that calls
498            the GDALWarp python wrapper and constructs an image from the
499            data returned.
500    
501            * Thuban/UI/tableview.py (LayerTableFrame.__init__): Change the
502            Choices symbols to match those used in the table query method.
503            Replace deprecated method calls on table with new method names.
504    
505            * Thuban/UI/view.py (MapCanvas.set_view_transform): Try to limit
506            how small the scale can get. This still needs more testing.
507    
508            * extensions/thuban/bmpdataset.cpp: New, but copied from GDAL.
509            Provides a driver to output in .bmp format.
510    
511            * extensions/thuban/cpl_mfile.cpp, extensions/thuban/cpl_mfile.h:
512            New. Provides IO routines which write to memory, rather than a file.
513    
514            * extensions/thuban/gdalwarp.cpp: New, but basically a direct copy
515            of the gdalwarp utility provided in GDAL. Added function calls
516            that can be accessed from python.
517    
518            * Data/iceland_sample_raster.thuban: New. Sample file that uses
519            a raster layer.
520    
521            * Data/iceland/island.tfw, Data/iceland/island.tif: New. Raster
522            layer image data.
523    
524            * Doc/thuban.dtd: Added rasterlayer attribute definition.
525    
526            * test/test_layer.py, test/test_load.py, test/test_save.py: Added
527            tests associated with the raster layer code.
528    
529            * test/test_transientdb.py
530            (TestTransientTable.test_auto_transient_table_query): Added a test
531            for using a Column object as the "right" parameter to a query.
532    
533    2003-05-19  Frank Koormann  <[email protected]>
534    
535            * Thuban/version.py (get_changelog_date):
536            Catch exceptions if ChangeLog does not exist.
537    
538            * Thuban/UI/view.py (MapCanvas.Export): Bugfix
539    
540    2003-05-19  Frank Koormann  <[email protected]>
541    
542            Extended version information for Thuban
543    
544            * Thuban/version.py: New, version information for Thuban: Last
545            modification date and last ChangeLog entry date.
546    
547            * Thuban/UI/mainwindow.py (MainWindow.About()): Extended version
548            information: Display Thuban, wxPython and Python version.
549    
550    2003-05-16  Bernhard Herzog  <[email protected]>
551    
552            * Thuban/Model/save.py: Remove some unused imports including the
553            __future__ import for nested_scopes as Thuban relies on Python 2.2
554            now.
555            (XMLWriter.encode): Remove the special case for a None argument.
556            In the saver encode is always called with a string argument.
557    
558    2003-05-16  Bernhard Herzog  <[email protected]>
559    
560            * Thuban/UI/__init__.py: Remove the work-around for the locale bug
561            in wxPython (at least when usinvg wxGTK) prior to 2.4. The symptom
562            of the bug was that e.g. float("1.2") would fail. Thuban now
563            requires 2.4.x.
564            
565    2003-05-16  Frank Koormann   <[email protected]>
566    
567            Printing enhancement and WMF export (under Win32)
568    
569            * Thuban/UI/renderer.py (ExportRenderer): New, derived from
570            ScreenRenderer. Renders Map, Legend and Scalebar for export.
571            (PrinterRenderer): New, derived from ExportRenderer. Replaces the old
572            PrintRender.
573    
574            * Thuban/UI/view.py (MapPrintout.__init__): Enhanced parameter set
575            to fullfil information needed for PrinterRenderer.
576            (MapCanvas.Export): New. Export Map (currently only to WMF on Win32).
577            (MapCanvas.Print): Adapted to new MapPrintout.
578            (OutputTransform): General calculations to transform from canvas
579            coordinates to export/printing devices.
580    
581            * Thuban/UI/mainwindow.py (MainWindow.ExportMap()): New. Added also
582            new method_command to call ExportMap, with platform dependency (only
583            __WXMSW__)
584      
585            * Thuban/UI/scalebar.py (ScaleBar.DrawScaleBar): Position and Size
586            of scalebar drawing area as new parameters.
587            
588            * Thuban/Model/scalebar.py (roundInterval): round long instead of int
589    
590            * Thuban/UI/legend.py (ScalebarBitmap.__SetScale):
591            Update to extended scalebar.DrawScalebar header.
592    
593            * test/test_export.py: New, test Thuban.UI.view.OutputTransform()
594    
595            * test/test_scalebar.py: Made test executable as standalone.
596    
597    2003-05-16  Bernhard Herzog  <[email protected]>
598    
599            * Thuban/Model/table.py (Table): Remove this compatibility alias
600            for DBFTable.
601    
602            * test/test_table.py: Import DBFTable as Table because that alias
603            doesn't exist anymore.
604    
605            * Thuban/UI/classgen.py: Remove some unused imports
606    
607    2003-05-14  Jonathan Coles   <[email protected]>
608    
609            * Thuban/Model/classgen.py (ClassGenerator.GenSingletonsFromList):
610            Fix docstring.
611            (ClassGenerator.GenUniformDistribution): Fix spelling of method name.
612            (ClassGenerator.GenQuantiles): Use the left/right brackets and min/max
613            values of the supplied range to determine the beginning and end
614            bounds of the generated classes.
615    
616            * Thuban/Model/range.py (Range.number_re): Now accepts floats that
617            do not have a leading 0 (.5 is now accepted as well as 0.5).
618    
619            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Fix name of method
620            call to ClassGenerator.GenUniformDistribution.
621    
622            * Thuban/UI/projdialog.py (ProjFrame.__do_layout): Fix Windows
623            layout bug with the 'Projection' label.
624    
625            * test/support.py (FloatTestCase): New. Needed for the Range tests.
626    
627            * test/test_range.py: New. Imported from SciParam.
628    
629    2003-05-12  Jonathan Coles   <[email protected]>
630    
631            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): Replace call
632            to table.UniqueValues() with calls that retrieve all the values
633            from the table. This will need to be replaced by a method on table
634            which can simply return the list (perhaps more efficiently).
635    
636    2003-05-12  Jonathan Coles   <[email protected]>
637    
638            The return value of ClassGenerator.CalculateQuantiles has changed.
639            Refer to the documentation for details.
640    
641            * test/test_classgen.py: Modified Quantile tests to use the
642            new return values.
643    
644            * Thuban/Model/classgen.py
645            (ClassGenerator.GenQuantiles): Add comments describing the parameters,
646            use new return values from CalculateQuantiles to produce the correct
647            range bounds in the Classification.
648            (ClassGenerator.CalculateQuantiles): Add more comments describing
649            the return values and parameters. Make minor adjustments to improve
650            the legibility of the code. Fix problem with adjusted not being set
651            in most cases.
652    
653  2003-05-12  Frank Koormann <[email protected]>  2003-05-12  Frank Koormann <[email protected]>
654                    
655          * Thuban/Model/save.py (XMLWriter.encode()): Explicite call to unicode          * Thuban/Model/save.py (XMLWriter.encode()): Explicite call to unicode
# Line 5  Line 657 
657    
658  2003-05-09  Jonathan Coles   <[email protected]>  2003-05-09  Jonathan Coles   <[email protected]>
659    
660            * test/test_classgen.py: New. Tests the Quantile algorithm.
661    
662            * Thuban/Model/classgen.py (ClassGenerator.CalculateQuantiles):
663            Clean up debugging statement, add comments, fix a small bug in the
664            returned adjusted percentiles.
665            
666    2003-05-09  Jonathan Coles   <[email protected]>
667    
668          Introduces Range class from SciParam into the ClassGroupRange class,          Introduces Range class from SciParam into the ClassGroupRange class,
669          and such ranges can now be saved and loaded from disk.          and such ranges can now be saved and loaded from disk.
670    

Legend:
Removed from v.893  
changed lines
  Added in v.1046

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26