org.eclipse.jface.action.SubStatusLineManager Maven / Gradle / Ivy
The newest version!
/*******************************************************************************
* Copyright (c) 2000, 2015 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jface.action;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.swt.graphics.Image;
/**
* A SubStatusLineManager
is used to define a set of contribution
* items within a parent manager. Once defined, the visibility of the entire set can
* be changed as a unit.
*/
public class SubStatusLineManager extends SubContributionManager implements
IStatusLineManager {
/**
* Current status line message.
*/
private String message;
/**
* Current status line error message.
*/
private String errorMessage;
/**
* Current status line message image.
*/
private Image messageImage;
/**
* Current status line error image
*/
private Image errorImage;
/**
* Constructs a new manager.
*
* @param mgr the parent manager. All contributions made to the
* SubStatusLineManager
are forwarded and appear in the
* parent manager.
*/
public SubStatusLineManager(IStatusLineManager mgr) {
super(mgr);
}
/**
* @return the parent status line manager that this sub-manager contributes
* to
*/
protected final IStatusLineManager getParentStatusLineManager() {
// Cast is ok because that's the only
// thing we accept in the construtor.
return (IStatusLineManager) getParent();
}
@Override
public IProgressMonitor getProgressMonitor() {
return getParentStatusLineManager().getProgressMonitor();
}
@Override
public boolean isCancelEnabled() {
return getParentStatusLineManager().isCancelEnabled();
}
@Override
public void setCancelEnabled(boolean enabled) {
getParentStatusLineManager().setCancelEnabled(enabled);
}
@Override
public void setErrorMessage(String message) {
this.errorImage = null;
this.errorMessage = message;
if (isVisible()) {
getParentStatusLineManager().setErrorMessage(errorMessage);
}
}
@Override
public void setErrorMessage(Image image, String message) {
this.errorImage = image;
this.errorMessage = message;
if (isVisible()) {
getParentStatusLineManager().setErrorMessage(errorImage,
errorMessage);
}
}
@Override
public void setMessage(String message) {
this.messageImage = null;
this.message = message;
if (isVisible()) {
getParentStatusLineManager().setMessage(message);
}
}
@Override
public void setMessage(Image image, String message) {
this.messageImage = image;
this.message = message;
if (isVisible()) {
getParentStatusLineManager().setMessage(messageImage, message);
}
}
@Override
public void setVisible(boolean visible) {
super.setVisible(visible);
if (visible) {
getParentStatusLineManager().setErrorMessage(errorImage,
errorMessage);
getParentStatusLineManager().setMessage(messageImage, message);
} else {
getParentStatusLineManager().setMessage(null, null);
getParentStatusLineManager().setErrorMessage(null, null);
}
}
@Override
public void update(boolean force) {
// This method is not governed by visibility. The client may
// call setVisible
and then force an update. At that
// point we need to update the parent.
getParentStatusLineManager().update(force);
}
}