Ignition Settings Next Page

Hello,

In the OPC device settings there is a table with different devices, and then once you select that device and click next it pulls up a settings record different from the others.

This looks like a recordActionTable, but how do I get the ‘next’ intermediary step so that I could have a panel for multiple different settings types?

You have to supply one or more DriverType instances in your module hook. The DriverType instances supply the information needed to show up in that list of drivers, and provide all of the information needed for the OPC Server to offer the correct settings record combination, and then to instantiate your driver with such a record.

@pturmel In my application I want to create the settings list itself, but I am not actually creating drivers here. I basically want to recreate how that settings workflow works, but not for drivers.

Example: User selects create new Fleet

a list of fleet types is shown with check boxes (like that above)

User selects a fleet and clicks next,

A specific settings record for that fleet is pulled up.

Ok. Well, the first thing will be supplying an IConfigTab via your GatewayHook’s .getConfigPanels() method. The config tab will show up in the ConfigCategory it names, using the translatable menu entry given. Use DefaultConfigTab.builder() to handle the details.

Your IConfigTab instance must override .getPanel() to actually deliver a configuration page. This first page would be a subclass of ConfigPanel that presents your bullet list. No settings record, just programmatically placed wicket form elements. Your onSubmit() method would examine the radio buttons and select the next ConfigPanel to display.

You’re going to have to get comfortable with wicket. /:

Or have your first ConfigPanel deliver a React app. (:

It’s more specific than your needs, but check out com.inductiveautomation.ignition.gateway.web.components.RemoteConfigItemChoicePanel for a relatively simple starting point.

To use it, have your ExtensionPointType implementation (should probably extend BaseExtensionPointType) return that new panel, then the callback for the panel will actually edit your records. In this case, there’s actually two steps in the “wizard” - first, the remote gateway is selected, then that remote gateway selection brings up the choice of remote providers powered by the RemoteConfigItemChoicePanel.

    @Override
    public ConfigPanel newRecordConfigPanel(PersistentRecord[] records, IConfigPage configPage,
                                            ConfigPanel parentPanel) {
        super.newRecordConfigPanel(records, configPage, parentPanel);
        return new RemoteGatewayChoicePanel(...) {
            @Override
            protected void onGatewaySelected(ServerId gateway) {
                configPage.setConfigPanel(...));
            }
        };
    }
1 Like

The device page workflow uses com.inductiveautomation.ignition.gateway.web.components.ExtensionPointPage. It takes care of everything you’re seeing, but you do have to start using ExtensionPointType to model your thing and the types of sub-things that exist.

2 Likes

@Kevin.Herron @pturmel @PGriffith Looks like I’ve got some programming to do, as always thank you for the quick responses.

I will see what I can come up with.