/*
Copyright (C) 2011 monte
This file is part of PSP NetParty.
PSP NetParty is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package pspnetparty.client.swt.config;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Spinner;
import org.eclipse.swt.widgets.Text;
public class ChatTextPresetsPage extends PreferencePage {
private IniSettings settings;
private IniChatTextPresets chatTextPresets;
private Button showPresetButtons;
private Spinner presetButtonMaxLength;
private Text textF1;
private Text textF2;
private Text textF3;
private Text textF4;
private Text textF5;
private Text textF6;
private Text textF7;
private Text textF8;
private Text textF9;
private Text textF10;
private Text textF11;
private Text textF12;
private Button enableKeyInput;
public ChatTextPresetsPage(IniSettings settings, IniChatTextPresets presets) {
super("チャット定型文");
this.settings = settings;
chatTextPresets = presets;
noDefaultAndApplyButton();
}
@Override
protected Control createContents(Composite parent) {
GridLayout gridLayout;
GridData gridData;
GridData textGridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
Composite container = new Composite(parent, SWT.NONE);
gridLayout = new GridLayout(1, false);
gridLayout.horizontalSpacing = 0;
gridLayout.verticalSpacing = 6;
gridLayout.marginWidth = 0;
gridLayout.marginHeight = 0;
gridLayout.marginTop = 2;
container.setLayout(gridLayout);
Composite showButtonContainer = new Composite(container, SWT.NONE);
gridLayout = new GridLayout(4, false);
gridLayout.horizontalSpacing = 4;
gridLayout.verticalSpacing = 0;
gridLayout.marginWidth = 0;
gridLayout.marginHeight = 0;
showButtonContainer.setLayout(gridLayout);
showButtonContainer.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
showPresetButtons = new Button(showButtonContainer, SWT.CHECK | SWT.FLAT);
showPresetButtons.setText("定型文ボタンを表示する");
showPresetButtons.setSelection(settings.isShowChatPresetButtons());
Label presetButtonMaxLengthLabel1 = new Label(showButtonContainer, SWT.NONE);
presetButtonMaxLengthLabel1.setText("ボタンの最大文字数");
gridData = new GridData(SWT.LEFT, SWT.CENTER, false, false);
gridData.horizontalIndent = 30;
presetButtonMaxLengthLabel1.setLayoutData(gridData);
presetButtonMaxLength = new Spinner(showButtonContainer, SWT.BORDER);
presetButtonMaxLength.setMinimum(1);
presetButtonMaxLength.setSelection(settings.getChatPresetButtonMaxLength());
presetButtonMaxLength.setEnabled(settings.isShowChatPresetButtons());
Label presetButtonMaxLengthLabel2 = new Label(showButtonContainer, SWT.NONE);
presetButtonMaxLengthLabel2.setText("文字");
Composite enableKeyInputContainer = new Composite(container, SWT.NONE);
gridLayout = new GridLayout(1, false);
gridLayout.horizontalSpacing = 0;
gridLayout.verticalSpacing = 0;
gridLayout.marginWidth = 0;
gridLayout.marginHeight = 0;
enableKeyInputContainer.setLayout(gridLayout);
enableKeyInputContainer.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
enableKeyInput = new Button(enableKeyInputContainer, SWT.CHECK | SWT.FLAT);
enableKeyInput.setText("キーボードでの入力を有効にする");
enableKeyInput.setSelection(settings.isChatPresetEnableKeyInput());
Composite presetContainer = new Composite(container, SWT.NONE);
gridLayout = new GridLayout(2, false);
gridLayout.horizontalSpacing = 8;
gridLayout.verticalSpacing = 6;
gridLayout.marginWidth = 0;
gridLayout.marginHeight = 0;
gridLayout.marginTop = 5;
presetContainer.setLayout(gridLayout);
presetContainer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
GridData labelGridData = new GridData(SWT.CENTER, SWT.CENTER, false, false);
Label labelF1 = new Label(presetContainer, SWT.NONE);
labelF1.setText("F1");
labelF1.setLayoutData(labelGridData);
textF1 = new Text(presetContainer, SWT.SINGLE | SWT.BORDER);
textF1.setText(chatTextPresets.getPresetF1());
textF1.setLayoutData(textGridData);
Label labelF2 = new Label(presetContainer, SWT.NONE);
labelF2.setText("F2");
labelF2.setLayoutData(labelGridData);
textF2 = new Text(presetContainer, SWT.SINGLE | SWT.BORDER);
textF2.setText(chatTextPresets.getPresetF2());
textF2.setLayoutData(textGridData);
Label labelF3 = new Label(presetContainer, SWT.NONE);
labelF3.setText("F3");
labelF3.setLayoutData(labelGridData);
textF3 = new Text(presetContainer, SWT.SINGLE | SWT.BORDER);
textF3.setText(chatTextPresets.getPresetF3());
textF3.setLayoutData(textGridData);
Label labelF4 = new Label(presetContainer, SWT.NONE);
labelF4.setText("F4");
labelF4.setLayoutData(labelGridData);
textF4 = new Text(presetContainer, SWT.SINGLE | SWT.BORDER);
textF4.setText(chatTextPresets.getPresetF4());
textF4.setLayoutData(textGridData);
Label labelF5 = new Label(presetContainer, SWT.NONE);
labelF5.setText("F5");
labelF5.setLayoutData(labelGridData);
textF5 = new Text(presetContainer, SWT.SINGLE | SWT.BORDER);
textF5.setText(chatTextPresets.getPresetF5());
textF5.setLayoutData(textGridData);
Label labelF6 = new Label(presetContainer, SWT.NONE);
labelF6.setText("F6");
labelF6.setLayoutData(labelGridData);
textF6 = new Text(presetContainer, SWT.SINGLE | SWT.BORDER);
textF6.setText(chatTextPresets.getPresetF6());
textF6.setLayoutData(textGridData);
Label labelF7 = new Label(presetContainer, SWT.NONE);
labelF7.setText("F7");
labelF7.setLayoutData(labelGridData);
textF7 = new Text(presetContainer, SWT.SINGLE | SWT.BORDER);
textF7.setText(chatTextPresets.getPresetF7());
textF7.setLayoutData(textGridData);
Label labelF8 = new Label(presetContainer, SWT.NONE);
labelF8.setText("F8");
labelF8.setLayoutData(labelGridData);
textF8 = new Text(presetContainer, SWT.SINGLE | SWT.BORDER);
textF8.setText(chatTextPresets.getPresetF8());
textF8.setLayoutData(textGridData);
Label labelF9 = new Label(presetContainer, SWT.NONE);
labelF9.setText("F9");
labelF9.setLayoutData(labelGridData);
textF9 = new Text(presetContainer, SWT.SINGLE | SWT.BORDER);
textF9.setText(chatTextPresets.getPresetF9());
textF9.setLayoutData(textGridData);
labelGridData = new GridData(SWT.CENTER, SWT.CENTER, false, false);
Label labelF10 = new Label(presetContainer, SWT.NONE);
labelF10.setText("F10");
labelF10.setLayoutData(labelGridData);
textF10 = new Text(presetContainer, SWT.SINGLE | SWT.BORDER);
textF10.setText(chatTextPresets.getPresetF10());
textF10.setLayoutData(textGridData);
Label labelF11 = new Label(presetContainer, SWT.NONE);
labelF11.setText("F11");
labelF11.setLayoutData(labelGridData);
textF11 = new Text(presetContainer, SWT.SINGLE | SWT.BORDER);
textF11.setText(chatTextPresets.getPresetF11());
textF11.setLayoutData(textGridData);
Label labelF12 = new Label(presetContainer, SWT.NONE);
labelF12.setText("F12");
labelF12.setLayoutData(labelGridData);
textF12 = new Text(presetContainer, SWT.SINGLE | SWT.BORDER);
textF12.setText(chatTextPresets.getPresetF12());
textF12.setLayoutData(textGridData);
showPresetButtons.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
presetButtonMaxLength.setEnabled(showPresetButtons.getSelection());
}
});
return container;
}
private void reflectValues() {
if (!isControlCreated())
return;
settings.setShowChatPresetButtons(showPresetButtons.getSelection());
settings.setChatPresetButtonMaxLength(presetButtonMaxLength.getSelection());
settings.setChatPresetEnableKeyInput(enableKeyInput.getSelection());
chatTextPresets.setPresetF1(textF1.getText());
chatTextPresets.setPresetF2(textF2.getText());
chatTextPresets.setPresetF3(textF3.getText());
chatTextPresets.setPresetF4(textF4.getText());
chatTextPresets.setPresetF5(textF5.getText());
chatTextPresets.setPresetF6(textF6.getText());
chatTextPresets.setPresetF7(textF7.getText());
chatTextPresets.setPresetF8(textF8.getText());
chatTextPresets.setPresetF9(textF9.getText());
chatTextPresets.setPresetF10(textF10.getText());
chatTextPresets.setPresetF11(textF11.getText());
chatTextPresets.setPresetF12(textF12.getText());
}
@Override
public boolean performOk() {
reflectValues();
return super.performOk();
}
}