OSDN Git Service

split constructor of ActionManager
authorOlyutorskii <olyutorskii@users.osdn.me>
Sun, 8 Mar 2020 02:03:22 +0000 (11:03 +0900)
committerOlyutorskii <olyutorskii@users.osdn.me>
Sun, 8 Mar 2020 02:03:22 +0000 (11:03 +0900)
src/main/java/jp/sfjp/jindolf/view/ActionManager.java

index e33057c..06189c1 100644 (file)
@@ -98,7 +98,7 @@ public class ActionManager{
     public static final String CMD_FONTSIZESEL = "FONTSIZESEL";
 
     /** WWWアイコン。 */
-    public static final Icon ICON_WWW = GUIUtils.getWWWIcon();
+    public static final Icon ICON_WWW;
     /** 検索アイコン。 */
     public static final Icon ICON_FIND;
     /** 前検索アイコン。 */
@@ -112,34 +112,29 @@ public class ActionManager{
     /** 発言エディタアイコン。 */
     public static final Icon ICON_EDITOR;
 
-    private static final KeyStroke KEY_F1 = KeyStroke.getKeyStroke("F1");
-    private static final KeyStroke KEY_F3 = KeyStroke.getKeyStroke("F3");
-    private static final KeyStroke KEY_SHIFT_F3 =
-            KeyStroke.getKeyStroke("shift F3");
-    private static final KeyStroke KEY_F5 = KeyStroke.getKeyStroke("F5");
-    private static final KeyStroke KEY_CTRL_F =
-            KeyStroke.getKeyStroke("ctrl F");
+    private static final KeyStroke KEY_F1;
+    private static final KeyStroke KEY_F3;
+    private static final KeyStroke KEY_SHIFT_F3;
+    private static final KeyStroke KEY_F5;
+    private static final KeyStroke KEY_CTRL_F;
 
     static{
-        ICON_FIND =
-            ResourceManager.getButtonIcon("resources/image/tb_find.png");
-
-        ICON_SEARCH_PREV =
-            ResourceManager.getButtonIcon("resources/image/tb_findprev.png");
-
-        ICON_SEARCH_NEXT =
-            ResourceManager.getButtonIcon("resources/image/tb_findnext.png");
-
-        ICON_RELOAD =
-            ResourceManager.getButtonIcon("resources/image/tb_reload.png");
-
-        ICON_FILTER =
-            ResourceManager.getButtonIcon("resources/image/tb_filter.png");
-
-        ICON_EDITOR =
-            ResourceManager.getButtonIcon("resources/image/tb_editor.png");
+        ICON_WWW         = GUIUtils.getWWWIcon();
+        ICON_FIND        = loadIcon("resources/image/tb_find.png");
+        ICON_SEARCH_PREV = loadIcon("resources/image/tb_findprev.png");
+        ICON_SEARCH_NEXT = loadIcon("resources/image/tb_findnext.png");
+        ICON_RELOAD      = loadIcon("resources/image/tb_reload.png");
+        ICON_FILTER      = loadIcon("resources/image/tb_filter.png");
+        ICON_EDITOR      = loadIcon("resources/image/tb_editor.png");
+
+        KEY_F1       = KeyStroke.getKeyStroke("F1");
+        KEY_F3       = KeyStroke.getKeyStroke("F3");
+        KEY_SHIFT_F3 = KeyStroke.getKeyStroke("shift F3");
+        KEY_F5       = KeyStroke.getKeyStroke("F5");
+        KEY_CTRL_F   = KeyStroke.getKeyStroke("ctrl F");
     }
 
+
     private final Set<AbstractButton> actionItems =
             new HashSet<>();
     private final Map<String, JMenuItem> namedMenuItems =
@@ -164,10 +159,13 @@ public class ActionManager{
 
     private final JToolBar browseToolBar;
 
+
     /**
      * コンストラクタ。
      */
     public ActionManager(){
+        super();
+
         this.menuFile       = buildMenu("Jindolf",  KeyEvent.VK_F);
         this.menuEdit       = buildMenu("編集",     KeyEvent.VK_E);
         this.menuVillage    = buildMenu("村",       KeyEvent.VK_V);
@@ -178,6 +176,38 @@ public class ActionManager{
 
         this.menuLook = buildLookAndFeelMenu("ルック&フィール", KeyEvent.VK_L);
 
+        setupMenuItems();
+        setupToolButtons();
+        setupMenuItemIcons();
+
+        registKeyAccelerator();
+
+        this.menuBar       = buildMenuBar();
+        this.browseToolBar = buildBrowseToolBar();
+
+        appearVillageImpl(false);
+        appearPeriodImpl(false);
+
+        return;
+    }
+
+
+    /**
+     * load icon from resource.
+     *
+     * @param resPath resource path name
+     * @return icon
+     */
+    private static Icon loadIcon(String resPath){
+        Icon result = ResourceManager.getButtonIcon(resPath);
+        return result;
+    }
+
+
+    /**
+     * setup menu items.
+     */
+    private void setupMenuItems(){
         buildMenuItem(CMD_ACCOUNT, "アカウント管理", KeyEvent.VK_M);
         buildMenuItem(CMD_EXIT, "終了", KeyEvent.VK_X);
         buildMenuItem(CMD_COPY, "選択範囲をコピー", KeyEvent.VK_C);
@@ -201,14 +231,26 @@ public class ActionManager{
         buildMenuItem(CMD_HELPDOC, "ヘルプ表示", KeyEvent.VK_H);
         buildMenuItem(CMD_SHOWPORTAL, "ポータルサイト...", KeyEvent.VK_P);
         buildMenuItem(CMD_ABOUT, VerInfo.TITLE + "について...", KeyEvent.VK_A);
+        return;
+    }
 
+    /**
+     * setup toolbuttons.
+     */
+    private void setupToolButtons(){
         buildToolButton(CMD_RELOAD, "選択中の日を強制リロード", ICON_RELOAD);
         buildToolButton(CMD_SHOWFIND,   "検索",     ICON_FIND);
         buildToolButton(CMD_SEARCHPREV, "↑前候補", ICON_SEARCH_PREV);
         buildToolButton(CMD_SEARCHNEXT, "↓次候補", ICON_SEARCH_NEXT);
         buildToolButton(CMD_SHOWFILT, "発言フィルタ", ICON_FILTER);
         buildToolButton(CMD_SHOWEDIT, "発言エディタ", ICON_EDITOR);
+        return;
+    }
 
+    /**
+     * setup menu item icons.
+     */
+    private void setupMenuItemIcons(){
         getMenuItem(CMD_SHOWPORTAL).setIcon(ICON_WWW);
         getMenuItem(CMD_WEBVILL)   .setIcon(ICON_WWW);
         getMenuItem(CMD_WEBWIKI)   .setIcon(ICON_WWW);
@@ -218,20 +260,12 @@ public class ActionManager{
         getMenuItem(CMD_SEARCHNEXT).setIcon(ICON_SEARCH_NEXT);
         getMenuItem(CMD_SHOWFILT)  .setIcon(ICON_FILTER);
         getMenuItem(CMD_SHOWEDIT)  .setIcon(ICON_EDITOR);
-
-        registKeyAccelerator();
-
-        this.menuBar       = buildMenuBar();
-        this.browseToolBar = buildBrowseToolBar();
-
-        appearVillageImpl(false);
-        appearPeriodImpl(false);
-
         return;
     }
 
     /**
      * メニューを生成する。
+     *
      * @param label メニューラベル
      * @param nemonic ニモニックキー
      * @return メニュー
@@ -249,14 +283,15 @@ public class ActionManager{
 
     /**
      * メニューアイテムを生成する。
+     *
      * @param command アクションコマンド名
      * @param label メニューラベル
      * @param nemonic ニモニックキー
      * @return メニューアイテム
      */
     private JMenuItem buildMenuItem(String command,
-                                      String label,
-                                      int nemonic ){
+                                    String label,
+                                    int nemonic ){
         JMenuItem result = new JMenuItem();
 
         String keyText = label + "(" + KeyEvent.getKeyText(nemonic) + ")";
@@ -273,20 +308,21 @@ public class ActionManager{
 
     /**
      * ツールボタンを生成する。
+     *
      * @param command アクションコマンド名
      * @param tooltip ツールチップ文字列
      * @param icon アイコン画像
      * @return ツールボタン
      */
     private JButton buildToolButton(String command,
-                                      String tooltip,
-                                      Icon icon){
+                                    String tooltip,
+                                    Icon icon){
         JButton result = new JButton();
 
-        result.setIcon(icon);
+        result.setActionCommand(command);
         result.setToolTipText(tooltip);
+        result.setIcon(icon);
         result.setMargin(new Insets(1, 1, 1, 1));
-        result.setActionCommand(command);
 
         this.actionItems.add(result);
         this.namedToolButtons.put(command, result);
@@ -296,6 +332,7 @@ public class ActionManager{
 
     /**
      * L&amp;F 一覧メニューを作成する。
+     *
      * @param label メニューラベル
      * @param nemonic ニモニックキー
      * @return L&amp;F 一覧メニュー
@@ -344,6 +381,7 @@ public class ActionManager{
 
     /**
      * アクションコマンド名からメニューアイテムを探す。
+     *
      * @param command アクションコマンド名
      * @return メニューアイテム
      */
@@ -354,6 +392,7 @@ public class ActionManager{
 
     /**
      * アクションコマンド名からツールボタンを探す。
+     *
      * @param command アクションコマンド名
      * @return ツールボタン
      */
@@ -363,7 +402,8 @@ public class ActionManager{
     }
 
     /**
-     * 現在メニューで選択中のL&amp;Fのクラス名を返す。
+     * 現在LookAndFeelメニューで選択中のL&amp;Fのクラス名を返す。
+     *
      * @return L&amp;F クラス名
      */
     public String getSelectedLookAndFeel(){
@@ -375,17 +415,19 @@ public class ActionManager{
 
     /**
      * 全てのボタンにアクションリスナーを登録する。
+     *
      * @param listener アクションリスナー
      */
     public void addActionListener(ActionListener listener){
-        for(AbstractButton button : this.actionItems){
+        this.actionItems.forEach(button -> {
             button.addActionListener(listener);
-        }
+        });
         return;
     }
 
     /**
      * メニューバーを生成する。
+     *
      * @return メニューバー
      */
     private JMenuBar buildMenuBar(){
@@ -439,6 +481,7 @@ public class ActionManager{
 
     /**
      * メニューバーを取得する。
+     *
      * @return メニューバー
      */
     public JMenuBar getMenuBar(){
@@ -447,6 +490,7 @@ public class ActionManager{
 
     /**
      * ブラウザ用ツールバーの生成を行う。
+     *
      * @return ツールバー
      */
     private JToolBar buildBrowseToolBar(){
@@ -466,6 +510,7 @@ public class ActionManager{
 
     /**
      * ブラウザ用ツールバーを取得する。
+     *
      * @return ツールバー
      */
     public JToolBar getBrowseToolBar(){
@@ -473,7 +518,8 @@ public class ActionManager{
     }
 
     /**
-     * Periodが表示されているか通知を受ける。
+     * Periodが選択表示されている状況か通知を受ける。
+     *
      * @param appear 表示されているときはtrue
      */
     private void appearPeriodImpl(boolean appear){
@@ -491,7 +537,8 @@ public class ActionManager{
     }
 
     /**
-     * Periodが表示されているか通知を受ける。
+     * Periodが選択表示されている状況か通知を受ける。
+     *
      * @param appear 表示されているときはtrue
      */
     public void appearPeriod(boolean appear){
@@ -500,7 +547,8 @@ public class ActionManager{
     }
 
     /**
-     * 村が表示されているか通知を受ける。
+     * 村が選択表示されている状況か通知を受ける。
+     *
      * @param appear 表示されているときはtrue
      */
     private void appearVillageImpl(boolean appear){
@@ -512,7 +560,8 @@ public class ActionManager{
     }
 
     /**
-     * 村が表示されているか通知を受ける。
+     * 村が選択表示されている状況か通知を受ける。
+     *
      * @param appear 表示されているときはtrue
      */
     public void appearVillage(boolean appear){