From 7d164e10a65d21d2626a4f2ece36c1adc2502285 Mon Sep 17 00:00:00 2001 From: Georgy Litvinov Date: Wed, 22 Apr 2020 17:48:52 +0200 Subject: [PATCH] Modified metadata storage --- .../libreoffice/metadata/MetadataElement.java | 3 --- .../libreoffice/metadata/OutlineElement.java | 22 +++++++++++++------ .../libreoffice/metadata/views/EditorGUI.java | 1 - 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/source/pro/litvinovg/libreoffice/metadata/MetadataElement.java b/source/pro/litvinovg/libreoffice/metadata/MetadataElement.java index 6cd6326..55d5c26 100644 --- a/source/pro/litvinovg/libreoffice/metadata/MetadataElement.java +++ b/source/pro/litvinovg/libreoffice/metadata/MetadataElement.java @@ -1,7 +1,5 @@ package pro.litvinovg.libreoffice.metadata; -import java.io.Serializable; - public class MetadataElement { private String name; @@ -20,5 +18,4 @@ public class MetadataElement { return value; } - } diff --git a/source/pro/litvinovg/libreoffice/metadata/OutlineElement.java b/source/pro/litvinovg/libreoffice/metadata/OutlineElement.java index d57f958..a29b722 100644 --- a/source/pro/litvinovg/libreoffice/metadata/OutlineElement.java +++ b/source/pro/litvinovg/libreoffice/metadata/OutlineElement.java @@ -2,6 +2,7 @@ package pro.litvinovg.libreoffice.metadata; import java.util.ArrayList; import java.util.Iterator; +import java.util.Set; import org.json.JSONException; import org.json.JSONObject; @@ -66,12 +67,15 @@ public class OutlineElement { public void readMetadata(String data) { try { JSONObject json = new JSONObject(data); - Iterator names = json.keys(); - while (names.hasNext()) { - String metaName = names.next(); - String metaValue = (String) json.get(metaName); - metadata.add(new MetadataElement(metaName, metaValue)); - } + Set nums = json.keySet(); + for (String number : nums) { + JSONObject meta = (JSONObject) json.get(number); + Set names = meta.keySet(); + for (String name: names) { + String value = meta.getString(name); + metadata.add(new MetadataElement(name, value)); + } + } } catch (JSONException e) { e.printStackTrace(); } catch (Exception e) { @@ -81,11 +85,15 @@ public class OutlineElement { private String metadataToString() { JSONObject json = new JSONObject(); + Integer i = 0; for (MetadataElement element : metadata) { String name = element.getName(); String value = element.getValue(); if (!name.isEmpty() && !value.isEmpty()) { - json.put(element.getName(), element.getValue()); + JSONObject meta = new JSONObject(); + meta.put(element.getName(), element.getValue()); + json.put(i.toString(), meta); + i++; } } return json.toString(); diff --git a/source/pro/litvinovg/libreoffice/metadata/views/EditorGUI.java b/source/pro/litvinovg/libreoffice/metadata/views/EditorGUI.java index 8127286..99994e6 100644 --- a/source/pro/litvinovg/libreoffice/metadata/views/EditorGUI.java +++ b/source/pro/litvinovg/libreoffice/metadata/views/EditorGUI.java @@ -185,7 +185,6 @@ public class EditorGUI extends JFrame { tabbedPane.addTab("Метаданные либры", null, panelStandardMetadata, null); tabbedPane.setEnabledAt(0, true); - if (true) { addMetadataTab(new OutlineElement(null, "Тестовое название")); } for (OutlineElement element : outline) { addMetadataTab(element);