Log in to like this post! Announcing the NetAdvantage CAB Extensibility Kit (NCEK) [Infragistics] Andrew Flick / Tuesday, February 21, 2006 I'm happy to announce and finally acknowledge on a wide-scale, Infragistics support of Microsoft's Composite UI Application Block (CAB). CAB is a method of composing complex user-interfaces in a way that is patterns driven and maintainable. It was based on practices that Microsoft observed at major enterprises around the globe. Infragistics has been involved with the CAB team for some time now and in October we actually spent some time out on the Redmond Campus with one of our architects (Andrew Smith) working in the Pattern and Practice's team Warroom. In this time, we knew that all of our base controls: grids, editors, charts, etc. would function perfectly as part of smartparts inside a CAB application as is. However, we really wanted to support CAB and improve the possibilities of a CAB application, so we shipped NCEK an extensibility kit that makes some of our controls function as workspaces and uiElement/command adapters. Here is what's included in the NetAdvantage CAB Extensibility Kit:Workspaces/SmartPartInfos1. UltraDockWorkspace - This workspace is based on our UltraDockManager and provides docking support for smart parts. The associated UltraDockSmartPartInfo can be used to provide hints about the preferred group to which the pane will be added as well as the default location and pane style of the group should the preferred group not exist.2. UltraExplorerBarWorkspace - This workspace is based on our UltraExplorerBar and provides support for displaying smart parts within controlcontainer style groups. The associated smart part type is UltraExplorerBarSmartPartInfo but no specific properties other then the header image are currently exposed.3. UltraMdiTabWorkspace - This workspace is based on our UltraTabbedMdiManager and provides support for displaying smart parts within mdi children displayed using a tabbed document interface. The associated UltraMdiTabSmartPartInfo class can be used to provide hints about the name of the group to which the mdi child should be associated.4. UltraTabWorkspace - This workspace is based on our UltraTabControl and provides support for displaying smart parts within tabs. The associated UltraTabSmartPartInfo allows you to choose the image to be displayed within the tab as well as whether the tab should be automatically activated when shown.5. UltraToolbarsManagerWorkspace - This workspace is based on our UltraToolbarsManager and provides support for displaying smart parts within task panes in the UltraToolbarsManager. The associated UltraToolbarsSmartPartInfo can be used to provide hints about the preferred taskpane toolbar in which the task pane will be displayed as well as the default docked position for the taskpanetoolbar should the preferred toolbar not exist.UIElements/Command Adapters1. ToolBase - UIElementAdapters have been created to allow any UltraToolbarsManager tool (except TaskPaneTool) to be added to an extension site. The extension sites that may be registered are the Tools collection of a PopupMenuTool or standard UltraToolbar as well as a specific ToolBase instance. The latter extension site will position items into the tools collection of the owning toolbar or menu but instead of positioning the item at the end of the collection, it will be positioned immediately after the tool for which the extension site was registered. Note, UltraTaskPaneToolbars may not be used as an extension site; also, TaskPaneTool instances may not be added to an extension site. You can however use TaskPaneTools to display a smart part within a taskpane using the UltraToolbarsManagerWorkspace mentioned above.2. UltraStatusPanel - UIElementAdapters have been created to allow an UltraStatusPanel to be registered as an extension site. The extension sites that may be registered are the UltraStatusBar control itself, the Panels collection of the UltraStatusBar or an individual UltraStatusPanel. The latter extension site will position items into the panels collection of the statusbar but instead of positioning the item at the end of the collection, it will be positioned immediately after the panel for which the extension site was registered.3. UltraExplorerBarItem - UIElementAdapters have been created to allow an UltraExplorerBarItem to be registered as an extension site. The extension sites that may be registered are the UltraExplorerBar control itself, the Items collection of an UltraExplorerBarGroup or an individual UltraExplorerBarItem. The latter extension site will position items into the items collection of the group but instead of positioning the item at the end of the collection, it will be positioned immediately after the panel for which the extension site was registered.4. UltraTreeNode - UIElementAdapters have been created to allow an UltraTreeNode to be added to an extension site. The extension sites that may be registered are the Nodes collection or an UltraTreeNode. The latter extension site will position items into the nodes collection of the parent node but instead of positioning the nodes at the end of the collection, it will be positioned immediately after the node for which the extension site was registered.Ink Support - Our base application class - IGWindowsFormsApplicationBase - includes a virtual property ("ProvideInkSupport") that is used to determine whether we should automatically try to create UltraInkProviders for each container control in the assembly. By default, we will do so on tablet pc system when the tablet pc sdk and our inkprovider (either from the UltraWinInkProvider.v5.3.dll or the UltraWinInkProvider.Ink17.v5.3.dll) assembly are installed. This allows the smart part developers to not have to include a dependency on the UltraInkProvider assembly thereby leaving it up to the shell developer as to whether ink support should be included.Application - We include 2 main cab application classes. These are the IGFormShellApplication and IGApplicationContextApplication. These are analogous to the MS provided cab applications of FormShellApplication and ApplicationContextApplication respectively. These application classes provide the base infrastructure for creating command adapters, registering the workspaces and providing the ink support - all of which mentioned above. In addition to these additions, we also added docking support and restyled the shipping BankTeller Application. I hope you enjoy the kit and to get a version of NCEK simply download the CLR 2.0 build of NetAdvantage 2006 Volume 1!