Browse Source

REPORT-27434 1.15jar假保存问题

监听装置需要同步刷新
final/10.0
Harrison 4 years ago
parent
commit
e9abf0da09
  1. 28
      designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java

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