Changes between Version 1 and Version 2 of Maestro3UI


Ignore:
Timestamp:
Jul 7, 2010, 6:49:46 AM (14 years ago)
Author:
jng
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Maestro3UI

    v1 v2  
    33In one word: everything.
    44
    5 The UI design of Maestro 3.0 is intended to mirror that of [http://fdotoolbox.googlecode.com]
     5The UI architecture of Maestro 3.0 is intended to mirror that of [http://fdotoolbox.googlecode.com]. Flexible and extensible.
    66
    77== Foundations ==
     
    1818Unlike FDO Toolbox however, we do not use [http://sourceforge.net/projects/dockpanelsuite/ DockPanel Suite] as our UI layout solution as that is not portable (the codebase uses lots of P/Invokes, thus windows only). Instead we are rolling our own UI layout solution, which involves a set of [http://msdn.microsoft.com/en-us/library/system.windows.forms.tabcontrol.aspx TabControl] components spread across 4 well defined zones (left, right, bottom and document). While not as flexible as DockPanel Suite, this solution runs in Mono which is one of the key criteria.
    1919
    20 We use the latest SharpDevelop Core from the 3.x series and 4.x is WPF based. This has been tested and verified to be working in Mono.
     20We use the latest SharpDevelop Core from the 3.x series as 4.x is WPF based. This has been tested and verified to be working in Mono.
    2121
    2222== Editor Architeture ==
     
    2424Most editors are now rebuilt to maximize the use of databinding and the [http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx interface]. All of the xsd generated classes implement INotifyPropertyChanged.
    2525
    26 The editor infrastructure uses INotifyPropertyChanged to automatically trigger dirty state notification for any editor. This approach is much easier and cleaner than the previous approach, which was to listen for UI events, update the internal model and signal dirty state. Databinding with INotifyPropertyChanged allows us to do all this in one shot (for most cases). Complex cases (such as UIs with grids) may require custom databinding logic, but this is a rare occurence.
     26The editor infrastructure uses INotifyPropertyChanged to automatically trigger dirty state notification for any editor. This approach is much easier and cleaner than the previous approach, which was to listen for UI events, update the internal model and signal dirty state. Databinding with INotifyPropertyChanged allows us to do all this in one shot (for most cases). Complex cases (such as UIs with grids) may require custom databinding logic, but this is a rare occurrence.
     27
     28All editor components have access to the IEditorService interface. This interface provides a subset of the APIs IServerConnection interface and additional services for:
     29
     30 * Browsing/Selecting Coordinate Systems
     31 * Editing Expressions
     32 * Resource/Folder selection
     33 * Resource dirty state management
     34 * Resource persistence
     35
     36A default implementation of IEditorService is provided by the Maestro base addin.
    2737
    2838== Versioning ==