protected abstract void showPopupForTraceProgram(\r
final JComponent comp,\r
final ProgDetailList tvd, final String keyword, final int threshold,\r
- final int x, final int y, final int h\r
+ final int x, final int y, final String clickedDateTime\r
);\r
\r
/**\r
}\r
\r
/**\r
+ * ツールバーから過去ログへのジャンプ\r
+ */\r
+ public boolean jumpToPassed(String passed) {\r
+ \r
+ // ページャーは効くよ\r
+ if ( env.isPagerEnabled() ) {\r
+ setPagerEnabled(true);\r
+ }\r
+ \r
+ // タイマーは止める\r
+ stopTimer();\r
+ \r
+ GregorianCalendar c = CommonUtils.getCalendar(passed);\r
+ String adate = CommonUtils.getDate(c);\r
+ \r
+ // 指定日付に移動して放送局の位置を確認する\r
+ TVProgramIterator pli = redrawByDateWithCenter(null,adate);\r
+ if ( pli == null ) {\r
+ // どちらにもない\r
+ MWin.appendError(ERRID+"ジャンプ先の日付がみつかりません: "+adate);\r
+ ringBeep();\r
+ return false;\r
+ }\r
+ \r
+ // 新聞形式に移動\r
+ if ( ! isTabSelected(MWinTab.PAPER) ) {\r
+ setSelectedTab(MWinTab.PAPER);\r
+ }\r
+ \r
+ return true;\r
+ }\r
+ \r
+ /**\r
* リスト形式・本体予約一覧からの目的の番組へジャンプ\r
*/\r
public boolean jumpToBangumi(String center, String startdt) {\r
\r
// 日付群\r
GregorianCalendar c = CommonUtils.getCalendar(startdt);\r
+ int hour = c.get(Calendar.HOUR_OF_DAY);\r
+ int min = c.get(Calendar.MINUTE);\r
+ \r
String adate = CommonUtils.getDate(c);\r
- String atime = CommonUtils.getTime(c);\r
String adate529 = CommonUtils.getDate529(c,true);\r
\r
+ \r
// 指定日付に移動して放送局の位置を確認する\r
TVProgramIterator pli = redrawByDateWithCenter(center,adate529);\r
if ( pli == null ) {\r
if ( ! isTabSelected(MWinTab.PAPER) ) {\r
setSelectedTab(MWinTab.PAPER);\r
}\r
- \r
+ \r
+ /*\r
+ * マウスカーソル移動\r
+ */\r
+ \r
// 横の列\r
int crindex = pli.getIndex(center);\r
if ( crindex == -1 ) {\r
}\r
\r
// 縦の列\r
- int h = 0;\r
- int m = 0;\r
int y = 0;\r
- Matcher ma = Pattern.compile("^(\\d\\d):(\\d\\d)$").matcher(atime);\r
- if (ma.find()) {\r
- h = Integer.valueOf(ma.group(1));\r
- m = Integer.valueOf(ma.group(2));\r
- }\r
if (adate529.equals(adate)) {\r
- if (h < TIMEBAR_START) {\r
- h = TIMEBAR_START;\r
- m = 0;\r
+ if (hour < TIMEBAR_START) {\r
+ hour = TIMEBAR_START;\r
+ min = 0;\r
}\r
}\r
else {\r
- h += 24;\r
+ hour += 24;\r
}\r
- y = Math.round((float)((h-TIMEBAR_START)*60+m)*bounds.getPaperHeightMultiplier()*paperHeightZoom);\r
+ y = Math.round((float)((hour-TIMEBAR_START)*60+min)*bounds.getPaperHeightMultiplier()*paperHeightZoom);\r
\r
// 新聞面を移動する\r
{\r
String passedCritDateTime = CommonUtils.getCritDateTime(env.getDisplayPassedReserve());\r
\r
// ツールバーで選択されている実レコーダ\r
- String myself = ( env.getEffectComboToPaper() ) ? (getSelectedRecorderId()) : (null);\r
+ String myself = ( env.getEffectComboToPaper() ) ? (getSelectedMySelf()) : (null);\r
\r
// 予約枠の描画\r
drawReserveBorders(date, Center, q, topDateTime, bottomDateTime, passedCritDateTime, myself);\r
return -1;\r
}\r
\r
+ /**\r
+ * 番組枠のクリック位置を日時に変換する\r
+ */\r
+ private String getClickedDateTime(ProgDetailList tvd, int clikedY) {\r
+ \r
+ String clickedDateTime = null;\r
+ \r
+ if ( clikedY >= 0 && tvd.start.length() != 0 ) {\r
+ // 新聞形式ならクリック位置の日時を算出する\r
+ GregorianCalendar cala = CommonUtils.getCalendar(tvd.startDateTime);\r
+ cala.add(Calendar.MINUTE, Math.round(((float)clikedY)/(bounds.getPaperHeightMultiplier()*paperHeightZoom)));\r
+ clickedDateTime = CommonUtils.getDateTime(cala);\r
+ }\r
+ \r
+ return clickedDateTime;\r
+ }\r
+ \r
\r
/*******************************************************************************\r
* ハンドラ―メソッド\r
updateReserveBorder(null);\r
}\r
\r
- private String getSelectedRecorderId() {\r
- return ( src_recsel!=null ? src_recsel.getSelectedId() : null );\r
+ private String getSelectedMySelf() {\r
+ return ( src_recsel!=null ? src_recsel.getSelectedMySelf() : null );\r
}\r
\r
private HDDRecorderList getSelectedRecorderList() {\r
if (e.getButton() == MouseEvent.BUTTON3) {\r
if (e.getClickCount() == 1) {\r
// 右シングルクリックでメニューの表示\r
- showPopupForTraceProgram(b, tvd, tvd.title, TraceKey.noFazzyThreshold, p.x, p.y, e.getY());\r
+ String clicked = getClickedDateTime(tvd, e.getY());\r
+ showPopupForTraceProgram(b, tvd, tvd.title, TraceKey.noFazzyThreshold, p.x, p.y, clicked);\r
}\r
}\r
else if (e.getButton() == MouseEvent.BUTTON1) {\r
rD.dispose();\r
}\r
\r
- if (rD.isReserved()) {\r
+ if (rD.isSucceededReserve()) {\r
updateReserveDisplay();\r
updateReserveBorder(tvd.center);\r
}\r