Chart / Commanding / Command Bars / Chart Command Bars via Code
In This Topic
    Chart Command Bars via Code
    In This Topic

    NOV Chart provides two ways to create a chart view with a command bar commanding UI.

     Chart View with Command Bars Widget

    The easiest way to create a command bar commanding UI for a chart view is to use the NChartViewWithCommandBars widget or if you are not creating a cross-platform application - to drop an NChartViewWithCommandBarsControl to a form/window using the Visual Studio Designer. You can then use the following approaches to modify the command bars:

    1. Hiding Menus and Toolbars

    To hide a command bar or a command bar item use the corresponding Get... method of the NChartViewWithCommandBars or NChartViewWithCommandBarsControl class and set its Visibility property to Collapsed:

    • GetMainMenu - gets the main menu bar. When you get the menu bar, you can use its FindMenuDropDownByText method to get a specific menu drop down. Then if you want to hide a specific menu item from the drop down menu, you can use the Items.FindByText method of the menu item, but if the menu item does not contain sub menu items, it's better to use the RemoveCommands method discussed in the next section.
    • GetTooBar - gets a toolbar with a given name.
    • GetStatusBar - gets the status bar.

    The following code snippet hides the "Standard" toolbar.

    Hide toolbars
    Copy Code
                    
    // Hide the "Standard" toolbar
    nChartViewWithCommandBarsControl1.GetToolBar(
        NChartCommandBarBuilder.ToolBarStandardName).Visibility = ENVisibility.Collapsed;
    
    Note that instead of using string literals like "View", it is better to use the string constants defined in the NChartCommandBarBuilder class to get menu and toolbar names as shown in the code snippet above.

    2. Removing Commands

    To hide all widgets associated with specific commands from the commanding UI, use the RemoveCommands method of the chart view with command bars. For example, the code snippet below removes the Open, Save, and Save As commands and hides the widgets associated with them from the toolbar:

    Remove commands
    Copy Code
    NChartViewWithCommandBars chartViewWithCommandBars = new NChartViewWithCommandBars();
    chartViewWithCommandBars.RemoveCommands(NChartView.OpenCommand, NChartView.SaveCommand, NChartView.SaveAsCommand);
    

    Always use the RemoveCommands item to remove individual menu and toolbar items, unless the menu item has sub items. In that case use the GetMainMenu method of the menu bar, then FindMenuDropDownByText to get the menu drop down, and finally Items.FindByText to get the item with sub items, which you want to hide as shown in the previous section.

     Chart Command Bar Builder

    You can also create chart command bars using the NChartCommandBarBuilder. This gives you greater flexibility and more ways to customize the NOV Chart command bars, including an option to add custom commands to the command bars:

    Creating a NOV Chart command bar UI 
    Copy Code
    NChartCommandBarBuilder commandBarBuilder = new NChartCommandBarBuilder();
    NCommandUIHolder chartViewWithCommandBars = commandBarBuilder.CreateUI(chartView);
    

    1. Modifying the Builders Collection

    If you want to remove a given toolbar or menu from the builders, you can easily do so by using the Remove method of the ToolBarBuilders and MenuDropDownBuilders collection of the chart command bar builder respectively. You can get or remove builders by name.

    The names of all chart menu and toolbar builders are exposed as constants in the NChartCommandBarBuilder class. For example, to remove the "Standard" toolbar of a command bars based chart UI, you can use the following piece of code:

    Remove Toolbar Builders
    Copy Code
    commandBarBuilder.ToolBarBuilders.Remove(NChartCommandBarBuilder.ToolBarStandardName);
    

    In order to add or insert your own toolbar or menu drop down builder, you can use the Add or Insert methods of the corresponding builder collection respectively.

    Add Custom Toolbar and Menu Builders
    Copy Code
    commandBarBuilder.ToolBarBuilders.Insert(0, new CustomToolBarBuilder());
    

    2. Removing Commands

    To hide all widgets associated with specific commands from the commanding UI, use the RemoveCommands method of the command UI holder created by the command bars builder. For example, the code snippet below removes the Open, Save, and Save As commands and hides the widgets associated with them from the toolbar:

    Remove commands
    Copy Code
    NChartCommandBarBuilder commandBarBuilder = new NChartCommandBarBuilder();
    NCommandUIHolder chartViewWithCommandBars = commandBarBuilder.CreateUI(chartView);
    chartViewWithCommandBars.RemoveCommands(NChartView.OpenCommand, NChartView.SaveCommand, NChartView.SaveAsCommand);
    
           

    3. Custom Toolbar Builders

    To create a custom toolbar builder, you should create a class, which inherits the NToolBarBuilder:

    Create a custom toolbar builder
    Copy Code
    public class CustomToolBarBuilder : NToolBarBuilder
    {
        public CustomToolBarBuilder()
            : base("Custom Toolbar")
        {
        }
    
        protected override void AddItems(NCommandBarItemCollection items)
        {
            // Add the "Open" button
            items.Add(CreateButton(Presentation.NResources.Image_File_Open_png, NChartView.OpenCommand));
    
            // Add the custom command button
            items.Add(CreateButton(NResources.Image_Ribbon_16x16_smiley_png, CustomCommand));
        }
    }
    

    To replace the original "Standard" toolbar builder with the custom one, use the following code:

    Replace the "Standard" toolbar builder
    Copy Code
    NChartCommandBarBuilder commandBarBuilder = new NChartCommandBarBuilder();
    int toolbarIndex = commandBarBuilder.ToolBarBuilders.IndexOf(NChartCommandBarBuilder.ToolbarStandardName);
    commandBarBuilder.ToolBarBuilders[toolbarIndex] = new CustomStandardToolbar();
    

    To see how to define a custom command and a custom command action, take a look at the Chart Commanding Overview topic.

    See Also