Browse Source

REPORT-83197【设计器】启动页性能优化

根据工具提示,修复代码质量
feature/x
Harrison 2 years ago
parent
commit
227ef1d472
  1. 2
      designer-base/src/main/java/com/fr/design/DesignerEnvManager.java
  2. 3
      designer-base/src/main/java/com/fr/design/actions/core/ActionFactory.java
  3. 2
      designer-base/src/main/java/com/fr/startup/ui/StartupLoadingPanel.java
  4. 50
      designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java
  5. 16
      designer-realize/src/main/java/com/fr/start/preload/PreLoadService.java

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

@ -97,6 +97,8 @@ import java.util.Map;
import java.util.Map.Entry;
/**
* @author anonymous
* @version 11.0
* The manager of Designer GUI.
*/
public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReadable {

3
designer-base/src/main/java/com/fr/design/actions/core/ActionFactory.java

@ -9,7 +9,6 @@ import com.fr.design.selection.QuickEditor;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
import com.fr.start.common.DesignerStartupPool;
import com.fr.third.checkerframework.checker.nullness.qual.Nullable;
import com.fr.third.guava.util.concurrent.FutureCallback;
import com.fr.third.guava.util.concurrent.Futures;
import com.fr.third.guava.util.concurrent.ListenableFutureTask;
@ -96,7 +95,7 @@ public class ActionFactory {
ListenableFutureTask<QuickEditor> future = ListenableFutureTask.create(callable);
Futures.addCallback(future, new FutureCallback<QuickEditor>() {
@Override
public void onSuccess(@Nullable QuickEditor quickEditor) {
public void onSuccess(QuickEditor quickEditor) {
cellEditorClass.remove(keyClazz);
cellEditor.put(keyClazz, quickEditor);
}

2
designer-base/src/main/java/com/fr/startup/ui/StartupLoadingPanel.java

@ -15,6 +15,8 @@ import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
/**
* @author Harrison
* @version 11.0
* created by Harrison on 2022/11/08
**/
public class StartupLoadingPanel {

50
designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java

@ -107,11 +107,44 @@ public class StartupPageWindow extends JFrame {
}
private void initCenter(StartupPageModel pageModel) {
initHeaderPanel();
initWorkspacePanel(pageModel);
initRecentOpenPanel(pageModel);
initContentPanel();
}
private void initHeaderPanel() {
this.body = FRGUIPaneFactory.createBorderLayout_S_Pane();
this.body.setBackground(new Color(0, 0, 0, 0));
JPanel headerPanel = createHeader();
this.body.add(headerPanel, BorderLayout.NORTH);
}
private void initRecentOpenPanel(StartupPageModel pageModel) {
this.recentOpenPanel = generateRecentOpenPanel(pageModel);
this.body.add(recentOpenPanel, BorderLayout.SOUTH);
}
private void initContentPanel() {
this.contentPane = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(BACKGROUND_IMAGE, 0, 0, SCREEN_SIZE.width, SCREEN_SIZE.height, this);
}
};
this.contentPane.setLayout(getCenterLayout(body));
this.contentPane.add(this.body, BorderLayout.CENTER);
this.contentPane.setPreferredSize(this.body.getPreferredSize());
add(this.contentPane, BorderLayout.CENTER);
}
private void initWorkspacePanel(StartupPageModel pageModel) {
// Workspace-description
this.workspacePanel = generateWorkspacePanel(pageModel);
@ -129,21 +162,6 @@ public class StartupPageWindow extends JFrame {
repaint();
}
});
this.recentOpenPanel = generateRecentOpenPanel(pageModel);
this.body.add(recentOpenPanel, BorderLayout.SOUTH);
this.contentPane = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(BACKGROUND_IMAGE, 0, 0, SCREEN_SIZE.width, SCREEN_SIZE.height, this);
}
};
this.contentPane.setLayout(getCenterLayout(body));
this.contentPane.add(this.body, BorderLayout.CENTER);
this.contentPane.setPreferredSize(this.body.getPreferredSize());
add(this.contentPane, BorderLayout.CENTER);
}
@NotNull

16
designer-realize/src/main/java/com/fr/start/preload/PreLoadService.java

@ -23,6 +23,11 @@ public class PreLoadService {
private static final PreLoadService INSTANCE = new PreLoadService();
}
/**
* 添加 UI 的异步任务
*
* @param future 任务
*/
public void addUIFuture(CompletableFuture<?> future) {
uIFutures.add(future);
}
@ -31,14 +36,25 @@ public class PreLoadService {
commonFutures.add(future);
}
/**
* 添加通用的异步任务
*
* @param runnable 任务
*/
public void addRunnable(Runnable runnable) {
commonFutures.add(CompletableFuture.runAsync(runnable, DesignerStartupPool.common()));
}
/**
* 等待通用的异步任务执行
*/
public void waitForCommon() {
CompletableFuture.allOf(commonFutures.toArray(new CompletableFuture[0])).join();
}
/**
* 等待UI异步任务执行
*/
public void waitForUI() {
CompletableFuture.allOf(uIFutures.toArray(new CompletableFuture[0])).join();
}

Loading…
Cancel
Save