Browse Source

Pull request #2900: REPORT-42734 && REPORT-42730 聚合报表block块命名校验

Merge in DESIGN/design from ~PENGDA/design:release/10.0 to release/10.0

* commit '06388472a5d968a33f539854f568fca4eeae022d':
  REPORT-42734 && REPORT-42730 聚合报表block块命名校验
  REPORT-42734 && REPORT-42730 聚合报表block块命名校验
feature/big-screen
pengda 4 years ago
parent
commit
e108f025e2
  1. 4
      designer-realize/src/main/java/com/fr/poly/PolyBlockProperPane.java
  2. 37
      designer-realize/src/main/java/com/fr/poly/PolyBlockProperTable.java
  3. 3
      designer-realize/src/main/java/com/fr/poly/PolyDesigner.java

4
designer-realize/src/main/java/com/fr/poly/PolyBlockProperPane.java

@ -40,6 +40,10 @@ public class PolyBlockProperPane extends DockingView {
polyBlockProperTable.populate(designer); polyBlockProperTable.populate(designer);
} }
public void update(){
polyBlockProperTable.update();
}
@Override @Override
public String getViewTitle() { public String getViewTitle() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Widget_Property_Table"); return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Widget_Property_Table");

37
designer-realize/src/main/java/com/fr/poly/PolyBlockProperTable.java

@ -1,17 +1,24 @@
package com.fr.poly; package com.fr.poly;
import com.fr.design.dialog.FineJOptionPane;
import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserver;
import com.fr.design.event.UIObserverListener; import com.fr.design.event.UIObserverListener;
import com.fr.design.foldablepane.UIExpandablePane; import com.fr.design.foldablepane.UIExpandablePane;
import com.fr.design.gui.ispinner.UISpinner; import com.fr.design.gui.ispinner.UISpinner;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.widget.BasicPropertyPane; import com.fr.design.mainframe.widget.BasicPropertyPane;
import com.fr.design.widget.WidgetBoundsPaneFactory; import com.fr.design.widget.WidgetBoundsPaneFactory;
import com.fr.general.ComparatorUtils;
import com.fr.general.IOUtils;
import com.fr.poly.group.PolyBoundsGroup; import com.fr.poly.group.PolyBoundsGroup;
import com.fr.report.poly.TemplateBlock; import com.fr.report.poly.TemplateBlock;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import javax.swing.*;
import java.awt.*;
public class PolyBlockProperTable extends JPanel { public class PolyBlockProperTable extends JPanel {
private PolyDesigner designer; private PolyDesigner designer;
@ -104,7 +111,12 @@ public class PolyBlockProperTable extends JPanel {
if (isPopulating || block == null) { if (isPopulating || block == null) {
return; return;
} }
block.setBlockName(blockPropertyPane.getWidgetNameField().getText()); if (blockPropertyPane.getWidgetNameField() != null) {
String toSetWidgetName = blockPropertyPane.getWidgetNameField().getText();
if (isBlockNameValid(toSetWidgetName, block.getBlockName())) {
block.setBlockName(toSetWidgetName);
}
}
PolyBoundsGroup boundsgroup = new PolyBoundsGroup(block, designer.getTarget()); PolyBoundsGroup boundsgroup = new PolyBoundsGroup(block, designer.getTarget());
boundsgroup.setValue(x.getValue(), 0, 1); boundsgroup.setValue(x.getValue(), 0, 1);
boundsgroup.setValue(y.getValue(), 1, 1); boundsgroup.setValue(y.getValue(), 1, 1);
@ -112,4 +124,23 @@ public class PolyBlockProperTable extends JPanel {
boundsgroup.setValue(height.getValue(), 3, 1); boundsgroup.setValue(height.getValue(), 3, 1);
firePropertyEdit(); firePropertyEdit();
} }
/**
*校验一下要设置的名称不能为空不能重名
*
*/
private boolean isBlockNameValid(String toSetWidgetName, String currentWidgetName) {
if (toSetWidgetName == null || toSetWidgetName.isEmpty()) {
blockPropertyPane.getWidgetNameField().setText(currentWidgetName);
return false;
}
for (int i = 0; i < this.designer.getTarget().getBlockCount(); i++) {
if (!ComparatorUtils.equals(currentWidgetName, toSetWidgetName) && ComparatorUtils.equals(toSetWidgetName, this.designer.getTarget().getBlock(i).getBlockName())) {
blockPropertyPane.getWidgetNameField().setText(currentWidgetName);
FineJOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Widget_Rename_Failure"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Joption_News"), FineJOptionPane.ERROR_MESSAGE, IOUtils.readIcon("com/fr/design/form/images/joption_failure.png"));
return false;
}
}
return true;
}
} }

3
designer-realize/src/main/java/com/fr/poly/PolyDesigner.java

@ -623,6 +623,9 @@ public class PolyDesigner extends ReportComponent<PolyWorkSheet, PolyElementCase
// 在停止编辑的时候,要把编辑器的值赋值给显示器 // 在停止编辑的时候,要把编辑器的值赋值给显示器
TemplateBlock block = selection.getValue(); TemplateBlock block = selection.getValue();
selection.setValue(block); selection.setValue(block);
if (isChooseBlock()){
((PolyBlockProperPane) this.getEastDownPane()).update();
}
this.removeEditor(selection.getEditor()); this.removeEditor(selection.getEditor());
selection = null; selection = null;
this.repaint(); this.repaint();

Loading…
Cancel
Save