| <?xml version='1.0' encoding='UTF-8'?> |
| <!-- Schema file written by PDE --> |
| <schema targetNamespace="org.eclipse.rap.ui" xmlns="http://www.w3.org/2001/XMLSchema"> |
| <annotation> |
| <appInfo> |
| <meta.schema plugin="org.eclipse.rap.ui" id="layouts" name="Layouts"/> |
| </appInfo> |
| <documentation> |
| This extension point is used to register a custom Layout. This means a grafical Layout not a Layout from the programmers point of view.<br> |
| Every Layout can hold attributes called LayoutSets. A LayoutSet is a simple container for images, fonts, colors and position data. These sets are usually coupled to a <code>ElementBuilder</code>.<br> |
| A Layout can override LayoutSets of other Layouts. These overriden LayoutSets are used if the user switch the Layout during runtime.<br> |
| The default Layout can be defined by contributing to the <code>org.eclipse.rap.ui.branding</code> extension point. If there is no default Layout defined a fallback mechanism will be used to show the standard Layout. |
| </documentation> |
| </annotation> |
| |
| <element name="extension"> |
| <annotation> |
| <appInfo> |
| <meta.element /> |
| </appInfo> |
| </annotation> |
| <complexType> |
| <sequence> |
| <element ref="layout" minOccurs="1" maxOccurs="unbounded"/> |
| </sequence> |
| <attribute name="point" type="string" use="required"> |
| <annotation> |
| <documentation> |
| |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="id" type="string"> |
| <annotation> |
| <documentation> |
| |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="name" type="string"> |
| <annotation> |
| <documentation> |
| |
| </documentation> |
| <appInfo> |
| <meta.attribute translatable="true"/> |
| </appInfo> |
| </annotation> |
| </attribute> |
| </complexType> |
| </element> |
| |
| <element name="layoutSet"> |
| <complexType> |
| <attribute name="id" type="string" use="required"> |
| <annotation> |
| <documentation> |
| The unique identifier for a LayoutSet. This id can be used to override a LayoutSet in a different Layout. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="name" type="string"> |
| <annotation> |
| <documentation> |
| This optional attribute is just to give the LayoutSet a readable name. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="class" type="string" use="required"> |
| <annotation> |
| <documentation> |
| The definition of a LayoutSet. This is a class that has to implement the ILayoutSetInitializer interface. |
| </documentation> |
| <appInfo> |
| <meta.attribute kind="java" basedOn=":org.eclipse.rap.ui.interactiondesign.layout.model.ILayoutSetInitializer"/> |
| </appInfo> |
| </annotation> |
| </attribute> |
| <attribute name="overridesId" type="string"> |
| <annotation> |
| <documentation> |
| To replace a layoutSet you can define a a new one and set the overrides attribute to make clear that the new layoutSet will replace the one defined in this attribute. |
| </documentation> |
| <appInfo> |
| <meta.attribute kind="identifier" basedOn="org.eclipse.rap.ui.layouts/layout/layoutSet/@id"/> |
| </appInfo> |
| </annotation> |
| </attribute> |
| </complexType> |
| </element> |
| |
| <element name="layout"> |
| <complexType> |
| <sequence> |
| <element ref="layoutSet" minOccurs="1" maxOccurs="unbounded"/> |
| </sequence> |
| <attribute name="id" type="string" use="required"> |
| <annotation> |
| <documentation> |
| |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="name" type="string"> |
| <annotation> |
| <documentation> |
| |
| </documentation> |
| </annotation> |
| </attribute> |
| </complexType> |
| </element> |
| |
| <annotation> |
| <appInfo> |
| <meta.section type="since"/> |
| </appInfo> |
| <documentation> |
| RAP 1.2 |
| </documentation> |
| </annotation> |
| |
| <annotation> |
| <appInfo> |
| <meta.section type="examples"/> |
| </appInfo> |
| <documentation> |
| The following is an example of a Layout with three LayoutSets: |
| <p> |
| <pre> |
| <extension |
| id="org.eclipse.presentation.example.layout" |
| name="Example Layout" |
| point="org.eclipse.ui.presentations.Layouts"> |
| <LayoutSet |
| class="org.eclipse.rap.ui.interactiondesign.example.layoutset.HeaderLayoutSet2" |
| id="header.layoutset" |
| name="Header2"> |
| </LayoutSet> |
| <LayoutSet |
| class="org.eclipse.rap.ui.interactiondesign.example.layoutset.MacBarLayoutSet2" |
| id="macBar.layoutset" |
| name="MacBar 2"> |
| </LayoutSet> |
| <LayoutSet |
| class="org.eclipse.rap.ui.interactiondesign.example.layoutset.FooterLayoutSet2" |
| id="footer.layoutset" |
| name="Footer"> |
| </LayoutSet> |
| <LayoutSet |
| class="org.eclipse.rap.ui.interactiondesign.example.layoutset.NavigationPaneLayoutSet2" |
| id="navigationpane.layoutset" |
| name="NavigationPane"> |
| </LayoutSet> |
| </extension> |
| </pre> |
| </p> |
| </documentation> |
| </annotation> |
| |
| <annotation> |
| <appInfo> |
| <meta.section type="apiinfo"/> |
| </appInfo> |
| <documentation> |
| Each LayoutSet in a Layout has to implement the <code>ILayoutSetInitializer</code> interface. The method within is called during the plugin activation to initialize components like images or fonts for this LayoutSet. This implementation can look like this: |
| |
| <pre> |
| public class HeaderLayoutSet implements ILayoutSetInitializer { |
| public void initializeLayoutSet( LayoutSet layoutSet ) { |
| layoutSet.addImagePath( HeaderBuilderData.LEFT, "icons/headerLeft.png" ); |
| layoutSet.addImagePath( HeaderBuilderData.CENTER, "icons/headerCenter.png" ); |
| layoutSet.addImagePath( HeaderBuilderData.RIGHT, "icons/headerRight.png" ); |
| layoutSet.addImagePath( HeaderBuilderData.LOGO, "icons/headerLogo.png" ); |
| addHeaderPositions( layoutSet ); |
| } |
| } |
| </pre> |
| </documentation> |
| </annotation> |
| |
| <annotation> |
| <appInfo> |
| <meta.section type="implementation"/> |
| </appInfo> |
| <documentation> |
| A detailed implementation example can be found in the <code>org.eclipse.rap.presentation.example</code> project. This project defines two Layouts and a bunch of LayoutSets. They look not pretty but they do their job. |
| </documentation> |
| </annotation> |
| |
| <annotation> |
| <appInfo> |
| <meta.section type="copyright"/> |
| </appInfo> |
| <documentation> |
| Copyright (c) 2008 EclipseSource and others. All rights reserved. This |
| program and the accompanying materials are made available under the terms of |
| the Eclipse Public License v1.0 which accompanies this distribution, and is |
| available at <a |
| href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a> |
| </documentation> |
| </annotation> |
| |
| </schema> |