Search Results for

    Show / Hide Table of Contents

    Interface IModelLayoutDisplayerController

    Namespace: LemonEdge.Client.Core.Views.Core
    Assembly: LemonEdge.ClientCore.dll
    Syntax
    public interface IModelLayoutDisplayerController

    Properties

    DisplayIfSameItem

    Declaration
    bool DisplayIfSameItem { get; set; }
    Property Value
    Type Description
    bool

    Displayer

    The ui specific client implementation of the displayer this controller is responsible for

    Declaration
    IModelLayoutDisplayer Displayer { get; }
    Property Value
    Type Description
    IModelLayoutDisplayer

    HasOwnDisplayer

    Indicates that this controller should not handle enumerating all the views within a tab and correctly displaying the items for them

    Some client applications (such as single threaded console app) override the display of a tab and enumerate the view displays themselves, this returns true if that is the case

    To provide an override you can call SetTabDisplayHandler(Func<LayoutTabSetting, Task>)
    Declaration
    bool HasOwnDisplayer { get; }
    Property Value
    Type Description
    bool

    Layout

    The actual layout designer for this layout that has been generated (DefaultLayoutGenerator) or loaded (ILayout) or designed (LayoutDesigner) into this Displayer

    Declaration
    LayoutDescriptor Layout { get; }
    Property Value
    Type Description
    LayoutDescriptor

    LayoutID

    Holds the id of a custom ILayout that the system will use to load the layout for this displayer dynamically

    This is also used by the layout designer. When it creates a new layout, it stores the id here so it can be retrieved from the context when switching between layouts

    Declaration
    Guid? LayoutID { get; set; }
    Property Value
    Type Description
    Guid?

    LayoutName

    The name of this layout descriptor either from the ILayout or the Name

    Declaration
    string LayoutName { get; set; }
    Property Value
    Type Description
    string

    LayoutURL

    The url for help on this particular layout retrieved from either the LayoutHelpURL or LayoutHelpURL depending on how the layout was loaded

    Declaration
    string LayoutURL { get; }
    Property Value
    Type Description
    string

    MainDisplayedItem

    The main displayed item this layout is responsible for displaying in all the top level views contained within the layout for this Displayer

    Declaration
    DisplayableItemDescriptor MainDisplayedItem { get; }
    Property Value
    Type Description
    DisplayableItemDescriptor

    SelectedTab

    The currently active selected tab in the layout displayer ui

    Declaration
    LayoutTabSetting SelectedTab { get; }
    Property Value
    Type Description
    LayoutTabSetting

    SetColor

    The colour to display this displayer with in the client application ui and the host IModelLayoutHost.

    A displayer only has a colour if it is sharing a context with another Displayer so the user can easily see the relationship between the different layouts

    The default returned is just default
    Declaration
    Color SetColor { get; }
    Property Value
    Type Description
    Color

    Tabs

    A list of all the tabs to be displayed visually to the user in the Displayer that have been loaded for the layout for this layout displayer

    Declaration
    IEnumerable<LayoutTabSetting> Tabs { get; }
    Property Value
    Type Description
    IEnumerable<LayoutTabSetting>

    Methods

    AddTab()

    Adds a new tab to the layout for this displayer

    Declaration
    LayoutTabSetting AddTab()
    Returns
    Type Description
    LayoutTabSetting

    The descriptor of the new tab that has been added to the layout

    AddTrackedItemListener(TrackedItemChange)

    Registers a listener that will be notified by this layout displayer if any tracked item (via TrackItem(INotifyPropertyChanged)) has changed

    Declaration
    void AddTrackedItemListener(TrackedItemChange listener)
    Parameters
    Type Name Description
    TrackedItemChange listener

    The listener to notify whenever a tracked item has changed

    AddView(LayoutTabSetting, ViewDescriptorInstance)

    Adds the specified view to the specified tab in this layout displayer

    Declaration
    LayoutViewDescriptor AddView(LayoutTabSetting fromTab, ViewDescriptorInstance view)
    Parameters
    Type Name Description
    LayoutTabSetting fromTab

    The tab to add the specified view to

    ViewDescriptorInstance view

    The view to be added to the layout of the specified tab

    Returns
    Type Description
    LayoutViewDescriptor

    The view that has been added to the tab

    ClearDisplayedItem()

    Declaration
    Task ClearDisplayedItem()
    Returns
    Type Description
    Task

    Close(bool)

    Closes this layout and removes it from the parent IModelLayoutHost

    Declaration
    Task<bool> Close(bool silent = false)
    Parameters
    Type Name Description
    bool silent

    If false indicates the user should be prompted about saving if this layout contains any pending changes

    Returns
    Type Description
    Task<bool>

    A task indicating the completion of the operation

    CloseController()

    Called when this layout is being closed, and removed from the IModelLayoutHost

    Used to dispose of all views, controllers, commands and other resources

    Declaration
    Task CloseController()
    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    DeleteCurrentTab()

    Removes the current selected tab from the layout in the displayer

    Declaration
    LayoutTabSetting DeleteCurrentTab()
    Returns
    Type Description
    LayoutTabSetting

    The descriptor of the tab that has been removed

    DeleteView(LayoutTabSetting, ViewDescriptorInstance)

    Indicates the specified view within the specified tab should be removed from the display, including any dependant child views

    Declaration
    IEnumerable<ViewDescriptorInstance> DeleteView(LayoutTabSetting fromTab, ViewDescriptorInstance view)
    Parameters
    Type Name Description
    LayoutTabSetting fromTab
    ViewDescriptorInstance view
    Returns
    Type Description
    IEnumerable<ViewDescriptorInstance>

    The view that is removed from this layout

    DisplayItem(DisplayableItemDescriptor)

    Sets the specified item as the main displayed item for this layout and displays it against every visible view for the user

    If a layout has no been loaded yet the system will load the default layout (or custom, or overriden/provided one) and load the layout first before displaying the item against all visible views

    Declaration
    Task DisplayItem(DisplayableItemDescriptor item)
    Parameters
    Type Name Description
    DisplayableItemDescriptor item

    The item to display against this displayer

    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    DisplayLayout()

    Declaration
    Task DisplayLayout()
    Returns
    Type Description
    Task

    DisplayView(LayoutViewDescriptor, bool)

    Displays the correct item to display against the specified view by passing that item in to the DisplayItem(object) method

    Also checks if the item is valid against the specified view type. If it is not the system will display a message to the user that the view is invalid for displaying the specified item type

    Declaration
    Task DisplayView(LayoutViewDescriptor view, bool forceEvenIfCurrentlyDisplayingSameItem)
    Parameters
    Type Name Description
    LayoutViewDescriptor view

    The view to display the correct item for

    bool forceEvenIfCurrentlyDisplayingSameItem
    Returns
    Type Description
    Task

    A task indicating the cimpletion of the operation

    Dispose()

    Declaration
    void Dispose()

    FireLayoutContentChanged(object, string)

    Re-evaluates any formulas within the layout settings (Tabs, Groups or Views) that may have changed value due to the specified changed item/property

    Then notifies every registered listener of the item change, along with notifying the IModelLayoutHost that the layout itself may have changed

    Declaration
    void FireLayoutContentChanged(object changedItem, string propertyName)
    Parameters
    Type Name Description
    object changedItem

    The source of the item that has changed

    string propertyName

    The name of the property that has changed on the changedItem

    FireTrackedItemListeners()

    Notifies every registered listener that there has been a change by sending this and a property name of "" as the change

    This is useful for listeners that do not care what changed (such as ui listeners to indicate that there are context changes in a layout), simply that there maybe a change to check

    Declaration
    void FireTrackedItemListeners()

    GetItemForViewToDisplay(ViewDescriptorInstance)

    Returns the item that the specified view should be using to display.

    If this view has a parent then it will retrieve the SelectedItemForSubViews item to display, otherwise it will use the main displayed item (Item) for this entire layout

    Declaration
    Task<object> GetItemForViewToDisplay(ViewDescriptorInstance viewDescriptor)
    Parameters
    Type Name Description
    ViewDescriptorInstance viewDescriptor

    The view to retrieve the item that it should be displaying

    Returns
    Type Description
    Task<object>

    The item that should be displayed against the specified viewDescriptor

    GetParentView(IModelView)

    Declaration
    IModelView GetParentView(IModelView view)
    Parameters
    Type Name Description
    IModelView view
    Returns
    Type Description
    IModelView

    GetView(ViewDescriptorInstance)

    Returns the actual view for the specified view descriptor within this loaded layout

    Declaration
    IModelView GetView(ViewDescriptorInstance descriptor)
    Parameters
    Type Name Description
    ViewDescriptorInstance descriptor

    The view descriptor to return the created view instance of

    Returns
    Type Description
    IModelView

    The actual view for the specified view descriptor within this loaded layout

    GetViewDescriptors(LayoutTabSetting)

    Returns a list of all the view descriptors for the specified tab for the loaded layout

    Declaration
    IEnumerable<ViewDescriptorInstance> GetViewDescriptors(LayoutTabSetting forTab)
    Parameters
    Type Name Description
    LayoutTabSetting forTab

    The tab to return all the view descriptors within

    Returns
    Type Description
    IEnumerable<ViewDescriptorInstance>

    A list of all the view descriptors for the specified tab for the loaded layout

    GetViews(LayoutTabSetting)

    Returns a list of all the views within the specified tab for the loaded layout

    Declaration
    IEnumerable<IModelView> GetViews(LayoutTabSetting forTab)
    Parameters
    Type Name Description
    LayoutTabSetting forTab

    The tab to return all the views within

    Returns
    Type Description
    IEnumerable<IModelView>

    A list of all the views within the specified tab for the loaded layout

    LoadLayout(DisplayableItemDescriptor)

    Declaration
    Task<bool> LoadLayout(DisplayableItemDescriptor item)
    Parameters
    Type Name Description
    DisplayableItemDescriptor item
    Returns
    Type Description
    Task<bool>

    LoadTabLayout(LayoutTabSetting)

    Declaration
    Task LoadTabLayout(LayoutTabSetting tabSetting)
    Parameters
    Type Name Description
    LayoutTabSetting tabSetting
    Returns
    Type Description
    Task

    LoadTabLayouts()

    Declaration
    Task LoadTabLayouts()
    Returns
    Type Description
    Task

    MoveTabLeft()

    Moves the current selected tab to the left in the layout

    Declaration
    LayoutTabSetting MoveTabLeft()
    Returns
    Type Description
    LayoutTabSetting

    The current tab being moved to the left

    MoveTabRight()

    Moves the current selected tab to the right in the layout

    Declaration
    LayoutTabSetting MoveTabRight()
    Returns
    Type Description
    LayoutTabSetting

    The current tab being moved to the right

    OnTabSelected(LayoutTabSetting)

    Used by the Displayer to inform the controller that the user has selected a new tab in the layout

    The controller will then dynamically load the layout for the tab (if it has not already been loaded) and ensure all the visible views in it have the correct item displayed

    Declaration
    Task OnTabSelected(LayoutTabSetting tabSetting)
    Parameters
    Type Name Description
    LayoutTabSetting tabSetting

    The tab that is now the active tab in the layout

    Returns
    Type Description
    Task

    Redisplay()

    Enumerates through all the visible top level views and redisplays (calling Redisplay()) the main item they should be displaying.

    As those views load and select any output entity, that will cascade down to any child views too

    Declaration
    Task Redisplay()
    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    Refresh(bool)

    Causes the display for this layout to be refreshed. This will reload the MainDisplayItem (via Recreate()), and then redisplay the item against all visible views

    Declaration
    Task<bool> Refresh(bool silent = false)
    Parameters
    Type Name Description
    bool silent
    Returns
    Type Description
    Task<bool>

    A task indicating the completion of the operation

    RegisterNotificationOnParentViewSelectionChange(IModelView, Action)

    Declaration
    void RegisterNotificationOnParentViewSelectionChange(IModelView parentView, Action onNotify)
    Parameters
    Type Name Description
    IModelView parentView
    Action onNotify

    SetLayout(ILayoutGenerator)

    Provides an explicit override to this layout displayer to use the specified generator, instead of any default, when loading the layout for this display

    Declaration
    void SetLayout(ILayoutGenerator generator)
    Parameters
    Type Name Description
    ILayoutGenerator generator

    The generator to use when loading the layout for this displayer

    SetTabDisplayHandler(Func<LayoutTabSetting, Task>)

    This controller handles enumerating all the views within a tab and correctly displaying the items for them, and does this in a multi-threaded way awaiting all views being displayed at once

    However some client applications (such as single threaded console app) can use this to override the display of a tab and enumerate the view displays themselves

    Declaration
    void SetTabDisplayHandler(Func<LayoutTabSetting, Task> tabDisplay)
    Parameters
    Type Name Description
    Func<LayoutTabSetting, Task> tabDisplay

    A function that enumerates displaying all the views on the specified tab to the user

    TrackItem(INotifyPropertyChanged)

    Adds the specified item to the list of items that are being tracked for changes by this layout displayer. Any changes notify each registered listener via AddTrackedItemListener(TrackedItemChange)

    Declaration
    void TrackItem(INotifyPropertyChanged item)
    Parameters
    Type Name Description
    INotifyPropertyChanged item

    The item to track changes for

    UpdateLayout()

    Forces the layout displayer to update layout configuration of every tab in the displayer (because it has been modified by the user) to the LayoutDescriptor representing this layout stored in Layout

    This provides an accurate model representing the current layout designed in the ui on the client application that can be recreated through a serialized LayoutDescriptor

    Declaration
    void UpdateLayout()

    UpdateSetColor(IModelLayoutDisplayer)

    Declaration
    void UpdateSetColor(IModelLayoutDisplayer source = null)
    Parameters
    Type Name Description
    IModelLayoutDisplayer source

    UpdateSubViews(IModelView, bool)

    Informs the displayer that the specified view has had its SelectedItemForSubViews change, and thus all child views for this one should be updated accordingly

    Declaration
    Task UpdateSubViews(IModelView view, bool forceEvenIfCurrentlyDisplayingSameItem = false)
    Parameters
    Type Name Description
    IModelView view

    The view that has had its SelectedItemForSubViews change, and needs all dependant sub-views to be updated

    bool forceEvenIfCurrentlyDisplayingSameItem
    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    ValidateUI()

    Validates the ui for the currently selected tab within the layout. Calls ValidateUI() on every view in the selected tab

    Declaration
    void ValidateUI()

    Events

    TabChange

    An event indicating that the currently selected tab in this layout has been changed by the user or the system

    Declaration
    event LayoutTabChangedEvent TabChange
    Event Type
    Type Description
    LayoutTabChangedEvent

    ViewItemChange

    An event indicating that a view has changed the output item ( SelectedItemForSubViews) that other sub-views maybe dependant on

    Declaration
    event LayoutSubViewItemChangedEvent ViewItemChange
    Event Type
    Type Description
    LayoutSubViewItemChangedEvent

    Extension Methods

    LinqExtensions.AsArray<T>(T)
    LinqExtensions.ToArrayOfOne<T>(T)
    LinqExtensions.ToListOfOne<T>(T)
    MiscExtensions.SetIfNotEqual<T, TP>(T, Expression<Func<T, TP>>, TP)
    WeakReferenceExtensions.WeakReference(object)
    SQLExtensions.ToSQLValue(object, bool)
    ReflectionExtensions.ClearEventInvocations(object, string)
    StringExtensions.ToCSVFormatString(object, Type)
    In this article
    Back to top © LemonEdge Technologies. All rights reserved.