?? taskmodel.java
字號:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package biz.tbuy.huliqing.jloading;import biz.tbuy.huliqing.jloading.downloader.Config;import biz.tbuy.huliqing.jloading.downloader.Downloader;import java.text.SimpleDateFormat;import java.util.Calendar;/** * * @author huliqing */public class TaskModel { //private Config config; // 狀態保存文件 public final static String[] TITLES = { "狀態", "文件", "大小", "進度", "速度", "已下載", "剩余時間", "類型", "下載目錄" }; public final static int COLUMN_STATE = 0; // 狀態 public final static int COLUMN_NAME = 1; // 文件名 public final static int COLUMN_SIZE = 2; // 文件大小(字節) public final static int COLUMN_PROCESS = 3; // 進度 public final static int COLUMN_SPEED = 4; // 速度 public final static int COLUMN_LOADED = 5; // 已經下載 public final static int COLUMN_LEAVE = 6; // 剩余時間 public final static int COLUMN_TYPE = 7; // 文件類型 public final static int COLUMN_SAVE = 8; // 文件下載路徑 // 字段(顯示) //private String state; private String name; private long size; private long process; private long speed; private long loaded; private String leave; private String type; private String save; // 保存路徑 private String taskid; // 任務標識 private String url; // 下載源地址(非顯示) public TaskModel(Config config) { taskid = config.getId(); name = config.getName(); url = config.getURLs().get(0); save = config.getSave(); size = config.getLength(); type = url.substring(url.lastIndexOf(".") + 1); init(); } public TaskModel(String taskid, String name, String url, String save) { this.taskid = taskid; this.name = name; this.url = url; this.save = save; type = url.substring(url.lastIndexOf(".") + 1); init(); } private void init() { if (downloader == null) { TaskManager tm = TaskManager.getInstance(); Config config = tm.getConfig(taskid); if (config != null) { //System.out.println("config存在"); downloader = new Downloader(config); } else { //System.out.println("config不存在"); downloader = new Downloader(taskid, name, url, save, 12); } } } // -------------------------------------------------- 121214e3243543654353 public Object getColumnValue(int columnIndex) { switch (columnIndex) { case COLUMN_STATE:{ return getState(); } case COLUMN_NAME:{ return name; } case COLUMN_SIZE:{ if (downloader != null) { size = downloader.getTotalBytes(); } return size; } case COLUMN_PROCESS:{ if (size == 0) return 0; process = loaded * 100 / size; return (int) process; } case COLUMN_SPEED:{ if (downloader != null) { speed = downloader.getSpeed(); } else { speed = 0; } return speed + " k/s"; } case COLUMN_LOADED:{ if (downloader != null) { loaded = downloader.getReadBytes(); } return loaded + " bytes"; } case COLUMN_LEAVE:{ leave = getLeaveTime(); return leave; } case COLUMN_TYPE:{ return type; } case COLUMN_SAVE:{ return save == null ? "": save; } } return null; } Calendar cal = Calendar.getInstance(); SimpleDateFormat stf = new SimpleDateFormat("mm:ss"); public String getLeaveTime() { if (speed <= 0) return ""; long leaveTime = (size - loaded) / speed; long temp = (leaveTime / 1000 / 60 / 60); String hh; if (temp < 10) { hh = "0" + temp; } else { hh = String.valueOf(temp); } cal.setTimeInMillis(leaveTime); return (hh + ":" + stf.format(cal.getTime())); } // -------------------------------------------------- downloader private Downloader downloader; /** 開始任務下載 */ public void toStart() { if (downloader == null) init(); downloader.toStart(); } /** 暫停任務 */ public void toPause() { if (downloader != null) { downloader.toPause(); } } /** 停止任務下載 */ public void toStop() { if (downloader != null) { downloader.toStop(); downloader = null; } } /** 刪除任務 */ public boolean toDelete() { if (downloader != null) { return downloader.toDelete(); } return false; } // -------------------------------------------------- public String getState() { if (downloader == null) return "None"; if (downloader.isNone()) { return "None"; } else if (downloader.isReady()) { return "Ready"; } else if (downloader.isLoading()) { return "Loading"; } else if (downloader.isPaused()) { return "Pause"; } else if (downloader.isOk()) { return "Ok"; } else if (downloader.isStopped()) { return "Stop"; } return ""; } /** 獲取任務標識 */ public String getTaskid() { return taskid; }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -