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; import java.util.Map.Entry;
/** /**
* @author anonymous
* @version 11.0
* The manager of Designer GUI. * The manager of Designer GUI.
*/ */
public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReadable { 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.log.FineLoggerFactory;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.start.common.DesignerStartupPool; 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.FutureCallback;
import com.fr.third.guava.util.concurrent.Futures; import com.fr.third.guava.util.concurrent.Futures;
import com.fr.third.guava.util.concurrent.ListenableFutureTask; import com.fr.third.guava.util.concurrent.ListenableFutureTask;
@ -96,7 +95,7 @@ public class ActionFactory {
ListenableFutureTask<QuickEditor> future = ListenableFutureTask.create(callable); ListenableFutureTask<QuickEditor> future = ListenableFutureTask.create(callable);
Futures.addCallback(future, new FutureCallback<QuickEditor>() { Futures.addCallback(future, new FutureCallback<QuickEditor>() {
@Override @Override
public void onSuccess(@Nullable QuickEditor quickEditor) { public void onSuccess(QuickEditor quickEditor) {
cellEditorClass.remove(keyClazz); cellEditorClass.remove(keyClazz);
cellEditor.put(keyClazz, quickEditor); 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; import java.util.concurrent.TimeUnit;
/** /**
* @author Harrison
* @version 11.0
* created by Harrison on 2022/11/08 * created by Harrison on 2022/11/08
**/ **/
public class StartupLoadingPanel { 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) { private void initCenter(StartupPageModel pageModel) {
initHeaderPanel();
initWorkspacePanel(pageModel);
initRecentOpenPanel(pageModel);
initContentPanel();
}
private void initHeaderPanel() {
this.body = FRGUIPaneFactory.createBorderLayout_S_Pane(); this.body = FRGUIPaneFactory.createBorderLayout_S_Pane();
this.body.setBackground(new Color(0, 0, 0, 0)); this.body.setBackground(new Color(0, 0, 0, 0));
JPanel headerPanel = createHeader(); JPanel headerPanel = createHeader();
this.body.add(headerPanel, BorderLayout.NORTH); 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 // Workspace-description
this.workspacePanel = generateWorkspacePanel(pageModel); this.workspacePanel = generateWorkspacePanel(pageModel);
@ -129,21 +162,6 @@ public class StartupPageWindow extends JFrame {
repaint(); 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 @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(); private static final PreLoadService INSTANCE = new PreLoadService();
} }
/**
* 添加 UI 的异步任务
*
* @param future 任务
*/
public void addUIFuture(CompletableFuture<?> future) { public void addUIFuture(CompletableFuture<?> future) {
uIFutures.add(future); uIFutures.add(future);
} }
@ -31,14 +36,25 @@ public class PreLoadService {
commonFutures.add(future); commonFutures.add(future);
} }
/**
* 添加通用的异步任务
*
* @param runnable 任务
*/
public void addRunnable(Runnable runnable) { public void addRunnable(Runnable runnable) {
commonFutures.add(CompletableFuture.runAsync(runnable, DesignerStartupPool.common())); commonFutures.add(CompletableFuture.runAsync(runnable, DesignerStartupPool.common()));
} }
/**
* 等待通用的异步任务执行
*/
public void waitForCommon() { public void waitForCommon() {
CompletableFuture.allOf(commonFutures.toArray(new CompletableFuture[0])).join(); CompletableFuture.allOf(commonFutures.toArray(new CompletableFuture[0])).join();
} }
/**
* 等待UI异步任务执行
*/
public void waitForUI() { public void waitForUI() {
CompletableFuture.allOf(uIFutures.toArray(new CompletableFuture[0])).join(); CompletableFuture.allOf(uIFutures.toArray(new CompletableFuture[0])).join();
} }

Loading…
Cancel
Save