[jboss-cvs] jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views ...

Robert Stryker rawblem at gmail.com
Thu Jul 27 02:34:01 EDT 2006


  User: rawb    
  Date: 06/07/27 02:34:01

  Modified:    as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views  
                        JBossServerTableViewer.java JBossServerView.java
  Log:
  Implemented xpath editor in properties view. Other changes made to fascilitate this implementation (added to DescriptorModel, etc). Also fixed bugs, re-added classpath to server configuration so user can customize.
  
  Revision  Changes    Path
  1.10      +114 -22   jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerTableViewer.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: JBossServerTableViewer.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerTableViewer.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -b -r1.9 -r1.10
  --- JBossServerTableViewer.java	11 Jul 2006 00:08:07 -0000	1.9
  +++ JBossServerTableViewer.java	27 Jul 2006 06:34:01 -0000	1.10
  @@ -22,19 +22,29 @@
   
   package org.jboss.ide.eclipse.as.ui.views;
   
  +import java.io.File;
  +import java.lang.reflect.InvocationTargetException;
   import java.util.ArrayList;
   import java.util.Properties;
   
   import org.eclipse.core.resources.IFolder;
   import org.eclipse.core.runtime.CoreException;
  +import org.eclipse.core.runtime.IProgressMonitor;
  +import org.eclipse.core.runtime.Path;
  +import org.eclipse.core.runtime.SubProgressMonitor;
   import org.eclipse.jface.action.Action;
   import org.eclipse.jface.action.IMenuManager;
  +import org.eclipse.jface.action.Separator;
  +import org.eclipse.jface.dialogs.ProgressMonitorDialog;
  +import org.eclipse.jface.operation.IRunnableWithProgress;
   import org.eclipse.jface.viewers.ISelection;
   import org.eclipse.jface.viewers.IStructuredSelection;
   import org.eclipse.jface.viewers.ITreeContentProvider;
   import org.eclipse.jface.viewers.LabelProvider;
   import org.eclipse.jface.viewers.TreeViewer;
   import org.eclipse.jface.viewers.Viewer;
  +import org.eclipse.jface.window.Window;
  +import org.eclipse.jface.wizard.WizardDialog;
   import org.eclipse.swt.SWT;
   import org.eclipse.swt.graphics.Image;
   import org.eclipse.swt.widgets.Composite;
  @@ -56,8 +66,10 @@
   import org.eclipse.wst.server.ui.ServerUICore;
   import org.jboss.ide.eclipse.as.core.JBossServerCore;
   import org.jboss.ide.eclipse.as.core.server.JBossServer;
  +import org.jboss.ide.eclipse.as.core.server.ServerAttributeHelper;
   import org.jboss.ide.eclipse.as.core.server.runtime.JBossServerRuntime;
   import org.jboss.ide.eclipse.as.core.util.ASDebug;
  +import org.jboss.ide.eclipse.as.core.util.FileUtil;
   import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
   import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
   import org.jboss.ide.eclipse.as.ui.Messages;
  @@ -66,6 +78,7 @@
   import org.jboss.ide.eclipse.as.ui.viewproviders.PropertySheetFactory;
   import org.jboss.ide.eclipse.as.ui.viewproviders.PropertySheetFactory.ISimplePropertiesHolder;
   import org.jboss.ide.eclipse.as.ui.viewproviders.PropertySheetFactory.SimplePropertiesPropertySheetPage;
  +import org.jboss.ide.eclipse.as.ui.wizards.ServerCloneWizard;
   
   public class JBossServerTableViewer extends TreeViewer {
   
  @@ -130,29 +143,91 @@
   			public void run() {
   				Object selected = getSelectedElement();
   				if( selected != null && selected instanceof JBossServer ) {
  -					JBossServer server = (JBossServer)selected;
  -
  -
  +					final JBossServer server = (JBossServer)selected;
   					
   					// Show a wizard
  -					//ServerCloneWizard wizard = new ServerCloneWizard(server);
  -					//WizardDialog dlg = new WizardDialog(Display.getDefault().getActiveShell(), wizard);
  -				    //dlg.open();
  +					final ServerCloneWizard wizard = new ServerCloneWizard(server);
  +					WizardDialog dlg = new WizardDialog(Display.getDefault().getActiveShell(), wizard);
  +				    int ret = dlg.open();
  +				    if( ret == Window.OK ) {
   					
   					
  +				    	IRunnableWithProgress op = new IRunnableWithProgress() {
  +
  +							public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
  +								int filesWork = wizard.getSelectedFiles().length; 
  +						    	int totalWork = filesWork + 1 + 50;
  +						    	monitor.beginTask("Cloning Server", totalWork);
   					
   					// clone the directories
  +						    	directoriesClone(wizard, server, new SubProgressMonitor(monitor, filesWork+1));
   					
   					// clone the wst server
  -					//wstServerClone(server, newName);
  +								wstServerClone(server, wizard.getName(), wizard.getConfig(), 
  +										new SubProgressMonitor(monitor, 50));
  +								
  +								monitor.done();
  +							}
  +				    		
  +				    	};
  +				    	try {
  +				    	new ProgressMonitorDialog(Display.getDefault().getActiveShell()).run(true, true, op);
  +				    	} catch( Exception e) {
  +				    		e.printStackTrace();
  +				    	}
  +				    }
  +					
  +					
   				}
   			}
   			
  -			public void directoriesClone() {
  +			public void directoriesClone(ServerCloneWizard wizard, JBossServer server, IProgressMonitor monitor) {
  +				SubProgressMonitor subMonitor;
  +				String relativeLoc;
  +				File newFile;
  +				
  +				File[] files = wizard.getSelectedFiles();
  +		    	String oldConfigPath = server.getAttributeHelper().getConfigurationPath();
  +		    	String newConfigPath = server.getAttributeHelper().getServerHome() 
  +		    		+ Path.SEPARATOR + "server" + Path.SEPARATOR + wizard.getConfig();
  +		    	
  +		    	monitor.beginTask("Copying configuration", files.length + 1);
  +		    	
   				
  +		    	subMonitor = new SubProgressMonitor(monitor, 1);
  +		    	subMonitor.beginTask("Creating configuration directory: " + newConfigPath, 1);
  +		    	new File(newConfigPath).mkdir();
  +		    	subMonitor.worked(1);
  +				subMonitor.done();
  +
  +				
  +				for( int i = 0; i < files.length; i++ ) {
  +					relativeLoc = files[i].getAbsolutePath().substring(oldConfigPath.length());
  +					newFile = new File(newConfigPath + relativeLoc);
  +					ASDebug.p("Copying " + files[i] + " to " + newFile, this);
  +					if( files[i].isDirectory() ) {
  +				    	subMonitor = new SubProgressMonitor(monitor, 1);
  +				    	subMonitor.beginTask("Creating directory: " + newFile.getAbsolutePath(), 1);
  +
  +				    	boolean res = newFile.mkdir();
  +
  +				    	subMonitor.worked(1);
  +						subMonitor.done();
  +					} else {
  +				    	subMonitor = new SubProgressMonitor(monitor, 1);
  +				    	subMonitor.beginTask("Copying file: " + newFile.getAbsolutePath(), 1);
  +
  +						FileUtil.copyFile(files[i], newFile);
  +
  +				    	subMonitor.worked(1);
  +						subMonitor.done();
  +					}
  +				}
  +				
  +				monitor.done();
   			}
   			
  -			public void wstServerClone(JBossServer server, String newName) {
  +			public void wstServerClone(JBossServer server, String newName, String config, IProgressMonitor monitor) {
   				
   				IServerType serverType = server.getServer().getServerType();
   				IRuntimeType runtimeType = server.getServer().getRuntime().getRuntimeType();
  @@ -175,15 +250,20 @@
   					newServerWC.setServerConfiguration(configFolder);
   					newServerWC.setName(newName);
   					
  -					JBossServer newServer = (JBossServer)newServerWC.loadAdapter(JBossServer.class, null);
  +					ServerAttributeHelper helper = new ServerAttributeHelper(server, newServerWC);
   
  +					helper.setServerHome(server.getAttributeHelper().getServerHome());
  +					helper.setJbossConfiguration(config);
   					
  -//					newServer.getAttributeHelper().setServerHome(server.getAttributeHelper().getServerHome());
  -//					// then set the new config
  -//					newServer.getAttributeHelper().setJbossConfiguration("default");
  +//					server.setRuntime(runtime);
  +//					runtime.setVMInstall(selectedVM);
   					
   					newServerWC.save(true, null);
   				} catch( CoreException ce) {}
  +				
  +				monitor.beginTask("Cloning Server Elements", 50);
  +				monitor.worked(50);
  +				monitor.done();
   			}
   		};
   		cloneServerAction.setText("Clone Server");
  @@ -335,7 +415,11 @@
   	public Object getSelectedElement() {
   		ISelection sel = getSelection();
   		if( sel instanceof IStructuredSelection ) {
  -			return ((IStructuredSelection)sel).getFirstElement();
  +			Object o = ((IStructuredSelection)sel).getFirstElement(); 
  +			if( o != null && o instanceof ContentWrapper ) {
  +				o = ((ContentWrapper)o).getElement();
  +			}
  +			return o;
   		}
   		return null;
   	}
  @@ -345,7 +429,12 @@
   		if( sel instanceof IStructuredSelection ) {
   			Object selected = ((IStructuredSelection)sel).getFirstElement();
   			if( selected != null ) {
  -				ServerViewProvider provider = getParentViewProvider(selected);
  +				ServerViewProvider provider;
  +				if( selected instanceof ServerViewProvider ) {
  +					provider = (ServerViewProvider)selected;
  +				} else {
  +					provider = getParentViewProvider(selected);
  +				}
   				if( provider != null ) 
   					provider.getDelegate().fillContextMenu(shell, mgr, getRawElement(selected));
   			}
  @@ -358,12 +447,15 @@
   		Object selected = getSelectedElement();
   		if( selected instanceof JBossServer) {
   			menu.add(twiddleAction);
  -			//menu.add(cloneServerAction);
  +			menu.add(cloneServerAction);
  +			menu.add(new Separator());
   		}
   		
   		
  -		if( selected instanceof ServerViewProvider ) 
  +		if( selected instanceof ServerViewProvider ) {
   			menu.add(disableCategoryAction);
  +			menu.add(new Separator());
  +		}
   		menu.add(refreshViewerAction);
   	}
   
  
  
  
  1.7       +11 -7     jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerView.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: JBossServerView.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/JBossServerView.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -b -r1.6 -r1.7
  --- JBossServerView.java	10 Jul 2006 15:53:23 -0000	1.6
  +++ JBossServerView.java	27 Jul 2006 06:34:01 -0000	1.7
  @@ -144,17 +144,21 @@
   		return (IServer)jbViewer.getInput();
   	}
   	
  -	public void refreshJBTree(ServerViewProvider provider) {
  -		final ServerViewProvider provider2 = provider;
  +	public void refreshJBTree(Object obj) {
  +		final Object obj2 = obj;
   		Display.getDefault().asyncExec(new Runnable() {
   			public void run() {
   				try {
   					// If it's null, refresh the whole thing
  -					if( provider2 == null ) { JBossServerView.this.jbViewer.refresh(); return; }
  -
  -					Object[] selected = JBossServerView.this.jbViewer.getExpandedElements();
  -					JBossServerView.this.jbViewer.refresh(provider2);
  -					JBossServerView.this.jbViewer.setExpandedElements(selected);
  +					if( obj2 == null ) { 
  +						Object[] expanded = JBossServerView.this.jbViewer.getExpandedElements();
  +						JBossServerView.this.jbViewer.refresh();
  +						JBossServerView.this.jbViewer.setExpandedElements(expanded);
  +					} else {
  +						Object[] expanded = JBossServerView.this.jbViewer.getExpandedElements();
  +						JBossServerView.this.jbViewer.refresh(obj2);
  +						JBossServerView.this.jbViewer.setExpandedElements(expanded);
  +					}
   				} catch (Exception e) {
   					// ignore
   				}
  
  
  



More information about the jboss-cvs-commits mailing list