2 * dialog preference panel
\r
4 * Copyright(c) 2009 olyutorskii
\r
5 * $Id: DialogPrefPanel.java 977 2010-01-02 15:54:12Z olyutorskii $
\r
8 package jp.sourceforge.jindolf;
\r
10 import java.awt.Container;
\r
11 import java.awt.GridBagConstraints;
\r
12 import java.awt.GridBagLayout;
\r
13 import java.awt.Insets;
\r
14 import java.awt.event.ActionEvent;
\r
15 import java.awt.event.ActionListener;
\r
16 import java.awt.event.ItemEvent;
\r
17 import java.awt.event.ItemListener;
\r
18 import javax.swing.BorderFactory;
\r
19 import javax.swing.JButton;
\r
20 import javax.swing.JCheckBox;
\r
21 import javax.swing.JComponent;
\r
22 import javax.swing.JPanel;
\r
23 import javax.swing.border.Border;
\r
28 @SuppressWarnings("serial")
\r
29 public class DialogPrefPanel
\r
31 implements ActionListener,
\r
34 private final JCheckBox useBodyImage = new JCheckBox("デカキャラモード");
\r
35 private final JCheckBox useMonoImage =
\r
36 new JCheckBox("墓石を遺影に置き換える");
\r
37 private final JCheckBox isSimpleMode =
\r
38 new JCheckBox("シンプル表示モード");
\r
39 private final JCheckBox alignBaloon =
\r
40 new JCheckBox("フキダシ幅を揃える");
\r
41 private final JButton resetDefault = new JButton("出荷時に戻す");
\r
46 public DialogPrefPanel(){
\r
47 this.resetDefault.addActionListener(this);
\r
48 this.isSimpleMode.addItemListener(this);
\r
58 * @param content コンテナ
\r
60 private void design(Container content){
\r
61 GridBagLayout layout = new GridBagLayout();
\r
62 GridBagConstraints constraints = new GridBagConstraints();
\r
64 content.setLayout(layout);
\r
66 constraints.insets = new Insets(2, 2, 2, 2);
\r
68 constraints.weightx = 0.0;
\r
69 constraints.gridwidth = GridBagConstraints.REMAINDER;
\r
70 constraints.fill = GridBagConstraints.NONE;
\r
71 constraints.anchor = GridBagConstraints.NORTHWEST;
\r
73 content.add(this.isSimpleMode, constraints);
\r
74 content.add(this.alignBaloon, constraints);
\r
75 content.add(buildIconPanel(), constraints);
\r
77 constraints.weightx = 1.0;
\r
78 constraints.weighty = 1.0;
\r
79 constraints.fill = GridBagConstraints.NONE;
\r
80 constraints.anchor = GridBagConstraints.SOUTHEAST;
\r
81 content.add(this.resetDefault, constraints);
\r
90 private JComponent buildIconPanel(){
\r
91 JPanel result = new JPanel();
\r
93 GridBagLayout layout = new GridBagLayout();
\r
94 GridBagConstraints constraints = new GridBagConstraints();
\r
95 result.setLayout(layout);
\r
97 constraints.insets = new Insets(1, 1, 1, 1);
\r
99 constraints.weightx = 0.0;
\r
100 constraints.gridwidth = GridBagConstraints.REMAINDER;
\r
101 constraints.fill = GridBagConstraints.NONE;
\r
102 constraints.anchor = GridBagConstraints.NORTHWEST;
\r
104 result.add(this.useBodyImage, constraints);
\r
105 result.add(this.useMonoImage, constraints);
\r
107 Border border = BorderFactory.createTitledBorder("アイコン表示");
\r
108 result.setBorder(border);
\r
116 private void modifyGUIState(){
\r
117 if(this.isSimpleMode.isSelected()){
\r
118 this.useBodyImage.setEnabled(false);
\r
119 this.useMonoImage.setEnabled(false);
\r
120 this.alignBaloon .setEnabled(false);
\r
122 this.useBodyImage.setEnabled(true);
\r
123 this.useMonoImage.setEnabled(true);
\r
124 this.alignBaloon .setEnabled(true);
\r
131 * デカキャラモードを使うか否か画面の状態を返す。
\r
132 * @return デカキャラモードを使うならtrue
\r
134 public boolean useBodyImage(){
\r
135 return this.useBodyImage.isSelected();
\r
139 * 遺影モードを使うか否か画面の状態を返す。
\r
140 * @return 遺影モードを使うならtrue
\r
142 public boolean useMonoImage(){
\r
143 return this.useMonoImage.isSelected();
\r
147 * シンプル表示モードか否か画面の状態を返す。
\r
148 * @return シンプル表示モードならtrue
\r
150 public boolean isSimpleMode(){
\r
151 return this.isSimpleMode.isSelected();
\r
155 * フキダシ幅を揃えるか否か画面の状態を返す。
\r
156 * @return フキダシ幅を揃えるならtrue
\r
158 public boolean alignBaloon(){
\r
159 return this.alignBaloon.isSelected();
\r
164 * @param setting 有効にするならtrue
\r
166 public void setBodyImageSetting(boolean setting){
\r
167 this.useBodyImage.setSelected(setting);
\r
173 * @param setting 有効にするならtrue
\r
175 public void setMonoImageSetting(boolean setting){
\r
176 this.useMonoImage.setSelected(setting);
\r
182 * @param setting 有効にするならtrue
\r
184 public void setSimpleModeSetting(boolean setting){
\r
185 this.isSimpleMode.setSelected(setting);
\r
192 * @param setting 有効にするならtrue
\r
194 public void setAlignBaloonSetting(boolean setting){
\r
195 this.alignBaloon.setSelected(setting);
\r
203 public void setDialogPref(DialogPref pref){
\r
204 setBodyImageSetting(pref.useBodyImage());
\r
205 setMonoImageSetting(pref.useMonoImage());
\r
206 setSimpleModeSetting(pref.isSimpleMode());
\r
207 setAlignBaloonSetting(pref.alignBaloonWidth());
\r
216 public DialogPref getDialogPref(){
\r
217 DialogPref result = new DialogPref();
\r
218 result.setBodyImageSetting(useBodyImage());
\r
219 result.setMonoImageSetting(useMonoImage());
\r
220 result.setSimpleMode(isSimpleMode());
\r
221 result.setAlignBalooonWidthSetting(alignBaloon());
\r
227 * @param event ボタン押下イベント
\r
229 public void actionPerformed(ActionEvent event){
\r
230 Object source = event.getSource();
\r
231 if(source != this.resetDefault) return;
\r
232 this.useBodyImage.setSelected(false);
\r
233 this.useMonoImage.setSelected(false);
\r
234 this.isSimpleMode.setSelected(false);
\r
235 this.alignBaloon.setSelected(false);
\r
242 * @param event チェックボックス操作イベント
\r
244 public void itemStateChanged(ItemEvent event){
\r