[jboss-cvs] jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/wizards ...
Robert Stryker
rawblem at gmail.com
Fri Dec 22 18:26:35 EST 2006
User: rawb
Date: 06/12/22 18:26:35
Added: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/wizards
StrippedServerWizardFragment.java
Log:
Added deploy-only server (cannot start or stop)
Other associated changes.
Revision Changes Path
1.1 date: 2006/12/22 23:26:35; author: rawb; state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/wizards/StrippedServerWizardFragment.java
Index: StrippedServerWizardFragment.java
===================================================================
package org.jboss.ide.eclipse.as.ui.wizards;
import java.io.File;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Status;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.core.IServerWorkingCopy;
import org.eclipse.wst.server.core.ServerCore;
import org.eclipse.wst.server.core.TaskModel;
import org.eclipse.wst.server.core.internal.Server;
import org.eclipse.wst.server.core.internal.ServerType;
import org.eclipse.wst.server.core.internal.ServerWorkingCopy;
import org.eclipse.wst.server.ui.wizard.IWizardHandle;
import org.eclipse.wst.server.ui.wizard.WizardFragment;
import org.jboss.ide.eclipse.as.core.server.stripped.DeployableServer;
import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
import org.jboss.ide.eclipse.as.ui.Messages;
public class StrippedServerWizardFragment extends WizardFragment {
private IWizardHandle handle;
private Label deployLabel, nameLabel;
private Text deployText, nameText;
private Button browse;
private String name, deployLoc;
public StrippedServerWizardFragment() {
}
public Composite createComposite(Composite parent, IWizardHandle handle) {
this.handle = handle;
Composite main = new Composite(parent, SWT.NONE);
main.setLayout(new FormLayout());
nameLabel = new Label(main, SWT.NONE);
nameText = new Text(main, SWT.BORDER);
nameLabel.setText("Deploy Folder");
FormData namelData = new FormData();
namelData.top = new FormAttachment(0,5);
namelData.left = new FormAttachment(0,5);
nameLabel.setLayoutData(namelData);
FormData nametData = new FormData();
nametData.top = new FormAttachment(0,5);
nametData.left = new FormAttachment(nameLabel,5);
nametData.right = new FormAttachment(100,0);
nameText.setLayoutData(nametData);
deployLabel = new Label(main, SWT.NONE);
deployText = new Text(main, SWT.BORDER);
Button browse = new Button(main, SWT.PUSH);
deployLabel.setText("Deploy Folder");
browse.setText(Messages.browse);
FormData lData = new FormData();
lData.top = new FormAttachment(nameText,5);
lData.left = new FormAttachment(0,5);
deployLabel.setLayoutData(lData);
FormData tData = new FormData();
tData.top = new FormAttachment(nameText,5);
tData.left = new FormAttachment(deployLabel,5);
tData.right = new FormAttachment(browse, -5);
deployText.setLayoutData(tData);
FormData bData = new FormData();
bData.right = new FormAttachment(100,-5);
bData.top = new FormAttachment(nameText,5);
browse.setLayoutData(bData);
ModifyListener ml = new ModifyListener() {
public void modifyText(ModifyEvent e) {
textChanged();
}
};
browse.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
}
public void widgetSelected(SelectionEvent e) {
DirectoryDialog d = new DirectoryDialog(new Shell());
d.setFilterPath(deployText.getText());
String x = d.open();
if( x != null )
deployText.setText(x);
}
});
deployText.addModifyListener(ml);
nameText.addModifyListener(ml);
nameText.setText(getDefaultNameText());
return main;
}
protected void textChanged() {
IStatus status = checkErrors();
if( status.isOK() ) {
deployLoc = deployText.getText();
name = nameText.getText();
handle.setMessage("", IStatus.OK);
handle.update();
} else {
handle.setMessage(status.getMessage(), IStatus.WARNING);
}
}
protected IStatus checkErrors() {
if( findServer(nameText.getText()) != null ) {
return new Status(IStatus.WARNING, JBossServerUIPlugin.PLUGIN_ID, IStatus.OK, "Name in use", null);
}
File f = new File(deployText.getText());
if( !f.exists() || !f.isDirectory() ) {
return new Status(IStatus.WARNING, JBossServerUIPlugin.PLUGIN_ID, IStatus.OK, "Folder does not exist", null);
}
return new Status(IStatus.OK, JBossServerUIPlugin.PLUGIN_ID, IStatus.OK, "", null);
}
public void enter() {
handle.setTitle("Create a new System Copy Server");
IServer s = (IServer) getTaskModel().getObject(TaskModel.TASK_SERVER);
IServerWorkingCopy swc;
if( s instanceof IServerWorkingCopy)
swc = (IServerWorkingCopy)s;
else
swc = s.createWorkingCopy();
ServerWorkingCopy swcInternal;
if( swc instanceof ServerWorkingCopy ) {
swcInternal = (ServerWorkingCopy)swc;
deployText.setText(swcInternal.getAttribute(DeployableServer.DEPLOY_DIRECTORY, ""));
}
}
public void exit() {
textChanged();
}
public void performFinish(IProgressMonitor monitor) throws CoreException {
IServerWorkingCopy serverWC = (IServerWorkingCopy) getTaskModel().getObject(TaskModel.TASK_SERVER);
ServerWorkingCopy serverwc2 = (serverWC instanceof ServerWorkingCopy ? ((ServerWorkingCopy)serverWC) : null);
IFolder folder = getJbossServerFolder(name);
if( !folder.exists()) {
folder.create(true,true, new NullProgressMonitor());
}
try {
serverwc2.setServerConfiguration(folder);
serverwc2.setName(name);
serverwc2.setAttribute(DeployableServer.DEPLOY_DIRECTORY, deployLoc);
IServer saved = serverwc2.save(true, monitor);
getTaskModel().putObject(TaskModel.TASK_SERVER, saved);
} catch( Exception ce ) {
}
}
private IFolder getJbossServerFolder(String serverName) {
try {
return ServerType.getServerProject().getFolder(serverName);
} catch( Exception e) {
return null;
}
}
public boolean isComplete() {
return checkErrors().isOK();
}
public boolean hasComposite() {
return true;
}
private String getDefaultNameText() {
String base = "JBoss deployer";
if( findServer(base) == null ) return base;
int i = 1;
while( ServerCore.findServer(base + " " + i) != null )
i++;
return base + " " + i;
}
private IServer findServer(String name) {
IServer[] servers = ServerCore.getServers();
for( int i = 0; i < servers.length; i++ ) {
Server server = (Server) servers[i];
if (name.equals(server.getName()))
return server;
}
return null;
}
}
More information about the jboss-cvs-commits
mailing list