*/
package yukihane.inqubus.gui;
+import java.awt.Dimension;
import java.awt.Image;
import java.awt.ItemSelectable;
+import java.awt.Point;
import java.awt.Toolkit;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
-import java.awt.event.FocusEvent;
-import java.awt.event.FocusListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
import javax.swing.TransferHandler;
import javax.swing.WindowConstants;
import javax.swing.border.BevelBorder;
+import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.ToStringBuilder;
import saccubus.FfmpegOption;
/** Creates new form MainFrame */
public MainFrame() {
+ super();
+ addWindowListener(new MainFrameWindowListener());
+
final Config p = Config.INSTANCE;
// ワーカスレッド生成
);
pack();
+
+ /*
+ * 画面のサイズや位置を前回終了時のものに設定する
+ */
+ final int windowWidth = p.getSystemWindowWidth();
+ final int windowHeight = p.getSystemWindowHeight();
+ if (windowWidth > 0 && windowHeight > 0) {
+ setSize(windowWidth, windowHeight);
+ }
+
+ final int windowPosX = p.getSystemWindowPosX();
+ final int windowPosY = p.getSystemWindowPosY();
+ if (windowPosX > 0 && windowPosY > 0) {
+ setLocation(windowPosX, windowPosY);
+ } else {
+ setLocationByPlatform(true);
+ }
+
+ final int colId = p.getSystemColumnId();
+ if(colId > 0) {
+ tblDisplay.getColumnModel().getColumn(0).setPreferredWidth(colId);
+ }
+ final int colStatus = p.getSystemColumnStatus();
+ if(colStatus > 0) {
+ tblDisplay.getColumnModel().getColumn(4).setPreferredWidth(colStatus);
+ }
+
initInputPanel();
pnlMain.setTransferHandler(new DownloadListTransferHandler());
tblDisplay.setTransferHandler(new TableTransferHandler());
}
}
+ private class MainFrameWindowListener extends WindowAdapter {
+ @Override
+ public void windowClosing(WindowEvent e) {
+ final Config p = Config.INSTANCE;
+
+ final Dimension size = getSize();
+ p.setSystemWindowWidth(size.width);
+ p.setSystemWindowHeight(size.height);
+
+ final Point pos = getLocation();
+ p.setSystemWindowPosX(pos.x);
+ p.setSystemWindowPosY(pos.y);
+
+ p.setSystemColumnId(tblDisplay.getColumnModel().getColumn(0).getWidth());
+ p.setSystemColumnVideo(tblDisplay.getColumnModel().getColumn(1).getWidth());
+ p.setSystemColumnComment(tblDisplay.getColumnModel().getColumn(2).getWidth());
+ p.setSystemColumnConvert(tblDisplay.getColumnModel().getColumn(3).getWidth());
+ p.setSystemColumnStatus(tblDisplay.getColumnModel().getColumn(4).getWidth());
+ try {
+ p.save();
+ } catch (ConfigurationException ex) {
+ logger.log(Level.SEVERE, "コンフィグ保存失敗", ex);
+ }
+ }
+ }
+
/*
* ここからDownloadProfile作成用クラスの定義
*/