View Javadoc

1   /*
2    * Copyright 2004-2008 the Seasar Foundation and the Others.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 
13   * either express or implied. See the License for the specific language
14   * governing permissions and limitations under the License.
15   */
16  package org.seasar.uruma.component.factory;
17  
18  import org.seasar.framework.xml.TagHandlerRule;
19  import org.seasar.uruma.component.factory.handler.CommonAttributesTagHandler;
20  import org.seasar.uruma.component.factory.handler.GenericTagHandler;
21  import org.seasar.uruma.component.factory.handler.GradientInfoTagHandler;
22  import org.seasar.uruma.component.factory.handler.GradientItemTagHandler;
23  import org.seasar.uruma.component.factory.handler.LayoutDataTagHandler;
24  import org.seasar.uruma.component.factory.handler.LayoutTagHandler;
25  import org.seasar.uruma.component.factory.handler.RootComponentTagHandler;
26  import org.seasar.uruma.component.factory.handler.SimpleItemTagHandler;
27  import org.seasar.uruma.component.factory.handler.TableCellTagHandler;
28  import org.seasar.uruma.component.factory.handler.TableColumnTagHandler;
29  import org.seasar.uruma.component.factory.handler.TemplateTagHandler;
30  import org.seasar.uruma.component.factory.handler.TreeItemTagHandler;
31  import org.seasar.uruma.component.jface.BrowserComponent;
32  import org.seasar.uruma.component.jface.ButtonComponent;
33  import org.seasar.uruma.component.jface.CTabFolderComponent;
34  import org.seasar.uruma.component.jface.CTabItemComponent;
35  import org.seasar.uruma.component.jface.CanvasComponent;
36  import org.seasar.uruma.component.jface.ComboComponent;
37  import org.seasar.uruma.component.jface.CompositeComponent;
38  import org.seasar.uruma.component.jface.CoolBarComponent;
39  import org.seasar.uruma.component.jface.CoolItemComponent;
40  import org.seasar.uruma.component.jface.DateTimeComponent;
41  import org.seasar.uruma.component.jface.FillLayoutInfo;
42  import org.seasar.uruma.component.jface.GridDataInfo;
43  import org.seasar.uruma.component.jface.GridLayoutInfo;
44  import org.seasar.uruma.component.jface.GroupComponent;
45  import org.seasar.uruma.component.jface.LabelComponent;
46  import org.seasar.uruma.component.jface.LinkComponent;
47  import org.seasar.uruma.component.jface.MenuComponent;
48  import org.seasar.uruma.component.jface.MenuItemComponent;
49  import org.seasar.uruma.component.jface.ProgressBarComponent;
50  import org.seasar.uruma.component.jface.RowDataInfo;
51  import org.seasar.uruma.component.jface.RowLayoutInfo;
52  import org.seasar.uruma.component.jface.SashFormComponent;
53  import org.seasar.uruma.component.jface.ScaleComponent;
54  import org.seasar.uruma.component.jface.SeparatorComponent;
55  import org.seasar.uruma.component.jface.SliderComponent;
56  import org.seasar.uruma.component.jface.SpinnerComponent;
57  import org.seasar.uruma.component.jface.TabFolderComponent;
58  import org.seasar.uruma.component.jface.TabItemComponent;
59  import org.seasar.uruma.component.jface.TableComponent;
60  import org.seasar.uruma.component.jface.TableItemComponent;
61  import org.seasar.uruma.component.jface.TextComponent;
62  import org.seasar.uruma.component.jface.ToolBarComponent;
63  import org.seasar.uruma.component.jface.ToolItemComponent;
64  import org.seasar.uruma.component.jface.TreeComponent;
65  import org.seasar.uruma.component.jface.WindowComponent;
66  import org.seasar.uruma.component.rcp.PartComponent;
67  import org.seasar.uruma.component.rcp.PartFolderComponent;
68  import org.seasar.uruma.component.rcp.PerspectiveComponent;
69  import org.seasar.uruma.component.rcp.ViewPartComponent;
70  import org.seasar.uruma.component.rcp.WorkbenchComponent;
71  
72  /**
73   * Uruma の画面定義XMLをパースするためのタグハンドラを保持するクラスです。<br />
74   * 
75   * @author y-komori
76   */
77  public class UrumaTagHandlerRule extends TagHandlerRule {
78      private static final long serialVersionUID = -6918247426777293347L;
79  
80      /**
81       * {@link UrumaTagHandlerRule} クラスを構築します。<br />
82       */
83      public UrumaTagHandlerRule() {
84          // Root components
85          addTagHandler(new TemplateTagHandler());
86          addTagHandler("window", new RootComponentTagHandler(
87                  WindowComponent.class));
88          addTagHandler("workbench", new RootComponentTagHandler(
89                  WorkbenchComponent.class));
90          addTagHandler("viewPart", new RootComponentTagHandler(
91                  ViewPartComponent.class));
92  
93          // Common Attribute
94          addTagHandler(new CommonAttributesTagHandler());
95  
96          // Layout
97          addTagHandler("fillLayout", new LayoutTagHandler(FillLayoutInfo.class));
98          addTagHandler("rowLayout", new LayoutTagHandler(RowLayoutInfo.class));
99          addTagHandler("gridLayout", new LayoutTagHandler(GridLayoutInfo.class));
100 
101         // LayoutData
102         addTagHandler("rowData", new LayoutDataTagHandler(RowDataInfo.class));
103         addTagHandler("gridData", new LayoutDataTagHandler(GridDataInfo.class));
104 
105         // Composite
106         addTagHandler("composite", new GenericTagHandler(
107                 CompositeComponent.class));
108         addTagHandler("combo", new GenericTagHandler(ComboComponent.class));
109         addTagHandler("tabFolder", new GenericTagHandler(
110                 TabFolderComponent.class));
111         addTagHandler("tabItem", new GenericTagHandler(TabItemComponent.class));
112         addTagHandler("table", new GenericTagHandler(TableComponent.class));
113         addTagHandler("tableColumn", new TableColumnTagHandler());
114         addTagHandler("tableItem", new GenericTagHandler(
115                 TableItemComponent.class));
116         addTagHandler(new TableCellTagHandler());
117         addTagHandler("tree", new GenericTagHandler(TreeComponent.class));
118         addTagHandler("treeItem", new TreeItemTagHandler());
119         addTagHandler("spinner", new GenericTagHandler(SpinnerComponent.class));
120         addTagHandler("cTabFolder", new GenericTagHandler(
121                 CTabFolderComponent.class));
122         addTagHandler("cTabItem",
123                 new GenericTagHandler(CTabItemComponent.class));
124         addTagHandler(new GradientInfoTagHandler());
125         addTagHandler(new GradientItemTagHandler());
126         addTagHandler("group", new GenericTagHandler(GroupComponent.class));
127         addTagHandler("toolBar", new GenericTagHandler(ToolBarComponent.class));
128         addTagHandler("toolItem",
129                 new GenericTagHandler(ToolItemComponent.class));
130         addTagHandler("coolBar", new GenericTagHandler(CoolBarComponent.class));
131         addTagHandler("coolItem",
132                 new GenericTagHandler(CoolItemComponent.class));
133         addTagHandler("canvas", new GenericTagHandler(CanvasComponent.class));
134         addTagHandler("sashForm",
135                 new GenericTagHandler(SashFormComponent.class));
136 
137         // Control
138         addTagHandler("label", new GenericTagHandler(LabelComponent.class));
139         addTagHandler("button", new GenericTagHandler(ButtonComponent.class));
140         addTagHandler("text", new GenericTagHandler(TextComponent.class));
141         addTagHandler("progressBar", new GenericTagHandler(
142                 ProgressBarComponent.class));
143         addTagHandler("scale", new GenericTagHandler(ScaleComponent.class));
144         addTagHandler("slider", new GenericTagHandler(SliderComponent.class));
145         addTagHandler("link", new GenericTagHandler(LinkComponent.class));
146         addTagHandler("browser", new GenericTagHandler(BrowserComponent.class));
147         addTagHandler("datetime",
148                 new GenericTagHandler(DateTimeComponent.class));
149 
150         // SimpleItem
151         addTagHandler(new SimpleItemTagHandler());
152 
153         // Menu
154         addTagHandler("menu", new GenericTagHandler(MenuComponent.class));
155         addTagHandler("menuItem",
156                 new GenericTagHandler(MenuItemComponent.class));
157         addTagHandler("separator", new GenericTagHandler(
158                 SeparatorComponent.class));
159 
160         // RCP
161         addTagHandler("perspective", new GenericTagHandler(
162                 PerspectiveComponent.class));
163         addTagHandler("partFolder", new GenericTagHandler(
164                 PartFolderComponent.class));
165         addTagHandler("part", new GenericTagHandler(PartComponent.class));
166     }
167 
168     protected void addTagHandler(final UrumaTagHandler tagHandler) {
169         addTagHandler(tagHandler.getElementPath(), tagHandler);
170     }
171 }