29
29
import org.eclipse.swt.SWT;
30
30
import org.eclipse.swt.widgets.FileDialog;
32
import com.bdaum.zoom.core.internal.CoreActivator;
32
33
import com.bdaum.zoom.core.internal.FileInput;
34
import com.bdaum.zoom.core.internal.IMediaSupport;
33
35
import com.bdaum.zoom.image.ImageConstants;
34
36
import com.bdaum.zoom.job.OperationJob;
35
37
import com.bdaum.zoom.operations.internal.ImportOperation;
46
47
UiActivator activator = UiActivator.getDefault();
47
48
dialog.setFilterPath(activator.getFileLocation());
48
49
dialog.setFilterIndex(activator.getFilterIndex());
49
String[] supportedImageFileExtensions = ImageConstants.getSupportedImageFileExtensions(true);
50
String[] supportedImageFileExtensions = ImageConstants
51
.getSupportedImageFileExtensions(true);
50
52
StringBuilder sb = new StringBuilder();
53
IMediaSupport[] mediaSupport = CoreActivator.getDefault()
51
55
int l = supportedImageFileExtensions.length;
52
String[] allImageFileExtensions = new String[l + 1];
53
for (int i = 1; i < l; i++) {
54
allImageFileExtensions[i] = supportedImageFileExtensions[i - 1];
55
allImageFileExtensions[i] += ";" //$NON-NLS-1$
56
+ supportedImageFileExtensions[i - 1].toUpperCase();
56
String[] allImageFileExtensions = new String[l + 2
57
+ mediaSupport.length];
58
for (int i = 0; i < l; i++) {
59
allImageFileExtensions[i + 2] = supportedImageFileExtensions[i];
60
allImageFileExtensions[i + 2] += ";" //$NON-NLS-1$
61
+ supportedImageFileExtensions[i].toUpperCase();
57
62
if (sb.length() > 0)
59
sb.append(allImageFileExtensions[i]);
64
sb.append(allImageFileExtensions[i + 2]);
66
allImageFileExtensions[1] = sb.toString();
67
for (int i = 0; i < mediaSupport.length; i++) {
68
StringBuilder msb = new StringBuilder();
69
for (String ext : mediaSupport[i].getFileExtensions()) {
72
msb.append("*.").append(ext); //$NON-NLS-1$
75
sb.append("*.").append(ext); //$NON-NLS-1$
77
allImageFileExtensions[l + 2 + i] = msb.toString();
61
79
allImageFileExtensions[0] = sb.toString();
62
allImageFileExtensions[l] = supportedImageFileExtensions[l - 1];
63
80
dialog.setFilterExtensions(allImageFileExtensions);
64
String[] supportedImageFileNames = ImageConstants.getSupportedImageFileNames(true);
65
String[] allImageFileNames = new String[l + 1];
66
System.arraycopy(supportedImageFileNames, 0, allImageFileNames, 1, l);
67
allImageFileNames[0] = Messages.ImportFileAction_all_supported_files;
82
String[] supportedImageFileNames = ImageConstants
83
.getSupportedImageFileNames(true);
84
String[] allImageFileNames = new String[l + 2 + mediaSupport.length];
85
System.arraycopy(supportedImageFileNames, 0, allImageFileNames, 2, l);
86
allImageFileNames[0] = Messages.ImportFileAction_supported_file_types;
87
allImageFileNames[1] = Messages.ImportFileAction_all_supported_files;
88
for (int i = 0; i < mediaSupport.length; i++) {
89
IMediaSupport ms = mediaSupport[i];
90
StringBuilder msb = new StringBuilder();
91
msb.append(ms.getName()).append(" ("); //$NON-NLS-1$
92
for (String ext : ms.getFileExtensions()) {
94
msb.append(", "); //$NON-NLS-1$
95
msb.append("*.").append(ext); //$NON-NLS-1$
98
allImageFileNames[l + 2 + i] = msb.toString();
68
100
dialog.setFilterNames(allImageFileNames);
69
101
String file = dialog.open();
70
102
if (file != null) {
77
109
List<File> files = new ArrayList<File>(fileNames.length);
78
110
for (String fileName : fileNames)
79
111
files.add(new File(filterPath, fileName));
80
OperationJob.executeOperation(new ImportOperation(new FileInput(files, false),
81
activator.createImportConfiguration(this), null, null), this);
112
OperationJob.executeOperation(
113
new ImportOperation(new FileInput(files, false),
114
activator.createImportConfiguration(this),
88
121
public void selectionChanged(IAction action, ISelection selection) {
89
122
if (isDbReadOnly())