blob: 0cbb5c0fb89fb5ab8a381d75d31cdabb282b4953 [file] [log] [blame]
/*******************************************************************************
* 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.internal;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IContributionManager;
import org.eclipse.jface.internal.provisional.action.IToolBarContributionItem;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.CoolBar;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.ToolBar;
/**
* A contribution item that is intended to hold the place of a tool bar
* contribution item that has been disposed. This is to ensure that tool bar
* contribution items are disposed (freeing their resources), but that layout
* information about the item is not lost.
*
* @since 3.0
*/
final class PlaceholderContributionItem implements IContributionItem {
/**
* The identifier for the replaced contribution item.
*/
private final String id;
/**
* The height of the SWT widget corresponding to the replaced contribution
* item.
*/
private final int storedHeight;
/**
* The minimum number of items to display on the replaced contribution
* item.
*/
private final int storedMinimumItems;
/**
* Whether the replaced contribution item would display chevrons.
*/
private final boolean storedUseChevron;
/**
* The width of the SWT widget corresponding to the replaced contribution
* item.
*/
private final int storedWidth;
/**
* Constructs a new instance of <code>PlaceholderContributionItem</code>
* from the item it is intended to replace.
*
* @param item
* The item to be replaced; must not be <code>null</code>.
*/
PlaceholderContributionItem(final IToolBarContributionItem item) {
item.saveWidgetState();
id = item.getId();
storedHeight = item.getCurrentHeight();
storedWidth = item.getCurrentWidth();
storedMinimumItems = item.getMinimumItemsToShow();
storedUseChevron = item.getUseChevron();
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.IContributionItem#dispose()
*/
public void dispose() {
// Do nothing
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.IContributionItem#fill(org.eclipse.swt.widgets.Composite)
*/
public void fill(Composite parent) {
throw new UnsupportedOperationException();
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.IContributionItem#fill(org.eclipse.swt.widgets.CoolBar,
* int)
*/
public void fill(CoolBar parent, int index) {
throw new UnsupportedOperationException();
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.IContributionItem#fill(org.eclipse.swt.widgets.Menu,
* int)
*/
public void fill(Menu parent, int index) {
throw new UnsupportedOperationException();
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.IContributionItem#fill(org.eclipse.swt.widgets.ToolBar,
* int)
*/
public void fill(ToolBar parent, int index) {
throw new UnsupportedOperationException();
}
/**
* The height of the replaced contribution item.
*
* @return The height.
*/
int getHeight() {
return storedHeight;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.IContributionItem#getId()
*/
public String getId() {
return id;
}
/**
* The width of the replaced contribution item.
*
* @return The width.
*/
int getWidth() {
return storedWidth;
}
/**
* Returns the minimum number of tool items to show in the cool item.
*
* @return the minimum number of tool items to show, or <code>SHOW_ALL_ITEMS</code>
* if a value was not set
* @see #setMinimumItemsToShow(int)
* @since 3.2
*/
int getMinimumItemsToShow() {
return storedMinimumItems;
}
/**
* Returns whether chevron support is enabled.
*
* @return <code>true</code> if chevron support is enabled, <code>false</code>
* otherwise
* @since 3.2
*/
boolean getUseChevron() {
return storedUseChevron;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.IContributionItem#isDirty()
*/
public boolean isDirty() {
return false;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.IContributionItem#isDynamic()
*/
public boolean isDynamic() {
return false;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.IContributionItem#isEnabled()
*/
public boolean isEnabled() {
// XXX Auto-generated method stub
return false;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.IContributionItem#isGroupMarker()
*/
public boolean isGroupMarker() {
return false;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.IContributionItem#isSeparator()
*/
public boolean isSeparator() {
return false;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.IContributionItem#isVisible()
*/
public boolean isVisible() {
return false;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.IContributionItem#saveWidgetState()
*/
public void saveWidgetState() {
// Do nothing.
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.IContributionItem#setParent(org.eclipse.jface.action.IContributionManager)
*/
public void setParent(IContributionManager parent) {
// Do nothing
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.IContributionItem#setVisible(boolean)
*/
public void setVisible(boolean visible) {
// Do nothing.
}
/**
* Displays a string representation of this contribution item, which is
* really just a function of its identifier.
*/
public String toString() {
return "PlaceholderContributionItem(" + id + ")"; //$NON-NLS-1$//$NON-NLS-2$
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.IContributionItem#update()
*/
public void update() {
update(null);
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.IContributionItem#update(java.lang.String)
*/
public void update(String identifier) {
// Do nothing
}
}