[jboss-svn-commits] JBL Code SVN: r22361 - in labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools: src/org/guvnor/tools/actions and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Sep 3 16:23:41 EDT 2008
Author: john.graham at jboss.org
Date: 2008-09-03 16:23:40 -0400 (Wed, 03 Sep 2008)
New Revision: 22361
Added:
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/ResourceHistorySorter.java
Modified:
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/META-INF/MANIFEST.MF
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/CommitAction.java
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/GuvnorMetadataUtils.java
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/PlatformUtils.java
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/VersionChooserDialog.java
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/RepositoryView.java
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/ResourceHistoryView.java
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/wizards/AddResourceWizard.java
Log:
Enhanced drag and drop support
Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/META-INF/MANIFEST.MF
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/META-INF/MANIFEST.MF 2008-09-03 15:56:39 UTC (rev 22360)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/META-INF/MANIFEST.MF 2008-09-03 20:23:40 UTC (rev 22361)
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %plugin.name
Bundle-SymbolicName: org.guvnor.tools;singleton:=true
-Bundle-Version: 0.8.0.200809021730
+Bundle-Version: 0.9.0.200809031608
Bundle-Activator: org.guvnor.tools.Activator
Bundle-Vendor: %plugin.provider
Bundle-Localization: plugin
Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/CommitAction.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/CommitAction.java 2008-09-03 15:56:39 UTC (rev 22360)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/actions/CommitAction.java 2008-09-03 20:23:40 UTC (rev 22361)
@@ -1,33 +1,20 @@
package org.guvnor.tools.actions;
-import java.net.URL;
import java.util.Iterator;
import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IObjectActionDelegate;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.webdav.IResponse;
-import org.guvnor.tools.Activator;
-import org.guvnor.tools.Messages;
import org.guvnor.tools.utils.ActionUtils;
-import org.guvnor.tools.utils.GuvnorMetadataProps;
import org.guvnor.tools.utils.GuvnorMetadataUtils;
import org.guvnor.tools.utils.PlatformUtils;
-import org.guvnor.tools.utils.webdav.IWebDavClient;
-import org.guvnor.tools.utils.webdav.ResourceProperties;
-import org.guvnor.tools.utils.webdav.WebDavClientFactory;
-import org.guvnor.tools.utils.webdav.WebDavException;
-import org.guvnor.tools.utils.webdav.WebDavServerCache;
public class CommitAction implements IObjectActionDelegate {
private IStructuredSelection selectedItems;
- private IWorkbenchPart targetPart;
/**
* Constructor for Action1.
@@ -39,9 +26,7 @@
/**
* @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
*/
- public void setActivePart(IAction action, IWorkbenchPart targetPart) {
- this.targetPart = targetPart;
- }
+ public void setActivePart(IAction action, IWorkbenchPart targetPart) { }
/*
* @see IActionDelegate#run(IAction)
@@ -52,62 +37,11 @@
for (Iterator it = selectedItems.iterator(); it.hasNext();) {
Object oneSelection = it.next();
if (oneSelection instanceof IFile) {
- processCommit((IFile)oneSelection);
+ GuvnorMetadataUtils.commitFileChanges((IFile)oneSelection);
}
}
PlatformUtils.updateDecoration();
}
-
- private void processCommit(IFile selectedFile) {
- try {
- GuvnorMetadataProps props = GuvnorMetadataUtils.getGuvnorMetadata(selectedFile);
- IWebDavClient client = WebDavServerCache.getWebDavClient(props.getRepository());
- if (client == null) {
- client = WebDavClientFactory.createClient(new URL(props.getRepository()));
- WebDavServerCache.cacheWebDavClient(props.getRepository(), client);
- }
- ResourceProperties remoteProps = null;
- try {
- remoteProps = client.queryProperties(props.getFullpath());
- } catch (WebDavException wde) {
- if (wde.getErrorCode() != IResponse.SC_UNAUTHORIZED) {
- // If not an authentication failure, we don't know what to do with it
- throw wde;
- }
- boolean retry = PlatformUtils.getInstance().
- authenticateForServer(props.getRepository(), client);
- if (retry) {
- remoteProps = client.queryProperties(props.getFullpath());
- }
- }
- if (remoteProps == null) {
- throw new Exception("Could not retrieve server version of " + props.getFullpath()); //$NON-NLS-1$
- }
- // Check to make sure that the version in the repository is the same as the base
- // version for the local copy
- boolean proceed = true;
- if (!props.getRevision().equals(remoteProps.getRevision())) {
- String msg = Messages.getString("overwrite.confirmation.prefix") + selectedFile.getName() + Messages.getString("overwrite.confirmation.infix") + //$NON-NLS-1$ //$NON-NLS-2$
- remoteProps.getRevision() + Messages.getString("overwrite.confirmation.suffix") + //$NON-NLS-1$
- props.getRevision() +
- Messages.getString("overwrite.confirmation.question"); //$NON-NLS-1$
- proceed = MessageDialog.openQuestion(targetPart.getSite().getShell(),
- Messages.getString("overwrite.confirmation.caption"), msg); //$NON-NLS-1$
-
- }
- if (proceed) {
- client.putResource(props.getFullpath(), selectedFile.getContents());
- GuvnorMetadataUtils.markCurrentGuvnorResource(selectedFile);
- ResourceProperties resProps = client.queryProperties(props.getFullpath());
- GuvnorMetadataProps mdProps = GuvnorMetadataUtils.getGuvnorMetadata(selectedFile);
- mdProps.setVersion(resProps.getLastModifiedDate());
- mdProps.setRevision(resProps.getRevision());
- GuvnorMetadataUtils.setGuvnorMetadataProps(selectedFile.getFullPath(), mdProps);
- }
- } catch (Exception e) {
- Activator.getDefault().displayError(IStatus.ERROR, e.getMessage(), e);
- }
- }
/*
* @see IActionDelegate#selectionChanged(IAction, ISelection)
Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/GuvnorMetadataUtils.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/GuvnorMetadataUtils.java 2008-09-03 15:56:39 UTC (rev 22360)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/GuvnorMetadataUtils.java 2008-09-03 20:23:40 UTC (rev 22361)
@@ -4,6 +4,7 @@
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
+import java.net.URL;
import java.util.Enumeration;
import java.util.NoSuchElementException;
import java.util.Properties;
@@ -15,9 +16,20 @@
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.QualifiedName;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.webdav.IResponse;
import org.guvnor.tools.Activator;
+import org.guvnor.tools.Messages;
+import org.guvnor.tools.utils.webdav.IWebDavClient;
+import org.guvnor.tools.utils.webdav.ResourceProperties;
+import org.guvnor.tools.utils.webdav.WebDavClientFactory;
+import org.guvnor.tools.utils.webdav.WebDavException;
+import org.guvnor.tools.utils.webdav.WebDavServerCache;
import org.guvnor.tools.views.model.ResourceHistoryEntry;
/**
@@ -44,6 +56,124 @@
}
/**
+ * Adds a resource to Guvnor.
+ * @param repLoc The location of the Guvnor repository
+ * @param targetLoc The location in Guvnor to add the resource
+ * @param selectedFile The resource to add
+ * @return true if the resource is added, false if there is already a resource
+ * with the same name in the given location.
+ */
+ public static boolean addResourceToGuvnor(String repLoc,
+ String targetLoc,
+ IFile selectedFile) {
+ boolean res = false;
+ try {
+ String fullPath = targetLoc + selectedFile.getName();
+ IWebDavClient client = WebDavServerCache.getWebDavClient(repLoc);
+ if (client == null) {
+ client = WebDavClientFactory.createClient(new URL(repLoc));
+ WebDavServerCache.cacheWebDavClient(repLoc, client);
+ }
+ try {
+// res = client.createResource(fullPath, selectedFile.getContents(), false);
+ // Hack: When creating a file, if the actual contents are passed first,
+ // the client hangs for about 20 seconds when closing the InputStream.
+ // Don't know why...
+ // But, if the file is created with empty contents, and then the contents
+ // set, the operation is fast (less than a couple of seconds)
+ res = client.createResource(fullPath, new ByteArrayInputStream(new byte[0]), false);
+ if (res) {
+ client.putResource(fullPath, selectedFile.getContents());
+ }
+ } catch (WebDavException wde) {
+ if (wde.getErrorCode() != IResponse.SC_UNAUTHORIZED) {
+ // If not an authentication failure, we don't know what to do with it
+ throw wde;
+ }
+ boolean retry = PlatformUtils.getInstance().
+ authenticateForServer(repLoc, client);
+ if (retry) {
+// res = client.createResource(fullPath, selectedFile.getContents(), false);
+ // See Hack note immediately above...
+ res = client.createResource(fullPath, new ByteArrayInputStream(new byte[0]), false);
+ if (res) {
+ client.putResource(fullPath, selectedFile.getContents());
+ }
+ }
+ }
+ if (res) {
+ GuvnorMetadataUtils.markCurrentGuvnorResource(selectedFile);
+ ResourceProperties resProps = client.queryProperties(fullPath);
+ GuvnorMetadataProps mdProps =
+ new GuvnorMetadataProps(selectedFile.getName(),
+ repLoc,
+ fullPath, resProps.getLastModifiedDate(),
+ resProps.getRevision());
+ GuvnorMetadataUtils.setGuvnorMetadataProps(selectedFile.getFullPath(), mdProps);
+ }
+ } catch (Exception e) {
+ Activator.getDefault().displayError(IStatus.ERROR, e.getMessage(), e);
+ }
+ return res;
+ }
+
+ /**
+ * Commits changes to Guvnor.
+ * @param selectedFile The Guvnor controlled file with pending changes
+ */
+ public static void commitFileChanges(IFile selectedFile) {
+ try {
+ GuvnorMetadataProps props = GuvnorMetadataUtils.getGuvnorMetadata(selectedFile);
+ IWebDavClient client = WebDavServerCache.getWebDavClient(props.getRepository());
+ if (client == null) {
+ client = WebDavClientFactory.createClient(new URL(props.getRepository()));
+ WebDavServerCache.cacheWebDavClient(props.getRepository(), client);
+ }
+ ResourceProperties remoteProps = null;
+ try {
+ remoteProps = client.queryProperties(props.getFullpath());
+ } catch (WebDavException wde) {
+ if (wde.getErrorCode() != IResponse.SC_UNAUTHORIZED) {
+ // If not an authentication failure, we don't know what to do with it
+ throw wde;
+ }
+ boolean retry = PlatformUtils.getInstance().
+ authenticateForServer(props.getRepository(), client);
+ if (retry) {
+ remoteProps = client.queryProperties(props.getFullpath());
+ }
+ }
+ if (remoteProps == null) {
+ throw new Exception("Could not retrieve server version of " + props.getFullpath()); //$NON-NLS-1$
+ }
+ // Check to make sure that the version in the repository is the same as the base
+ // version for the local copy
+ boolean proceed = true;
+ if (!props.getRevision().equals(remoteProps.getRevision())) {
+ String msg = Messages.getString("overwrite.confirmation.prefix") + selectedFile.getName() + Messages.getString("overwrite.confirmation.infix") + //$NON-NLS-1$ //$NON-NLS-2$
+ remoteProps.getRevision() + Messages.getString("overwrite.confirmation.suffix") + //$NON-NLS-1$
+ props.getRevision() +
+ Messages.getString("overwrite.confirmation.question"); //$NON-NLS-1$
+ Display display = PlatformUI.getWorkbench().getDisplay();
+ proceed = MessageDialog.openQuestion(display.getActiveShell(),
+ Messages.getString("overwrite.confirmation.caption"), msg); //$NON-NLS-1$
+
+ }
+ if (proceed) {
+ client.putResource(props.getFullpath(), selectedFile.getContents());
+ GuvnorMetadataUtils.markCurrentGuvnorResource(selectedFile);
+ ResourceProperties resProps = client.queryProperties(props.getFullpath());
+ GuvnorMetadataProps mdProps = GuvnorMetadataUtils.getGuvnorMetadata(selectedFile);
+ mdProps.setVersion(resProps.getLastModifiedDate());
+ mdProps.setRevision(resProps.getRevision());
+ GuvnorMetadataUtils.setGuvnorMetadataProps(selectedFile.getFullPath(), mdProps);
+ }
+ } catch (Exception e) {
+ Activator.getDefault().displayError(IStatus.ERROR, e.getMessage(), e);
+ }
+ }
+
+ /**
* Finds the local Guvnor metadata file associated with a given resource.
* @param resource The resource path to locate metadata for.
* @return The metadata file for the given resource, null if metadata is not found.
Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/PlatformUtils.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/PlatformUtils.java 2008-09-03 15:56:39 UTC (rev 22360)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/PlatformUtils.java 2008-09-03 20:23:40 UTC (rev 22361)
@@ -4,8 +4,10 @@
import java.util.HashMap;
import java.util.Map;
+import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IStorage;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.MessageDialog;
@@ -55,6 +57,16 @@
return instance;
}
+ /**
+ * Resolves a file system location to an Eclipse workspace resource.
+ * @param location The file system location
+ * @return The Eclipse <code>IFile</code>, null if not found
+ */
+ public static IFile getResourceFromFSPath(String location) {
+ return Activator.getDefault().getWorkspace().
+ getRoot().getFileForLocation(new Path(location));
+ }
+
public static Composite createComposite(Composite parent, int numColumns) {
Composite composite = new Composite(parent, SWT.NULL);
Added: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/ResourceHistorySorter.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/ResourceHistorySorter.java (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/ResourceHistorySorter.java 2008-09-03 20:23:40 UTC (rev 22361)
@@ -0,0 +1,25 @@
+package org.guvnor.tools.utils;
+
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerSorter;
+import org.guvnor.tools.views.model.ResourceHistoryEntry;
+
+/**
+ * Sorts resource versions based on revision number.
+ * @author jgraham
+ */
+public class ResourceHistorySorter extends ViewerSorter {
+
+ @Override
+ public int compare(Viewer viewer, Object e1, Object e2) {
+ if (e1 instanceof ResourceHistoryEntry
+ && e2 instanceof ResourceHistoryEntry) {
+ ResourceHistoryEntry entry1 = (ResourceHistoryEntry)e1;
+ ResourceHistoryEntry entry2 = (ResourceHistoryEntry)e2;
+ return Integer.parseInt(entry2.getRevision()) - Integer.parseInt(entry1.getRevision());
+ } else {
+ return super.compare(viewer, e1, e2);
+ }
+ }
+
+}
Property changes on: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/ResourceHistorySorter.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/VersionChooserDialog.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/VersionChooserDialog.java 2008-09-03 15:56:39 UTC (rev 22360)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/VersionChooserDialog.java 2008-09-03 20:23:40 UTC (rev 22361)
@@ -47,6 +47,7 @@
viewer.setContentProvider(new ResourceHistoryContentProvider(entries));
viewer.setLabelProvider(new ResourceHistoryLabelProvider());
+ viewer.setSorter(new ResourceHistorySorter());
viewer.setInput(this);
viewer.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/RepositoryView.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/RepositoryView.java 2008-09-03 15:56:39 UTC (rev 22360)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/RepositoryView.java 2008-09-03 20:23:40 UTC (rev 22361)
@@ -8,6 +8,7 @@
import java.util.ArrayList;
import java.util.List;
+import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Path;
@@ -23,6 +24,7 @@
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.ViewerDropAdapter;
import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
@@ -31,6 +33,7 @@
import org.eclipse.swt.dnd.DragSourceListener;
import org.eclipse.swt.dnd.FileTransfer;
import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.dnd.TransferData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.ui.IActionBars;
@@ -153,30 +156,98 @@
}
});
-// viewer.addDropSupport(DND.DROP_COPY | DND.DROP_MOVE, transfers, new ViewerDropAdapter(viewer) {
-//
-// private TreeParent targetNode;
-//
-// @Override
-// public boolean performDrop(Object data) {
-// return false;
-// }
-//
-// @Override
-// public boolean validateDrop(Object target, int operation,
-// TransferData transferType) {
-// if (target == null
-// || !(target instanceof TreeParent)) {
-// targetNode = null;
-// return false;
-// }
-// targetNode = (TreeParent)target;
-// return true;
-// }
-//
-// });
+ viewer.addDropSupport(DND.DROP_COPY | DND.DROP_MOVE, transfers, new ViewerDropAdapter(viewer) {
+
+ private TreeParent targetNode;
+
+ @Override
+ public boolean performDrop(Object data) {
+ if (targetNode == null) {
+ return false;
+ }
+ String[] items = (String[])data;
+ String[] errors = processDrop(targetNode, items);
+ if (errors.length != 0) {
+ StringBuilder msg = new StringBuilder();
+ for (int i = 0; i < errors.length; i++) {
+ msg.append(errors[i]);
+ msg.append("\r\n");
+ }
+ Activator.getDefault().
+ displayMessage(IStatus.ERROR, msg.toString());
+ }
+ if (items.length != errors.length) {
+ // At least one item did not have an error,
+ // so refresh the views
+ PlatformUtils.updateDecoration();
+ PlatformUtils.refreshRepositoryView();
+ }
+ return items.length != errors.length;
+ }
+
+ @Override
+ public boolean validateDrop(Object target,
+ int operation,
+ TransferData transferType) {
+ // The drop target needs to be a directory
+ if (target == null
+ || !(target instanceof TreeParent)) {
+ targetNode = null;
+ return false;
+ }
+ targetNode = (TreeParent)target;
+ return true;
+ }
+
+ });
}
+ private String[] processDrop(TreeParent target, String[] items) {
+ List<String> errors = new ArrayList<String>();
+
+ for (int i = 0; i < items.length; i++) {
+ IFile sourceFile = PlatformUtils.getResourceFromFSPath(items[i]);
+ if (sourceFile != null) {
+ try {
+ GuvnorMetadataProps md = GuvnorMetadataUtils.getGuvnorMetadata(sourceFile);
+ if (md == null) {
+ // The file is not already associated with Guvnor, so just add it
+ boolean res = GuvnorMetadataUtils.
+ addResourceToGuvnor(target.getGuvnorRepository().getLocation(),
+ target.getFullPath(), sourceFile);
+ if (!res) {
+ errors.add("Could not add " + items[i] +
+ " to " + target.getFullPath());
+ }
+ } else {
+ // Need to check if the drop location is the same as the Guvnor
+ // associated location. If so, then perform commit.
+ // If not, disallow the drop.
+ String itemPath = target.getFullPath() + sourceFile.getName();
+ if (itemPath.equals(md.getFullpath())) {
+ // If there are pending changes
+ if (!GuvnorMetadataUtils.isGuvnorResourceCurrent(sourceFile)) {
+ GuvnorMetadataUtils.commitFileChanges(sourceFile);
+ }
+ } else {
+ errors.add(items[i] + " is already in Guvnor as " + md.getFullpath());
+ }
+ }
+ } catch (Exception e) {
+ Activator.getDefault().writeLog(IStatus.ERROR, e.getMessage(), e);
+ }
+ } else {
+ Activator.getDefault().
+ writeLog(IStatus.WARNING,
+ "Could not resolve: " + items[i],
+ new Exception());
+ }
+ }
+ String[] res = new String[errors.size()];
+ errors.toArray(res);
+ return res;
+ }
+
private List<String> prepareFileTransfer(TreeObject[] nodes) throws Exception {
List<String> res = new ArrayList<String>();
for (int i = 0; i < nodes.length; i++) {
Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/ResourceHistoryView.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/ResourceHistoryView.java 2008-09-03 15:56:39 UTC (rev 22360)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/ResourceHistoryView.java 2008-09-03 20:23:40 UTC (rev 22361)
@@ -15,8 +15,6 @@
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
@@ -31,6 +29,7 @@
import org.guvnor.tools.Messages;
import org.guvnor.tools.utils.GuvnorMetadataUtils;
import org.guvnor.tools.utils.PlatformUtils;
+import org.guvnor.tools.utils.ResourceHistorySorter;
import org.guvnor.tools.utils.webdav.IWebDavClient;
import org.guvnor.tools.utils.webdav.WebDavClientFactory;
import org.guvnor.tools.utils.webdav.WebDavException;
@@ -45,22 +44,6 @@
*/
public class ResourceHistoryView extends ViewPart {
- class ResourceHistorySorter extends ViewerSorter {
-
- @Override
- public int compare(Viewer viewer, Object e1, Object e2) {
- if (e1 instanceof ResourceHistoryEntry
- && e2 instanceof ResourceHistoryEntry) {
- ResourceHistoryEntry entry1 = (ResourceHistoryEntry)e1;
- ResourceHistoryEntry entry2 = (ResourceHistoryEntry)e2;
- return Integer.parseInt(entry2.getRevision()) - Integer.parseInt(entry1.getRevision());
- } else {
- return super.compare(viewer, e1, e2);
- }
- }
-
- }
-
private Label repositoryLabel;
private Label resourceLabel;
Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/wizards/AddResourceWizard.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/wizards/AddResourceWizard.java 2008-09-03 15:56:39 UTC (rev 22360)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/wizards/AddResourceWizard.java 2008-09-03 20:23:40 UTC (rev 22361)
@@ -1,27 +1,17 @@
package org.guvnor.tools.wizards;
-import java.io.ByteArrayInputStream;
-import java.net.URL;
import java.util.Iterator;
import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
-import org.eclipse.webdav.IResponse;
import org.guvnor.tools.Activator;
import org.guvnor.tools.Messages;
-import org.guvnor.tools.utils.GuvnorMetadataProps;
import org.guvnor.tools.utils.GuvnorMetadataUtils;
import org.guvnor.tools.utils.PlatformUtils;
-import org.guvnor.tools.utils.webdav.IWebDavClient;
-import org.guvnor.tools.utils.webdav.ResourceProperties;
-import org.guvnor.tools.utils.webdav.WebDavClientFactory;
-import org.guvnor.tools.utils.webdav.WebDavException;
-import org.guvnor.tools.utils.webdav.WebDavServerCache;
public class AddResourceWizard extends Wizard implements INewWizard, IGuvnorWizard {
@@ -89,55 +79,12 @@
}
private boolean processSelectedFile(IFile selectedFile) {
- boolean res = false;
- try {
- String fullPath = model.getTargetLocation() + selectedFile.getName();
- IWebDavClient client = WebDavServerCache.getWebDavClient(model.getRepLocation());
- if (client == null) {
- client = WebDavClientFactory.createClient(new URL(model.getRepLocation()));
- WebDavServerCache.cacheWebDavClient(model.getRepLocation(), client);
- }
- try {
-// res = client.createResource(fullPath, selectedFile.getContents(), false);
- // Hack: When creating a file, if the actual contents are passed first,
- // the client hangs for about 20 seconds when closing the InputStream.
- // Don't know why...
- // But, if the file is created with empty contents, and then the contents
- // set, the operation is fast (less than a couple of seconds)
- res = client.createResource(fullPath, new ByteArrayInputStream(new byte[0]), false);
- if (!res) {
- setDuplicateFileError(selectedFile);
- }
- client.putResource(fullPath, selectedFile.getContents());
- } catch (WebDavException wde) {
- if (wde.getErrorCode() != IResponse.SC_UNAUTHORIZED) {
- // If not an authentication failure, we don't know what to do with it
- throw wde;
- }
- boolean retry = PlatformUtils.getInstance().
- authenticateForServer(model.getRepLocation(), client);
- if (retry) {
-// res = client.createResource(fullPath, selectedFile.getContents(), false);
- // See Hack note immediately above...
- res = client.createResource(fullPath, new ByteArrayInputStream(new byte[0]), false);
- if (!res) {
- setDuplicateFileError(selectedFile);
- }
- client.putResource(fullPath, selectedFile.getContents());
- }
- }
- if (res) {
- GuvnorMetadataUtils.markCurrentGuvnorResource(selectedFile);
- ResourceProperties resProps = client.queryProperties(fullPath);
- GuvnorMetadataProps mdProps =
- new GuvnorMetadataProps(selectedFile.getName(),
- model.getRepLocation(),
- fullPath, resProps.getLastModifiedDate(),
- resProps.getRevision());
- GuvnorMetadataUtils.setGuvnorMetadataProps(selectedFile.getFullPath(), mdProps);
- }
- } catch (Exception e) {
- Activator.getDefault().displayError(IStatus.ERROR, e.getMessage(), e);
+ boolean res = GuvnorMetadataUtils.
+ addResourceToGuvnor(model.getRepLocation(),
+ model.getTargetLocation(),
+ selectedFile);
+ if (!res) {
+ setDuplicateFileError(selectedFile);
}
return res;
}
More information about the jboss-svn-commits
mailing list