/[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 359 by bh, Mon Dec 9 10:32:51 2002 UTC revision 538 by bh, Fri Mar 14 20:45:39 2003 UTC
# Line 1  Line 1 
1    2003-03-14  Bernhard Herzog  <[email protected]>
2    
3            * test/test_command.py: Run the tests when the module is run as a
4            script
5    
6    2003-03-14  Bernhard Herzog  <[email protected]>
7    
8            Implement selection of multiple selected shapes in the same layer:
9    
10            - Introduce a new class to hold the selection. This basically
11              replaces the interactor which was nothing more than the
12              selection anyway. A major difference is of course that the new
13              selection class supports multiple selected shapes in one layer
14            
15            - Move the object that represents the selection from the
16              application to the canvas. The canvas is a better place than the
17              application because the selection represents which shapes and
18              layer of the map displayed by the canvas are selected and
19              affects how the map is drawn.
20    
21            - Make the selection and its messages publicly available through
22              the mainwindow.
23    
24            - The non-modal dialogs do not get a reference to the interactor
25              anymore as they can simply refer to their parent, the
26              mainwindow, for the what the interactor had to offer.
27    
28            * Thuban/UI/selection.py: New module with a class to represent the
29            selection.
30    
31            * Thuban/UI/messages.py (SELECTED_TABLE, SELECTED_MAP): Remove
32            these unused messages
33    
34            * Thuban/UI/application.py (ThubanApplication.OnInit)
35            (ThubanApplication.OnExit, ThubanApplication.SetSession): The
36            interactor is gone now.
37            (ThubanApplication.CreateMainWindow): There is no interactor
38            anymore so we pass None as the interactor argument for now for
39            compatibility.
40    
41            * Thuban/UI/view.py (MapCanvas.delegated_messages)
42            (MapCanvas.Subscribe, MapCanvas.Unsubscribe): In Subscribe and
43            Unsubscribe, delegate messages according to the delegated_messages
44            class variable.
45            (MapCanvas.__getattr__, MapCanvas.delegated_methods): Get some
46            attributes from instance variables as described with the
47            delegated_methods class variable.
48            (MapCanvas.__init__): New instance variable selection holding the
49            current selection
50            (MapCanvas.do_redraw): Deal with multiple selected shapes. Simply
51            pass them on to the renderer
52            (MapCanvas.SetMap): Clear the selection when a different map is
53            selected.
54            (MapCanvas.shape_selected): Simple force a complete redraw. The
55            selection class now takes care of only issueing SHAPES_SELECTED
56            messages when the set of selected shapes actually does change.
57            (MapCanvas.SelectShapeAt): The selection is now managed in
58            self.selection
59    
60            * Thuban/UI/mainwindow.py (MainWindow.delegated_messages)
61            (MainWindow.Subscribe, MainWindow.Unsubscribe): In Subscribe and
62            Unsubscribe, delegate messages according to the delegated_messages
63            class variable.
64            (MainWindow.delegated_methods, MainWindow.__getattr__): Get some
65            attributes from instance variables as described with the
66            delegated_methods class variable.
67            (MainWindow.__init__): The interactor as ivar is gone. The
68            parameter is still there for compatibility. The selection messages
69            now come from the canvas.
70            (MainWindow.current_layer, MainWindow.has_selected_layer):
71            Delegate to the the canvas.
72            (MainWindow.LayerShowTable, MainWindow.Classify)
73            (MainWindow.identify_view_on_demand): The dialogs don't need the
74            interactor parameter anymore.
75    
76            * Thuban/UI/tableview.py (TableFrame.__init__)
77            (LayerTableFrame.__init__, LayerTableFrame.OnClose)
78            (LayerTableFrame.row_selected): The interactor is gone. It's job
79            from the dialog's point of view is now done by the mainwindow,
80            i.e. the parent. Subscribe to SHAPES_SELECTED instead
81            of SELECTED_SHAPE
82            
83            * Thuban/UI/dialogs.py (NonModalDialog.__init__): The interactor
84            is gone. It's job from the dialog's point of view is now done by
85            the mainwindow, i.e. the parent.
86            
87            * Thuban/UI/classifier.py (Classifier.__init__): The interactor is
88            gone. It's job from the dialog's point of view is now done by the
89            mainwindow, i.e. the parent.
90    
91            * Thuban/UI/tree.py (SessionTreeView.__init__): The interactor is
92            gone. It's job from the dialog's point of view is now done by the
93            mainwindow, i.e. the parent.
94            (SessionTreeCtrl.__init__): New parameter mainwindow which is
95            stored as self.mainwindow. The mainwindow is need so that the tree
96            can still subscribe to the selection messages.
97            (SessionTreeCtrl.__init__, SessionTreeCtrl.unsubscribe_all)
98            (SessionTreeCtrl.update_tree, SessionTreeCtrl.OnSelChanged): The
99            selection is now accessible through the mainwindow. Subscribe to
100            SHAPES_SELECTED instead of SELECTED_SHAPE
101    
102            * Thuban/UI/identifyview.py (IdentifyView.__init__): Use the
103            SHAPES_SELECTED message now.
104            (IdentifyView.selected_shape): Now subscribed to SHAPES_SELECTED,
105            so deal with multiple shapes
106            (IdentifyView.__init__, IdentifyView.OnClose): The interactor is
107            gone. It's job from the dialog's point of view is now done by the
108            mainwindow, i.e. the parent.
109    
110            * Thuban/UI/controls.py (RecordListCtrl.fill_list): The second
111            parameter is now a list of shape ids.
112            (RecordTable.SetTable): The second parameter is now a list of
113            indices.
114    
115            * Thuban/UI/renderer.py (ScreenRenderer.RenderMap): Rename the
116            selected_shape parameter and ivar to selected_shapes. It's now a
117            list of shape ids.
118            (MapRenderer.draw_label_layer): Deal with multiple selected
119            shapes. Rearrange the code a bit so that the setup and shape type
120            distinctions are only executed once.
121    
122            * test/test_selection.py: Test cases for the selection class
123    
124    2003-03-11  Jonathan Coles   <[email protected]>
125    
126            * Thuban/Model/load.py: Temporary fix so that the xml reader
127            doesn't cause Thuban to crash.
128    
129            * Thuban/Model/layer.py: Handle the cyclic references between
130            a layer and its classification better, and be sure to disconnect
131            the classification from the layer when the layer is destroyed
132            so that we don't maintain a cyclic reference that may not be
133            garbage collected.
134    
135            * Thuban/Model/classification.py: See comment for layer.py.
136    
137    2003-03-12  Jan-Oliver Wagner <[email protected]>
138    
139            * HOWTO-Release: New. Information on the steps for releasing
140            a new version of Thuban.
141    
142    2003-03-11  Jonathan Coles   <[email protected]>
143    
144            * Thuban/UI/classifier.py: Add normal border to SelectPropertiesDialog.
145            Use True instead of true.
146            (Classifier): Should have a single panel in which all the controls lie.
147    
148            * Thuban/UI/proj4dialog.py: Add normal border.
149    
150            * Thuban/UI/tree.py: Fixed problem with bad item images under Windows.
151    
152            * Thuban/UI/mainwindow.py: Use True instead of true.
153    
154            * setup.py: Update some definitions to use wxWindows2.4 files
155    
156            * Data/iceland_sample_class.thuban: Fixed file so that the
157            field_type information is present.
158    
159    2003-03-10  Jonathan Coles   <[email protected]>
160    
161            * Thuban/UI/classifier.py (Classifier.__init__): Make the
162            field type label grow so that when the text changes the
163            size is updated correctly. This may be a wxWindows bug.
164    
165    2003-03-10  Jonathan Coles   <[email protected]>
166    
167            * Thuban/UI/application.py: Changed SESSION_CHANGED to
168            SESSION_REPLACED.
169    
170            * Thuban/UI/classifier.py: Wrap text with _().
171            (ClassGrid.CreateTable): Set dimensions and size hints here,
172            instead of in Reset, so we only set the size once.
173    
174            * Thuban/UI/dialogs.py: Don't need Shutdown(); just use Close()!
175    
176            * Thuban/UI/mainwindow.py (MainWindow.prepare_new_session):
177            Call Close() instead of Shutdown().
178    
179            * Thuban/UI/messages.py: Changed SESSION_CHANGED to SESSION_REPLACED.
180    
181            * Thuban/UI/tree.py: Changed SESSION_CHANGED to SESSION_REPLACED.
182            Go back to using OnClose() instead of Shutdown().
183    
184    2003-03-10  Jonathan Coles   <[email protected]>
185    
186            * Thuban/UI/classifier.py (Classifier): SelectField() needed
187            to know the old field index as well as the new one.
188    
189    2003-03-10  Jonathan Coles   <[email protected]>
190    
191            * Thuban/UI/classifier.py (Classifier): Use __SelectField()
192            to correctly set the table information and call this from
193            __init__ and from _OnFieldSelect so that all the information
194            is up to date when the dialog opens and when a field is changed.
195    
196    2003-03-10  Jonathan Coles   <[email protected]>
197    
198            * Thuban/Model/classification.py (Classification): Don't use
199            layer's message function directly, use the ClassChanged() method
200            when then classification changes. SetField/SetFieldType/SetLayer
201            must keep the information about field name and field type in
202            sync when an owning layer is set or removed.
203    
204            * Thuban/Model/layer.py: Added ClassChanged() so that the
205            classification can tell the layer when its data has changed.
206            (Layer.SetClassification): Accepts None as an arguement to
207            remove the current classification and correctly handles
208            adding a new classification.
209    
210            * Thuban/Model/load.py: Comment out print statement
211    
212            * test/test_classification.py, test/test_save.py: New and
213            improved tests.
214    
215    2003-03-07  Jonathan Coles   <[email protected]>
216    
217            * Thuban/Model/classification.py: Implemented __copy__ and
218            __deepcopy__ for ClassGroup* and ClassGroupProperites so
219            they can easily be copied by the classifier dialog.
220            (ClassGroupProperites.__init__): The default line color should
221            have been Color.Black.
222    
223            * Thuban/UI/classifier.py: Setting and Getting table values now
224            uses a consistent set of functions.
225            (Classifier): Now non-modal. Has field type label which changes
226            as the field changes. Keep track of buttons in a list so that
227            we can enable/disable the buttons when the None field is selected.
228            (SelectPropertiesDialog): Add buttons to make the colors transparent.
229    
230            * Thuban/UI/dialogs.py (NonModalDialog.Shutdown): New method which
231            does what OnClose did, but can be called by the application to
232            close a window. Needed when a session changes, and we have to
233            close the classifier windows.
234    
235            * Thuban/UI/mainwindow.py (MainWindow.prepare_new_session):
236            Shuts down open dialogs. Used when a new session is created
237            or a session is opened.
238            (MainWindow.SaveSession): Should only call application.SaveSession()
239            if we don't call SaveSessionAs first.
240            (MainWindow.Classify): Allow different classifier dialogs for
241            different layers.
242    
243            * Thuban/UI/tree.py (SessionTreeView): Remove OnClose and let
244            the parent class handle it. Add Shutdown() to unsubscibe from
245            event notification and call the parent Shutdown(). This was
246            necessary so the application can close the tree window.
247    
248    2003-03-06  Jonathan Coles   <[email protected]>
249    
250            * Thuban/Model/classification.py: Minor documentation changes,
251            Addition of __eq__ and __ne__ methods.
252            (Classification.SetLayer): prevent recursion between this method
253            and Layer.SetClassification().
254    
255            * Thuban/Model/color.py: Addition of __eq__ and __ne__ methods.
256    
257            * Thuban/Model/layer.py (SetClassification): prevent recursion
258            between this method and Classification.SetLayer().
259    
260            * test/test_classification.py, test/test_load.py,
261            test/test_session.py: Fixed and added tests for the classification
262            classes.
263    
264    2003-03-06  Bernhard Herzog  <[email protected]>
265    
266            * Thuban/UI/classifier.py (ClassGrid.__init__)
267            (ClassGrid.CreateTable): Move the SetSelectionMode call to
268            CreateTable because otherwise it triggers an assertion in
269            wxPython/wxGTK 2.4.
270    
271    2003-03-05  Jonathan Coles   <[email protected]>
272    
273            * Thuban/common.py: Move FIELDTYPE constants back to table.py.
274    
275            * Thuban/Model/load.py: import FIELDTYPE constants from table.
276    
277            * Thuban/UI/classifier.py: import FIELDTYPE constants from table.
278    
279            * Thuban/Model/table.py: Put FIELDTYPE constants back.
280    
281    2003-03-05  Jonathan Coles   <[email protected]>
282    
283            * Thuban/UI/classifier.py: Added class documentation.
284            Fixed RTbug #1713, #1714. Added Move[Up|Down] buttons.
285            Store just the groups in the table and generate the other
286            column information when it is requested. Add "None" field
287            to pull-down to select no classification.
288    
289            * Thuban/common.py: Moved FIELDTYPE constants from table.py
290            (Str2Num): Only catch ValueError exceptions.
291    
292            * Thuban/Model/classification.py: Class documentation. Renaming
293            of methods with Stroke to Line. Groups are stored in a single
294            list with the default as the first element. Groups are searched
295            in the order they appear in the list.
296    
297            * Thuban/Model/color.py: Documentation.
298    
299            * Thuban/Model/layer.py (Layer): Add GetFieldType to retreive
300            the kind of data represented by a field.
301    
302            * Thuban/Model/load.py (ProcessSession): Use proper string
303            conversion function; fixes RTbug #1713.
304    
305            * Thuban/Model/save.py (Saver): Store field type information.
306    
307            * Thuban/Model/table.py: Put FIELDTYPE constants in common.py.
308            (Table): Add field_info_by_name() to retrieve field information
309            by specifying the field name, not the number.
310    
311            * Thuban/UI/mainwindow.py: Function name changes.
312    
313            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Only
314            get the layer classification once. Don't try to classify
315            values when the field is None: just use the default properties.
316    
317            * Thuban/UI/view.py: Function name changes.
318    
319            * Doc/thuban.dtd: Add field_type attribute to a classification.
320    
321    2003-03-04  Bernhard Herzog  <[email protected]>
322    
323            * Doc/thuban.dtd: Use correct syntax for optional attributes. Make
324            the fill and stroke layer attributes optional with suitable
325            default values. Add the stroke_width layer attribute. Use correct
326            syntax for empty elements. Make the attribute list for labels
327            refer to the label element.
328    
329    2003-03-04  Bernhard Herzog  <[email protected]>
330    
331            * setup.py (thuban_build_py.build): Add a comment about distutils in
332            Python 2.3 containing some of the functionality we implement in
333            setup.py ourselves.
334    
335            * Thuban/UI/classifier.py (ClassGrid.__init__): Set the table
336            before the selection mode. Doing it the other way round triggers
337            an assertion in wxWindows.
338    
339            * Thuban/Model/save.py (escape): Fix typo in doc-string
340    
341            * Thuban/Model/classification.py: Remove unnecessary wxPython
342            import
343    
344    2003-03-04  Jonathan Coles   <[email protected]>
345    
346            * Thuban/Model/classification.py (ClassGroupRange.GetProperties):
347            Parameter 'value' should default to None.
348    
349            * Thuban/UI/mainwindow.py: Use Layer.GetClassification() since
350            the class attribute __classification is now private.
351    
352            * Thuban/UI/classifier.py (ClassGrid): Moved OnCellDClick() from
353            Classifier to ClassGrid. Added support for removing selected rows,
354            which including code for keeping track of when cells are selected,
355            and deselected.
356            (ClassTable): Support for added/removing rows. Fixed a problem
357            with __ParseInput whereby it would not allow strings (only numbers)
358            to be entered.
359            (Classifier): Added button and supporting code for removing
360            selected rows.
361    
362    2003-02-27  Jonathan Coles   <[email protected]>
363    
364            * Thuban/common.py: Moved color conversion functions into
365            Thuban/UI/common.py.
366            (Str2Num): Now converts the float (not the string) to a long/int
367            so that an exception isn't thrown.
368    
369            * Thuban/UI/common.py: Common functions used in several UI modules
370    
371            * Thuban/Model/classification.py: Changed the class hierarchy
372            so that a Classification consists of Groups which return
373            Properties when a value matches a Group.
374    
375            * Thuban/Model/layer.py: Fixed name resolution problem.
376    
377            * Thuban/Model/load.py: Use new Classification and Group functions.
378    
379            * Thuban/Model/save.py (Saver.write_attribs): Fixes a test case
380            failure.
381            (Saver.write_classification): Use new Classification and Group
382            functions.
383    
384            * Thuban/UI/classifier.py: Changes to use new Classification and Group
385            functions. Fix to create a tuple with a single value instead of
386            simply returning the value.
387    
388            * Thuban/UI/renderer.py: Use new Classification and Group functions.
389            Use common.py functions.
390    
391            * Thuban/UI/tree.py: Use common.py functions.
392            
393            * test/test_classification.py: Use new Classification and Group
394            classes.
395    
396    2003-02-24  Jonathan Coles   <[email protected]>
397    
398            * Thuban/common.py (Color2wxColour, wxColour2Color): Conversion
399            functions from Thuban color objects to wxWindow colour objects.
400    
401            * Thuban/Model/classification.py (Classification): Renamed
402            GetProperties() to GetClassData(). Used the new iterator
403            in TreeInfo().
404            (ClassIterator): Iterator implementation to iterate over the
405            ClassData objects in a classification object.
406    
407            * Thuban/Model/save.py (Saver.write_classificaton): Uses
408            the new iterator to save the classification information.
409    
410            * Thuban/UI/classifier.py (SelectPropertiesDialog): Support
411            for changing the stroke and fill colors and previewing the
412            changes.
413    
414            * Thuban/UI/mainwindow.py (MainWindow.OpenSession,
415            MainWindow.SaveSessionAs): Text string changes so the dialogs
416            have more meaningful titles.
417    
418            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Change
419            Classification method name from GetProperties to GetClassData.
420    
421            * Thuban/UI/view.py (MapCanvas.find_shape_at): Use method calls
422            instead of accessing now non-existent class variables.
423    
424    2003-02-24  Bernhard Herzog  <[email protected]>
425    
426            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Remove
427            unneeded Shape() call. Rendering is substantially faster without
428            it and it avoids some problems with broken shape files.
429    
430    2003-02-20  Frank Koormann   <[email protected]>
431    
432            Force minimal size of identify and label dialogs. The autosizing
433            looked too ugly.
434    
435            * Thuban/UI/controls.py (RecordListCtrl): Set minimal width for columns.
436            * Thuban/UI/labeldialog.py (LabelDialog.dialog_layout):
437            Set size of listctrl.
438            * Thuban/UI/identifyview.py (IdentifyView.__init__):
439            Set size of dialog.
440    
441    2003-02-19  Jonathan Coles   <[email protected]>
442    
443            * test/test_classification.py, test/test_layer.py,
444            test/test_load.py, test/test_map.py, test/test_session.py:
445            Updated the tests to use the new functions that are in the
446            respective classes.
447    
448            * Thuban/Model/classification.py (Classification):
449            Uses the new ClassData* classes. Modification messages are
450            passed up to the parent layer (if it exists).
451            (ClassData): New class to encapsulate the common data in each
452            classification property.
453            (ClassDataDefault): Represents the Default class. data.
454            (ClassDataPoint): Represents a single class. data point
455            (ClassDataRange): Represents a class. range
456            (ClassDataMap): Represents a class. map (unused).
457    
458            * Thuban/Model/color.py: Added Color.None to represent something
459            with no color. Color.Black represents the color black.
460            (NoColor): Helper class derived from Color to represent something
461            with no color.
462    
463            * Thuban/Model/layer.py (Layer): Removed references to fill, stroke,
464            stroke_width attributes. Made the 'classification' attribute private.
465            New methods for setting/getting the classification.
466    
467            * Thuban/Model/load.py (ProcessSession): Use new methods on Layer
468            to get the classifcation and use the new ClassData* classes to
469            hold the classification data. Use Str2Num to convert numbers
470            properly.
471    
472            * Thuban/Model/save.py (Saver): Use new Color and Classification
473            methods
474    
475            * Thuban/UI/classifier.py (ClassGrid): New class to represent a
476            custom grid.
477            (ClassTable): Support for editing Values and Labels and for
478            changing what type (point or range) of data is stored in each
479            property based on how the user enters the data.
480            (Classifier): Support for saving the new classifications and
481            launching the dialog to edit a property.
482            (SelectPropertiesDialog): New class for editing the visual
483            properties of a classification (stroke color, width, and fill color)
484            (ClassPreviewer): Took the Draw method from ClassRenderer and
485            made most of it into this new class. Intend to use this class in
486            the SelectPropertiesDialog for previewing changes.
487    
488            * Thuban/UI/renderer.py: Use new Color and Classification methods.
489    
490            * Thuban/UI/tree.py: Formatting changes.
491    
492            * Doc/thuban.dtd: Add 'label' element
493    
494            * Thuban/common.py: New. Contains common routines used throughout
495            the code.
496            (Str2Num): Takes a string and converts it to the "best" type of
497            number.
498    
499    2003-02-14  Bernhard Herzog  <[email protected]>
500    
501            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Make sure that the
502            dragging flag is always set to 0 even when the tool implementation
503            raises an exception
504    
505    2003-02-11  Bernhard Herzog  <[email protected]>
506    
507            * Thuban/UI/application.py (ThubanApplication.splash_screen): New
508            method to create a splash screen.
509            (ThubanApplication.ShowMainWindow): New. Show the main window.
510            Needed so the splash screen can display the mainwindow
511            (ThubanApplication.OnInit): Call the
512            new splash_screen method to determine whether the application
513            should display a splash screen. If it displays a splash screen do
514            not immediately show the main window.
515    
516    2003-02-11  Jonathan Coles  <[email protected]>
517    
518            * Thuban/Model/classification.py: Added import line to fix
519            feature conflicts between running on python2.2 and python2.1.
520    
521            * Thuban/UI/classifier.py (ClassTable): Didn't need to hang
522            onto the clinfo parameter, so removed the deepcopy().
523    
524    2003-02-10  Jonathan Coles  <[email protected]>
525    
526            * Thuban/Model/save.py (Saver.open_element, Saver.close_element):
527            Added element_open variable to track opening and closing of tags
528            so that tags that don't span more than one line are closed with
529            /> instead of </tag_name>. Use the GetDefault*() methods of
530            the Classification class.
531    
532            * Thuban/Model/classification.py (Classificaton): Added set and
533            get methods for the default data. The class also takes a layer
534            reference so that modification messages can be sent. Fixed the
535            methods to use the new ClassData class.
536            (ClassData): New class to encapsulate the classification data
537    
538            * Thuban/Model/layer.py (Layer): Remove the
539            Set[Fill|Stroke|StrokeWidth]() methods. Code should call the
540            SetDefault*() methods on the layer's classification object.
541            (Layer.__init__): Use the new SetDefault*() methods in the
542            Classification class.
543    
544            * Thuban/Model/load.py (ProcessSession): Use the new ClassData
545            object instead of a dictionary.
546    
547            * Thuban/UI/classifier.py (ClassRenderer): New class to
548            draw the classifications in the dialog box's table.
549            (Classifier): Modified to use the ClassRenderer class.
550    
551            * Thuban/UI/mainwindow.py (MainWindow): Use the SetDefault*()
552            methods of the Classification class.
553    
554            * Thuban/UI/renderer.py (MapRenderer): Use the Get*() methods
555            of the ClassData class.
556    
557            * test/test_classification.py, test/test_layer.py,
558            test/test_map.py, test/test_session.py: Fix the tests to work
559            with the above code changes.
560    
561    2003-02-03  Jonathan Coles  <[email protected]>
562    
563            * Thuban/Model/classification.py (Classification): Added getNull()
564            to return the NullData reference
565    
566            * Thuban/Model/layer.py (Layer.SetFill, Layer.SetStroke,
567            Layer.SetStrokeWidth): Modified these functions to change the
568            null data in the classification rather than keep these values
569            directly in the Layer class. Menu options to change these values
570            work again.
571    
572    2003-01-28  Jonathan Coles  <[email protected]>
573    
574            * Thuban/UI/classifier.py (Classifier): Resolved merging conflicts.
575            Fixed crashing problem on some systems. Dialog box shows
576            classification data.
577    
578            * Thuban/UI/tree.py (SessionTreeCtrl.add_items): Handle drawing
579            Colors in the tree view.
580    
581            * Thuban/Model/layer.py (Layer.TreeInfo): Added a call to build
582            the tree info for classifications. Commented out unnecessary lines.
583    
584            * Thuban/Model/classification.py (Classification.TreeInfo): New
585            function to add information about the classification into the
586            tree view.
587    
588    2003-01-27  Jan-Oliver Wagner <[email protected]>
589    
590            * Thuban/__init__.py (_): New.
591    
592            * Thuban/Model/classification.py, Thuban/Model/extension.py,
593            Thuban/Model/layer.py, Thuban/Model/load.py, Thuban/Model/map.py,
594            Thuban/Model/session.py, Thuban/UI/application.py,
595            Thuban/UI/classifier.py, Thuban/UI/context.py, Thuban/UI/controls.py,
596            Thuban/UI/identifyview.py, Thuban/UI/labeldialog.py,
597            Thuban/UI/mainwindow.py, Thuban/UI/menu.py, Thuban/UI/proj4dialog.py,
598            Thuban/UI/renderer.py, Thuban/UI/tree.py, Thuban/Lib/connector.py,
599            Thuban/Lib/fileutil.py: Replace user string by _() for i18n.
600    
601    2003-01-27  Jonathan Coles  <[email protected]>
602    
603            * Thuban/Model/layer.py: Classification initialization calls.
604    
605            * Thuban/Model/classification.py: Created class to encapsulate
606            a layer classification. Supports specific data points and
607            ranges.
608    
609            * Thuban/Model/load.py: Added support for loading classification
610            information.
611    
612            * Thuban/Model/save.py: Added support for saving classification
613            information.
614    
615            * Thuban/UI/classifier.py: Initial class for a dialog box for
616            specifying classification information.
617    
618            * Thuban/UI/mainwindows.py: Support for opening the classifier
619            dialog.
620    
621            * Thuban/UI/renderer.py: Support for drawing a layer with the
622            classification information.
623    
624            * Data/iceland_sample_class.thuban: iceland_sample with
625            classification data.
626    
627            * test/test_classification: Tests for the Classification class.
628    
629  2002-12-09  Bernhard Herzog  <[email protected]>  2002-12-09  Bernhard Herzog  <[email protected]>
630    
631            * test/test_command.py: New. Tests for the command classes.
632    
633          * Thuban/UI/command.py (ToolCommand): New class for tool commands.          * Thuban/UI/command.py (ToolCommand): New class for tool commands.
634          (Command.IsTool): New method to distinguish between command          (Command.IsTool): New method to distinguish between command
635          switching tools and other commands.          switching tools and other commands.
# Line 30  Line 660 
660          * Thuban/UI/mainwindow.py: Altered the order of tools in the          * Thuban/UI/mainwindow.py: Altered the order of tools in the
661          toolbar: First now are all navigation tools (Zoom In/Out, Pan,          toolbar: First now are all navigation tools (Zoom In/Out, Pan,
662          Full Extent).          Full Extent).
663        
664  2002-10-23  Bernhard Herzog  <[email protected]>  2002-10-23  Bernhard Herzog  <[email protected]>
665    
666          * setup.py (setup call): version now 0.1.3          * setup.py (setup call): version now 0.1.3
# Line 141  Line 771 
771          * Thuban/UI/mainwindow.py (MainWindow.OnClose): Unsubscribe          * Thuban/UI/mainwindow.py (MainWindow.OnClose): Unsubscribe
772          VIEW_POSITION          VIEW_POSITION
773    
774  2002-09-04  Frank Koormann   <[email protected]>  2002-09-04  Frank Koormann  <[email protected]>
775    
776          * Resources/Bitmaps/fullextent.xpm: Updated Icon (removed "potatoe")          * Resources/Bitmaps/fullextent.xpm: Updated Icon (removed "potatoe")
777    
# Line 228  Line 858 
858    
859          * Thuban/Model/table.py (Table.write_record): New method to write          * Thuban/Model/table.py (Table.write_record): New method to write
860          records.          records.
861          (Table.__init__): Open the DBF file for writing too.          (Table.__init__): Open the DBF file for writing too.
862    
863          * Thuban/UI/controls.py (RecordTable.SetValue): Write the value          * Thuban/UI/controls.py (RecordTable.SetValue): Write the value
864          into the underlying table.          into the underlying table.
# Line 266  Line 896 
896          * setup.py (ThubanInstall.run): Don't repr install_lib_orig          * setup.py (ThubanInstall.run): Don't repr install_lib_orig
897          because thubaninit_contents will do it for us.          because thubaninit_contents will do it for us.
898    
899  2002-08-16      Jan-Oliver Wagner <[email protected]>  2002-08-16  Jan-Oliver Wagner <[email protected]>
900    
901          * Thuban/UI/mainwindow.py: menu item 'show session tree' now disable if          * Thuban/UI/mainwindow.py: menu item 'show session tree' now disable if
902          tree window already open          tree window already open
# Line 394  Line 1024 
1024          * Thuban/UI/tree.py: We can now simply subscribe to the session's          * Thuban/UI/tree.py: We can now simply subscribe to the session's
1025          CHANGED channel to be informed of changes.          CHANGED channel to be informed of changes.
1026          (SessionTreeCtrl.session_channels): Not needed any longer.          (SessionTreeCtrl.session_channels): Not needed any longer.
1027          (SessionTreeCtrl.unsubscribe_all, SessionTreeCtrl.session_changed):          (SessionTreeCtrl.unsubscribe_all, SessionTreeCtrl.session_changed):
1028          Only have to (un)subscribe CHANGED          Only have to (un)subscribe CHANGED
1029    
1030          * Thuban/Model/map.py (Map.TreeInfo): Deal better with empty maps.          * Thuban/Model/map.py (Map.TreeInfo): Deal better with empty maps.
# Line 455  Line 1085 
1085          * Thuban/Model/layer.py (Layer.TreeInfo),          * Thuban/Model/layer.py (Layer.TreeInfo),
1086          Thuban/Model/extension.py (Extension.TreeInfo),          Thuban/Model/extension.py (Extension.TreeInfo),
1087          Thuban/Model/map.py (Map.TreeInfo),          Thuban/Model/map.py (Map.TreeInfo),
1088          Thuban/Model/session.py (Session.TreeInfo):          Thuban/Model/session.py (Session.TreeInfo):
1089          Add TreeInfo methods to implement the new tree view update scheme          Add TreeInfo methods to implement the new tree view update scheme
1090    
1091  2002-07-16  Bernhard Herzog  <[email protected]>  2002-07-16  Bernhard Herzog  <[email protected]>
# Line 536  Line 1166 
1166          * setup.py: In the setup call, make sure that the library          * setup.py: In the setup call, make sure that the library
1167          directories are under $prefix/lib not directly under $prefix.          directories are under $prefix/lib not directly under $prefix.
1168    
1169  2002-06-20      Jan-Oliver Wagner <[email protected]>  2002-06-20  Jan-Oliver Wagner <[email protected]>
1170    
1171          * Thuban/Model/extension.py: new module to handle extension objects.          * Thuban/Model/extension.py: new module to handle extension objects.
1172          * Thuban/Model/messages.py: new messages for extensions.          * Thuban/Model/messages.py: new messages for extensions.
# Line 765  Line 1395 
1395          * Thuban/UI/messages.py (VIEW_POSITION): New message for the          * Thuban/UI/messages.py (VIEW_POSITION): New message for the
1396          position in the statusbar          position in the statusbar
1397    
1398  2002-04-26      Frank Koormann <[email protected]>  2002-04-26  Frank Koormann <[email protected]>
1399    
1400          * Thuban/UI/mainwindow.py: AddLayer, Dialog title s/session/data          * Thuban/UI/mainwindow.py: AddLayer, Dialog title s/session/data
1401    
1402  2002-04-24      Frank Koormann <[email protected]>  2002-04-24  Frank Koormann <[email protected]>
1403            
1404          * Resources/Bitmaps/identify.xpm: shadow added          * Resources/Bitmaps/identify.xpm: shadow added
1405    
1406          * Resources/Bitmaps/fullextent.xpm: new          * Resources/Bitmaps/fullextent.xpm: new
           
 2002-04-22      Jan-Oliver Wagner <[email protected]>  
1407    
1408          * Thuban/UI/tree.py (update_tree): added test for None on map bounding box  2002-04-22  Jan-Oliver Wagner <[email protected]>
1409    
1410            * Thuban/UI/tree.py (update_tree): added test for None on map bounding
1411            box
1412    
1413  2002-04-21      Jan-Oliver Wagner <[email protected]>  2002-04-21  Jan-Oliver Wagner <[email protected]>
1414    
1415          * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog): new          * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog): new
1416    
1417          * Thuban/UI/tree.py (update_tree): added added map extent          * Thuban/UI/tree.py (update_tree): added added map extent
1418    
1419          * Thuban/UI/mainwindow.py (_method_command): extended by parameter          * Thuban/UI/mainwindow.py (_method_command): extended by parameter
1420          icon; added map_full_extend as tool          icon; added map_full_extend as tool
1421    
1422  2002-04-19      Jan-Oliver Wagner <[email protected]>  2002-04-19  Jan-Oliver Wagner <[email protected]>
1423    
1424          * Thuban/UI/mainwindow.py (SaveSession): launch save as dialog for          * Thuban/UI/mainwindow.py (SaveSession): launch save as dialog for
1425          saving _new_ sessions          saving _new_ sessions
# Line 890  Line 1521 
1521    
1522          * setup.py: increase version number to 0.1          * setup.py: increase version number to 0.1
1523          (data_dist): New command class for data distribution          (data_dist): New command class for data distribution
           
