From 3fabb511df6db394522efd684c90700aa4a4b12a Mon Sep 17 00:00:00 2001
From: ?? ? <ulysseskao@ximple.com.tw>
Date: Tue, 20 May 2008 15:36:02 +0800
Subject: [PATCH] update for EOFM-95

---
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java   |   12 +++++++++++-
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java |    4 ++++
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java      |   12 +++---------
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java        |    4 ++++
 4 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java
index 44cae9d..e55d078 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java
@@ -1,6 +1,8 @@
 package com.ximple.eofms.filter;
 
 import java.util.List;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -80,15 +82,7 @@
         {
             TextElement txtElement = (TextElement) element;
             double angle = txtElement.getRotationAngle();
-            /*
-            if (angle != 0.0)
-            {
-                angle -= 270.0;
-                angle = -angle;
-                angle = ((angle < 0.0) ? (angle + 360.0) : angle);
-                angle = ((angle > 360.0) ? (angle - 360.0) : (angle));
-            }
-            */
+            angle = BigDecimal.valueOf(angle).setScale(3, RoundingMode.HALF_UP).doubleValue();
             if (txtElement.getText().length() == 0)
             {
                 logger.info("CreateSymbolStrategy cannot conver " + element.toString() +
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java
index ccc097b..c3dce45 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java
@@ -1,6 +1,8 @@
 package com.ximple.eofms.filter;
 
 import java.util.List;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -81,6 +83,7 @@
         {
             TextElement txtElement = (TextElement) element;
             double angle = txtElement.getRotationAngle();
+            angle = BigDecimal.valueOf(angle).setScale(3, RoundingMode.HALF_UP).doubleValue();
             convertDecorator.setConverter(txtElement);
             Feature feature = featureType.create(new Object[]{
                     convertDecorator.toGeometry(geometryFactory),
@@ -112,6 +115,7 @@
             }
 
             double angle = nodeElement.getRotationAngle();
+            angle = BigDecimal.valueOf(angle).setScale(3, RoundingMode.HALF_UP).doubleValue();
             convertDecorator.setConverter(nodeElement);
             Feature feature = featureType.create(new Object[]{
                     convertDecorator.toGeometry(geometryFactory),
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 83cb074..6ecda50 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
@@ -8,6 +8,8 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.TreeMap;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -278,6 +280,7 @@
 
             Geometry geom = convertDecorator.toGeometry(geometryFactory);
             double angle = textElement.getRotationAngle();
+            angle = BigDecimal.valueOf(angle).setScale(3, RoundingMode.HALF_UP).doubleValue();
             if (geom != null)
             {
                 return featureType.create(new Object[]{
@@ -302,6 +305,7 @@
 
             Geometry geom = convertDecorator.toGeometry(geometryFactory);
             double angle = textNodeElement.getRotationAngle();
+            angle = BigDecimal.valueOf(angle).setScale(3, RoundingMode.HALF_UP).doubleValue();
             String[] texts = textNodeElement.getTextArray();
             StringBuffer sb = new StringBuffer();
             for (String text : texts)
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java
index 98a9d45..5710bc2 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java
@@ -7,6 +7,8 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -77,6 +79,13 @@
             return;
         }
 
+        if (!txFeaturesContext.containsKey(feature.getFeatureType()))
+        {
+            txFeaturesContext.put(feature.getFeatureType(), new ArrayList());
+        }
+        ArrayList arrayList = (ArrayList) txFeaturesContext.get(feature.getFeatureType());
+        arrayList.add(feature);
+
         feature = createFeature2((TextElement) element);
         if (feature == null)
         {
@@ -89,7 +98,7 @@
         {
             txFeaturesContext.put(feature.getFeatureType(), new ArrayList());
         }
-        ArrayList arrayList = (ArrayList) txFeaturesContext.get(feature.getFeatureType());
+        arrayList = (ArrayList) txFeaturesContext.get(feature.getFeatureType());
         arrayList.add(feature);
     }
 
@@ -272,6 +281,7 @@
         {
             TextElement txtElement = (TextElement) element;
             double angle = txtElement.getRotationAngle();
+            angle = BigDecimal.valueOf(angle).setScale(3, RoundingMode.HALF_UP).doubleValue();
             convertDecorator.setConverter(txtElement);
             Feature feature = featureType.create(new Object[]{
                     convertDecorator.toGeometry(geometryFactory),

--
Gitblit v0.0.0-SNAPSHOT