・(番組追跡) 新規登録時、タイトルからサブタイトルを削除する機能(ボタン)を追加\r
・(キーワード検索) テーブル上の条件行の編集方法の改善\r
・(りもこん、ステータスビュー) "DBR-Z*"のレコーダIDを持つレコーダも選択対象となるようにした(>>497.)\r
+ ・(各種ダイアログ) ESCキーでのキャンセル動作(閉じる)を実装 ※全部ではない\r
■バグ修正\r
・(その他) SwingWorkerで生成したサブスレッド内で想定外のruntime exceptionが発生するとサブスレッドがログも出さずに死んでしまってエラー原因を調査できなかったが、ログが出るように仕掛けをしたのでその仕掛けがうまく動くようなら今後改善が進んでいくはず\r
・(予約ダイアログ) 類似予約テーブルで「類似予約を選択しない」を選んでも、番組ID取得ボタンがリセットされない場合がある問題を修正\r
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
/**\r
* キーワード検索の設定のクラス(延長警告管理でも流用する)\r
*/\r
-abstract class AbsKeywordDialog extends JDialog {\r
+abstract class AbsKeywordDialog extends JEscCancelDialog {\r
\r
private static final long serialVersionUID = 1L;\r
\r
this.setTitle(windowTitle);\r
}\r
\r
+ \r
/*******************************************************************************\r
* アクション\r
******************************************************************************/\r
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
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
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
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
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
* @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
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
--- /dev/null
+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
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
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
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
// タイトルバーの高さも考慮する必要がある\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
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
* \r
*/\r
\r
-public class VWKeywordGroupDialog extends JDialog {\r
+public class VWKeywordGroupDialog extends JEscCancelDialog {\r
\r
private static final long serialVersionUID = 1L;\r
\r
\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
* \r
*/\r
\r
-public class VWTraceKeyDialog extends JDialog {\r
+public class VWTraceKeyDialog extends JEscCancelDialog {\r
\r
private static final long serialVersionUID = 1L;\r
\r
\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
\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