aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.ddms/src/com/android/ide/eclipse/ddms/views/FileExplorerView.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.ddms/src/com/android/ide/eclipse/ddms/views/FileExplorerView.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.ddms/src/com/android/ide/eclipse/ddms/views/FileExplorerView.java181
1 files changed, 181 insertions, 0 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.ddms/src/com/android/ide/eclipse/ddms/views/FileExplorerView.java b/eclipse/plugins/com.android.ide.eclipse.ddms/src/com/android/ide/eclipse/ddms/views/FileExplorerView.java
new file mode 100644
index 000000000..41796dcfd
--- /dev/null
+++ b/eclipse/plugins/com.android.ide.eclipse.ddms/src/com/android/ide/eclipse/ddms/views/FileExplorerView.java
@@ -0,0 +1,181 @@
+/*
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.ide.eclipse.ddms.views;
+
+import com.android.ddmlib.Client;
+import com.android.ddmlib.IDevice;
+import com.android.ddmuilib.ImageLoader;
+import com.android.ddmuilib.explorer.DeviceExplorer;
+import com.android.ide.eclipse.ddms.CommonAction;
+import com.android.ide.eclipse.ddms.DdmsPlugin;
+import com.android.ide.eclipse.ddms.DdmsPlugin.ISelectionListener;
+import com.android.ide.eclipse.ddms.i18n.Messages;
+
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.swt.graphics.Device;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.ViewPart;
+
+public class FileExplorerView extends ViewPart implements ISelectionListener {
+
+ public static final String ID = "com.android.ide.eclipse.ddms.views.FileExplorerView"; //$NON-NLS-1$
+
+ private final static String COLUMN_NAME =
+ DdmsPlugin.PLUGIN_ID + ".explorer.name"; //$NON-NLS-1S
+ private final static String COLUMN_SIZE =
+ DdmsPlugin.PLUGIN_ID + ".explorer.size"; //$NON-NLS-1S
+ private final static String COLUMN_DATE =
+ DdmsPlugin.PLUGIN_ID + ".explorer.data"; //$NON-NLS-1S
+ private final static String COLUMN_TIME =
+ DdmsPlugin.PLUGIN_ID + ".explorer.time"; //$NON-NLS-1S
+ private final static String COLUMN_PERMISSIONS =
+ DdmsPlugin.PLUGIN_ID + ".explorer.permissions"; //$NON-NLS-1S
+ private final static String COLUMN_INFO =
+ DdmsPlugin.PLUGIN_ID + ".explorer.info"; //$NON-NLS-1$
+
+ private DeviceExplorer mExplorer;
+
+ public FileExplorerView() {
+ }
+
+ @Override
+ public void createPartControl(Composite parent) {
+ ImageLoader loader = ImageLoader.getDdmUiLibLoader();
+
+ DeviceExplorer.COLUMN_NAME = COLUMN_NAME;
+ DeviceExplorer.COLUMN_SIZE = COLUMN_SIZE;
+ DeviceExplorer.COLUMN_DATE = COLUMN_DATE;
+ DeviceExplorer.COLUMN_TIME = COLUMN_TIME;
+ DeviceExplorer.COLUMN_PERMISSIONS = COLUMN_PERMISSIONS;
+ DeviceExplorer.COLUMN_INFO = COLUMN_INFO;
+
+ // device explorer
+ mExplorer = new DeviceExplorer();
+
+ mExplorer.setCustomImages(
+ PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FILE),
+ PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER),
+ null /* apk image */,
+ PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT)
+ );
+
+ // creates the actions
+ CommonAction pushAction = new CommonAction(Messages.FileExplorerView_Push_File) {
+ @Override
+ public void run() {
+ mExplorer.pushIntoSelection();
+ }
+ };
+ pushAction.setToolTipText(Messages.FileExplorerView_Push_File_Onto_Device);
+ pushAction.setImageDescriptor(loader.loadDescriptor("push.png")); //$NON-NLS-1$
+ pushAction.setEnabled(false);
+
+ CommonAction pullAction = new CommonAction(Messages.FileExplorerView_Pull_File) {
+ @Override
+ public void run() {
+ mExplorer.pullSelection();
+ }
+ };
+ pullAction.setToolTipText(Messages.FileExplorerView_Pull_File_From_File);
+ pullAction.setImageDescriptor(loader.loadDescriptor("pull.png")); //$NON-NLS-1$
+ pullAction.setEnabled(false);
+
+ CommonAction deleteAction = new CommonAction(Messages.FileExplorerView_Delete) {
+ @Override
+ public void run() {
+ mExplorer.deleteSelection();
+ }
+ };
+ deleteAction.setToolTipText(Messages.FileExplorerView_Delete_The_Selection);
+ deleteAction.setImageDescriptor(loader.loadDescriptor("delete.png")); //$NON-NLS-1$
+ deleteAction.setEnabled(false);
+
+ CommonAction createNewFolderAction = new CommonAction("New Folder") {
+ @Override
+ public void run() {
+ mExplorer.createNewFolderInSelection();
+ }
+ };
+ createNewFolderAction.setToolTipText("New Folder");
+ createNewFolderAction.setImageDescriptor(loader.loadDescriptor("add.png")); //$NON-NLS-1$
+ createNewFolderAction.setEnabled(false);
+
+ // set up the actions in the explorer
+ mExplorer.setActions(pushAction, pullAction, deleteAction, createNewFolderAction);
+
+ // and in the ui
+ IActionBars actionBars = getViewSite().getActionBars();
+ IMenuManager menuManager = actionBars.getMenuManager();
+ IToolBarManager toolBarManager = actionBars.getToolBarManager();
+
+ menuManager.add(pullAction);
+ menuManager.add(pushAction);
+ menuManager.add(new Separator());
+ menuManager.add(deleteAction);
+ menuManager.add(new Separator());
+ menuManager.add(createNewFolderAction);
+
+ toolBarManager.add(pullAction);
+ toolBarManager.add(pushAction);
+ toolBarManager.add(new Separator());
+ toolBarManager.add(deleteAction);
+ toolBarManager.add(new Separator());
+ toolBarManager.add(createNewFolderAction);
+
+ mExplorer.createPanel(parent);
+
+ DdmsPlugin.getDefault().addSelectionListener(this);
+ }
+
+ @Override
+ public void setFocus() {
+ mExplorer.setFocus();
+ }
+
+ /**
+ * Sent when a new {@link Client} is selected.
+ *
+ * @param selectedClient The selected client.
+ */
+ @Override
+ public void selectionChanged(Client selectedClient) {
+ // pass
+ }
+
+ /**
+ * Sent when a new {@link Device} is selected.
+ *
+ * @param selectedDevice the selected device.
+ */
+ @Override
+ public void selectionChanged(IDevice selectedDevice) {
+ mExplorer.switchDevice(selectedDevice);
+ }
+
+ /**
+ * Sent when there is no current selection.
+ */
+ public void selectionRemoved() {
+
+ }
+
+}