Exemple de modélisation interactive

Cet exemple illustre la manière dont vous pouvez définir un noeud création de modèle de telle sorte que les utilisateurs peuvent choisir, via une simple case à cocher, s'ils doivent ou non interagir avant de générer le modèle.

Pour voir le fonctionnement de cette option, utilisez le noeud d'exemple Interaction fourni avec cette version. Pour plus d'informations, voir Noeud création de modèle (Interaction).

Tout d'abord, le noeud création de modèles spécifie une propriété booléenne :

<Node id="interaction.builder" type="modelBuilder" ... >
 ...
     <Properties>
      <Property name="interactive" valueType="boolean" />
    </Properties>

Dans la section Interface utilisateur de la spécification du noeud, la section qui définit l'onglet Modèle comprend une référence à cette propriété :

<Tab label="Model">
     <PropertiesPanel>
          <CheckBoxControl property="interactive" label="Start an interactive session" />
     </PropertiesPanel>
</Tab>

Dans la section CreateInteractiveModelBuilder du même noeud, le paramètre de la propriété est testé et, s'il s'agit de true, un objet de sortie interactif est créé :

<CreateInteractiveModelBuilder type="my.interaction">
     <Condition property="interactive" op="equals" value="true" />
</CreateInteractiveModelBuilder>

L'objet de sortie auquel il fait référence est défini dans la section InteractiveModelBuilder de l'extension :

<InteractiveModelBuilder id="my.interaction" label="Interaction Test">
     <Properties>
     </Properties>
     <Containers>
     </Containers>
     <UserInterface actionHandler="ui.InteractionHandler">
          <Controls>
               <ToolbarItem action="generateModel" showLabel="false" />
          </Controls>
          <Tabs>
               <Tab label="Model">
                    <ExtensionObjectPanel id="model.panel" panelClass=
                     "ui.SampleInteractionPanel" />
               </Tab>
               <Tab label="Generic">
                    <ExtensionObjectPanel id="generic.panel" panelClass=
                     "ui.GenericInteractionPanel" />
               </Tab>
          </Tabs>
     </UserInterface>
</InteractiveModelBuilder>

L'action permettant de générer le modèle est contrôlée par le bouton de la barre d'outils défini par l'élément ToolbarItem.

Notez l'utilisation de l'attribut panelClass de l'élément ExtensionObjectPanel pour spécifier une classe Java permettant de contrôler l'interface utilisateur pour chaque onglet de la fenêtre d'interaction.