+annotation.processing.enabled=true\r
+annotation.processing.enabled.in.editor=false\r
+annotation.processing.run.all.processors=true\r
application.title=Saccubus\r
application.vendor=yuki\r
build.classes.dir=${build.dir}/classes\r
# Space-separated list of extra javac options\r
javac.compilerargs=\r
javac.deprecation=false\r
-javac.source=1.5\r
-javac.target=1.5\r
+javac.processorpath=\\r
+ ${javac.classpath}\r
+javac.source=1.6\r
+javac.target=1.6\r
javac.test.classpath=\\r
${javac.classpath}:\\r
${build.classes.dir}:\\r
jnlp.enabled=false\r
jnlp.offline-allowed=false\r
jnlp.signed=false\r
-main.class=saccubus.Saccubus\r
+main.class=yukihane.inqubuss.gui.MainFrame\r
manifest.file=manifest.mf\r
meta.inf.dir=${src.dir}/META-INF\r
+mkdist.disabled=false\r
no.dependencies=true\r
platform.active=default_platform\r
project.NicoBrowser=../NicoLib/NicoBrowser/release_20091201_ver_0_4_0\r
/** 投稿者コメントダウンロードディレクトリ */
private String p_ownercomment_directory;
+ @Override
public boolean isOwnerCommentDownload() {
return Boolean.valueOf(p_ownercomment_download);
}
p_ownercomment_download = Boolean.toString(download);
}
+ @Override
public boolean isCommentDownload() {
return Boolean.valueOf(p_comment_download);
}
p_comment_download = Boolean.toString(download);
}
+ @Override
public String getMovieDirectory() {
return p_movie_directory;
}
this.p_movie_directory = dir;
}
+ @Override
public boolean isMovieDownload() {
return Boolean.valueOf(p_movie_download);
}
this.p_movie_download = Boolean.toString(download);
}
+ @Override
public String getDbLocation() {
return p_nicobrowser_dblocation;
}
this.p_nicobrowser_dblocation = p_nicobrowser_dblocation;
}
+ @Override
public boolean isDbUse() {
return Boolean.valueOf(p_nicobrowser_use);
}
this.p_nicobrowser_use = Boolean.toString(use);
}
+ @Override
public String getNicoVideoId() {
return p_nicovideo_id;
}
this.p_nicovideo_id = id;
}
+ @Override
public String getNicoVideoPassword() {
return p_nicovideo_password;
}
this.p_nicovideo_password = password;
}
+ @Override
public String getProxyHost() {
return p_proxy_host;
}
this.p_proxy_host = host;
}
+ @Override
public int getP_proxy_port() {
return Integer.parseInt(p_proxy_port);
}
this.p_proxy_port = Integer.toString(port);
}
+ @Override
public boolean isProxyUse() {
return Boolean.valueOf(p_proxy_use);
}
<Component class="javax.swing.JTable" name="jTable1">
<Properties>
<Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
- <Connection code="targets" type="code"/>
+ <Connection code="targetModel" type="code"/>
+ </Property>
+ <Property name="dropMode" type="javax.swing.DropMode" editor="org.netbeans.modules.form.editors.EnumEditor">
+ <Value id="INSERT_ROWS"/>
</Property>
</Properties>
</Component>
*/
package yukihane.inqubuss.gui;
-import yukihane.inqubuss.model.ListData;
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.Transferable;
+import java.io.File;
+import java.util.Collection;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import javax.swing.TransferHandler;
+import javax.swing.UIManager;
+import javax.swing.UIManager.LookAndFeelInfo;
import yukihane.inqubuss.model.SourceTypeComboBoxModel;
+import yukihane.inqubuss.model.Target;
import yukihane.inqubuss.model.TargetsTableModel;
/**
*/
public class MainFrame extends javax.swing.JFrame {
- private final TargetsTableModel targets = new TargetsTableModel(new ListData());
+ private final TargetsTableModel targetModel = new TargetsTableModel();
+
/** Creates new form MainFrame */
public MainFrame() {
initComponents();
+ jPanel1.setTransferHandler(new DownloadListTransferHandler());
+ jTable1.setTransferHandler(new TableTransferHandler());
}
/** This method is called from within the constructor to
jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
- jTable1.setModel(targets);
+ jTable1.setModel(targetModel);
+ jTable1.setDropMode(javax.swing.DropMode.INSERT_ROWS);
jScrollPane1.setViewportView(jTable1);
jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorder());
* @param args the command line arguments
*/
public static void main(String args[]) {
+ try {
+ for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (Exception e) {
+ try {
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (Exception ex) {
+ }
+ }
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
// End of variables declaration//GEN-END:variables
+
+ private class DownloadListTransferHandler extends TransferHandler {
+
+ private final Pattern pattern = Pattern.compile("(\\w\\w\\d+)");
+
+ @Override
+ public boolean canImport(TransferHandler.TransferSupport support) {
+
+ // TODO ファイル, URLはインポート可能とする.
+ DataFlavor[] flavors = support.getDataFlavors();
+ System.out.println("fl start");
+ for (DataFlavor f : flavors) {
+ System.out.println(f.getPrimaryType() + ", " + f.getMimeType() + ", " + f.getSubType() + ", " + f.
+ getHumanPresentableName());
+ }
+ System.out.println("fl end");
+ return true;
+ }
+
+ @Override
+ public boolean importData(TransferHandler.TransferSupport support) {
+ try {
+ Transferable transferable = support.getTransferable();
+ if (transferable.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {
+ List<File> data = (List<File>) transferable.getTransferData(DataFlavor.javaFileListFlavor);
+ Collection<Target> targets = Target.from(data);
+ targetModel.addTarget(targets);
+ } else {
+ String data = (String) transferable.getTransferData(DataFlavor.stringFlavor);
+ Matcher matcher = pattern.matcher(data);
+ if (matcher.find()) {
+ System.out.println("matched" + matcher.group(1));
+ } else {
+ return false;
+ }
+
+ }
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+ }
+
+ private class TableTransferHandler extends DownloadListTransferHandler {
+
+ @Override
+ public boolean canImport(TransferHandler.TransferSupport support) {
+ return super.canImport(support);
+ }
+
+ @Override
+ public boolean importData(TransferHandler.TransferSupport support) {
+ return super.importData(support);
+ }
+ }
}
+++ /dev/null
-package yukihane.inqubuss.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class ListData {
-
- private List<Target> lines = new ArrayList<Target>();
-
- int size() {
- return lines.size();
- }
-
- Target get(int rowIndex) {
- return lines.get(rowIndex);
- }
-}
package yukihane.inqubuss.model;
+import java.io.File;
+
/**
*
* @author yuki
this.location = location;
}
+ Location(File f) {
+ this.location = f.getPath();
+ }
+
@Override
public String toString() {
return location;
*/
public enum SourceType {
- DEFAULT("デフォルト"), DOWNLOAD("常にダウンロード"), DOWNLOAD_WHEN_NOTHING("無ければダウンロード"), LOCAL_SELECT("ローカルファイル選択..."), DO_NOT_PROCESS(
- "何も行わない");
+ DEFAULT("デフォルト"),
+ RECYCLE("無ければダウンロード"),
+ DOWNLOAD("常にダウンロード"),
+ SELECT_FILE("ファイル選択..."),
+ DO_NOTHING("何も行わない");
private final String text;
private SourceType(String text) {
this.text = text;
}
- public String getText() {
+ @Override
+ public String toString() {
return text;
}
}
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
package yukihane.inqubuss.model;
-import javax.swing.ComboBoxModel;
-import javax.swing.event.ListDataListener;
+import javax.swing.DefaultComboBoxModel;
/**
*
* @author yuki
*/
-public class SourceTypeComboBoxModel implements ComboBoxModel {
-
- public void setSelectedItem(Object anItem) {
-// throw new UnsupportedOperationException("Not supported yet.");
- }
-
- public Object getSelectedItem() {
-// throw new UnsupportedOperationException("Not supported yet.");
- return "test";
- }
-
- public int getSize() {
-// throw new UnsupportedOperationException("Not supported yet.");
- return 10;
- }
-
- public Object getElementAt(int index) {
-// throw new UnsupportedOperationException("Not supported yet.");
- return "Hello";
- }
-
- public void addListDataListener(ListDataListener l) {
-// throw new UnsupportedOperationException("Not supported yet.");
- }
+public class SourceTypeComboBoxModel extends DefaultComboBoxModel {
- public void removeListDataListener(ListDataListener l) {
- throw new UnsupportedOperationException("Not supported yet.");
+ public SourceTypeComboBoxModel() {
+ for (SourceType st : SourceType.values()) {
+ addElement(st);
+ }
}
-
}
package yukihane.inqubuss.model;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+
public class Target {
+ public static Collection<Target> from(Collection<File> data) {
+ Collection<Target> list = new ArrayList<Target>(data.size());
+ for(File f : data){
+ list.add(new Target(f));
+ }
+ return list;
+ }
+
private Location movie;
private Location comment;
private Location ownerComment;
private Status status;
+ private Target(File f) {
+ movie = new Location(f);
+ }
+
public Location getComment() {
return comment;
}
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
package yukihane.inqubuss.model;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
-import javax.swing.event.TableModelListener;
-import javax.swing.table.TableModel;
+import javax.swing.table.AbstractTableModel;
/**
*
* @author yuki
*/
-public class TargetsTableModel implements TableModel {
+public class TargetsTableModel extends AbstractTableModel {
- private final ListData targets;
+ private final List<Target> targets = new ArrayList<Target>();
private final String[] columnNames = new String[]{"動画", "コメント", "投コメ", "状態"};
private final Class<?>[] columnClasses = new Class<?>[]{Location.class, Location.class, Location.class, Status.class};
- public TargetsTableModel(ListData targets) {
- this.targets = targets;
- }
-
+ @Override
public int getRowCount() {
return targets.size();
}
+ @Override
public int getColumnCount() {
return columnNames.length;
}
+ @Override
public String getColumnName(int columnIndex) {
return columnNames[columnIndex];
}
+ @Override
public Class<?> getColumnClass(int columnIndex) {
return columnClasses[columnIndex];
}
- public boolean isCellEditable(int rowIndex, int columnIndex) {
- return false;
- }
-
+ @Override
public Object getValueAt(int rowIndex, int columnIndex) {
Target t = targets.get(rowIndex);
Object res;
- switch(columnIndex){
+ switch (columnIndex) {
case 0:
res = t.getMovie();
break;
return res;
}
+ @Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
throw new UnsupportedOperationException("Not supported yet.");
}
- public void addTableModelListener(TableModelListener l) {
-// throw new UnsupportedOperationException("Not supported yet.");
- }
+ public void addTarget(Collection<Target> t) {
+ int before = targets.size();
+ targets.addAll(t);
+ int after = targets.size();
+ if (before < after) {
+ fireTableRowsInserted(before, after - 1);
+ }
- public void removeTableModelListener(TableModelListener l) {
-// throw new UnsupportedOperationException("Not supported yet.");
}
}