From 784a486ac1dba45eae326755d94c4c15ff435a26 Mon Sep 17 00:00:00 2001 From: kerry Date: Tue, 14 Nov 2017 16:22:32 +0800 Subject: [PATCH 01/11] =?UTF-8?q?REPORT-5484=20=E7=BC=96=E8=BE=91=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E6=8E=A7=E4=BB=B6=E9=AB=98=E5=BA=A6=20=E4=B8=8D?= =?UTF-8?q?=E8=87=AA=E9=80=82=E5=BA=94=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/widget/ui/designer/component/WidgetBoundPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/widget/ui/designer/component/WidgetBoundPane.java b/designer_form/src/com/fr/design/widget/ui/designer/component/WidgetBoundPane.java index 25fcece419..8148e4dafe 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/component/WidgetBoundPane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/component/WidgetBoundPane.java @@ -143,8 +143,8 @@ public class WidgetBoundPane extends BasicPane { difference = bounds.height - h; bounds.height = h; } + height.setValue(bounds.height); wabs.setBounds(creator.toData(), bounds); - creator.setBounds(bounds); adjustComponents(bounds, difference, 1); } From 6300044d73ef3a20096d1e842de65e27c3365be8 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 14 Nov 2017 21:16:48 +0800 Subject: [PATCH 02/11] =?UTF-8?q?enter=E9=94=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/alphafine/component/AlphaFineDialog.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java index f94c35a9a5..995d2d3366 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java +++ b/designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java @@ -676,7 +676,7 @@ public class AlphaFineDialog extends UIDialog { searchResultList.setSelectedIndex(searchResultList.getSelectedIndex() + 1); } else if (e.getKeyCode() == KeyEvent.VK_UP) { searchResultList.setSelectedIndex(searchResultList.getSelectedIndex() - 1); - } else escAlphaFine(e); + } else escAlphaFineDialog(e); } }); @@ -888,7 +888,7 @@ public class AlphaFineDialog extends UIDialog { * * @param e */ - private void escAlphaFine(KeyEvent e) { + private void escAlphaFineDialog(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { if (StringUtils.isBlank(searchTextField.getText()) || ComparatorUtils.equals(searchTextField.getText(), searchTextField.getPlaceHolder())) { AlphaFineDialog.this.setVisible(false); @@ -896,6 +896,10 @@ public class AlphaFineDialog extends UIDialog { searchTextField.setText(null); removeSearchResult(); } + } else if (e.getKeyCode() == KeyEvent.VK_ENTER) { + if (searchResultList.getModel().getSize() > 1) { + dealWithSearchResult(searchResultList.getSelectedValue()); + } } } @@ -969,7 +973,7 @@ public class AlphaFineDialog extends UIDialog { addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { - escAlphaFine(e); + escAlphaFineDialog(e); } }); From 18317e45a1c4d2a72e5f92dd4df375b24ceec829 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Tue, 14 Nov 2017 21:17:46 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E9=81=8D=E5=8E=86=E6=8E=A7=E4=BB=B6?= =?UTF-8?q?=E5=90=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/actions/UpdateAction.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/designer_base/src/com/fr/design/actions/UpdateAction.java b/designer_base/src/com/fr/design/actions/UpdateAction.java index 8c458b53f7..b3832e1a0b 100644 --- a/designer_base/src/com/fr/design/actions/UpdateAction.java +++ b/designer_base/src/com/fr/design/actions/UpdateAction.java @@ -504,9 +504,13 @@ public abstract class UpdateAction extends ShortCut implements Action { } else if (component instanceof JComboBox) { for (int i = 0; i < ((JComboBox) component).getItemCount(); i++) { - text.append(((JComboBox) component).getItemAt(i)); - String title = String.valueOf(((JComboBox) component).getItemAt(i)); - handleSearchText(separator, text, pinyin, shortPinyin, title); + Object object = ((JComboBox) component).getItemAt(i); + if (object instanceof String) { + text.append(((JComboBox) component).getItemAt(i)); + String title = String.valueOf(((JComboBox) component).getItemAt(i)); + handleSearchText(separator, text, pinyin, shortPinyin, title); + } + } } else if (component instanceof JTabbedPane) { From cc91454ef65f99e78bd41a27098ef24bb2eac327 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 15 Nov 2017 09:56:05 +0800 Subject: [PATCH 04/11] rt --- designer_base/src/com/fr/design/actions/UpdateAction.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/designer_base/src/com/fr/design/actions/UpdateAction.java b/designer_base/src/com/fr/design/actions/UpdateAction.java index b3832e1a0b..90f47165ee 100644 --- a/designer_base/src/com/fr/design/actions/UpdateAction.java +++ b/designer_base/src/com/fr/design/actions/UpdateAction.java @@ -506,17 +506,16 @@ public abstract class UpdateAction extends ShortCut implements Action { for (int i = 0; i < ((JComboBox) component).getItemCount(); i++) { Object object = ((JComboBox) component).getItemAt(i); if (object instanceof String) { - text.append(((JComboBox) component).getItemAt(i)); - String title = String.valueOf(((JComboBox) component).getItemAt(i)); + text.append(object); + String title = (String) object; handleSearchText(separator, text, pinyin, shortPinyin, title); } - - } } else if (component instanceof JTabbedPane) { getTabPaneTexts((JTabbedPane) component, separator, text, pinyin, shortPinyin); } } + panel.removeAll(); return String.valueOf(text.append(pinyin).append(shortPinyin)); } From 0e7b04fe832ffd0dbd850b79b55b93cacde9a1a2 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 15 Nov 2017 11:37:04 +0800 Subject: [PATCH 05/11] rt --- designer_base/src/com/fr/design/actions/UpdateAction.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/designer_base/src/com/fr/design/actions/UpdateAction.java b/designer_base/src/com/fr/design/actions/UpdateAction.java index 90f47165ee..7e1fc2112b 100644 --- a/designer_base/src/com/fr/design/actions/UpdateAction.java +++ b/designer_base/src/com/fr/design/actions/UpdateAction.java @@ -504,10 +504,10 @@ public abstract class UpdateAction extends ShortCut implements Action { } else if (component instanceof JComboBox) { for (int i = 0; i < ((JComboBox) component).getItemCount(); i++) { - Object object = ((JComboBox) component).getItemAt(i); - if (object instanceof String) { - text.append(object); - String title = (String) object; + Object componentName = ((JComboBox) component).getItemAt(i); + if (componentName instanceof String) { + text.append(componentName); + String title = (String) componentName; handleSearchText(separator, text, pinyin, shortPinyin, title); } } From b0a254ea64a14cd60e6d159fb3323ae878a2dbb8 Mon Sep 17 00:00:00 2001 From: MoMeak Date: Wed, 15 Nov 2017 11:49:01 +0800 Subject: [PATCH 06/11] =?UTF-8?q?REPORT-5659=20[9.0=E4=B8=89=E8=BD=AE?= =?UTF-8?q?=E5=9B=9E=E5=BD=92]=E5=8D=95=E5=85=83=E6=A0=BC=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E6=97=A5=E6=9C=9F=E5=9E=8B=EF=BC=8C=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/gui/style/FormatPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/gui/style/FormatPane.java b/designer_base/src/com/fr/design/gui/style/FormatPane.java index 5ab39647f4..8ca1d58c49 100644 --- a/designer_base/src/com/fr/design/gui/style/FormatPane.java +++ b/designer_base/src/com/fr/design/gui/style/FormatPane.java @@ -262,7 +262,7 @@ public class FormatPane extends AbstractBasicStylePane implements GlobalNameObs if (i == -1) { this.textField.setSelectedItem(pattern); } else { - this.textField.setSelectedIndex(i); + this.textField.setSelectedItem(pattern); } } From c159dde5486978b0996d3f0ccfacfbfdf615ca88 Mon Sep 17 00:00:00 2001 From: MoMeak Date: Wed, 15 Nov 2017 11:51:00 +0800 Subject: [PATCH 07/11] =?UTF-8?q?REPORT-5659=20[9.0=E4=B8=89=E8=BD=AE?= =?UTF-8?q?=E5=9B=9E=E5=BD=92]=E5=8D=95=E5=85=83=E6=A0=BC=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E6=97=A5=E6=9C=9F=E5=9E=8B=EF=BC=8C=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/gui/style/FormatPane.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/designer_base/src/com/fr/design/gui/style/FormatPane.java b/designer_base/src/com/fr/design/gui/style/FormatPane.java index 8ca1d58c49..7b60bc99b3 100644 --- a/designer_base/src/com/fr/design/gui/style/FormatPane.java +++ b/designer_base/src/com/fr/design/gui/style/FormatPane.java @@ -258,12 +258,7 @@ public class FormatPane extends AbstractBasicStylePane implements GlobalNameObs private void setPatternComboBoxAndList(int formatStyle, String pattern) { this.typeComboBox.setSelectedItem(formatStyle); - int i = isArrayContainPattern(FormatField.getInstance().getFormatArray(formatStyle), pattern); - if (i == -1) { - this.textField.setSelectedItem(pattern); - } else { - this.textField.setSelectedItem(pattern); - } + this.textField.setSelectedItem(pattern); } private boolean isTimeType(String pattern) { From f577a58d192ec2a3d208134c520bc11d03a09b87 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 15 Nov 2017 11:56:06 +0800 Subject: [PATCH 08/11] rt --- designer_base/src/com/fr/design/actions/UpdateAction.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/actions/UpdateAction.java b/designer_base/src/com/fr/design/actions/UpdateAction.java index 7e1fc2112b..dc2f2fbfd9 100644 --- a/designer_base/src/com/fr/design/actions/UpdateAction.java +++ b/designer_base/src/com/fr/design/actions/UpdateAction.java @@ -505,7 +505,7 @@ public abstract class UpdateAction extends ShortCut implements Action { } else if (component instanceof JComboBox) { for (int i = 0; i < ((JComboBox) component).getItemCount(); i++) { Object componentName = ((JComboBox) component).getItemAt(i); - if (componentName instanceof String) { + if (componentName instanceof String && StringUtils.isNotBlank(String.valueOf(componentName))) { text.append(componentName); String title = (String) componentName; handleSearchText(separator, text, pinyin, shortPinyin, title); From 0303f2807fc410727a7d402d5edb0a0d80c18b3f Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 15 Nov 2017 12:00:24 +0800 Subject: [PATCH 09/11] =?UTF-8?q?=E6=8E=A7=E4=BB=B6=E5=90=8D=E9=81=8D?= =?UTF-8?q?=E5=8E=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/actions/UpdateAction.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designer_base/src/com/fr/design/actions/UpdateAction.java b/designer_base/src/com/fr/design/actions/UpdateAction.java index dc2f2fbfd9..a82087a905 100644 --- a/designer_base/src/com/fr/design/actions/UpdateAction.java +++ b/designer_base/src/com/fr/design/actions/UpdateAction.java @@ -506,8 +506,8 @@ public abstract class UpdateAction extends ShortCut implements Action { for (int i = 0; i < ((JComboBox) component).getItemCount(); i++) { Object componentName = ((JComboBox) component).getItemAt(i); if (componentName instanceof String && StringUtils.isNotBlank(String.valueOf(componentName))) { - text.append(componentName); - String title = (String) componentName; + String title = String.valueOf(componentName); + text.append(title); handleSearchText(separator, text, pinyin, shortPinyin, title); } } From 0758690e2de6690209b7c8d6f002c0cff798f9b7 Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 15 Nov 2017 12:02:16 +0800 Subject: [PATCH 10/11] rt --- designer_base/src/com/fr/design/actions/UpdateAction.java | 1 - 1 file changed, 1 deletion(-) diff --git a/designer_base/src/com/fr/design/actions/UpdateAction.java b/designer_base/src/com/fr/design/actions/UpdateAction.java index a82087a905..ffc2e2a2ea 100644 --- a/designer_base/src/com/fr/design/actions/UpdateAction.java +++ b/designer_base/src/com/fr/design/actions/UpdateAction.java @@ -515,7 +515,6 @@ public abstract class UpdateAction extends ShortCut implements Action { getTabPaneTexts((JTabbedPane) component, separator, text, pinyin, shortPinyin); } } - panel.removeAll(); return String.valueOf(text.append(pinyin).append(shortPinyin)); } From 00cc1fad3740f1b7fe5848515d7055a224cbf1bd Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Wed, 15 Nov 2017 13:59:19 +0800 Subject: [PATCH 11/11] =?UTF-8?q?REPORT-4729=20=E5=86=B3=E7=AD=96=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E8=87=AA=E9=80=82=E5=BA=94=E5=B8=83=E5=B1=80=E6=8E=A7?= =?UTF-8?q?=E4=BB=B6=E5=A4=8D=E7=94=A8=E7=B2=98=E8=B4=B4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/mainframe/FormSelectionUtils.java | 117 ++++++++++++------ 1 file changed, 77 insertions(+), 40 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java index 7a03782c25..ebf7328a2f 100644 --- a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java +++ b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java @@ -5,24 +5,45 @@ import com.fr.design.designer.beans.LayoutAdapter; import com.fr.design.designer.beans.adapters.layout.AbstractLayoutAdapter; import com.fr.design.designer.beans.adapters.layout.FRTabFitLayoutAdapter; import com.fr.design.designer.beans.events.DesignerEvent; -import com.fr.design.designer.creator.*; +import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XCreatorUtils; +import com.fr.design.designer.creator.XLayoutContainer; +import com.fr.design.designer.creator.XWAbsoluteLayout; +import com.fr.design.designer.creator.XWFitLayout; +import com.fr.design.designer.creator.XWScaleLayout; +import com.fr.design.designer.creator.XWTitleLayout; import com.fr.design.utils.ComponentUtils; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WTitleLayout; import com.fr.general.ComparatorUtils; +import com.fr.general.FRLogger; import com.fr.general.Inter; -import java.awt.*; +import java.awt.Component; +import java.awt.Point; +import java.awt.Rectangle; +import java.awt.Toolkit; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +/** + * 表单选中工具类 + * + * @author yaoh.wu + * @version 2017年11月15日13点51分 + * @since 8.0 + */ public class FormSelectionUtils { - //组件复制时坐标偏移 + /** + * 组件复制时坐标偏移 + */ private static final int DELAY_X_Y = 20; - //组件重命名后缀 + /** + * 组件重命名后缀 + */ private static final String POSTFIX = "_c"; private FormSelectionUtils() { @@ -47,6 +68,25 @@ public class FormSelectionUtils { Toolkit.getDefaultToolkit().beep(); } + + public static void rebuildSelection(FormDesigner designer) { + ArrayList newSelection = new ArrayList<>(); + List widgetList = new ArrayList<>(); + for (XCreator comp : designer.getSelectionModel().getSelection().getSelectedCreators()) { + widgetList.add(comp.toData()); + } + designer.getSelectionModel().setSelectedCreators( + rebuildSelection(designer.getRootComponent(), widgetList, newSelection)); + } + + public static ArrayList rebuildSelection(XCreator rootComponent, Widget[] selectWidgets) { + List selectionWidget = new ArrayList<>(); + if (selectWidgets != null) { + selectionWidget.addAll(Arrays.asList(selectWidgets)); + } + return FormSelectionUtils.rebuildSelection(rootComponent, selectionWidget, new ArrayList()); + } + /** * 绝对布局粘贴 */ @@ -92,26 +132,15 @@ public class FormSelectionUtils { designer.getSelectionModel().getSelection().reset(); for (XCreator creator : clipboard.getSelectedCreators()) { - try { - Widget copied = copyWidget(designer, creator); - XCreator copiedCreator = XCreatorUtils.createXCreator(copied, creator.getSize()); - if (adapter.getClass().equals(FRTabFitLayoutAdapter.class)) { - if (!adapter.accept(copiedCreator, x - tabContainerRect.x, y - tabContainerRect.y)) { - designer.showMessageDialog(Inter.getLocText("FR-Designer_Too_Small_To_Paste")); - return; - } - } else { - if (!adapter.accept(copiedCreator, x, y)) { - designer.showMessageDialog(Inter.getLocText("FR-Designer_Too_Small_To_Paste")); - return; - } - } - boolean addSuccess = adapter.addBean(copiedCreator, x, y); - if (addSuccess) { - designer.getSelectionModel().getSelection().addSelectedCreator(copiedCreator); + if (creator instanceof XWScaleLayout) { + //XWScaleLayout封装了在自适应布局中需要保持默认高度的控件,由于自适应粘贴时会再次包装,因此复制时要进行解包 + Component[] innerComponents = creator.getComponents(); + for (Component innerComponent : innerComponents) { + XCreator innerXCreator = (XCreator) innerComponent; + relativePasteXCreator(designer, innerXCreator, adapter, tabContainerRect, x, y); } - } catch (CloneNotSupportedException e) { - FRContext.getLogger().error(e.getMessage(), e); + } else { + relativePasteXCreator(designer, creator, adapter, tabContainerRect, x, y); } } rebuildSelection(designer); @@ -119,6 +148,31 @@ public class FormSelectionUtils { designer.getSelectionModel().getSelection().getSelectedCreator(), DesignerEvent.CREATOR_PASTED); } + + private static void relativePasteXCreator(FormDesigner designer, XCreator creator, LayoutAdapter adapter, Rectangle tabContainerRect, int x, int y) { + try { + Widget copied = copyWidget(designer, creator); + XCreator copiedXCreator = XCreatorUtils.createXCreator(copied, creator.getSize()); + if (adapter.getClass().equals(FRTabFitLayoutAdapter.class)) { + if (!adapter.accept(copiedXCreator, x - tabContainerRect.x, y - tabContainerRect.y)) { + designer.showMessageDialog(Inter.getLocText("FR-Designer_Too_Small_To_Paste")); + return; + } + } else { + if (!adapter.accept(copiedXCreator, x, y)) { + designer.showMessageDialog(Inter.getLocText("FR-Designer_Too_Small_To_Paste")); + return; + } + } + boolean addSuccess = adapter.addBean(copiedXCreator, x, y); + if (addSuccess) { + designer.getSelectionModel().getSelection().addSelectedCreator(copiedXCreator); + } + } catch (CloneNotSupportedException e) { + FRLogger.getLogger().error(e.getMessage(), e); + } + } + /** * 组件复用绝对布局获取粘贴组件位置 */ @@ -182,23 +236,6 @@ public class FormSelectionUtils { return name.toString(); } - public static void rebuildSelection(FormDesigner designer) { - ArrayList newSelection = new ArrayList<>(); - List widgetList = new ArrayList<>(); - for (XCreator comp : designer.getSelectionModel().getSelection().getSelectedCreators()) { - widgetList.add(comp.toData()); - } - designer.getSelectionModel().setSelectedCreators( - rebuildSelection(designer.getRootComponent(), widgetList, newSelection)); - } - - public static ArrayList rebuildSelection(XCreator rootComponent, Widget[] selectWidgets) { - List selectionWidget = new ArrayList<>(); - if (selectWidgets != null) { - selectionWidget.addAll(Arrays.asList(selectWidgets)); - } - return FormSelectionUtils.rebuildSelection(rootComponent, selectionWidget, new ArrayList()); - } private static ArrayList rebuildSelection(XCreator rootComponent, List selectionWidget, ArrayList newSelection) {