Nevron Open Vision Documentation
Ribbon
Schedule Ribbon Builder

NOV Schedule provides a ribbon builder that can be used to create and associate ribbon commanding UI to a schedule view. The builder is represented by the NScheduleRibbonBuilder class.

The easiest way to create a schedule view with ribbon is to use the NScheduleViewWithRibbon class. The example below demonstrates how to create a schedule view with ribbon hosted in a NOV widget host. You can then add this host to a form's Controls collection if you are creating a WinForms application, set it as the Content of a WPF window in a WPF application project or to the ContentView of a Xamarin.Mac window.

Create a Schedule View with Ribbon
Copy Code
NNovWidgetHost<NScheduleViewWithRibbon> novContent = new NNovWidgetHost<NScheduleViewWithRibbon>();

Another way to create a ribbon based commanding UI and associate it with a schedule view is:

Create Ribbon UI
Copy Code
NScheduleRibbonBuilder ribbonBuilder = new NScheduleRibbonBuilder();
NWidget uiWidget = ribbonBuilder.CreateUI(scheduleView);

To rename a ribbon tab or a ribbon group command builder, change it's name property prior to using it for building the ribbon UI. The following piece of code demonstrates how to rename the "Home" tab page and the "Font" ribbon group:

Rename ribbon tab and group
Copy Code
// Rename the "Home" ribbon tab page
NRibbonTabPageBuilder homeTabBuilder = m_RibbonBuilder.TabPageBuilders[NScheduleRibbonBuilder.TabPageHomeName];
homeTabBuilder.Name = "Start";

// Rename the "View" ribbon group of the "Home" tab page
NRibbonGroupBuilder fontGroupBuilder = homeTabBuilder.RibbonGroupBuilders[NHomeTabPageBuilder.GroupViewName];
fontGroupBuilder.Name = "Look";
Removing Commands

To remove all widgets associated with specific commands from the commanding UI, use the RemoveCommands method of the schedule view with ribbon:

Remove commands
Copy Code
// Create an array of commands to remove
NCommand[] commandsToRemove = new NCommand[] {
    NScheduleView.OpenCommand,
    NScheduleView.SaveAsCommand,
    NScheduleView.SaveCommand
};

NScheduleViewRibbon scheduleViewWithRibbon = new NScheduleViewWithRibbon();
scheduleViewWithRibbon.RemoveCommands(commandsToRemove);

If you are using the Visual Studio designer, you can click the Customize Ribbon smart tag of your NScheduleViewWithRibbonControl and uncheck the commands you want to hide from the ribbon:

Modifying Ribbon Group Builders Collection

If you want to remove a given ribbon tab page, you can easily do so by using the Remove method of the TabPageBuilders collection of the schedule ribbon builder. To remove a ribbon group from a tab page, you should use the Remove method of the RibbonGroupBuilders collection of the ribbon group builder.

The names of all schedule ribbon tab pages are exposed as constants in the NScheduleRibbonBuilder class. Each of the tab page builders exposes as constants the names of its ribbon group builders. The following piece of code demonstrates how to remove the "Editing" ribbon group of the "Home" tab page of the schedule ribbon:

Remove ribbon group
Copy Code
NRibbonTabPageBuilder homeTabBuilder = ribbonBuilder.TabPageBuilders[NScheduleRibbonBuilder.TabPageHomeName];
homeTabBuilder.RibbonGroupBuilders.Remove(NHomeTabPageBuilder.GroupEditingName);

In order to add or insert your own ribbon group builders, you can use the Add or Insert methods of the RibbonGroupBuilders collection respectively.

Add custom ribbon group
Copy Code
NRibbonTabPageBuilder homeTabBuilder = ribbonBuilder.TabPageBuilders[NScheduleRibbonBuilder.TabPageHomeName];
homeTabBuilder.RibbonGroupBuilders.Insert(0, new CustomRibbonGroupBuilder());
Custom Ribbon Group Builders

To create a custom ribbon group builder you should create a class, which inherits NRibbonGroupBuilder:

Custom ribbon group builder
Copy Code
public class CustomRibbonGroupBuilder : NRibbonGroupBuilder
{
    public CustomRibbonGroupBuilder()
        : base("Custom Group", NResources.Image_Ribbon_16x16_smiley_png)
    {
    }

    protected override void AddRibbonGroupItems(NRibbonGroupItemCollection items)
    {
        // Add the "Add Appointment" command
        items.Add(CreateRibbonButton(Nevron.Nov.Schedule.NResources.Image_Ribbon_32x32_AddAppointment_png,
            Nevron.Nov.Schedule.NResources.Image_Edit_AddAppointment_png, NScheduleView.AddAppointmentCommand));

        // Add the custom command
        items.Add(CreateRibbonButton(NResources.Image_Ribbon_32x32_smiley_png, NResources.Image_Ribbon_16x16_smiley_png, CustomCommand));
    }
}
See Also

UI

Send Feedback