blob: 6742456c99d84f2b6ac1063290061185bdada9cc [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2002, 2007 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.gmf.runtime.diagram.ui.actions.internal;
import org.eclipse.gef.Request;
import org.eclipse.gmf.runtime.diagram.ui.actions.ActionIds;
import org.eclipse.gmf.runtime.diagram.ui.actions.internal.l10n.DiagramUIActionsMessages;
import org.eclipse.gmf.runtime.diagram.ui.actions.internal.l10n.DiagramUIActionsPluginImages;
import org.eclipse.gmf.runtime.diagram.ui.internal.actions.PropertyChangeAction;
import org.eclipse.gmf.runtime.diagram.ui.internal.properties.Properties;
import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.IWorkbenchPage;
/**
* @author melaasar
*/
public class AllCompartmentsAction extends PropertyChangeAction {
/**
* The requested visibility of all compartments
*/
private Boolean visibility;
/**
* @param workbenchPage
* @param visibility
*/
protected AllCompartmentsAction(
IWorkbenchPage workbenchPage,
boolean visibility) {
super(
workbenchPage,
Properties.ID_ISVISIBLE,
DiagramUIActionsMessages.ConstrainedFlowLayoutEditPolicy_changeVisibilityCommand_label);
this.visibility = visibility ? Boolean.TRUE : Boolean.FALSE;
}
/**
* @see org.eclipse.gmf.runtime.diagram.ui.internal.actions.PropertyChangeAction#getNewPropertyValue()
*/
protected Object getNewPropertyValue() {
return visibility;
}
/**
* @see org.eclipse.gmf.runtime.diagram.ui.actions.DiagramAction#getCommandLabel()
*/
protected String getCommandLabel() {
if (((Boolean) getNewPropertyValue()).booleanValue())
return DiagramUIActionsMessages.ShowAllResizableCompartmentsAction_ShowAllText;
else
return DiagramUIActionsMessages.ShowAllResizableCompartmentsAction_HideAllText;
}
/**
* Creates the show all compartments action
* @param workbenchPage
* @return
*/
public static AllCompartmentsAction createShowAllCompartmentsAction(IWorkbenchPage workbenchPage) {
AllCompartmentsAction action =
new AllCompartmentsAction(workbenchPage, true);
action.setId(ActionIds.ACTION_COMPARTMENT_ALL);
action
.setText(DiagramUIActionsMessages.ShowAllResizableCompartmentsAction_ShowAllText);
action
.setToolTipText(DiagramUIActionsMessages.ShowAllResizableCompartmentsAction_ShowAllTooltip);
ImageDescriptor imageDesc = DiagramUIActionsPluginImages.DESC_SHOW_ALL_RESIZABLE_COMPARTMENTS;
action.setImageDescriptor(imageDesc);
action.setHoverImageDescriptor(imageDesc);
return action;
}
/**
* Creates the hide all compartments action
* @param workbenchPage
* @return
*/
public static AllCompartmentsAction createHideAllCompartmentsAction(IWorkbenchPage workbenchPage) {
AllCompartmentsAction action =
new AllCompartmentsAction(workbenchPage, false);
action.setId(ActionIds.ACTION_COMPARTMENT_NONE);
action
.setText(DiagramUIActionsMessages.ShowAllResizableCompartmentsAction_HideAllText);
action
.setToolTipText(DiagramUIActionsMessages.ShowAllResizableCompartmentsAction_HideAllTooltip);
ImageDescriptor imageDesc = DiagramUIActionsPluginImages.DESC_HIDE_ALL_RESIZABLE_COMPARTMENTS;
action.setImageDescriptor(imageDesc);
action.setHoverImageDescriptor(imageDesc);
return action;
}
/* (non-Javadoc)
* @see org.eclipse.gmf.runtime.diagram.ui.actions.DiagramAction#createTargetRequest()
*/
protected Request createTargetRequest() {
Request request = super.createTargetRequest();
request.setType(RequestConstants.REQ_SHOW_ALL_COMPARTMENTS);
return request;
}
@Override
protected boolean digIntoGroups() {
return true;
}
}