From faa9cf856d965967b58c6a7cafb1e85030f95363 Mon Sep 17 00:00:00 2001
From: Georgy Litvinov <git@litvinovg.pro>
Date: Thu, 16 Apr 2020 16:20:53 +0200
Subject: [PATCH] Added popup menu and fixed NPE

---
 .../libreoffice/metadata/views/EditorGUI.java         | 11 +++++++++++
 .../metadata/views/MetadataTableModel.java            |  3 ++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/source/pro/litvinovg/libreoffice/metadata/views/EditorGUI.java b/source/pro/litvinovg/libreoffice/metadata/views/EditorGUI.java
index 5fc0653..fed4c03 100644
--- a/source/pro/litvinovg/libreoffice/metadata/views/EditorGUI.java
+++ b/source/pro/litvinovg/libreoffice/metadata/views/EditorGUI.java
@@ -245,6 +245,17 @@ public class EditorGUI extends JFrame {
 					.addComponent(btnOutlineSave)
 					.addGap(43))
 		);
+		
+		JPopupMenu popupMenu = new JPopupMenu();
+		addPopup(tableOutline, popupMenu);
+		
+		JMenuItem menuItem = new JMenuItem("Добавить строку");
+		menuItem.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				outlineTableModel.addRow(new Object[] {null, null});
+			}
+		});
+		popupMenu.add(menuItem);
 		panelOutline.setLayout(groupLayoutOutlineMetadata);
 		tabbedPane.addTab(element.getName(), null, panelOutline, null);
 	}
diff --git a/source/pro/litvinovg/libreoffice/metadata/views/MetadataTableModel.java b/source/pro/litvinovg/libreoffice/metadata/views/MetadataTableModel.java
index 66e092e..124ae13 100644
--- a/source/pro/litvinovg/libreoffice/metadata/views/MetadataTableModel.java
+++ b/source/pro/litvinovg/libreoffice/metadata/views/MetadataTableModel.java
@@ -25,7 +25,8 @@ public class MetadataTableModel extends DefaultTableModel {
 			Vector row = (Vector) elements.nextElement();
 			String name = (String) row.get(0);
 			String value = (String) row.get(1);
-			if (!name.isEmpty() && !value.isEmpty()) {
+			
+			if (name != null && !name.isEmpty() && value != null && !value.isEmpty()) {
 				metadata.add(new MetadataElement(name, value));
 			}
 		}