diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.hierarchyviewer/src/com/android/ide/eclipse/hierarchyviewer/views/DeviceSelectorView.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.hierarchyviewer/src/com/android/ide/eclipse/hierarchyviewer/views/DeviceSelectorView.java | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.hierarchyviewer/src/com/android/ide/eclipse/hierarchyviewer/views/DeviceSelectorView.java b/eclipse/plugins/com.android.ide.eclipse.hierarchyviewer/src/com/android/ide/eclipse/hierarchyviewer/views/DeviceSelectorView.java new file mode 100644 index 000000000..1905cde1a --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.hierarchyviewer/src/com/android/ide/eclipse/hierarchyviewer/views/DeviceSelectorView.java @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2010 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.hierarchyviewer.views; + +import com.android.hierarchyviewerlib.actions.InspectScreenshotAction; +import com.android.hierarchyviewerlib.actions.LoadViewHierarchyAction; +import com.android.hierarchyviewerlib.actions.RefreshWindowsAction; +import com.android.hierarchyviewerlib.ui.DeviceSelector; +import com.android.ide.eclipse.hierarchyviewer.PixelPerfectPespective; +import com.android.ide.eclipse.hierarchyviewer.TreeViewPerspective; + +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.IPerspectiveDescriptor; +import org.eclipse.ui.IPerspectiveListener; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.part.ViewPart; + +public class DeviceSelectorView extends ViewPart implements IPerspectiveListener { + + public static final String ID = + "com.android.ide.eclipse.hierarchyviewer.views.DeviceSelectorView"; //$NON-NLS-1$ + + private DeviceSelector mDeviceSelector; + + @Override + public void createPartControl(Composite parent) { + parent.setLayout(new FillLayout()); + + + IPerspectiveDescriptor perspective = getViewSite().getPage().getPerspective(); + boolean doTreeViewStuff = true; + boolean doPixelPerfectStuff = true; + if (perspective.getId().equals(PixelPerfectPespective.ID)) { + doTreeViewStuff = false; + } else if (perspective.getId().equals(TreeViewPerspective.ID)) { + doPixelPerfectStuff = false; + } + mDeviceSelector = new DeviceSelector(parent, doTreeViewStuff, doPixelPerfectStuff); + + placeActions(doTreeViewStuff, doPixelPerfectStuff); + + getViewSite().getWorkbenchWindow().addPerspectiveListener(this); + } + + @Override + public void dispose() { + super.dispose(); + getViewSite().getWorkbenchWindow().removePerspectiveListener(this); + } + + private void placeActions(boolean doTreeViewStuff, boolean doPixelPerfectStuff) { + IActionBars actionBars = getViewSite().getActionBars(); + + IMenuManager mm = actionBars.getMenuManager(); + mm.removeAll(); + mm.add(RefreshWindowsAction.getAction()); + + IToolBarManager tm = actionBars.getToolBarManager(); + tm.removeAll(); + tm.add(RefreshWindowsAction.getAction()); + + if (doTreeViewStuff) { + mm.add(LoadViewHierarchyAction.getAction()); + tm.add(LoadViewHierarchyAction.getAction()); + } + if (doPixelPerfectStuff) { + mm.add(InspectScreenshotAction.getAction()); + tm.add(InspectScreenshotAction.getAction()); + } + + mm.updateAll(true); + tm.update(true); + actionBars.updateActionBars(); + } + + @Override + public void setFocus() { + mDeviceSelector.setFocus(); + } + + @Override + public void perspectiveActivated(IWorkbenchPage page, IPerspectiveDescriptor perspective) { + if (perspective.getId().equals(PixelPerfectPespective.ID)) { + mDeviceSelector.setMode(false, true); + placeActions(false, true); + } else if (perspective.getId().equals(TreeViewPerspective.ID)) { + mDeviceSelector.setMode(true, false); + placeActions(true, false); + } else { + mDeviceSelector.setMode(true, true); + placeActions(true, true); + } + } + + @Override + public void perspectiveChanged(IWorkbenchPage page, IPerspectiveDescriptor perspective, + String changeId) { + // pass + } + +} |