vito
4 years ago
3 changed files with 85 additions and 64 deletions
@ -0,0 +1,83 @@ |
|||||||
|
package com.fr.design.mainframe.app; |
||||||
|
|
||||||
|
import com.fr.design.dialog.DialogActionAdapter; |
||||||
|
import com.fr.design.dialog.UIExpandDialog; |
||||||
|
import com.fr.design.extra.exe.callback.InstallOnlineCallback; |
||||||
|
import com.fr.design.extra.exe.callback.ModifyStatusCallback; |
||||||
|
import com.fr.design.i18n.Toolkit; |
||||||
|
import com.fr.design.mainframe.DesignerContext; |
||||||
|
import com.fr.design.ui.util.UIUtil; |
||||||
|
import com.fr.io.TemplateIOErrorUtils; |
||||||
|
import com.fr.plugin.context.PluginMarker; |
||||||
|
import com.fr.plugin.context.PluginMarkerAdapter; |
||||||
|
import com.fr.plugin.manage.PluginManager; |
||||||
|
import com.fr.plugin.manage.control.PluginControllerHelper; |
||||||
|
import com.fr.plugin.manage.control.PluginTask; |
||||||
|
import com.fr.third.guava.collect.Multimap; |
||||||
|
import com.fr.workspace.WorkContext; |
||||||
|
|
||||||
|
import java.util.Collection; |
||||||
|
|
||||||
|
/** |
||||||
|
* 设计器app共用工具类 |
||||||
|
* |
||||||
|
* @author vito |
||||||
|
* @version 10.0 |
||||||
|
* Created by vito on 2021/5/27 |
||||||
|
*/ |
||||||
|
public class DesignerAppUtils { |
||||||
|
|
||||||
|
/** |
||||||
|
* 处理模板读取时的异常 |
||||||
|
* |
||||||
|
* @param path 模板路径 |
||||||
|
*/ |
||||||
|
public static void dealWithTemplateIOError(String path) { |
||||||
|
// 试图获取多行读取错误提示并缓存待处理列表
|
||||||
|
String detail = TemplateIOErrorUtils.dealWithErrorDetailMultiLineAndCache(path); |
||||||
|
if (detail.length() > 0) { |
||||||
|
UIUtil.invokeLaterIfNeeded(() -> { |
||||||
|
if (WorkContext.getCurrent().isLocal()) { |
||||||
|
UIExpandDialog.Builder() |
||||||
|
.owner(DesignerContext.getDesignerFrame()) |
||||||
|
.title(Toolkit.i18nText("Fine-Design_Basic_Tool_Tips")) |
||||||
|
.message(Toolkit.i18nText("Fine-Design_Template_Plugin_Error_Message_Local")) |
||||||
|
.detail(detail) |
||||||
|
.okText(Toolkit.i18nText("Fine-Design_Template_Plugin_Error_OK_Btn")) |
||||||
|
.cancelText(Toolkit.i18nText("Fine-Design_Template_Plugin_Error_Cancel_Btn")) |
||||||
|
.dialogActionListener(new DialogActionAdapter() { |
||||||
|
public void doOk() { |
||||||
|
installAndEnablePlugin(path); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void doCancel() { |
||||||
|
TemplateIOErrorUtils.invalidatePlugins(path); |
||||||
|
} |
||||||
|
}).build().setVisible(true); |
||||||
|
} else { |
||||||
|
UIExpandDialog.Builder().owner(DesignerContext.getDesignerFrame()) |
||||||
|
.title(Toolkit.i18nText("Fine-Design_Basic_Tool_Tips")) |
||||||
|
.message(Toolkit.i18nText("Fine-Design_Template_Plugin_Error_Message_Remote")) |
||||||
|
.detail(detail) |
||||||
|
.build() |
||||||
|
.setVisible(true); |
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
private static void installAndEnablePlugin(String key) { |
||||||
|
Multimap<String, PluginMarkerAdapter> stringPluginMarkerAdapterMultimap = TemplateIOErrorUtils.popPluginInfoMap(key); |
||||||
|
Collection<PluginMarkerAdapter> disablePlugins = stringPluginMarkerAdapterMultimap.get(TemplateIOErrorUtils.DISABLE_PLUGIN); |
||||||
|
for (PluginMarkerAdapter disablePlugin : disablePlugins) { |
||||||
|
PluginManager.getController().enable(disablePlugin, new ModifyStatusCallback(false)); |
||||||
|
} |
||||||
|
|
||||||
|
Collection<PluginMarkerAdapter> uninstallPlugins = stringPluginMarkerAdapterMultimap.get(TemplateIOErrorUtils.NOT_INSTALLED_PLUGIN); |
||||||
|
for (PluginMarker uninstallPlugin : uninstallPlugins) { |
||||||
|
PluginTask pluginTask = PluginTask.installTask(uninstallPlugin); |
||||||
|
PluginControllerHelper.installOnline(uninstallPlugin, new InstallOnlineCallback(pluginTask)); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue