blob: 7173f196f830a279b6bc4a868f64994ade10abb4 [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;
import org.eclipse.jface.action.ICoolBarManager;
import org.eclipse.jface.action.SubCoolBarManager;
import org.eclipse.ui.services.IServiceLocator;
/**
* A implementation of the extended <code>IActionBars2</code> interface. This
* sub class provides a sub cool bar manager for plugins to contribute multiple
* cool items.
*
* @since 1.0
*/
public class SubActionBars2 extends SubActionBars implements IActionBars2 {
private SubCoolBarManager coolBarMgr = null;
/**
* Constucts a sub action bars object using an IActionBars2 parent.
*
* @param parent
* the action bars to virtualize; must not be <code>null</code>.
*/
public SubActionBars2(final IActionBars2 parent) {
this(parent, parent.getServiceLocator());
}
/**
* Constucts a sub action bars object using an IActionBars2 parent.
*
* @param parent
* the action bars to virtualize; must not be <code>null</code>.
* @param serviceLocator
* The service locator for this action bar; must not be
* <code>null</code>.
*/
public SubActionBars2(final IActionBars2 parent,
final IServiceLocator serviceLocator) {
super(parent, serviceLocator);
}
/**
* Returns the casted parent of the sub action bars. This method can return
* an IActionBars2 since it can only accept IActionBars2 in the constructor.
*
* @return the casted parent.
*/
protected IActionBars2 getCastedParent() {
return (IActionBars2) getParent();
}
/**
* Returns a new sub coolbar manager.
*
* @param parent
* the parent coolbar manager
* @return the cool bar manager
*/
protected SubCoolBarManager createSubCoolBarManager(ICoolBarManager parent) {
return new SubCoolBarManager(parent);
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.IActionBars2#getCoolBarManager()
*/
public ICoolBarManager getCoolBarManager() {
if (coolBarMgr == null) {
coolBarMgr = createSubCoolBarManager(getCastedParent()
.getCoolBarManager());
coolBarMgr.setVisible(getActive());
}
return coolBarMgr;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.SubActionBars#setActive(boolean)
*/
protected void setActive(boolean value) {
super.setActive(value);
if (coolBarMgr != null) {
coolBarMgr.setVisible(value);
}
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.SubActionBars#dispose()
*/
public void dispose() {
super.dispose();
if (coolBarMgr != null) {
coolBarMgr.removeAll();
}
}
}