From 15dd30ecb523ddb70db33641fe48cedc4f68c85f Mon Sep 17 00:00:00 2001 From: kerry Date: Thu, 1 Feb 2018 15:27:48 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-5907=20=E8=A1=A8=E5=8D=95=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E7=8A=B6=E6=80=81=EF=BC=88=E9=BB=98=E8=AE=A4=E3=80=81?= =?UTF-8?q?=E6=82=AC=E5=81=9C=E3=80=81=E9=80=89=E4=B8=AD=E3=80=81=E7=BC=96?= =?UTF-8?q?=E8=BE=91=EF=BC=89=E8=A7=86=E8=A7=89=E6=94=B9=E8=89=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/designer/creator/XChartEditor.java | 20 ++++++++++++++++++ .../fr/design/designer/creator/XCreator.java | 10 +++++++++ .../designer/creator/XWAbsoluteLayout.java | 21 +++++++++++++++++-- .../designer/creator/XWTitleLayout.java | 13 ++++++++++++ .../cardlayout/XWCardMainBorderLayout.java | 10 +++++++-- .../design/form/util/XCreatorConstants.java | 4 +++- .../com/fr/design/mainframe/CoverPane.java | 16 ++++++++++++-- .../fr/design/mainframe/CoverReportPane.java | 6 ++++++ .../fr/design/mainframe/FormDesignerUI.java | 4 +++- 9 files changed, 96 insertions(+), 8 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/XChartEditor.java b/designer_form/src/com/fr/design/designer/creator/XChartEditor.java index 8a491e32d4..5ab96a112a 100644 --- a/designer_form/src/com/fr/design/designer/creator/XChartEditor.java +++ b/designer_form/src/com/fr/design/designer/creator/XChartEditor.java @@ -6,6 +6,7 @@ import java.beans.IntrospectionException; import javax.swing.*; +import com.fr.base.GraphHelper; import com.fr.base.chart.BaseChartCollection; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; @@ -24,6 +25,8 @@ import com.fr.form.ui.BaseChartEditor; import com.fr.form.ui.Widget; import com.fr.design.form.util.XCreatorConstants; import com.fr.general.Inter; +import com.fr.stable.Constants; +import com.fr.stable.GraphDrawHelper; import com.fr.stable.core.PropertyChangeAdapter; /** @@ -43,6 +46,8 @@ public class XChartEditor extends XBorderStyleWidgetCreator { private boolean isEditing = false; private JPanel coverPanel; + private static final Color OUTER_BORDER_COLOR = new Color(65, 155, 249, 30); + private static final Color INNER_BORDER_COLOR = new Color(65, 155, 249); public XChartEditor(BaseChartEditor editor) { this(editor, new Dimension(250, 150)); @@ -121,6 +126,21 @@ public class XChartEditor extends XBorderStyleWidgetCreator { return false; } + + /** + * 编辑状态的时候需要重新绘制下边框 + * + */ + @Override + public void paintBorder(Graphics g, Rectangle bounds){ + if(isEditing){ + g.setColor(OUTER_BORDER_COLOR); + GraphHelper.draw(g, new Rectangle(bounds.x - 3, bounds.y - 3, bounds.width + 5, bounds.height + 5), Constants.LINE_LARGE); + g.setColor(INNER_BORDER_COLOR); + GraphHelper.draw(g, new Rectangle(bounds.x, bounds.y, bounds.width, bounds.height), Constants.LINE_MEDIUM); + } + } + /** * 返回设计器的Editor */ diff --git a/designer_form/src/com/fr/design/designer/creator/XCreator.java b/designer_form/src/com/fr/design/designer/creator/XCreator.java index d934ecf57f..fbc14ff3bd 100644 --- a/designer_form/src/com/fr/design/designer/creator/XCreator.java +++ b/designer_form/src/com/fr/design/designer/creator/XCreator.java @@ -4,6 +4,7 @@ package com.fr.design.designer.creator; import com.fr.base.BaseUtils; +import com.fr.base.GraphHelper; import com.fr.design.actions.UpdateAction; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; @@ -16,6 +17,7 @@ import com.fr.design.mainframe.*; import com.fr.design.utils.gui.LayoutUtils; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WTitleLayout; +import com.fr.stable.Constants; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; @@ -690,6 +692,14 @@ public abstract class XCreator extends JPanel implements XComponent, XCreatorToo // do nothing } + /** + * 编辑状态的时候需要重新绘制下边框 + * + */ + public void paintBorder(Graphics g, Rectangle bounds){ + GraphHelper.draw(g, bounds, Constants.LINE_MEDIUM); + } + /** * 创建右击弹出菜单 * diff --git a/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java b/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java index eba8cd6888..74a970af01 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java @@ -3,6 +3,7 @@ */ package com.fr.design.designer.creator; +import com.fr.base.GraphHelper; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; import com.fr.design.designer.beans.LayoutAdapter; @@ -11,6 +12,7 @@ import com.fr.design.designer.beans.location.Direction; import com.fr.design.designer.beans.models.SelectionModel; import com.fr.design.designer.creator.cardlayout.XWTabFitLayout; import com.fr.design.form.layout.FRAbsoluteLayout; +import com.fr.design.form.util.XCreatorConstants; import com.fr.design.icon.IconPathConstants; import com.fr.design.mainframe.EditingMouseListener; import com.fr.design.mainframe.FormArea; @@ -23,6 +25,7 @@ import com.fr.form.ui.container.WLayout; import com.fr.general.FRScreen; import com.fr.general.IOUtils; import com.fr.general.Inter; +import com.fr.stable.Constants; import java.awt.*; import java.awt.event.ContainerEvent; @@ -42,6 +45,8 @@ public class XWAbsoluteLayout extends XLayoutContainer { private static final int EDIT_BTN_HEIGHT = 24; private int minWidth = WLayout.MIN_WIDTH; private int minHeight = WLayout.MIN_HEIGHT; + private static final Color OUTER_BORDER_COLOR = new Color(65, 155, 249, 30); + private static final Color INNER_BORDER_COLOR = new Color(65, 155, 249); //由于屏幕分辨率不同,界面上的容器大小可能不是默认的100%,此时拖入组件时,保存的大小按照100%时的计算 protected double containerPercent = 1.0; @@ -432,8 +437,8 @@ public class XWAbsoluteLayout extends XLayoutContainer { Graphics2D g2d = (Graphics2D) g; Composite oldComposite = g2d.getComposite(); //画白色的编辑层 - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 60 / 100.0F)); - g2d.setColor(Color.WHITE); + g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 50 / 100.0F)); + g2d.setColor(XCreatorConstants.COVER_COLOR); g2d.fillRect(x, y, w, h); //画编辑按钮所在框 g2d.setComposite(oldComposite); @@ -453,9 +458,21 @@ public class XWAbsoluteLayout extends XLayoutContainer { g2d.setColor(Color.BLACK); //画编辑文字 g2d.drawString(Inter.getLocText("FR-Designer_Edit"), x + w / 2 - 2, y + h / 2 + 5); + g.setColor(XCreatorConstants.FORM_BORDER_COLOR); + GraphHelper.draw(g, new Rectangle(0, 0, getWidth(), getHeight()), Constants.LINE_MEDIUM); } + } + @Override + public void paintBorder(Graphics g, Rectangle bounds){ + if(editable){ + g.setColor(OUTER_BORDER_COLOR); + GraphHelper.draw(g, new Rectangle(bounds.x - 3, bounds.y - 3, bounds.width + 5, bounds.height + 5), Constants.LINE_LARGE); + g.setColor(INNER_BORDER_COLOR); + GraphHelper.draw(g, new Rectangle(bounds.x, bounds.y, bounds.width, bounds.height), Constants.LINE_MEDIUM); + } + } /** * 响应点击事件 * diff --git a/designer_form/src/com/fr/design/designer/creator/XWTitleLayout.java b/designer_form/src/com/fr/design/designer/creator/XWTitleLayout.java index 6860fc3453..7e1e145735 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWTitleLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWTitleLayout.java @@ -111,6 +111,19 @@ public class XWTitleLayout extends DedicateLayoutContainer { return null; } + /** + * 编辑状态的时候需要重新绘制下边框 + * + */ + @Override + public void paintBorder(Graphics g, Rectangle bounds) { + XCreator childCreator = getEditingChildCreator(); + if (childCreator != null) { + childCreator.paintBorder(g, bounds); + } + + } + /** * 将WLayout转换为XLayoutContainer */ diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java index c326cec11f..2f56785687 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java @@ -3,6 +3,7 @@ */ package com.fr.design.designer.creator.cardlayout; +import com.fr.base.GraphHelper; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; import com.fr.design.designer.beans.LayoutAdapter; @@ -13,6 +14,7 @@ import com.fr.design.designer.creator.XCreatorUtils; import com.fr.design.designer.creator.XLayoutContainer; import com.fr.design.designer.creator.XWBorderLayout; import com.fr.design.designer.creator.XWidgetCreator; +import com.fr.design.form.util.XCreatorConstants; import com.fr.design.icon.IconPathConstants; import com.fr.design.mainframe.EditingMouseListener; import com.fr.design.mainframe.FormDesigner; @@ -24,6 +26,8 @@ import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; import com.fr.general.ComparatorUtils; import com.fr.general.IOUtils; import com.fr.general.Inter; +import com.fr.stable.Constants; + import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Component; @@ -286,8 +290,8 @@ public class XWCardMainBorderLayout extends XWBorderLayout{ Graphics2D g2d = (Graphics2D) g; Composite oldComposite = g2d.getComposite(); //画白色的编辑层 - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 60 / 100.0F)); - g2d.setColor(Color.WHITE); + g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 50 / 100.0F)); + g2d.setColor(XCreatorConstants.COVER_COLOR); g2d.fillRect(x, y, w, h); //画编辑按钮所在框 g2d.setComposite(oldComposite); @@ -307,6 +311,8 @@ public class XWCardMainBorderLayout extends XWBorderLayout{ g2d.setColor(Color.BLACK); //画编辑文字 g2d.drawString(Inter.getLocText("FR-Designer_Edit"), x + w / 2 - 2, y + h / 2 + 5); + g.setColor(XCreatorConstants.FORM_BORDER_COLOR); + GraphHelper.draw(g, new Rectangle(0, 0, getWidth(), getHeight()), Constants.LINE_MEDIUM); } } diff --git a/designer_form/src/com/fr/design/form/util/XCreatorConstants.java b/designer_form/src/com/fr/design/form/util/XCreatorConstants.java index 91cd2007ed..7e2436120e 100644 --- a/designer_form/src/com/fr/design/form/util/XCreatorConstants.java +++ b/designer_form/src/com/fr/design/form/util/XCreatorConstants.java @@ -31,7 +31,7 @@ public class XCreatorConstants { public static final Color RESIZE_BOX_BORDER_COLOR = new Color(143, 171, 196); // 当前选取的组件的边框线着色 public static final Color SELECTION_COLOR = new Color(179, 209, 236); - public static final Color FORM_BORDER_COLOR = new Color(200, 201, 205); + public static final Color FORM_BORDER_COLOR = new Color(141, 194, 249); // 设计器区域外边框的颜色和粗细 public static final Border AREA_BORDER = BorderFactory.createLineBorder(new Color(224, 224, 255), 0); // 布局拖拽时的颜色 @@ -43,6 +43,8 @@ public class XCreatorConstants { public static final Color FIT_LAYOUT_POINT_COLOR = new Color(106, 168, 222); // 格子布局的分割线 public static final Color LAYOUT_SEP_COLOR = new Color(210, 210, 210); + + public static final Color COVER_COLOR = new Color(216, 242, 253); // 伸缩表单操作条的颜色 public static final Color OP_COLOR = new Color(157,228,245); diff --git a/designer_form/src/com/fr/design/mainframe/CoverPane.java b/designer_form/src/com/fr/design/mainframe/CoverPane.java index 9fed1ab7c3..4d3d977e24 100644 --- a/designer_form/src/com/fr/design/mainframe/CoverPane.java +++ b/designer_form/src/com/fr/design/mainframe/CoverPane.java @@ -1,9 +1,13 @@ package com.fr.design.mainframe; +import com.fr.base.GraphHelper; +import com.fr.design.form.util.XCreatorConstants; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.icon.IconPathConstants; +import com.fr.design.utils.ComponentUtils; import com.fr.general.IOUtils; import com.fr.general.Inter; +import com.fr.stable.Constants; import javax.swing.*; import java.awt.*; @@ -17,7 +21,9 @@ import java.awt.*; public class CoverPane extends JPanel { private UIButton editButton; - private AlphaComposite composite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 60 / 100.0F); + private AlphaComposite composite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 50 / 100.0F); + private static final int BORDER_WIDTH = 2; + private static final Color COVER_COLOR = new Color(216, 242, 253); public CoverPane() { setLayout(getCoverLayout()); @@ -89,9 +95,15 @@ public class CoverPane extends JPanel { Graphics2D g2d = (Graphics2D) g; Composite oldComposite = g2d.getComposite(); g2d.setComposite(composite); - g2d.setColor(Color.WHITE); + g2d.setColor(COVER_COLOR); g2d.fillRect(0, 0, getWidth(), getHeight()); g2d.setComposite(oldComposite); + g.setColor(XCreatorConstants.FORM_BORDER_COLOR); + GraphHelper.draw(g, getPaintBorderBounds(), Constants.LINE_MEDIUM); super.paint(g); } + + protected Rectangle getPaintBorderBounds(){ + return new Rectangle(BORDER_WIDTH, BORDER_WIDTH, getWidth() - BORDER_WIDTH * 2 , getHeight() - BORDER_WIDTH * 2); + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/CoverReportPane.java b/designer_form/src/com/fr/design/mainframe/CoverReportPane.java index 196d8752a1..ec2924cdd1 100644 --- a/designer_form/src/com/fr/design/mainframe/CoverReportPane.java +++ b/designer_form/src/com/fr/design/mainframe/CoverReportPane.java @@ -21,6 +21,7 @@ import java.awt.event.WindowEvent; * Time: 11:32 */ public class CoverReportPane extends CoverPane implements HelpDialogHandler{ + private static final int BORDER_WIDTH = 2; private Icon controlMode = IOUtils.readIcon(IconPathConstants.TD_EL_SHARE_HELP_ICON_PATH); private JComponent controlButton = new JComponent() { protected void paintComponent(Graphics g) { @@ -126,6 +127,11 @@ public class CoverReportPane extends CoverPane implements HelpDialogHandler{ } } + @Override + protected Rectangle getPaintBorderBounds(){ + return new Rectangle(BORDER_WIDTH - 1, BORDER_WIDTH- 1, getWidth() - BORDER_WIDTH * 2 , getHeight() - BORDER_WIDTH * 2); + } + @Override public void setVisible(boolean aFlag) { super.setVisible(aFlag); diff --git a/designer_form/src/com/fr/design/mainframe/FormDesignerUI.java b/designer_form/src/com/fr/design/mainframe/FormDesignerUI.java index 8a40928c36..9263b47165 100644 --- a/designer_form/src/com/fr/design/mainframe/FormDesignerUI.java +++ b/designer_form/src/com/fr/design/mainframe/FormDesignerUI.java @@ -1,6 +1,7 @@ package com.fr.design.mainframe; import java.awt.AlphaComposite; +import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import java.awt.Graphics2D; @@ -266,6 +267,7 @@ public class FormDesignerUI extends ComponentUI { bounds.y -= designer.getArea().getVerticalValue(); drawResizingThumbs(g, selectionModel.getSelection().getDirections(), bounds.x, bounds.y, bounds.width, bounds.height); + //选中时边框颜色 g.setColor(XCreatorConstants.FORM_BORDER_COLOR); for (XCreator creator : selectionModel.getSelection().getSelectedCreators()) { @@ -277,7 +279,7 @@ public class FormDesignerUI extends ComponentUI { } else if (designer.getRootComponent().acceptType(XWFitLayout.class)) { resetCreatorBounds(creatorBounds); } - GraphHelper.draw(g, creatorBounds, Constants.LINE_MEDIUM); + creator.paintBorder(g, creatorBounds); } }