소스 검색

修改靠墙边

duh 7 년 전
부모
커밋
432dd91180

+ 5 - 0
pom.xml

@@ -20,6 +20,11 @@
             <artifactId>gson</artifactId>
             <version>2.8.5</version>
         </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>RELEASE</version>
+        </dependency>
 
     </dependencies>
 

+ 0 - 11
src/main/java/model/template/Template.java

@@ -13,7 +13,6 @@ import java.util.List;
  * @email duh@elab-plus.com
  **/
 public class Template extends ModuleInRoom {
-    private String name;
     private int length;
     private int width;
     private List<Integer> alignWall;
@@ -29,16 +28,6 @@ public class Template extends ModuleInRoom {
         shadow = new TemplateShadow(this,templateConfig.getShadow());
     }
 
-    @Override
-    public String getName() {
-        return name;
-    }
-
-    @Override
-    public void setName(String name) {
-        this.name = name;
-    }
-
     public int getLength() {
         return length;
     }

+ 7 - 5
src/main/java/model/template/TemplateShadow.java

@@ -21,11 +21,13 @@ public class TemplateShadow {
 
     public TemplateShadow(Template template, TemplateShadowConfig config) {
         this.template = template;
-        x = config.getX();
-        y = config.getY();
-        width = config.getWidth();
-        direct = config.getDirect();
-        radis = config.getRadis();
+        if(null != config){
+            x = config.getX();
+            y = config.getY();
+            width = config.getWidth();
+            direct = config.getDirect();
+            radis = config.getRadis();
+        }
     }
 
     public Template getTemplate() {

+ 21 - 6
src/main/java/utils/TemplateUtils.java

@@ -40,6 +40,10 @@ public class TemplateUtils {
         int width = template.getWidth();
         int x1 = room.getX()+template.getX();
         int y1 = room.getY()+template.getY();
+
+        Graphics2D g2d = (Graphics2D) g.create();
+        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+        g2d.setColor(Color.RED);
         if(length < 0){
             length=-length;
             x1 = x1-length;
@@ -48,16 +52,28 @@ public class TemplateUtils {
             width=-width;
             y1=y1-width;
         }
-        Graphics2D g2d = (Graphics2D) g.create();
-        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
-        g2d.setColor(Color.RED);
         g2d.drawRect(x1,y1,length,width);
+        drawAlignWall(template, length, width, x1, y1, g2d);
+
+        g2d.dispose();
+    }
+
+    /**
+     * x1 y1 为四边形左上角顶点
+     * @param template
+     * @param length
+     * @param width
+     * @param x1
+     * @param y1
+     * @param g2d
+     */
+    private static void drawAlignWall(Template template, int length, int width, int x1, int y1, Graphics2D g2d) {
         //绘制贴墙边
         List<Integer> alignWall = template.getAlignWall();
         for (int alignWallValue : alignWall){
             switch (alignWallValue){
                 case 1:
-                    g2d.fillRect(x1,y1+ Constant.CLOSE_WALL_LINE_WIDTH/2,length,Constant.CLOSE_WALL_LINE_WIDTH);
+                    g2d.fillRect(x1,y1+width- Constant.CLOSE_WALL_LINE_WIDTH/2,length,Constant.CLOSE_WALL_LINE_WIDTH);
                     break;
                 case 2:
                     g2d.fillRect(x1+length-Constant.CLOSE_WALL_LINE_WIDTH/2,y1,length,Constant.CLOSE_WALL_LINE_WIDTH);
@@ -70,7 +86,6 @@ public class TemplateUtils {
                     break;
             }
         }
-        g2d.dispose();
     }
 
     /**
@@ -109,7 +124,7 @@ public class TemplateUtils {
         routeTemplateShadow(template,rotateRange);
     }
 
-    private static void routeTemplateShadow(Template template, int rotateRange) {
+    public static void routeTemplateShadow(Template template, int rotateRange) {
         TemplateShadow shadow = template.getShadow();
         int routeX = template.getX();
         int routeY = template.getY();

+ 28 - 0
src/test/java/utils/TemplateUtilsTest.java

@@ -0,0 +1,28 @@
+package utils;
+
+
+import com.google.gson.Gson;
+import config.subConfig.TemplateConfig;
+import model.template.Template;
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.junit.Assert.*;
+
+public class TemplateUtilsTest {
+
+
+    @Test
+    public void changeTemplateAlignWall() {
+        Gson gson = new Gson();
+        TemplateConfig templateConfig = new TemplateConfig();
+        Template template = new Template(templateConfig);
+        List<Integer> alignWall = new ArrayList<>();
+        alignWall.add(3);
+        alignWall.add(4);
+        template.setAlignWall(alignWall);
+        TemplateUtils.changeTemplateAlignWall(template,1);
+    }
+}