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