OSDN Git Service

ピックアップ表示の問題修正ほか
authorpeeweedee <peeweedee@users.sourceforge.jp>
Thu, 30 Jan 2014 18:27:39 +0000 (03:27 +0900)
committerpeeweedee <peeweedee@users.sourceforge.jp>
Thu, 30 Jan 2014 18:27:39 +0000 (03:27 +0900)
TinyBannavi/05_history.txt
TinyBannavi/src/tainavi/AbsListedView.java
TinyBannavi/src/tainavi/AbsSettingView.java
TinyBannavi/src/tainavi/Env.java
TinyBannavi/src/tainavi/JNETable.java
TinyBannavi/src/tainavi/VWMainWindow.java
TinyBannavi/src/tainavi/Viewer.java

index f584dc9..96f88a6 100644 (file)
 3.22.13β+1.5.12(2014-01-XX)\r
 ■変更点\r
  ・(レコーダ対応[TvRock]) 録画/視聴のモード設定の追加\r
- ・(新聞形式) 予約大気枠表示を、番組追跡とキーワード検索で個別に色を指定できるようにした\r
- ・(その他) 設定タブの群れをルートからサブにまとめて移動\r
+ ・(新聞形式) 予約待機枠表示を、番組追跡とキーワード検索で個別に色を指定できるようにした\r
+ ・(リスト形式) ピックアップ欄を独立\r
+ ・(リスト形式) 予約・ピックアップ・重複欄に、記号の説明を表示するツールチップ表示を追加\r
+ ・(リスト形式) ピックアップ・重複欄を非表示にできるようにした\r
+ ・(その他) 設定タブの群れをルートからサブにまとめて移動・ツールバーの出し入れボタンも削除\r
 ■バグ修正\r
  ・(Web番組表[しょぼかる]) 「タイトル中のサブタイトルを番組追跡に使わない」を有効にしていると、しょぼかるデータに対して番組追跡が行われない問題を修正\r
  ・(レコーダ対応[DIGA BWT2100/BZT710/720]) ログイン時にネットワークできないとNullぽしてたのを修正\r
+ ・(リスト形式) ピックアップマークを非表示にすると、ピックアップ背景色まで表示されなくなる問題を修正(>>526.)\r
 \r
 3.22.12β+1.5.12(2014-01-20)\r
 ■変更点\r
index 17a806f..42b8d2f 100644 (file)
@@ -232,34 +232,39 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                }\r
                return lcmap;\r
        }\r
