Browse Source

REPORT-27434 1.15jar假保存问题

监听装置需要同步刷新
feature/big-screen
Harrison 5 years ago
parent
commit
28a21eca1f
  1. 24
      designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java

24
designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java

@ -93,6 +93,7 @@ public abstract class JTemplate<T extends BaseBook, U extends BaseUndoState<?>>
protected U authorityUndoState = null; protected U authorityUndoState = null;
protected T template; // 当前模板 protected T template; // 当前模板
protected TemplateProcessInfo<T> processInfo; // 模板过程的相关信息 protected TemplateProcessInfo<T> processInfo; // 模板过程的相关信息
private JComponent centerPane;
private static short currentIndex = 0;// 此变量用于多次新建模板时,让名字不重复 private static short currentIndex = 0;// 此变量用于多次新建模板时,让名字不重复
private DesignModelAdapter<T, ?> designModel; private DesignModelAdapter<T, ?> designModel;
private PreviewProvider previewType; private PreviewProvider previewType;
@ -121,9 +122,9 @@ public abstract class JTemplate<T extends BaseBook, U extends BaseUndoState<?>>
this.template = t; this.template = t;
this.previewType = parserPreviewProvider(t.getPreviewType()); this.previewType = parserPreviewProvider(t.getPreviewType());
this.editingFILE = file; this.editingFILE = file;
addCenterPane();
this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.setLayout(FRGUIPaneFactory.createBorderLayout());
this.setBorder(BorderFactory.createEmptyBorder()); this.setBorder(BorderFactory.createEmptyBorder());
this.add(createCenterPane(), BorderLayout.CENTER);
this.undoState = createUndoState(); this.undoState = createUndoState();
designModel = createDesignModel(); designModel = createDesignModel();
@ -248,17 +249,38 @@ public abstract class JTemplate<T extends BaseBook, U extends BaseUndoState<?>>
/** /**
* 刷新内部资源 * 刷新内部资源
*
* 刷新资源的同时
* CenterPane 负责监听改动
* 所以需要同步处理
*/ */
public void refreshResource() { public void refreshResource() {
try { try {
this.template = JTemplateFactory.asIOFile(this.editingFILE); this.template = JTemplateFactory.asIOFile(this.editingFILE);
setTarget(this.template); setTarget(this.template);
// 先移除旧的。
removeCenterPane();
// 加入新的
addCenterPane();
} catch (Exception e) { } catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e); FineLoggerFactory.getLogger().error(e.getMessage(), e);
} }
} }
private void addCenterPane() {
this.centerPane = createCenterPane();
this.add(centerPane, BorderLayout.CENTER);
}
private void removeCenterPane() {
JComponent centerPane = this.centerPane;
this.remove(centerPane);
}
/** /**
* 刷新容器 * 刷新容器
*/ */

Loading…
Cancel
Save