From 8b02c3a5584215865f55eb2b6f8a8d3e5bb582e9 Mon Sep 17 00:00:00 2001 From: Bengt Martensson Date: Mon, 27 Jun 2016 13:21:16 +0200 Subject: [PATCH] Export: now only inquire for metadata when necessary. (#89) Exportformats: new function supportsMetaData. Changes in exportformats.xsd, and exportformats.xml. --- IrScrutinizer/src/main/config/exportformats.xml | 2 +- .../main/java/org/harctoolbox/irscrutinizer/GuiMain.java | 2 +- .../exporter/DynamicRemoteSetExportFormat.java | 7 +++++++ .../harctoolbox/irscrutinizer/exporter/GirrExporter.java | 5 +++++ .../harctoolbox/irscrutinizer/exporter/LircExporter.java | 5 +++++ .../irscrutinizer/exporter/RemoteSetExporter.java | 4 ++++ IrScrutinizer/src/main/schemas/exportformats.xsd | 5 +++++ schemas/exportformats.xsd | 5 +++++ 8 files changed, 33 insertions(+), 2 deletions(-) diff --git a/IrScrutinizer/src/main/config/exportformats.xml b/IrScrutinizer/src/main/config/exportformats.xml index 5ade7ab9..c14bfeb2 100644 --- a/IrScrutinizer/src/main/config/exportformats.xml +++ b/IrScrutinizer/src/main/config/exportformats.xml @@ -1463,7 +1463,7 @@ carrier_frequency - + diff --git a/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/GuiMain.java b/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/GuiMain.java index f5fe54b0..fc984b14 100644 --- a/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/GuiMain.java +++ b/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/GuiMain.java @@ -1124,7 +1124,7 @@ private HashMap getCommands(NamedIrSignal.LearnedIrSignalTableM } private File saveCommands(HashMap commands, String source, String title, RemoteSetExporter exporter) throws FileNotFoundException, IrpMasterException, IOException { - if (properties.getExportInquireDeviceData()) { + if (properties.getExportInquireDeviceData() && exporter.supportsMetaData()) { Remote.MetaData newMetaData = MetaDataDialog.inquireMetaData(metaData, this); if (newMetaData == null) // user bailed out return null; diff --git a/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/exporter/DynamicRemoteSetExportFormat.java b/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/exporter/DynamicRemoteSetExportFormat.java index 4df15acc..6390ce7b 100644 --- a/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/exporter/DynamicRemoteSetExportFormat.java +++ b/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/exporter/DynamicRemoteSetExportFormat.java @@ -51,6 +51,7 @@ public class DynamicRemoteSetExportFormat extends RemoteSetExporter implements I private final String extension; private final boolean simpleSequence; private final boolean binary; + private final boolean metadata; private final Document xslt; private DynamicRemoteSetExportFormat(Element el) { @@ -59,6 +60,7 @@ private DynamicRemoteSetExportFormat(Element el) { this.extension = el.getAttribute("extension"); this.simpleSequence = Boolean.parseBoolean(el.getAttribute("simpleSequence")); this.binary = Boolean.parseBoolean(el.getAttribute("binary")); + this.metadata = Boolean.parseBoolean(el.getAttribute("metadata")); xslt = XmlUtils.newDocument(true); Node stylesheet = el.getElementsByTagNameNS("http://www.w3.org/1999/XSL/Transform", "stylesheet").item(0); @@ -113,6 +115,11 @@ public String getPreferredFileExtension() { return extension; } + @Override + public boolean supportsMetaData() { + return metadata; + } + @Override public void export(RemoteSet remoteSet, String title, int count, File saveFile, String charsetName) throws IOException, IrpMasterException { export(remoteSet, title, count, saveFile.getCanonicalPath(), charsetName); diff --git a/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/exporter/GirrExporter.java b/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/exporter/GirrExporter.java index a8031e34..19753322 100644 --- a/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/exporter/GirrExporter.java +++ b/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/exporter/GirrExporter.java @@ -86,4 +86,9 @@ public String getFormatName() { public boolean supportsEmbeddedFormats() { return true; } + + @Override + public boolean supportsMetaData() { + return true; + } } diff --git a/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/exporter/LircExporter.java b/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/exporter/LircExporter.java index 98996a9d..10bfaf1b 100644 --- a/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/exporter/LircExporter.java +++ b/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/exporter/LircExporter.java @@ -81,6 +81,11 @@ public String getFormatName() { return "LIRC"; } + @Override + public boolean supportsMetaData() { + return true; + } + // Jirc's definition of Lirc names: // ('!' .. '{' | '}' .. '~' | '\u00A1' .. '\u00FF')+ private static String lircName(String key) { diff --git a/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/exporter/RemoteSetExporter.java b/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/exporter/RemoteSetExporter.java index 32446d8d..472688ec 100644 --- a/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/exporter/RemoteSetExporter.java +++ b/IrScrutinizer/src/main/java/org/harctoolbox/irscrutinizer/exporter/RemoteSetExporter.java @@ -134,4 +134,8 @@ public boolean supportsEmbeddedFormats() { public boolean considersRepetitions() { return false; } + + public boolean supportsMetaData() { + return false; + } } diff --git a/IrScrutinizer/src/main/schemas/exportformats.xsd b/IrScrutinizer/src/main/schemas/exportformats.xsd index 923475fb..40fe6057 100644 --- a/IrScrutinizer/src/main/schemas/exportformats.xsd +++ b/IrScrutinizer/src/main/schemas/exportformats.xsd @@ -71,6 +71,11 @@ True if the files are binary files. + + + True if the format support remote meta data (not necessarily all). + + diff --git a/schemas/exportformats.xsd b/schemas/exportformats.xsd index 923475fb..40fe6057 100644 --- a/schemas/exportformats.xsd +++ b/schemas/exportformats.xsd @@ -71,6 +71,11 @@ True if the files are binary files. + + + True if the format support remote meta data (not necessarily all). + +