forked from fanruan/design
kuangshuai
3 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