1
package org.herac.tuxguitar.gui.editors.effects;
3
import org.eclipse.swt.SWT;
4
import org.eclipse.swt.events.SelectionAdapter;
5
import org.eclipse.swt.events.SelectionEvent;
6
import org.eclipse.swt.layout.GridData;
7
import org.eclipse.swt.layout.GridLayout;
8
import org.eclipse.swt.widgets.Button;
9
import org.eclipse.swt.widgets.Composite;
10
import org.eclipse.swt.widgets.Group;
11
import org.eclipse.swt.widgets.Shell;
12
import org.herac.tuxguitar.gui.TuxGuitar;
13
import org.herac.tuxguitar.gui.util.DialogUtils;
14
import org.herac.tuxguitar.song.models.TGBeat;
15
import org.herac.tuxguitar.song.models.TGDuration;
16
import org.herac.tuxguitar.song.models.TGStroke;
18
public class StrokeEditor extends SelectionAdapter{
20
public static final int WIDTH = 400;
22
public static final int HEIGHT = 0;
24
public static final int STATUS_OK = 1;
25
public static final int STATUS_CLEAN = 2;
26
public static final int STATUS_CANCEL = 3;
28
private Button duration4;
29
private Button duration8;
30
private Button duration16;
31
private Button duration32;
32
private Button duration64;
37
public StrokeEditor(){
41
public void open(final TGBeat beat){
42
this.status = STATUS_CANCEL;
44
final Shell dialog = DialogUtils.newDialog(TuxGuitar.instance().getShell(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
45
dialog.setLayout(new GridLayout());
46
dialog.setText(TuxGuitar.getProperty("stroke.editor"));
48
//-----defaults-------------------------------------------------
49
int duration = TGDuration.SIXTEENTH;
50
if( beat.getStroke().getDirection() != TGStroke.STROKE_NONE ){
51
duration = beat.getStroke().getValue();
54
//---------------------------------------------------
55
//------------------DURATION-------------------------
56
//---------------------------------------------------
57
Group group = new Group(dialog, SWT.SHADOW_ETCHED_IN);
58
group.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
59
group.setLayout(new GridLayout(5,false));
60
group.setText( TuxGuitar.getProperty("duration") );
62
this.duration64 = new Button(group,SWT.RADIO);
63
this.duration64.setImage(TuxGuitar.instance().getIconManager().getDuration(TGDuration.SIXTY_FOURTH));
64
this.duration64.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
65
this.duration64.setSelection(duration == TGDuration.SIXTY_FOURTH);
67
this.duration32 = new Button(group,SWT.RADIO);
68
this.duration32.setImage(TuxGuitar.instance().getIconManager().getDuration(TGDuration.THIRTY_SECOND));
69
this.duration32.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
70
this.duration32.setSelection(duration == TGDuration.THIRTY_SECOND);
72
this.duration16 = new Button(group,SWT.RADIO);
73
this.duration16.setImage(TuxGuitar.instance().getIconManager().getDuration(TGDuration.SIXTEENTH));
74
this.duration16.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
75
this.duration16.setSelection(duration == TGDuration.SIXTEENTH);
77
this.duration8 = new Button(group,SWT.RADIO);
78
this.duration8.setImage(TuxGuitar.instance().getIconManager().getDuration(TGDuration.EIGHTH));
79
this.duration8.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
80
this.duration8.setSelection(duration == TGDuration.EIGHTH);
82
this.duration4 = new Button(group,SWT.RADIO);
83
this.duration4.setImage(TuxGuitar.instance().getIconManager().getDuration(TGDuration.QUARTER));
84
this.duration4.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
85
this.duration4.setSelection(duration == TGDuration.QUARTER);
86
//---------------------------------------------------
87
//------------------BUTTONS--------------------------
88
//---------------------------------------------------
89
Composite buttons = new Composite(dialog, SWT.NONE);
90
buttons.setLayout(new GridLayout(3,false));
91
buttons.setLayoutData(new GridData(SWT.END,SWT.BOTTOM,true,true));
93
final Button buttonOK = new Button(buttons, SWT.PUSH);
94
buttonOK.setText(TuxGuitar.getProperty("ok"));
95
buttonOK.setLayoutData(getButtonData());
96
buttonOK.addSelectionListener(new SelectionAdapter() {
97
public void widgetSelected(SelectionEvent arg0) {
98
setStatus( STATUS_OK );
99
setValue( getSelection() );
104
Button buttonClean = new Button(buttons, SWT.PUSH);
105
buttonClean.setText(TuxGuitar.getProperty("clean"));
106
buttonClean.setLayoutData(getButtonData());
107
buttonClean.addSelectionListener(new SelectionAdapter() {
108
public void widgetSelected(SelectionEvent arg0) {
109
setStatus( STATUS_CLEAN );
114
Button buttonCancel = new Button(buttons, SWT.PUSH);
115
buttonCancel.setText(TuxGuitar.getProperty("cancel"));
116
buttonCancel.setLayoutData(getButtonData());
117
buttonCancel.addSelectionListener(new SelectionAdapter() {
118
public void widgetSelected(SelectionEvent arg0) {
119
setStatus( STATUS_CANCEL );
124
dialog.setDefaultButton( buttonOK );
126
DialogUtils.openDialog(dialog, DialogUtils.OPEN_STYLE_CENTER | DialogUtils.OPEN_STYLE_PACK | DialogUtils.OPEN_STYLE_WAIT);
129
protected GridData getButtonData(){
130
GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
131
data.minimumWidth = 80;
132
data.minimumHeight = 25;
136
protected int getSelection(){
137
if( this.duration4.getSelection() ){
138
return TGDuration.QUARTER;
140
if( this.duration8.getSelection() ){
141
return TGDuration.EIGHTH;
143
if( this.duration16.getSelection() ){
144
return TGDuration.SIXTEENTH;
146
if( this.duration32.getSelection() ){
147
return TGDuration.THIRTY_SECOND;
149
if( this.duration64.getSelection() ){
150
return TGDuration.SIXTY_FOURTH;
155
public int getStatus() {
159
public void setStatus(int status) {
160
this.status = status;
163
public int getValue() {
167
public void setValue(int value) {