forked from geodmms/xdgnjobs

?? ?
2008-08-12 d0b1e59bbf66c3c07cdc9ae241bd63d5da8128e4
update for EOFM-144
3 files modified
1 files added
123 ■■■■■ changed files
.gitignore 2 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextElement.java 2 ●●● patch | view | raw | blame | history
xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextNodeElement.java 2 ●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateMultiSymbolStrategy.java 117 ●●●●● patch | view | raw | blame | history
.gitignore
New file
@@ -0,0 +1,2 @@
xdgnjobs/target
xdgnjobs/ximple-spatialjob/target
xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextElement.java
@@ -266,7 +266,7 @@
            srcPt[1] = p.y;
            at.transform(srcPt, 0, dstPt, 0, 1);
            result.add(new Coordinate(dstPt[0], dstPt[1]), true);
            result.add(new Coordinate(dstPt[0], dstPt[1]), false);
        }
        return result.toCoordinateArray();
xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextNodeElement.java
@@ -191,7 +191,7 @@
        for (int i = 0; i < size(); i++)
        {
            TextElement txtElm = (TextElement) get(i);
            coords.add(txtElm.toAnchorCoordinates());
            coords.add(txtElm.toAnchorCoordinates(), false);
        }
        return factory.createMultiPoint(coords.toCoordinateArray());
    }
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateMultiSymbolStrategy.java
@@ -1,32 +1,34 @@
package com.ximple.eofms.filter;
import java.util.TreeMap;
import java.util.List;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;
import java.util.TreeMap;
import javax.swing.event.EventListenerList;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.geotools.feature.FeatureTypeBuilder;
import org.geotools.feature.FeatureType;
import org.geotools.feature.SchemaException;
import org.geotools.feature.Feature;
import org.geotools.feature.FeatureType;
import org.geotools.feature.FeatureTypeBuilder;
import org.geotools.feature.IllegalAttributeException;
import org.geotools.feature.SchemaException;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.CoordinateList;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.util.Assert;
import com.ximple.eofms.util.TWD97GeometryConverterDecorator;
import com.ximple.eofms.util.FeatureTypeBuilderUtil;
import com.ximple.eofms.util.DefaultColorTable;
import com.ximple.io.dgn7.FrammeAttributeData;
import com.ximple.eofms.util.FeatureTypeBuilderUtil;
import com.ximple.eofms.util.TWD97GeometryConverterDecorator;
import com.ximple.io.dgn7.Element;
import com.ximple.io.dgn7.UserAttributeData;
import com.ximple.io.dgn7.FrammeAttributeData;
import com.ximple.io.dgn7.GeometryConverter;
import com.ximple.io.dgn7.TextElement;
import com.ximple.io.dgn7.TextNodeElement;
import com.ximple.io.dgn7.GeometryConverter;
import com.ximple.io.dgn7.UserAttributeData;
public class CreateMultiSymbolStrategy implements CreateFeatureTypeStrategy
{
@@ -96,22 +98,22 @@
            convertDecorator.setConverter(txtElement);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            if (gobj != null)
            feature = featureType.create(new Object[]{
                    gobj,
                    fLinkage.getFsc(),
                    (long) fLinkage.getUfid(),
                    (short) fLinkage.getComponentID(),
                    (short) 0,
                    (short) txtElement.getLevelIndex(),
                    colorTable.getColorCode(txtElement.getColorIndex()),
                    (short) txtElement.getWeight(),
                    (short) txtElement.getLineStyle(),
                    (short) txtElement.getJustification(),
                    (float) txtElement.getTextHeight(),
                    (float) txtElement.getTextWidth(),
                    (float) angle,
                    sb.toString()
            });
                feature = featureType.create(new Object[]{
                        gobj,
                        fLinkage.getFsc(),
                        (long) fLinkage.getUfid(),
                        (short) fLinkage.getComponentID(),
                        (short) 0,
                        (short) txtElement.getLevelIndex(),
                        colorTable.getColorCode(txtElement.getColorIndex()),
                        (short) txtElement.getWeight(),
                        (short) txtElement.getLineStyle(),
                        (short) txtElement.getJustification(),
                        (float) txtElement.getTextHeight(),
                        (float) txtElement.getTextWidth(),
                        (float) angle,
                        sb.toString()
                });
        } else if (element instanceof TextNodeElement)
        {
            TextNodeElement nodeElement = (TextNodeElement) element;
@@ -136,22 +138,22 @@
            convertDecorator.setConverter(nodeElement);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            if (gobj != null)
            feature = featureType.create(new Object[]{
                    gobj,
                    fLinkage.getFsc(),
                    (long) fLinkage.getUfid(),
                    (short) fLinkage.getComponentID(),
                    (short) 0,
                    (short) nodeElement.getLevelIndex(),
                    colorTable.getColorCode(nodeElement.getColorIndex()),
                    (short) nodeElement.getWeight(),
                    (short) nodeElement.getLineStyle(),
                    (short) nodeElement.getJustification(),
                    (float) nodeElement.getTextNodeHeight(),
                    (float) nodeElement.getTextNodeLength(),
                    (float) angle,
                    sb.toString()
            });
                feature = featureType.create(new Object[]{
                        gobj,
                        fLinkage.getFsc(),
                        (long) fLinkage.getUfid(),
                        (short) fLinkage.getComponentID(),
                        (short) 0,
                        (short) nodeElement.getLevelIndex(),
                        colorTable.getColorCode(nodeElement.getColorIndex()),
                        (short) nodeElement.getWeight(),
                        (short) nodeElement.getLineStyle(),
                        (short) nodeElement.getJustification(),
                        (float) nodeElement.getTextNodeHeight(),
                        (float) nodeElement.getTextNodeLength(),
                        (float) angle,
                        sb.toString()
                });
        } else
        {
            logger.info("CreateMultiSymbolStrategy cannot conver " + element.toString() + "to Feature");
@@ -192,12 +194,33 @@
            GeometryConverter converter = getConverter();
            Geometry geom = null;
            if (converter instanceof TextElement)
            try
            {
                geom = ((TextElement) converter).toAnchorGeometry(factory);
            } else if (converter instanceof TextNodeElement)
                if (converter instanceof TextElement)
                {
                    geom = ((TextElement) converter).toAnchorGeometry(factory);
                } else if (converter instanceof TextNodeElement)
                {
                    geom = ((TextNodeElement) converter).toAnchorGeometry(factory);
                }
            } catch (ArrayStoreException e)
            {
                geom = ((TextNodeElement) converter).toAnchorGeometry(factory);
                logger.warn(e.getMessage(), e);
                if (converter instanceof TextNodeElement)
                {
                    TextNodeElement node = (TextNodeElement) converter;
                    CoordinateList pts = new CoordinateList();
                    for (int i = 0; i < node.size(); i++)
                    {
                        TextElement txtElm = (TextElement) node.get(i);
                        Coordinate[] coords = txtElm.toAnchorCoordinates();
                        logger.warn("-coords=[" + coords.length + "]");
                        for (int j = 0; j < coords.length; j++)
                        {
                            logger.warn("[" + j + "]-" + coords.toString());
                        }
                    }
                }
            }
            if (geom == null) return null;
            geom.apply(getCoordinatesFilter());