/****************************************************************************** | |
* Copyright (c) 2004, 2010 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.services.decorator; | |
import org.eclipse.core.runtime.Assert; | |
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DecorationEditPolicy.DecoratorTarget; | |
/** | |
* Abstract Decorator class. Clients can have their decorator subclass this to | |
* inherit utility methods for adding decoration figures. | |
* | |
* @see IDecorator | |
* | |
* @author cmahoney | |
*/ | |
public abstract class AbstractDecorator | |
implements IDecorator { | |
/** the object to be decorated */ | |
private DecoratorTarget decoratorTarget; | |
/** the decoration being displayed */ | |
private Decoration decoration; | |
/** | |
* Creates a new <code>AbstractDecorator</code> for the decorator target | |
* passed in. | |
* | |
* @param decoratorTarget | |
* the object to be decorated | |
*/ | |
public AbstractDecorator(IDecoratorTarget decoratorTarget) { | |
Assert.isTrue(decoratorTarget instanceof DecoratorTarget); | |
this.decoratorTarget = (DecoratorTarget) decoratorTarget; | |
} | |
/** | |
* Gets the object to be decorated. | |
* | |
* @return Returns the object to be decorated | |
*/ | |
protected DecoratorTarget getDecoratorTarget() { | |
return decoratorTarget; | |
} | |
/** | |
* @return Returns the decoration. | |
* @since 1.4 | |
*/ | |
public Decoration getDecoration() { | |
return decoration; | |
} | |
/** | |
* @param decoration | |
* The decoration to set. | |
*/ | |
public void setDecoration(IDecoration decoration) { | |
Assert.isTrue(decoration instanceof Decoration); | |
this.decoration = (Decoration) decoration; | |
} | |
/** | |
* Removes the decoration if it exists and sets it to null. | |
*/ | |
protected void removeDecoration() { | |
if (decoration != null) { | |
decoratorTarget.removeDecoration(decoration); | |
decoration = null; | |
} | |
} | |
/** | |
* Removes the decoration. | |
* | |
* @see org.eclipse.gmf.runtime.diagram.ui.services.decorator.IDecorator#deactivate() | |
*/ | |
public void deactivate() { | |
removeDecoration(); | |
} | |
} |