Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2005-02-10 21:13:06 +0000
committerMichael Valenta2005-02-10 21:13:06 +0000
commit7e3f96b5d6db52e1eeebe04fcca0624a7aae894f (patch)
treecb4df0c00f203d4a4c0248820799977041855d40 /bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoriesView.java
parenteaccd197b8ef1c193ce2885eea37eb0a9ce21dab (diff)
downloadeclipse.platform.team-7e3f96b5d6db52e1eeebe04fcca0624a7aae894f.tar.gz
eclipse.platform.team-7e3f96b5d6db52e1eeebe04fcca0624a7aae894f.tar.xz
eclipse.platform.team-7e3f96b5d6db52e1eeebe04fcca0624a7aae894f.zip
Bug 82939 Enable drag-n-drop from cvs repository view to cvs resource history view
Diffstat (limited to 'bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoriesView.java')
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoriesView.java52
1 files changed, 52 insertions, 0 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoriesView.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoriesView.java
index d53918971..49deec9eb 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoriesView.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RepositoriesView.java
@@ -26,6 +26,10 @@ import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.DragSourceEvent;
+import org.eclipse.swt.dnd.DragSourceListener;
+import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.widgets.Composite;
@@ -37,6 +41,7 @@ import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
import org.eclipse.team.internal.ccvs.core.ICVSResource;
import org.eclipse.team.internal.ccvs.core.util.KnownRepositories;
+import org.eclipse.team.internal.ccvs.ui.CVSResourceTransfer;
import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
@@ -97,6 +102,45 @@ public class RepositoriesView extends RemoteViewPart {
});
}
};
+
+ private static final class RepositoryDragSourceListener implements DragSourceListener {
+ private IStructuredSelection selection;
+
+ public void dragStart(DragSourceEvent event) {
+ if(selection!=null) {
+ final Object[] array = selection.toArray();
+ // event.doit = Utils.getResources(array).length > 0;
+ for (int i = 0; i < array.length; i++) {
+ if (array[i] instanceof ICVSRemoteFile) {
+ event.doit = true;
+ return;
+ }
+ }
+ event.doit = false;
+ }
+ }
+
+ public void dragSetData(DragSourceEvent event) {
+ if (selection!=null && CVSResourceTransfer.getInstance().isSupportedType(event.dataType)) {
+ final Object[] array = selection.toArray();
+ for (int i = 0; i < array.length; i++) {
+ if (array[i] instanceof ICVSRemoteFile) {
+ event.data = array[i];
+ return;
+ }
+ }
+ }
+ }
+
+ public void dragFinished( DragSourceEvent event) {
+ }
+
+ public void updateSelection( IStructuredSelection selection) {
+ this.selection = selection;
+ }
+ }
+
+ RepositoryDragSourceListener repositoryDragSourceListener;
/**
* Constructor for RepositoriesView.
@@ -247,6 +291,11 @@ public class RepositoriesView extends RemoteViewPart {
handleChange(selection);
}
});
+
+ repositoryDragSourceListener = new RepositoryDragSourceListener();
+ viewer.addDragSupport( DND.DROP_LINK | DND.DROP_DEFAULT,
+ new Transfer[] { CVSResourceTransfer.getInstance()},
+ repositoryDragSourceListener);
}
/**
@@ -323,5 +372,8 @@ public class RepositoriesView extends RemoteViewPart {
removeRootAction.updateSelection(selection);
removeDateTagAction.updateSelection(selection);
removeAction.setEnabled(removeRootAction.isEnabled() || removeDateTagAction.isEnabled());
+
+ repositoryDragSourceListener.updateSelection(selection);
}
+
}

Back to the top