Browse Source

REPORT-78365【迭代】【起始页】不打开任何报表,普通报表聚合报表都新建失败

修复 npe
feature/x
Harrison 2 years ago
parent
commit
f6d7c6d2ce
  1. 9
      designer-base/src/main/java/com/fr/design/file/HistoryTemplateListCache.java
  2. 8
      designer-base/src/main/java/com/fr/design/mainframe/CenterRegionContainerPane.java
  3. 2
      designer-realize/src/main/java/com/fr/start/MainDesigner.java

9
designer-base/src/main/java/com/fr/design/file/HistoryTemplateListCache.java

@ -97,8 +97,13 @@ public class HistoryTemplateListCache implements CallbackEvent {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
}
/**
* 需要使用 {@link JTemplate#isValid(JTemplate)} 来判断空
*
* @return 当前正在编辑的模板
*/
@Nullable
public JTemplate<?, ?> getCurrentEditingTemplate() {
return this.editingTemplate;

8
designer-base/src/main/java/com/fr/design/mainframe/CenterRegionContainerPane.java

@ -156,7 +156,7 @@ public class CenterRegionContainerPane extends JPanel {
private void addExtraButtons() {
JTemplate<?, ?> jt = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate();
if (jt == null) {
if (!JTemplate.isValid(jt)) {
return;
}
@ -172,7 +172,7 @@ public class CenterRegionContainerPane extends JPanel {
private void addCheckButton() {
JTemplate<?, ?> jt = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate();
if (jt == null) {
if (!JTemplate.isValid(jt)) {
return;
}
combineUp.addSeparator(new Dimension(2, 16));
@ -185,7 +185,7 @@ public class CenterRegionContainerPane extends JPanel {
private void addShareButton() {
JTemplate<?, ?> jt = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate();
if (jt == null) {
if (!JTemplate.isValid(jt)) {
return;
}
@ -205,7 +205,7 @@ public class CenterRegionContainerPane extends JPanel {
protected void checkCombineUp(boolean flag, ArrayList<String> al) {
//Yvan: 检查当前是否为WORK_SHEET状态,因为只有WORK_SHEET中含有格式刷组件,此时是不需要进行checkComponentsByNames的
JTemplate<?, ?> jTemplate = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate();
if (jTemplate != null) {
if (JTemplate.isValid(jTemplate)) {
// 第一个条件满足后还需要添加一重判断,判断是编辑报表块还是参数面板,编辑报表块时则直接return
if (jTemplate.getMenuState() == DesignState.WORK_SHEET && !jTemplate.isUpMode()) {
return;

2
designer-realize/src/main/java/com/fr/start/MainDesigner.java

@ -408,7 +408,7 @@ public class MainDesigner extends BaseDesigner {
@Override
protected void refreshLargeToolbarState() {
JTemplate<?, ?> jt = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate();
if (jt == null) {
if (!JTemplate.isValid(jt)) {
return;
}
saveButton.setEnabled(!jt.isSaved() && !DesignModeContext.isVcsMode() && jt.checkEnable());

Loading…
Cancel
Save