From 0c4282585dae52d52bc1e144d9f6ff3d79cfb4e7 Mon Sep 17 00:00:00 2001 From: "Java.Edge" Date: Wed, 13 May 2020 19:39:49 +0800 Subject: [PATCH 1/4] REPORT-28813 bugfix --- .../mainframe/ElementCasePaneDelegate.java | 62 ++++++++++++++++- .../form/FormElementCasePaneDelegate.java | 67 +++++++++++++++++-- 2 files changed, 123 insertions(+), 6 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java b/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java index d4767e4d3..0976e8444 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java @@ -15,6 +15,7 @@ import com.fr.design.actions.edit.HyperlinkAction; import com.fr.design.actions.edit.merge.MergeCellAction; import com.fr.design.actions.edit.merge.UnmergeCellAction; import com.fr.design.actions.utils.DeprecatedActionManager; +import com.fr.design.base.mode.DesignModeContext; import com.fr.design.event.TargetModifiedEvent; import com.fr.design.event.TargetModifiedListener; import com.fr.design.file.HistoryTemplateListPane; @@ -35,8 +36,12 @@ import com.fr.page.ReportSettingsProvider; import com.fr.report.worksheet.WorkSheet; import com.fr.stable.ArrayUtils; -import javax.swing.JPanel; +import javax.swing.*; import java.awt.BorderLayout; +import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; + +import static com.fr.design.gui.syntax.ui.rtextarea.RTADefaultInputMap.DEFAULT_MODIFIER; /** * 类说明: 设计面板中最上方的"插入" "单元格"下拉列表Menu模块. @@ -113,6 +118,61 @@ public class ElementCasePaneDelegate extends ElementCasePane { } } + @Override + protected void initInputActionMap() { + InputMap inputMapAncestor = this.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); + ActionMap actionMap = this.getActionMap(); + inputMapAncestor.clear(); + actionMap.clear(); + + if (!DesignModeContext.isBanCopyAndCut()) { + inputMapAncestor.put(KeyStroke.getKeyStroke(KeyEvent.VK_X, DEFAULT_MODIFIER), "cut"); + actionMap.put("cut", new AbstractAction() { + @Override + public void actionPerformed(ActionEvent evt) { + if (cut()) { + fireTargetModified(); + } + } + }); + inputMapAncestor.put(KeyStroke.getKeyStroke(KeyEvent.VK_C, DEFAULT_MODIFIER), "copy"); + actionMap.put("copy", new AbstractAction() { + @Override + public void actionPerformed(ActionEvent evt) { + copy(); + } + }); + } + inputMapAncestor.put(KeyStroke.getKeyStroke(KeyEvent.VK_V, DEFAULT_MODIFIER), "paste"); + actionMap.put("paste", new AbstractAction() { + @Override + public void actionPerformed(ActionEvent evt) { + if (paste()) { + refreshPropertyPanes(); + repaint(); + } + } + }); + inputMapAncestor.put(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0), "delete_content"); + actionMap.put("delete_content", new AbstractAction() { + @Override + public void actionPerformed(ActionEvent evt) { + if (clearContents()) { + fireTargetModified(); + } + } + }); + inputMapAncestor.put(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, DEFAULT_MODIFIER), "delete_all"); + actionMap.put("delete_all", new AbstractAction() { + @Override + public void actionPerformed(ActionEvent evt) { + if (clearAll()) { + fireTargetModified(); + } + } + }); + } + @Override protected boolean supportRepeatedHeaderFooter() { return true; diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java b/designer-realize/src/main/java/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java index d2740d681..1a2a988e0 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java @@ -1,7 +1,6 @@ package com.fr.design.mainframe.form; -import javax.swing.JComponent; -import javax.swing.JPanel; +import javax.swing.*; import com.fr.design.DesignState; import com.fr.design.actions.UpdateAction; @@ -9,9 +8,9 @@ import com.fr.design.actions.core.ActionFactory; import com.fr.design.actions.form.FormECBackgroundAction; import com.fr.design.actions.form.FormECColumnsAction; import com.fr.design.actions.form.FormECFrozenAction; +import com.fr.design.base.mode.DesignModeContext; import com.fr.design.event.TargetModifiedEvent; import com.fr.design.event.TargetModifiedListener; -import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.gui.frpane.HyperlinkGroupPane; import com.fr.design.mainframe.*; import com.fr.design.mainframe.cell.QuickEditorRegion; @@ -22,13 +21,16 @@ import com.fr.design.menu.ToolBarDef; import com.fr.design.present.ConditionAttributesGroupPane; import com.fr.form.main.Form; import com.fr.grid.Grid; -import com.fr.js.NameJavaScriptGroup; import com.fr.page.ReportSettingsProvider; -import com.fr.report.elementcase.TemplateElementCase; import com.fr.report.worksheet.FormElementCase; import com.fr.design.selection.SelectionEvent; import com.fr.design.selection.SelectionListener; +import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; + +import static com.fr.design.gui.syntax.ui.rtextarea.RTADefaultInputMap.DEFAULT_MODIFIER; + /** */ public class FormElementCasePaneDelegate extends ElementCasePane{ @@ -72,6 +74,61 @@ public class FormElementCasePaneDelegate extends ElementCasePane Date: Wed, 13 May 2020 19:51:11 +0800 Subject: [PATCH 2/4] =?UTF-8?q?REPORT-28813=20bugfix=20=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96import?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/ElementCasePaneDelegate.java | 9 +++++++-- .../mainframe/form/FormElementCasePaneDelegate.java | 8 ++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java b/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java index 0976e8444..a41060e99 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java @@ -36,9 +36,14 @@ import com.fr.page.ReportSettingsProvider; import com.fr.report.worksheet.WorkSheet; import com.fr.stable.ArrayUtils; -import javax.swing.*; -import java.awt.BorderLayout; +import javax.swing.AbstractAction; +import javax.swing.ActionMap; +import javax.swing.InputMap; +import javax.swing.JComponent; +import javax.swing.JPanel; +import javax.swing.KeyStroke; import java.awt.event.ActionEvent; +import java.awt.BorderLayout; import java.awt.event.KeyEvent; import static com.fr.design.gui.syntax.ui.rtextarea.RTADefaultInputMap.DEFAULT_MODIFIER; diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java b/designer-realize/src/main/java/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java index 1a2a988e0..b8baf53dc 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java @@ -1,7 +1,5 @@ package com.fr.design.mainframe.form; -import javax.swing.*; - import com.fr.design.DesignState; import com.fr.design.actions.UpdateAction; import com.fr.design.actions.core.ActionFactory; @@ -26,6 +24,12 @@ import com.fr.report.worksheet.FormElementCase; import com.fr.design.selection.SelectionEvent; import com.fr.design.selection.SelectionListener; +import javax.swing.AbstractAction; +import javax.swing.ActionMap; +import javax.swing.InputMap; +import javax.swing.JComponent; +import javax.swing.JPanel; +import javax.swing.KeyStroke; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; From 68be58f8ce79fbc3b76cebb09d2a054a9361bb14 Mon Sep 17 00:00:00 2001 From: "Java.Edge" Date: Thu, 14 May 2020 10:01:50 +0800 Subject: [PATCH 3/4] =?UTF-8?q?REPORT-28813=20bugfix=20=E6=B6=88=E9=99=A4?= =?UTF-8?q?=E8=BF=87=E5=A4=9A=E9=87=8D=E5=A4=8D=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/ElementCasePane.java | 10 ++- .../mainframe/ElementCasePaneDelegate.java | 64 ------------------- .../form/FormElementCasePaneDelegate.java | 64 +------------------ 3 files changed, 10 insertions(+), 128 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePane.java b/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePane.java index 85dbd4eb3..c9c906618 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePane.java @@ -918,9 +918,7 @@ public abstract class ElementCasePane extends Tar actionMap.put("paste", new AbstractAction() { public void actionPerformed(ActionEvent evt) { if (paste()) { - QuickEditorRegion.getInstance().populate(getCurrentEditor()); - fireTargetModified(); - QuickEditorRegion.getInstance().populate(getCurrentEditor()); + afterPasteAction(); } } }); @@ -942,6 +940,12 @@ public abstract class ElementCasePane extends Tar }); } + protected void afterPasteAction() { + QuickEditorRegion.getInstance().populate(getCurrentEditor()); + fireTargetModified(); + QuickEditorRegion.getInstance().populate(getCurrentEditor()); + } + /** * 是否列表头可见 * diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java b/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java index a41060e99..ca95f6463 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java @@ -15,7 +15,6 @@ import com.fr.design.actions.edit.HyperlinkAction; import com.fr.design.actions.edit.merge.MergeCellAction; import com.fr.design.actions.edit.merge.UnmergeCellAction; import com.fr.design.actions.utils.DeprecatedActionManager; -import com.fr.design.base.mode.DesignModeContext; import com.fr.design.event.TargetModifiedEvent; import com.fr.design.event.TargetModifiedListener; import com.fr.design.file.HistoryTemplateListPane; @@ -36,17 +35,9 @@ import com.fr.page.ReportSettingsProvider; import com.fr.report.worksheet.WorkSheet; import com.fr.stable.ArrayUtils; -import javax.swing.AbstractAction; -import javax.swing.ActionMap; -import javax.swing.InputMap; -import javax.swing.JComponent; import javax.swing.JPanel; -import javax.swing.KeyStroke; -import java.awt.event.ActionEvent; import java.awt.BorderLayout; -import java.awt.event.KeyEvent; -import static com.fr.design.gui.syntax.ui.rtextarea.RTADefaultInputMap.DEFAULT_MODIFIER; /** * 类说明: 设计面板中最上方的"插入" "单元格"下拉列表Menu模块. @@ -123,61 +114,6 @@ public class ElementCasePaneDelegate extends ElementCasePane { } } - @Override - protected void initInputActionMap() { - InputMap inputMapAncestor = this.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); - ActionMap actionMap = this.getActionMap(); - inputMapAncestor.clear(); - actionMap.clear(); - - if (!DesignModeContext.isBanCopyAndCut()) { - inputMapAncestor.put(KeyStroke.getKeyStroke(KeyEvent.VK_X, DEFAULT_MODIFIER), "cut"); - actionMap.put("cut", new AbstractAction() { - @Override - public void actionPerformed(ActionEvent evt) { - if (cut()) { - fireTargetModified(); - } - } - }); - inputMapAncestor.put(KeyStroke.getKeyStroke(KeyEvent.VK_C, DEFAULT_MODIFIER), "copy"); - actionMap.put("copy", new AbstractAction() { - @Override - public void actionPerformed(ActionEvent evt) { - copy(); - } - }); - } - inputMapAncestor.put(KeyStroke.getKeyStroke(KeyEvent.VK_V, DEFAULT_MODIFIER), "paste"); - actionMap.put("paste", new AbstractAction() { - @Override - public void actionPerformed(ActionEvent evt) { - if (paste()) { - refreshPropertyPanes(); - repaint(); - } - } - }); - inputMapAncestor.put(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0), "delete_content"); - actionMap.put("delete_content", new AbstractAction() { - @Override - public void actionPerformed(ActionEvent evt) { - if (clearContents()) { - fireTargetModified(); - } - } - }); - inputMapAncestor.put(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, DEFAULT_MODIFIER), "delete_all"); - actionMap.put("delete_all", new AbstractAction() { - @Override - public void actionPerformed(ActionEvent evt) { - if (clearAll()) { - fireTargetModified(); - } - } - }); - } - @Override protected boolean supportRepeatedHeaderFooter() { return true; diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java b/designer-realize/src/main/java/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java index b8baf53dc..1108c4741 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java @@ -6,7 +6,6 @@ import com.fr.design.actions.core.ActionFactory; import com.fr.design.actions.form.FormECBackgroundAction; import com.fr.design.actions.form.FormECColumnsAction; import com.fr.design.actions.form.FormECFrozenAction; -import com.fr.design.base.mode.DesignModeContext; import com.fr.design.event.TargetModifiedEvent; import com.fr.design.event.TargetModifiedListener; import com.fr.design.gui.frpane.HyperlinkGroupPane; @@ -24,16 +23,8 @@ import com.fr.report.worksheet.FormElementCase; import com.fr.design.selection.SelectionEvent; import com.fr.design.selection.SelectionListener; -import javax.swing.AbstractAction; -import javax.swing.ActionMap; -import javax.swing.InputMap; import javax.swing.JComponent; import javax.swing.JPanel; -import javax.swing.KeyStroke; -import java.awt.event.ActionEvent; -import java.awt.event.KeyEvent; - -import static com.fr.design.gui.syntax.ui.rtextarea.RTADefaultInputMap.DEFAULT_MODIFIER; /** */ @@ -79,58 +70,9 @@ public class FormElementCasePaneDelegate extends ElementCasePane Date: Thu, 14 May 2020 10:04:26 +0800 Subject: [PATCH 4/4] =?UTF-8?q?REPORT-28813=20bugfix=20=E8=A1=A5=E5=85=85?= =?UTF-8?q?=E5=AD=90=E7=B1=BB=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/ElementCasePaneDelegate.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java b/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java index ca95f6463..696c732f3 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/ElementCasePaneDelegate.java @@ -114,6 +114,12 @@ public class ElementCasePaneDelegate extends ElementCasePane { } } + @Override + protected void afterPasteAction() { + refreshPropertyPanes(); + repaint(); + } + @Override protected boolean supportRepeatedHeaderFooter() { return true;