diff --git a/designer-form/src/main/java/com/fr/design/mainframe/FormDesignerUI.java b/designer-form/src/main/java/com/fr/design/mainframe/FormDesignerUI.java index 6e8419f72..7c2b67352 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/FormDesignerUI.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/FormDesignerUI.java @@ -23,8 +23,7 @@ import com.fr.page.WatermarkPainter; import com.fr.report.core.ReportUtils; import com.fr.stable.ArrayUtils; -import javax.swing.JComponent; -import javax.swing.SwingUtilities; +import javax.swing.*; import javax.swing.plaf.ComponentUI; import java.awt.AlphaComposite; import java.awt.Component; @@ -65,7 +64,7 @@ public class FormDesignerUI extends ComponentUI { * @param c 组件 */ @Override - public void paint(Graphics g, JComponent c) { + public void paint(final Graphics g, JComponent c) { XCreator rootComponent = designer.getRootComponent(); this.time = (float)designer.getResolution()/ScreenResolution.getScreenResolution(); if (rootComponent != null) { @@ -101,8 +100,14 @@ public class FormDesignerUI extends ComponentUI { if (designer.getPainter() != null) { // ComponentAdapter和LayoutAdapter提供的额外的Painter,该Painter一般用于提示作用, // 相当于一个浮动层, 要考虑参数面板的高度 - designer.getPainter().paint(g, designer.getArea().getHorizontalValue(), - designer.getArea().getVerticalValue() + designer.getParaHeight()); + new SwingWorker() { + @Override + protected Void doInBackground() throws Exception { + designer.getPainter().paint(g, designer.getArea().getHorizontalValue(), + designer.getArea().getVerticalValue() + designer.getParaHeight()); + return null; + } + }.execute(); } AddingModel addingModel = designer.getAddingModel(); 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 4e12bd5f8..27f336821 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 @@ -523,8 +523,9 @@ public abstract class ElementCasePane extends Tar @Override public void setSelection(Selection selection) { - if (!ComparatorUtils.equals(this.selection, selection) || - !ComparatorUtils.equals(EastRegionContainerPane.getInstance().getCellAttrPane(), CellElementPropertyPane.getInstance())) { + if (!ComparatorUtils.equals(this.selection, selection) + || !ComparatorUtils.equals(EastRegionContainerPane.getInstance().getCellAttrPane(), CellElementPropertyPane.getInstance()) + || DesignModeContext.isAuthorityEditing()) { try { //旧选中内容编辑器释放模板对象 QuickEditor editor = this.getCurrentEditor(); @@ -535,8 +536,8 @@ public abstract class ElementCasePane extends Tar FineLoggerFactory.getLogger().info("Nothing to release"); } this.selection = selection; + fireSelectionChanged(); } - fireSelectionChanged(); }