Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(361)

Unified Diff: editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/filesview/FilesView.java

Issue 9704059: Files View copy/paste and keybindings/menu repair. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
+ }
+
}

Powered by Google App Engine
This is Rietveld 408576698