fr_shine
9 years ago
36 changed files with 1288 additions and 528 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,25 @@ |
|||||||
|
package com.fr.design.extra; |
||||||
|
|
||||||
|
import com.fr.design.dialog.BasicPane; |
||||||
|
import com.fr.design.dialog.UIDialog; |
||||||
|
import com.fr.design.utils.gui.GUICoreUtils; |
||||||
|
|
||||||
|
import java.awt.*; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by vito on 16/4/18. |
||||||
|
*/ |
||||||
|
public class PluginShopDialog extends UIDialog { |
||||||
|
private static final Dimension DEFAULT_SHOP = new Dimension(900, 710); |
||||||
|
|
||||||
|
public PluginShopDialog(Frame frame, BasicPane pane) { |
||||||
|
super(frame, pane, false); |
||||||
|
setSize(DEFAULT_SHOP); |
||||||
|
GUICoreUtils.centerWindow(this); |
||||||
|
setResizable(false); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void checkValid() throws Exception { |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,61 @@ |
|||||||
|
package com.fr.design.extra.exe; |
||||||
|
|
||||||
|
import com.fr.design.extra.PluginWebBridge; |
||||||
|
import com.fr.design.extra.Process; |
||||||
|
import com.fr.general.FRLogger; |
||||||
|
import com.fr.general.http.HttpClient; |
||||||
|
import com.fr.stable.StringUtils; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by vito on 16/4/18. |
||||||
|
* 获取插件分类信息 |
||||||
|
*/ |
||||||
|
public class GetPluginFromStoreExecutor implements Executor { |
||||||
|
private String result = "[]"; |
||||||
|
private String category; |
||||||
|
private String seller; |
||||||
|
private String fee; |
||||||
|
|
||||||
|
public GetPluginFromStoreExecutor(String category, String seller, String fee) { |
||||||
|
this.category = category; |
||||||
|
this.seller = seller; |
||||||
|
this.fee = fee; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getTaskFinishMessage() { |
||||||
|
return result; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Command[] getCommands() { |
||||||
|
return new Command[]{ |
||||||
|
new Command() { |
||||||
|
@Override |
||||||
|
public String getExecuteMessage() { |
||||||
|
return StringUtils.EMPTY; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void run(Process<String> process) { |
||||||
|
StringBuilder url = new StringBuilder(PluginWebBridge.PLUGIN_SHOP); |
||||||
|
if (StringUtils.isNotBlank(category)) { |
||||||
|
url.append("&cid=").append(category.split("-")[1]); |
||||||
|
} |
||||||
|
if (StringUtils.isNotBlank(seller)) { |
||||||
|
url.append("&seller=").append(seller.split("-")[1]); |
||||||
|
} |
||||||
|
if (StringUtils.isNotBlank(fee)) { |
||||||
|
url.append("&fee=").append(fee.split("-")[1]); |
||||||
|
} |
||||||
|
try { |
||||||
|
HttpClient httpClient = new HttpClient(url.toString()); |
||||||
|
result = httpClient.getResponseText(); |
||||||
|
} catch (Exception e) { |
||||||
|
FRLogger.getLogger().error(e.getMessage()); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,50 @@ |
|||||||
|
package com.fr.design.extra.exe; |
||||||
|
|
||||||
|
import com.fr.design.extra.PluginsReaderFromStore; |
||||||
|
import com.fr.design.extra.Process; |
||||||
|
import com.fr.general.FRLogger; |
||||||
|
import com.fr.plugin.Plugin; |
||||||
|
import com.fr.stable.StringUtils; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by vito on 16/4/19. |
||||||
|
*/ |
||||||
|
public class ReadUpdateOnlineExecutor implements Executor { |
||||||
|
private Plugin[] plugins; |
||||||
|
private String result; |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getTaskFinishMessage() { |
||||||
|
return result; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Command[] getCommands() { |
||||||
|
return new Command[]{ |
||||||
|
new Command() { |
||||||
|
@Override |
||||||
|
public String getExecuteMessage() { |
||||||
|
return StringUtils.EMPTY; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void run(Process<String> process) { |
||||||
|
try { |
||||||
|
plugins = PluginsReaderFromStore.readPluginsForUpdate(); |
||||||
|
StringBuilder sb = new StringBuilder(); |
||||||
|
if (plugins != null) { |
||||||
|
sb.append("["); |
||||||
|
for (Plugin plugin : plugins) { |
||||||
|
sb.append("{pluginid:'").append(plugin.getId()).append("'}"); |
||||||
|
} |
||||||
|
sb.append("]"); |
||||||
|
} |
||||||
|
result = sb.toString(); |
||||||
|
} catch (Exception e) { |
||||||
|
FRLogger.getLogger().error(e.getMessage()); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,47 @@ |
|||||||
|
package com.fr.design.extra.exe; |
||||||
|
|
||||||
|
import com.fr.design.extra.PluginWebBridge; |
||||||
|
import com.fr.design.extra.Process; |
||||||
|
import com.fr.general.FRLogger; |
||||||
|
import com.fr.general.http.HttpClient; |
||||||
|
import com.fr.stable.StringUtils; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by vito on 16/4/18. |
||||||
|
*/ |
||||||
|
public class SearchOnlineExecutor implements Executor { |
||||||
|
private String result; |
||||||
|
private String keyword; |
||||||
|
|
||||||
|
public SearchOnlineExecutor(String keyword) { |
||||||
|
this.keyword = keyword; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getTaskFinishMessage() { |
||||||
|
return result; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Command[] getCommands() { |
||||||
|
return new Command[]{ |
||||||
|
new Command() { |
||||||
|
@Override |
||||||
|
public String getExecuteMessage() { |
||||||
|
return StringUtils.EMPTY; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void run(Process<String> process) { |
||||||
|
try { |
||||||
|
HttpClient httpClient = new HttpClient(PluginWebBridge.PLUGIN_SHOP + "&keyword=" + keyword); |
||||||
|
result = httpClient.getResponseText(); |
||||||
|
|
||||||
|
} catch (Exception e) { |
||||||
|
FRLogger.getLogger().error(e.getMessage()); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -1,23 +1,106 @@ |
|||||||
package com.fr.design.extra.exe; |
package com.fr.design.extra.exe; |
||||||
|
|
||||||
|
import com.fr.base.FRContext; |
||||||
|
import com.fr.design.DesignerEnvManager; |
||||||
|
import com.fr.design.RestartHelper; |
||||||
|
import com.fr.design.extra.After; |
||||||
|
import com.fr.design.extra.PluginHelper; |
||||||
|
import com.fr.design.extra.Process; |
||||||
|
import com.fr.general.Inter; |
||||||
|
import com.fr.plugin.Plugin; |
||||||
|
import com.fr.plugin.PluginLoader; |
||||||
|
|
||||||
|
import javax.swing.*; |
||||||
|
import java.io.File; |
||||||
|
|
||||||
/** |
/** |
||||||
* Created by richie on 16/3/19. |
* Created by richie on 16/3/19. |
||||||
*/ |
*/ |
||||||
public class UpdateOnlineExecutor implements Executor { |
public class UpdateOnlineExecutor implements Executor { |
||||||
|
|
||||||
private String pluginID; |
private String[] pluginIDs; |
||||||
|
private static final int PERCENT_100 = 100; |
||||||
public UpdateOnlineExecutor(String pluginID) { |
|
||||||
this.pluginID = pluginID; |
|
||||||
|
|
||||||
|
public UpdateOnlineExecutor(String[] pluginIDs) { |
||||||
|
this.pluginIDs = pluginIDs; |
||||||
} |
} |
||||||
|
|
||||||
@Override |
@Override |
||||||
public String getTaskFinishMessage() { |
public String getTaskFinishMessage() { |
||||||
return "插件已更新完毕:" + pluginID; |
return "task succeed"; |
||||||
} |
} |
||||||
|
|
||||||
@Override |
@Override |
||||||
public Command[] getCommands() { |
public Command[] getCommands() { |
||||||
return new Command[0]; |
return new Command[]{ |
||||||
|
new Command() { |
||||||
|
@Override |
||||||
|
public String getExecuteMessage() { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void run(Process<String> process) { |
||||||
|
for (int i = 0; i < pluginIDs.length; i++) { |
||||||
|
Plugin plugin = PluginLoader.getLoader().getPluginById(pluginIDs[i]); |
||||||
|
String id = null; |
||||||
|
if (plugin != null) { |
||||||
|
id = plugin.getId(); |
||||||
|
} |
||||||
|
String username = DesignerEnvManager.getEnvManager().getBBSName(); |
||||||
|
String password = DesignerEnvManager.getEnvManager().getBBSPassword(); |
||||||
|
try { |
||||||
|
PluginHelper.downloadPluginFile(id, username, password, new Process<Double>() { |
||||||
|
@Override |
||||||
|
public void process(Double integer) { |
||||||
|
} |
||||||
|
}); |
||||||
|
updateFileFromDisk(PluginHelper.getDownloadTempFile()); |
||||||
|
process.process(PERCENT_100 / pluginIDs.length * (i + 1) + "%"); |
||||||
|
} catch (Exception e) { |
||||||
|
FRContext.getLogger().error(e.getMessage(), e); |
||||||
|
} |
||||||
|
} |
||||||
|
int rv = JOptionPane.showOptionDialog( |
||||||
|
null, |
||||||
|
Inter.getLocText("FR-Designer-Plugin_Update_Successful"), |
||||||
|
Inter.getLocText("FR-Designer-Plugin_Warning"), |
||||||
|
JOptionPane.YES_NO_OPTION, |
||||||
|
JOptionPane.INFORMATION_MESSAGE, |
||||||
|
null, |
||||||
|
new String[]{Inter.getLocText("FR-Designer-Basic_Restart_Designer"), |
||||||
|
Inter.getLocText("FR-Designer-Basic_Restart_Designer_Later") |
||||||
|
}, |
||||||
|
null |
||||||
|
); |
||||||
|
if (rv == JOptionPane.OK_OPTION) { |
||||||
|
RestartHelper.restart(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}; |
||||||
|
} |
||||||
|
|
||||||
|
private void updateFileFromDisk(File fileOnDisk) { |
||||||
|
try { |
||||||
|
Plugin plugin = PluginHelper.readPlugin(fileOnDisk); |
||||||
|
if (plugin == null) { |
||||||
|
JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Plugin_Illegal_Plugin_Zip"), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE); |
||||||
|
return; |
||||||
|
} |
||||||
|
Plugin oldPlugin = PluginLoader.getLoader().getPluginById(plugin.getId()); |
||||||
|
if (oldPlugin != null) { |
||||||
|
String[] files = PluginHelper.uninstallPlugin(FRContext.getCurrentEnv(), oldPlugin); |
||||||
|
PluginHelper.installPluginFromUnzippedTempDir(FRContext.getCurrentEnv(), plugin, new After() { |
||||||
|
@Override |
||||||
|
public void done() { |
||||||
|
} |
||||||
|
}); |
||||||
|
} else { |
||||||
|
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); |
||||||
|
} |
||||||
} |
} |
||||||
} |
} |
||||||
|
@ -0,0 +1,22 @@ |
|||||||
|
package com.fr.design.fun; |
||||||
|
|
||||||
|
import com.fr.design.data.datapane.TableDataTreePane; |
||||||
|
import com.fr.stable.fun.Level; |
||||||
|
|
||||||
|
/** |
||||||
|
* 自定义的模板(服务器)数据集的树样式接口 el:分组样式 |
||||||
|
* Coder: zack |
||||||
|
* Date: 2016/4/18 |
||||||
|
* Time: 9:04 |
||||||
|
*/ |
||||||
|
public interface TableDataTreePaneProcessor extends Level { |
||||||
|
String XML_TAG = "TableDataTreePaneProcessor"; |
||||||
|
|
||||||
|
int CURRENT_LEVEL = 1; |
||||||
|
/** |
||||||
|
* 创建数据集面板 |
||||||
|
* @return 数据集面板 |
||||||
|
*/ |
||||||
|
TableDataTreePane createTableDataTreePane(); |
||||||
|
|
||||||
|
} |
@ -0,0 +1,15 @@ |
|||||||
|
package com.fr.design.fun.impl; |
||||||
|
|
||||||
|
import com.fr.design.fun.TableDataTreePaneProcessor; |
||||||
|
|
||||||
|
/** |
||||||
|
* Coder: zack |
||||||
|
* Date: 2016/4/18 |
||||||
|
* Time: 10:30 |
||||||
|
*/ |
||||||
|
public abstract class AbstractTDTreePaneProcessor implements TableDataTreePaneProcessor { |
||||||
|
@Override |
||||||
|
public int currentAPILevel() { |
||||||
|
return CURRENT_LEVEL; |
||||||
|
} |
||||||
|
} |
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue