Nevron Open Vision Documentation
Ribbon

This topic contains the following sections:
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 following code fragment demonstrates how to create a ribbon based commanding UI and associate it with a schedule view:

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

Another 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 or set it as the content of a WPF window in a WPF application project.

Create a Schedule View with Ribbon
Copy Code
NNovWidgetHost<NScheduleViewWithRibbon> novContent = new NNovWidgetHost<NScheduleViewWithRibbon>();
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