Package org.eclipse.ui.part

Source Code of org.eclipse.ui.part.DrillDownComposite

/*******************************************************************************
* Copyright (c) 2000, 2006 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.ui.part;

import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.ToolBar;

/**
* Class <code>DrillDownComposite</code> implements a simple web
* style navigation metaphor.  Home, back, and "drill into" buttons are
* added to a tree viewer for easier navigation.
* <p>
* To use the DrillDownComposite..
* </p>
* <ul>
* <li>Create an instance of <code>DrillDownComposite</code>.</li>
* <li>Create a tree viewer.  </li>
* <li>Pass the second tree viewer into the composite by
*   calling <code>setChildTree</code>.</li>
* </ol>
*/
public class DrillDownComposite extends Composite {
    private ToolBarManager toolBarMgr;

    private TreeViewer fChildTree;

    private DrillDownAdapter adapter;

    /**
     * Constructs a new DrillDownTreeViewer.
     *
     * @param parent the parent composite for this control
     * @param style the SWT style for this control
     */
    public DrillDownComposite(Composite parent, int style) {
        super(parent, style);
        createNavigationButtons();
    }

    /**
     * Creates the navigation buttons for this viewer.
     */
    protected void createNavigationButtons() {
        GridData gid;
        GridLayout layout;

        // Define layout.
        layout = new GridLayout();
        layout.marginHeight = layout.marginWidth = layout.horizontalSpacing = layout.verticalSpacing = 0;
        setLayout(layout);

        // Create a toolbar.
        toolBarMgr = new ToolBarManager(SWT.FLAT);
        ToolBar toolBar = toolBarMgr.createControl(this);
        gid = new GridData();
        gid.horizontalAlignment = GridData.FILL;
        gid.verticalAlignment = GridData.BEGINNING;
        toolBar.setLayoutData(gid);
    }

    /**
     * Sets the child viewer.  This method should only be called once, after the
     * viewer has been created.
     *
     * @param aViewer the new child viewer
     */
    public void setChildTree(TreeViewer aViewer) {
        // Save viewer.
        fChildTree = aViewer;

        // Create adapter.
        adapter = new DrillDownAdapter(fChildTree);
        adapter.addNavigationActions(toolBarMgr);
        toolBarMgr.update(true);

        // Set tree layout.
        fChildTree.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
        layout();
    }
}
TOP

Related Classes of org.eclipse.ui.part.DrillDownComposite

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.