Author: rob.stryker(a)jboss.com
Date: 2009-07-28 18:59:34 -0400 (Tue, 28 Jul 2009)
New Revision: 16851
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/Fileset.java
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/FilesetActionProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/FilesetContentProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/FilesetDialog.java
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/FilesetLabelProvider.java
Log:
JBIDE-4674
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/Fileset.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/Fileset.java 2009-07-28
22:16:55 UTC (rev 16850)
+++
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/Fileset.java 2009-07-28
22:59:34 UTC (rev 16851)
@@ -10,11 +10,16 @@
******************************************************************************/
package org.jboss.ide.eclipse.archives.webtools.ui;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.wst.server.core.IServer;
+
public class Fileset implements Cloneable {
private static final String HASH_SEPARATOR = "::_::"; //$NON-NLS-1$
private static final String SEP = "\n"; //$NON-NLS-1$
private String name, folder, includesPattern, excludesPattern;
+ private IServer server;
public Fileset() {
}
public Fileset(String string) {
@@ -41,8 +46,19 @@
* @return the folder
*/
public String getFolder() {
+ String tmp = folder == null ? "" : folder; //$NON-NLS-1$
+ IPath p = new Path(tmp);
+ if( !p.isAbsolute() && server != null ) {
+ if( server.getRuntime() != null )
+ p = server.getRuntime().getLocation().append(p);
+ }
+ return p.toString();
+ }
+
+ public String getRawFolder() {
return folder == null ? "" : folder; //$NON-NLS-1$
}
+
/**
* @return the name
*/
@@ -89,6 +105,9 @@
public void setName(String name) {
this.name = name;
}
+
+ public IServer getServer() { return this.server; }
+ public void setServer(IServer server) { this.server = server; }
public Object clone() {
try {
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/FilesetActionProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/FilesetActionProvider.java 2009-07-28
22:16:55 UTC (rev 16850)
+++
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/FilesetActionProvider.java 2009-07-28
22:59:34 UTC (rev 16851)
@@ -17,6 +17,7 @@
import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
@@ -50,7 +51,9 @@
import org.jboss.ide.eclipse.archives.webtools.ui.FilesetContentProvider.PathWrapper;
import org.jboss.ide.eclipse.archives.webtools.ui.FilesetContentProvider.ServerWrapper;
import org.jboss.ide.eclipse.as.core.server.IDeployableServer;
+import org.jboss.ide.eclipse.as.core.server.IJBossServerRuntime;
import org.jboss.ide.eclipse.as.core.util.FileUtil;
+import org.jboss.ide.eclipse.as.core.util.IConstants;
import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
public class FilesetActionProvider extends CommonActionProvider implements
IDoubleClickListener {
@@ -194,13 +197,18 @@
.loadAdapter(IDeployableServer.class,
new NullProgressMonitor());
String location = null;
- if (server != null)
- location = server.getConfigDirectory();
- else
+ if (server != null && server.getServer().getRuntime() != null ) {
+ IJBossServerRuntime runtime = (IJBossServerRuntime)
+ server.getServer().getRuntime().loadAdapter(IJBossServerRuntime.class, null);
+ if( runtime != null ) {
+ location = IConstants.SERVER + IPath.SEPARATOR + runtime.getJBossConfiguration();
+ }
+ }
+ if( location == null )
location = iserver.getRuntime().getLocation().toOSString();
if (location != null) {
- FilesetDialog d = new FilesetDialog(new Shell(), location);
+ FilesetDialog d = new FilesetDialog(new Shell(), location, iserver);
if (d.open() == Window.OK) {
Fileset fs = d.getFileset();
wrapper.addFileset(fs);
@@ -231,7 +239,7 @@
if (d.open() == Window.OK) {
Fileset ret = d.getFileset();
sel.setName(ret.getName());
- sel.setFolder(ret.getFolder());
+ sel.setFolder(ret.getRawFolder());
sel.setIncludesPattern(ret.getIncludesPattern());
sel.setExcludesPattern(ret.getExcludesPattern());
wrapper.saveFilesets();
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/FilesetContentProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/FilesetContentProvider.java 2009-07-28
22:16:55 UTC (rev 16850)
+++
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/FilesetContentProvider.java 2009-07-28
22:59:34 UTC (rev 16851)
@@ -173,6 +173,7 @@
filesets = new Fileset[asStrings.length];
for (int i = 0; i < asStrings.length; i++) {
filesets[i] = new Fileset(asStrings[i]);
+ filesets[i].setServer(server);
}
}
return filesets;
@@ -197,6 +198,7 @@
includes = categoryMementos[i].getString("includes");//$NON-NLS-1$
excludes = categoryMementos[i].getString("excludes");//$NON-NLS-1$
filesets[i] = new Fileset(name, folder, includes, excludes);
+ filesets[i].setServer(server);
}
} catch( IOException ioe) {
// TODO LOG
@@ -210,7 +212,7 @@
for( int i = 0; i < sets.length; i++ ) {
XMLMemento child =
(XMLMemento)memento.createChild("fileset");//$NON-NLS-1$
child.putString("name", sets[i].getName());//$NON-NLS-1$
- child.putString("folder", sets[i].getFolder());//$NON-NLS-1$
+ child.putString("folder", sets[i].getRawFolder());//$NON-NLS-1$
child.putString("includes", sets[i].getIncludesPattern());//$NON-NLS-1$
child.putString("excludes", sets[i].getExcludesPattern());//$NON-NLS-1$
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/FilesetDialog.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/FilesetDialog.java 2009-07-28
22:16:55 UTC (rev 16850)
+++
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/FilesetDialog.java 2009-07-28
22:59:34 UTC (rev 16851)
@@ -34,6 +34,7 @@
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.jboss.ide.eclipse.archives.core.asf.DirectoryScanner;
import org.jboss.ide.eclipse.archives.core.model.DirectoryScannerFactory;
import
org.jboss.ide.eclipse.archives.core.model.DirectoryScannerFactory.DirectoryScannerExtension.FileWrapper;
@@ -47,15 +48,19 @@
private Text includesText, excludesText, folderText, nameText;
private Composite main;
private FilesetPreviewComposite preview;
- protected FilesetDialog(Shell parentShell, String defaultLocation) {
+ private IServer server;
+ protected FilesetDialog(Shell parentShell, String defaultLocation, IServer server) {
super(parentShell);
this.fileset = new Fileset();
this.fileset.setFolder(defaultLocation);
-
+ this.fileset.setServer(server);
+ this.fileset.setIncludesPattern("**/*.xml"); //$NON-NLS-1$
+ this.server = server;
}
protected FilesetDialog(Shell parentShell, Fileset fileset) {
super(parentShell);
this.fileset = (Fileset)fileset.clone();
+ this.server = fileset.getServer();
}
protected Point getInitialSize() {
//return new Point(400, 150);
@@ -82,11 +87,13 @@
fillArea(main);
nameText.setText(fileset.getName());
- folderText.setText(fileset.getFolder());
+ folderText.setText(fileset.getRawFolder());
includesText.setText(fileset.getIncludesPattern());
excludesText.setText(fileset.getExcludesPattern());
addListeners();
+ getShell().layout();
+ textModified();
return sup;
}
@@ -106,14 +113,28 @@
}
public void widgetSelected(SelectionEvent e) {
DirectoryDialog d = new DirectoryDialog(new Shell());
- d.setFilterPath(folderText.getText());
+ String txt = folderText.getText();
+ if( !new Path(txt).isAbsolute() && server != null &&
server.getRuntime() != null)
+ txt = server.getRuntime().getLocation().append(txt).toString();
+ d.setFilterPath(txt);
String x = d.open();
- if( x != null )
- folderText.setText(x);
+ if( x != null ) {
+ folderText.setText(makeRelative(x));
+ }
}
});
}
+ protected String makeRelative(String path) {
+ if( server != null && server.getRuntime() != null ) {
+ if( server.getRuntime().getLocation().isPrefixOf(new Path(path))) {
+ String p2 = path.substring(server.getRuntime().getLocation().toString().length());
+ return new Path(p2).makeRelative().toString();
+ }
+ }
+ return path;
+ }
+
protected void textModified() {
name = nameText.getText();
dir = folderText.getText();
@@ -170,7 +191,7 @@
}
private void updatePreview() {
- preview.setInput(findPaths(dir, includes, excludes));
+ preview.setInput(findPaths(fileset.getFolder(), includes, excludes));
}
public String getDir() {
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/FilesetLabelProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/FilesetLabelProvider.java 2009-07-28
22:16:55 UTC (rev 16850)
+++
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/ui/FilesetLabelProvider.java 2009-07-28
22:59:34 UTC (rev 16851)
@@ -64,7 +64,7 @@
public String getText(Object element) {
if( element instanceof PathWrapper ) return
((PathWrapper)element).getLocalizedResourceName();
- if( element instanceof Fileset ) return ((Fileset)element).getName() + "
" + ((Fileset)element).getFolder(); //$NON-NLS-1$
+ if( element instanceof Fileset ) return ((Fileset)element).getName() + "
" + ((Fileset)element).getRawFolder(); //$NON-NLS-1$
if( element instanceof ServerWrapper ) return "Filesets"; //$NON-NLS-1$
return null;
}