From 4ca1e7cdfb2eda26dfca0523018d0838863caa5d Mon Sep 17 00:00:00 2001 From: pengda Date: Wed, 15 Jul 2020 09:51:04 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-34737=20=E7=BB=9D=E5=AF=B9=E7=94=BB?= =?UTF-8?q?=E5=B8=83=E4=B8=AD=E7=9A=84=E7=BB=84=E4=BB=B6=E5=8F=AF=E8=A7=86?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E4=B8=8B=E7=A7=BB=E5=88=B0=E4=BE=A7=E8=BE=B9?= =?UTF-8?q?=E5=90=8E=E7=BB=84=E4=BB=B6=E7=A7=BB=E5=87=BA=E7=94=BB=E5=B8=83?= =?UTF-8?q?=E5=8F=AF=E8=A7=81=E5=8C=BA=E5=9F=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../layout/FRAbsoluteLayoutAdapter.java | 5 +- .../layout/FRAbsoluteLayoutAdapterTest.java | 46 +++++++++++++++++++ 2 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 designer-form/src/test/java/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapterTest.java diff --git a/designer-form/src/main/java/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java b/designer-form/src/main/java/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java index 4bc0f22e4..0c6adeb09 100644 --- a/designer-form/src/main/java/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java +++ b/designer-form/src/main/java/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java @@ -310,14 +310,15 @@ public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { public void fix(XCreator creator ,int x, int y) { int height = creator.getHeight(); int width = creator.getWidth(); + //坐标小于0时让它还在容器内 if (x < 0) { - x = container.getX(); + x = 0; } else if (x + creator.getWidth() > container.getWidth()) { x = container.getWidth() - width; } if (y < 0) { - y = container.getY(); + y = 0; } else if (y + creator.getHeight() > container.getHeight()) { y = container.getHeight() - height; } diff --git a/designer-form/src/test/java/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapterTest.java b/designer-form/src/test/java/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapterTest.java new file mode 100644 index 000000000..4d378f641 --- /dev/null +++ b/designer-form/src/test/java/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapterTest.java @@ -0,0 +1,46 @@ +package com.fr.design.designer.beans.adapters.layout; + +import com.fr.config.dao.DaoContext; +import com.fr.config.dao.impl.LocalClassHelperDao; +import com.fr.config.dao.impl.LocalEntityDao; +import com.fr.config.dao.impl.LocalXmlEntityDao; +import com.fr.design.designer.creator.XButton; +import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XWAbsoluteLayout; +import com.fr.form.ui.Button; +import com.fr.form.ui.container.WAbsoluteLayout; +import java.awt.Dimension; +import junit.framework.TestCase; +import org.junit.Assert; + +public class FRAbsoluteLayoutAdapterTest extends TestCase { + @Override + protected void setUp() throws Exception { + DaoContext.setEntityDao(new LocalEntityDao()); + DaoContext.setClassHelperDao(new LocalClassHelperDao()); + DaoContext.setXmlEntityDao(new LocalXmlEntityDao()); + } + + public void testFix(){ + WAbsoluteLayout layout =new WAbsoluteLayout(); + XWAbsoluteLayout container =new XWAbsoluteLayout(layout); + container.setBounds(0,320,400,160); + FRAbsoluteLayoutAdapter frAbsoluteLayoutAdapter = new FRAbsoluteLayoutAdapter(container); + XCreator button = new XButton(new Button(),new Dimension(88,40)); + + frAbsoluteLayoutAdapter.fix(button,-1,-1); + Assert.assertEquals(0,button.getX()); + Assert.assertEquals(0,button.getY()); + + frAbsoluteLayoutAdapter.fix(button,350,200); + Assert.assertEquals(312,button.getX()); + Assert.assertEquals(120,button.getY()); + } + + @Override + protected void tearDown() throws Exception { + DaoContext.setEntityDao(null); + DaoContext.setClassHelperDao(null); + DaoContext.setXmlEntityDao(null); + } +}