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