OSDN Git Service

Merge branch 'Branch_release-'
[jindolf/Jindolf.git] / src / main / java / jp / sfjp / jindolf / view / DialogPrefPanel.java
-/*\r
- * dialog preference panel\r
- *\r
- * Copyright(c) 2009 olyutorskii\r
- * $Id: DialogPrefPanel.java 977 2010-01-02 15:54:12Z olyutorskii $\r
- */\r
-\r
-package jp.sourceforge.jindolf;\r
-\r
-import java.awt.Container;\r
-import java.awt.GridBagConstraints;\r
-import java.awt.GridBagLayout;\r
-import java.awt.Insets;\r
-import java.awt.event.ActionEvent;\r
-import java.awt.event.ActionListener;\r
-import java.awt.event.ItemEvent;\r
-import java.awt.event.ItemListener;\r
-import javax.swing.BorderFactory;\r
-import javax.swing.JButton;\r
-import javax.swing.JCheckBox;\r
-import javax.swing.JComponent;\r
-import javax.swing.JPanel;\r
-import javax.swing.border.Border;\r
-\r
-/**\r
- * 発言表示の各種設定パネル。\r
- */\r
-@SuppressWarnings("serial")\r
-public class DialogPrefPanel\r
-        extends JPanel\r
-        implements ActionListener,\r
-                   ItemListener {\r
-\r
-    private final JCheckBox useBodyImage = new JCheckBox("デカキャラモード");\r
-    private final JCheckBox useMonoImage =\r
-            new JCheckBox("墓石を遺影に置き換える");\r
-    private final JCheckBox isSimpleMode =\r
-            new JCheckBox("シンプル表示モード");\r
-    private final JCheckBox alignBaloon =\r
-            new JCheckBox("フキダシ幅を揃える");\r
-    private final JButton resetDefault = new JButton("出荷時に戻す");\r
-\r
-    /**\r
-     * コンストラクタ。\r
-     */\r
-    public DialogPrefPanel(){\r
-        this.resetDefault.addActionListener(this);\r
-        this.isSimpleMode.addItemListener(this);\r
-\r
-        design(this);\r
-        modifyGUIState();\r
-\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * レイアウトを行う。\r
-     * @param content コンテナ\r
-     */\r
-    private void design(Container content){\r
-        GridBagLayout layout = new GridBagLayout();\r
-        GridBagConstraints constraints = new GridBagConstraints();\r
-\r
-        content.setLayout(layout);\r
-\r
-        constraints.insets = new Insets(2, 2, 2, 2);\r
-\r
-        constraints.weightx = 0.0;\r
-        constraints.gridwidth = GridBagConstraints.REMAINDER;\r
-        constraints.fill = GridBagConstraints.NONE;\r
-        constraints.anchor = GridBagConstraints.NORTHWEST;\r
-\r
-        content.add(this.isSimpleMode, constraints);\r
-        content.add(this.alignBaloon, constraints);\r
-        content.add(buildIconPanel(), constraints);\r
-\r
-        constraints.weightx = 1.0;\r
-        constraints.weighty = 1.0;\r
-        constraints.fill = GridBagConstraints.NONE;\r
-        constraints.anchor = GridBagConstraints.SOUTHEAST;\r
-        content.add(this.resetDefault, constraints);\r
-\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * アイコン設定パネルを生成する。\r
-     * @return アイコン設定パネル\r
-     */\r
-    private JComponent buildIconPanel(){\r
-        JPanel result = new JPanel();\r
-\r
-        GridBagLayout layout = new GridBagLayout();\r
-        GridBagConstraints constraints = new GridBagConstraints();\r
-        result.setLayout(layout);\r
-\r
-        constraints.insets = new Insets(1, 1, 1, 1);\r
-\r
-        constraints.weightx = 0.0;\r
-        constraints.gridwidth = GridBagConstraints.REMAINDER;\r
-        constraints.fill = GridBagConstraints.NONE;\r
-        constraints.anchor = GridBagConstraints.NORTHWEST;\r
-\r
-        result.add(this.useBodyImage, constraints);\r
-        result.add(this.useMonoImage, constraints);\r
-\r
-        Border border = BorderFactory.createTitledBorder("アイコン表示");\r
-        result.setBorder(border);\r
-\r
-        return result;\r
-    }\r
-\r
-    /**\r
-     * GUI間の一貫性を維持する。\r
-     */\r
-    private void modifyGUIState(){\r
-        if(this.isSimpleMode.isSelected()){\r
-            this.useBodyImage.setEnabled(false);\r
-            this.useMonoImage.setEnabled(false);\r
-            this.alignBaloon .setEnabled(false);\r
-        }else{\r
-            this.useBodyImage.setEnabled(true);\r
-            this.useMonoImage.setEnabled(true);\r
-            this.alignBaloon .setEnabled(true);\r
-        }\r
-\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * デカキャラモードを使うか否か画面の状態を返す。\r
-     * @return デカキャラモードを使うならtrue\r
-     */\r
-    public boolean useBodyImage(){\r
-        return this.useBodyImage.isSelected();\r
-    }\r
-\r
-    /**\r
-     * 遺影モードを使うか否か画面の状態を返す。\r
-     * @return 遺影モードを使うならtrue\r
-     */\r
-    public boolean useMonoImage(){\r
-        return this.useMonoImage.isSelected();\r
-    }\r
-\r
-    /**\r
-     * シンプル表示モードか否か画面の状態を返す。\r
-     * @return シンプル表示モードならtrue\r
-     */\r
-    public boolean isSimpleMode(){\r
-        return this.isSimpleMode.isSelected();\r
-    }\r
-\r
-    /**\r
-     * フキダシ幅を揃えるか否か画面の状態を返す。\r
-     * @return フキダシ幅を揃えるならtrue\r
-     */\r
-    public boolean alignBaloon(){\r
-        return this.alignBaloon.isSelected();\r
-    }\r
-\r
-    /**\r
-     * デカキャラモードの設定を行う。\r
-     * @param setting 有効にするならtrue\r
-     */\r
-    public void setBodyImageSetting(boolean setting){\r
-        this.useBodyImage.setSelected(setting);\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * 遺影モードの設定を行う。\r
-     * @param setting 有効にするならtrue\r
-     */\r
-    public void setMonoImageSetting(boolean setting){\r
-        this.useMonoImage.setSelected(setting);\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * シンプル表示モードの設定を行う。\r
-     * @param setting 有効にするならtrue\r
-     */\r
-    public void setSimpleModeSetting(boolean setting){\r
-        this.isSimpleMode.setSelected(setting);\r
-        modifyGUIState();\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * フキダシ幅揃えの設定を行う。\r
-     * @param setting 有効にするならtrue\r
-     */\r
-    public void setAlignBaloonSetting(boolean setting){\r
-        this.alignBaloon.setSelected(setting);\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * 発言表示設定を設定する。\r
-     * @param pref 表示設定\r
-     */\r
-    public void setDialogPref(DialogPref pref){\r
-        setBodyImageSetting(pref.useBodyImage());\r
-        setMonoImageSetting(pref.useMonoImage());\r
-        setSimpleModeSetting(pref.isSimpleMode());\r
-        setAlignBaloonSetting(pref.alignBaloonWidth());\r
-        modifyGUIState();\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * 発言表示設定を返す。\r
-     * @return 表示設定\r
-     */\r
-    public DialogPref getDialogPref(){\r
-        DialogPref result = new DialogPref();\r
-        result.setBodyImageSetting(useBodyImage());\r
-        result.setMonoImageSetting(useMonoImage());\r
-        result.setSimpleMode(isSimpleMode());\r
-        result.setAlignBalooonWidthSetting(alignBaloon());\r
-        return result;\r
-    }\r
-\r
-    /**\r
-     * デフォルトボタン押下処理。\r
-     * @param event ボタン押下イベント\r
-     */\r
-    public void actionPerformed(ActionEvent event){\r
-        Object source = event.getSource();\r
-        if(source != this.resetDefault) return;\r
-        this.useBodyImage.setSelected(false);\r
-        this.useMonoImage.setSelected(false);\r
-        this.isSimpleMode.setSelected(false);\r
-        this.alignBaloon.setSelected(false);\r
-        modifyGUIState();\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * チェックボックス操作の受信。\r
-     * @param event チェックボックス操作イベント\r
-     */\r
-    public void itemStateChanged(ItemEvent event){\r
-        modifyGUIState();\r
-        return;\r
-    }\r
-\r
-}\r
+/*
+ * dialog preference panel
+ *
+ * License : The MIT License
+ * Copyright(c) 2009 olyutorskii
+ */
+
+package jp.sfjp.jindolf.view;
+
+import java.awt.Container;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JComponent;
+import javax.swing.JPanel;
+import javax.swing.border.Border;
+import jp.sfjp.jindolf.data.DialogPref;
+
+/**
+ * 発言表示の各種設定パネル。
+ */
+@SuppressWarnings("serial")
+public class DialogPrefPanel
+        extends JPanel
+        implements ActionListener,
+                   ItemListener {
+
+    private final JCheckBox useBodyImage = new JCheckBox("デカキャラモード");
+    private final JCheckBox useMonoImage =
+            new JCheckBox("墓石を遺影に置き換える");
+    private final JCheckBox isSimpleMode =
+            new JCheckBox("シンプル表示モード");
+    private final JCheckBox alignBaloon =
+            new JCheckBox("フキダシ幅を揃える");
+    private final JButton resetDefault = new JButton("出荷時に戻す");
+
+    /**
+     * コンストラクタ。
+     */
+    @SuppressWarnings("LeakingThisInConstructor")
+    public DialogPrefPanel(){
+        super();
+
+        this.resetDefault.addActionListener(this);
+        this.isSimpleMode.addItemListener(this);
+
+        design(this);
+        modifyGUIState();
+
+        return;
+    }
+
+    /**
+     * レイアウトを行う。
+     * @param content コンテナ
+     */
+    private void design(Container content){
+        GridBagLayout layout = new GridBagLayout();
+        GridBagConstraints constraints = new GridBagConstraints();
+
+        content.setLayout(layout);
+
+        constraints.insets = new Insets(2, 2, 2, 2);
+
+        constraints.weightx = 0.0;
+        constraints.gridwidth = GridBagConstraints.REMAINDER;
+        constraints.fill = GridBagConstraints.NONE;
+        constraints.anchor = GridBagConstraints.NORTHWEST;
+
+        content.add(this.isSimpleMode, constraints);
+        content.add(this.alignBaloon, constraints);
+        content.add(buildIconPanel(), constraints);
+
+        constraints.weightx = 1.0;
+        constraints.weighty = 1.0;
+        constraints.fill = GridBagConstraints.NONE;
+        constraints.anchor = GridBagConstraints.SOUTHEAST;
+        content.add(this.resetDefault, constraints);
+
+        return;
+    }
+
+    /**
+     * アイコン設定パネルを生成する。
+     * @return アイコン設定パネル
+     */
+    private JComponent buildIconPanel(){
+        JPanel result = new JPanel();
+
+        GridBagLayout layout = new GridBagLayout();
+        GridBagConstraints constraints = new GridBagConstraints();
+        result.setLayout(layout);
+
+        constraints.insets = new Insets(1, 1, 1, 1);
+
+        constraints.weightx = 0.0;
+        constraints.gridwidth = GridBagConstraints.REMAINDER;
+        constraints.fill = GridBagConstraints.NONE;
+        constraints.anchor = GridBagConstraints.NORTHWEST;
+
+        result.add(this.useBodyImage, constraints);
+        result.add(this.useMonoImage, constraints);
+
+        Border border = BorderFactory.createTitledBorder("アイコン表示");
+        result.setBorder(border);
+
+        return result;
+    }
+
+    /**
+     * GUI間の一貫性を維持する。
+     */
+    private void modifyGUIState(){
+        if(this.isSimpleMode.isSelected()){
+            this.useBodyImage.setEnabled(false);
+            this.useMonoImage.setEnabled(false);
+            this.alignBaloon .setEnabled(false);
+        }else{
+            this.useBodyImage.setEnabled(true);
+            this.useMonoImage.setEnabled(true);
+            this.alignBaloon .setEnabled(true);
+        }
+
+        return;
+    }
+
+    /**
+     * デカキャラモードを使うか否か画面の状態を返す。
+     * @return デカキャラモードを使うならtrue
+     */
+    public boolean useBodyImage(){
+        return this.useBodyImage.isSelected();
+    }
+
+    /**
+     * 遺影モードを使うか否か画面の状態を返す。
+     * @return 遺影モードを使うならtrue
+     */
+    public boolean useMonoImage(){
+        return this.useMonoImage.isSelected();
+    }
+
+    /**
+     * シンプル表示モードか否か画面の状態を返す。
+     * @return シンプル表示モードならtrue
+     */
+    public boolean isSimpleMode(){
+        return this.isSimpleMode.isSelected();
+    }
+
+    /**
+     * フキダシ幅を揃えるか否か画面の状態を返す。
+     * @return フキダシ幅を揃えるならtrue
+     */
+    public boolean alignBaloon(){
+        return this.alignBaloon.isSelected();
+    }
+
+    /**
+     * デカキャラモードの設定を行う。
+     * @param setting 有効にするならtrue
+     */
+    public void setBodyImageSetting(boolean setting){
+        this.useBodyImage.setSelected(setting);
+        return;
+    }
+
+    /**
+     * 遺影モードの設定を行う。
+     * @param setting 有効にするならtrue
+     */
+    public void setMonoImageSetting(boolean setting){
+        this.useMonoImage.setSelected(setting);
+        return;
+    }
+
+    /**
+     * シンプル表示モードの設定を行う。
+     * @param setting 有効にするならtrue
+     */
+    public void setSimpleModeSetting(boolean setting){
+        this.isSimpleMode.setSelected(setting);
+        modifyGUIState();
+        return;
+    }
+
+    /**
+     * フキダシ幅揃えの設定を行う。
+     * @param setting 有効にするならtrue
+     */
+    public void setAlignBaloonSetting(boolean setting){
+        this.alignBaloon.setSelected(setting);
+        return;
+    }
+
+    /**
+     * 発言表示設定を設定する。
+     * @param pref 表示設定
+     */
+    public void setDialogPref(DialogPref pref){
+        setBodyImageSetting(pref.useBodyImage());
+        setMonoImageSetting(pref.useMonoImage());
+        setSimpleModeSetting(pref.isSimpleMode());
+        setAlignBaloonSetting(pref.alignBaloonWidth());
+        modifyGUIState();
+        return;
+    }
+
+    /**
+     * 発言表示設定を返す。
+     * @return 表示設定
+     */
+    public DialogPref getDialogPref(){
+        DialogPref result = new DialogPref();
+        result.setBodyImageSetting(useBodyImage());
+        result.setMonoImageSetting(useMonoImage());
+        result.setSimpleMode(isSimpleMode());
+        result.setAlignBalooonWidthSetting(alignBaloon());
+        return result;
+    }
+
+    /**
+     * デフォルトボタン押下処理。
+     * @param event ボタン押下イベント
+     */
+    @Override
+    public void actionPerformed(ActionEvent event){
+        Object source = event.getSource();
+        if(source != this.resetDefault) return;
+        this.useBodyImage.setSelected(false);
+        this.useMonoImage.setSelected(false);
+        this.isSimpleMode.setSelected(false);
+        this.alignBaloon.setSelected(false);
+        modifyGUIState();
+        return;
+    }
+
+    /**
+     * チェックボックス操作の受信。
+     * @param event チェックボックス操作イベント
+     */
+    @Override
+    public void itemStateChanged(ItemEvent event){
+        modifyGUIState();
+        return;
+    }
+
+}