import java.awt.Color;\r
import java.awt.Component;\r
import java.awt.Dimension;\r
+import java.awt.Font;\r
+import java.awt.Rectangle;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ActionListener;\r
import java.awt.event.ItemEvent;\r
import javax.swing.JTable;\r
import javax.swing.JTextArea;\r
import javax.swing.JTextField;\r
+import javax.swing.JViewport;\r
import javax.swing.SpringLayout;\r
import javax.swing.SwingUtilities;\r
import javax.swing.border.LineBorder;\r
* 予約ダイアログのクラス\r
* @since 3.15.4β ReserveDialogからクラス名変更\r
*/\r
-abstract class AbsReserveDialog extends JDialog {\r
+abstract class AbsReserveDialog extends JDialog implements HDDRecorderListener {\r
\r
private static final long serialVersionUID = 1L;\r
\r
protected abstract void ringBeep();\r
\r
// クラス内のイベントから呼び出されるもの\r
- protected abstract void searchLikeRsv(LikeReserveList likeRsvList, ProgDetailList tvd, String keyword, int threshold);\r
- protected abstract String getSelectedRecorderOnToolbar();\r
+ protected abstract LikeReserveList findLikeReserves(ProgDetailList tvd, String keyword, int threshold);\r
\r
/*******************************************************************************\r
* 呼び出し元から引き継いだもの\r
\r
private final GetEventId geteventid = new GetEventId(); // 番組IDの取得\r
\r
+ \r
/*******************************************************************************\r
* 定数\r
******************************************************************************/\r
\r
private static final int COMBO_WIDTH = 115;\r
private static final int COMBO_WIDTH_WIDE = 155;\r
- private static final int COMBO_HEIGHT = 50;\r
+ private static final int COMBO_HEIGHT = 43;\r
\r
private static final int TITLE_WIDTH = COMBO_WIDTH_WIDE+COMBO_WIDTH*2+SEP_WIDTH*2;\r
private static final int CHNAME_WIDTH = COMBO_WIDTH*2+SEP_WIDTH;\r
private static final int DETAIL_HEIGHT = 100;\r
private static final int DATE_WIDTH = 175;\r
private static final int LIKELIST_WIDTH = 730;\r
- private static final int LIKELIST_ROWS = 4;\r
+ private static final int LIKELIST_ROWS = 5;\r
\r
private static final int LABEL_WIDTH = 150;\r
private static final int BUTTON_WIDTH = 75;\r
\r
private static final int LRT_HEADER_WIDTH = 20;\r
private static final int LRT_TITLE_WIDTH = 325;\r
- private static final int LRT_START_WIDTH = 115;\r
+ private static final int LRT_START_WIDTH = 120;\r
private static final int LRT_RECORDER_WIDTH = 200;\r
- private static final int LRT_ENCODER_WIDTH = 60;\r
+ private static final int LRT_ENCODER_WIDTH = 80;\r
\r
public static enum LikeRsvColumn {\r
TITLE ("予約名", LRT_TITLE_WIDTH),\r
private static final String ERRID = "[ERROR]"+MSGID;\r
private static final String DBGID = "[DEBUG]"+MSGID;\r
\r
+ \r
/*******************************************************************************\r
* 部品\r
******************************************************************************/\r
private JLabel jLabel_date = null;\r
private JComboBox jComboBox_date = null;\r
\r
- private JLabel jLabel_ahh = null;\r
+ private JButton jButton_aTime = null;\r
private JTextField jTextField_ahh = null;\r
private JLabel jLabel_asep = null;\r
private JTextField jTextField_amm = null;\r
private JButton jButton_amm_up = null;\r
private JButton jButton_amm_down = null;\r
- private JTextField jTextField_Xahh = null;\r
- private JLabel jLabel_Xasep = null;\r
- private JTextField jTextField_Xamm = null;\r
\r
- private JLabel jLabel_zhh = null;\r
+ private JButton jButton_zTime = null;\r
private JTextField jTextField_zhh = null;\r
private JLabel jLabel_zsep = null;\r
private JTextField jTextField_zmm = null;\r
private JButton jButton_zmm_up = null;\r
private JButton jButton_zmm_down = null;\r
- private JTextField jTextField_Xzhh = null;\r
- private JLabel jLabel_Xzsep = null;\r
- private JTextField jTextField_Xzmm = null;\r
- \r
- private JButton jButton_Xreset = null;\r
\r
private JLabel jLabel_detail = null;\r
private JScrollPane jScrollPane_detail = null;\r
\r
private JScrollPane jPane_likersv = null;\r
\r
- private LikeRsvTable likersvtable = null;\r
- private LikeRsvRowHeader likersvrowheader = null;\r
+ private LikeRsvTable jtbl_likersv = null;\r
+ private LikeRsvRowHeader jrhdr_likersv = null;\r
\r
/*\r
* その他\r
private class Vals {\r
\r
// 検索した類似予約を保持する\r
- final LikeReserveList likeRsvList = new LikeReserveList();\r
+ LikeReserveList likeRsvList = null;\r
LikeReserveItem selectedLikeRsv = null; \r
\r
// 類似予約抽出条件(タイトル)\r
String byDateIni = "";\r
// オープン時の週次予約の値(状態リセット用)\r
String byWeeklyIni = "";\r
+ // オープン時の時刻の値\r
+ String ahh = "";\r
+ String amm = "";\r
+ String zhh = "";\r
+ String zmm = "";\r
\r
// 延長警告分のばすかどうか\r
boolean isExtended = false;\r
\r
private boolean doneReserve = false;\r
\r
+ \r
/*******************************************************************************\r
* コンストラクタ\r
******************************************************************************/\r
this.addWindowListener(wl_opened);\r
}\r
\r
+ \r
/*******************************************************************************\r
* アクション\r
******************************************************************************/\r
\r
@Override\r
protected Object doWorks() throws Exception {\r
- for ( HDDRecorder recorder : recorders ) {\r
- if (recorder.isMyself((String)jCBXPanel_recorder.getSelectedItem()) == true) {\r
- StWin.appendMessage(MSGID+"予約を登録します:"+r.getTitle());\r
- //recorder.setProgressArea(StWin);\r
- if (recorder.PostRdEntry(r)) {\r
- \r
- // 成功したよ\r
- MWin.appendMessage(MSGID+"正常に登録できました:"+r.getTitle()+"("+r.getCh_name()+")");\r
- doneReserve = true;\r
+ \r
+ String myself = (String)jCBXPanel_recorder.getSelectedItem();\r
+ for ( HDDRecorder recorder : recorders.findInstance(myself) ) {\r
+ \r
+ StWin.appendMessage(MSGID+"予約を登録します:"+r.getTitle());\r
+ \r
+ if ( recorder.PostRdEntry(r) ) {\r
+ \r
+ MWin.appendMessage(MSGID+"正常に登録できました:"+r.getTitle()+"("+r.getCh_name()+")");\r
+ doneReserve = true;\r
+ \r
+ // カレンダーに登録する\r
+ if ( recorder.getUseCalendar() && jCheckBox_Exec.isSelected() ) {\r
\r
- // カレンダーに登録する\r
- if ( recorder.getUseCalendar()) {\r
- if ( jCheckBox_Exec.isSelected() ) {\r
- for ( HDDRecorder calendar : recorders ) {\r
- if (calendar.getType() == RecType.CALENDAR) {\r
- StWin.appendMessage(MSGID+"カレンダーに予約情報を登録します");\r
- //calendar.setProgressArea(StWin);\r
- if ( ! calendar.PostRdEntry(r)) {\r
- MWin.appendError(ERRID+"[カレンダー] "+calendar.getErrmsg());\r
- ringBeep();\r
- }\r
- }\r
- }\r
+ for ( HDDRecorder calendar : recorders.findInstance(RecType.CALENDAR) ) {\r
+ \r
+ StWin.appendMessage(MSGID+"カレンダーに予約情報を登録します");\r
+ \r
+ if ( ! calendar.PostRdEntry(r)) {\r
+ MWin.appendError(ERRID+"[カレンダー] "+calendar.getErrmsg());\r
+ ringBeep();\r
}\r
}\r
}\r
- else {\r
- MWin.appendError(ERRID+"登録に失敗しました:"+r.getTitle()+"("+r.getCh_name()+")");\r
- }\r
- //\r
- if ( ! recorder.getErrmsg().equals("")) {\r
- MWin.appendMessage(MSGID+"[追加情報] "+recorder.getErrmsg());\r
- ringBeep();\r
- }\r
- break;\r
}\r
+ else {\r
+ MWin.appendError(ERRID+"登録に失敗しました:"+r.getTitle()+"("+r.getCh_name()+")");\r
+ }\r
+ \r
+ if ( ! recorder.getErrmsg().equals("")) {\r
+ MWin.appendMessage(MSGID+"[追加情報] "+recorder.getErrmsg());\r
+ ringBeep();\r
+ }\r
+ \r
+ break; // 一回限り\r
}\r
return null;\r
}\r
\r
@Override\r
protected Object doWorks() throws Exception {\r
+ \r
StWin.appendMessage(MSGID+"予約を更新します:"+newRsv.getTitle());\r
- //likeRsvRecorder.setProgressArea(StWin);\r
- if (vals.selectedLikeRsv.getRec().UpdateRdEntry(vals.selectedLikeRsv.getRsv(), newRsv)) {\r
+ \r
+ if ( vals.selectedLikeRsv.getRec().UpdateRdEntry(vals.selectedLikeRsv.getRsv(), newRsv) ) {\r
\r
// 成功したよ\r
MWin.appendMessage(MSGID+"正常に更新できました:"+vals.selectedLikeRsv.getRsv().getTitle()+"("+vals.selectedLikeRsv.getRsv().getCh_name()+")");\r
+ \r
doneReserve = true;\r
\r
// カレンダーを更新する\r
if ( vals.selectedLikeRsv.getRec().getUseCalendar() ) {\r
- for ( HDDRecorder calendar : recorders ) {\r
- if (calendar.getType() == RecType.CALENDAR) {\r
- StWin.appendMessage(MSGID+"カレンダーの予約情報を更新します");\r
- //calendar.setProgressArea(StWin);\r
- if ( ! calendar.UpdateRdEntry(vals.selectedLikeRsv.getRsv(), (jCheckBox_Exec.isSelected())?(newRsv):(null))) {\r
- MWin.appendError(ERRID+"[カレンダー] "+calendar.getErrmsg());\r
- ringBeep();\r
- }\r
+ for ( HDDRecorder calendar : recorders.findInstance(RecType.CALENDAR) ) {\r
+ \r
+ StWin.appendMessage(MSGID+"カレンダーの予約情報を更新します");\r
+ \r
+ if ( ! calendar.UpdateRdEntry(vals.selectedLikeRsv.getRsv(), (jCheckBox_Exec.isSelected())?(newRsv):(null))) {\r
+ MWin.appendError(ERRID+"[カレンダー] "+calendar.getErrmsg());\r
+ ringBeep();\r
}\r
}\r
}\r
else {\r
MWin.appendError(ERRID+"更新に失敗しました:"+vals.selectedLikeRsv.getRsv().getTitle()+"("+vals.selectedLikeRsv.getRsv().getCh_name()+")");\r
}\r
- //\r
+ \r
if ( ! vals.selectedLikeRsv.getRec().getErrmsg().equals("")) {\r
MWin.appendMessage(MSGID+"[追加情報] "+vals.selectedLikeRsv.getRec().getErrmsg());\r
ringBeep();\r
dispose();\r
}\r
\r
+ \r
/*******************************************************************************\r
* ダイアログオープン\r
******************************************************************************/\r
* ※これがあるので、各openでは vals != null チェックの必要がある\r
*/\r
public void setOnlyUpdateExec(boolean b) {\r
+ \r
if (vals == null) vals = new Vals();\r
+ \r
vals.isUpdateOnlyExec = true;\r
jCheckBox_Exec.setSelected(b);\r
}\r
\r
/**\r
- * é¡\9eä¼¼äº\88ç´\84æ\8a½å\87ºæ\9d¡ä»¶ã\81\82ã\82\8aオープン\r
+ * é¡\9eä¼¼äº\88ç´\84æ\8a½å\87ºæ\9d¡ä»¶ã\81ªã\81\97オープン\r
*/\r
- public boolean open(ProgDetailList tvd, String keywordVal, int thresholdVal) {\r
- if (thresholdVal > 0) {\r
- if (vals == null) vals = new Vals();\r
- vals.keyword = keywordVal;\r
- vals.threshold = thresholdVal;\r
- }\r
- return open(tvd);\r
+ public boolean open(ProgDetailList tvd) {\r
+ return open(tvd,null,0);\r
}\r
\r
/**\r
- * é¡\9eä¼¼äº\88ç´\84æ\8a½å\87ºæ\9d¡ä»¶ã\81ªã\81\97オープン\r
+ * é¡\9eä¼¼äº\88ç´\84æ\8a½å\87ºæ\9d¡ä»¶ã\81\82ã\82\8aオープン\r
*/\r
- public boolean open(ProgDetailList tvd) {\r
+ public boolean open(ProgDetailList tvd, String keywordVal, int thresholdVal) {\r
\r
if (recorders.size() == 0) {\r
return false; // レコーダがひとつもないのはやばい\r
return false; // これは「番組情報がありません」だろう\r
}\r
\r
- // 隠しパラメータ\r
+ // 初期パラメータの保存場所\r
if (vals == null) vals = new Vals();\r
+ \r
+ // 番組ID取得ボタン\r
+ getEventIdOnOpen(tvd);\r
+ setGetEventIdButton(tvd.progid,true);\r
+ \r
+ // 選択中のレコーダ\r
+ String myself = getSelectedRecorderId(); // ツールバーで選択されているのはどれかな?\r
+ HDDRecorder myrec = getSelectedRecorderList().get(0); // 先頭を選んでおけばおけ\r
+ \r
+ // 隠しパラメータ\r
vals.hide_tvd = tvd;\r
vals.hide_content_id = tvd.progid;\r
vals.hide_startdatetime = tvd.startDateTime;\r
vals.hide_atreservedlist = false;\r
\r
- // 番組ID取得ボタン\r
- getEventIdOnOpen(tvd);\r
- setGetEventIdButton(vals.hide_content_id,true);\r
+ // 類似予約抽出条件\r
+ if ( thresholdVal > 0 ) {\r
+ vals.keyword = keywordVal;\r
+ vals.threshold = thresholdVal;\r
+ }\r
\r
- return _open(null, null);\r
+ // 類似予約情報\r
+ ReserveList myrsv = null;\r
+ vals.likeRsvList = findLikeReserves(vals.hide_tvd, vals.keyword, vals.threshold);\r
+ if ( env.getGivePriorityToReserved() ) {\r
+ // 類似予約が優先される場合\r
+ if ( vals.likeRsvList.size() > 0 ) {\r
+ LikeReserveItem lr = vals.likeRsvList.getClosest(myself);\r
+ if ( lr != null ) {\r
+ // 選択中のレコーダの類似予約があれば\r
+ myrec = lr.getRec();\r
+ myrsv = lr.getRsv();\r
+ vals.selectedLikeRsv = lr;\r
+ \r
+ if ( myself == HDDRecorder.SELECTED_ALL || myself == HDDRecorder.SELECTED_PICKUP ) {\r
+ // "すべて" or "ピックアップのみ"\r
+ if (debug) System.out.println(DBGID+"選択中のレコーダがないので先頭の類似予約を使う: "+myself);\r
+ }\r
+ }\r
+ else {\r
+ // 類似予約があってもコンボボックスで選択したレコーダのものがない場合は無視\r
+ if (debug) System.out.println(DBGID+"類似予約に選択中のレコーダのものはなかった: "+myself);\r
+ }\r
+ }\r
+ }\r
+ \r
+ // ジャンル別AV設定の確認\r
+ AVs myavs = null;\r
+ if ( myrsv == null ) {\r
+ // 類似予約がないか、あっても優先されない場合\r
+ myavs = getSelectedAVs(vals.hide_tvd.genre, vals.hide_tvd.center, myrec.getRecorderId());\r
+ }\r
+ else {\r
+ MWin.appendMessage(MSGID+"画質・音質は類似予約の設定が継承されます");\r
+ }\r
+ \r
+ // 予約情報\r
+ vals.hide_default_recorder = myrec;\r
+ \r
+ return _open(myself, myrec, myrsv, myavs);\r
+ \r
}\r
\r
/**\r
- * 本体予約一覧からのオープン、または予約ON/OFFメニュー\r
+ * 本体予約一覧からのオープン、または予約ON/OFFメニュー\r
*/\r
public boolean open(String myself, String rsvId) {\r
\r
return false; // ここに来たらバグ\r
}\r
\r
+ // 初期パラメータの保存場所\r
+ if (vals == null) vals = new Vals();\r
+ \r
// 番組ID取得ボタンを無効にする\r
setGetEventIdButton(null,false);\r
\r
+ // 予約情報から番組情報を組み立てる\r
ProgDetailList tvd = new ProgDetailList();\r
CommonUtils.getNextDate(myrsv);\r
tvd.center = myrsv.getCh_name();\r
tvd.genre = ProgGenre.get(myrsv.getRec_genre());\r
tvd.subgenre = ProgSubgenre.get(tvd.genre,myrsv.getRec_subgenre());\r
\r
+ // 予約情報から類似予約情報を組み立てる\r
+ LikeReserveItem likersv = new LikeReserveItem(myrec,myrsv,0);\r
+ \r
// 隠しパラメータ\r
- if (vals == null) vals = new Vals();\r
vals.hide_tvd = tvd;\r
vals.hide_content_id = null;\r
vals.hide_startdatetime = null; // 予約一覧からは番組IDの取得はできないので開始日時は保存しない\r
vals.hide_atreservedlist = true;\r
\r
- return _open(myrec, myrsv);\r
+ // 予約情報\r
+ vals.selectedLikeRsv = likersv; \r
+ vals.likeRsvList = new LikeReserveList();\r
+ vals.likeRsvList.add(vals.selectedLikeRsv);\r
+\r
+ vals.hide_default_recorder = myrec;\r
+\r
+ return _open(myself, myrec, myrsv, null);\r
}\r
\r
/**\r
* ダイアログオープン(共通処理)\r
*/\r
- private boolean _open(HDDRecorder rsvdrec, ReserveList rsvdrsv) {\r
+ private boolean _open(String myself, HDDRecorder myrec, ReserveList myrsv, AVs myavs) {\r
\r
// 予約は行われてないよー\r
doneReserve = false;\r
\r
- String myself = null;\r
- HDDRecorder myrec = null;\r
- ReserveList myrsv = null;\r
- AVs myavs = null;\r
- if ( rsvdrec == null ) {\r
- // レコーダの初期値の確認\r
- myself = getSelectedRecorderOnToolbar(); // ツールバーで選択されているのはどれかな?\r
- if ( myself != null && myself.length() > 0 ) {\r
- myrec = recorders.findInstance(myself).get(0); // "すべて"と"ピックアップ"以外\r
- }\r
- else {\r
- myrec = recorders.get(0); // "すべて"と"ピックアップ"なら先頭を選んでおけばいい\r
- }\r
- \r
- // リセット用データ収集(1)\r
- {\r
- vals.hide_default_recorder = myrec;\r
- }\r
- \r
- // 類似予約の確認\r
- searchLikeRsv(vals.likeRsvList, vals.hide_tvd, vals.keyword, vals.threshold);\r
- \r
- if ( env.getGivePriorityToReserved() && vals.likeRsvList.size() > 0 ) {\r
- // 類似予約が有効かつ存在しているならば\r
- for ( int i=0; i<vals.likeRsvList.size(); i++ ) {\r
- HDDRecorder rec = vals.likeRsvList.getRec(i);\r
- if ( rec.isMyself(myself) ) {\r
- myrec = rec; // 類似予約の中にコンボボックスと一致するものがあったわ\r
- myself = myrec.Myself();\r
- myrsv = vals.likeRsvList.getRsv(i);\r
- vals.selectedLikeRsv = new LikeReserveItem(myrec, myrsv);\r
- break;\r
- }\r
- }\r
- if ( myrsv == null && myself != null && myself.length() != 0 ) {\r
- // 類似予約があってもコンボボックスで選択したレコーダのものがない場合は無視\r
- if (debug) System.out.println(DBGID+"類似予約に選択中のレコーダのものはなかった: "+myself);\r
- }\r
- else {\r
- if ( myrsv == null ) {\r
- // "すべて"と"ピックアップのみ"なら選択できるものはないね\r
- myrec = vals.likeRsvList.getRec(0);\r
- myself = myrec.Myself();\r
- myrsv = vals.likeRsvList.getRsv(0);\r
- vals.selectedLikeRsv = new LikeReserveItem(myrec, myrsv);\r
- if (debug) System.out.println(DBGID+"選択中のレコーダがないので先頭の類似予約を使う: "+myself);\r
- }\r
- }\r
- }\r
- \r
- // ジャンル別AV設定の確認\r
- if ( myrsv == null || ! env.getGivePriorityToReserved() ) {\r
- myavs = getSelectedAVs(vals.hide_tvd.genre, vals.hide_tvd.center, myrec.getRecorderId());\r
- }\r
- else {\r
- MWin.appendMessage(MSGID+"画質・音質は類似予約の設定が継承されます");\r
- }\r
- }\r
- else {\r
- myrec = rsvdrec;\r
- myrsv = rsvdrsv;\r
- myself = myrec.Myself();\r
- vals.selectedLikeRsv = new LikeReserveItem(myrec,myrsv);\r
- vals.likeRsvList.add(vals.selectedLikeRsv);\r
- \r
- // リセット用データ収集(1)\r
- {\r
- vals.hide_default_recorder = myrec;\r
- }\r
- }\r
- \r
if ( vals.hide_content_id == null || ! ContentIdEDCB.isValid(vals.hide_content_id) ) {\r
if ( myrsv != null && ContentIdEDCB.isValid(myrsv.getContentId()) ) {\r
vals.hide_content_id = myrsv.getContentId();\r
// リスナーを全部戻す\r
setEnabledSelectionListeners(true);\r
\r
+ // 選択行が表示されるようにする\r
+ CommonSwingUtils.setSelectedRowShown(jtbl_likersv);\r
+ \r
// リセット用データ収集\r
{\r
vals.isExtended = jCheckBox_spoex_extend.isSelected();\r
vals.isClipped = jCheckBox_OverlapDown2.isSelected();\r
vals.byDateIni = (String) jComboBox_date.getItemAt(0);\r
vals.byWeeklyIni = (String) jComboBox_date.getItemAt(1);\r
- jTextField_Xahh.setText(jTextField_ahh.getText());\r
- jTextField_Xamm.setText(jTextField_amm.getText());\r
- jTextField_Xzhh.setText(jTextField_zhh.getText());\r
- jTextField_Xzmm.setText(jTextField_zmm.getText());\r
+ vals.ahh = jTextField_ahh.getText();\r
+ vals.amm = jTextField_amm.getText();\r
+ vals.zhh = jTextField_zhh.getText();\r
+ vals.zmm = jTextField_zmm.getText();\r
}\r
\r
return(true);\r
if ( vals.likeRsvList.size() > 0 ) {\r
//jButton_update.setForeground(Color.RED);\r
//jButton_update.setEnabled(true);\r
- likersvtable.setEnabled(true);\r
+ jtbl_likersv.setEnabled(true);\r
\r
// 類似予約中の一番近い予約を探す\r
long score = 86400;\r
\r
}\r
else {\r
- likersvtable.setEnabled(false);\r
+ jtbl_likersv.setEnabled(false);\r
}\r
}\r
else {\r
// 本体予約一覧の場合は1個だけ追加すればよい\r
jButton_record.setForeground(Color.GRAY);\r
jButton_record.setEnabled(false);\r
- likersvtable.setEnabled(false);\r
+ jtbl_likersv.setEnabled(false);\r
selectedrow = 0;\r
//vals.likeRsvList.add(new LikeReserveItem(myrec,myrsv));\r
}\r
\r
- ((DefaultTableModel)likersvtable.getModel()).fireTableDataChanged();\r
- ((DefaultTableModel)likersvrowheader.getModel()).fireTableDataChanged();\r
+ ((DefaultTableModel)jtbl_likersv.getModel()).fireTableDataChanged();\r
+ ((DefaultTableModel)jrhdr_likersv.getModel()).fireTableDataChanged();\r
\r
- likersvtable.setRowSelectionInterval(selectedrow,selectedrow);\r
+ jtbl_likersv.setRowSelectionInterval(selectedrow,selectedrow);\r
\r
- setEnabledUpdateButton(likersvtable.getSelectedRow());\r
+ setEnabledUpdateButton(jtbl_likersv.getSelectedRow());\r
}\r
}\r
\r
jCheckBox_Exec.setSelected(myrsv.getExec());\r
jCheckBox_Exec.setForeground((myrsv.getExec())?(Color.BLACK):(Color.RED));\r
}\r
-\r
+ \r
+ // タイトル\r
+ if ( myrsv == null ) {\r
+ jComboBox_title.setSelectedIndex(0);\r
+ }\r
+ else {\r
+ for ( int i=0; i<jComboBox_title.getItemCount(); i++ ) {\r
+ if ( myrsv.getTitle().equals(jComboBox_title.getItemAt(i)) ) {\r
+ jComboBox_title.setSelectedIndex(i);\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ \r
// タイトル自動補完\r
jCheckBox_Autocomplete.setEnabled(myrec.isAutocompleteSupported());\r
if ( myrec.isAutocompleteSupported() ) {\r
jComboBox_date.setSelectedIndex(dateid);\r
}\r
}\r
- \r
+\r
private void setSelectedAVItems(String myrecid, ReserveList myrsv, AVs myavs) {\r
if ( myrsv != null ) {\r
selCBX(jCBXPanel_videorate, myrsv.getRec_mode());\r
val = recorder.getLabel_Autodel();\r
jCBXPanel_autodel.setText((val!=null)?(val):("自動削除"));\r
}\r
+ \r
\r
/*******************************************************************************\r
* 共通部品的な\r
jCBXPanel_videorate.removeItemListener(il_videorateChanged);\r
jCBXPanel_recorder.removeItemListener(il_recorderChanged);\r
jCBXPanel_genre.removeItemListener(il_genreChanged);\r
- likersvtable.removeMouseListener(ml_likelistSelected);\r
+ jtbl_likersv.removeMouseListener(ml_likelistSelected);\r
if ( b ) {\r
// 必要なら追加する\r
jCBXPanel_encoder.addItemListener(il_encoderChanged);\r
jCBXPanel_videorate.addItemListener(il_videorateChanged);\r
jCBXPanel_recorder.addItemListener(il_recorderChanged);\r
jCBXPanel_genre.addItemListener(il_genreChanged);\r
- likersvtable.addMouseListener(ml_likelistSelected);\r
+ jtbl_likersv.addMouseListener(ml_likelistSelected);\r
}\r
}\r
\r
//likersvtable.removeAllItems();\r
}\r
\r
+ \r
/*******************************************************************************\r
* ネットから番組IDを取得する\r
******************************************************************************/\r
return myavs;\r
}\r
\r
+ \r
/*******************************************************************************\r
* ネットから番組IDを取得する\r
******************************************************************************/\r
* @param enabled 番組IDの取得ができないシチュエーション(予約一覧から開くとか)では取得ボタンをfalseに。\r
*/\r
private boolean setGetEventIdButton(String cId, boolean enabled) {\r
+ \r
Integer evid = null;\r
if ( ContentIdEDCB.decodeContentId(cId) ) {\r
evid = ContentIdEDCB.getEvId();\r
return true;\r
}\r
}\r
+ \r
\r
/*******************************************************************************\r
* 自動エンコーダ選択と裏番組抽出\r
}\r
}\r
\r
+ \r
/*******************************************************************************\r
* 放送波種別によって利用できるエンコーダを絞り込んでみる\r
******************************************************************************/\r
}\r
\r
/*******************************************************************************\r
+ * ハンドラ―メソッド\r
+ ******************************************************************************/\r
+ \r
+ /**\r
+ * ツールバーでレコーダの選択イベントが発生\r
+ */\r
+ @Override\r
+ public void valueChanged(HDDRecorderSelectionEvent e) {\r
+ if (debug) System.out.println(DBGID+"recorder selection rised");\r
+ \r
+ // 選択中のレコーダ情報を保存する\r
+ src_recsel = (HDDRecorderSelectable) e.getSource();\r
+ }\r
+ \r
+ private String getSelectedRecorderId() {\r
+ return ( src_recsel!=null ? src_recsel.getSelectedId() : null );\r
+ }\r
+ \r
+ private HDDRecorderList getSelectedRecorderList() {\r
+ return ( src_recsel!=null ? src_recsel.getSelectedList() : null );\r
+ }\r
+ \r
+ private HDDRecorderSelectable src_recsel;\r
+ \r
+ \r
+ /**\r
+ * レコーダ情報の変更イベントが発生\r
+ */\r
+ @Override\r
+ public void stateChanged(HDDRecorderChangeEvent e) {\r
+ }\r
+ \r
+ \r
+ /*******************************************************************************\r
* リスナー\r
******************************************************************************/\r
\r
private final MouseListener ml_likelistSelected = new MouseAdapter() {\r
@Override\r
public void mouseClicked(MouseEvent e) {\r
- if ( ! likersvtable.isEnabled() ) {\r
+ if ( ! jtbl_likersv.isEnabled() ) {\r
return;\r
}\r
if (SwingUtilities.isLeftMouseButton(e)) {\r
if ( changed == ChangedSelector.LIKELIST ) {\r
// 類似予約の選択の場合\r
\r
- int row = likersvtable.getSelectedRow();\r
+ int row = jtbl_likersv.getSelectedRow();\r
\r
if ( row != LIKERSVTABLE_NOTSELECTED ) {\r
LikeReserveItem ll = (LikeReserveItem) vals.likeRsvList.get(row);\r
}\r
}\r
else {\r
+ // "(類似予約選択なし)"\r
myrec = vals.hide_default_recorder;\r
myenc = null;\r
myrsv = null;\r
HDDRecorder rec = vals.likeRsvList.getRec(i);\r
if ( rec.isMyself(myrec.Myself()) ) {\r
myrsv = vals.likeRsvList.getRsv(i);\r
- vals.selectedLikeRsv = new LikeReserveItem(rec, myrsv);\r
+ vals.selectedLikeRsv = new LikeReserveItem(rec, myrsv, 0);\r
break;\r
}\r
}\r
\r
setLabels(myrec);\r
\r
- if ( changed != ChangedSelector.LIKELIST ) {\r
- // ********\r
- //jComboBox_likelist.setSelectedIndex(vals.likeRsvList.indexOf(myrsv));\r
- }\r
- \r
setEnabledSelectionListeners(true);\r
}\r
\r
jComboBox_date.removeItemAt(1);\r
jComboBox_date.insertItemAt(vals.byWeeklyIni, 1);\r
jComboBox_date.setSelectedIndex(n);\r
- jTextField_ahh.setText(jTextField_Xahh.getText());\r
- jTextField_amm.setText(jTextField_Xamm.getText());\r
- jTextField_zhh.setText(jTextField_Xzhh.getText());\r
- jTextField_zmm.setText(jTextField_Xzmm.getText());\r
+ jTextField_ahh.setText(vals.ahh);\r
+ jTextField_amm.setText(vals.amm);\r
+ jTextField_zhh.setText(vals.zhh);\r
+ jTextField_zmm.setText(vals.zmm);\r
}\r
};\r
\r
CommonSwingUtils.putComponentOn(jPane_title, getJComboBox_date(), DATE_WIDTH, PARTS_HEIGHT, hmx+=SEP_WIDTH_NARROW, y+PARTS_HEIGHT);\r
\r
hmx += DATE_WIDTH+SEP_WIDTH;\r
- CommonSwingUtils.putComponentOn(jPane_title, getJLabel_ahh("開始時刻"), 75, PARTS_HEIGHT, hmx, y);\r
+ CommonSwingUtils.putComponentOn(jPane_title, getJButton_aTime("開始時刻"), 75, PARTS_HEIGHT, hmx, y);\r
CommonSwingUtils.putComponentOn(jPane_title, getJTextField_ahh(), 40, PARTS_HEIGHT, hmx+=SEP_WIDTH_NARROW, y+PARTS_HEIGHT);\r
CommonSwingUtils.putComponentOn(jPane_title, getJLabel_asep(":"), 10, PARTS_HEIGHT, hmx+=40, y+PARTS_HEIGHT);\r
CommonSwingUtils.putComponentOn(jPane_title, getJTextField_amm(), 40, PARTS_HEIGHT, hmx+=10, y+PARTS_HEIGHT);\r
CommonSwingUtils.putComponentOn(jPane_title, getJButton_amm_down(), 20, 12, hmx, y+PARTS_HEIGHT+13);\r
\r
hmx += 20+SEP_WIDTH_NARROW;\r
- CommonSwingUtils.putComponentOn(jPane_title, getJLabel_zhh("終了時刻"), 75, PARTS_HEIGHT, hmx, y);\r
+ CommonSwingUtils.putComponentOn(jPane_title, getJButton_zTime("終了時刻"), 75, PARTS_HEIGHT, hmx, y);\r
CommonSwingUtils.putComponentOn(jPane_title, getJTextField_zhh(), 40, PARTS_HEIGHT, hmx+=SEP_WIDTH_NARROW, y+PARTS_HEIGHT);\r
CommonSwingUtils.putComponentOn(jPane_title, getJLabel_zsep(":"), 10, PARTS_HEIGHT, hmx+=40, y+PARTS_HEIGHT);\r
CommonSwingUtils.putComponentOn(jPane_title, getJTextField_zmm(), 40, PARTS_HEIGHT, hmx+=10, y+PARTS_HEIGHT);\r
jCheckBox_Autocomplete.setSelected(env.getUseAutocomplete());\r
}\r
\r
- getJTextField_Xahh();\r
- getJTextField_Xamm();\r
- getJTextField_Xzhh();\r
- getJTextField_Xzmm();\r
- \r
- /*\r
- y += PARTS_HEIGHT+2;\r
- hmx = 210;\r
- CommonSwingUtils.putComponentOn(jPane_title, getJTextField_Xahh(), 40, 21, hmx, y+2);\r
- CommonSwingUtils.putComponentOn(jPane_title, getJLabel_Xasep(":"), 10, 21, hmx+=40, y+2);\r
- CommonSwingUtils.putComponentOn(jPane_title, getJTextField_Xamm(), 40, 21, hmx+=10, y+2);\r
- CommonSwingUtils.putComponentOn(jPane_title, getJTextField_Xzhh(), 40, 21, hmx+=70, y+2);\r
- CommonSwingUtils.putComponentOn(jPane_title, getJLabel_Xzsep(":"), 10, 21, hmx+=40, y+2);\r
- CommonSwingUtils.putComponentOn(jPane_title, getJTextField_Xzmm(), 40, 21, hmx+=10, y+2);\r
- CommonSwingUtils.putComponentOn(jPane_title, getJButton_Xreset(""), 20, 15, hmx+=42, y+5);\r
- */\r
-\r
y += PARTS_HEIGHT*2+SEP_WIDTH_NARROW;\r
\r
CommonSwingUtils.putComponentOn(jPane_title, getJLabel_detail("番組詳細"), 100, PARTS_HEIGHT, x, y);\r
int y = 0;\r
int x = SEP_WIDTH_NARROW;\r
\r
- CommonSwingUtils.putComponentOn(jPane_recsetting, jCBXPanel_recorder = new JComboBoxPanel("レコーダ",RECORDER_WIDTH,RECORDER_WIDTH), RECORDER_WIDTH+5, COMBO_HEIGHT, x, y);\r
- CommonSwingUtils.putComponentOn(jPane_recsetting, jCBXPanel_encoder = new JComboBoxPanel("エンコーダ",ENCODER_WIDTH,ENCODER_WIDTH), ENCODER_WIDTH+5, COMBO_HEIGHT, x+=RECORDER_WIDTH+5+SEP_WIDTH, y);\r
+ CommonSwingUtils.putComponentOn(jPane_recsetting, jCBXPanel_recorder = new JComboBoxPanel("レコーダ",RECORDER_WIDTH,RECORDER_WIDTH), RECORDER_WIDTH+5, COMBO_HEIGHT+SEP_HEIGHT, x, y);\r
+ CommonSwingUtils.putComponentOn(jPane_recsetting, jCBXPanel_encoder = new JComboBoxPanel("エンコーダ",ENCODER_WIDTH,ENCODER_WIDTH), ENCODER_WIDTH+5, COMBO_HEIGHT+SEP_HEIGHT, x+=RECORDER_WIDTH+5+SEP_WIDTH, y);\r
CommonSwingUtils.putComponentOn(jPane_recsetting, getJLabel_encoderemptywarn(""), LABEL_WIDTH, PARTS_HEIGHT, x+=ENCODER_WIDTH+5+SEP_WIDTH+5, y+PARTS_HEIGHT);\r
+ \r
+ Font fo = jCBXPanel_recorder.getJComboBox().getFont();\r
+ Font fn = fo.deriveFont(fo.getStyle()|Font.BOLD);\r
+ jCBXPanel_recorder.getJComboBox().setFont(fn);\r
+ jCBXPanel_recorder.getJComboBox().setForeground(Color.BLUE);\r
+ jCBXPanel_encoder.getJComboBox().setFont(fn);\r
+ jCBXPanel_encoder.getJComboBox().setForeground(Color.BLUE);\r
\r
// ポップアップした時に追加される幅\r
jCBXPanel_recorder.addPopupWidth(100);\r
jCBXPanel_encoder.addPopupWidth(100);\r
\r
- y += COMBO_HEIGHT+SEP_HEIGHT*2;\r
+ y += (COMBO_HEIGHT+SEP_HEIGHT)+SEP_HEIGHT;\r
x = SEP_WIDTH_NARROW;\r
CommonSwingUtils.putComponentOn(jPane_recsetting, jCBXPanel_genre = new JComboBoxPanel("ジャンル",110,150), COMBO_WIDTH_WIDE, COMBO_HEIGHT, x, y);\r
CommonSwingUtils.putComponentOn(jPane_recsetting, jCBXPanel_subgenre = new JComboBoxPanel("サブジャンル",110,150), COMBO_WIDTH_WIDE, COMBO_HEIGHT, x+=(COMBO_WIDTH_WIDE+SEP_WIDTH), y);\r
if (jPane_likersv == null ) {\r
jPane_likersv = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);\r
//jPane_likersv.setBorder(new LineBorder(Color.BLACK, 1));\r
- jPane_likersv.setRowHeaderView(likersvrowheader = new LikeRsvRowHeader());\r
+ jPane_likersv.setRowHeaderView(jrhdr_likersv = new LikeRsvRowHeader());\r
jPane_likersv.setViewportView(getLikeRsvTable());\r
\r
Dimension dh = new Dimension(LRT_HEADER_WIDTH,0);\r
return(jLabel_encoderemptywarn);\r
}\r
\r
- private JLabel getJLabel_ahh(String s)\r
- {\r
- if (jLabel_ahh == null) {\r
- jLabel_ahh = new JLabel();\r
- jLabel_ahh.setText(s);\r
+ private JButton getJButton_aTime(String s) {\r
+ if (jButton_aTime == null) {\r
+ jButton_aTime = new JButton();\r
+ jButton_aTime.setText(s);\r
+ \r
+ jButton_aTime.addMouseListener(ml_resetStartEnd);\r
}\r
- return(jLabel_ahh);\r
+ return(jButton_aTime);\r
}\r
\r
- private JLabel getJLabel_zhh(String s)\r
- {\r
- if (jLabel_zhh == null) {\r
- jLabel_zhh = new JLabel();\r
- jLabel_zhh.setText(s);\r
+ private JButton getJButton_zTime(String s) {\r
+ if (jButton_zTime == null) {\r
+ jButton_zTime = new JButton();\r
+ jButton_zTime.setText(s);\r
+ \r
+ jButton_zTime.addMouseListener(ml_resetStartEnd);\r
}\r
- return(jLabel_zhh);\r
+ return(jButton_zTime);\r
}\r
\r
private JComboBox getJComboBox_title() {\r
}\r
\r
// 開始時刻\r
- private JTextField getJTextField_Xahh() {\r
- if (jTextField_Xahh == null) {\r
- jTextField_Xahh = new JTextField();\r
- jTextField_Xahh.setEditable(false);\r
- jTextField_Xahh.setForeground(Color.PINK);\r
- jTextField_Xahh.setBorder(null);\r
- jTextField_Xahh.setHorizontalAlignment(JTextField.CENTER);\r
- }\r
- return jTextField_Xahh;\r
- }\r
- private JTextField getJTextField_Xamm() {\r
- if (jTextField_Xamm == null) {\r
- jTextField_Xamm = new JTextField();\r
- jTextField_Xamm.setEditable(false);\r
- jTextField_Xamm.setForeground(Color.PINK);\r
- jTextField_Xamm.setBorder(null);\r
- jTextField_Xamm.setHorizontalAlignment(JTextField.CENTER);\r
- }\r
- return jTextField_Xamm;\r
- }\r
- private JLabel getJLabel_Xasep(String s)\r
- {\r
- if (jLabel_Xasep == null) {\r
- jLabel_Xasep = new JLabel(s);\r
- }\r
- return(jLabel_Xasep);\r
- }\r
- // 開始時刻\r
private JTextField getJTextField_ahh() {\r
if (jTextField_ahh == null) {\r
jTextField_ahh = new JTextField();\r
}\r
\r
//\r
- private JTextField getJTextField_Xzhh() {\r
- if (jTextField_Xzhh == null) {\r
- jTextField_Xzhh = new JTextField();\r
- jTextField_Xzhh.setEditable(false);\r
- jTextField_Xzhh.setForeground(Color.PINK);\r
- jTextField_Xzhh.setBorder(null);\r
- jTextField_Xzhh.setHorizontalAlignment(JTextField.CENTER);\r
- }\r
- return jTextField_Xzhh;\r
- }\r
- private JTextField getJTextField_Xzmm() {\r
- if (jTextField_Xzmm == null) {\r
- jTextField_Xzmm = new JTextField();\r
- jTextField_Xzmm.setEditable(false);\r
- jTextField_Xzmm.setForeground(Color.PINK);\r
- jTextField_Xzmm.setBorder(null);\r
- jTextField_Xzmm.setHorizontalAlignment(JTextField.CENTER);\r
- }\r
- return jTextField_Xzmm;\r
- }\r
- private JLabel getJLabel_Xzsep(String s)\r
- {\r
- if (jLabel_Xzsep == null) {\r
- jLabel_Xzsep = new JLabel(s);\r
- }\r
- return(jLabel_Xzsep);\r
- }\r
- //\r
private JTextField getJTextField_zhh() {\r
if (jTextField_zhh == null) {\r
jTextField_zhh = new JTextField();\r
return jButton_zmm_down;\r
}\r
\r
- //\r
- private JButton getJButton_Xreset(String s) {\r
- if (jButton_Xreset == null) {\r
- jButton_Xreset = new JButton(s);\r
- //\r
- jButton_Xreset.addMouseListener(ml_resetStartEnd);\r
- }\r
- return(jButton_Xreset);\r
- }\r
- \r
private LikeRsvTable getLikeRsvTable() {\r
- if (likersvtable == null) {\r
+ if (jtbl_likersv == null) {\r
\r
// カラム名の初期化\r
ArrayList<String> cola = new ArrayList<String>();\r
// テーブルの基本的な設定\r
DefaultTableModel model = new DefaultTableModel(colname, 0);\r
\r
- likersvtable = new LikeRsvTable(model);\r
- likersvtable.setAutoResizeMode(JNETable.AUTO_RESIZE_OFF);\r
+ jtbl_likersv = new LikeRsvTable(model);\r
+ jtbl_likersv.setAutoResizeMode(JNETable.AUTO_RESIZE_OFF);\r
\r
// 各カラムの幅を設定する\r
- DefaultTableColumnModel columnModel = (DefaultTableColumnModel)likersvtable.getColumnModel();\r
+ DefaultTableColumnModel columnModel = (DefaultTableColumnModel)jtbl_likersv.getColumnModel();\r
TableColumn column = null;\r
for ( LikeRsvColumn lc : LikeRsvColumn.values() ) {\r
if ( lc.getIniWidth() < 0 ) {\r
}\r
}\r
\r
- return likersvtable;\r
+ return jtbl_likersv;\r
}\r
\r
private JButton getJButton_record(String s) {\r