Skip to content

Commit 9990aa1

Browse files
committed
[26781] use same get file ending method for omnivore as for local edit
1 parent 2093917 commit 9990aa1

File tree

1 file changed

+24
-29
lines changed
  • bundles/ch.elexis.omnivore.data/src/ch/elexis/omnivore/data

1 file changed

+24
-29
lines changed

bundles/ch.elexis.omnivore.data/src/ch/elexis/omnivore/data/Utils.java

Lines changed: 24 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,7 @@
2727
import java.time.format.DateTimeFormatter;
2828
import java.util.List;
2929

30-
import javax.activation.MimeType;
31-
import javax.activation.MimeTypeParseException;
32-
30+
import org.apache.commons.io.FilenameUtils;
3331
import org.apache.commons.io.IOUtils;
3432
import org.apache.commons.lang3.StringUtils;
3533
import org.eclipse.jface.preference.IPreferenceStore;
@@ -43,7 +41,6 @@
4341
import ch.elexis.core.ui.preferences.SettingsPreferenceStore;
4442
import ch.elexis.core.ui.util.SWTHelper;
4543
import ch.elexis.omnivore.model.IDocumentHandle;
46-
import ch.rgw.io.FileTool;
4744
import ch.rgw.tools.ExHandler;
4845
import ch.rgw.tools.MimeTool;
4946

@@ -337,31 +334,7 @@ public static String createNiceFileName(IDocumentHandle dh) {
337334
*/
338335
public static File createTemporaryFile(IDocumentHandle documentHandle, String title) {
339336

340-
String fileExtension = null;
341-
String mimeType = documentHandle.getMimeType();
342-
// somewhen we might event feature correct mimetypes in the db ...
343-
if ("pdf".equalsIgnoreCase(mimeType)) { //$NON-NLS-1$
344-
mimeType = "application/pdf"; //$NON-NLS-1$
345-
}
346-
try {
347-
MimeType docMimeType = new MimeType(mimeType);
348-
fileExtension = MimeTool.getExtension(docMimeType.toString());
349-
} catch (MimeTypeParseException mpe) {
350-
fileExtension = FileTool.getExtension(mimeType);
351-
352-
if (fileExtension == null) {
353-
fileExtension = FileTool.getExtension(documentHandle.getTitle());
354-
}
355-
356-
if (fileExtension == null && mimeType != null && !mimeType.contains(".") && !mimeType.contains(".") //$NON-NLS-1$ //$NON-NLS-2$
357-
&& !mimeType.contains("/")) { //$NON-NLS-1$
358-
fileExtension = mimeType;
359-
}
360-
}
361-
362-
if (fileExtension == null) {
363-
fileExtension = StringUtils.EMPTY;
364-
}
337+
String fileExtension = getFileEnding(documentHandle.getMimeType());
365338

366339
String config_temp_filename = Utils.createNiceFileName(documentHandle);
367340
File temp = null;
@@ -407,6 +380,28 @@ public static File createTemporaryFile(IDocumentHandle documentHandle, String ti
407380
return temp;
408381
}
409382

383+
private static String getFileEnding(String mime) {
384+
if (mime != null) {
385+
if (mime.length() < 5) {
386+
return mime;
387+
} else {
388+
String ret = MimeTool.getExtension(mime);
389+
if (ret.length() > 5) {
390+
return getDefaultFileEnding();
391+
} else if (ret.isEmpty()) {
392+
return FilenameUtils.getExtension(mime);
393+
} else {
394+
return ret;
395+
}
396+
}
397+
}
398+
return getDefaultFileEnding();
399+
}
400+
401+
private static String getDefaultFileEnding() {
402+
return ".tmp";
403+
}
404+
410405
public static boolean storeExternal(IDocumentHandle docHandle, String filename) {
411406
try {
412407
byte[] b = IOUtils.toByteArray(docHandle.getContent());

0 commit comments

Comments
 (0)