OSDN Git Service

キーワード検索ダイアログ等にESCキーでのキャンセル動作を追加
authorpeeweedee <peeweedee@users.sourceforge.jp>
Sat, 27 Jul 2013 12:47:47 +0000 (21:47 +0900)
committerpeeweedee <peeweedee@users.sourceforge.jp>
Sat, 27 Jul 2013 12:47:47 +0000 (21:47 +0900)
TinyBannavi/05_history.txt
TinyBannavi/src/tainavi/AbsKeywordDialog.java
TinyBannavi/src/tainavi/AbsPaperColorsDialog.java
TinyBannavi/src/tainavi/AbsReserveDialog.java
TinyBannavi/src/tainavi/HDDRecorderUtils.java
TinyBannavi/src/tainavi/JEscCancelDialog.java [new file with mode: 0644]
TinyBannavi/src/tainavi/JListSortDialog.java
TinyBannavi/src/tainavi/VWColorChooserDialog.java
TinyBannavi/src/tainavi/VWKeywordGroupDialog.java
TinyBannavi/src/tainavi/VWTraceKeyDialog.java
TinyBannavi/src/todo.txt

index a583c75..ae5ead9 100644 (file)
@@ -32,6 +32,7 @@
  ・(番組追跡) 新規登録時、タイトルからサブタイトルを削除する機能(ボタン)を追加\r
  ・(キーワード検索) テーブル上の条件行の編集方法の改善\r
  ・(りもこん、ステータスビュー) "DBR-Z*"のレコーダIDを持つレコーダも選択対象となるようにした(>>497.)\r
+ ・(各種ダイアログ) ESCキーでのキャンセル動作(閉じる)を実装 ※全部ではない\r
 ■バグ修正\r
  ・(その他) SwingWorkerで生成したサブスレッド内で想定外のruntime exceptionが発生するとサブスレッドがログも出さずに死んでしまってエラー原因を調査できなかったが、ログが出るように仕掛けをしたのでその仕掛けがうまく動くようなら今後改善が進んでいくはず\r
  ・(予約ダイアログ) 類似予約テーブルで「類似予約を選択しない」を選んでも、番組ID取得ボタンがリセットされない場合がある問題を修正\r
index 491ee68..7eeca40 100644 (file)
@@ -13,6 +13,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;\r
 import java.util.regex.PatternSyntaxException;\r
 \r
+import javax.swing.AbstractAction;\r
 import javax.swing.DefaultComboBoxModel;\r
 import javax.swing.JButton;\r
 import javax.swing.JComboBox;\r
@@ -36,7 +37,7 @@ import tainavi.TVProgram.ProgSubgenre;
 /**\r
  * キーワード検索の設定のクラス(延長警告管理でも流用する)\r
  */\r
