/*
* 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.Device;
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 org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.Separator;
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) {
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.setImages(PlatformUI.getWorkbench()
.getSharedImages().getImage(ISharedImages.IMG_OBJ_FILE),
PlatformUI.getWorkbench() .getSharedImages().getImage(
ISharedImages.IMG_OBJ_FOLDER),
DdmsPlugin.getImageLoader().loadDescriptor("android.png") //$NON-NLS-1$
.createImage(),
PlatformUI.getWorkbench() .getSharedImages().getImage(
ISharedImages.IMG_OBJ_ELEMENT));
// creates the actions
CommonAction pushAction = new CommonAction("Push File...") {
@Override
public void run() {
mExplorer.pushIntoSelection();
}
};
pushAction.setToolTipText("Push a file onto the device");
pushAction.setImageDescriptor(DdmsPlugin.getImageLoader()
.loadDescriptor("push.png")); //$NON-NLS-1$
pushAction.setEnabled(false);
CommonAction pullAction = new CommonAction("Pull File...") {
@Override
public void run() {
mExplorer.pullSelection();
}
};
pullAction.setToolTipText("Pull a file from the device");
pullAction.setImageDescriptor(DdmsPlugin.getImageLoader()
.loadDescriptor("pull.png")); //$NON-NLS-1$
pullAction.setEnabled(false);
CommonAction deleteAction = new CommonAction("Delete") {
@Override
public void run() {
mExplorer.deleteSelection();
}
};
deleteAction.setToolTipText("Delete the selection");
deleteAction.setImageDescriptor(DdmsPlugin.getImageLoader()
.loadDescriptor("delete.png")); //$NON-NLS-1$
deleteAction.setEnabled(false);
// set up the actions in the explorer
mExplorer.setActions(pushAction, pullAction, deleteAction);
// 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);
toolBarManager.add(pullAction);
toolBarManager.add(pushAction);
toolBarManager.add(new Separator());
toolBarManager.add(deleteAction);
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.
*/
public void selectionChanged(Client selectedClient) {
// pass
}
/**
* Sent when a new {@link Device} is selected.
* @param selectedDevice the selected device.
*/
public void selectionChanged(Device selectedDevice) {
mExplorer.switchDevice(selectedDevice);
}
/**
* Sent when there is no current selection.
*/
public void selectionRemoved() {
}
}