[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