-       \r
+\r
+       private int MIN_COLUMN_WIDTH = 20;\r
+\r
        /**\r
         * テーブルのカラムの設定(名前と幅の初期値)。できれば@{link {@link ListedItem}と一体化させたかったのだが無理っぽい\r
         * @see ListedItem\r
         */\r
        public static enum ListedColumn {\r
-               RSVMARK         ("予約",                      35),\r
-               DUPMARK         ("重複",                      35),\r
-               CHNAME          ("チャンネル名",  100),\r
-               OPTIONS         ("オプション",             100),\r
-               TITLE           ("番組タイトル",  300),\r
-               DETAIL          ("番組詳細",                200),\r
-               START           ("開始時刻",                150),\r
-               END                     ("終了",                      50),\r
-               LENGTH          ("長さ",                      50),\r
-               GENRE           ("ジャンル",                85),\r
-               SITEM           ("検索アイテム名",       100),\r
-               STAR            ("お気に入り度",  100),\r
-               SCORE           ("スコア",                   35),\r
-               THRESHOLD       ("閾値",                      35),\r
+               RSVMARK         ("予約",              35,             false),\r
+               PICKMARK                ("ピック",                35,             false),\r
+               DUPMARK         ("重複",              35,             false),\r
+               CHNAME          ("チャンネル名",  100,    true),\r
+               OPTIONS         ("オプション",     100,    true),\r
+               TITLE           ("番組タイトル",  300,    true),\r
+               DETAIL          ("番組詳細",                200,    true),\r
+               START           ("開始時刻",                150,    true),\r
+               END                     ("終了",                      50,             true),\r
+               LENGTH          ("長さ",                      50,             true),\r
+               GENRE           ("ジャンル",                85,             true),\r
+               SITEM           ("検索アイテム名",       100,    true),\r
+               STAR            ("お気に入り度",  100,    true),\r
+               SCORE           ("スコア",                           35,             false),\r
+               THRESHOLD       ("閾値",                      35,             false),\r
                ;\r
 \r
                private String name;\r
                private int iniWidth;\r
+               private boolean resizable;\r
 \r
-               private ListedColumn(String name, int iniWidth) {\r
+               private ListedColumn(String name, int iniWidth, boolean resizable) {\r
                        this.name = name;\r
                        this.iniWidth = iniWidth;\r
+                       this.resizable = resizable;\r
                }\r
 \r
                public String getName() {\r
@@ -269,7 +274,12 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                public int getIniWidth() {\r
                        return iniWidth;\r
                }\r
-               \r
+\r
+               public boolean isResizable() {\r
+                       return resizable;\r
+               }\r
+\r
+\r
                public int getColumn() {\r
                        return ordinal();\r
                }\r
@@ -283,24 +293,49 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
         * 検索範囲(番組追跡か、キーワード検索か、予約待機か)\r
         */\r
        private static enum SearchBy { TRACE, KEYWORD, BOTH } ;\r
-       \r
-       public static final String RSVMARK_NOEXEC               = "×"; // 予約無効\r
-       public static final String RSVMARK_NORMAL               = "●";        // ぴったり\r
-       public static final String RSVMARK_OVERRUN              = "◎";        // のりしろより大きく予約時間がとられている\r
-       public static final String RSVMARK_UNDERRUN             = "○";        // 時間延長が考慮されていない\r
-       public static final String RSVMARK_DELAYED              = "◇";        // 開始時刻が一致しない\r
-       public static final String RSVMARK_CLIPPED              = "▲";        // 1分短縮済み\r
-       public static final String RSVMARK_CLIPPED_E    = "△";        // 1分短縮済み(延長警告あり)\r
-       public static final String RSVMARK_SHORTAGE             = "▼";        // 2分以上短かい\r
-       public static final String RSVMARK_SHORTAGE_E   = "▽";        // 2分以上短かい(延長警告あり)\r
-       \r
-       public static final String RSVMARK_PICKUP               = "★";        // ピックアップ\r
-       public static final String RSVMARK_URABAN               = "■";        // 裏番組\r
+\r
+       public static enum RsvMark {\r
+               NOEXEC                  ( "×",         "予約無効"),\r
+               NORMAL                  ( "●",                "ぴったり"),\r
+               OVERRUN         ( "◎",                "のりしろより大きく予約時間がとられている"),\r
+               UNDERRUN                ( "○",                "時間延長が考慮されていない"),\r
+               DELAYED         ( "◇",                "開始時刻が一致しない"),\r
+               CLIPPED         ( "▲",                "1分短縮済み"),\r
+               CLIPPED_E               ( "△",                "1分短縮済み(延長警告あり)"),\r
+               SHORTAGE                ( "▼",                "2分以上短かい"),\r
+               SHORTAGE_E              ( "▽",                "2分以上短かい(延長警告あり)"),\r
+\r
+               PICKUP                  ( "★",                "ピックアップ"),\r
+               URABAN                  ( "裏",                "裏番組"),\r
+\r
+               DUP_NORMAL              ( "■",                "時間が重なっている"),\r
+               DUP_REP         ( "□",                "開始時間と終了時間が同じ"),\r
+               ;\r
+\r
+               private String mark;\r
+               private String desc;\r
+\r
+               private RsvMark(String mark, String desc) {\r
+                       this.mark = mark;\r
+                       this.desc = desc;\r
+               }\r
+       }\r
+\r
+       private class Marker {\r
+               RsvMark rsvmark = null;\r
+               RsvMark uramark = null;\r
+               RsvMark pickmark = null;\r
+               String myself = null;\r
+               String color = null;\r
+\r
+               public Marker(String myself, String color) {\r
+                       this.myself = myself;\r
+                       this.color = color;\r
+               }\r
+       }\r
+\r
        private static final String PICKUP_COLOR                = CommonUtils.color2str(Color.BLACK);\r
        private static final String URABAN_COLOR                = CommonUtils.color2str(Color.BLACK);\r
-\r
-       private static final String DUPMARK_NORMAL              = "■";\r
-       private static final String DUPMARK_REP                 = "□";\r
        private static final String DUPMARK_COLOR               = "#FFB6C1";\r
        \r
        private static final String TreeExpRegFile_Listed = "env"+File.separator+"tree_expand_listed.xml";\r
@@ -424,7 +459,6 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
        /**\r
         *  プレビュー表示とか(親から呼ばれるよ!)\r
         * @see #redrawListByKeywordDyn(SearchKey, String)\r
-        * @see #redrawListByPassed(SearchKey, String)\r
         * @see #redrawListByKeywordFilter(SearchKey, String)\r
         */\r
        public void redrawListByPreview(SearchKey sKey) {\r
@@ -704,8 +738,8 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                                                        \r
                                                        sa.tvd = tvd;\r
                                                        \r
-                                                       sa.rsvmark              = "";\r
-                                                       sa.dupmark              = "";\r
+                                                       sa.marker = null;\r
+                                                       sa.dupmark              = null;\r
                                                        sa.prefix               = prefixMark;\r
                                                        sa.title                = tvd.newlast_mark+"\0"+tStr[0]+"\0"+tStr[1]+"\0"+tStr[2]+tvd.postfix_mark;\r
                                                        sa.searchlabel  = label;\r
@@ -809,8 +843,8 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                        \r
                        sa.tvd = tvd;\r
                        \r
-                       sa.rsvmark              = "";\r
-                       sa.dupmark              = "";\r
+                       sa.marker = null;\r
+                       sa.dupmark              = null;\r
                        sa.prefix               = prefixMark;\r
                        sa.title                = tvd.newlast_mark+"\0"+tStr[0]+"\0"+tStr[1]+"\0"+tStr[2]+tvd.postfix_mark;\r
                        sa.searchlabel  = tvd.dynKey.getLabel();\r
@@ -1064,8 +1098,8 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
 \r
                        sa.tvd = tvd;\r
                        \r
-                       sa.rsvmark              = "";\r
-                       sa.dupmark              = "";\r
+                       sa.marker = null;\r
+                       sa.dupmark              = null;\r
                        sa.prefix               = tvd.extension_mark+tvd.prefix_mark;\r
                        sa.title                = tvd.newlast_mark+"\0"+tStr[0]+"\0"+tStr[1]+"\0"+tStr[2]+tvd.postfix_mark;\r
                        sa.searchlabel  = label;\r
@@ -1116,8 +1150,8 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                                                \r
                                                sa.tvd = tvd;\r
                                                \r
-                                               sa.rsvmark              = "";\r
-                                               sa.dupmark              = "";\r
+                                               sa.marker = null;\r
+                                               sa.dupmark              = null;\r
                                                sa.prefix               = tvd.extension_mark+tvd.prefix_mark;\r
                                                sa.title                = tvd.newlast_mark+"\0"+tvd.title+tvd.postfix_mark;\r
                                                sa.searchlabel  = "ピックアップ";\r
@@ -1233,12 +1267,12 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                        Marker rm = getReservedMarkChar(data);\r
                        \r
                        if (rm != null) {\r
-                               data.rsvmark = rm.mark;\r
+                               data.marker = rm;\r
                                data.hide_rsvmarkcolor = rm.color;\r
                                data.fireChanged();\r
                        }\r
                        else {\r
-                               data.rsvmark = "";\r
+                               data.marker = null;\r
                                data.hide_rsvmarkcolor = "";\r
                                data.fireChanged();\r
                        }\r
@@ -1258,7 +1292,7 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                // リセット\r
                for (int vrow=0; vrow<rowData.size(); vrow++) {\r
                        ListedItem rf = rowData.get(vrow); \r
-                       rf.dupmark = "";\r
+                       rf.dupmark = null;\r
                        rf.fireChanged();\r
                }\r
                \r
@@ -1296,17 +1330,17 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                                }\r
                                \r
                                if ( eDT.equals(sDT2) ) {\r
-                                       if ( ra.dupmark.length() == 0 ) {\r
-                                               ra.dupmark = DUPMARK_REP;\r
+                                       if ( ra.dupmark == null ) {\r
+                                               ra.dupmark = RsvMark.DUP_REP;\r
                                                ra.fireChanged();\r
                                        }\r
-                                       if ( rb.dupmark.length() == 0 ) {\r
-                                               rb.dupmark = DUPMARK_REP;\r
+                                       if ( rb.dupmark== null ) {\r
+                                               rb.dupmark = RsvMark.DUP_REP;\r
                                                rb.fireChanged();\r
                                        }\r
                                }\r
                                else if ( CommonUtils.isOverlap(sDT, eDT, sDT2, eDT2, false) ) {\r
-                                       ra.dupmark = rb.dupmark = DUPMARK_NORMAL;\r
+                                       ra.dupmark = rb.dupmark = RsvMark.DUP_NORMAL;\r
                                        ra.fireChanged();\r
                                        rb.fireChanged();\r
                                }\r
@@ -1317,7 +1351,6 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
        /**\r
         * 現在時刻追従スクロールを開始する\r
         * @see #stopTimer\r
-        * @see #pauseTimer\r
         */\r
        private void startTimer() {\r
                timer_now_enabled = true;\r
@@ -2213,7 +2246,7 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                                // 開始日時が過去のものは対象外\r
                                continue;\r
                        }\r
-                       if ( c.rsvmark.length() == 0 || c.rsvmark.equals(RSVMARK_URABAN) ) {\r
+                       if ( c.marker == null || c.marker.rsvmark == null || c.marker.rsvmark == RsvMark.URABAN ) {\r
                                int vrow = jTable_listed.convertRowIndexToView(row);\r
                                jTable_listed.getSelectionModel().addSelectionInterval(vrow, vrow);\r
                                if (cnt++ >= env.getRsvTargets()) {\r
@@ -2293,18 +2326,10 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
         */\r
        public void copyColumnWidth() {\r
                //DefaultTableColumnModel columnModel = (DefaultTableColumnModel)jTable_listed.getColumnModel();\r
-               TableColumn column = null;\r
                for ( ListedColumn lc : ListedColumn.values() ) {\r
-                       if ( lc.getIniWidth() < 0 ) {\r
-                               continue;\r
-                       }\r
-                       try {\r
-                               column = jTable_listed.getColumn(lc.getName());\r
-                               bounds.getListedColumnSize().put(lc.toString(), column.getPreferredWidth());    // toString()!\r
-                       }\r
-                       catch (IllegalArgumentException e) {\r
-                               // 非表示のカラムは操作できない\r
-                       }\r
+                       TableColumn column = jTable_listed.getColumn(lc.getName());\r
+                       int w = column.getWidth();\r
+                       bounds.getListedColumnSize().put(lc.toString(), w > 0 ? w : lc.getIniWidth());  // toString()!\r
                }\r
        }\r
        \r
@@ -2328,14 +2353,39 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                jTable_listed.setCurrentColor(c);\r
        }\r
        \r
-       // 番組詳細の表示・非表示\r
+       // オプション表示の分離\r
        public void setMarkColumnVisible(boolean b) {\r
-               jTable_listed.setColumnVisible(ListedColumn.OPTIONS.getName(), b);\r
+               _setColumnVisible(ListedColumn.OPTIONS, b);\r
        }\r
        \r
        // 番組詳細の表示・非表示\r
        public void setDetailColumnVisible(boolean b) {\r
-               jTable_listed.setColumnVisible(ListedColumn.DETAIL.getName(), b);\r
+               _setColumnVisible(ListedColumn.DETAIL, b);\r
+       }\r
+\r
+       // ピックアップの表示・非表示\r
+       public void setPickupColumnVisible(boolean b) {\r
+               _setColumnVisible(ListedColumn.PICKMARK, b);\r
+       }\r
+\r
+       // 時間重複の表示・非表示\r
+       public void setDupColumnVisible(boolean b) {\r
+               _setColumnVisible(ListedColumn.DUPMARK, b);\r
+       }\r
+\r
+       private void _setColumnVisible(ListedColumn lc, boolean b) {\r
+               if ( lc.getIniWidth() < 0 ) {\r
+                       return;\r
+               }\r
+               TableColumn column = jTable_listed.getColumnModel().getColumn(lc.getColumn());\r
+               if (b) {\r
+                       column.setMinWidth(MIN_COLUMN_WIDTH);\r
+                       column.setPreferredWidth(lc.getIniWidth());\r
+               }\r
+               else {\r
+                       column.setMinWidth(0);\r
+                       column.setPreferredWidth(0);\r
+               }\r
        }\r
 \r
        /*\r
@@ -2367,25 +2417,8 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
         * 予約マークの取得だお!\r
         */\r
        \r
-       private class Marker {\r
-               String mark; \r
-               String myself;\r
-               String color;\r
-               \r
-               public Marker(String mark, String myself, String color) {\r
-                       this.mark = mark;\r
-                       this.myself = myself;\r
-                       this.color = color;\r
-               }\r
-       }\r
-       \r
        /**\r
         * 引数で指定した番組を予約している、または予約に一部時間が重なっている場合に表示する予約マークを取得する。\r
-        * @param Center チェックする番組の放送局名\r
-        * @param startDateTime チェックする番組の開始日時\r
-        * @param endDateTime チェックする番組の終了日時\r
-        * @param title チェックする番組のタイトル\r
-        * @param extention 延長警告がなされている番組の場合はtrueを指定。\r
         * @return String [0]マーク [1]予約しているレコーダのユニークID({@link HDDRecorder#Myself()}) [2]色({@link CommonUtils#str2color(String)})\r
         */\r
        private Marker getReservedMarkChar(ListedItem data) {\r
@@ -2465,73 +2498,65 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                \r
                // 予約されている\r
                \r
-               Marker mark = null;\r
-               Marker pickmark = null;\r
-               Marker uramark = null;\r
-               \r
+               Marker mark;\r
+               boolean marked = false;\r
+\r
                // 予約マーク\r
                if (recorder != null) {\r
-                       mark = _getReservedMarkCharNormal(data, recorder, reserve, start, end);\r
+                       mark = new Marker(recorder.Myself(), recorder.getColor(reserve.getTuner()));\r
+                       marked = marked || _getReservedMarkCharNormal(mark, data, recorder, reserve, start, end);\r
                }\r
-               // ピックアップマーク\r
-               if (env.getShowRsvPickup()) {\r
-                       pickmark = _getReservedMarkCharPickup(data);\r
+               else {\r
+                       mark = new Marker("", "");\r
                }\r
                // 裏番組予約マーク\r
-               if (mark == null && pickmark == null && env.getShowRsvUra()) {\r
-                       uramark = _getReservedMarkCharUra(data);\r
-               }\r
-               \r
-               if ( mark != null ) {\r
-                       return mark;\r
+               if (env.getShowRsvUra() && mark.rsvmark == null) {\r
+                       marked = _getReservedMarkCharUra(mark, data) || marked;\r
                }\r
-               if ( pickmark != null || isPickupOnly ) {\r
-                       return pickmark;\r
-               }\r
-               if ( uramark != null ) {\r
-                       return uramark;\r
-               }\r
-               \r
-               // 予約されていない\r
-               return(null);\r
+               // ピックアップマーク\r
+               marked = _getReservedMarkCharPickup(mark, data) || marked;\r
+\r
+               return(marked ? mark : null);\r
        }\r
        /**\r
-        * @see #getReservedMarkChar(String, String, String, String, boolean) \r
+        * @see #getReservedMarkChar(ListedItem)\r
         */\r
-       private Marker _getReservedMarkCharNormal(ListedItem data, HDDRecorder recorder, ReserveList reserve, String start, String end) {\r
+       private boolean _getReservedMarkCharNormal(Marker mark, ListedItem data, HDDRecorder recorder, ReserveList reserve, String start, String end) {\r
                \r
                // ここに入ってくる場合は時間の重なりが確認できているものだけである\r
                \r
                RSVMARK_COND cond = getReservedMarkCond(data, start, end);\r
                \r
                if (debug) System.err.println(DBGID+data.tvd.title+" "+data.tvd.startDateTime+" "+data.tvd.endDateTime+" "+start+" "+end+" "+cond);\r
-               \r
-               String mark = null;\r
-               \r
+\r
+               RsvMark mk;\r
+\r
                switch (cond) {\r
                case PREV:\r
-                       return null;\r
+                       return false;\r
                case DELAY:\r
-                       mark = RSVMARK_DELAYED;\r
+                       mk = RsvMark.DELAYED;\r
                        break;\r
                case UNDER:\r
-                       mark = RSVMARK_UNDERRUN;\r
+                       mk = RsvMark.UNDERRUN;\r
                        break;\r
                case OVER:\r
-                       mark = RSVMARK_OVERRUN;\r
+                       mk = RsvMark.OVERRUN;\r
                        break;\r
                case CLIP:\r
-                       mark = (data.tvd.extension) ? (RSVMARK_CLIPPED_E) : (RSVMARK_CLIPPED);\r
+                       mk = (data.tvd.extension) ? (RsvMark.CLIPPED_E) : (RsvMark.CLIPPED);\r
                        break;\r
                case SHORT:\r
-                       mark = (data.tvd.extension) ? (RSVMARK_SHORTAGE_E) : (RSVMARK_SHORTAGE);\r
+                       mk = (data.tvd.extension) ? (RsvMark.SHORTAGE_E) : (RsvMark.SHORTAGE);\r
                        break;\r
                default:\r
-                       mark = RSVMARK_NORMAL;\r
+                       mk = RsvMark.NORMAL;\r
                        break;\r
                }\r
 \r
-               return(new Marker((reserve.getExec())?(mark):(RSVMARK_NOEXEC), recorder.Myself(), recorder.getColor(reserve.getTuner())));\r
+               mark.rsvmark = (reserve.getExec()) ? mk : RsvMark.NOEXEC;\r
+\r
+               return true;\r
        }\r
        private RSVMARK_COND getReservedMarkCond(ListedItem data, String start, String end) {\r
                {\r
@@ -2613,7 +2638,7 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
        }\r
        private static enum RSVMARK_COND { PREV, DELAY, UNDER, OVER, CLIP, SHORT, NORMAL };\r
        \r
-       private Marker _getReservedMarkCharPickup(ListedItem data) {\r
+       private boolean _getReservedMarkCharPickup(Marker mark, ListedItem data) {\r
                //return (data.hide_ispickup)?(new Marker(RSVMARK_PICKUP,"",PICKUP_COLOR)):(null);\r
                //\r
                PickedProgram picktvp = tvprograms.getPickup();\r
@@ -2622,13 +2647,15 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                ProgDetailList picktvd = picktvp.find(data.tvd);\r
                if ( picktvd == null ) {\r
                        // みつかんねーよ\r
-                       return null;\r
+                       return false;\r
                }\r
-               \r
-               return new Marker(RSVMARK_PICKUP,"",PICKUP_COLOR);\r
+\r
+               mark.pickmark = RsvMark.PICKUP;\r
+\r
+               return true;\r
        }\r
        \r
-       private Marker _getReservedMarkCharUra(ListedItem data) {\r
+       private boolean _getReservedMarkCharUra(Marker mark, ListedItem data) {\r
                //\r
                String myself = getSelectedRecorderOnToolbar();\r
                HDDRecorderList recs = recorders.findInstance(myself);\r
@@ -2652,12 +2679,13 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                                CommonUtils.getStartEndList(starts, ends, res);\r
                                for (int j=0; j<starts.size(); j++) {\r
                                        if ( CommonUtils.isOverlap(data.tvd.startDateTime, data.tvd.endDateTime, starts.get(j), ends.get(j), env.getAdjoiningNotRepetition()) ) {\r
-                                               return new Marker(RSVMARK_URABAN,"",URABAN_COLOR);\r
+                                               mark.uramark = RsvMark.URABAN;\r
+                                               return true;\r
                                        }\r
                                }\r
                        }\r
                }\r
-               return null;\r
+               return false;\r
        }\r
        \r
        \r
@@ -3776,6 +3804,7 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                        VWColorCharCellRenderer renderer = new VWColorCharCellRenderer();\r
                        if ( CommonUtils.isMac() ) renderer.setMacMarkFont();\r
                        jTable_listed.getColumn(ListedColumn.RSVMARK.getName()).setCellRenderer(renderer);\r
+                       jTable_listed.getColumn(ListedColumn.PICKMARK.getName()).setCellRenderer(renderer);\r
                        jTable_listed.getColumn(ListedColumn.DUPMARK.getName()).setCellRenderer(renderer);\r
                        \r
                        // 強調色関連\r
@@ -3806,7 +3835,10 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                                        continue;\r
                                }\r
                                column = columnModel.getColumn(lc.ordinal());\r
-                               column.setPreferredWidth(bounds.getListedColumnSize().get(lc.toString()));      // toString()!\r
+                               column.setResizable(lc.isResizable());\r
+                               column.setMinWidth(MIN_COLUMN_WIDTH);\r
+                               Integer w = bounds.getListedColumnSize().get(lc.toString());\r
+                               column.setPreferredWidth(w != null ? w : lc.getIniWidth());\r
                        }\r
                        \r
                        // マーク表示分離の有無\r
@@ -3814,7 +3846,13 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                        \r
                        // 番組詳細の表示・非表示\r
                        setDetailColumnVisible(env.getShowDetailOnList());\r
-                       \r
+\r
+                       // ピックアップの表示・非表示\r
+                       setPickupColumnVisible(env.getShowRsvPickup());\r
+\r
+                       // 時間重複の表示・非表示\r
+                       setDupColumnVisible(env.getShowRsvDup());\r
+\r
                        // 行を選択すると詳細が表示されるようにする\r
                        jTable_listed.getSelectionModel().addListSelectionListener(lsSelectListner);\r
                        \r
@@ -3836,8 +3874,8 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
         * @see ListedColumn\r
         */\r
        private class ListedItem extends RowItem implements Cloneable {\r
-               String rsvmark;\r
-               String dupmark;\r
+               Marker marker;\r
+               RsvMark dupmark;\r
                String prefix;\r
                String title;\r
                String searchlabel;\r
@@ -3852,7 +3890,8 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                @Override\r
                protected void myrefresh(RowItem o) {\r
                        ListedItem c = (ListedItem) o;\r
-                       c.addData(rsvmark);\r
+                       c.addData(marker);\r
+                       c.addData(marker);      // ピックアップ欄用のダミー\r
                        c.addData(dupmark);\r
                        c.addData(tvd.center);\r
                        c.addData(prefix);\r
@@ -4016,17 +4055,13 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                        \r
                        {\r
                                // 予約が入っているか否か\r
-                               if ( c.rsvmark == null || c.rsvmark.length() == 0 ) {\r
-                                       //\r
-                               }\r
-                               else if ( c.rsvmark.equals(RSVMARK_NOEXEC)  ) {\r
-                                       //\r
-                               }\r
-                               else if ( c.rsvmark.equals(RSVMARK_PICKUP) ) {\r
-                                       prechkpicked = true;\r
-                               }\r
-                               else {\r
-                                       prechkreserved = true;\r
+                               if ( c.marker != null ) {\r
+                                       if ( c.marker.rsvmark != null && c.marker.rsvmark != RsvMark.NOEXEC  ) {\r
+                                               prechkreserved = true;\r
+                                       }\r
+                                       else if ( c.marker.pickmark != null ) {\r
+                                               prechkpicked = true;\r
+                                       }\r
                                }\r
                        }\r
                        {\r
@@ -4046,7 +4081,26 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                        \r
                        return true;\r
                }\r
-               \r
+\r
+               @Override\r
+               public String getToolTipText(MouseEvent e){\r
+                       // イベントからマウス位置を取得し、テーブル内のセルを割り出す\r
+                       int prow = rowAtPoint(e.getPoint());\r
+                       int row = this.convertRowIndexToModel(prow);\r
+                       ListedItem c = rowData.get(row);\r
+                       int col = columnAtPoint(e.getPoint());\r
+                       if ( col == ListedColumn.RSVMARK.getColumn() && c.marker != null && c.marker.rsvmark != null ) {\r
+                               return c.marker.rsvmark.desc;\r
+                       }\r
+                       else if ( col == ListedColumn.PICKMARK.getColumn() && c.marker != null && c.marker.pickmark != null ) {\r
+                               return c.marker.pickmark.desc;\r
+                       }\r
+                       else if ( col == ListedColumn.DUPMARK.getColumn() && c.dupmark != null ) {\r
+                               return c.dupmark.desc;\r
+                       }\r
+                       return null;\r
+               }\r
+\r
                //\r
                @Override\r
                public void tableChanged(TableModelEvent e) {\r
@@ -4086,18 +4140,24 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                public Object getValueAt(int row, int column) {\r
                        // 多少負荷があがるがこっちの方が見通しがいいだろう\r
                        ListedItem c = rowData.get(row);\r
-                       if ( c.size()>column ) {\r
+                       if ( c.size( ) > column ) {\r
                                // 特殊なカラム\r
                                if ( column == ListedColumn.RSVMARK.getColumn() ) {\r
-                                       if ( c.rsvmark.length() > 0 ) {\r
-                                               return c.rsvmark+"\0"+c.hide_rsvmarkcolor;\r
-                                       }\r
-                                       else {\r
-                                               return "";\r
+                                       if ( c.marker != null && c.marker.rsvmark != null ) {\r
+                                               if ( c.marker.rsvmark != RsvMark.URABAN ) {\r
+                                                       return c.marker.rsvmark.mark+"\0"+c.hide_rsvmarkcolor;\r
+                                               }\r
+                                               else {\r
+                                                       return c.marker.rsvmark.mark+"\0"+URABAN_COLOR;\r
+                                               }\r
                                        }\r
+                                       return "";\r
+                               }\r
+                               else if ( column == ListedColumn.PICKMARK.getColumn() ) {\r
+                                       return (env.getShowRsvPickup() && c.marker != null && c.marker.pickmark != null) ? c.marker.pickmark.mark : "" ;\r
                                }\r
                                else if ( column == ListedColumn.DUPMARK.getColumn() ) {\r
-                                       return c.dupmark+"\0"+DUPMARK_COLOR;\r
+                                       return (env.getShowRsvDup() && c.dupmark != null) ? c.dupmark.mark+"\0"+DUPMARK_COLOR : "";\r
                                }\r
                                else if ( column == ListedColumn.START.getColumn() ) {\r
                                        return c.tvd.accurateDate+" "+c.tvd.start;\r
@@ -4126,7 +4186,7 @@ public abstract class AbsListedView extends JPanel implements TickTimerListener
                        }\r
                        return null;\r
                }\r
-               \r
+\r
                @Override\r
                public int getRowCount() {\r
                        return rowData.size();\r
index ae29b2e..b3bdf51 100644 (file)
@@ -159,6 +159,7 @@ public abstract class AbsSettingView extends JScrollPane {
        private JCheckBoxPanel jCBP_syoboFilterByCenters = null;\r
        private JCheckBoxPanel jCBP_displayPassedEntry = null;\r
        private JCheckBoxPanel jCBP_showRsvPickup = null;\r
+       private JCheckBoxPanel jCBP_showRsvDup = null;\r
        private JCheckBoxPanel jCBP_showRsvUra = null;\r
        private JCheckBoxPanel jCBP_rsvdLineEnhance = null;\r
        private JLabel jLabel_rsvdLineColor = null;\r
@@ -415,7 +416,12 @@ public abstract class AbsSettingView extends JScrollPane {
                        // RELOADリスナー不要\r
 \r
                        y+=(PARTS_HEIGHT+SEP_HEIGHT);\r
-                       CommonSwingUtils.putComponentOn(jPanel_setting, jCBP_showRsvUra = new JCheckBoxPanel("裏番組予約マーク(■)を表示する",LABEL_WIDTH), PARTS_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);\r
+                       CommonSwingUtils.putComponentOn(jPanel_setting, jCBP_showRsvDup = new JCheckBoxPanel("時間重複マーク(■)を表示する",LABEL_WIDTH), PARTS_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);\r
+                       jCBP_showRsvDup.setSelected(env.getShowRsvDup());\r
+                       // RELOADリスナー不要\r
+\r
+                       y+=(PARTS_HEIGHT+SEP_HEIGHT);\r
+                       CommonSwingUtils.putComponentOn(jPanel_setting, jCBP_showRsvUra = new JCheckBoxPanel("裏番組予約マーク(裏)を表示する",LABEL_WIDTH), PARTS_WIDTH, PARTS_HEIGHT, SEP_WIDTH, y);\r
                        jCBP_showRsvUra.setSelected(env.getShowRsvUra());\r
                        // RELOADリスナー不要\r
 \r
@@ -1082,6 +1088,7 @@ public abstract class AbsSettingView extends JScrollPane {
                                env.setSyoboFilterByCenters(jCBP_syoboFilterByCenters.isSelected());\r
                                env.setDisplayPassedEntry(jCBP_displayPassedEntry.isSelected());\r
                                env.setShowRsvPickup(jCBP_showRsvPickup.isSelected());\r
+                               env.setShowRsvDup(jCBP_showRsvDup.isSelected());\r
                                env.setShowRsvUra(jCBP_showRsvUra.isSelected());\r
                                env.setRsvdLineEnhance(jCBP_rsvdLineEnhance.isSelected());\r
                                env.setRsvdLineColor(jCCL_rsvdLineColor.getChoosed());\r
index 59a2922..38adc8f 100644 (file)
@@ -268,10 +268,14 @@ public class Env {
        public boolean getDisplayPassedEntry() { return displayPassedEntry; }\r
        public void setDisplayPassedEntry(boolean b) { displayPassedEntry = b; }\r
        private boolean displayPassedEntry = true;\r
-       // 裏番組予約マークの表示\r
+       // ピックアップマークの表示\r
        public boolean getShowRsvPickup() { return showRsvPickup; }\r
        public void setShowRsvPickup(boolean b) { showRsvPickup = b; }\r
        private boolean showRsvPickup = true;\r
+       // 時間重複マークの表示\r
+       public boolean getShowRsvDup() { return showRsvDup; }\r
+       public void setShowRsvDup(boolean b) { showRsvDup = b; }\r
+       private boolean showRsvDup = true;\r
        // 裏番組予約マークの表示\r
        public boolean getShowRsvUra() { return showRsvUra; }\r
        public void setShowRsvUra(boolean b) { showRsvUra = b; }\r
index 1f120c9..6a3669f 100644 (file)
@@ -55,9 +55,9 @@ public class JNETable extends JTable {
        }\r
        \r
        private ColumnData[] colDat = null;\r
-       \r
+\r
        public void setColumnVisible(String name, boolean b) {\r
-               \r
+\r
                if ( name == null ) {\r
                        return;\r
                }\r
@@ -108,7 +108,7 @@ public class JNETable extends JTable {
                        }\r
                }\r
        }\r
-       \r
+\r
        /*\r
         * コンストラクタ\r
         */\r
index 3508c94..967e79b 100644 (file)
@@ -54,7 +54,9 @@ public class VWMainWindow extends JPanel {
                public static int size() { return MWinTab.values().length; }\r
                \r
        }\r
-       \r
+\r
+       private final String SETTING_LIST = "設定一覧";\r
+\r
        /*\r
         * 部品\r
         */\r
@@ -75,7 +77,7 @@ public class VWMainWindow extends JPanel {
                // タブを全部準備する\r
                for ( MWinTab tab : MWinTab.values() ) {\r
                        if ( tab == MWinTab.SETTING ) {\r
-                               jTabbedPane.add(jTabbedPane_settings, "設定");\r
+                               jTabbedPane.add(jTabbedPane_settings, SETTING_LIST);\r
                        }\r
                        addTab(null, tab);\r
                }\r
index dc8d907..2334022 100644 (file)
@@ -3704,6 +3704,8 @@ public class Viewer extends JFrame implements ChangeListener,TickTimerListener,H
                // 列の表示・非表示\r
                listed.setMarkColumnVisible(env.getSplitMarkAndTitle());\r
                listed.setDetailColumnVisible(env.getShowDetailOnList());\r
+               listed.setPickupColumnVisible(env.getShowRsvPickup());\r
+               listed.setDupColumnVisible(env.getShowRsvDup());\r
                listed.setRowHeaderVisible(env.getRowHeaderVisible());\r
                reserved.setRowHeaderVisible(env.getRowHeaderVisible());\r
                \r