Modified metadata storage

This commit is contained in:
Georgy Litvinov 2020-04-22 17:48:52 +02:00
parent 7d66b8d73b
commit 7d164e10a6
3 changed files with 15 additions and 11 deletions

View file

@ -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;
}
}

View file

@ -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<String> names = json.keys();
while (names.hasNext()) {
String metaName = names.next();
String metaValue = (String) json.get(metaName);
metadata.add(new MetadataElement(metaName, metaValue));
}
Set<String> nums = json.keySet();
for (String number : nums) {
JSONObject meta = (JSONObject) json.get(number);
Set<String> 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();

View file

@ -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);