Valid and invalid definitions

Whether you start a dialog in a chained or a nested fashion, the dialogs can be controlled through an attribute TYPE. The attribute TYPE is assigned to the transition-endpoint element. Valid values include CHAINED and NESTED. If you do not specify the attribute, the default attribute value CHAINED is applied.

The following code sample shows the relevant fragments of valid definitions for the calling dialog dialog1 and the called dialogs dialog2 and dialog3.

Code sample

<dialog name="dialog1">
  ...
  <transition type="chained">
      <source>
          <transition-endpoint nameref="portlet1">
              <event qname="e1a"/>
          </transition-endpoint>
      </source>
      <target>
          <transition-endpoint nameref="dialog2">
              <event qname="eX"/>
          </transition-endpoint>
      </target>
  </transition>
  ...
  <transition type="nested">
      <source>
          <transition-endpoint nameref="portlet1">
              <event qname="e1b"/>
          </transition-endpoint>
      </source>
      <target>
          <transition-endpoint nameref="dialog3">
              <event qname="eY"/>
          </transition-endpoint>
      </target>
  </transition>
  ...
</dialog>
...
<dialog name="dialog2">
  ...
  <transition type="start">
      <source>
          <transition-endpoint nameref="portlet1">
              <event qname="eX"/>
          </transition-endpoint>
      </source>
      <target>
          <transition-endpoint nameref="portlet2">
              <event qname="eX"/>
          </transition-endpoint>
      </target>
  </transition>
  ...
</dialog>
... 
<dialog name="dialog3">
  ...
  <transition type="start">
      <source>
          <transition-endpoint nameref="portlet1">
              <event qname="eY"/>
          </transition-endpoint>
      </source>
      <target>
          <transition-endpoint nameref="portlet2">
              <event qname="eY"/>
          </transition-endpoint>
      </target>
  </transition>
  ...
</dialog>       

The following code sample shows invalid definitions as dialog2 has no start transition that is triggered by the event eX.

Code sample

<dialog name="dialog1">
  ...
  <transition type="chained">
      <source>
          <transition-endpoint nameref="portlet1">
              <event qname="e1a"/>
          </transition-endpoint>
      </source>
      <target>
          <transition-endpoint nameref="dialog2">
              <event qname="eX"/>
          </transition-endpoint>
      </target>
  </transition>
  ...
  <transition type="nested">
      <source>
          <transition-endpoint nameref="portlet1">
              <event qname="e1b"/>
          </transition-endpoint>
      </source>
      <target>
          <transition-endpoint nameref="dialog3">
              <event qname="eY"/>
          </transition-endpoint>
      </target>
  </transition>
  ...
</dialog>
...
<dialog name="dialog2">
  ...
  <transition type="start">
      <source>
          <transition-endpoint nameref="portlet1">
              <event qname="eZ"/>
          </transition-endpoint>
      </source>
      <target>
          <transition-endpoint nameref="portlet2">
              <event qname="eZ"/>
          </transition-endpoint>
      </target>
  </transition>
  ...
</dialog>
... 
<dialog name="dialog3">
  ...
  <transition type="start">
      <source>
          <transition-endpoint nameref="portlet1">
              <event qname="eY"/>
          </transition-endpoint>
      </source>
      <target>
          <transition-endpoint nameref="portlet2">
              <event qname="eY"/>
          </transition-endpoint>
      </target>
  </transition>
  ...
</dialog>  
Note: If the dialogs dialog2 and dialog3 are started in a chained or nested fashion, the transition endpoint that is referenced by the start transition's source becomes irrelevant.