/*
* Freeplane - mind map editor
* Copyright (C) 2008 Joerg Mueller, Daniel Polansky, Christian Foltin, Dimitry Polivaev
*
* This file is modified by Dimitry Polivaev in 2008.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.freeplane.features.cloud;
import java.awt.Color;
import org.freeplane.core.extension.IExtension;
import org.freeplane.features.map.NodeModel;
public class CloudModel implements IExtension {
public enum Shape{
ARC, STAR, RECT, ROUND_RECT
};
public static CloudModel getModel(final NodeModel node) {
return (CloudModel) node.getExtension(CloudModel.class);
}
public static CloudModel createModel(final NodeModel node) {
final CloudModel extension = (CloudModel) node.getExtension(CloudModel.class);
if (extension != null) {
return extension;
}
final CloudModel cloudModel = new CloudModel();
node.addExtension(cloudModel);
return cloudModel;
}
public static void setModel(final NodeModel node, final CloudModel cloud) {
final CloudModel oldCloud = CloudModel.getModel(node);
if (cloud != null && oldCloud == null) {
node.addExtension(cloud);
}
else if (cloud == null && oldCloud != null) {
node.removeExtension(CloudModel.class);
}
}
private Color color;
private Shape shape;
public Shape getShape() {
return shape;
}
public void setShape(Shape shape) {
this.shape = shape;
}
public CloudModel() {
color = CloudController.getStandardColor();
shape = Shape.ARC;
}
public Color getColor() {
return color;
}
public void setColor(final Color color) {
this.color = color != null ? color : CloudController.getStandardColor();
}
}