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.awt.event.ActionEvent;
23: import javax.swing.KeyStroke;
24: import org.netbeans.modules.xslt.mapper.model.nodes.TreeNode;
25: import org.netbeans.modules.xslt.mapper.view.XsltMapper;
26: import org.netbeans.modules.xslt.model.SequenceConstructor;
27: import org.netbeans.modules.xslt.model.SequenceElement;
28: import org.netbeans.modules.xslt.model.XslComponent;
29: import org.netbeans.modules.xslt.model.XslModel;
30: import org.openide.util.NbBundle;
31:
32: /**
33: * Deletes any XSLComponent which implements the SequenceElement interface
34: * from any parent component which implements the SequenceConstructor interface.
35: *
36: * @author nk160297
37: */
38: public class DeleteAction extends XsltNodeAction {
39:
40: private static final long serialVersionUID = 1L;
41: private static final String DELETE_KEYSTROKE = "DELETE"; // NOI18N
42:
43: public DeleteAction(XsltMapper xsltMapper, TreeNode node) {
44: super (xsltMapper, node);
45: postInit();
46: putValue(DeleteAction.ACCELERATOR_KEY, KeyStroke
47: .getKeyStroke(DELETE_KEYSTROKE));
48: }
49:
50: public String getDisplayName() {
51: return NbBundle.getMessage(ActionConst.class, "REMOVE"); // NOI18N
52: }
53:
54: public void actionPerformed(ActionEvent e) {
55: Object dataObject = myTreeNode.getDataObject();
56: if (dataObject != null && dataObject instanceof XslComponent) {
57: XslComponent xslComp = (XslComponent) dataObject;
58: XslComponent parentComp = xslComp.getParent();
59: if (parentComp instanceof SequenceConstructor
60: && xslComp instanceof SequenceElement) {
61: XslModel model = xslComp.getModel();
62: model.startTransaction();
63: try {
64: ((SequenceConstructor) parentComp)
65: .removeSequenceChild((SequenceElement) xslComp);
66: } finally {
67: model.endTransaction();
68: }
69: }
70: }
71: }
72:
73: }
|