2
* Created on 17-dic-2005
4
* TODO To change the template for this generated file go to
5
* Window - Preferences - Java - Code Style - Code Templates
7
package org.herac.tuxguitar.gui.system.config;
9
import java.util.ArrayList;
10
import java.util.Iterator;
11
import java.util.List;
13
import org.eclipse.swt.SWT;
14
import org.eclipse.swt.events.SelectionAdapter;
15
import org.eclipse.swt.events.SelectionEvent;
16
import org.eclipse.swt.layout.FormLayout;
17
import org.eclipse.swt.layout.GridData;
18
import org.eclipse.swt.layout.GridLayout;
19
import org.eclipse.swt.widgets.Button;
20
import org.eclipse.swt.widgets.Composite;
21
import org.eclipse.swt.widgets.Shell;
22
import org.eclipse.swt.widgets.ToolBar;
23
import org.herac.tuxguitar.gui.TuxGuitar;
24
import org.herac.tuxguitar.gui.editors.TablatureEditor;
25
import org.herac.tuxguitar.gui.system.config.items.LanguageOption;
26
import org.herac.tuxguitar.gui.system.config.items.MainOption;
27
import org.herac.tuxguitar.gui.system.config.items.Option;
28
import org.herac.tuxguitar.gui.system.config.items.StylesOption;
29
import org.herac.tuxguitar.gui.system.config.items.ToolBarsOption;
30
import org.herac.tuxguitar.gui.util.ConfirmDialog;
35
* TODO To change the template for this generated type comment go to
36
* Window - Preferences - Java - Code Style - Code Templates
38
public class ConfigEditor{
40
private ConfigManager config;
44
public ConfigEditor() {
45
this.config = TuxGuitar.instance().getConfig();
48
public void showDialog(Shell shell) {
49
this.dialog = new Shell(shell, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
51
dialog.setLayout(new GridLayout());
52
dialog.setText(TuxGuitar.getProperty("settings.config"));
54
//-------main-------------------------------------
55
Composite mainComposite = new Composite(dialog,SWT.NONE);
56
mainComposite.setLayout(new GridLayout(2,false));
57
createComposites(mainComposite);
59
//-------buttons-------------------------------------
61
Composite buttonComposite = new Composite(dialog,SWT.NONE);
62
buttonComposite.setLayout(new GridLayout(3,true));
63
buttonComposite.setLayoutData(new GridData(SWT.END,SWT.FILL,true,true));
66
Button buttonDefaults = new Button(buttonComposite, SWT.PUSH);
67
buttonDefaults.setLayoutData(makeGridData(80,25));
68
buttonDefaults.setText(TuxGuitar.getProperty("defaults"));
69
buttonDefaults.addSelectionListener(new SelectionAdapter() {
70
public void widgetSelected(SelectionEvent arg0) {
72
TuxGuitar.instance().getItemManager().saveDefaultToolBars();
73
if(new ConfirmDialog(dialog,TuxGuitar.getProperty("settings.config.apply-changes-question")).confirm()){
81
Button buttonOK = new Button(buttonComposite, SWT.PUSH);
82
buttonOK.setLayoutData(makeGridData(80,25));
83
buttonOK.setText(TuxGuitar.getProperty("ok"));
84
buttonOK.addSelectionListener(new SelectionAdapter() {
85
public void widgetSelected(SelectionEvent arg0) {
87
if(new ConfirmDialog(dialog,TuxGuitar.getProperty("settings.config.apply-changes-question")).confirm()){
94
Button buttonCancel = new Button(buttonComposite, SWT.PUSH);
95
buttonCancel.setLayoutData(makeGridData(80,25));
96
buttonCancel.setText(TuxGuitar.getProperty("cancel"));
97
buttonCancel.addSelectionListener(new SelectionAdapter() {
98
public void widgetSelected(SelectionEvent arg0) {
106
int x = shell.getBounds().x + (shell.getBounds().width - dialog.getSize().x) / 2;
107
int y = shell.getBounds().y + (shell.getBounds().height - dialog.getSize().y) / 2;
108
dialog.setLocation(x, y);
110
while (!dialog.isDisposed()) {
111
if (!dialog.getDisplay().readAndDispatch()) {
112
dialog.getDisplay().sleep();
117
private void createComposites(Composite parent) {
118
ToolBar toolBar = new ToolBar(parent, SWT.VERTICAL | SWT.FLAT | SWT.WRAP);
119
toolBar.setLayoutData(makeGridData(60,350));
121
Composite option = new Composite(parent,SWT.NONE);
122
option.setLayout(new FormLayout());
123
option.setLayoutData(makeGridData(250,350));
125
initOptions(toolBar,option);
126
if(this.options.size() > 0){
127
select((Option)options.get(0));
131
private void initOptions(ToolBar toolBar,Composite parent){
132
this.options = new ArrayList();
133
this.options.add(new MainOption(this,toolBar,parent));
134
this.options.add(new StylesOption(this,toolBar,parent));
135
this.options.add(new LanguageOption(this,toolBar,parent));
136
this.options.add(new ToolBarsOption(this,toolBar,parent));
138
Option sound = TuxGuitar.instance().getPlayer().getConfigOption(this,toolBar,parent);
140
this.options.add(sound);
143
Iterator it = this.options.iterator();
145
Option option = (Option)it.next();
146
option.createOption();
150
public GridData makeGridData(int minWith,int minHeight){
151
return makeGridData(0,0,minWith,minHeight);
154
public GridData makeGridData(int with,int height,int minWith,int minHeight){
155
GridData data = new GridData();
156
data.minimumWidth = minWith;
157
data.minimumHeight = minHeight;
159
data.widthHint = with;
161
data.horizontalAlignment = SWT.FILL;
162
data.grabExcessHorizontalSpace = true;
165
data.heightHint = with;
167
data.verticalAlignment = SWT.FILL;
168
data.grabExcessVerticalSpace = true;
175
public void select(Option option){
177
option.setVisible(true);
181
private void hideAll(){
182
Iterator it = this.options.iterator();
184
Option option = (Option)it.next();
185
option.setVisible(false);
189
private void updateOptions(){
190
Iterator it = this.options.iterator();
192
Option option = (Option)it.next();
193
option.updateConfig();
198
private void applyConfig(boolean force){
199
Iterator it = this.options.iterator();
201
Option option = (Option)it.next();
202
option.applyConfig(force);
204
TuxGuitar.instance().fireUpdate();
205
TuxGuitar.instance().redraw();
208
public ConfigManager getConfig(){
212
public TablatureEditor getEditor(){
213
return TuxGuitar.instance().getTablatureEditor();