| /* |
| * 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() { |
| |
| } |
| |
| } |