Loupe - Log - Monitor - Resolve
Loupe / Developer's Guide / Extending Loupe Server / Loupe Extensions - Session Summary Views
In This Topic
    Loupe Extensions - Session Summary Views
    In This Topic

    The Repository View allows one to three summary views to be displayed as part of the drill in process.

    Session Summary Views

    Session Summary Views

    What You Need to Implement

    To create a Session View, you need to create a UserControl that:

    For more information on how classes are evaluated and loaded see Loupe Extensions - Deploying Extensions.

    Extension Lifecycle

    1. When the user selects your extension view from the list a new instance of the user control will be created and placed into the new tab. 
    2. Before it is displayed, the Initialize method will be called to provide access to the repository.
    3. The SessionSummaries property will be called and provided the collection of session summaries to display.  Your user control should work within this set of sessions which respect the repository folder that the view is associated with and the filters at the top of the view. 
    4. As the user interacts with your control, update the SelectedItems property to reflect the set of session summaries that should be considered selected.  These will be displayed in the session summaries grid below the summary view.  You should also set the SelectedItemsLabel to create the right header label for the session summaries grid.  Whenever you change the selected items you should raise the SelectionChanged Event to notify the container that you have new data.
    5. Whenever the user selects your control (for example the Enter event on your user control) you should raise the SelectView Event to notify the container that you want to be activated.  This will cause it to switch from the current summary view to your summary view. 
    6. Whenever your control is selected the ActivateView method will be called.  When another summary view is selected the DeactivateView method is called.  This can be used to improve your performance by deferring recalculation of selected items when you aren't active.

    Notes and Best Practices

    Many Copies

    A different copy of your summary view is created when it is first displayed in any of the three possible summary view slots for a given repository view.  Each folder has its own repository view.  This means an indefinite number of your view may be created at the same time.  If you need to coordinate data between multiple instances of your view use a Repository Controller.

    Caching Information

    If it's useful to cache information to improve performance the best place to do this is in your Repository Controller.  This allows the cache to be shared between all of the classes that make up your extension.

    Repository Scope

    A single instance of a session summary view is associated with exactly one Repository Context.  This means its associated with a single repository.  If a repository is unmounted then any related session command instance will be disposed.  You can use the context to interact with the repository and user interface, including displaying sessions in the session viewer and requesting that the configuration of the extension be edited.

    Control Size

    The container will generally resize your content at will to fit the available space.  You can provide hint information to this process by setting the MinimumSize and MaximumSize properties of your control.  Changing these once your control has been displayed is not recommended.  If not set, the default sizes used by the built-in summary views will be used which is the best place to start.

    See Also