import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.LayoutStyle.ComponentPlacement;
+import javax.swing.SwingUtilities;
import javax.swing.TransferHandler;
import javax.swing.WindowConstants;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.ToStringBuilder;
import saccubus.MainFrame_AboutBox;
import saccubus.util.WayBackTimeParser;
-import saccubus.worker.convert.ConvertProgress;
-import saccubus.worker.download.DownloadProgress;
+import saccubus.worker.impl.convert.ConvertProgress;
+import saccubus.worker.impl.download.DownloadProgress;
import saccubus.worker.WorkerListener;
-import saccubus.worker.convert.ConvertResult;
-import saccubus.worker.download.DownloadResult;
+import saccubus.worker.impl.convert.ConvertResult;
+import saccubus.worker.impl.download.DownloadResult;
import saccubus.worker.profile.CommentProfile;
import saccubus.worker.profile.ConvertProfile;
import saccubus.worker.profile.DownloadProfile;
import yukihane.Util;
import yukihane.inqubus.Config;
import yukihane.inqubus.manager.RequestProcess;
+import yukihane.inqubus.manager.TaskKind;
import yukihane.inqubus.manager.TaskManage;
+import yukihane.inqubus.manager.TaskManageListener;
+import yukihane.inqubus.manager.TaskStatus;
import yukihane.inqubus.model.Target;
import yukihane.inqubus.model.TargetsTableModel;
= "ファイル命名規則入力します。";
private final TargetsTableModel targetModel = new TargetsTableModel();
private final TaskManage taskManager;
- private final DownloadProgressListener downloadProgressListener = new DownloadProgressListener();
- private final ConvertProgressListener convertProgressListener = new ConvertProgressListener();
/** Creates new form MainFrame */
public MainFrame() {
final JPanel pnlMain = new JPanel();
final JScrollPane scrDisplay = new JScrollPane();
- tblDisplay = new JTable();
+ tblDisplay = new JTable(targetModel, new TargetsColumnModel());
final JPanel pnlButton = new JPanel();
btnStart = new JButton();
btnStop = new JButton();
pnlMain.setBorder(BorderFactory.createEtchedBorder());
- tblDisplay.setModel(targetModel);
tblDisplay.setDropMode(DropMode.INSERT_ROWS);
scrDisplay.setViewportView(tblDisplay);
final Config p = Config.INSTANCE;
// TODO コンフィグからスレッド数
- taskManager = new TaskManage(1, 1);
+ taskManager = new TaskManage(1, 1, new GuiTaskManageListener());
+ }
+
+ private class GuiTaskManageListener implements TaskManageListener {
+ @Override
+ public void process(final int id, final TaskKind kind, final TaskStatus status, final double percentage,
+ final String message) {
+ SwingUtilities.invokeLater(new Runnable() {
+
+ @Override
+ public void run() {
+ targetModel.setStatus(id, kind, status, percentage, message);
+ }
+ });
+ }
}
private class ApplyActionListener implements ActionListener {
final InqubusConvertProfile convProf = new InqubusConvertProfile();
logger.log(Level.INFO, downProf.toString());
logger.log(Level.INFO, convProf.toString());
- taskManager.add(new RequestProcess(downProf, id, convProf));
+ final RequestProcess rp = new RequestProcess(downProf, id, convProf);
+ taskManager.add(rp);
+ targetModel.addTarget(new Target(rp));
}
}
/** This method is called from within the constructor to
@Override
public boolean importData(TransferHandler.TransferSupport support) {
- try {
- Transferable transferable = support.getTransferable();
- if (transferable.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {
- @SuppressWarnings("unchecked")
- final List<File> data = (List<File>) transferable.getTransferData(DataFlavor.javaFileListFlavor);
- Collection<Target> targets = Target.from(data);
- targetModel.addTarget(targets);
- } else if (transferable.isDataFlavorSupported(DataFlavor.stringFlavor)) {
- String data = (String) transferable.getTransferData(DataFlavor.stringFlavor);
- Matcher matcher = movieIdPattern.matcher(data);
- if (matcher.find()) {
- String movieId = matcher.group(1);
- Target target = Target.fromId(movieId);
- targetModel.addTarget(target);
- } else {
- return false;
- }
-
- }
- return false;
- } catch (Exception e) {
- logger.log(Level.SEVERE, null, e);
- return false;
- }
+// try {
+// Transferable transferable = support.getTransferable();
+// if (transferable.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {
+// @SuppressWarnings("unchecked")
+// final List<File> data = (List<File>) transferable.getTransferData(DataFlavor.javaFileListFlavor);
+// Collection<Target> targets = Target.from(data);
+// targetModel.addTarget(targets);
+// } else if (transferable.isDataFlavorSupported(DataFlavor.stringFlavor)) {
+// String data = (String) transferable.getTransferData(DataFlavor.stringFlavor);
+// Matcher matcher = movieIdPattern.matcher(data);
+// if (matcher.find()) {
+// String movieId = matcher.group(1);
+// Target target = Target.fromId(movieId);
+// targetModel.addTarget(target);
+// } else {
+// return false;
+// }
+//
+// }
+// return false;
+// } catch (Exception e) {
+// logger.log(Level.SEVERE, null, e);
+// return false;
+// }
+ // TODO 上記実装見直し(Locationは削除された)
+ return false;
}
}