Browse Source

Pull request #2306: REPORT-39338 【回归】内置服务器启动进度条会先展示上次的进度再初始化

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

* commit '9e42bed9aa88cf0f440bffa6b6d4848d8430bad0':
  考虑到progressDialog目前只在FineEmbedServerMonitor中使用,所以将原本维护在DesignerFrame中的progressDialog放到FineEmbedServerMonitor中,而DesignerFrame原本的成员变量和相应初始化删除,一些相关方法先做成空实现,然后标记为废弃,这些方法具体实现和使用都放到FineEmbedServerMonitor中
  REPORT-39338 【回归】内置服务器启动进度条会先展示上次的进度再初始化 1. 更新修改方案:确定了一直维护同一个进度条dialog没有特殊意义之后,选择在每一次关闭服务器或者服务器启动完成后dialog废弃掉,然后在每一次需要打开对话框的时候,新建一个
  添加修改
  REPORT-39338 【回归】内置服务器启动进度条会先展示上次的进度再初始化 1. bug原因:,每次内置服务器启动使用的进度条弹窗都是同一个,只是在可见与不可见状态之间切换,而在启动成功之后,没有清空上次进度,所以会先显示上次进度 2. 修改方案:为进度条的value置0,并刷新UI
feature/big-screen
Yvan 4 years ago
parent
commit
aebaecce97
  1. 24
      designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java
  2. 21
      designer-base/src/main/java/com/fr/start/server/FineEmbedServerMonitor.java

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

@ -257,8 +257,6 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
} }
}; };
private ProgressDialog progressDialog;
public DesignerFrame(ToolBarMenuDock ad) { public DesignerFrame(ToolBarMenuDock ad) {
setName(DESIGNER_FRAME_NAME); setName(DESIGNER_FRAME_NAME);
@ -338,7 +336,6 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
this.setDropTarget(new DropTarget(this, DnDConstants.ACTION_MOVE, new FileDropTargetListener(), true)); this.setDropTarget(new DropTarget(this, DnDConstants.ACTION_MOVE, new FileDropTargetListener(), true));
closeMode = UIConstants.CLOSE_OF_AUTHORITY; closeMode = UIConstants.CLOSE_OF_AUTHORITY;
initMenuPane(); initMenuPane();
this.progressDialog = new ProgressDialog(this);
} }
public void resizeFrame() { public void resizeFrame() {
@ -1264,23 +1261,15 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
} }
} }
@Deprecated
public ProgressDialog getProgressDialog() { public ProgressDialog getProgressDialog() {
return progressDialog; return new ProgressDialog(this);
}
public void showProgressDialog() {
progressDialog.setVisible(true);
} }
/** @Deprecated
* 隐藏进度框 public void openProgressDialog() {
*/
public void hideProgressDialog() {
progressDialog.setVisible(false);
} }
/** /**
@ -1288,17 +1277,17 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
* *
* @param progress 进度值 * @param progress 进度值
*/ */
@Deprecated
public void updateProgress(int progress) { public void updateProgress(int progress) {
progressDialog.setProgressValue(progress);
} }
/** /**
* 释放进度框 * 释放进度框
*/ */
@Deprecated
public void disposeProgressDialog() { public void disposeProgressDialog() {
progressDialog.dispose();
} }
/** /**
@ -1309,4 +1298,5 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
public boolean isDesignerOpened() { public boolean isDesignerOpened() {
return designerOpened; return designerOpened;
} }
} }

21
designer-base/src/main/java/com/fr/start/server/FineEmbedServerMonitor.java

@ -32,7 +32,7 @@ public class FineEmbedServerMonitor {
*/ */
private static final int STEP_HEARTBEAT = 40; private static final int STEP_HEARTBEAT = 40;
private static volatile FineEmbedServerMonitor monitor; private static volatile FineEmbedServerMonitor monitor;
private static ProgressDialog progressBar = DesignerContext.getDesignerFrame().getProgressDialog(); private static ProgressDialog progressDialog = new ProgressDialog(DesignerContext.getDesignerFrame());
//由于默认值的字体不支持韩文,所以要对韩文单独生成字体 //由于默认值的字体不支持韩文,所以要对韩文单独生成字体
private FRFont font = null; private FRFont font = null;
private static final int FONT_RGB = 333334; private static final int FONT_RGB = 333334;
@ -47,7 +47,7 @@ public class FineEmbedServerMonitor {
@Override @Override
public void on(Event event, Null aNull) { public void on(Event event, Null aNull) {
getInstance().reset(); getInstance().reset();
DesignerContext.getDesignerFrame().hideProgressDialog(); progressDialog.dispose();
} }
}); });
} }
@ -64,7 +64,7 @@ public class FineEmbedServerMonitor {
} }
public int getProgress() { public int getProgress() {
if (progress == progressBar.getProgressMaximum()) { if (progress == progressDialog.getProgressMaximum()) {
return progress; return progress;
} else { } else {
progress += STEP; progress += STEP;
@ -73,7 +73,7 @@ public class FineEmbedServerMonitor {
} }
public void setComplete() { public void setComplete() {
this.progress = progressBar.getProgressMaximum(); this.progress = progressDialog.getProgressMaximum();
} }
public void reset() { public void reset() {
@ -81,7 +81,7 @@ public class FineEmbedServerMonitor {
} }
public boolean isComplete() { public boolean isComplete() {
return this.progress >= progressBar.getProgressMaximum(); return this.progress >= progressDialog.getProgressMaximum();
} }
public void monitor() { public void monitor() {
@ -92,11 +92,12 @@ public class FineEmbedServerMonitor {
public void run() { public void run() {
if (isComplete()) { if (isComplete()) {
scheduler.shutdown(); scheduler.shutdown();
DesignerContext.getDesignerFrame().hideProgressDialog(); progressDialog.dispose();
return; return;
} }
if (!DesignerContext.getDesignerFrame().getProgressDialog().isVisible()) { if (!progressDialog.isVisible()) {
DesignerContext.getDesignerFrame().showProgressDialog(); progressDialog = new ProgressDialog(DesignerContext.getDesignerFrame());
progressDialog.setVisible(true);
//如果为韩文则改变字体 //如果为韩文则改变字体
LocaleCenter.buildAction(new LocaleAction() { LocaleCenter.buildAction(new LocaleAction() {
@Override @Override
@ -105,9 +106,9 @@ public class FineEmbedServerMonitor {
} }
}, SupportLocaleImpl.SUPPORT_KOREA); }, SupportLocaleImpl.SUPPORT_KOREA);
String text = Toolkit.i18nText("Fine-Design_Basic_Loading_Embed_Server"); String text = Toolkit.i18nText("Fine-Design_Basic_Loading_Embed_Server");
DesignerContext.getDesignerFrame().getProgressDialog().updateLoadingText(text, font); progressDialog.updateLoadingText(text, font);
} }
DesignerContext.getDesignerFrame().updateProgress(getProgress()); progressDialog.setProgressValue(getProgress());
} }
}, 0, STEP_HEARTBEAT, TimeUnit.MILLISECONDS); }, 0, STEP_HEARTBEAT, TimeUnit.MILLISECONDS);

Loading…
Cancel
Save