2
* Created on 02-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.items.tool;
9
import org.eclipse.swt.SWT;
10
import org.eclipse.swt.events.SelectionAdapter;
11
import org.eclipse.swt.events.SelectionEvent;
12
import org.eclipse.swt.graphics.Point;
13
import org.eclipse.swt.graphics.Rectangle;
14
import org.eclipse.swt.widgets.Menu;
15
import org.eclipse.swt.widgets.MenuItem;
16
import org.eclipse.swt.widgets.ToolBar;
17
import org.eclipse.swt.widgets.ToolItem;
18
import org.herac.tuxguitar.gui.SystemImages;
19
import org.herac.tuxguitar.gui.TuxGuitar;
20
import org.herac.tuxguitar.gui.actions.duration.ChangeDottedDurationAction;
21
import org.herac.tuxguitar.gui.actions.duration.ChangeDoubleDottedDurationAction;
22
import org.herac.tuxguitar.gui.actions.duration.ChangeTupletoDurationAction;
23
import org.herac.tuxguitar.gui.actions.duration.SetEighthDurationAction;
24
import org.herac.tuxguitar.gui.actions.duration.SetHalfDurationAction;
25
import org.herac.tuxguitar.gui.actions.duration.SetQuarterDurationAction;
26
import org.herac.tuxguitar.gui.actions.duration.SetSixteenthDurationAction;
27
import org.herac.tuxguitar.gui.actions.duration.SetSixtyFourthDurationAction;
28
import org.herac.tuxguitar.gui.actions.duration.SetThirtySecondDurationAction;
29
import org.herac.tuxguitar.gui.actions.duration.SetWholeDurationAction;
30
import org.herac.tuxguitar.gui.items.ToolItems;
31
import org.herac.tuxguitar.song.models.Duration;
32
import org.herac.tuxguitar.song.models.Tupleto;
37
* TODO To change the template for this generated type comment go to
38
* Window - Preferences - Java - Code Style - Code Templates
40
public class DurationToolItems extends ToolItems{
41
public static final String NAME = "duration.items";
42
private ToolBar toolBar;
43
private ToolItem[] durationItems;
44
private ToolItem dotted;
45
private ToolItem doubleDotted;
46
private TupletoMenuItem tupletoItems;
48
public DurationToolItems(){
53
public void showItems(ToolBar toolBar){
54
this.toolBar = toolBar;
55
this.durationItems = new ToolItem[7];
57
durationItems[0] = new ToolItem(toolBar, SWT.RADIO);
58
durationItems[0].setImage(SystemImages.getDuration(Duration.WHOLE));
59
durationItems[0].setToolTipText("Redonda");
60
durationItems[0].addSelectionListener(TuxGuitar.instance().getAction(SetWholeDurationAction.NAME));
62
durationItems[1] = new ToolItem(toolBar, SWT.RADIO);
63
durationItems[1].setImage(SystemImages.getDuration(Duration.HALF));
64
durationItems[1].setToolTipText("Blanca");
65
durationItems[1].addSelectionListener(TuxGuitar.instance().getAction(SetHalfDurationAction.NAME));
67
durationItems[2] = new ToolItem(toolBar, SWT.RADIO);
68
durationItems[2].setImage(SystemImages.getDuration(Duration.QUARTER));
69
durationItems[2].setToolTipText("Negra");
70
durationItems[2].setSelection(true);
71
durationItems[2].addSelectionListener(TuxGuitar.instance().getAction(SetQuarterDurationAction.NAME));
73
durationItems[3] = new ToolItem(toolBar, SWT.RADIO);
74
durationItems[3].setImage(SystemImages.getDuration(Duration.EIGHTH));
75
durationItems[3].setToolTipText("Corchea");
76
durationItems[3].addSelectionListener(TuxGuitar.instance().getAction(SetEighthDurationAction.NAME));
78
durationItems[4] = new ToolItem(toolBar, SWT.RADIO);
79
durationItems[4].setImage(SystemImages.getDuration(Duration.SIXTEENTH));
80
durationItems[4].setToolTipText("Semi-Corchea");
81
durationItems[4].addSelectionListener(TuxGuitar.instance().getAction(SetSixteenthDurationAction.NAME));
83
durationItems[5] = new ToolItem(toolBar, SWT.RADIO);
84
durationItems[5].setImage(SystemImages.getDuration(Duration.THIRTY_SECOND));
85
durationItems[5].setToolTipText("Fusa");
86
durationItems[5].addSelectionListener(TuxGuitar.instance().getAction(SetThirtySecondDurationAction.NAME));
88
durationItems[6] = new ToolItem(toolBar, SWT.RADIO);
89
durationItems[6].setImage(SystemImages.getDuration(Duration.SIXTY_FOURTH));
90
durationItems[6].setToolTipText("Semi-Fusa");
91
durationItems[6].addSelectionListener(TuxGuitar.instance().getAction(SetSixtyFourthDurationAction.NAME));
93
new ToolItem(toolBar, SWT.SEPARATOR);
95
dotted = new ToolItem(toolBar, SWT.CHECK);
96
dotted.setImage(SystemImages.DOTTED_IMAGE);
97
dotted.setToolTipText("Puntillo");
98
dotted.addSelectionListener(TuxGuitar.instance().getAction(ChangeDottedDurationAction.NAME));
100
doubleDotted = new ToolItem(toolBar, SWT.CHECK);
101
doubleDotted.setImage(SystemImages.DOUBLE_DOTTED_IMAGE);
102
doubleDotted.setToolTipText("Doble Puntillo");
103
doubleDotted.addSelectionListener(TuxGuitar.instance().getAction(ChangeDoubleDottedDurationAction.NAME));
105
tupletoItems = new TupletoMenuItem();
106
tupletoItems.addItems();
113
public void update(){
114
Duration duration = getEditor().getTablature().getCaret().getDuration();
116
for(int i = 0;i < this.durationItems.length;i++){
117
this.durationItems[i].setSelection(false);
121
int value = duration.getValue();
126
this.durationItems[index].setSelection(true);
127
this.dotted.setSelection(duration.isDotted());
128
this.doubleDotted.setSelection(duration.isDoubleDotted());
130
this.tupletoItems.update();
134
public void loadProperties(){
135
this.durationItems[0].setToolTipText(TuxGuitar.getProperty("duration.whole"));
136
this.durationItems[1].setToolTipText(TuxGuitar.getProperty("duration.half"));
137
this.durationItems[2].setToolTipText(TuxGuitar.getProperty("duration.quarter"));
138
this.durationItems[3].setToolTipText(TuxGuitar.getProperty("duration.eighth"));
139
this.durationItems[4].setToolTipText(TuxGuitar.getProperty("duration.sixteenth"));
140
this.durationItems[5].setToolTipText(TuxGuitar.getProperty("duration.thirtysecond"));
141
this.durationItems[6].setToolTipText(TuxGuitar.getProperty("duration.sixtyfourth"));
142
this.dotted.setToolTipText(TuxGuitar.getProperty("duration.dotted"));
143
this.doubleDotted.setToolTipText(TuxGuitar.getProperty("duration.doubledotted"));
144
this.tupletoItems.setText(TuxGuitar.getProperty("duration.tupleto"));
148
private class TupletoMenuItem extends SelectionAdapter {
149
private ToolItem tupleto;
150
private Menu subMenu;
151
private MenuItem[] subMenuItems;
153
public TupletoMenuItem() {
154
this.tupleto = new ToolItem(toolBar, SWT.DROP_DOWN);
155
this.tupleto.setImage(SystemImages.TUPLETO_IMAGE);
157
this.tupleto.addSelectionListener(this);
158
this.tupleto.setData(new Tupleto(3,2));
160
this.subMenu = new Menu(this.tupleto.getParent().getShell());
163
public void setText(String text){
164
this.tupleto.setToolTipText(text);
167
public void addItems() {
168
this.subMenuItems = new MenuItem[8];
170
this.subMenuItems[0] = new MenuItem(this.subMenu, SWT.CHECK);
171
this.subMenuItems[0].setText("3");
172
this.subMenuItems[0].setData(new Tupleto(3,2));
173
this.subMenuItems[0].addSelectionListener(TuxGuitar.instance().getAction(ChangeTupletoDurationAction.NAME));
175
this.subMenuItems[1] = new MenuItem(this.subMenu, SWT.CHECK);
176
this.subMenuItems[1].setText("5");
177
this.subMenuItems[1].setData(new Tupleto(5,4));
178
this.subMenuItems[1].addSelectionListener(TuxGuitar.instance().getAction(ChangeTupletoDurationAction.NAME));
180
this.subMenuItems[2] = new MenuItem(this.subMenu, SWT.CHECK);
181
this.subMenuItems[2].setText("6");
182
this.subMenuItems[2].setData(new Tupleto(6,4));
183
this.subMenuItems[2].addSelectionListener(TuxGuitar.instance().getAction(ChangeTupletoDurationAction.NAME));
185
this.subMenuItems[3] = new MenuItem(this.subMenu, SWT.CHECK);
186
this.subMenuItems[3].setText("7");
187
this.subMenuItems[3].setData(new Tupleto(7,4));
188
this.subMenuItems[3].addSelectionListener(TuxGuitar.instance().getAction(ChangeTupletoDurationAction.NAME));
190
this.subMenuItems[4] = new MenuItem(this.subMenu, SWT.CHECK);
191
this.subMenuItems[4].setText("9");
192
this.subMenuItems[4].setData(new Tupleto(9,8));
193
this.subMenuItems[4].addSelectionListener(TuxGuitar.instance().getAction(ChangeTupletoDurationAction.NAME));
195
this.subMenuItems[5] = new MenuItem(this.subMenu, SWT.CHECK);
196
this.subMenuItems[5].setText("10");
197
this.subMenuItems[5].setData(new Tupleto(10,8));
198
this.subMenuItems[5].addSelectionListener(TuxGuitar.instance().getAction(ChangeTupletoDurationAction.NAME));
200
this.subMenuItems[6] = new MenuItem(this.subMenu, SWT.CHECK);
201
this.subMenuItems[6].setText("11");
202
this.subMenuItems[6].setData(new Tupleto(11,8));
203
this.subMenuItems[6].addSelectionListener(TuxGuitar.instance().getAction(ChangeTupletoDurationAction.NAME));
205
this.subMenuItems[7] = new MenuItem(this.subMenu, SWT.CHECK);
206
this.subMenuItems[7].setText("12");
207
this.subMenuItems[7].setData(new Tupleto(12,8));
208
this.subMenuItems[7].addSelectionListener(TuxGuitar.instance().getAction(ChangeTupletoDurationAction.NAME));
211
public void widgetSelected(SelectionEvent event) {
212
if (event.detail == SWT.ARROW) {
213
ToolItem item = (ToolItem) event.widget;
214
Rectangle rect = item.getBounds();
215
Point pt = item.getParent().toDisplay(new Point(rect.x, rect.y));
216
this.subMenu.setLocation(pt.x, pt.y + rect.height);
217
this.subMenu.setVisible(true);
219
Duration duration = getEditor().getTablature().getCaret().getDuration();
220
if(duration.getTupleto().isEqual(Duration.NO_TUPLETO)){
221
((Tupleto)this.tupleto.getData()).setEnters(3);
222
((Tupleto)this.tupleto.getData()).setTimes(2);
224
((Tupleto)this.tupleto.getData()).setEnters(1);
225
((Tupleto)this.tupleto.getData()).setTimes(1);
227
TuxGuitar.instance().getAction(ChangeTupletoDurationAction.NAME).process(event);
234
public void update(){
235
Duration duration = getEditor().getTablature().getCaret().getDuration();
237
for(int i = 0;i < this.subMenuItems.length;i++){
238
Tupleto tupleto = (Tupleto)this.subMenuItems[i].getData();
239
this.subMenuItems[i].setSelection((tupleto.isEqual(duration.getTupleto())));