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.actions.file;
9
import org.eclipse.swt.SWT;
10
import org.eclipse.swt.events.TypedEvent;
11
import org.herac.tuxguitar.gui.TuxGuitar;
12
import org.herac.tuxguitar.gui.actions.Action;
13
import org.herac.tuxguitar.gui.actions.ActionLock;
14
import org.herac.tuxguitar.gui.helper.SyncThread;
15
import org.herac.tuxguitar.gui.util.ConfirmDialog;
16
import org.herac.tuxguitar.gui.util.FileChooser;
17
import org.herac.tuxguitar.io.base.TGSongImporter;
22
* TODO To change the template for this generated type comment go to Window - Preferences - Java - Code Style - Code Templates
24
public class ImportSongAction extends Action {
25
public static final String NAME = "action.file.import";
27
public ImportSongAction() {
28
super(NAME, AUTO_LOCK | AUTO_UPDATE);
31
protected int execute(final TypedEvent event){
32
TuxGuitar.instance().getPlayer().reset();
34
if(TuxGuitar.instance().getFileHistory().isUnsavedFile()){
35
ConfirmDialog confirm = new ConfirmDialog(TuxGuitar.getProperty("file.save-changes-question"));
36
confirm.setDefaultStatus( ConfirmDialog.STATUS_CANCEL );
37
int status = confirm.confirm(ConfirmDialog.BUTTON_YES | ConfirmDialog.BUTTON_NO | ConfirmDialog.BUTTON_CANCEL, ConfirmDialog.BUTTON_YES);
38
if(status == ConfirmDialog.STATUS_CANCEL){
41
if(status == ConfirmDialog.STATUS_YES){
42
final String fileName = FileActionUtils.getFileName();
46
TuxGuitar.instance().loadCursor(SWT.CURSOR_WAIT);
47
new Thread(new Runnable() {
49
if(!TuxGuitar.isDisposed()){
50
FileActionUtils.save(fileName);
51
new SyncThread(new Runnable() {
53
if(!TuxGuitar.isDisposed()){
54
TuxGuitar.instance().loadCursor(SWT.CURSOR_ARROW);
55
importFile(event.widget.getData());
65
importFile(event.widget.getData());
70
protected void importFile(Object data){
71
final TGSongImporter importer = (TGSongImporter)data;
72
final String path = FileChooser.instance().open(TuxGuitar.instance().getShell(),importer.getFileFormat());
73
if(path == null || !importer.configure(false)){
78
TuxGuitar.instance().loadCursor(SWT.CURSOR_WAIT);
79
new Thread(new Runnable() {
81
if(!TuxGuitar.isDisposed()){
82
FileActionUtils.importSong(importer, path);
83
TuxGuitar.instance().loadCursor(SWT.CURSOR_ARROW);