package org.arong.egdownloader.ui;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import org.arong.egdownloader.spider.WebClient;
import org.arong.egdownloader.ui.window.EgDownloaderWindow;
import org.arong.egdownloader.version.Version;
/**
* 定义各个window的title值<br>
* 定义用于在监听器中标识swing组件对象的name值<br>
* 定义各个组件的text值<br>
* @author 阿荣
* @since 2013-8-18
*
*/
public final class ComponentConst {
public static EgDownloaderWindow mainWindow;
public final static int CLIENT_WIDTH = 1024;//主窗口宽
public final static int CLIENT_HEIGHT = 680;//主窗口高
public final static int MARGIN_X = 32;//组件之间水平相隔
public final static int MARGIN_y = 32;//组件之间垂直间隔
public static String groupName = "";//任务组名称
public static String ROOT_DATA_PATH = "data";//数据根目录
public static String DATA_PATH = "data";//数据目录
public static String CACHE_PATH = "cache";//缓存目录
public final static String TAG_FILE_NAME = "tags.properties";
public final static String TAG_FILE_PATH = ROOT_DATA_PATH + "/tags.properties";
public static String SETTING_XML_DATA_PATH = DATA_PATH + "/setting.xml";//配置文件保存路径
public static String TASK_XML_DATA_PATH = DATA_PATH + "/task.xml";//任务数据保存路径
public static String PICTURE_XML_DATA_PATH = DATA_PATH + "/picture.xml";//图片数据保存路径
public final static String RESOURCES_PATH = "/resources/";
public final static String ICON_PATH = RESOURCES_PATH + "icon/";
public final static String[] TASK_TABLE_HEADER = {"", "名称", "数目(P)", "语言", "已下载", "状态"};
public final static String[] PICTURE_TABLE_HEADER = {"序号", "名称", "大小", "状态", "地址", "下载时间"};
public final static int MAX_TASK_PAGE = 14;//一页显示任务数
public final static int SKIN_NUM = 1;//皮肤编号
public final static Map<String, String> SKIN_ICON = new HashMap<String, String>();
public static String docHtml;
public static String countHtml;
public static String localScriptVersion;//本地脚本版本号
public static String remoteScriptVersion;//远程脚本版本号
public static boolean scriptChange;//远程脚本是否更新
public static String osname;//操作系统名称
public static String EG_VERSION_URL = "http://raw.githubusercontent.com/dipoo/egdownloader/master/script/egversion";
public static String SCRIPT_CREATE_URL = "http://raw.githubusercontent.com/dipoo/egdownloader/master/script/createTask.js";
public static String SCRIPT_COLLECT_URL = "http://raw.githubusercontent.com/dipoo/egdownloader/master/script/collectPicture.js";
public static String SCRIPT_DOWNLOAD_URL = "http://raw.githubusercontent.com/dipoo/egdownloader/master/script/download.js";
public static String SCRIPT_SEARCH_URL = "http://raw.githubusercontent.com/dipoo/egdownloader/master/script/search.js";
public static String SCRIPT_VERSION_URL = "http://raw.githubusercontent.com/dipoo/egdownloader/master/script/version";
static{
InputStream s = null;
try {
s = ComponentConst.class.getResourceAsStream(RESOURCES_PATH + "doc.html");
docHtml = WebClient.read(s, 0);
} finally{
if(s != null){
try {
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(docHtml == null)
docHtml = "没有找到" + RESOURCES_PATH + "doc.html文件";
}
try {
s = ComponentConst.class.getResourceAsStream(RESOURCES_PATH + "count.html");
countHtml = WebClient.read(s, 0);
} finally{
if(s != null){
try {
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(countHtml == null)
countHtml = "没有找到" + RESOURCES_PATH + "count.html文件";
}
Properties scriptProp = new Properties();
try {
scriptProp.load(new FileReader("script/version.properties"));
if(scriptProp.get("eg_version_url") != null){
EG_VERSION_URL = scriptProp.get("eg_version_url").toString();
}
if(scriptProp.get("script_create_url") != null){
SCRIPT_CREATE_URL = scriptProp.get("script_create_url").toString();
}
if(scriptProp.get("script_collect_url") != null){
SCRIPT_COLLECT_URL = scriptProp.get("script_collect_url").toString();
}
if(scriptProp.get("script_download_url") != null){
SCRIPT_DOWNLOAD_URL = scriptProp.get("script_download_url").toString();
}
if(scriptProp.get("script_search_url") != null){
SCRIPT_SEARCH_URL = scriptProp.get("script_search_url").toString();
}
if(scriptProp.get("script_version_url") != null){
SCRIPT_VERSION_URL = scriptProp.get("script_version_url").toString();
}
} catch (FileNotFoundException e) {
} catch (IOException e) {
}
SKIN_ICON.put("add", "_add.png");
SKIN_ICON.put("delete", "_delete.png");
SKIN_ICON.put("setting", "_setting.png");
SKIN_ICON.put("download", "_download.png");
SKIN_ICON.put("select", "_select.png");
SKIN_ICON.put("folder", "_folder.png");
SKIN_ICON.put("size", "_size.png");
SKIN_ICON.put("tool", "_tool.png");
SKIN_ICON.put("picture", "_picture.png");
SKIN_ICON.put("user", "_user.png");
SKIN_ICON.put("save", "_save.png");
SKIN_ICON.put("opera", "_opera.png");
SKIN_ICON.put("detail", "_detail.png");
SKIN_ICON.put("copy", "_copy.png");
SKIN_ICON.put("cut", "_cut.png");
SKIN_ICON.put("paste", "_paste.png");
SKIN_ICON.put("browse", "_browse.png");
SKIN_ICON.put("check", "_check.png");
SKIN_ICON.put("change", "_change.png");
SKIN_ICON.put("reset", "_reset.png");
SKIN_ICON.put("ok", "_ok.png");
SKIN_ICON.put("start", "_start.png");
SKIN_ICON.put("stop", "_stop.png");
SKIN_ICON.put("count", "_count.png");
SKIN_ICON.put("group", "_group.png");
SKIN_ICON.put("clear", "_clear.png");
SKIN_ICON.put("task", "_task.png");
SKIN_ICON.put("zip", "_zip.png");
}
/*MainWindow内的组件*/
//组件的name值
//组件的text值
/*公共的*/
public final static String QUERY_BUTTON_TEXT = "查询";
/*MainWindow内的组件*/
//组件的name值
public final static String SETTING_MENU_NAME = "settingMenu";
public final static String TOOLS_MENU_NAME = "toolsMenu";
public final static String ABOUT_MENU_NAME = "aboutMenu";
public final static String DECODE_AND_ENCODE_MENUITEM_NAME = "docodeAndEncodeMenuItem";
//组件的text值
public final static String ADD_MENU_TEXT = "新建";
public final static String START_MENU_TEXT = "开始";
public final static String STOP_MENU_TEXT = "暂停";
public final static String DELETE_MENU_TEXT = "删除";
public final static String TASKGROUP_SEARCH_TEXT = "搜索";
public final static String TASKGROUP_MENU_TEXT = "任务组";
public final static String SETTING_MENU_TEXT = "配置";
public final static String OPERA_MENU_TEXT = "操作";
public final static String SEARCH_MENU_TEXT = "搜索";
public final static String CONSOLE_MENU_TEXT = "控制台";
public final static String COUNT_MENU_TEXT = "统计";
public final static String ABOUT_MENU_TEXT = "关于";
public final static String DECODE_AND_ENCODE_TAB_TEXT = "加密/解密";
public final static String POPUP_START_MENU_TEXT = " 开始任务 ";
public final static String POPUP_STOP_MENU_TEXT = " 暂停任务 ";
public final static String POPUP_DETAIL_MENU_TEXT = " 详细信息 ";
public final static String POPUP_COPYURL_MENU_TEXT = " 复制地址 ";
public final static String POPUP_OPENFOLDER_MENU_TEXT = " 打开目录 ";
public final static String POPUP_OPENWEBPAGE_MENU_TEXT = " 打开网页 ";
public final static String POPUP_DOWNLOADCOVER_MENU_TEXT = " 下载封面 ";
public final static String POPUP_CHECKRESET_MENU_TEXT = " 查漏补缺 ";
public final static String POPUP_CHANGEREADED_MENU_TEXT = " 更改状态 ";
public final static String POPUP_MORE_MENU_TEXT = "更多操作 ";
public final static String POPUP_SEARCHAUTHOR_MENU_TEXT = " 搜索作者 ";
public final static String POPUP_ZIP_MENU_TEXT = " 打包ZIP ";
public final static String POPUP_EDIT_MENU_TEXT = "编辑 ";
public final static String POPUP_RESET_MENU_TEXT = "重置 ";
public final static String POPUP_COMPLETED_MENU_TEXT = "完成 " ;
public final static String POPUP_REBUILD_MENU_TEXT = "重建 ";
/*AboutMenuWindow内的组件*/
public final static String ABOUT_TEXTPANE_TEXT ="<h3>" + Version.NAME +
"</h3>作 者:<b>" +
Version.AUTHOR + "</b><br>版 本:<b>" +
Version.VERSION +"</b> <a href='checkVersion'><font color='red'>检查新版本</font><a/><br>更新时间:<b>" + Version.MODIFLIED +
"</b><br>项目地址:<a href='https://github.com/dipoo/egdownloader'>https://github.com/dipoo/egdownloader</a>" +
"<br/><font color='blue'>有任何问题,请到项目托管地址发issue。如果eh网页改版,请通知我更新脚本^_^</font>";
public final static String SCRIPT_DESC_TEXT = "<div style='font-size:10px;color:#666;'>目前脚本解析系统只支持javascript脚本,共需要四个脚本文件,分别用于任务信息解析,图片列表解析,图片真实地址解析和搜索漫画解析," +
"已经在上面指定了具体的脚本路径。系统提供给js脚本中一个参数:<font color='red'>htmlSource</font>,代表网页源码(任务解析,图片列表解析的是主页面源码,真实地址解析的是图片浏览页面源码,搜索漫画的是首页源码),你需要" +
"返回各自所需的信息:<br>" +
"<b>任务信息解析</b>:返回一个JSON字符串,如:{\"name\":\"名称\",\"subname\":\"子标题\",\"type\":\"类别\",\"coverUrl\":\"封面地址\",\"total\":\"数目\"," +
"\"size\":大小,\"language\":\"语言\"};<br>" +
"<b>图片列表解析</b>:返回一个JSON数组字符串,如[{\"name\":\"名称\",\"url\":\"浏览地址\"}];<br>" +
"<b>真实地址解析</b>:返回真实地址字符串。<br>" +
"<b>搜索漫畫解析</b>:返回一个带着分页信息和JSON数组的字符串,格式如1888,76###[{\"name\":\"名称\",\"url\":\"浏览地址\", \"coverUrl\":\"封面地址\", \"date\":\"发布时间\", \"type\":\"类型\", \"btUrl\":\"bt地址\", \"uploader\":\"上传者\"}];<br>" +
"约定:JSON字符中中key必须有引号,而且引号为双引号。具体请参看script目录下的自带脚本。</div>";
public static void changeDataPath(String groupName){
DATA_PATH = ROOT_DATA_PATH + "/" + groupName;
}
public static void changeDataXmlPath(){
if(! "".equals(groupName)){
SETTING_XML_DATA_PATH = DATA_PATH + "/data/setting.xml";//配置文件保存路径
TASK_XML_DATA_PATH = DATA_PATH + "/data/task.xml";//任务数据保存路径
PICTURE_XML_DATA_PATH = DATA_PATH + "/data/picture.xml";//图片数据保存路径
}else{
SETTING_XML_DATA_PATH = DATA_PATH + "/setting.xml";//配置文件保存路径
TASK_XML_DATA_PATH = DATA_PATH + "/task.xml";//任务数据保存路径
PICTURE_XML_DATA_PATH = DATA_PATH + "/picture.xml";//图片数据保存路径
}
}
public static String getXmlDirPath(){
if(! "".equals(groupName)){
return DATA_PATH + "/data";
}else{
return DATA_PATH;
}
}
public static String getSavePathPreffix(){
return "";
/*if("".equals(groupName)){
return "";
}else{
return ROOT_DATA_PATH + "/" + groupName + "/";
}*/
}
}