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.handler;
17
18 import org.seasar.framework.xml.TagHandlerContext;
19 import org.seasar.uruma.component.jface.TreeComponent;
20 import org.seasar.uruma.component.jface.TreeItemComponent;
21 import org.xml.sax.Attributes;
22
23 /**
24 * <code>treeItem</code> 要素に対応するタグハンドラです。<br />
25 *
26 * @author y-komori
27 */
28 public class TreeItemTagHandler extends GenericTagHandler {
29
30 private static final long serialVersionUID = -260321293575249423L;
31
32 /**
33 * {@link TreeItemTagHandler} を構築します。<br />
34 */
35 public TreeItemTagHandler() {
36 super(TreeItemComponent.class);
37 }
38
39 /*
40 * @see org.seasar.uruma.component.factory.handler.GenericTagHandler#getElementPath()
41 */
42 @Override
43 public String getElementPath() {
44 return "treeItem";
45 }
46
47 /*
48 * @see org.seasar.uruma.component.factory.handler.GenericTagHandler#start(org.seasar.framework.xml.TagHandlerContext,
49 * org.xml.sax.Attributes)
50 */
51 @Override
52 public void start(final TagHandlerContext context,
53 final Attributes attributes) {
54 Object parent = context.peek();
55 super.start(context, attributes);
56 TreeItemComponent treeItem = (TreeItemComponent) context.peek();
57
58 if (parent instanceof TreeComponent) {
59 TreeComponent tree = (TreeComponent) parent;
60 tree.addTreeItem(treeItem);
61 } else if (parent instanceof TreeItemComponent) {
62 TreeItemComponent parentTreeItem = (TreeItemComponent) parent;
63 parentTreeItem.addTreeItem(treeItem);
64 treeItem.setParentTreeItem(parentTreeItem);
65 }
66 }
67 }