204
loadRecipeFiles(recipeFiles, focalLengthProvider, overlayMap);
205
} catch (URISyntaxException e) {
207
loadRecipeFiles(recipeFiles.toArray(new File[recipeFiles.size()]),
208
focalLengthProvider, overlayMap);
207
209
} catch (IOException e) {
208
210
C1Activator.getDefault().logError(
209
211
NLS.bind(Messages.C1Detector_io_error, uri), e);
214
private Recipe loadRecipeFiles(List<File> recipeFiles,
212
} catch (URISyntaxException e) {
218
public File[] getMetafiles(String uri) {
220
List<File> recipeFiles = new ArrayList<File>(3);
221
File imageFile = new File(new URI(uri));
222
IFileHandler fileHandler = ImageConstants
223
.findFileHandler(imageFile);
224
if (fileHandler == null) {
225
String fileName = imageFile.getName();
226
File folder = imageFile.getParentFile();
227
for (String c1folder : CAPTURE_ONE_FOLDERS) {
228
StringBuilder sb = new StringBuilder();
229
sb.append(c1folder).append('/').append(fileName)
230
.append(CAPTURE_ONE_SETTINGS);
231
File metaFile = new File(folder, sb.toString());
232
if (metaFile.exists())
233
recipeFiles.add(metaFile);
236
return recipeFiles.toArray(new File[recipeFiles.size()]);
237
} catch (URISyntaxException e) {
243
public void archiveRecipes(File targetFolder, String uri, String newUri,
244
boolean readOnly) throws IOException, DiskFullException {
246
File imageFile = new File(new URI(uri));
247
IFileHandler fileHandler = ImageConstants
248
.findFileHandler(imageFile);
249
if (fileHandler == null) {
250
String fileName = imageFile.getName();
251
File folder = imageFile.getParentFile();
252
for (String c1folder : CAPTURE_ONE_FOLDERS) {
253
StringBuilder sb = new StringBuilder();
254
sb.append(c1folder).append('/').append(fileName)
255
.append(CAPTURE_ONE_SETTINGS);
256
File metaFile = new File(folder, sb.toString());
257
if (metaFile.exists()) {
258
String newFileName = Core.getFileName(newUri, false);
259
File cosFolder = new File(targetFolder, c1folder);
261
File targetFile = new File(cosFolder, newFileName
262
+ CAPTURE_ONE_SETTINGS);
263
BatchUtilities.copyFile(metaFile, targetFile, null);
265
targetFile.setReadOnly();
269
} catch (URISyntaxException e) {
274
private Recipe loadRecipeFiles(File[] recipeFiles,
215
275
IFocalLengthProvider focalLengthProvider,
216
276
final Map<String, String> overlayMap) throws IOException {
640
705
saxParser.parse(in, handler);
641
706
if (overlayMap != null) {
642
707
setStruct(overlayMap, QueryField.IPTC_CONTACT, contact);
643
setStruct(overlayMap, QueryField.IPTC_LOCATIONSHOWN, location);
708
setStruct(overlayMap, QueryField.IPTC_LOCATIONSHOWN,
644
710
setStruct(overlayMap, QueryField.IPTC_ARTWORK, artwork);
646
712
} catch (ParserConfigurationException e) {
1156
1222
IFocalLengthProvider focalLengthProvider,
1157
1223
Map<String, String> overlayMap) {
1158
1224
if (uri.toLowerCase().endsWith(CAPTURE_ONE_SETTINGS)) {
1159
List<File> files = new ArrayList<File>(1);
1161
files.add(new File(new URI(uri)));
1162
return loadRecipeFiles(files, focalLengthProvider, overlayMap);
1226
return loadRecipeFiles(new File[] { new File(new URI(uri)) },
1227
focalLengthProvider, overlayMap);
1163
1228
} catch (URISyntaxException e) {
1164
1229
C1Activator.getDefault().logError(
1165
1230
NLS.bind(Messages.C1Detector_bad_uri, uri), e);