Home | History | Annotate | Download | only in views
      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