~ubuntu-branches/ubuntu/oneiric/tuxguitar/oneiric

« back to all changes in this revision

Viewing changes to TuxGuitar/src/org/herac/tuxguitar/gui/system/config/items/Option.java

  • Committer: Bazaar Package Importer
  • Author(s): Philippe Coval
  • Date: 2008-06-19 00:30:30 UTC
  • mto: (5.1.2 sid)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20080619003030-h719szrhsngou7c6
Tags: upstream-1.0
ImportĀ upstreamĀ versionĀ 1.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package org.herac.tuxguitar.gui.system.config.items;
 
2
 
 
3
import java.util.Properties;
 
4
 
 
5
import org.eclipse.swt.SWT;
 
6
import org.eclipse.swt.events.DisposeEvent;
 
7
import org.eclipse.swt.events.DisposeListener;
 
8
import org.eclipse.swt.events.SelectionAdapter;
 
9
import org.eclipse.swt.events.SelectionEvent;
 
10
import org.eclipse.swt.graphics.Font;
 
11
import org.eclipse.swt.graphics.FontData;
 
12
import org.eclipse.swt.graphics.Image;
 
13
import org.eclipse.swt.graphics.Point;
 
14
import org.eclipse.swt.layout.FormAttachment;
 
15
import org.eclipse.swt.layout.FormData;
 
16
import org.eclipse.swt.layout.GridData;
 
17
import org.eclipse.swt.layout.GridLayout;
 
18
import org.eclipse.swt.widgets.Composite;
 
19
import org.eclipse.swt.widgets.Display;
 
20
import org.eclipse.swt.widgets.Group;
 
21
import org.eclipse.swt.widgets.Label;
 
22
import org.eclipse.swt.widgets.Shell;
 
23
import org.eclipse.swt.widgets.ToolBar;
 
24
import org.eclipse.swt.widgets.ToolItem;
 
25
import org.herac.tuxguitar.gui.TuxGuitar;
 
26
import org.herac.tuxguitar.gui.editors.TablatureEditor;
 
27
import org.herac.tuxguitar.gui.system.config.TGConfigEditor;
 
28
import org.herac.tuxguitar.gui.system.config.TGConfigManager;
 
