blob: 636399001f5c19bc285f9961a354f608a8aee7b9 [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2002, 2004 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 java.util.List;
import org.eclipse.gef.Request;
import org.eclipse.gmf.runtime.diagram.ui.actions.ActionIds;
import org.eclipse.gmf.runtime.diagram.ui.actions.DiagramAction;
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.editparts.IGraphicalEditPart;
import org.eclipse.gmf.runtime.diagram.ui.internal.requests.ApplyAppearancePropertiesRequest;
import org.eclipse.ui.IWorkbenchPage;
/**
* Action that takes the appearance properties of edit part first in the selection, and
* applies it to the rest of the selected objects.
*
* @author Natalia Balaba
* @author melaasar
*/
public class CopyAppearancePropertiesAction extends DiagramAction {
/**
* @param workbenchPage
*/
public CopyAppearancePropertiesAction(IWorkbenchPage workbenchPage) {
super(workbenchPage);
setId(ActionIds.ACTION_COPY_APPEARANCE_PROPERTIES);
setText(DiagramUIActionsMessages.CopyAppearancePropertiesAction_text);
setToolTipText(DiagramUIActionsMessages.CopyAppearancePropertiesAction_toolTip);
setImageDescriptor(DiagramUIActionsPluginImages.DESC_COPY_APPEARANCE);
setDisabledImageDescriptor(DiagramUIActionsPluginImages.DESC_COPY_APPEARANCE_DISABLED);
setHoverImageDescriptor(DiagramUIActionsPluginImages.DESC_COPY_APPEARANCE);
}
/**
* @see org.eclipse.gmf.runtime.common.ui.action.AbstractActionHandler#isSelectionListener()
*/
protected boolean isSelectionListener() {
return true;
}
/**
* @see org.eclipse.gmf.runtime.diagram.ui.actions.DiagramAction#createTargetRequest()
*/
protected Request createTargetRequest() {
return new ApplyAppearancePropertiesRequest();
}
/**
* @see org.eclipse.gmf.runtime.diagram.ui.actions.DiagramAction#updateTargetRequest()
*/
protected void updateTargetRequest() {
ApplyAppearancePropertiesRequest request =
(ApplyAppearancePropertiesRequest) getTargetRequest();
List set = super.createOperationSet();
if (!set.isEmpty()) {
IGraphicalEditPart editPart = (IGraphicalEditPart) set.get(0);
request.setViewToCopyFrom(editPart.getNotationView());
}
super.updateTargetRequest();
}
/**
* @see org.eclipse.gmf.runtime.diagram.ui.actions.DiagramAction#createOperationSet()
*/
protected List createOperationSet() {
List operationSet = super.createOperationSet();
if (!operationSet.isEmpty())
operationSet.remove(0);
return operationSet;
}
}