|
|
@ -20,12 +20,14 @@ import java.awt.event.ActionListener; |
|
|
|
import java.awt.event.WindowAdapter; |
|
|
|
import java.awt.event.WindowAdapter; |
|
|
|
import java.awt.event.WindowEvent; |
|
|
|
import java.awt.event.WindowEvent; |
|
|
|
import java.awt.image.BufferedImage; |
|
|
|
import java.awt.image.BufferedImage; |
|
|
|
import java.io.File; |
|
|
|
import java.io.*; |
|
|
|
import java.io.FileOutputStream; |
|
|
|
|
|
|
|
import java.io.InputStream; |
|
|
|
|
|
|
|
import java.net.HttpURLConnection; |
|
|
|
import java.net.HttpURLConnection; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Enumeration; |
|
|
|
import java.util.List; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import org.apache.tools.zip.ZipEntry; |
|
|
|
|
|
|
|
import org.apache.tools.zip.ZipFile; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Created by hufan on 2016/9/5. |
|
|
|
* Created by hufan on 2016/9/5. |
|
|
|
*/ |
|
|
|
*/ |
|
|
@ -198,7 +200,7 @@ public class DownLoadDependenceUI implements ActionListener { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//安装文件
|
|
|
|
//安装文件
|
|
|
|
IOUtils.unzip(new File(temp), FRContext.getCurrentEnv().getPath() + dependenceUnit.getDependenceDir()); |
|
|
|
unZipFiles(temp, FRContext.getCurrentEnv().getPath() + dependenceUnit.getDependenceDir()); |
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
} else { |
|
|
|
result = false; |
|
|
|
result = false; |
|
|
@ -254,14 +256,12 @@ public class DownLoadDependenceUI implements ActionListener { |
|
|
|
int choose = JOptionPane.showConfirmDialog(null, Inter.getLocText("FR-Designer-Plugin_Plugin") + Inter.getLocText("FR-Designer-Need") + Inter.getLocText("FR-Designer-Dependence") + Inter.getLocText("FR-Designer-Support") + "," + Inter.getLocText("FR-Designer-Dependence_Need_Install") + "(" + showFileLength() + " m)?", "install tooltip", JOptionPane.YES_NO_OPTION); |
|
|
|
int choose = JOptionPane.showConfirmDialog(null, Inter.getLocText("FR-Designer-Plugin_Plugin") + Inter.getLocText("FR-Designer-Need") + Inter.getLocText("FR-Designer-Dependence") + Inter.getLocText("FR-Designer-Support") + "," + Inter.getLocText("FR-Designer-Dependence_Need_Install") + "(" + showFileLength() + " m)?", "install tooltip", JOptionPane.YES_NO_OPTION); |
|
|
|
if (choose == 0) {//下载安装
|
|
|
|
if (choose == 0) {//下载安装
|
|
|
|
if (!connectToServer()) { |
|
|
|
if (!connectToServer()) { |
|
|
|
//JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Dependence_Connect_Server_Error"), "alert", JOptionPane.ERROR_MESSAGE);
|
|
|
|
|
|
|
|
throw new PluginDependenceException(Inter.getLocText("FR-Designer-Dependence_Connect_Server_Error")); |
|
|
|
throw new PluginDependenceException(Inter.getLocText("FR-Designer-Dependence_Connect_Server_Error")); |
|
|
|
} |
|
|
|
} |
|
|
|
//安装依赖环境
|
|
|
|
//安装依赖环境
|
|
|
|
if (install()) { |
|
|
|
if (install()) { |
|
|
|
JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Dependence_Install_Succeed") + "!!"); |
|
|
|
JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Dependence_Install_Succeed") + "!!"); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
//JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Dependence_Install_Failed") + "!!", "alert", JOptionPane.ERROR_MESSAGE);
|
|
|
|
|
|
|
|
throw new PluginDependenceException(Inter.getLocText("FR-Designer-Dependence_Install_Failed")); |
|
|
|
throw new PluginDependenceException(Inter.getLocText("FR-Designer-Dependence_Install_Failed")); |
|
|
|
} |
|
|
|
} |
|
|
|
}else {//不选择下载,则不安装图标插件
|
|
|
|
}else {//不选择下载,则不安装图标插件
|
|
|
@ -272,4 +272,61 @@ public class DownLoadDependenceUI implements ActionListener { |
|
|
|
private String showFileLength() { |
|
|
|
private String showFileLength() { |
|
|
|
return totalSize == -1 ? "NAN" : totalSize / Math.pow(10, 6) + ""; |
|
|
|
return totalSize == -1 ? "NAN" : totalSize / Math.pow(10, 6) + ""; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@SuppressWarnings("unchecked") |
|
|
|
|
|
|
|
public static boolean unZipFiles(String zipFileName, String extPlace) throws Exception { |
|
|
|
|
|
|
|
System.setProperty("sun.zip.encoding", System.getProperty("sun.jnu.encoding")); |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
(new File(extPlace)).mkdirs(); |
|
|
|
|
|
|
|
File f = new File(zipFileName); |
|
|
|
|
|
|
|
ZipFile zipFile = new ZipFile(zipFileName,"GBK"); //处理中文文件名乱码的问题
|
|
|
|
|
|
|
|
if((!f.exists()) && (f.length() <= 0)) { |
|
|
|
|
|
|
|
throw new Exception("no zip file!"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
String strPath, gbkPath, strtemp; |
|
|
|
|
|
|
|
File tempFile = new File(extPlace); |
|
|
|
|
|
|
|
strPath = tempFile.getAbsolutePath(); |
|
|
|
|
|
|
|
Enumeration<?> e = zipFile.getEntries(); |
|
|
|
|
|
|
|
while(e.hasMoreElements()){ |
|
|
|
|
|
|
|
ZipEntry zipEnt = (ZipEntry) e.nextElement(); |
|
|
|
|
|
|
|
gbkPath=zipEnt.getName(); |
|
|
|
|
|
|
|
if(zipEnt.isDirectory()){ |
|
|
|
|
|
|
|
strtemp = strPath + File.separator + gbkPath; |
|
|
|
|
|
|
|
File dir = new File(strtemp); |
|
|
|
|
|
|
|
dir.mkdirs(); |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
//读写文件
|
|
|
|
|
|
|
|
InputStream is = zipFile.getInputStream(zipEnt); |
|
|
|
|
|
|
|
BufferedInputStream bis = new BufferedInputStream(is); |
|
|
|
|
|
|
|
gbkPath=zipEnt.getName(); |
|
|
|
|
|
|
|
strtemp = strPath + File.separator + gbkPath; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//建目录
|
|
|
|
|
|
|
|
String strsubdir = gbkPath; |
|
|
|
|
|
|
|
for(int i = 0; i < strsubdir.length(); i++) { |
|
|
|
|
|
|
|
if(strsubdir.substring(i, i + 1).equalsIgnoreCase("/")) { |
|
|
|
|
|
|
|
String temp = strPath + File.separator + strsubdir.substring(0, i); |
|
|
|
|
|
|
|
File subdir = new File(temp); |
|
|
|
|
|
|
|
if(!subdir.exists()) |
|
|
|
|
|
|
|
subdir.mkdir(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
FileOutputStream fos = new FileOutputStream(strtemp); |
|
|
|
|
|
|
|
BufferedOutputStream bos = new BufferedOutputStream(fos); |
|
|
|
|
|
|
|
int c; |
|
|
|
|
|
|
|
while((c = bis.read()) != -1) { |
|
|
|
|
|
|
|
bos.write((byte) c); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
bos.close(); |
|
|
|
|
|
|
|
fos.close(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return true; |
|
|
|
|
|
|
|
} catch(Exception e) { |
|
|
|
|
|
|
|
FRContext.getLogger().info(e.getMessage()); |
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|