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

Legend:
Removed from v.889  
changed lines
  Added in v.1038

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26