From 3ad7004d2ecab4a7bedb87b64e9e55c9af2ef93f Mon Sep 17 00:00:00 2001 From: matthiasgeiger Date: Wed, 27 Jan 2016 14:50:47 +0100 Subject: [PATCH 1/4] fixing saving without saveActions --- .../net/sf/jabref/exporter/SaveActions.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/main/java/net/sf/jabref/exporter/SaveActions.java b/src/main/java/net/sf/jabref/exporter/SaveActions.java index 4c034a601c8..ce13c10a43f 100644 --- a/src/main/java/net/sf/jabref/exporter/SaveActions.java +++ b/src/main/java/net/sf/jabref/exporter/SaveActions.java @@ -21,18 +21,22 @@ public class SaveActions { public SaveActions(MetaData metaData) { actions = new HashMap<>(); - List formatters = metaData.getData(META_KEY); setAvailableFormatters(); - for (int i = 0; i < formatters.size(); i += 2) { - try { - String field = formatters.get(i); - Formatter formatter = getFormatterFromString(formatters.get(i + 1)); - - actions.put(field, formatter); - } catch(IndexOutOfBoundsException e){ - // the meta data string in the file is broken. -> Ignore the last item - break; + List formatters = metaData.getData(META_KEY); + if(formatters==null) { + // no save actions defined in the meta data + } else { + for (int i = 0; i < formatters.size(); i += 2) { + try { + String field = formatters.get(i); + Formatter formatter = getFormatterFromString(formatters.get(i + 1)); + + actions.put(field, formatter); + } catch (IndexOutOfBoundsException e) { + // the meta data string in the file is broken. -> Ignore the last item + break; + } } } From e75a1993a6675d6e89987d26e64099c3bf5f858b Mon Sep 17 00:00:00 2001 From: matthiasgeiger Date: Mon, 29 Feb 2016 15:22:41 +0100 Subject: [PATCH 2/4] prevent NPE in result list of global search --- .../java/net/sf/jabref/gui/search/SearchResultsDialog.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/sf/jabref/gui/search/SearchResultsDialog.java b/src/main/java/net/sf/jabref/gui/search/SearchResultsDialog.java index 14fbdf84496..0e10ce0b7de 100644 --- a/src/main/java/net/sf/jabref/gui/search/SearchResultsDialog.java +++ b/src/main/java/net/sf/jabref/gui/search/SearchResultsDialog.java @@ -462,7 +462,11 @@ public Object getColumnValue(BibEntry entry, int column) { tmpModel.setContent(entry.getField(Globals.FILE_FIELD)); fileLabel.setToolTipText(tmpModel.getToolTipHTMLRepresentation()); if (tmpModel.getRowCount() > 0) { - fileLabel.setIcon(tmpModel.getEntry(0).type.getIcon()); + if(tmpModel.getEntry(0).type!=null) { + fileLabel.setIcon(tmpModel.getEntry(0).type.getIcon()); + } else { + fileLabel.setIcon(IconTheme.JabRefIcon.FILE.getSmallIcon()); + } } return fileLabel; } else { From e6bee52f0d5e71bc53b6e887644d5be54d83f4dd Mon Sep 17 00:00:00 2001 From: matthiasgeiger Date: Mon, 29 Feb 2016 15:24:01 +0100 Subject: [PATCH 3/4] use default icon if no filetype is found --- .../net/sf/jabref/external/ExternalFileType.java | 13 +++++++++---- .../sf/jabref/external/ExternalFileTypeEditor.java | 2 +- .../net/sf/jabref/external/ExternalFileTypes.java | 2 +- .../sf/jabref/external/UnknownExternalFileType.java | 2 +- .../gui/maintable/SpecialMainTableColumns.java | 2 ++ 5 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/main/java/net/sf/jabref/external/ExternalFileType.java b/src/main/java/net/sf/jabref/external/ExternalFileType.java index 96b8b441cc6..77c79987d84 100644 --- a/src/main/java/net/sf/jabref/external/ExternalFileType.java +++ b/src/main/java/net/sf/jabref/external/ExternalFileType.java @@ -80,10 +80,15 @@ public static ExternalFileType buildFromArgs(String[] val) { iconName = val[4]; } - if ("new".equals(iconName)) { - icon = IconTheme.JabRefIcon.FILE.getSmallIcon(); - } else { - icon = IconTheme.getImage(iconName); + // set icon to default first + icon = IconTheme.JabRefIcon.FILE.getSmallIcon(); + + // check whether there is another icon defined for this file type + for(ExternalFileType fileType : ExternalFileTypes.getDefaultExternalFileTypes()) { + if(fileType.getName().equals(name)) { + icon = fileType.icon; + break; + } } return new ExternalFileType(name, extension, mimeType, openWith, iconName, icon); diff --git a/src/main/java/net/sf/jabref/external/ExternalFileTypeEditor.java b/src/main/java/net/sf/jabref/external/ExternalFileTypeEditor.java index 56912b53027..eda2273658a 100644 --- a/src/main/java/net/sf/jabref/external/ExternalFileTypeEditor.java +++ b/src/main/java/net/sf/jabref/external/ExternalFileTypeEditor.java @@ -110,7 +110,7 @@ public void actionPerformed(ActionEvent e) { Globals.lang("Reset file type definitions"), JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);*/ //if (reply == JOptionPane.YES_OPTION) { - List list = ExternalFileTypes.getInstance().getDefaultExternalFileTypes(); + List list = ExternalFileTypes.getDefaultExternalFileTypes(); fileTypes.clear(); fileTypes.addAll(list); Collections.sort(fileTypes); diff --git a/src/main/java/net/sf/jabref/external/ExternalFileTypes.java b/src/main/java/net/sf/jabref/external/ExternalFileTypes.java index b0b69b52ebd..89d72493676 100644 --- a/src/main/java/net/sf/jabref/external/ExternalFileTypes.java +++ b/src/main/java/net/sf/jabref/external/ExternalFileTypes.java @@ -40,7 +40,7 @@ private ExternalFileTypes() { updateExternalFileTypes(); } - public List getDefaultExternalFileTypes() { + public static List getDefaultExternalFileTypes() { List list = new ArrayList<>(); list.add(new ExternalFileType("PDF", "pdf", "application/pdf", "evince", "pdfSmall", IconTheme.JabRefIcon.PDF_FILE.getSmallIcon())); diff --git a/src/main/java/net/sf/jabref/external/UnknownExternalFileType.java b/src/main/java/net/sf/jabref/external/UnknownExternalFileType.java index 257b4c23af0..98da42715d4 100644 --- a/src/main/java/net/sf/jabref/external/UnknownExternalFileType.java +++ b/src/main/java/net/sf/jabref/external/UnknownExternalFileType.java @@ -25,7 +25,7 @@ public class UnknownExternalFileType extends ExternalFileType { public UnknownExternalFileType(String name) { - super(name, "", "", "", "unknown", IconTheme.getImage("unknown")); + super(name, "", "", "", "unknown", IconTheme.JabRefIcon.FILE.getSmallIcon()); } } diff --git a/src/main/java/net/sf/jabref/gui/maintable/SpecialMainTableColumns.java b/src/main/java/net/sf/jabref/gui/maintable/SpecialMainTableColumns.java index 91e4aa69dd4..c5f8ebf0f4d 100644 --- a/src/main/java/net/sf/jabref/gui/maintable/SpecialMainTableColumns.java +++ b/src/main/java/net/sf/jabref/gui/maintable/SpecialMainTableColumns.java @@ -104,6 +104,8 @@ public Object getColumnValue(BibEntry entry) { ExternalFileType type = fileList.getEntry(0).type; if (type != null) { return type.getIconLabel(); + } else { + return new JLabel(IconTheme.JabRefIcon.FILE.getSmallIcon()); } } From d3fea03878c4510e9bdd7bfb977f3605f676acbc Mon Sep 17 00:00:00 2001 From: matthiasgeiger Date: Mon, 29 Feb 2016 15:31:45 +0100 Subject: [PATCH 4/4] add fix information to CHANGELOG.md --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 00fa75dbda7..577c529dc2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,7 +35,8 @@ to [sourceforge feature requests](https://sourceforge.net/p/jabref/features/) by - Integrity check now also checks broken file links, abbreviations in journal and booktitle, and incorrect use of proceedings with page numbers ### Fixed -- Fixed [#883](https://github.com/JabRef/jabref/issues/883): No NPE during cleanup +- Fixed [#598](https://github.com/JabRef/jabref/issues/598) and [#402](https://github.com/JabRef/jabref/issues/402): No more issues with invalid icons for ExternalFileTypes in global search or after editing the settings +- Fixed [#883](https://github.com/JabRef/jabref/issues/883): No NPE during cleanup - Fixed [#466](https://github.com/JabRef/jabref/issues/466): Rename PDF cleanup now also changes case of file name - Fixed [#621](https://github.com/JabRef/jabref/issues/621) and [#669](https://github.com/JabRef/jabref/issues/669): Encoding and preamble now end with newline. - Make BibTex parser more robust against missing newlines