Browse Source

Merge pull request #106 in BA/design from ~VITO/design:dev to dev

* commit 'c573179143ccb976891ccc146515bcf492df359a':
  catch更改
  1、删除插件返回一个成功消息,供界面显示 2、更新过期插件弹出两个对话框的问题
master
superman 9 years ago
parent
commit
de804eb17c
  1. 1
      designer_base/src/com/fr/design/extra/PluginWebBridge.java
  2. 6
      designer_base/src/com/fr/design/extra/exe/UninstallExecutor.java
  3. 111
      designer_base/src/com/fr/design/extra/exe/UpdateOnlineExecutor.java

1
designer_base/src/com/fr/design/extra/PluginWebBridge.java

@ -153,6 +153,7 @@ public class PluginWebBridge {
* @param des 过滤文件描述 * @param des 过滤文件描述
* @param filter 文件的后缀 * @param filter 文件的后缀
* @return 选择的文件的路径 * @return 选择的文件的路径
* 这里换用JFileChooser会卡死,不知道为什么
*/ */
public String showFileChooserWithFilter(String des, String filter) { public String showFileChooserWithFilter(String des, String filter) {
FileChooser fileChooser = new FileChooser(); FileChooser fileChooser = new FileChooser();

6
designer_base/src/com/fr/design/extra/exe/UninstallExecutor.java

@ -16,6 +16,7 @@ import javax.swing.*;
public class UninstallExecutor implements Executor { public class UninstallExecutor implements Executor {
private String[] pluginIDs; private String[] pluginIDs;
private String result = "undo";
public UninstallExecutor(String[] pluginIDs) { public UninstallExecutor(String[] pluginIDs) {
this.pluginIDs = pluginIDs; this.pluginIDs = pluginIDs;
@ -23,7 +24,7 @@ public class UninstallExecutor implements Executor {
@Override @Override
public String getTaskFinishMessage() { public String getTaskFinishMessage() {
return "插件已卸载完毕,重启后生效"; return result;
} }
@Override @Override
@ -32,7 +33,7 @@ public class UninstallExecutor implements Executor {
new Command() { new Command() {
@Override @Override
public String getExecuteMessage() { public String getExecuteMessage() {
return "删除成功"; return null;
} }
@Override @Override
@ -62,6 +63,7 @@ public class UninstallExecutor implements Executor {
JOptionPane.showMessageDialog(null, e.getMessage(), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(null, e.getMessage(), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE);
} }
} }
result = "done";
if (rv == JOptionPane.OK_OPTION) { if (rv == JOptionPane.OK_OPTION) {
RestartHelper.restart(); RestartHelper.restart();
} }

111
designer_base/src/com/fr/design/extra/exe/UpdateOnlineExecutor.java

@ -10,6 +10,7 @@ import com.fr.design.extra.Process;
import com.fr.general.Inter; import com.fr.general.Inter;
import com.fr.plugin.Plugin; import com.fr.plugin.Plugin;
import com.fr.plugin.PluginLoader; import com.fr.plugin.PluginLoader;
import com.fr.plugin.PluginVerifyException;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import javax.swing.*; import javax.swing.*;
@ -43,44 +44,50 @@ public class UpdateOnlineExecutor implements Executor {
@Override @Override
public void run(Process<String> process) { public void run(Process<String> process) {
if(StringUtils.isBlank(DesignerEnvManager.getEnvManager().getBBSName())){ if (StringUtils.isBlank(DesignerEnvManager.getEnvManager().getBBSName())) {
LoginCheckContext.fireLoginCheckListener(); LoginCheckContext.fireLoginCheckListener();
} }
if(StringUtils.isNotBlank(DesignerEnvManager.getEnvManager().getBBSName())){ if (StringUtils.isNotBlank(DesignerEnvManager.getEnvManager().getBBSName())) {
for (int i = 0; i < pluginIDs.length; i++) { try {
Plugin plugin = PluginLoader.getLoader().getPluginById(pluginIDs[i]); for (int i = 0; i < pluginIDs.length; i++) {
String id = null; try {
if (plugin != null) { Plugin plugin = PluginLoader.getLoader().getPluginById(pluginIDs[i]);
id = plugin.getId(); String id = null;
} if (plugin != null) {
String username = DesignerEnvManager.getEnvManager().getBBSName(); id = plugin.getId();
String password = DesignerEnvManager.getEnvManager().getBBSPassword();
try {
PluginHelper.downloadPluginFile(id, username, password, new Process<Double>() {
@Override
public void process(Double integer) {
} }
}); String username = DesignerEnvManager.getEnvManager().getBBSName();
updateFileFromDisk(PluginHelper.getDownloadTempFile()); String password = DesignerEnvManager.getEnvManager().getBBSPassword();
process.process(PERCENT_100 / pluginIDs.length * (i + 1) + "%"); PluginHelper.downloadPluginFile(id, username, password, new Process<Double>() {
} catch (Exception e) { @Override
FRContext.getLogger().error(e.getMessage(), e); public void process(Double integer) {
}
});
updateFileFromDisk(PluginHelper.getDownloadTempFile());
process.process(PERCENT_100 / pluginIDs.length * (i + 1) + "%");
} catch (PluginVerifyException e) {
throw e;
} catch (Exception e) {
FRContext.getLogger().error(e.getMessage(), e);
}
} }
} int rv = JOptionPane.showOptionDialog(
int rv = JOptionPane.showOptionDialog( null,
null, Inter.getLocText("FR-Designer-Plugin_Update_Successful"),
Inter.getLocText("FR-Designer-Plugin_Update_Successful"), Inter.getLocText("FR-Designer-Plugin_Warning"),
Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.YES_NO_OPTION,
JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE,
JOptionPane.INFORMATION_MESSAGE, null,
null, new String[]{Inter.getLocText("FR-Designer-Basic_Restart_Designer"),
new String[]{Inter.getLocText("FR-Designer-Basic_Restart_Designer"), Inter.getLocText("FR-Designer-Basic_Restart_Designer_Later")
Inter.getLocText("FR-Designer-Basic_Restart_Designer_Later") },
}, null
null );
); if (rv == JOptionPane.OK_OPTION) {
if (rv == JOptionPane.OK_OPTION) { RestartHelper.restart();
RestartHelper.restart(); }
} catch (PluginVerifyException e) {
JOptionPane.showMessageDialog(null, e.getMessage(), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE);
} }
} }
} }
@ -88,26 +95,22 @@ public class UpdateOnlineExecutor implements Executor {
}; };
} }
private void updateFileFromDisk(File fileOnDisk) { private void updateFileFromDisk(File fileOnDisk) throws Exception {
try { Plugin plugin = PluginHelper.readPlugin(fileOnDisk);
Plugin plugin = PluginHelper.readPlugin(fileOnDisk); if (plugin == null) {
if (plugin == null) { JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Plugin_Illegal_Plugin_Zip"), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE);
JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Plugin_Illegal_Plugin_Zip"), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE); return;
return; }
} Plugin oldPlugin = PluginLoader.getLoader().getPluginById(plugin.getId());
Plugin oldPlugin = PluginLoader.getLoader().getPluginById(plugin.getId()); if (oldPlugin != null) {
if (oldPlugin != null) { String[] files = PluginHelper.uninstallPlugin(FRContext.getCurrentEnv(), oldPlugin);
String[] files = PluginHelper.uninstallPlugin(FRContext.getCurrentEnv(), oldPlugin); PluginHelper.installPluginFromUnzippedTempDir(FRContext.getCurrentEnv(), plugin, new After() {
PluginHelper.installPluginFromUnzippedTempDir(FRContext.getCurrentEnv(), plugin, new After() { @Override
@Override public void done() {
public void done() { }
} });
}); } else {
} else { JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Plugin_Cannot_Update_Not_Install"), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE);
JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Plugin_Cannot_Update_Not_Install"), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE);
}
} catch (Exception e1) {
JOptionPane.showMessageDialog(null, e1.getMessage(), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE);
} }
} }
} }

Loading…
Cancel
Save