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

Legend:
Removed from v.396  
changed lines
  Added in v.541

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26