1524    
1525  2001-09-14  Bernhard Herzog  <[email protected]>  2001-09-14  Bernhard Herzog  <[email protected]>
1526    
1527          * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):          * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):
1528          Handle the case of no layer (i.e. layer is None) properly.          Handle the case of no layer (i.e. layer is None) properly.
1529    
1530          * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):          * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):
1531          Set the initial selection of the combo boxes to reflect the          Set the initial selection of the combo boxes to reflect the
1532          projection we're starting with in a way that works on windows,          projection we're starting with in a way that works on windows,
1533          too.          too.
# Line 1007  Line 1637 
1637          (MainWindow.identify_view_on_demand): Store the interactor in an          (MainWindow.identify_view_on_demand): Store the interactor in an
1638          instvar and use that reference instead of going through main.app          instvar and use that reference instead of going through main.app
1639    
1640          * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):          * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):
1641          * Thuban/UI/application.py (ThubanApplication.OnInit):          * Thuban/UI/application.py (ThubanApplication.OnInit):
1642          * Thuban/UI/main.py (main): Create the session tree view in main          * Thuban/UI/main.py (main): Create the session tree view in main
1643          with the new mainwindow method ShowSessionTree and not directly          with the new mainwindow method ShowSessionTree and not directly
1644          the application's OnInit method          the application's OnInit method
# Line 1024  Line 1654 
1654          layer to the tableview dialog.          layer to the tableview dialog.
1655    
1656          * Thuban/UI/tableview.py: Add some doc-strings          * Thuban/UI/tableview.py: Add some doc-strings
1657          (TableGrid):          (TableGrid):
1658          (TableGrid.OnRangeSelect):          (TableGrid.OnRangeSelect):
1659          (TableGrid.OnSelectCell):          (TableGrid.OnSelectCell):
1660          (TableFrame.__init__):          (TableFrame.__init__):
# Line 1091  Line 1721 
1721  2001-09-05  Bernhard Herzog  <[email protected]>  2001-09-05  Bernhard Herzog  <[email protected]>
1722    
1723          * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.          * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.
1724            
1725          * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument          * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument
1726          interactor to pass through to the MapCanvas          interactor to pass through to the MapCanvas
1727            
1728          * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new          * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new
1729          argument to the MainWindow constructor to get rid of the ugly hack          argument to the MainWindow constructor to get rid of the ugly hack
1730          that made main.app available early just so that the mapcanvas          that made main.app available early just so that the mapcanvas
# Line 1141  Line 1771 
1771          (ThubanInstall.run): Remove the leading install root from the          (ThubanInstall.run): Remove the leading install root from the
1772          script filename if an install root was specified and use the new          script filename if an install root was specified and use the new
1773          link_file method          link_file method
1774            
1775          * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Fit the map to          * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Fit the map to
1776          the window when the first layer is added to the map.          the window when the first layer is added to the map.
1777    
# Line 1178  Line 1808 
1808          (InnoIconItem): Helper class for bdist_inno          (InnoIconItem): Helper class for bdist_inno
1809          (thuban_bdist_inno): Thuban specific version of bdist_inno. Added          (thuban_bdist_inno): Thuban specific version of bdist_inno. Added
1810          this together with the appropriate parameters, to the setup call.          this together with the appropriate parameters, to the setup call.
1811            
1812          * setup.cfg (bdist_inno): added new section for the inno setup          * setup.cfg (bdist_inno): added new section for the inno setup
1813          installer          installer
1814    

Legend:
Removed from v.359  
changed lines
  Added in v.538

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26