01: /*
02: * The contents of this file are subject to the terms of the Common Development
03: * and Distribution License (the License). You may not use this file except in
04: * compliance with the License.
05: *
06: * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
07: * or http://www.netbeans.org/cddl.txt.
08: *
09: * When distributing Covered Code, include this CDDL Header Notice in each file
10: * and include the License file at http://www.netbeans.org/cddl.txt.
11: * If applicable, add the following below the CDDL Header, with the fields
12: * enclosed by brackets [] replaced by your own identifying information:
13: * "Portions Copyrighted [year] [name of copyright owner]"
14: *
15: * The Original Software is NetBeans. The Initial Developer of the Original
16: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
17: * Microsystems, Inc. All Rights Reserved.
18: */
19:
20: package org.netbeans.modules.xslt.mapper.model.nodes.actions;
21:
22: import java.util.ArrayList;
23: import java.util.List;
24: import javax.swing.Action;
25: import org.netbeans.modules.xml.axi.AXIComponent;
26: import org.netbeans.modules.xml.axi.AbstractAttribute;
27: import org.netbeans.modules.xml.axi.AbstractElement;
28: import org.netbeans.modules.xml.axi.Attribute;
29: import org.netbeans.modules.xml.axi.Element;
30: import org.netbeans.modules.xslt.mapper.model.nodes.TreeNode;
31: import org.netbeans.modules.xslt.mapper.view.XsltMapper;
32:
33: /**
34: *
35: * @author nk160297
36: */
37: public class AddNestedAxiGroup implements ActionGroupConstructor {
38:
39: protected XsltMapper myXsltMapper;
40: protected TreeNode myTreeNode;
41:
42: public AddNestedAxiGroup(XsltMapper xsltMapper, TreeNode node) {
43: myXsltMapper = xsltMapper;
44: myTreeNode = node;
45: }
46:
47: public Action[] getActions() {
48: AXIComponent type = myTreeNode.getType();
49: if (type == null || !(type instanceof Element)) {
50: return null;
51: }
52: //
53: List<Action> actions = new ArrayList<Action>();
54: Element parentElement = (Element) type;
55: //
56: List<AbstractAttribute> attributes = parentElement
57: .getAttributes();
58: for (AbstractAttribute attribute : attributes) {
59: if (attribute instanceof Attribute) {
60: Action newAction = new AddNestedAxiAttribute(
61: myXsltMapper, myTreeNode, (Attribute) attribute);
62: actions.add(newAction);
63: }
64: }
65: //
66: List<AbstractElement> elements = parentElement
67: .getChildElements();
68: for (AbstractElement element : elements) {
69: if (element instanceof Element) {
70: Action newAction = new AddNestedAxiElement(
71: myXsltMapper, myTreeNode, (Element) element);
72: actions.add(newAction);
73: }
74: }
75: //
76: Action[] result = actions.toArray(new Action[actions.size()]);
77: //
78: return result;
79: }
80:
81: }
|