Last updated on: 5/30/2013 8:43 PM
Created on: 3/21/2014 2:18 PM
The System Core 7 framework provides a composition and view window for PKI based secure objects. Because these views are top level windows the interface as a near identical implementation to the ISCAppletWindowExtension interface. However, there are subtle differences. The number of views that are presented to the user are specified by flags based on the features the implementation needs to support. Action items such as Copy and Paste along with methods for working with the ACL and file attachments are handled by the framework based on the feature flags selected. The Secure Object window's look and presentation can be customized by returning the proper information from GetWindowTitle(), GetAppletImageResource() and GetHintText().
The framework provides the main UI controls and Window, complete with tool bars, desktop menu bar and context menu support. The Secure Object Window allows for Multiple Tree Widgets and one HTML Browser Widget. To customize and isolate the rendering logic for each of these controls, window extensions must provide back the appropriate instances of view class based on the ISCView() interface. There are three common sub implementations of the ISCView() interface: ISCTreeWidgetView(), ISCBrowserWidgetView() and ISCListWidgetView(). Dervice a view implementation from either ISCTreeWidgetView() or ISCBroswerWidgetView() interfaces and return the proper instance of that view class when the framework calls SetView() with the Qt control that the view will be controlling. Unlike the AppetWindow method, the SetView() will have an output parameter that needs to contain the proper text string to display as a caption to the view. Also note, that SetView() will not be called for every view, only views that are specified as custom views based on the feature flags.
The Secure Object has additional parameters that are designed to help it stay sync'ed with the applet. The framework will provide a pointer to the applet that is requesting the secure object window. In addition, for operations that require an ACL, a virtual certificate store will be provided. It is important to know that with the top most designated tree widget of the Secure Object window is intended to be the ACL membership pane. By default, the framework will perform the functions required of this view automatically. However in some cases a customized ACL viewer may be required. To determine if this is the case the framework will call UsesCustomACLView() to determine if a customized ACL view class is required. The framework will handle the addition and removal of ACL members and make the appropriate calls to OnACLMemberAdded() and OnACLMemberRemoved() so the secure object implementation can react accordingly.
The Secure Object Window has similar methods that are triggered when an action is invoked by the user, as well as determining if an action should be available when the input focus has changed. Note that OnFileOpen() and OnFileSaveAs() are methods that interact with a file attachments view, which is provided by the framework. When a file attachment is added or removed to the secure object the framework will invoke these methods: OnAttachmentAdded(), OnAttachmentRemoved(), OnAttachmentRenamed() and OnAttachmentSaved(). To save the object as something implement the OnSaveSecureObjectAs() method. Also there are these two methods:
- void OnFileSave( PIDENTITY pID, QStringList& strAttachments, PHEADEROPTIONS pHeader, void* pCallback )
- int OnFileOpen( QString strFileName, PIDENTITY pID, QStringList& strAttachments, PHEADEROPTIONS pHeader, void* pCallback )
These special methods are designed to save the object securely and open a secure object for editing. The additional parameters contain the extra information in the secure object window such as priority and labels.
The System Core 7 framework is a Qt cross platform solution. The framework automatically performs all the Qt signal/slot overhead and provides a subset of methods to re-implement to perform custom handling based on the user interaction with the view. The methods provided to customize the user interaction are: OnContextMenu(), OnSelectionActivated(), OnListCurrentRenamed(), OnListCurrentChanged(), OnSelectionChanged() and OnAnchorClicked().
TopicsDeveloper's Historical Persepctive Why A Platform Standards The User Experience
InterfacesISCApplet ISCTaskListExtension ISCConfigPanelExtension ISCErrorReporterExtension ISCLogConnector/ISCLogEntry ISCCertificateStoreExtension ISCSystemTrayExtension ISCAppletWindowExtension ISCSecureObjectExtension
Applet Building StepsStep 1: Create The Applet Step 2: Adding Action Items Step 3: Adding Configuration Panels Step 4: Adding Custom Error Text Step 5: Startup/Shutdown Step 6: Adding Main Window Support Step 7: Adding Obejct Window Support