-abstract class AbsKeywordDialog extends JDialog {\r
+abstract class AbsKeywordDialog extends JEscCancelDialog {\r
 \r
        private static final long serialVersionUID = 1L;\r
 \r
@@ -204,6 +205,7 @@ abstract class AbsKeywordDialog extends JDialog {
                this.setTitle(windowTitle);\r
        }\r
        \r
+       \r
        /*******************************************************************************\r
         * アクション\r
         ******************************************************************************/\r
@@ -568,10 +570,15 @@ abstract class AbsKeywordDialog extends JDialog {
        private final ActionListener al_cancel = new ActionListener() {\r
                @Override\r
                public void actionPerformed(ActionEvent e) {\r
-                       dispose();\r
+                       doCancel();\r
                }\r
        };\r
        \r
+       @Override\r
+       protected void doCancel() {\r
+               dispose();\r
+       }\r
+       \r
        /**\r
         * プレビューしたい\r
         */\r
index c91295e..307ed7c 100644 (file)
@@ -37,7 +37,7 @@ import tainavi.JTXTButton.FontStyle;
 import tainavi.TVProgram.ProgGenre;\r
 \r
 \r
-abstract class AbsPaperColorsDialog extends JDialog {\r
+abstract class AbsPaperColorsDialog extends JEscCancelDialog {\r
 \r
        private static final long serialVersionUID = 1L;\r
        \r
@@ -222,7 +222,8 @@ abstract class AbsPaperColorsDialog extends JDialog {
                setVisible(false);\r
        }\r
        \r
-       private void doCancel() {\r
+       @Override\r
+       protected void doCancel() {\r
                updatePaperColors(origenv,origpc);\r
                updatePaperFonts(origenv);\r
                updatePaperBounds(origenv,origbnd);\r
index a25c597..2d5641b 100644 (file)
@@ -3,6 +3,7 @@ package tainavi;
 import java.awt.BorderLayout;\r
 import java.awt.Component;\r
 import java.awt.Dimension;\r
+import java.awt.event.ActionEvent;\r
 import java.awt.event.WindowAdapter;\r
 import java.awt.event.WindowEvent;\r
 import java.awt.event.WindowListener;\r
@@ -10,6 +11,7 @@ import java.util.ArrayList;
 import java.util.Calendar;\r
 import java.util.GregorianCalendar;\r
 \r
+import javax.swing.AbstractAction;\r
 import javax.swing.JDialog;\r
 import javax.swing.JOptionPane;\r
 import javax.swing.JPanel;\r
@@ -29,7 +31,7 @@ import tainavi.TVProgram.ProgSubgenre;
  * @since 3.15.4β ReserveDialogからクラス名変更\r
  * @version 3.22.2β コンポーネントを、番組情報部・録画設定部、類似予約部の3つに分離(このまま突き進めばロジックとSwingコンポーネントを分離できるんじゃないかしら?)\r
  */\r
-abstract class AbsReserveDialog extends JDialog implements HDDRecorderListener,RecordExecutable,RecSettingSelectable,LikeReserveSelectable {\r
+abstract class AbsReserveDialog extends JEscCancelDialog implements HDDRecorderListener,RecordExecutable,RecSettingSelectable,LikeReserveSelectable {\r
 \r
        private static final long serialVersionUID = 1L;\r
 \r
index fabf880..63158e4 100644 (file)
@@ -327,9 +327,7 @@ public class HDDRecorderUtils implements HDDRecorder,Cloneable {
                                        if (\r
                                                        (code.startsWith(BroadcastType.TERRA.getName()+":") && enc.getText().startsWith("地上")) ||\r
                                                        ((code.startsWith(BroadcastType.BS.getName()+":")||code.startsWith(BroadcastType.CS.getName()+":")) && enc.getText().startsWith("BS")) ||\r
-                                                       (code.startsWith(BroadcastType.CAPTURE.getName()+":") && enc.getText().startsWith("キャプチャ")) ||\r
-                                                       enc.getText().startsWith("外部")\r
-                                                       ) {\r
+                                                       (code.startsWith(BroadcastType.CAPTURE.getName()+":") && enc.getText().startsWith("キャプチャ")) ) {\r
                                                encs.add(enc.getText());\r
                                        }\r
                                }\r
diff --git a/TinyBannavi/src/tainavi/JEscCancelDialog.java b/TinyBannavi/src/tainavi/JEscCancelDialog.java
new file mode 100644 (file)
index 0000000..ae72c19
--- /dev/null
@@ -0,0 +1,38 @@
+package tainavi;\r
+\r
+import java.awt.event.ActionEvent;\r
+import java.awt.event.KeyEvent;\r
+\r
+import javax.swing.AbstractAction;\r
+import javax.swing.InputMap;\r
+import javax.swing.JComponent;\r
+import javax.swing.JDialog;\r
+import javax.swing.KeyStroke;\r
+\r
+abstract class JEscCancelDialog extends JDialog {\r
+       \r
+       private static final long serialVersionUID = 1L;\r
+\r
+       //\r
+       abstract protected void doCancel(); \r
+       \r
+       //\r
+       private static final String ESCKEYACTION = "escape";\r
+       \r
+       //\r
+       public JEscCancelDialog() {\r
+               super();\r
+               \r
+               InputMap imap = getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);\r
+               imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), ESCKEYACTION);\r
+               getRootPane().getActionMap().put(ESCKEYACTION, new AbstractAction() {\r
+                       \r
+                       private static final long serialVersionUID = 1L;\r
+\r
+                       @Override\r
+                       public void actionPerformed(ActionEvent e) {\r
+                               doCancel();\r
+                       }\r
+               });\r
+       }\r
+}\r
index c6ddb12..4997f87 100644 (file)
@@ -15,7 +15,7 @@ import javax.swing.SpringLayout;
 import javax.swing.table.DefaultTableModel;\r
 \r
 \r
-public class JListSortDialog extends JDialog {\r
+public class JListSortDialog extends JEscCancelDialog {\r
 \r
        private static final long serialVersionUID = 1L;\r
 \r
@@ -247,11 +247,17 @@ public class JListSortDialog extends JDialog {
                        jbtn_cancel.addActionListener(new ActionListener() {\r
                                @Override\r
                                public void actionPerformed(ActionEvent e) {\r
-                                       reg = false;\r
-                                       dispose();\r
+                                       doCancel();\r
                                }\r
                        });\r
                }\r
                return jbtn_cancel;\r
        }\r
+       \r
+       @Override\r
+       protected void doCancel() {\r
+               reg = false;\r
+               dispose();\r
+       }\r
+       \r
 }\r
index bf1b3dd..2bee51b 100644 (file)
@@ -25,7 +25,7 @@ import javax.swing.JTable;
 import javax.swing.colorchooser.AbstractColorChooserPanel;\r
 import javax.swing.table.TableCellRenderer;\r
 \r
-public class VWColorChooserDialog extends JDialog {\r
+public class VWColorChooserDialog extends JEscCancelDialog {\r
 \r
        private static final long serialVersionUID = 1L;\r
 \r
@@ -44,11 +44,12 @@ public class VWColorChooserDialog extends JDialog {
                // タイトルバーの高さも考慮する必要がある\r
                Dimension d = getJPanel().getPreferredSize();\r
                this.pack();\r
+/*\r
                this.setPreferredSize(new Dimension(\r
                                d.width+(this.getInsets().left+this.getInsets().right),\r
                                d.height+(this.getInsets().top+this.getInsets().bottom)));\r
                this.setResizable(false);\r
-               \r
+*/     \r
                //\r
                this.setTitle("色見本");\r
        }\r
@@ -150,18 +151,22 @@ public class VWColorChooserDialog extends JDialog {
        private JButton getJButton_cancel(String s) {\r
                if (jButton_cancel == null) {\r
                        jButton_cancel = new JButton(s);\r
-                       final JDialog jd = this;\r
                        jButton_cancel.addMouseListener(new MouseAdapter() {\r
                                @Override\r
                                public void mouseClicked(MouseEvent e) {\r
-                                       selectedColor = null;\r
-                                       jd.setVisible(false);\r
+                                       doCancel();\r
                                }\r
                        });\r
                }\r
                return(jButton_cancel);\r
        }\r
        \r
+       @Override\r
+       protected void doCancel() {\r
+               selectedColor = null;\r
+               setVisible(false);\r
+       }\r
+       \r
        /*\r
         * カスタムカラーチューザー\r
         */\r
index 69ff50b..bb60da3 100644 (file)
@@ -18,7 +18,7 @@ import javax.swing.SpringLayout;
  * \r
  */\r
 \r
-public class VWKeywordGroupDialog extends JDialog {\r
+public class VWKeywordGroupDialog extends JEscCancelDialog {\r
 \r
        private static final long serialVersionUID = 1L;\r
 \r
@@ -128,13 +128,18 @@ public class VWKeywordGroupDialog extends JDialog {
 \r
                                @Override\r
                                public void actionPerformed(ActionEvent e) {\r
-                                       dispose();\r
+                                       doCancel();\r
                                }\r
                        });\r
                }\r
                return jButton_cancel;\r
        }\r
        \r
+       @Override\r
+       protected void doCancel() {\r
+               dispose();\r
+       }\r
+       \r
        \r
        // コンストラクタ\r
        public VWKeywordGroupDialog() {\r
index 9afd738..d792fce 100644 (file)
@@ -26,7 +26,7 @@ import javax.swing.event.ChangeListener;
  * \r
  */\r
 \r
-public class VWTraceKeyDialog extends JDialog {\r
+public class VWTraceKeyDialog extends JEscCancelDialog {\r
 \r
        private static final long serialVersionUID = 1L;\r
 \r
@@ -339,13 +339,18 @@ public class VWTraceKeyDialog extends JDialog {
 \r
                                @Override\r
                                public void actionPerformed(ActionEvent e) {\r
-                                       dispose();\r
+                                       doCancel();\r
                                }\r
                        });\r
                }\r
                return jButton_cancel;\r
        }\r
        \r
+       @Override\r
+       protected void doCancel() {\r
+               dispose();\r
+       }\r
+       \r
        \r
        // コンストラクタ\r
        public VWTraceKeyDialog(int x, int y) {\r
index 43983e1..e25d1d8 100644 (file)
@@ -9,14 +9,11 @@
 \r
 【新聞形式】snapshotで落ちる →バグじゃないかも?\r
 \r
-【キーワード検索】ダイアログがなんかおかしい(条件の二重登録?) →登録ラベルの重複チェックが行えていない既存バグのせいだった\r
-\r
 【リスト形式】検索結果生成後にノードの赤黒を更新していない?\r
 \r
 【予約ダイアログ】EPG予約選択時のマージン警告がうまく動かない場合があるみたい\r
 【予約ダイアログ】EPG予約を更新するとき、レコーダ側で設定された開始終了時刻が鯛ナビの予約情報に反映されない?\r
 【予約ダイアログ】チューナー1個の時、裏番組がなくても「空きエンコーダなし」と表示されてしまうようになった?\r
-【予約ダイアログ】TvRockで外部入力が空きチューナー自動選択選択の対象になってしまった!!?\r
 \r
 ---優先度高\r
 \r
 【予約ダイアログ】類似予約対応で、類似予約なしを選択しても番組IDがリセットされない →直したはず\r
 【予約ダイアログ】類似予約対応で、類似予約なしを選択してもタイトルがリセットされない →直したはず\r
 \r
+【予約ダイアログ】TvRockで外部入力が空きチューナー自動選択選択の対象になってしまった!!?\r
+【キーワード検索】ダイアログがなんかおかしい(条件の二重登録?) →登録ラベルの重複チェックが行えていない既存バグのせいだった\r
+\r
 ---以上\r