• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

タイニー番組ナビゲータ本体


Commit MetaInfo

Revisiónc409a527d82549ab568299872e8a95216d1782c1 (tree)
Tiempo2018-08-22 21:29:43
AutorMasahiko Kimura <mkimura@u01....>
CommiterMasahiko Kimura

Log Message

1.7 (2018/8/22):
1. DIGA DMR-BZT710などで録画結果が取得できない問題の対応
2. [新聞形式]予約バーの色や幅をカスタマイズできるようにする

Cambiar Resumen

Diferencia incremental

--- a/TinyBannavi/src/tainavi/AbsPaperColorsDialog.java
+++ b/TinyBannavi/src/tainavi/AbsPaperColorsDialog.java
@@ -40,14 +40,14 @@ import tainavi.TVProgram.ProgGenre;
4040 abstract class AbsPaperColorsDialog extends JEscCancelDialog {
4141
4242 private static final long serialVersionUID = 1L;
43-
43+
4444 private static boolean debug = false;
4545
46-
46+
4747 /*******************************************************************************
4848 * 抽象メソッド
4949 ******************************************************************************/
50-
50+
5151 protected abstract Env getEnv();
5252 protected abstract Bounds getBoundsEnv();
5353 protected abstract PaperColorsMap getPaperColorMap();
@@ -59,66 +59,66 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
5959 protected abstract void updatePaperBounds(Env ec, Bounds bc);
6060 protected abstract void updatePaperRepaint();
6161
62-
62+
6363 /*******************************************************************************
6464 * 呼び出し元から引き継いだもの
6565 ******************************************************************************/
66-
66+
6767 private final Env origenv = getEnv();
6868 private final Bounds origbnd = getBoundsEnv();
6969 private final PaperColorsMap origpc = getPaperColorMap();
70-
70+
7171 private final VWColorChooserDialog ccwin = getCCWin();
72-
72+
7373 private final Env tmpenv = new Env();
7474 private final Bounds tmpbnd = new Bounds();
7575 private final PaperColorsMap tmppc = new PaperColorsMap();
76-
77-
76+
77+
7878 /*******************************************************************************
7979 * 定数
8080 ******************************************************************************/
8181
8282 private static final int STEPBY = 10;
83-
83+
8484 private static final int SEP_WIDTH = 10;
8585 private static final int SEP_WIDTH_NARROW = 2;
8686 private static final int SEP_HEIGHT = 5;
8787 private static final int SEP_HEIGHT_NARROW = 2;
88-
88+
8989 //private static final int PARTS_WIDTH = 900;
9090 private static final int PARTS_HEIGHT = 30;
91-
91+
9292 private static final int LABEL_WIDTH = 125;
9393 private static final int ITEM_WIDTH = 250;
9494 private static final int TITLE_WIDTH = LABEL_WIDTH+ITEM_WIDTH;
95-
95+
9696 private static final int BUTTON_WIDTH = 100;
97-
97+
9898 private static final int PANEL_WIDTH = LABEL_WIDTH+ITEM_WIDTH+SEP_WIDTH*2;
9999 private static int PANEL_HEIGHT = 0;
100-
100+
101101 private static final int TABLE_WIDTH = PANEL_WIDTH-SEP_WIDTH*2;
102102 private static final int TABLE_HEIGHT = 260;
103-
103+
104104 private static final int STYLETABLE_HEIGHT = 80;
105-
105+
106106 private static final int TIMEBAR_WIDTH = TABLE_WIDTH/4;
107-
108-
107+
108+
109109 /*******************************************************************************
110110 * 部品
111111 ******************************************************************************/
112-
112+
113113 private JPanel jPanel = null;
114-
114+
115115 private JTabbedPane jTabbedPane = null;
116-
116+
117117 private JPanel jPanel_buttons = null;
118118 private JButton jButton_preview = null;
119119 private JButton jButton_update = null;
120120 private JButton jButton_cancel = null;
121-
121+
122122 // ジャンル別背景色のタブ
123123 private JPanel jPanel_pColors = null;
124124 private JScrollPane jScrollPane_list = null;
@@ -128,9 +128,13 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
128128 private JCCLabel jLabel_timebar2 = null;
129129 private JCCLabel jLabel_timebar3 = null;
130130 private JCCLabel jLabel_timebar4 = null;
131+ private JCCLabel jLabel_restimebar1 = null;
132+ private JCCLabel jLabel_restimebar2 = null;
133+ private JCCLabel jLabel_restimebar3 = null;
134+ private JCCLabel jLabel_restimebar4 = null;
131135 private JCheckBoxPanel jCBP_highlight = null;
132136 private JCCLabel jLabel_highlight = null;
133-
137+
134138 // フォント設定のタブ
135139 private JPanel jPanel_fonts = null;
136140 private JCheckBoxPanel jCBP_showStart = null;
@@ -145,12 +149,13 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
145149 private JScrollPane jScrollPane_detailFontStyle = null;
146150 private JSliderPanel jSP_detailTab = null;
147151 private JComboBoxPanel jCBX_aaMode = null;
148-
152+
149153 // サイズのタブ
150154 private JPanel jPanel_bounds = null;
151155 private JSliderPanel jSP_width = null;
152156 private JSliderPanel jSP_height = null;
153157 private JSliderPanel jSP_timebarPosition = null;
158+ private JSliderPanel jSP_restimebar = null;
154159 private JCCLabel jLabel_execon = null;
155160 private JCCLabel jLabel_execoff = null;
156161 private JCCLabel jLabel_pickup = null;
@@ -159,12 +164,12 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
159164 private JCCLabel jLabel_matchedKeywordBorderColor = null;
160165 private JSliderPanel jSP_matchedBorderThickness = null;
161166 //private JCheckBoxPanel jCBP_lightProgramView = null;
162-
163-
167+
168+
164169 /*******************************************************************************
165170 * コンストラクタ
166171 ******************************************************************************/
167-
172+
168173 public AbsPaperColorsDialog() {
169174 //
170175 super();
@@ -180,56 +185,56 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
180185
181186 this.setContentPane(getJPanel());
182187 this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); // 閉じるときはキャンセルボタンを使ってクレ
183-
188+
184189 this.pack();
185190 this.setResizable(false);
186-
191+
187192 this.setTitle("新聞形式の表示設定");
188193 }
189194
190-
195+
191196 /*******************************************************************************
192197 * アクション
193198 ******************************************************************************/
194-
199+
195200 private void doPreview() {
196201 getColors(tmpenv,tmppc);
197202 getFonts(tmpenv);
198203 getBounds(tmpenv,tmpbnd);
199-
204+
200205 updatePaperColors(tmpenv,tmppc);
201206 updatePaperFonts(tmpenv);
202207 updatePaperBounds(tmpenv,tmpbnd);
203-
208+
204209 updatePaperRepaint();
205210 }
206-
211+
207212 private void doUpdate() {
208213 getColors(origenv,origpc);
209214 getFonts(origenv);
210215 getBounds(origenv,origbnd);
211-
216+
212217 updatePaperFonts(origenv);
213218 updatePaperColors(origenv,origpc);
214219 updatePaperBounds(origenv,origbnd);
215-
220+
216221 updatePaperRepaint();
217-
222+
218223 origpc.save();
219224 origenv.save();
220225 origbnd.save();
221226
222227 setVisible(false);
223228 }
224-
229+
225230 @Override
226231 protected void doCancel() {
227232 updatePaperColors(origenv,origpc);
228233 updatePaperFonts(origenv);
229234 updatePaperBounds(origenv,origbnd);
230-
235+
231236 updatePaperRepaint();
232-
237+
233238 setVisible(false);
234239 }
235240
@@ -262,7 +267,7 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
262267 }
263268 super.setVisible(b);
264269 }
265-
270+
266271 //
267272 private void getColors(Env toe, PaperColorsMap top) {
268273 for ( int row=0; row<jTable_list.getRowCount(); row++ ) {
@@ -274,10 +279,16 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
274279 toe.setTimebarColor2(jLabel_timebar2.getChoosed());
275280 toe.setTimebarColor3(jLabel_timebar3.getChoosed());
276281 toe.setTimebarColor4(jLabel_timebar4.getChoosed());
282+
283+ toe.setResTimebarColor1(jLabel_restimebar1.getChoosed());
284+ toe.setResTimebarColor2(jLabel_restimebar2.getChoosed());
285+ toe.setResTimebarColor3(jLabel_restimebar3.getChoosed());
286+ toe.setResTimebarColor4(jLabel_restimebar4.getChoosed());
287+
277288 toe.setEnableHighlight(jCBP_highlight.isSelected());
278289 toe.setHighlightColor(jLabel_highlight.getChoosed());
279290 }
280-
291+
281292 //
282293 private void getFonts(Env to) {
283294 to.setShowStart(jCBP_showStart.isSelected());
@@ -302,12 +313,13 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
302313 }
303314 return fsa;
304315 }
305-
316+
306317 //
307318 private void getBounds(Env toe, Bounds tob) {
308319 tob.setBangumiColumnWidth(jSP_width.getValue());
309320 tob.setPaperHeightMultiplier(jSP_height.getValue()*(float)STEPBY/(float)60);
310321 tob.setTimelinePosition(jSP_timebarPosition.getValue());
322+ toe.setResTimebarWidth(jSP_restimebar.getValue());
311323 toe.setExecOnFontColor(jLabel_execon.getChoosed());
312324 toe.setExecOffFontColor(jLabel_execoff.getChoosed());
313325 toe.setPickedColor(jLabel_pickup.getChoosed());
@@ -318,9 +330,9 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
318330 //
319331 tob.setShowMatchedBorder(origbnd.getShowMatchedBorder());
320332 }
321-
322-
323-
333+
334+
335+
324336 /*******************************************************************************
325337 * コンポーネント
326338 ******************************************************************************/
@@ -334,7 +346,7 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
334346 }
335347 return jPanel;
336348 }
337-
349+
338350 //
339351 private JTabbedPane getJTabbedPane() {
340352 if (jTabbedPane == null) {
@@ -345,22 +357,22 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
345357 }
346358 return jTabbedPane;
347359 }
348-
360+
349361 //
350362 private JPanel getJPanel_buttons() {
351363 if (jPanel_buttons == null) {
352364 jPanel_buttons = new JPanel();
353365
354366 jPanel_buttons.setLayout(new SpringLayout());
355-
367+
356368 int y = SEP_HEIGHT;
357369 int x = (PANEL_WIDTH - (BUTTON_WIDTH*3+SEP_WIDTH*2))/2;
358370 CommonSwingUtils.putComponentOn(jPanel_buttons, getJButton_preview("プレビュー"), BUTTON_WIDTH, PARTS_HEIGHT, x, y);
359371 CommonSwingUtils.putComponentOn(jPanel_buttons, getJButton_update("登録"), BUTTON_WIDTH, PARTS_HEIGHT, x+=BUTTON_WIDTH+SEP_WIDTH, y);
360372 CommonSwingUtils.putComponentOn(jPanel_buttons, getJButton_cancel("キャンセル"), BUTTON_WIDTH, PARTS_HEIGHT, x+=BUTTON_WIDTH+SEP_WIDTH, y);
361-
373+
362374 y += PARTS_HEIGHT+SEP_HEIGHT;
363-
375+
364376 jPanel_buttons.setPreferredSize(new Dimension(PANEL_WIDTH, y));
365377 }
366378 return jPanel_buttons;
@@ -369,7 +381,7 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
369381 if (jButton_preview == null) {
370382 jButton_preview = new JButton();
371383 jButton_preview.setText(s);
372-
384+
373385 jButton_preview.addActionListener(new ActionListener() {
374386 @Override
375387 public void actionPerformed(ActionEvent e) {
@@ -383,7 +395,7 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
383395 if (jButton_update == null) {
384396 jButton_update = new JButton();
385397 jButton_update.setText(s);
386-
398+
387399 jButton_update.addActionListener(new ActionListener() {
388400 @Override
389401 public void actionPerformed(ActionEvent e) {
@@ -397,7 +409,7 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
397409 if (jButton_cancel == null) {
398410 jButton_cancel = new JButton();
399411 jButton_cancel.setText(s);
400-
412+
401413 jButton_cancel.addActionListener(new ActionListener() {
402414 @Override
403415 public void actionPerformed(ActionEvent e) {
@@ -407,25 +419,25 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
407419 }
408420 return jButton_cancel;
409421 }
410-
411-
422+
423+
412424 /*
413- * ジャンル別背景色のタブ
425+ * ジャンル別背景色のタブ
414426 */
415-
427+
416428 private JPanel getJPanel_pColors() {
417429 if (jPanel_pColors == null) {
418430 jPanel_pColors = new JPanel();
419431
420432 jPanel_pColors.setLayout(new SpringLayout());
421-
433+
422434 int y = SEP_HEIGHT_NARROW;
423435 int x = SEP_WIDTH;
424-
436+
425437 CommonSwingUtils.putComponentOn(jPanel_pColors, new JTitleLabel("ジャンル別背景色"), TITLE_WIDTH, PARTS_HEIGHT, SEP_WIDTH_NARROW, y);
426438 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
427439 CommonSwingUtils.putComponentOn(jPanel_pColors, getJScrollPane_list(), TABLE_WIDTH, TABLE_HEIGHT, SEP_WIDTH, y);
428-
440+
429441 y += (TABLE_HEIGHT+SEP_HEIGHT);
430442 CommonSwingUtils.putComponentOn(jPanel_pColors, new JTitleLabel("タイムバーの色"), TITLE_WIDTH, PARTS_HEIGHT, SEP_WIDTH_NARROW, y);
431443 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
@@ -433,17 +445,26 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
433445 CommonSwingUtils.putComponentOn(jPanel_pColors, jLabel_timebar2 = new JCCLabel("12~17", origenv.getTimebarColor2(),true,this,ccwin), TIMEBAR_WIDTH, PARTS_HEIGHT, x+=TIMEBAR_WIDTH, y);
434446 CommonSwingUtils.putComponentOn(jPanel_pColors, jLabel_timebar3 = new JCCLabel("18~23", origenv.getTimebarColor3(),true,this,ccwin), TIMEBAR_WIDTH, PARTS_HEIGHT, x+=TIMEBAR_WIDTH, y);
435447 CommonSwingUtils.putComponentOn(jPanel_pColors, jLabel_timebar4 = new JCCLabel("24~5", origenv.getTimebarColor4(),true,this,ccwin), TIMEBAR_WIDTH, PARTS_HEIGHT, x+=TIMEBAR_WIDTH, y);
436-
448+
449+ y += (PARTS_HEIGHT+SEP_HEIGHT);
450+ CommonSwingUtils.putComponentOn(jPanel_pColors, new JTitleLabel("予約バーの色"), TITLE_WIDTH, PARTS_HEIGHT, SEP_WIDTH_NARROW, y);
451+ y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
452+ x = SEP_WIDTH;
453+ CommonSwingUtils.putComponentOn(jPanel_pColors, jLabel_restimebar1 = new JCCLabel("1", origenv.getResTimebarColor1(),true,this,ccwin), TIMEBAR_WIDTH, PARTS_HEIGHT, x, y);
454+ CommonSwingUtils.putComponentOn(jPanel_pColors, jLabel_restimebar2 = new JCCLabel("2", origenv.getResTimebarColor2(),true,this,ccwin), TIMEBAR_WIDTH, PARTS_HEIGHT, x+=TIMEBAR_WIDTH, y);
455+ CommonSwingUtils.putComponentOn(jPanel_pColors, jLabel_restimebar3 = new JCCLabel("最大", origenv.getResTimebarColor3(),true,this,ccwin), TIMEBAR_WIDTH, PARTS_HEIGHT, x+=TIMEBAR_WIDTH, y);
456+ CommonSwingUtils.putComponentOn(jPanel_pColors, jLabel_restimebar4 = new JCCLabel(">最大", origenv.getResTimebarColor4(),true,this,ccwin), TIMEBAR_WIDTH, PARTS_HEIGHT, x+=TIMEBAR_WIDTH, y);
457+
437458 y += (PARTS_HEIGHT+SEP_HEIGHT);
438459 CommonSwingUtils.putComponentOn(jPanel_pColors, new JTitleLabel("マウスオーバー時のハイライト色"), TITLE_WIDTH, PARTS_HEIGHT, SEP_WIDTH_NARROW, y);
439460 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
440461 CommonSwingUtils.putComponentOn(jPanel_pColors, jCBP_highlight = new JCheckBoxPanel("有効",LABEL_WIDTH/2), LABEL_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);
441462 CommonSwingUtils.putComponentOn(jPanel_pColors, jLabel_highlight = new JCCLabel("ハイライト",origenv.getHighlightColor(),true,this,ccwin), ITEM_WIDTH, PARTS_HEIGHT, LABEL_WIDTH+SEP_WIDTH, y);
442-
463+
443464 y += (PARTS_HEIGHT+SEP_HEIGHT*2);
444-
465+
445466 if (PANEL_HEIGHT < y) PANEL_HEIGHT = y;
446-
467+
447468 jPanel_pColors.setPreferredSize(new Dimension(PANEL_WIDTH, PANEL_HEIGHT));
448469 }
449470 return jPanel_pColors;
@@ -466,10 +487,16 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
466487 jLabel_timebar2.setChoosed(origenv.getTimebarColor2());
467488 jLabel_timebar3.setChoosed(origenv.getTimebarColor3());
468489 jLabel_timebar4.setChoosed(origenv.getTimebarColor4());
490+
491+ jLabel_restimebar1.setChoosed(origenv.getResTimebarColor1());
492+ jLabel_restimebar2.setChoosed(origenv.getResTimebarColor2());
493+ jLabel_restimebar3.setChoosed(origenv.getResTimebarColor3());
494+ jLabel_restimebar4.setChoosed(origenv.getResTimebarColor4());
495+
469496 jCBP_highlight.setSelected(origenv.getEnableHighlight());
470497 jLabel_highlight.setChoosed(origenv.getHighlightColor());
471498 }
472-
499+
473500 private JScrollPane getJScrollPane_list() {
474501 if (jScrollPane_list == null) {
475502 jScrollPane_list = new JScrollPane();
@@ -506,15 +533,15 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
506533 //
507534 JTable t = (JTable) e.getSource();
508535 Point p = e.getPoint();
509-
536+
510537 int col = t.convertColumnIndexToModel(t.columnAtPoint(p));
511538 if (col == 1) {
512539 int row = t.convertRowIndexToModel(t.rowAtPoint(p));
513-
540+
514541 ccwin.setColor(CommonUtils.str2color((String) t.getValueAt(row,1)));
515542 CommonSwingUtils.setLocationCenter(jd,ccwin);
516543 ccwin.setVisible(true);
517-
544+
518545 if (ccwin.getSelectedColor() != null ) {
519546 //
520547 tmppc.put((TVProgram.ProgGenre) t.getValueAt(row,0), ccwin.getSelectedColor());
@@ -528,13 +555,13 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
528555 }
529556 return(jTable_list);
530557 }
531-
532-
533-
558+
559+
560+
534561 /*
535- * フォントのタブ
562+ * フォントのタブ
536563 */
537-
564+
538565 /**
539566 * フォントの選択肢を設定
540567 */
@@ -544,7 +571,7 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
544571 for ( String fn : vwfont.getNames() ) {
545572 jCBX_titleFont.addItem(fn);
546573 jCBX_detailFont.addItem(fn);
547-
574+
548575 //if (debug) System.err.println("[DEBUG] font name="+fn);
549576 }
550577 }
@@ -553,59 +580,59 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
553580 jPanel_fonts = new JPanel();
554581
555582 jPanel_fonts.setLayout(new SpringLayout());
556-
583+
557584 int y = SEP_HEIGHT_NARROW;
558-
585+
559586 CommonSwingUtils.putComponentOn(jPanel_fonts, new JTitleLabel("開始時刻欄の設定"), TITLE_WIDTH, PARTS_HEIGHT, SEP_HEIGHT_NARROW, y);
560-
587+
561588 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
562589 CommonSwingUtils.putComponentOn(jPanel_fonts, jCBP_showStart = new JCheckBoxPanel("表示する",LABEL_WIDTH), TITLE_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);
563590 //jCBP_showStart.addActionListener(fal);
564-
591+
565592 y += (PARTS_HEIGHT+SEP_HEIGHT);
566593 CommonSwingUtils.putComponentOn(jPanel_fonts, new JTitleLabel("番組名のフォント設定"), TITLE_WIDTH, PARTS_HEIGHT, SEP_WIDTH_NARROW, y);
567-
594+
568595 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
569596 CommonSwingUtils.putComponentOn(jPanel_fonts, jCBX_titleFont = new JComboBoxPanel("フォント",LABEL_WIDTH,ITEM_WIDTH,true), LABEL_WIDTH+ITEM_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);
570-
597+
571598 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
572599 CommonSwingUtils.putComponentOn(jPanel_fonts, jSP_titleFontSize = new JSliderPanel("サイズ",LABEL_WIDTH,6,24,ITEM_WIDTH), LABEL_WIDTH+ITEM_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);
573-
600+
574601 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
575602 CommonSwingUtils.putComponentOn(jPanel_fonts, new JLabel("文字色"), LABEL_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);
576603 CommonSwingUtils.putComponentOn(jPanel_fonts, jLabel_titleFontColor = new JCCLabel("番組名", origenv.getTitleFontColor(),false,this,ccwin), ITEM_WIDTH, PARTS_HEIGHT, SEP_WIDTH+LABEL_WIDTH, y);
577-
604+
578605 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
579606 CommonSwingUtils.putComponentOn(jPanel_fonts, new JLabel("スタイル"), LABEL_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);
580607 CommonSwingUtils.putComponentOn(jPanel_fonts, jScrollPane_titleFontStyle = getJScrollPane_fontstyle(), ITEM_WIDTH, STYLETABLE_HEIGHT, SEP_WIDTH+LABEL_WIDTH, y);
581-
608+
582609 y += (STYLETABLE_HEIGHT+10);
583610 CommonSwingUtils.putComponentOn(jPanel_fonts, new JTitleLabel("番組詳細のフォント設定"), TITLE_WIDTH, PARTS_HEIGHT, SEP_WIDTH_NARROW, y);
584-
611+
585612 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
586613 CommonSwingUtils.putComponentOn(jPanel_fonts, jCBP_showDetail = new JCheckBoxPanel("表示する",LABEL_WIDTH), TITLE_WIDTH+ITEM_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);
587-
614+
588615 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
589616 CommonSwingUtils.putComponentOn(jPanel_fonts, jCBX_detailFont = new JComboBoxPanel("フォント",LABEL_WIDTH,ITEM_WIDTH,true), LABEL_WIDTH+ITEM_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);
590-
617+
591618 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
592619 CommonSwingUtils.putComponentOn(jPanel_fonts, jSP_detailFontSize = new JSliderPanel("サイズ",LABEL_WIDTH,6,24,ITEM_WIDTH), LABEL_WIDTH+ITEM_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);
593-
620+
594621 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
595622 CommonSwingUtils.putComponentOn(jPanel_fonts, new JLabel("文字色"), LABEL_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);
596623 CommonSwingUtils.putComponentOn(jPanel_fonts, jLabel_detailFontColor = new JCCLabel("番組詳細", origenv.getDetailFontColor(),false,this,ccwin), ITEM_WIDTH, PARTS_HEIGHT, SEP_WIDTH+LABEL_WIDTH, y);
597-
624+
598625 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
599626 CommonSwingUtils.putComponentOn(jPanel_fonts, new JLabel("スタイル"), LABEL_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);
600627 CommonSwingUtils.putComponentOn(jPanel_fonts, jScrollPane_detailFontStyle = getJScrollPane_fontstyle(), ITEM_WIDTH, STYLETABLE_HEIGHT, SEP_WIDTH+LABEL_WIDTH, y);
601-
628+
602629 y += (STYLETABLE_HEIGHT+SEP_HEIGHT_NARROW);
603630 CommonSwingUtils.putComponentOn(jPanel_fonts, jSP_detailTab = new JSliderPanel("左余白",LABEL_WIDTH,0,24,ITEM_WIDTH), LABEL_WIDTH+ITEM_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);
604-
631+
605632 y += (PARTS_HEIGHT+SEP_HEIGHT*3);
606-
633+
607634 if (PANEL_HEIGHT < y) PANEL_HEIGHT = y;
608-
635+
609636 jPanel_fonts.setPreferredSize(new Dimension(PANEL_WIDTH, PANEL_HEIGHT));
610637 }
611638 return jPanel_fonts;
@@ -648,7 +675,7 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
648675 }
649676 }
650677 }
651-
678+
652679 private JScrollPane getJScrollPane_fontstyle() {
653680 JScrollPane jScrollPane = new JScrollPane();
654681 jScrollPane.setViewportView(getJTable_fontstyle());
@@ -657,11 +684,11 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
657684 return jScrollPane;
658685 }
659686 private JNETable getJTable_fontstyle() {
660-
687+
661688 // ヘッダの設定
662689 String[] colname = {"チェック", "スタイル"};
663690 int[] colwidth = {50,ITEM_WIDTH-50};
664-
691+
665692 //
666693 DefaultTableModel model = new DefaultTableModel(colname, 0);
667694 JNETable jTable = new JNETable(model, false) {
@@ -680,10 +707,10 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
680707 column = columnModel.getColumn(i);
681708 column.setPreferredWidth(colwidth[i]);
682709 }
683-
710+
684711 // にゃーん
685712 jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
686-
713+
687714 // エディタに手を入れる
688715 DefaultCellEditor editor = new DefaultCellEditor(new JCheckBox() {
689716
@@ -720,7 +747,7 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
720747 }
721748 };
722749 jTable.getColumn("チェック").setCellRenderer(renderer);
723-
750+
724751 //
725752 for ( JTXTButton.FontStyle fs : JTXTButton.FontStyle.values() ) {
726753 Object[] data = { false,fs };
@@ -728,54 +755,57 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
728755 }
729756 return jTable;
730757 }
731-
758+
732759 /*
733- * サイズのタブ
760+ * サイズのタブ
734761 */
735-
762+
736763 private JPanel getJPanel_bounds() {
737764 if (jPanel_bounds == null) {
738765 jPanel_bounds = new JPanel();
739766
740767 jPanel_bounds.setLayout(new SpringLayout());
741-
768+
742769 int y = SEP_HEIGHT_NARROW;
743-
770+
744771 CommonSwingUtils.putComponentOn(jPanel_bounds, new JTitleLabel("サイズの設定"), TITLE_WIDTH, PARTS_HEIGHT, SEP_WIDTH_NARROW, y);
745-
772+
746773 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
747774 CommonSwingUtils.putComponentOn(jPanel_bounds, jSP_width = new JSliderPanel("幅",LABEL_WIDTH,50,300,ITEM_WIDTH), LABEL_WIDTH+ITEM_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);
748-
775+
749776 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
750777 CommonSwingUtils.putComponentOn(jPanel_bounds, jSP_height = new JSliderPanel("高さ(pt/H)",LABEL_WIDTH,30,600,STEPBY,ITEM_WIDTH), LABEL_WIDTH+ITEM_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);
751-
778+
752779 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
753780 CommonSwingUtils.putComponentOn(jPanel_bounds, jSP_timebarPosition = new JSliderPanel("現在時刻線(分)",LABEL_WIDTH,1,180,ITEM_WIDTH), LABEL_WIDTH+ITEM_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);
754781
782+ y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
783+ CommonSwingUtils.putComponentOn(jPanel_bounds, jSP_restimebar= new JSliderPanel("予約バー幅",LABEL_WIDTH,0,12,ITEM_WIDTH), LABEL_WIDTH+ITEM_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);
784+
755785 y += (PARTS_HEIGHT+SEP_HEIGHT);
756786 CommonSwingUtils.putComponentOn(jPanel_bounds, new JTitleLabel("予約枠の設定"), TITLE_WIDTH, PARTS_HEIGHT, SEP_WIDTH_NARROW, y);
757-
787+
758788 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
759789 CommonSwingUtils.putComponentOn(jPanel_bounds, jLabel_execon = new JCCLabel("実行ONの文字色",origenv.getExecOnFontColor(),false,this,ccwin), ITEM_WIDTH, PARTS_HEIGHT, SEP_WIDTH+LABEL_WIDTH, y);
760-
790+
761791 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
762792 CommonSwingUtils.putComponentOn(jPanel_bounds, jLabel_execoff = new JCCLabel("実行OFFの文字色",origenv.getExecOffFontColor(),false,this,ccwin), ITEM_WIDTH, PARTS_HEIGHT, SEP_WIDTH+LABEL_WIDTH, y);
763793
764794 y += (PARTS_HEIGHT+SEP_HEIGHT);
765795 CommonSwingUtils.putComponentOn(jPanel_bounds, new JTitleLabel("ピックアップ枠の設定"), TITLE_WIDTH, PARTS_HEIGHT, SEP_WIDTH_NARROW, y);
766-
796+
767797 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
768798 CommonSwingUtils.putComponentOn(jPanel_bounds, jLabel_pickup = new JCCLabel("ピックアップの枠色",origenv.getPickedColor(),true,this,ccwin), ITEM_WIDTH, PARTS_HEIGHT, SEP_WIDTH+LABEL_WIDTH, y);
769-
799+
770800 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
771801 CommonSwingUtils.putComponentOn(jPanel_bounds, jLabel_pickupFont = new JCCLabel("ピックアップの文字色",origenv.getPickedFontColor(),false,this,ccwin), ITEM_WIDTH, PARTS_HEIGHT, SEP_WIDTH+LABEL_WIDTH, y);
772-
802+
773803 y += (PARTS_HEIGHT+SEP_HEIGHT);
774804 CommonSwingUtils.putComponentOn(jPanel_bounds, new JTitleLabel("予約待機枠の設定"), TITLE_WIDTH, PARTS_HEIGHT, SEP_WIDTH_NARROW, y);
775-
805+
776806 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
777807 CommonSwingUtils.putComponentOn(jPanel_bounds, jSP_matchedBorderThickness = new JSliderPanel("太さ",LABEL_WIDTH,1,16,ITEM_WIDTH), LABEL_WIDTH+ITEM_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);
778-
808+
779809 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
780810 CommonSwingUtils.putComponentOn(jPanel_bounds, jLabel_matchedBorderColor = new JCCLabel("予約待機枠(番組追跡)",origenv.getMatchedBorderColor(),true,this,ccwin), ITEM_WIDTH, PARTS_HEIGHT, SEP_WIDTH+LABEL_WIDTH, y);
781811
@@ -784,17 +814,17 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
784814
785815 y += (PARTS_HEIGHT+SEP_HEIGHT);
786816 CommonSwingUtils.putComponentOn(jPanel_bounds, new JTitleLabel("フォントのアンチエイリアス設定"), TITLE_WIDTH, PARTS_HEIGHT, SEP_WIDTH_NARROW, y);
787-
817+
788818 y += (PARTS_HEIGHT+SEP_HEIGHT_NARROW);
789819 CommonSwingUtils.putComponentOn(jPanel_bounds, jCBX_aaMode = new JComboBoxPanel("アンチエイリアス",LABEL_WIDTH,ITEM_WIDTH,true), LABEL_WIDTH+ITEM_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);
790820 for ( AAMode aam : AAMode.values() ) {
791821 jCBX_aaMode.addItem(aam);
792822 }
793-
823+
794824 y += (PARTS_HEIGHT+SEP_HEIGHT*2);
795-
825+
796826 if (PANEL_HEIGHT < y) PANEL_HEIGHT = y;
797-
827+
798828 jPanel_bounds.setPreferredSize(new Dimension(PANEL_WIDTH, PANEL_HEIGHT));
799829 }
800830 return jPanel_bounds;
@@ -804,6 +834,7 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
804834 jSP_width.setValue(origbnd.getBangumiColumnWidth());
805835 jSP_height.setValue(Math.round(origbnd.getPaperHeightMultiplier()*(float)60/(float)STEPBY));
806836 jSP_timebarPosition.setValue(origbnd.getTimelinePosition());
837+ jSP_restimebar.setValue(origenv.getResTimebarWidth());
807838 jLabel_execon.setChoosed(origenv.getExecOnFontColor());
808839 jLabel_execon.setBackground(Color.RED);
809840 jLabel_execoff.setChoosed(origenv.getExecOffFontColor());
@@ -823,13 +854,13 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
823854 }
824855 */
825856 }
826-
857+
827858 /*******************************************************************************
828859 * 独自部品
829860 ******************************************************************************/
830-
861+
831862 private class JTitleLabel extends JLabel {
832-
863+
833864 private static final long serialVersionUID = 1L;
834865
835866 public JTitleLabel(String s) {
@@ -838,5 +869,5 @@ abstract class AbsPaperColorsDialog extends JEscCancelDialog {
838869 //this.setFont(this.getFont().deriveFont(this.getFont().getStyle()|Font.BOLD));
839870 }
840871 }
841-
872+
842873 }
--- a/TinyBannavi/src/tainavi/AbsPaperView.java
+++ b/TinyBannavi/src/tainavi/AbsPaperView.java
@@ -190,7 +190,6 @@ public abstract class AbsPaperView extends JPanel implements TickTimerListener,H
190190
191191 //
192192 private static final String TUNERLABEL_PICKUP = "PICKUP";
193- private static final int RESTIME_WIDTH = 4; // 予約枠バーの幅
194193
195194 // 定数ではないが
196195
@@ -378,7 +377,7 @@ public abstract class AbsPaperView extends JPanel implements TickTimerListener,H
378377 Rectangle r = this.getBounds();
379378 r.x = 0;
380379 r.y = timeline+3-height;
381- r.width = bounds.getTimebarColumnWidth()+RESTIME_WIDTH;
380+ r.width = bounds.getTimebarColumnWidth()+env.getResTimebarWidth();
382381 r.height = height;
383382 this.setBounds(r);
384383
@@ -1290,7 +1289,7 @@ public abstract class AbsPaperView extends JPanel implements TickTimerListener,H
12901289 }
12911290
12921291 Dimension d = jLayeredPane_space_side_view2.getMaximumSize();
1293- d.width = bounds.getTimebarColumnWidth()+RESTIME_WIDTH;
1292+ d.width = bounds.getTimebarColumnWidth()+env.getResTimebarWidth();
12941293 d.height = (int) Math.ceil(24*phm60);
12951294 jLayeredPane_space_side_view2.setPreferredSize(d);
12961295 jLayeredPane_space_side_view2.updateUI();
@@ -2089,6 +2088,7 @@ public abstract class AbsPaperView extends JPanel implements TickTimerListener,H
20892088 }
20902089
20912090 // 座標系
2091+ JRTLabel.setColumnWidth(env.getResTimebarWidth());
20922092 JRTLabel.setHeightMultiplier(bounds.getPaperHeightMultiplier() * paperHeightZoom);
20932093
20942094 // 表示範囲
@@ -2153,8 +2153,14 @@ public abstract class AbsPaperView extends JPanel implements TickTimerListener,H
21532153 String start = item.getStart();
21542154 String end = item.getEnd();
21552155 int count = item.getCount();
2156- rb.setBorder(new LineBorder( count > tnum ? Color.MAGENTA : count == tnum ? Color.RED :
2157- count > 1 ? Color.GREEN : Color.BLUE, RESTIME_WIDTH/2));
2156+ int cno = count > tnum ? 4 : count == tnum ? 3 : count > 1 ? 2 : 1;
2157+ rb.setColorNo(cno);
2158+ Color c =
2159+ cno == 4 ? env.getResTimebarColor4() :
2160+ cno == 3 ? env.getResTimebarColor3() :
2161+ cno == 2 ? env.getResTimebarColor2() : env.getResTimebarColor1();
2162+ rb.setBackground(c);
2163+ rb.setBorder(new LineBorder(c, env.getResTimebarWidth()/2+1));
21582164
21592165 int row = 0;
21602166 int length = 0;
@@ -2182,7 +2188,7 @@ public abstract class AbsPaperView extends JPanel implements TickTimerListener,H
21822188 continue;
21832189 }
21842190
2185- rb.setVBounds(bounds.getTimebarColumnWidth(), row, RESTIME_WIDTH, length);
2191+ rb.setVBounds(bounds.getTimebarColumnWidth(), row, length);
21862192 rb.setVisible(true);
21872193
21882194 jLayeredPane_space_side_view.add(rb);
@@ -3047,6 +3053,17 @@ public abstract class AbsPaperView extends JPanel implements TickTimerListener,H
30473053 }
30483054 }
30493055 }
3056+
3057+ // 予約タイムバーの色
3058+ for ( JRTLabel lb : resTimeBorders ) {
3059+ int cno = lb.getColorNo();
3060+ Color c =
3061+ cno == 4 ? ec.getResTimebarColor4() :
3062+ cno == 3 ? ec.getResTimebarColor3() :
3063+ cno == 2 ? ec.getResTimebarColor2() : ec.getResTimebarColor1();
3064+ lb.setBackground(c);
3065+ lb.setBorder(new LineBorder(c, ec.getResTimebarWidth()/2+1));
3066+ }
30503067 }
30513068
30523069 // サイズの変更
@@ -3076,6 +3093,7 @@ public abstract class AbsPaperView extends JPanel implements TickTimerListener,H
30763093 }
30773094
30783095 Dimension d = jLayeredPane_space_side_view.getPreferredSize();
3096+ d.width = bc.getTimebarColumnWidth() + ec.getResTimebarWidth();
30793097 d.height = viewh;
30803098 jLayeredPane_space_side_view.setPreferredSize(d);
30813099 }
@@ -3146,6 +3164,7 @@ public abstract class AbsPaperView extends JPanel implements TickTimerListener,H
31463164
31473165 // 予約時間枠の位置変更
31483166 {
3167+ JRTLabel.setColumnWidth(ec.getResTimebarWidth());
31493168 JRTLabel.setHeightMultiplier(phm);
31503169
31513170 for (JRTLabel tb : resTimeBorders){
--- a/TinyBannavi/src/tainavi/Env.java
+++ b/TinyBannavi/src/tainavi/Env.java
@@ -18,27 +18,27 @@ public class Env {
1818 /*******************************************************************************
1919 * 定数とか
2020 ******************************************************************************/
21-
21+
2222 // 変更できないフォルダ
2323 public static final String binDir = "bin";
2424 private static final String metainfDir = binDir+File.separator+"META-INF";
2525 private static final String services = metainfDir+File.separator+"services";
26-
26+
2727 public static final String envDir = "env";
2828 private static final String envFile = envDir+File.separator+"envs.xml";
2929 private static final String envText = envDir+File.separator+"envs.txt";
3030 private static final String lafFile = envDir+File.separator+"laf.txt";
3131 private static final String GTKRC = envDir+File.separator+"_gtkrc-2.0";
32-
32+
3333 public static final String skinDir = "skin";
34-
34+
3535 private static final int PAGER_DEFAULT = 7;
36-
36+
3737 private static final Color RSVDLINE_COLOR = new Color(204,153,255);
3838 private static final Color PICKEDLINE_COLOR = new Color(51,255,0);
3939 private static final Color CURRENTLINE_COLOR = new Color(240,120,120);
4040 private static final Color MATCHEDKEYWORD_COLOR = new Color(51,102,255);
41-
41+
4242 private static final Color TIMEBAR_COLOR_06_12 = new Color(180,180,180);
4343 private static final Color TIMEBAR_COLOR_12_18 = new Color(160,160,160);
4444 private static final Color TIMEBAR_COLOR_18_24 = new Color(140,140,140);
@@ -52,45 +52,51 @@ public class Env {
5252 private static final Color DETAIL_COLOR = Color.DARK_GRAY;
5353 private static final Color MATCHBORDER_COLOR = Color.RED;
5454 private static final Color ITERATIONITEM_COLOR = Color.GRAY;
55-
55+
5656 private static final Color TUNERSHORT_COLOR = new Color(255,255,0);
5757 private static final Color RECORDED_COLOR = new Color(204,153,255);
58-
58+
5959 private static final String USER_AGENT = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1";
60-
60+
61+ private static final Color RESTIMEBAR_COLOR_1 = new Color(0,0,255); // BLUE
62+ private static final Color RESTIMEBAR_COLOR_2 = new Color(0,255,0); // GREEN;
63+ private static final Color RESTIMEBAR_COLOR_3 = new Color(255,0,0); // RED;
64+ private static final Color RESTIMEBAR_COLOR_4 = new Color(255,0,255); // MAGENTA;
65+ private static final int RESTIMEBAR_WIDTH = 4;
66+
6167 // この記述は…どうなの?
6268 private static final String TV_SITE = "Dimora";
6369 private static final String CS_SITE = "スカパー!";
6470 private static final String CS2_SITE = "webザテレビジョン(CSデジ)";
6571 private static final String RADIO_SITE = "";
66-
72+
6773 private static final String MSGID = "[環境] ";
6874 private static final String ERRID = "[ERROR]"+MSGID;
69-
75+
7076 public static String[] SHUTDOWN_COMMANDS = { "shutdown /s /t 0", "sudo shutdown -h now" };
71-
77+
7278 // ダブルクリック時の動作
7379 public static enum DblClkCmd {
74-
80+
7581 SHOWRSVDIALOG ("予約ダイアログを開く"),
7682 JUMPTOPAPER ("番組欄へジャンプする"),
7783 JUMPTOWEB ("ブラウザで番組詳細のページを開く");
78-
84+
7985 private String name;
80-
86+
8187 private DblClkCmd(String name) {
8288 this.name = name;
8389 }
84-
90+
8591 @Override
8692 public String toString() {
8793 return(name);
8894 }
89-
95+
9096 public String getId() {
9197 return(super.toString());
9298 }
93-
99+
94100 public static DblClkCmd get(String id) {
95101 for ( DblClkCmd dcc : DblClkCmd.values() ) {
96102 if ( dcc.getId().equals(id) ) {
@@ -106,15 +112,15 @@ public class Env {
106112 JPG ("JPEG","jpg"),
107113 PNG ("PNG","png"),
108114 BMP ("BMP","bmp");
109-
115+
110116 private String name;
111117 private String ext;
112-
118+
113119 private SnapshotFmt(String name, String ext) {
114120 this.name = name;
115121 this.ext = ext;
116122 }
117-
123+
118124 @Override
119125 public String toString() {
120126 return(name);
@@ -123,8 +129,8 @@ public class Env {
123129 public String getExtension() {
124130 return(ext);
125131 }
126-
127-
132+
133+
128134 public String getId() {
129135 return(super.toString());
130136 }
@@ -138,7 +144,7 @@ public class Env {
138144 return null;
139145 }
140146 }
141-
147+
142148 public static enum AAMode {
143149 OFF ("無効","off",RenderingHints.VALUE_TEXT_ANTIALIAS_OFF),
144150 ON ("有効","on",RenderingHints.VALUE_TEXT_ANTIALIAS_ON),
@@ -148,26 +154,26 @@ public class Env {
148154 HBGR ("サブピク横方向BGR", "lcd_hbgr",RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HBGR),
149155 VRGB ("サブピク縦方向RGB", "lcd_vrgb",RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_VRGB),
150156 VBGR ("サブピク縦方向BGR", "lcd_vbgr",RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_VBGR);
151-
157+
152158 private String name;
153159 private String mode;
154160 private Object hint;
155-
161+
156162 private AAMode(String name, String mode, Object hint) {
157163 this.name = name;
158164 this.mode = mode;
159165 this.hint = hint;
160166 }
161-
167+
162168 @Override
163169 public String toString() {
164170 return name;
165171 }
166-
172+
167173 public String getId() {
168174 return(super.toString());
169175 }
170-
176+
171177 public String getMode() {
172178 return mode;
173179 }
@@ -175,7 +181,7 @@ public class Env {
175181 public Object getHint() {
176182 return hint;
177183 }
178-
184+
179185 public static AAMode get(String id) {
180186 for ( AAMode aam : AAMode.values() ) {
181187 if ( aam.getId().equals(id) ) {
@@ -185,7 +191,7 @@ public class Env {
185191 return null;
186192 }
187193 }
188-
194+
189195 // 自動アップデートの間隔
190196 public static enum UpdateOn {
191197 DISABLE ("無効にする", -1),
@@ -196,15 +202,15 @@ public class Env {
196202 EVERY4DAY ("4日おきに実行する", 4),
197203 EVERY5DAY ("5日おきに実行する", 5),
198204 EVERY6DAY ("6日おきに実行する", 6);
199-
205+
200206 private String name;
201207 private int interval;
202-
208+
203209 private UpdateOn(String name, int interval) {
204210 this.name = name;
205211 this.interval = interval;
206212 }
207-
213+
208214 @Override
209215 public String toString() {
210216 return this.name;
@@ -217,7 +223,7 @@ public class Env {
217223 public int getInterval() {
218224 return this.interval;
219225 }
220-
226+
221227 public static UpdateOn get(String id) {
222228 for ( UpdateOn uo : UpdateOn.values() ) {
223229 if ( uo.getId().equals(id) ) {
@@ -227,23 +233,23 @@ public class Env {
227233 return null;
228234 }
229235 }
230-
236+
231237 /*******************************************************************************
232238 * 隠し
233239 ******************************************************************************/
234-
240+
235241 private static boolean firstinstance = true; // 起動後最初の呼び出しか(2インスタンス目以降は実行しない)
236-
242+
237243 // CHソートを有効にするかどうか
238244 public boolean getChSortEnabled() { return chSortEnabled; }
239245 public void setChSortEnabled(boolean b) { chSortEnabled = b; }
240246 private boolean chSortEnabled = true;
241-
242-
247+
248+
243249 /*******************************************************************************
244250 * メンバ
245251 ******************************************************************************/
246-
252+
247253 /*
248254 * リスト形式関連の設定
249255 */
@@ -350,7 +356,7 @@ public class Env {
350356 /*
351357 * 新聞形式関連の設定
352358 */
353-
359+
354360 // 描画速度優先
355361 public boolean getDrawcacheEnable() { return drawcacheEnable; }
356362 public void setDrawcacheEnable(boolean b) { drawcacheEnable = b; }
@@ -406,6 +412,29 @@ public class Env {
406412 public Color getTimebarColor4() { return timebarColor4; }
407413 public void setTimebarColor4(Color c) { timebarColor4 = c; }
408414 private Color timebarColor4 = TIMEBAR_COLOR_24_06;
415+
416+ // 予約タイムバーの色設定
417+ public Color getResTimebarColor1() { return restimebarColor1; }
418+ public void setResTimebarColor1(Color c) { restimebarColor1 = c; }
419+ private Color restimebarColor1 = RESTIMEBAR_COLOR_1;
420+
421+ public Color getResTimebarColor2() { return restimebarColor2; }
422+ public void setResTimebarColor2(Color c) { restimebarColor2 = c; }
423+ private Color restimebarColor2 = RESTIMEBAR_COLOR_2;
424+
425+ public Color getResTimebarColor3() { return restimebarColor3; }
426+ public void setResTimebarColor3(Color c) { restimebarColor3 = c; }
427+ private Color restimebarColor3 = RESTIMEBAR_COLOR_3;
428+
429+ public Color getResTimebarColor4() { return restimebarColor4; }
430+ public void setResTimebarColor4(Color c) { restimebarColor4 = c; }
431+ private Color restimebarColor4 = RESTIMEBAR_COLOR_4;
432+
433+ // 予約タイムバーの幅設定
434+ public int getResTimebarWidth() { return restimebarWidth; }
435+ public void setResTimebarWidth(int n) { restimebarWidth = n; }
436+ private int restimebarWidth = RESTIMEBAR_WIDTH;
437+
409438 // 予約枠の色設定
410439 public Color getExecOnFontColor() { return execOnFontColor; }
411440 public void setExecOnFontColor(Color c) { execOnFontColor = c; }
@@ -497,11 +526,11 @@ public class Env {
497526 public boolean getPrintSnapshot() { return printSnapshot; }
498527 public void setPrintSnapshot(boolean b) { printSnapshot = b; }
499528 private boolean printSnapshot = false;
500-
529+
501530 /*
502531 * リスト・新聞形式共通
503532 */
504-
533+
505534 // 実行ONのエントリのみ予約マークを表示する
506535 public boolean getDisplayOnlyExecOnEntry() { return displayOnlyExecOnEntry; }
507536 public void setDisplayOnlyExecOnEntry(boolean b) { displayOnlyExecOnEntry = b; }
@@ -539,11 +568,11 @@ public class Env {
539568 public ArrayList<TextValueSet> getTvCommand() { return tvCommand; }
540569 public void setTvCommand(ArrayList<TextValueSet> al) { tvCommand = al; }
541570 private ArrayList<TextValueSet> tvCommand = new ArrayList<TextValueSet>();
542-
571+
543572 /*
544573 * Web番組表対応
545574 */
546-
575+
547576 // 29時をまたいで同タイトルが続いている場合は同一番組とみなす
548577 public boolean getContinueTomorrow() { return continueTomorrow; }
549578 public void setContinueTomorrow(boolean b) { continueTomorrow = b; }
@@ -630,13 +659,13 @@ public class Env {
630659 public int getPrepPassedProgramCount() { return prepPassedProgramCount; }
631660 public void setPrepPassedProgramCount(int w) { prepPassedProgramCount = w; }
632661 private int prepPassedProgramCount = 4;
633-
634-
635-
662+
663+
664+
636665 /*
637666 * レコーダ対応
638667 */
639-
668+
640669 // 常に予約詳細情報を取得する
641670 @Deprecated
642671 public boolean getForceGetRdReserveDetails() { return forceGetRdReserveDetails; }
@@ -676,8 +705,8 @@ public class Env {
676705 public void setRecordedSaveScope(int n) { recordedSaveScope = n; }
677706 public int getRecordedSaveScope() { return recordedSaveScope; }
678707 private int recordedSaveScope = 90;
679-
680-
708+
709+
681710 //
682711 @Deprecated
683712 public boolean getDontCalendarWorkWithNull() { return dontCalendarWorkWithNull; }
@@ -685,12 +714,12 @@ public class Env {
685714 public void setDontCalendarWorkWithNull(boolean b) { dontCalendarWorkWithNull = b; }
686715 @Deprecated
687716 boolean dontCalendarWorkWithNull = true;
688-
717+
689718 /*
690719 * 予約
691720 */
692-
693- // スポーツ延長の長さ(分)
721+
722+ // スポーツ延長の長さ(分)
694723 public String getSpoexLength() { return spoexLength; }
695724 public void setSpoexLength(String l) { spoexLength = l; }
696725 private String spoexLength = "90";
@@ -754,11 +783,11 @@ public class Env {
754783 public boolean getUseAutocomplete() { return useAutocomplete; }
755784 public void setUseAutocomplete(boolean b) { useAutocomplete = b; }
756785 private boolean useAutocomplete = false;
757-
786+
758787 /*
759788 * その他の設定
760789 */
761-
790+
762791 // 起動時にアップデートを確認する
763792 public boolean getCheckUpdate() { return checkUpdate; }
764793 public void setCheckUpdate(boolean b) { checkUpdate= b; }
@@ -786,20 +815,20 @@ public class Env {
786815 public String getLookAndFeel() { return lookAndFeel; }
787816 public void setLookAndFeel(String n) { lookAndFeel = n; }
788817 private String lookAndFeel = "";
789- // 表示フォント
818+ // 表示フォント
790819 public String getFontName() { return fontName; }
791820 public void setFontName(String f) { fontName = f; }
792821 private String fontName = "";
793822 public int getFontSize() { return fontSize; }
794823 public void setFontSize(int f) { fontSize = f; }
795824 private int fontSize = 12;
796-
825+
797826 public boolean getUseGTKRC() { return useGTKRC; }
798827 public void setUseGTKRC(boolean b) { useGTKRC = b; }
799828 private boolean useGTKRC = true;
800-
829+
801830 private int fontSizeAdjustGTK = 3;
802-
831+
803832 // 【Win】ファイルオープンにrundll32を使用する
804833 public boolean getUseRundll32() { return useRundll32; }
805834 public void setUseRundll32(boolean b) { useRundll32 = b; }
@@ -808,16 +837,16 @@ public class Env {
808837 public boolean getDebug() { return debug; }
809838 public void setDebug(boolean b) { debug = b; }
810839 private boolean debug = false;
811-
812-
840+
841+
813842 /*******************************************************************************
814843 * 作ったけど使ってないもの
815844 ******************************************************************************/
816-
845+
817846 /*
818847 * フォルダの設定
819848 */
820-
849+
821850 // キャッシュ格納場所
822851 public String getProgDir() { return progDir; }
823852 public void setProgDir(String s) { progDir = s; }
@@ -827,15 +856,15 @@ public class Env {
827856 public void setPassedDir(String s) { passedDir = s; }
828857 private String passedDir = "passed";
829858
830-
859+
831860 /*******************************************************************************
832861 * 設定項目ではないもの
833862 ******************************************************************************/
834-
863+
835864 /*
836- * Web番組表関連の設定
865+ * Web番組表関連の設定
837866 */
838-
867+
839868 // Web番組表サイト(TV)
840869 public String getTVProgramSite() { return tvProgramSite; }
841870 public void setTVProgramSite(String s) { tvProgramSite = s; }
@@ -859,7 +888,7 @@ public class Env {
859888 /*******************************************************************************
860889 * もう使われていないアイテム
861890 ******************************************************************************/
862-
891+
863892 // 番組表の表示を簡素化する(現在は使用していない)
864893 @Deprecated
865894 public boolean getLightProgramView() { return lightProgramView; }
@@ -867,7 +896,7 @@ public class Env {
867896 public void setLightProgramView(boolean b) { lightProgramView = b; }
868897 @Deprecated
869898 private boolean lightProgramView = false;
870-
899+
871900 // スポーツ延長の検索範囲
872901 @Deprecated
873902 public String getSpoexSearchStart() { return spoexSearchStart; }
@@ -875,14 +904,14 @@ public class Env {
875904 public void setSpoexSearchStart(String s) { spoexSearchStart = s; }
876905 @Deprecated
877906 public String getSpoexSearchEnd() { return spoexSearchEnd; }
878-
907+
879908 @Deprecated
880909 public void setSpoexSearchEnd(String s) { spoexSearchEnd = s; }
881910 @Deprecated
882911 private String spoexSearchStart = "00:00";
883912 @Deprecated
884913 private String spoexSearchEnd = "00:00";
885-
914+
886915 // 「最大延長」の記載のあるもののみスポーツ延長のトリガーにする
887916 @Deprecated
888917 public boolean getSpoexLimitation() { return spoexLimitation; }
@@ -890,8 +919,8 @@ public class Env {
890919 public void setSpoexLimitation(boolean b) { spoexLimitation = b; }
891920 @Deprecated
892921 private boolean spoexLimitation = false;
893-
894-
922+
923+
895924 /*******************************************************************************
896925 * 雑多なメソッド
897926 ******************************************************************************/
@@ -901,7 +930,7 @@ public class Env {
901930 String cause = "";
902931 try {
903932 File d = null;
904-
933+
905934 // 設定ファイルを格納するディレクトリの作成
906935 d = new File(cause = envDir);
907936 if (d.exists() == false) {
@@ -923,7 +952,7 @@ public class Env {
923952 // 何か致命的なエラー
924953 }
925954 }
926-
955+
927956 // 番組表をキャッシュするディレクトリの作成
928957 d = new File(cause = progDir);
929958 if (d.exists() == false) {
@@ -931,7 +960,7 @@ public class Env {
931960 // 何か致命的なエラー
932961 }
933962 }
934-
963+
935964 // 過去ログ
936965 d = new File(cause = passedDir);
937966 if (d.exists() == false) {
@@ -939,7 +968,7 @@ public class Env {
939968 // 何か致命的なエラー
940969 }
941970 }
942-
971+
943972 // skin
944973 d = new File(cause = skinDir);
945974 if (d.exists() == false) {
@@ -947,7 +976,7 @@ public class Env {
947976 // 何か致命的なエラー
948977 }
949978 }
950-
979+
951980 /*
952981 // debug
953982 d = new File(cause = debugDir);
@@ -962,13 +991,13 @@ public class Env {
962991 System.err.println(ERRID+"フォルダの作成に失敗 "+cause);
963992 }
964993 }
965-
994+
966995 // 保存する・読みだす
967996 public boolean save() {
968-
997+
969998 if ( FieldUtils.save(envText,this) ) {
970999 // テキスト形式へ移行済み
971-
1000+
9721001 if ( useGTKRC ) {
9731002 saveGTKRC();
9741003 }
@@ -978,10 +1007,10 @@ public class Env {
9781007 f.delete();
9791008 }
9801009 }
981-
1010+
9821011 return true;
9831012 }
984-
1013+
9851014 System.out.println(MSGID+"保存します: "+envFile);
9861015 if ( ! CommonUtils.writeXML(envFile, this) ) {
9871016 System.err.println(ERRID+"保存に失敗しました");
@@ -989,7 +1018,7 @@ public class Env {
9891018 }
9901019 return true;
9911020 }
992-
1021+
9931022 private boolean saveGTKRC() {
9941023 StringBuilder sb = new StringBuilder();
9951024 sb.append("style \"tainavistyle\" {\n");
@@ -1003,37 +1032,37 @@ public class Env {
10031032 sb.append("class \"GtkWidget\" style \"tainavistyle\"\n");
10041033 return CommonUtils.write2file(GTKRC, sb.toString());
10051034 }
1006-
1035+
10071036 public boolean load() {
1008-
1037+
10091038 File ft = new File(envText);
10101039 if ( ft.exists() ) {
10111040 // テキスト形式へ移行済み
10121041 System.out.println("@Deprecated: "+envFile);
10131042 return true;
10141043 }
1015-
1044+
10161045 System.out.println(MSGID+"読み込みます: "+envFile);
10171046 File fx = new File(envFile);
10181047 if ( fx.exists() ) {
10191048 Env b = (Env) CommonUtils.readXML(envFile);
10201049 if ( b != null ) {
10211050 FieldUtils.deepCopy(this, b);
1022-
1051+
10231052 // テキスト形式がなければ作るよ
10241053 if ( FieldUtils.save(envText,this) ) {
10251054 fx.renameTo(new File(envFile+".bak"));
10261055 }
1027-
1056+
10281057 return true;
10291058 }
10301059 }
1031-
1060+
10321061 System.err.println(ERRID+"環境設定が読み込めなかったのでデフォルトの設定値を利用します");
10331062 return false;
10341063 }
1035-
1036-
1064+
1065+
10371066 /**
10381067 * {@link Env#save()}から呼び出されるだけで公開はしない
10391068 */
@@ -1046,17 +1075,17 @@ public class Env {
10461075 }
10471076 return true;
10481077 }
1049-
1078+
10501079 /**
10511080 * 移行用
10521081 * @return
10531082 */
10541083 public boolean loadText() {
1055-
1084+
10561085 boolean b = FieldUtils.load(envText,this);
1057-
1086+
10581087 // 廃止するよ
1059- File f = new File(lafFile);
1088+ File f = new File(lafFile);
10601089 if ( f.exists() ) {
10611090 System.out.println(MSGID+"ルックアンドフィール設定ファイルは廃止されます: "+lafFile);
10621091 String s = CommonUtils.read4file(lafFile, true);
@@ -1071,11 +1100,11 @@ public class Env {
10711100 }
10721101 f.delete();
10731102 }
1074-
1103+
10751104 return b;
1076-
1105+
10771106 }
1078-
1107+
10791108 /**
10801109 * <P>XMLDecoderに失敗すると起動できなくなる場合があるので、どうしても起動時に欲しい設定だけベタテキストで保存しおく
10811110 * <P>{@link #saveLAF()}は公開しない
@@ -1084,15 +1113,15 @@ public class Env {
10841113 public boolean loadLAF() {
10851114 return true;
10861115 }
1087-
1116+
10881117 /*******************************************************************************
10891118 * コンストラクタ
10901119 ******************************************************************************/
1091-
1120+
10921121 public Env() {
10931122
10941123 // ↑の宣言時に設定できないもの
1095-
1124+
10961125 {
10971126 ArrayList<JTXTButton.FontStyle> fsa = new ArrayList<JTXTButton.FontStyle>();
10981127 fsa.add(JTXTButton.FontStyle.BOLD);
@@ -1112,27 +1141,27 @@ public class Env {
11121141 }
11131142 {
11141143 ArrayList<TextValueSet> al = new ArrayList<TextValueSet>();
1115-
1144+
11161145 TextValueSet tv = new TextValueSet();
11171146 tv.setText("Googleでタイトルを検索");
11181147 tv.setValue("http://www.google.co.jp/search?q=%ENCTITLE%");
11191148 al.add(tv);
1120-
1149+
11211150 tv = new TextValueSet();
11221151 tv.setText("Bingでタイトルを検索");
11231152 tv.setValue("http://www.bing.com/search?q=%ENCTITLE%");
11241153 al.add(tv);
1125-
1154+
11261155 tv = new TextValueSet();
11271156 tv.setText("ブラウザで番組詳細のページを開く");
11281157 tv.setValue("%DETAILURL%");
11291158 al.add(tv);
1130-
1159+
11311160 tv = new TextValueSet();
11321161 tv.setText("ブラウザで放送局のページを探す");
11331162 tv.setValue("http://www.google.co.jp/search?hl=ja&btnI=1&q=%ENCCHNAME%");
11341163 al.add(tv);
1135-
1164+
11361165 tv = new TextValueSet();
11371166 tv.setText("ブラウザで番組情報のページを探す");
11381167 tv.setValue("http://www.google.co.jp/search?hl=ja&btnI=1&q=%ENCCHNAME%+%ENCTITLE%");
@@ -1142,15 +1171,15 @@ public class Env {
11421171 tv.setText("ブラウザでTweetする");
11431172 tv.setValue("https://twitter.com/share?text=%DATE%+%START%-%END%+%ENCCHNAME%+%ENCTITLE%");
11441173 al.add(tv);
1145-
1174+
11461175 tv = new TextValueSet();
11471176 tv.setText("CHAN-TORUの予約ページを開く");
11481177 tv.setValue("https://tv.so-net.ne.jp/chan-toru/detail?type=bytime&cat=%TVKCAT%&area=%TVKAREACODE%&pid=%TVKPID%");
11491178 al.add(tv);
1150-
1179+
11511180 this.setTvCommand(al);
11521181 }
1153-
1182+
11541183 // おまけ
11551184 if ( firstinstance ) {
11561185 firstinstance = false;
--- a/TinyBannavi/src/tainavi/JRTLabel.java
+++ b/TinyBannavi/src/tainavi/JRTLabel.java
@@ -11,20 +11,24 @@ public class JRTLabel extends JLabel {
1111 private int vheight;
1212
1313 private int vcol;
14- private int vwidth;
14+
15+ private int cno;
1516
1617 private static float heightMultiplier = 0;
18+ private static int vwidth;
1719
1820 // データ操作メソッド
1921 public int getVRow() { return vrow; }
2022 public int getVHeight() { return vheight; }
23+ public int getColorNo(){ return cno; }
24+ public void setColorNo(int n){ cno = n; }
2125
2226 public static void setHeightMultiplier(float f) { heightMultiplier = f; }
27+ public static void setColumnWidth(int n){ vwidth = n; }
2328
24- public void setVBounds(int x, int y, int width, int height) {
29+ public void setVBounds(int x, int y, int height) {
2530 vcol = x;
2631 vrow = y;
27- vwidth = width;
2832 vheight = height;
2933 super.setBounds(
3034 vcol,
@@ -40,4 +44,5 @@ public class JRTLabel extends JLabel {
4044 vwidth,
4145 (int) Math.ceil(((float)vheight)*heightMultiplier));
4246 }
47+
4348 }
--- a/TinyBannavi/src/tainavi/VersionInfo.java
+++ b/TinyBannavi/src/tainavi/VersionInfo.java
@@ -5,7 +5,7 @@ import java.util.regex.Pattern;
55
66
77 public class VersionInfo {
8- private static final String Version = "タイニー番組ナビゲータ for DBR-T2007 3.22.18β+1.6.7";
8+ private static final String Version = "タイニー番組ナビゲータ for DBR-T2007 3.22.18β+1.7";
99
1010 private static final String OSname = System.getProperty("os.name");
1111 private static final String OSvers = System.getProperty("os.version");
--- a/TinyBannavi/src/tainavi/Viewer.java
+++ b/TinyBannavi/src/tainavi/Viewer.java
@@ -204,8 +204,7 @@ public class Viewer extends JFrame implements ChangeListener,TickTimerListener,H
204204 * レコーダ情報のどれとどれを読めばいいのか
205205 */
206206 public static enum LoadRsvedFor {
207- ALL ( "すべて取得"),
208- SETTING ( "設定情報のみ取得" ),
207+// SETTING ( "設定情報のみ取得(future use.)" ),
209208 DETAILS ( "予約一覧+録画詳細のみ取得" ),
210209 RECORDED ( "録画結果一覧のみ取得" ),
211210 AUTORESERVE ( "自動予約一覧のみ取得" ),
@@ -3033,15 +3032,10 @@ public class Viewer extends JFrame implements ChangeListener,TickTimerListener,H
30333032 private boolean doLoadRdRecorder(LoadRsvedFor lrf) {
30343033
30353034 if ( lrf == null ) {
3036-// return doLoadRdRecorderAll();
3037- return doLoadRdReserveDetails();
3035+ return doLoadRdRecorderAll();
30383036 }
30393037 else {
30403038 switch (lrf) {
3041- case ALL:
3042- return doLoadRdRecorderAll();
3043- case SETTING:
3044- return doLoadRdSettings();
30453039 case DETAILS:
30463040 return doLoadRdReserveDetails();
30473041 case RECORDED:
@@ -3196,7 +3190,7 @@ public class Viewer extends JFrame implements ChangeListener,TickTimerListener,H
31963190 }
31973191
31983192 // 各種設定の取得
3199- if ( ! recorder.GetRdSettings(false) ) {
3193+ if ( ! recorder.GetRdSettings(true) ) {
32003194 succeeded = false;
32013195 continue;
32023196 }