Browse Source

fix 封装调整

feature/big-screen
hades 5 years ago
parent
commit
ac2fc4dda2
  1. 58
      designer-realize/src/main/java/com/fr/start/LifecycleFatalErrorHandler.java

58
designer-realize/src/main/java/com/fr/start/LifecycleFatalErrorHandler.java

@ -16,6 +16,8 @@ import com.fr.stable.lifecycle.FineLifecycleFatalError;
import com.fr.stable.project.ProjectConstants;
import javax.swing.*;
import java.util.HashMap;
import java.util.Map;
/**
* @author hades
@ -25,15 +27,39 @@ import javax.swing.*;
public class LifecycleFatalErrorHandler {
private static final LifecycleFatalErrorHandler INSTANCE = new LifecycleFatalErrorHandler();
private Map<ErrorType, Handler> map = new HashMap<>();
private LifecycleFatalErrorHandler() {
for (ErrorType type : ErrorType.values()) {
if (ErrorType.FINEDB.equals(type)) {
map.put(type, FineDBHandler.SELF);
} else {
map.put(type, DefaultHandler.SELF);
}
}
}
public static LifecycleFatalErrorHandler getInstance() {
return INSTANCE;
}
public void handle(FineLifecycleFatalError fatal) {
SplashContext.getInstance().hide();
if (ErrorType.FINEDB.equals(fatal.getErrorType())) {
map.get(fatal.getErrorType()).handle(fatal);
}
interface Handler {
void handle(FineLifecycleFatalError error);
}
/**
* finedb处理
*/
enum FineDBHandler implements Handler {
SELF {
@Override
public void handle(FineLifecycleFatalError fatal) {
StartErrorMessageCollector.getInstance().record(DesignerErrorMessage.FINEDB_PROBLEM.getId(),
DesignerErrorMessage.FINEDB_PROBLEM.getMessage(),
fatal.getMessage());
@ -65,6 +91,25 @@ public class LifecycleFatalErrorHandler {
DesignerExiter.getInstance().execute();
}
}
private void afterBackupFailed() {
FineJOptionPane.showMessageDialog(null,
Toolkit.i18nText("Fine-Design_Error_Finedb_Backup_Reset_Result",
ResourceIOUtils.getRealPath(StableUtils.pathJoin(ProjectConstants.EMBED_DB_DIRECTORY, ProjectConstants.FINE_DB_NAME))),
Toolkit.i18nText("Fine-Design_Basic_Error"),
JOptionPane.ERROR_MESSAGE);
DesignerExiter.getInstance().execute();
}
}
}
/**
* 默认处理
*/
enum DefaultHandler implements Handler {
SELF {
@Override
public void handle(FineLifecycleFatalError fatal) {
FineLoggerFactory.getLogger().error(fatal.getMessage(), fatal);
StartErrorMessageCollector.getInstance().record(DesignerErrorMessage.UNEXCEPTED_START_FAILED.getId(),
DesignerErrorMessage.UNEXCEPTED_START_FAILED.getMessage(),
@ -86,14 +131,7 @@ public class LifecycleFatalErrorHandler {
};
dialog.setVisible(true);
}
private void afterBackupFailed() {
FineJOptionPane.showMessageDialog(null,
Toolkit.i18nText("Fine-Design_Error_Finedb_Backup_Reset_Result",
ResourceIOUtils.getRealPath(StableUtils.pathJoin(ProjectConstants.EMBED_DB_DIRECTORY, ProjectConstants.FINE_DB_NAME))),
Toolkit.i18nText("Fine-Design_Basic_Error"),
JOptionPane.ERROR_MESSAGE);
DesignerExiter.getInstance().execute();
}
}

Loading…
Cancel
Save