/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ package de.cismet.cismap.commons.features; import com.vividsolutions.jts.geom.Geometry; import java.awt.Color; import java.awt.Font; import java.awt.Paint; import java.awt.Stroke; import javax.swing.JLabel; import de.cismet.cismap.commons.gui.piccolo.FeatureAnnotationSymbol; /** * DOCUMENT ME! * * @author thorsten.hell@cismet.de * @version $Revision$, $Date$ */ public class DefaultStyledFeature implements StyledFeature, CloneableFeature, AnnotatedFeature { //~ Instance fields -------------------------------------------------------- private final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(this.getClass()); private com.vividsolutions.jts.geom.Geometry geom = null; private Paint fillingStyle = new Color(0.5f, 0.5f, 0.5f, 0.1f); private Paint linePaint = Color.black; private Paint annotationPaint = Color.BLACK; private float transparency = 1f; private boolean editable = false; private boolean hiding = false; private boolean canBeSelected = true; private String primaryAnnotation = null; private String secondaryAnnotation = null; private Font primaryAnnotationFont = null; private double primaryAnnotationScale = 1.0; private FeatureAnnotationSymbol featureAnnotationSymbol = null; private int lineWidth; private Integer maxScaleDenominator; private Integer minScaleDenominator; private boolean autoScale; private boolean highlightingEnabled; private float justification = JLabel.LEFT_ALIGNMENT; private boolean primaryAnnotationVisible = true; private Color primaryAnnotationHalo; //~ Constructors ----------------------------------------------------------- /** * Creates a new instance of DefaultStyledFeature. */ public DefaultStyledFeature() { } /** * Creates a new DefaultStyledFeature object. * * @param dsf DOCUMENT ME! */ public DefaultStyledFeature(final DefaultStyledFeature dsf) { geom = dsf.geom; fillingStyle = dsf.fillingStyle; linePaint = dsf.linePaint; transparency = dsf.transparency; editable = dsf.editable; hiding = dsf.hiding; canBeSelected = dsf.canBeSelected; primaryAnnotation = dsf.primaryAnnotation; secondaryAnnotation = dsf.secondaryAnnotation; primaryAnnotationFont = dsf.primaryAnnotationFont; primaryAnnotationScale = dsf.primaryAnnotationScale; primaryAnnotationVisible = dsf.primaryAnnotationVisible; featureAnnotationSymbol = dsf.featureAnnotationSymbol; lineWidth = dsf.lineWidth; autoScale = dsf.autoScale; maxScaleDenominator = dsf.maxScaleDenominator; minScaleDenominator = dsf.minScaleDenominator; annotationPaint = dsf.annotationPaint; highlightingEnabled = dsf.highlightingEnabled; justification = dsf.justification; } //~ Methods ---------------------------------------------------------------- @Override public Object clone() { final DefaultStyledFeature copy = new DefaultStyledFeature(); if (geom != null) { copy.geom = (Geometry)(geom.clone()); } copy.fillingStyle = fillingStyle; copy.linePaint = linePaint; copy.transparency = transparency; copy.editable = editable; copy.hiding = hiding; copy.canBeSelected = canBeSelected; copy.primaryAnnotation = primaryAnnotation; copy.secondaryAnnotation = secondaryAnnotation; copy.primaryAnnotationFont = primaryAnnotationFont; copy.primaryAnnotationScale = primaryAnnotationScale; copy.primaryAnnotationVisible = primaryAnnotationVisible; copy.featureAnnotationSymbol = featureAnnotationSymbol; copy.autoScale = autoScale; copy.lineWidth = lineWidth; copy.minScaleDenominator = minScaleDenominator; copy.maxScaleDenominator = maxScaleDenominator; copy.annotationPaint = annotationPaint; copy.highlightingEnabled = highlightingEnabled; copy.justification = justification; return copy; } @Override public Paint getFillingPaint() { return fillingStyle; } @Override public void setFillingPaint(final Paint fillingStyle) { this.fillingStyle = fillingStyle; } @Override public float getTransparency() { return transparency; } @Override public void setTransparency(final float transparency) { this.transparency = transparency; } @Override public void setGeometry(final com.vividsolutions.jts.geom.Geometry geom) { this.geom = geom; } @Override public com.vividsolutions.jts.geom.Geometry getGeometry() { return geom; } @Override public java.awt.Paint getLinePaint() { return linePaint; } @Override public void setLinePaint(final java.awt.Paint p) { linePaint = p; } @Override public boolean canBeSelected() { return canBeSelected; } @Override public void setCanBeSelected(final boolean canBeSelected) { this.canBeSelected = canBeSelected; } @Override public boolean isEditable() { return editable; } @Override public void setEditable(final boolean editable) { this.editable = editable; } @Override public void hide(final boolean hiding) { this.hiding = hiding; } @Override public boolean isHidden() { return hiding; } /** * DOCUMENT ME! * * @param featureAnnotationSymbol DOCUMENT ME! */ public void setFeatureAnnotationSymbol(final FeatureAnnotationSymbol featureAnnotationSymbol) { this.featureAnnotationSymbol = featureAnnotationSymbol; } @Override public FeatureAnnotationSymbol getPointAnnotationSymbol() { return featureAnnotationSymbol; } @Override public String getPrimaryAnnotation() { return primaryAnnotation; } @Override public Font getPrimaryAnnotationFont() { return primaryAnnotationFont; } @Override public double getPrimaryAnnotationScaling() { return primaryAnnotationScale; } @Override public String getSecondaryAnnotation() { return secondaryAnnotation; } @Override public void setPrimaryAnnotation(final String primaryAnnotation) { this.primaryAnnotation = primaryAnnotation; } @Override public void setPrimaryAnnotationFont(final Font primaryAnnotationFont) { this.primaryAnnotationFont = primaryAnnotationFont; } @Override public void setPrimaryAnnotationScaling(final double primaryAnnotationSize) { this.primaryAnnotationScale = primaryAnnotationSize; } @Override public void setSecondaryAnnotation(final String secondaryAnnotation) { this.secondaryAnnotation = secondaryAnnotation; } @Override public int getLineWidth() { return lineWidth; } @Override public void setLineWidth(final int width) { lineWidth = width; } @Override public void setPointAnnotationSymbol(final FeatureAnnotationSymbol featureAnnotationSymbol) { this.featureAnnotationSymbol = featureAnnotationSymbol; } @Override public Integer getMaxScaleDenominator() { return maxScaleDenominator; } @Override public Integer getMinScaleDenominator() { return minScaleDenominator; } @Override public boolean isAutoscale() { return autoScale; } @Override public void setAutoScale(final boolean autoScale) { this.autoScale = autoScale; } @Override public void setMaxScaleDenominator(final Integer max) { this.maxScaleDenominator = max; } @Override public void setMinScaleDenominator(final Integer min) { this.minScaleDenominator = min; } @Override public Paint getPrimaryAnnotationPaint() { return annotationPaint; } @Override public void setPrimaryAnnotationPaint(final Paint primaryAnnotationPaint) { annotationPaint = primaryAnnotationPaint; } @Override public boolean isHighlightingEnabled() { return highlightingEnabled; } @Override public void setHighlightingEnabled(final boolean enabled) { highlightingEnabled = enabled; } @Override public float getPrimaryAnnotationJustification() { return justification; } @Override public void setPrimaryAnnotationJustification(final float just) { justification = just; } @Override public boolean isPrimaryAnnotationVisible() { return primaryAnnotationVisible; } @Override public void setPrimaryAnnotationVisible(final boolean visible) { primaryAnnotationVisible = visible; } @Override public void setPrimaryAnnotationHalo(final Color primaryAnnotationHalo) { this.primaryAnnotationHalo = primaryAnnotationHalo; } @Override public Color getPrimaryAnnotationHalo() { return primaryAnnotationHalo; } }