Index: editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/filesview/FilesView.java |
=================================================================== |
--- editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/filesview/FilesView.java (revision 5505) |
+++ editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/filesview/FilesView.java (working copy) |
@@ -48,6 +48,7 @@ |
import org.eclipse.jface.viewers.IStructuredSelection; |
import org.eclipse.jface.viewers.StructuredSelection; |
import org.eclipse.jface.viewers.TreeViewer; |
+import org.eclipse.swt.dnd.Clipboard; |
import org.eclipse.swt.dnd.DND; |
import org.eclipse.swt.dnd.FileTransfer; |
import org.eclipse.swt.dnd.Transfer; |
@@ -55,11 +56,13 @@ |
import org.eclipse.swt.widgets.Composite; |
import org.eclipse.swt.widgets.Menu; |
import org.eclipse.swt.widgets.Shell; |
+import org.eclipse.ui.IActionBars; |
import org.eclipse.ui.IMemento; |
import org.eclipse.ui.ISharedImages; |
import org.eclipse.ui.IViewSite; |
import org.eclipse.ui.PartInitException; |
import org.eclipse.ui.PlatformUI; |
+import org.eclipse.ui.actions.ActionFactory; |
import org.eclipse.ui.actions.MoveResourceAction; |
import org.eclipse.ui.actions.RenameResourceAction; |
import org.eclipse.ui.ide.IDE; |
@@ -142,6 +145,12 @@ |
private RefreshAction refreshAction; |
+ private CopyAction copyAction; |
+ |
+ private PasteAction pasteAction; |
+ |
+ private Clipboard clipboard; |
+ |
public FilesView() { |
} |
@@ -166,6 +175,8 @@ |
getSite().setSelectionProvider(treeViewer); |
+ makeActions(); |
+ |
fillInToolbar(getViewSite().getActionBars().getToolBarManager()); |
fillInActionBars(); |
@@ -179,29 +190,6 @@ |
} |
}); |
- createFileAction = new OpenNewFileWizardAction(getSite().getWorkbenchWindow()); |
- treeViewer.addSelectionChangedListener(createFileAction); |
- createFolderAction = new OpenNewFolderWizardAction(getSite().getWorkbenchWindow()); |
- treeViewer.addSelectionChangedListener(createFolderAction); |
- renameAction = new RenameResourceAction(getShell(), treeViewer.getTree()); |
- treeViewer.addSelectionChangedListener(renameAction); |
- moveAction = new MoveResourceAction(getShell()); |
- treeViewer.addSelectionChangedListener(moveAction); |
- |
- refreshAction = new RefreshAction(this); |
- treeViewer.addSelectionChangedListener(refreshAction); |
- |
- deleteAction = new DeleteAction(getSite()); |
- deleteAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor( |
- ISharedImages.IMG_TOOL_DELETE)); |
- treeViewer.addSelectionChangedListener(deleteAction); |
- |
- hideContainerAction = new HideProjectAction(getSite()); |
- treeViewer.addSelectionChangedListener(hideContainerAction); |
- |
- copyFilePathAction = new CopyFilePathAction(getSite()); |
- treeViewer.addSelectionChangedListener(copyFilePathAction); |
- |
JFaceResources.getFontRegistry().addListener(fontPropertyChangeListener); |
updateTreeFont(); |
@@ -218,6 +206,10 @@ |
} |
treeViewer.removeSelectionChangedListener(copyFilePathAction); |
+ if (clipboard != null) { |
+ clipboard.dispose(); |
+ } |
+ |
super.dispose(); |
} |
@@ -299,6 +291,25 @@ |
manager.add(OpenFolderHandler.createCommandAction(getSite().getWorkbenchWindow())); |
+ // EDIT GROUP |
+ |
+ if (!selection.isEmpty() && allElementsAreResources(selection)) { |
+ |
+ manager.add(new Separator()); |
+ |
+ manager.add(copyAction); |
+ |
+ // Copy File Path iff single element and is an IResource |
+ |
+ if (selection.size() == 1) { |
+ manager.add(copyFilePathAction); |
+ } |
+ |
+ manager.add(pasteAction); |
+ manager.add(new Separator()); |
+ manager.add(refreshAction); |
+ } |
+ |
// REFACTOR GROUP |
// Refactor iff all elements are IResources |
@@ -309,28 +320,22 @@ |
manager.add(renameAction); |
manager.add(moveAction); |
} |
+ |
+ manager.add(new Separator()); |
manager.add(deleteAction); |
- manager.add(new Separator()); |
- manager.add(refreshAction); |
} |
- // Remove, iff non-empty selection, all elements are IResources |
- |
if (!selection.isEmpty() && allElementsAreResources(selection)) { |
- // Copy File Path iff single element and is an IResource |
+ // Remove, iff non-empty selection, all elements are IResources |
- if (selection.size() == 1) { |
- manager.add(new Separator()); |
- manager.add(copyFilePathAction); |
- } |
- |
manager.add(new Separator()); |
if (allElementsAreProjects(selection)) { |
manager.add(hideContainerAction); |
} |
} |
+ |
} |
protected void fillInToolbar(IToolBarManager toolbar) { |
@@ -421,10 +426,16 @@ |
} |
private void fillInActionBars() { |
+ |
+ IActionBars actionBars = getViewSite().getActionBars(); |
IUndoContext workspaceContext = (IUndoContext) ResourcesPlugin.getWorkspace().getAdapter( |
IUndoContext.class); |
undoRedoActionGroup = new UndoRedoActionGroup(getViewSite(), workspaceContext, true); |
- undoRedoActionGroup.fillActionBars(getViewSite().getActionBars()); |
+ undoRedoActionGroup.fillActionBars(actionBars); |
+ |
+ actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), copyAction); |
+ actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), pasteAction); |
+ |
} |
private void initDragAndDrop() { |
@@ -438,4 +449,37 @@ |
treeViewer.addDropSupport(ops | DND.DROP_DEFAULT, transfers, adapter); |
} |
+ private void makeActions() { |
+ createFileAction = new OpenNewFileWizardAction(getSite().getWorkbenchWindow()); |
+ treeViewer.addSelectionChangedListener(createFileAction); |
+ createFolderAction = new OpenNewFolderWizardAction(getSite().getWorkbenchWindow()); |
+ treeViewer.addSelectionChangedListener(createFolderAction); |
+ renameAction = new RenameResourceAction(getShell(), treeViewer.getTree()); |
+ treeViewer.addSelectionChangedListener(renameAction); |
+ moveAction = new MoveResourceAction(getShell()); |
+ treeViewer.addSelectionChangedListener(moveAction); |
+ |
+ clipboard = new Clipboard(getShell().getDisplay()); |
+ |
+ pasteAction = new PasteAction(getShell(), clipboard); |
+ treeViewer.addSelectionChangedListener(pasteAction); |
+ |
+ copyAction = new CopyAction(getShell(), clipboard, pasteAction); |
+ treeViewer.addSelectionChangedListener(copyAction); |
+ |
+ refreshAction = new RefreshAction(this); |
+ treeViewer.addSelectionChangedListener(refreshAction); |
+ |
+ deleteAction = new DeleteAction(getSite()); |
+ deleteAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor( |
+ ISharedImages.IMG_TOOL_DELETE)); |
+ treeViewer.addSelectionChangedListener(deleteAction); |
+ |
+ hideContainerAction = new HideProjectAction(getSite()); |
+ treeViewer.addSelectionChangedListener(hideContainerAction); |
+ |
+ copyFilePathAction = new CopyFilePathAction(getSite()); |
+ treeViewer.addSelectionChangedListener(copyFilePathAction); |
+ } |
+ |
} |