IWorkArea Interface

The IWorkArea interface is the common base of all interfaces used for implementing windows.

Purpose

The IWorkArea interface is the common base of all interfaces used for implementing windows. The interface's properties and methods are used for sending messages from the framework to the window and for reading window data through the framework.

IMessageHandable.MessageHandler

IWorkArea is derived from the IMessageHandable interface. This interface inherits a handler for window messages:

void MessageHandler(WindowMessage)

MessageHandler is a method which processes messages from the framework to the plug-in, as with IApplicationComponent.RequestHandler. The following table gives an overview of the most important events and messages sent to the window when the events appear.

Message Type Event See
Activated The window was activated. Element window (Sample 2)
Deactivated The window was deactivated.  
Closing The window will be closed. Element window (Sample 2)
SelectionChanged The selection was changed. Selection
Refresh Model elements were modified. Refresh Windows
SwitchRole The role or administrator login has changed.  
Unlocking Model elements are being unlocked. Element window (Sample 2)

IWorkArea.Selection and IWorkArea.SelectionPropagation

ElementSet Selection { get; set; }
SelectionType SelectionPropagation { get; }

Both of these properties regulate the behavior of the window regarding the selection. You can find more information about this in the following sections.

IWorkArea.CanExeCmd and IWorkArea.ExecuteCmd

bool CanExeCmd(object, CanExecuteRoutedEventArgs)
bool ExecuteCmd(object, ExecutedRoutedEventArgs)

Both of these methods have the same functions as they also have in the ICommandDispatchable interface.

Attention

A window can only process commands if it is active, i.e. is in the input focus. The dispatcher methods for all inactive windows are not called when a command is executed.