// ================================================================== // EmptyStandaloneStackPresentation.java // ================================================================== // IBM Confidential // OCO Source Materials // � Copyright IBM Corp. 2005 // ================================================================== package org.eclipse.swt.nebula.presentations.shelf; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.ui.presentations.IPresentablePart; import org.eclipse.ui.presentations.IStackPresentationSite; import org.eclipse.ui.presentations.StackDropResult; import org.eclipse.ui.presentations.StackPresentation; /** * * * @author chris.gross@us.ibm.com * @since 2.0.0 */ public class EmptyStandaloneStackPresentation extends StackPresentation { private Composite partParent; private Composite borderComposite; public EmptyStandaloneStackPresentation(IStackPresentationSite stackSite, Composite parent) { super(stackSite); partParent = parent; borderComposite = new Composite(parent,SWT.BORDER); } /** * {@inheritDoc} */ @Override public void addPart(IPresentablePart newPart, Object cookie) { } /** * {@inheritDoc} */ @Override public void dispose() { borderComposite.dispose(); } /** * {@inheritDoc} */ @Override public StackDropResult dragOver(Control currentControl, Point location) { // TODO Auto-generated method stub return null; } /** * {@inheritDoc} */ @Override public Control getControl() { return borderComposite; } /** * {@inheritDoc} */ @Override public Control[] getTabList(IPresentablePart part) { return null; } /** * {@inheritDoc} */ @Override public void removePart(IPresentablePart oldPart) { } /** * {@inheritDoc} */ @Override public void selectPart(IPresentablePart toSelect) { toSelect.setVisible(true); if (toSelect.getToolBar() != null) toSelect.getToolBar().setVisible(true); } /** * {@inheritDoc} */ @Override public void setActive(int newState) { } /** * {@inheritDoc} */ @Override public void setBounds(Rectangle bounds) { borderComposite.setBounds(bounds); Rectangle clientArea = borderComposite.getClientArea(); IPresentablePart part = getSite().getSelectedPart(); if (part == null) return; Control partTB = part.getToolBar(); Rectangle tbBounds = new Rectangle(0,0,0,0); if (partTB != null) { Point size = partTB.computeSize(clientArea.width, SWT.DEFAULT); tbBounds.width = size.x; tbBounds.height = Math.min(size.y, clientArea.height); tbBounds = borderComposite.getDisplay().map(borderComposite, partTB.getParent(), tbBounds); partTB.setBounds(tbBounds); clientArea.y += tbBounds.height; clientArea.height -= tbBounds.height; } clientArea = borderComposite.getDisplay().map(borderComposite, partParent, clientArea); part.setBounds(clientArea); } /** * {@inheritDoc} */ @Override public void setState(int state) { } /** * {@inheritDoc} */ @Override public void setVisible(boolean isVisible) { getSite().getSelectedPart().setVisible(true); if (getSite().getSelectedPart().getToolBar() != null) getSite().getSelectedPart().getToolBar().setVisible(true); } /** * {@inheritDoc} */ @Override public void showPaneMenu() { // TODO Auto-generated method stub } /** * {@inheritDoc} */ @Override public void showSystemMenu() { // TODO Auto-generated method stub } }