001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041:
042: /*
043: * JavaEEModulePropertiesAction.java
044: *
045: * Created on October 18, 2006, 9:15 PM
046: *
047: */
048:
049: package org.netbeans.modules.compapp.projects.jbi.jeese.actions;
050:
051: import java.awt.Dialog;
052: import java.util.List;
053: import java.util.ResourceBundle;
054: import org.netbeans.api.project.Project;
055: import org.netbeans.modules.compapp.javaee.codegen.model.EndpointCfg;
056: import org.netbeans.modules.compapp.javaee.util.ProjectUtil;
057: import org.netbeans.modules.compapp.projects.jbi.JbiProject;
058: import org.netbeans.modules.compapp.projects.jbi.jeese.ui.DeploymentOptionPanel;
059: import org.netbeans.modules.compapp.projects.jbi.ui.customizer.VisualClassPathItem;
060: import org.openide.DialogDescriptor;
061: import org.openide.DialogDisplayer;
062: import org.openide.nodes.Node;
063: import org.openide.util.HelpCtx;
064: import org.openide.util.Lookup;
065: import org.openide.util.NbBundle;
066: import org.openide.util.actions.NodeAction;
067:
068: /**
069: * Action to display/edit JavaEE module/project properties.
070: */
071: public class JavaEEModulePropertiesAction extends NodeAction {
072: private String name = "Deployment Settings";
073: private static final String MSG_DEPLOY_OPTION = "titleDeployOption"; // No I18N
074: private static final String NAME = "nameProperties"; // No I18N
075:
076: public JavaEEModulePropertiesAction() {
077: init();
078: }
079:
080: public boolean asynchronous() {
081: return false;
082: }
083:
084: private void init() {
085: ResourceBundle rb = NbBundle.getBundle(this .getClass());
086: name = rb.getString(NAME);
087: }
088:
089: public boolean enable(Project project) {
090: return true;
091: }
092:
093: protected void performAction(Node[] activatedNodes) {
094: Node theNode = activatedNodes[0];
095:
096: Lookup lookup = theNode.getLookup();
097: JbiProject jbiProject = (JbiProject) lookup
098: .lookup(JbiProject.class);
099:
100: VisualClassPathItem vcpi = (VisualClassPathItem) lookup
101: .lookup(VisualClassPathItem.class);
102:
103: if (jbiProject != null && vcpi != null) {
104: ResourceBundle rb = NbBundle.getBundle(this .getClass());
105: String msgDeployOption = rb.getString(MSG_DEPLOY_OPTION);
106: List<EndpointCfg> cfgs = ProjectUtil.getEndpointCfgs(
107: jbiProject, vcpi.getProjectName());
108: DeploymentOptionPanel pnl = new DeploymentOptionPanel(cfgs);
109: pnl.isDeployThruCA(depThruCA(jbiProject, vcpi
110: .getProjectName()));
111:
112: DialogDescriptor dd = new DialogDescriptor(pnl, " "
113: + vcpi.getProjectName() + msgDeployOption);
114: Dialog dlg = DialogDisplayer.getDefault().createDialog(dd);
115:
116: //dlg.setSize( 400, 165 );
117: dlg.setVisible(true);
118:
119: if (dd.getValue() == DialogDescriptor.OK_OPTION) {
120: ProjectUtil.setJavaEECustomProperty(jbiProject, vcpi
121: .getProjectName()
122: + ProjectUtil.DEPLOY_THRU_CA, Boolean
123: .toString(pnl.isDeployThruCA()));
124: if ((cfgs != null) && (cfgs.size() > 0)) {
125: ProjectUtil.saveEndpointCfgs(jbiProject, vcpi
126: .getProjectName(), cfgs);
127: }
128: }
129: }
130: }
131:
132: private boolean depThruCA(JbiProject jbiProj, String subProjName) {
133: String val = ProjectUtil.getJavaEECustomProperty(jbiProj)
134: .getProperty(subProjName + ProjectUtil.DEPLOY_THRU_CA);
135: boolean bool = true;
136:
137: if (val != null) {
138: bool = Boolean.valueOf(val);
139: }
140:
141: return bool;
142: }
143:
144: public boolean enable(Node[] nodes) {
145: return true;
146: }
147:
148: public HelpCtx getHelpCtx() {
149: return null;
150: }
151:
152: public String getName() {
153: return name;
154: }
155: }
|