29
 
 
30
public abstract class Option extends SelectionAdapter{
 
31
        
 
32
        protected static final int DEFAULT_INDENT = 20;
 
33
        
 
34
        private TGConfigEditor configEditor ;
 
35
        private ToolBar toolBar;
 
36
        private Group group;
 
37
        private Composite composite;
 
38
        private ToolItem toolItem;
 
39
        
 
40
        public Option(TGConfigEditor configEditor,ToolBar toolBar,final Composite parent,String text, int horizontalAlignment,int verticalAlignment){
 
41
                this.configEditor = configEditor;
 
42
                this.toolBar = toolBar;
 
43
                this.toolItem = new ToolItem(toolBar, SWT.RADIO);
 
44
                this.group = new Group(parent, SWT.SHADOW_ETCHED_IN);
 
45
                this.group.setLayout(new GridLayout());
 
46
                this.group.setLayoutData(getGroupData());
 
47
                this.group.setText(text);
 
48
                this.composite = new Composite(this.group, SWT.SHADOW_ETCHED_IN);
 
49
                this.composite.setLayout(new GridLayout());
 
50
                this.composite.setLayoutData(new GridData(horizontalAlignment,verticalAlignment,true ,true));
 
51
        }
 
52
        
 
53
        public Option(TGConfigEditor configEditor,ToolBar toolBar, Composite parent,String text){
 
54
                this(configEditor, toolBar, parent, text, SWT.FILL,SWT.TOP);
 
55
        }
 
56
        
 
57
        public abstract void createOption();
 
58
        
 
59
        public abstract void updateConfig();
 
60
        
 
61
        public abstract void updateDefaults();
 
62
        
 
63
        public abstract void applyConfig(boolean force);
 
64
        
 
65
        public void setVisible(boolean visible){
 
66
                this.toolItem.setSelection(visible);
 
67
                this.group.setVisible(visible);
 
68
                this.group.setFocus();
 
69
                this.group.redraw();
 
70
        }
 
71
        
 
72
        public void dispose(){
 
73
                //Override me
 
74
        }
 
75
        
 
76
        protected Label showLabel(Composite parent,int labelStyle,int fontStyle,int fontScale,String text){
 
77
                return showLabel(parent,SWT.FILL,SWT.CENTER, labelStyle, fontStyle, fontScale, text);
 
78
        }
 
79
        
 
80
        protected Label showLabel(Composite parent,int hAlign,int vAlign,int labelStyle,int fontStyle,int fontScale,String text){
 
81
                return showLabel(parent, hAlign, vAlign, true, true, labelStyle, fontStyle, fontScale, text);
 
82
        }
 
83
        
 
84
        protected Label showLabel(Composite parent,int hAlign,int vAlign,boolean grabExcessHSpace,boolean grabExcessVSpace,int labelStyle,int fontStyle,int fontScale,String text){
 
85
                Label label = new Label(parent,labelStyle);
 
86
                label.setText(text);
 
87
                label.setLayoutData(new GridData(hAlign,vAlign,grabExcessHSpace,grabExcessVSpace));
 
88
                
 
89
                FontData[] fontDatas = label.getFont().getFontData();
 
90
                if(fontDatas.length > 0){
 
91
                        final Font font = new Font(label.getDisplay(),fontDatas[0].getName(),(fontDatas[0].getHeight() + fontScale),fontStyle);
 
92
                        label.setFont(font);
 
93
                        label.addDisposeListener(new DisposeListener() {
 
94
                                public void widgetDisposed(DisposeEvent arg0) {
 
95
                                        font.dispose();
 
96
                                }
 
97
                        });
 
98
                }
 
99
                return label;
 
100
        }
 
101
        
 
102
        protected Label showImageLabel(Composite parent,int labelStyle,Image image){
 
103
                Label label = new Label(parent,labelStyle);
 
104
                label.setImage(image);
 
105
                return label;
 
106
        }
 
107
        
 
108
        protected FormData getGroupData(){
 
109
                FormData data = new FormData();
 
110
                data.top = new FormAttachment(0,0);
 
111
                data.bottom = new FormAttachment(100,0);
 
112
                data.left = new FormAttachment(0,0);
 
113
                data.right = new FormAttachment(100,0);
 
114
                return data;
 
115
        }
 
116
        
 
117
        public void widgetSelected(SelectionEvent e) {
 
118
                this.configEditor.select(this);
 
119
        }
 
120
        
 
121
        public Composite getComposite(){
 
122
                return this.composite;
 
123
        }
 
124
        
 
125
        public ToolItem getToolItem(){
 
126
                return this.toolItem;
 
127
        }
 
128
        
 
129
        public Point computeSize(){
 
130
                return this.computeSize(SWT.DEFAULT,SWT.DEFAULT);
 
131
        }
 
132
        
 
133
        protected Point computeSize(int wHint,int hHint){
 
134
                return this.group.computeSize(wHint, hHint);
 
135
        }
 
136
        
 
137
        public TGConfigManager getConfig(){
 
138
                return this.configEditor.getConfig();
 
139
        }
 
140
        
 
141
        public Properties getDefaults(){
 
142
                return this.configEditor.getDefaults();
 
143
        }
 
144
        
 
145
        public TablatureEditor getEditor(){
 
146
                return this.configEditor.getEditor();
 
147
        }
 
148
        
 
149
        public Display getDisplay(){
 
150
                return this.toolBar.getDisplay();
 
151
        }
 
152
        
 
153
        public Shell getShell(){
 
154
                return this.toolBar.getShell();
 
155
        }
 
156
        
 
157
        protected boolean isDisposed(){
 
158
                return (this.toolBar.isDisposed() || this.toolBar.getShell().isDisposed());
 
159
        }
 
160
        
 
161
        public  GridData makeGridData(int with,int height,int minWith,int minHeight){
 
162
                return this.configEditor.makeGridData(with, height, minWith, minHeight);
 
163
        }
 
164
        
 
165
        protected GridData getTabbedData(){
 
166
                return getTabbedData(DEFAULT_INDENT,SWT.FILL,SWT.CENTER);
 
167
        }
 
168
        
 
169
        protected GridData getTabbedData(int horizontalAlignment,int verticalAlignment, boolean grabExcessHorizontalSpace, boolean grabExcessVerticalSpace){
 
170
                return getTabbedData(DEFAULT_INDENT,horizontalAlignment,verticalAlignment,grabExcessHorizontalSpace,grabExcessVerticalSpace);
 
171
        }
 
172
        
 
173
        protected GridData getTabbedData(int horizontalAlignment,int verticalAlignment){
 
174
                return getTabbedData(DEFAULT_INDENT,horizontalAlignment,verticalAlignment);
 
175
        }
 
176
        
 
177
        protected GridData getTabbedData(int indent,int horizontalAlignment,int verticalAlignment){
 
178
                return getTabbedData(indent, horizontalAlignment, verticalAlignment, true, true);
 
179
        }
 
180
        
 
181
        protected GridData getTabbedData(int indent,int horizontalAlignment,int verticalAlignment, boolean grabExcessHorizontalSpace, boolean grabExcessVerticalSpace){
 
182
                GridData data = new GridData();
 
183
                data.horizontalAlignment = horizontalAlignment;
 
184
                data.grabExcessHorizontalSpace = grabExcessHorizontalSpace;
 
185
                data.verticalAlignment = verticalAlignment;
 
186
                data.grabExcessVerticalSpace = grabExcessVerticalSpace;
 
187
                data.horizontalIndent = indent;
 
188
                return data;
 
189
        }
 
190
        
 
191
        public GridData makeGridData(int widthHint,
 
192
                                                                 int heightHint,
 
193
                                                                 int minimumWidth,
 
194
                                                                 int minimumHeight,
 
195
                                                                 int horizontalAlignment,
 
196
                                                                 int verticalAlignment,
 
197
                                                                 boolean grabExcessHorizontalSpace,
 
198
                                                                 boolean grabExcessVerticalSpace,
 
199
                                                                 int horizontalSpan,
 
200
                                                                 int verticalSpan){
 
201
                GridData data = new GridData();
 
202
                data.widthHint = widthHint;
 
203
                data.heightHint = heightHint;
 
204
                data.minimumWidth = minimumWidth;
 
205
                data.minimumHeight = minimumHeight;
 
206
                data.horizontalAlignment = horizontalAlignment;
 
207
                data.verticalAlignment = verticalAlignment;
 
208
                data.grabExcessHorizontalSpace = grabExcessHorizontalSpace;
 
209
                data.grabExcessVerticalSpace = grabExcessVerticalSpace;
 
210
                data.horizontalSpan = horizontalSpan;
 
211
                data.verticalSpan = verticalSpan;
 
212
                
 
213
                return data;
 
214
        }
 
215
        
 
216
        public void pack(){
 
217
                this.configEditor.pack();
 
218
        }
 
219
        
 
220
        public void loadCursor(int style){
 
221
                TuxGuitar.instance().loadCursor(this.configEditor.getDialog(),style);
 
222
        }
 
223
        
 
224
        protected void addSyncThread(Runnable runnable){
 
225
                this.configEditor.addSyncThread(runnable);
 
226
        }
 
227
        
 
228
}
 
 
b'\\ No newline at end of file'