1 /* 2 * Copyright (C) 2010 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.ide.eclipse.hierarchyviewer.views; 18 19 import com.android.hierarchyviewerlib.actions.CapturePSDAction; 20 import com.android.hierarchyviewerlib.actions.DisplayViewAction; 21 import com.android.hierarchyviewerlib.actions.DumpDisplayListAction; 22 import com.android.hierarchyviewerlib.actions.InvalidateAction; 23 import com.android.hierarchyviewerlib.actions.ProfileNodesAction; 24 import com.android.hierarchyviewerlib.actions.RefreshViewAction; 25 import com.android.hierarchyviewerlib.actions.RequestLayoutAction; 26 import com.android.hierarchyviewerlib.actions.SaveTreeViewAction; 27 import com.android.hierarchyviewerlib.ui.TreeView; 28 import com.android.hierarchyviewerlib.ui.TreeViewControls; 29 30 import org.eclipse.jface.action.IMenuManager; 31 import org.eclipse.jface.action.IToolBarManager; 32 import org.eclipse.jface.action.Separator; 33 import org.eclipse.swt.SWT; 34 import org.eclipse.swt.layout.FillLayout; 35 import org.eclipse.swt.layout.GridData; 36 import org.eclipse.swt.layout.GridLayout; 37 import org.eclipse.swt.widgets.Composite; 38 import org.eclipse.ui.IActionBars; 39 import org.eclipse.ui.part.ViewPart; 40 41 // Awesome name. 42 public class TreeViewView extends ViewPart { 43 44 public static final String ID = "com.android.ide.eclipse.hierarchyviewer.views.TreeViewView"; //$NON-NLS-1$ 45 46 private TreeView mTreeView; 47 48 @Override 49 public void createPartControl(Composite parent) { 50 GridLayout layout = new GridLayout(); 51 layout.marginWidth = layout.marginHeight = 0; 52 layout.horizontalSpacing = layout.verticalSpacing = 0; 53 parent.setLayout(layout); 54 55 Composite treeViewContainer = new Composite(parent, SWT.BORDER); 56 treeViewContainer.setLayoutData(new GridData(GridData.FILL_BOTH)); 57 treeViewContainer.setLayout(new FillLayout()); 58 59 mTreeView = new TreeView(treeViewContainer); 60 61 TreeViewControls treeViewControls = new TreeViewControls(parent); 62 treeViewControls.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 63 64 placeActions(); 65 } 66 67 public void placeActions() { 68 IActionBars actionBars = getViewSite().getActionBars(); 69 70 IMenuManager mm = actionBars.getMenuManager(); 71 mm.removeAll(); 72 mm.add(SaveTreeViewAction.getAction(getSite().getShell())); 73 mm.add(CapturePSDAction.getAction(getSite().getShell())); 74 mm.add(new Separator()); 75 mm.add(RefreshViewAction.getAction()); 76 mm.add(DisplayViewAction.getAction(getSite().getShell())); 77 mm.add(new Separator()); 78 mm.add(InvalidateAction.getAction()); 79 mm.add(RequestLayoutAction.getAction()); 80 mm.add(DumpDisplayListAction.getAction()); 81 mm.add(ProfileNodesAction.getAction()); 82 83 IToolBarManager tm = actionBars.getToolBarManager(); 84 tm.removeAll(); 85 tm.add(SaveTreeViewAction.getAction(getSite().getShell())); 86 tm.add(CapturePSDAction.getAction(getSite().getShell())); 87 tm.add(new Separator()); 88 tm.add(RefreshViewAction.getAction()); 89 tm.add(DisplayViewAction.getAction(getSite().getShell())); 90 tm.add(new Separator()); 91 tm.add(InvalidateAction.getAction()); 92 tm.add(RequestLayoutAction.getAction()); 93 tm.add(DumpDisplayListAction.getAction()); 94 tm.add(ProfileNodesAction.getAction()); 95 } 96 97 98 @Override 99 public void setFocus() { 100 mTreeView.setFocus(); 101 } 102 103 } 104