Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Orion/Documentation/Developer Guide/Plugging into the settings page"

(Examples)
 
(6 intermediate revisions by one other user not shown)
Line 1: Line 1:
= Overview =
+
Moved to [[Orion/Documentation/Developer_Guide/Core_client_services#orion.core.setting]]
Orion plugins can define ''Settings''. A Setting defines some persistent information that is provided to one of the plugins's services. Defined Settings appear on Orion's "Settings" page, and their values can be changed using an automatically-generated UI.
+
 
+
A Setting is a combination of two more basic configuration elements:
+
* A [[Orion/Documentation/Developer Guide/Configuration services#Managed Services|''PID'' (persistent identifier)]], which uniquely identifies the configuration data for the setting.
+
* [[Orion/Documentation/Developer Guide/Configuration services#Meta Typing|''Metatype'' information]], which defines the "shape" of the setting. Specifically, it defines what named properties appear in the setting and what data type they have (string, boolean, number, etc). The Settings page uses this Metatype information to generate appropriate UI widgets (for example, text field, checkbox, etc).
+
 
+
= orion.core.setting =
+
The <code>orion.core.setting</code> service contributes one or more settings.
+
 
+
== Service properties ==
+
To contribute one or more Settings, the '''settings''' service property is used:
+
; settings
+
: <code>Setting[]</code>. Defines Settings.
+
:; pid
+
:: <code>String</code>. The PID for this setting. This PID occupies the same namespace as the PIDs contributed by [[Orion/Documentation/Developer Guide/Configuration services#Managed Services|Managed Services]], and must be unique in that respect.
+
:; name
+
:: <code>String</code>. Human-readable name of this setting.
+
:; tags
+
:: <code>String[]</code>. ''Optional.'' List of tags applying to this setting.
+
:; properties
+
:: <code>PropertyType[]</code>. Gives the properties that make up this setting. The shape of the <code>PropertyType</code> element is explained in [[Orion/Documentation/Developer Guide/Configuration services#Define an OCD|Metatype documentation]].
+
 
+
== Service methods ==
+
None. This service is completely declarative.
+
 
+
== Examples ==
+
This example shows how to define a Setting with PID <code>example.navconfig</code>. This Setting has a single property <code>newtab</code>, which is boolean-typed. Because we've enumerated the property's possible values using an '''options''', the generated UI presentation will show a drop-down menu, with the second option "Open links in a new tab" selected by default.
+
 
+
define(['orion/plugin'], function(PluginProvider) {
+
    var pluginProvider = new PluginProvider();
+
    pluginProvider.registerService('orion.core.setting',
+
        {},
+
        {  settings: [
+
                {  pid: 'example.navconfig',
+
                  name: 'Navigation settings',
+
                  properties: [
+
                      {  id: 'newtab',
+
                          name: 'Links',
+
                          type: 'boolean',
+
                          defaultValue: false,
+
                          options: [
+
                              {  label: "Open links in a new tab",
+
                                value: true
+
                              },
+
                              {  label: "Open links in same tab",
+
                                value: false
+
                              },
+
                          ]
+
                      }
+
                  ]
+
                }
+
            ]
+
        });
+
    provider.connect();
+
});
+
 
+
== See also ==
+
* [[Orion/Documentation/Developer Guide/Configuration services|Configuration services]]
+

Latest revision as of 12:00, 18 October 2012

Moved to Orion/Documentation/Developer_Guide/Core_client_services#orion.core.setting

Back to the top