Browse Source

Merge pull request #2309 in DESIGN/design from release/10.0 to bugfix/10.0

* commit 'aebaecce97c352f471a0468bb3014992d284a025':
  考虑到progressDialog目前只在FineEmbedServerMonitor中使用,所以将原本维护在DesignerFrame中的progressDialog放到FineEmbedServerMonitor中,而DesignerFrame原本的成员变量和相应初始化删除,一些相关方法先做成空实现,然后标记为废弃,这些方法具体实现和使用都放到FineEmbedServerMonitor中
  REPORT-39338 【回归】内置服务器启动进度条会先展示上次的进度再初始化 1. 更新修改方案:确定了一直维护同一个进度条dialog没有特殊意义之后,选择在每一次关闭服务器或者服务器启动完成后dialog废弃掉,然后在每一次需要打开对话框的时候,新建一个
  添加修改
  REPORT-39338 【回归】内置服务器启动进度条会先展示上次的进度再初始化 1. bug原因:,每次内置服务器启动使用的进度条弹窗都是同一个,只是在可见与不可见状态之间切换,而在启动成功之后,没有清空上次进度,所以会先显示上次进度 2. 修改方案:为进度条的value置0,并刷新UI
  REPORT-39341 【回归】文件没有读写权限报告弹窗是英文 修改解决方案:经过多位大佬提醒,最好不要直接修改传过来的Locale,因此转变思路为如果接收到了比较奇怪的Locale,尽量找到一个在本项目中使用的最接近的Locale返回,如传入参数为zh-Hans-CN时,返回zh_CN,而不是之前的en_US
  更新单元测试
  更新单元测试
  补充单元测试
  REPORT-39341 【回归】【jdk11】文件没有读写权限报告弹窗是英文 1. bug原因:在中文环境下,这边传过来的Locale是zh-Hans-CN,进入isSupport方法中时会发现不匹配,然后Locale被设置成en_US,然后在报错弹窗里面的内容就都是英文了 2. 修改方案:增加判断,将传过来的Locale的script抹去,只保留language和region,跟代码里面保存的Locale保持一致
bugfix/10.0
superman 4 years ago
parent
commit
d2870e6607
  1. 4
      designer-base/src/main/java/com/fr/design/DesignerEnvManager.java
  2. 24
      designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java
  3. 21
      designer-base/src/main/java/com/fr/start/server/FineEmbedServerMonitor.java

4
designer-base/src/main/java/com/fr/design/DesignerEnvManager.java

@ -1424,7 +1424,9 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter {
* @return * @return
*/ */
private Locale checkLocale(Locale locale) { private Locale checkLocale(Locale locale) {
return SupportLocale.getInstance().isSupport(locale) ? locale : Locale.US; // Yvan: REPORT-39341,有一些情况下,获取到的是zh-Hans-CN这种,需要找到项目中最匹配的Locale
return SupportLocale.getInstance().isSupport(locale) ?
locale : SupportLocale.getInstance().getSuitableLocale(locale);
} }
private void readReportLengthUnit(XMLableReader reader) { private void readReportLengthUnit(XMLableReader reader) {

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