From 8713611a01ee773ff9630a0af084422a0765cb90 Mon Sep 17 00:00:00 2001
From: ?? ? <ulysseskao@ximple.com.tw>
Date: Sat, 17 May 2008 00:29:33 +0800
Subject: [PATCH] update for EOFM-91

---
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java
index 798c86e..83cb074 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java
@@ -27,6 +27,8 @@
 
 import com.vividsolutions.jts.geom.Geometry;
 import com.vividsolutions.jts.geom.GeometryFactory;
+import com.vividsolutions.jts.geom.Envelope;
+import com.vividsolutions.jts.geom.Coordinate;
 
 import com.ximple.eofms.util.DefaultColorTable;
 import com.ximple.io.dgn7.Element;
@@ -39,6 +41,7 @@
 import com.ximple.io.dgn7.ArcElement;
 import com.ximple.io.dgn7.EllipseElement;
 import com.ximple.io.dgn7.ComplexChainElement;
+import com.ximple.io.dgn7.TextNodeElement;
 
 public class GeneralDgnConvertJobContext extends AbstractDgnFileJobContext
 {
@@ -272,6 +275,7 @@
         {
             TextElement textElement = (TextElement) element;
             convertDecorator.setConverter(textElement);
+
             Geometry geom = convertDecorator.toGeometry(geometryFactory);
             double angle = textElement.getRotationAngle();
             if (geom != null)
@@ -291,6 +295,39 @@
                 logger.info("geometry is null." + element.toString());
             }
             return null;
+        } else if (element instanceof TextNodeElement)
+        {
+            TextNodeElement textNodeElement = (TextNodeElement) element;
+            convertDecorator.setConverter(textNodeElement);
+
+            Geometry geom = convertDecorator.toGeometry(geometryFactory);
+            double angle = textNodeElement.getRotationAngle();
+            String[] texts = textNodeElement.getTextArray();
+            StringBuffer sb = new StringBuffer();
+            for (String text : texts)
+            {
+                if (sb.length() != 0)
+                    sb.append("\n");
+                sb.append(text);
+            }
+
+            if (geom != null)
+            {
+                return featureType.create(new Object[]{
+                        geom,
+                        colorTable.getColorCode(textNodeElement.getColorIndex()),
+                        textNodeElement.getFontIndex(),
+                        textNodeElement.getJustification(),
+                        textNodeElement.getTextNodeHeight(),
+                        textNodeElement.getTextNodeLength(),
+                        angle,
+                        sb.toString()
+                });
+            } else
+            {
+                logger.info("geometry is null." + element.toString());
+            }
+            return null;
         } else if (element instanceof ShapeElement)
         {
             ShapeElement shapeElement = (ShapeElement) element;

--
Gitblit v0.0.0-SNAPSHOT