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;
/** 前検索アイコン。 */
/** 発言エディタアイコン。 */
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 =
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);
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);
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);
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 メニュー
/**
* メニューアイテムを生成する。
+ *
* @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) + ")";
/**
* ツールボタンを生成する。
+ *
* @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);
/**
* L&F 一覧メニューを作成する。
+ *
* @param label メニューラベル
* @param nemonic ニモニックキー
* @return L&F 一覧メニュー
/**
* アクションコマンド名からメニューアイテムを探す。
+ *
* @param command アクションコマンド名
* @return メニューアイテム
*/
/**
* アクションコマンド名からツールボタンを探す。
+ *
* @param command アクションコマンド名
* @return ツールボタン
*/
}
/**
- * 現在メニューで選択中のL&Fのクラス名を返す。
+ * 現在LookAndFeelメニューで選択中のL&Fのクラス名を返す。
+ *
* @return L&F クラス名
*/
public String getSelectedLookAndFeel(){
/**
* 全てのボタンにアクションリスナーを登録する。
+ *
* @param listener アクションリスナー
*/
public void addActionListener(ActionListener listener){
- for(AbstractButton button : this.actionItems){
+ this.actionItems.forEach(button -> {
button.addActionListener(listener);
- }
+ });
return;
}
/**
* メニューバーを生成する。
+ *
* @return メニューバー
*/
private JMenuBar buildMenuBar(){
/**
* メニューバーを取得する。
+ *
* @return メニューバー
*/
public JMenuBar getMenuBar(){
/**
* ブラウザ用ツールバーの生成を行う。
+ *
* @return ツールバー
*/
private JToolBar buildBrowseToolBar(){
/**
* ブラウザ用ツールバーを取得する。
+ *
* @return ツールバー
*/
public JToolBar getBrowseToolBar(){
}
/**
- * Periodが表示されているか通知を受ける。
+ * Periodが選択表示されている状況か通知を受ける。
+ *
* @param appear 表示されているときはtrue
*/
private void appearPeriodImpl(boolean appear){
}
/**
- * Periodが表示されているか通知を受ける。
+ * Periodが選択表示されている状況か通知を受ける。
+ *
* @param appear 表示されているときはtrue
*/
public void appearPeriod(boolean appear){
}
/**
- * 村が表示されているか通知を受ける。
+ * 村が選択表示されている状況か通知を受ける。
+ *
* @param appear 表示されているときはtrue
*/
private void appearVillageImpl(boolean appear){
}
/**
- * 村が表示されているか通知を受ける。
+ * 村が選択表示されている状況か通知を受ける。
+ *
* @param appear 表示されているときはtrue
*/
public void appearVillage(boolean appear){