/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
/*
* PureNewFeature.java
*
* Created on 19. April 2005, 10:54
*/
package de.cismet.cismap.commons.features;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.LineString;
import com.vividsolutions.jts.geom.MultiPolygon;
import com.vividsolutions.jts.geom.Point;
import com.vividsolutions.jts.geom.Polygon;
import java.awt.Color;
import java.awt.Paint;
import java.awt.geom.Point2D;
import de.cismet.cismap.commons.WorldToScreenTransform;
/**
* DOCUMENT ME!
*
* @author hell
* @version $Revision$, $Date$
*/
public class PureNewFeature extends AbstractNewFeature implements Cloneable,
XStyledFeature,
Attachable,
PreventNamingDuplicates {
//~ Static fields/initializers ---------------------------------------------
private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(PureNewFeature.class);
//~ Instance fields --------------------------------------------------------
int number = 0;
private Paint fillingPaint = new Color(1f, 0f, 0f, 0.4f);
//~ Constructors -----------------------------------------------------------
/**
* Creates a new PureNewFeature object.
*
* @param g DOCUMENT ME!
*/
public PureNewFeature(final Geometry g) {
super(g);
}
/**
* Creates a new PureNewFeature object.
*
* @param point DOCUMENT ME!
* @param wtst DOCUMENT ME!
*/
public PureNewFeature(final Point2D point, final WorldToScreenTransform wtst) {
super(point, wtst);
}
/**
* Creates a new PureNewFeature object.
*
* @param canvasPoints DOCUMENT ME!
* @param wtst DOCUMENT ME!
*/
public PureNewFeature(final Point2D[] canvasPoints, final WorldToScreenTransform wtst) {
super(canvasPoints, wtst);
}
/**
* Creates a new PureNewFeature object.
*
* @param coordArr DOCUMENT ME!
* @param wtst DOCUMENT ME!
*/
public PureNewFeature(final Coordinate[] coordArr, final WorldToScreenTransform wtst) {
super(coordArr, wtst);
}
//~ Methods ----------------------------------------------------------------
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
@Override
public java.awt.Stroke getLineStyle() {
return null;
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
@Override
public java.awt.Paint getFillingPaint() {
return fillingPaint;
}
/**
* DOCUMENT ME!
*
* @param fillingStyle DOCUMENT ME!
*/
@Override
public void setFillingPaint(final Paint fillingStyle) {
this.fillingPaint = fillingStyle;
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
@Override
public float getTransparency() {
return 1f;
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
@Override
public String getType() {
return ""; // NOI18N
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
@Override
public String getOriginalName() {
final String name = super.getName();
if (getGeometryType() != null) {
if ((name != null) && name.trim().equals("")) {
switch (getGeometryType()) {
case RECTANGLE: {
return org.openide.util.NbBundle.getMessage(
PureNewFeature.class,
"PureNewFeature.getName().newRectangle"); // NOI18N
}
case LINESTRING: {
return org.openide.util.NbBundle.getMessage(
PureNewFeature.class,
"PureNewFeature.getName().newPolyline"); // NOI18N
}
case ELLIPSE: {
return org.openide.util.NbBundle.getMessage(
PureNewFeature.class,
"PureNewFeature.getName().newEllipse"); // NOI18N
}
case POINT: {
return org.openide.util.NbBundle.getMessage(
PureNewFeature.class,
"PureNewFeature.getName().newPoint"); // NOI18N
}
case POLYGON: {
return org.openide.util.NbBundle.getMessage(
PureNewFeature.class,
"PureNewFeature.getName().newPolygon"); // NOI18N
}
case MULTIPOLYGON: {
return org.openide.util.NbBundle.getMessage(
PureNewFeature.class,
"PureNewFeature.getName().newMultiPolygon"); // NOI18N
}
default: {
// return org.openide.util.NbBundle.getMessage(
// PureNewFeature.class,
// "PureNewFeature.getName().errorInGetName"); // NOI18N
return getGeometryType().toString() + " " + getGeometry().getGeometryType();
}
}
} else {
return name;
}
} else {
try {
if (name.trim().equals("")) { // NOI18N
if (getGeometry() instanceof Point) {
setName(org.openide.util.NbBundle.getMessage(
PureNewFeature.class,
"PureNewFeature.getName().newPoint")); // NOI18N
} else if (getGeometry() instanceof LineString) {
setName(org.openide.util.NbBundle.getMessage(
PureNewFeature.class,
"PureNewFeature.getName().newPolyline")); // NOI18N
} else if (getGeometry() instanceof Polygon) {
setName(org.openide.util.NbBundle.getMessage(
PureNewFeature.class,
"PureNewFeature.getName().newPolygon")); // NOI18N
} else if (getGeometry() instanceof MultiPolygon) {
setName(org.openide.util.NbBundle.getMessage(
PureNewFeature.class,
"PureNewFeature.getName().newMultiPolygon")); // NOI18N
} else {
setName("-"); // NOI18N
}
}
return super.getName();
} catch (Exception e) {
LOG.fatal("getName() error", e); // NOI18N
return "Error in getName()"; // NOI18N
}
}
}
@Override
public String getName() {
if (number == 1) {
return getOriginalName();
} else {
return getOriginalName() + " - " + number;
}
}
@Override
public int getNumber() {
return number;
}
@Override
public void setNumber(final int n) {
number = n;
}
}