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: package org.netbeans.modules.bpel.nodes.actions;
20:
21: import org.netbeans.modules.bpel.editors.api.nodes.actions.ActionType;
22: import org.netbeans.modules.bpel.editors.api.nodes.NodeType;
23: import org.netbeans.modules.bpel.model.api.Process;
24: import org.netbeans.modules.bpel.model.api.BpelEntity;
25: import org.netbeans.modules.bpel.model.api.BpelModel;
26: import org.netbeans.modules.bpel.model.api.CompensationHandler;
27: import org.netbeans.modules.bpel.model.api.ExtendableActivity;
28: import org.netbeans.modules.bpel.model.api.FaultHandler;
29: import org.netbeans.modules.bpel.model.api.TerminationHandler;
30:
31: /**
32: *
33: * @author Vitaly Bychkov
34: * @version 1.0
35: *
36: */
37: public class AddCompensateAction extends AddPaletteActivityAction {
38: private static final long serialVersionUID = 1L;
39:
40: public AddCompensateAction() {
41: }
42:
43: protected String getBundleName() {
44: return NodeType.COMPENSATE.getDisplayName(); // NOI18N
45: }
46:
47: public ActionType getType() {
48: return ActionType.ADD_COMPENSATE;
49: }
50:
51: @Override
52: protected boolean enable(BpelEntity[] bpelEntities) {
53: return super .enable(bpelEntities)
54: && isSupportedParent(bpelEntities[0]);
55: }
56:
57: private boolean isSupportedParent(BpelEntity bpelEntity) {
58: if (bpelEntity == null || bpelEntity instanceof Process) {
59: return false;
60: }
61:
62: if (bpelEntity instanceof CompensationHandler
63: || bpelEntity instanceof TerminationHandler
64: || bpelEntity instanceof FaultHandler) {
65: return true;
66: }
67:
68: bpelEntity = bpelEntity.getParent();
69: return isSupportedParent(bpelEntity);
70:
71: }
72:
73: protected ExtendableActivity getPaletteActivity(BpelModel model) {
74: return model.getBuilder().createCompensate();
75: }
76:
77: }
|