2
* Created on 08-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.util;
9
import org.eclipse.swt.SWT;
10
import org.eclipse.swt.widgets.FileDialog;
11
import org.eclipse.swt.widgets.Shell;
12
import org.herac.tuxguitar.gui.TuxGuitar;
17
* TODO To change the template for this generated type comment go to Window - Preferences - Java - Code Style - Code Templates
19
public class FileChooser {
21
public static FilterFormat OPEN_FORMAT = instance().new FilterFormat(new String[] { "*.tg;*.gp3;*.gp4;*.gp5;*.ptb" },new String[] { "Suported Files (*.tg,*.gp3,*.gp4,*.gp5,*.ptb)"});
23
public static FilterFormat IMPORT_MIDI_FORMAT = instance().new FilterFormat(new String[] { "*.mid" },new String[] { "Suported Files (*.mid)" });
25
public static FilterFormat SAVE_FORMAT = instance().new FilterFormat(new String[] { "*.gp4", "*.gp3", "*.tg" },null);
27
public static FilterFormat EXPORT_MIDI_FORMAT = instance().new FilterFormat(new String[] { "*.mid" },null);
29
public static FilterFormat EXPORT_PDF_FORMAT = instance().new FilterFormat(new String[] { "*.pdf" },null);
31
public static FilterFormat EXPORT_ASCII_FORMAT = instance().new FilterFormat(new String[] { "*.tab" },null);
33
public static FilterFormat ALL_FORMAT = instance().new FilterFormat(null,null);
35
private static FileChooser instance;
37
public FileChooser() {
40
public static FileChooser instance() {
42
instance = new FileChooser();
47
public String open(Shell parent,FilterFormat format) {
48
FileDialog dialog = new FileDialog(parent,SWT.OPEN);
49
dialog.setFilterPath(getPath());
50
dialog.setFileName(getFileName(format));
51
dialog.setFilterNames(format.filterNames);
52
dialog.setFilterExtensions(format.filterExtensions);
56
public String save(Shell parent, FilterFormat format) {
57
FileDialog dialog = new FileDialog(parent,SWT.SAVE);
58
dialog.setFilterPath(getPath());
59
dialog.setFileName(getFileName(format));
60
dialog.setFilterNames(format.filterNames);
61
dialog.setFilterExtensions(format.filterExtensions);
65
private String getPath(){
66
return TuxGuitar.instance().getFileHistory().getFilePath();
69
private String getFileName(FilterFormat format){
70
if(format == null || format.filterExtensions == null){
73
String fileName = TuxGuitar.instance().getFileHistory().getFileName();
74
for(int i = 0; i < format.filterExtensions.length; i ++){
75
String fileExtension = fileName.substring(fileName.lastIndexOf('.')).toLowerCase();
76
int startIndex = format.filterExtensions[i].indexOf(fileExtension);
77
int endIndex = fileExtension.length() + startIndex;
78
if(startIndex > 0 && (endIndex == format.filterExtensions[i].length() || format.filterExtensions[i].charAt(endIndex) == ';')){
82
if(format.filterExtensions.length > 0 && fileName.lastIndexOf('.') > 0){
83
int index = fileName.lastIndexOf('.');
84
return (fileName.substring(0,fileName.lastIndexOf('.')) + format.filterExtensions[0].substring(format.filterExtensions[0].lastIndexOf('.')));
89
private class FilterFormat{
90
private String[] filterExtensions;
91
private String[] filterNames;
93
private FilterFormat(String[] filterExtensions, String[] filterNames) {
94
this.filterExtensions = filterExtensions;
95
this.filterNames = filterNames;
b'\\ No newline at end of file'