diff --git a/.classpath b/.classpath index 49276ea..6e6fd97 100644 --- a/.classpath +++ b/.classpath @@ -3,10 +3,6 @@ - - - - - + diff --git a/.project b/.project index 98f7e58..605dc2d 100644 --- a/.project +++ b/.project @@ -1,6 +1,6 @@ - Metadata Editor + StarterProject diff --git a/.unoproject b/.unoproject index 1a2dfbc..67bde5b 100644 --- a/.unoproject +++ b/.unoproject @@ -1,5 +1,5 @@ #UNO project configuration file -#Fri Apr 10 17:20:27 CEST 2020 +#Thu Mar 19 15:58:57 CET 2020 project.srcdir=/source regclassname=pro.litvinovg.libreoffice.metadata.RegistrationHandler javaversion=java5 diff --git a/description.xml b/description.xml index 9a34e6b..a4f9902 100644 --- a/description.xml +++ b/description.xml @@ -1,20 +1,13 @@ - + - - - - - - MetadataEditor - - - - + + + diff --git a/images/actionOne_16.png b/images/actionOne_16.png new file mode 100644 index 0000000..fb7409d Binary files /dev/null and b/images/actionOne_16.png differ diff --git a/images/actionOne_26.png b/images/actionOne_26.png new file mode 100644 index 0000000..268a528 Binary files /dev/null and b/images/actionOne_26.png differ diff --git a/metadataeditor.update.xml b/metadataeditor.update.xml index b46d38e..2f00691 100644 --- a/metadataeditor.update.xml +++ b/metadataeditor.update.xml @@ -2,9 +2,9 @@ - + - + diff --git a/package.properties b/package.properties index 6463bb9..e081b50 100644 --- a/package.properties +++ b/package.properties @@ -1,3 +1,3 @@ #Written by the OOEclipseIntegration -#Fri Apr 10 17:15:09 CEST 2020 -contents=description, description/desc_en.txt, releasenotes.txt, images, images/actionOne_16.png, images/actionOne_26.png, json-20190722.jar, registry, registry/org, registry/org/openoffice, registry/org/openoffice/Office, registry/org/openoffice/Office/Accelerators.xcu, registry/org/openoffice/Office/Addons.xcu, registry/org/openoffice/Office/UI, registry/org/openoffice/Office/UI/WriterWindowState.xcu +#Thu Apr 07 11:36:27 CEST 2016 +contents=description, description/desc_en.txt, images, images/actionOne_16.png, images/actionOne_26.png, registry, registry/org, registry/org/openoffice, registry/org/openoffice/Office, registry/org/openoffice/Office/Accelerators.xcu, registry/org/openoffice/Office/Addons.xcu, registry/org/openoffice/Office/UI, registry/org/openoffice/Office/UI/WriterWindowState.xcu diff --git a/registry/org/openoffice/Office/Addons.xcu b/registry/org/openoffice/Office/Addons.xcu index b9d93f3..ebf48dc 100644 --- a/registry/org/openoffice/Office/Addons.xcu +++ b/registry/org/openoffice/Office/Addons.xcu @@ -1,4 +1,4 @@ - + @@ -9,8 +9,11 @@ service:pro.litvinovg.libreoffice.MetadataEditor?openGUI - - vnd.sun.star.extension://pro.litvinovg.libreoffice.metadata/images/metadata.png + + vnd.sun.star.extension://pro.litvinovg.libreoffice.metadata/images/actionOne_16.png + + + vnd.sun.star.extension://pro.litvinovg.libreoffice.metadata/images/actionOne_26.png diff --git a/source/pro/litvinovg/libreoffice/metadata/MetadataElement.java b/source/pro/litvinovg/libreoffice/metadata/MetadataElement.java index 55d5c26..6cd6326 100644 --- a/source/pro/litvinovg/libreoffice/metadata/MetadataElement.java +++ b/source/pro/litvinovg/libreoffice/metadata/MetadataElement.java @@ -1,5 +1,7 @@ package pro.litvinovg.libreoffice.metadata; +import java.io.Serializable; + public class MetadataElement { private String name; @@ -18,4 +20,5 @@ public class MetadataElement { return value; } + } diff --git a/source/pro/litvinovg/libreoffice/metadata/OutlineElement.java b/source/pro/litvinovg/libreoffice/metadata/OutlineElement.java index a29b722..d57f958 100644 --- a/source/pro/litvinovg/libreoffice/metadata/OutlineElement.java +++ b/source/pro/litvinovg/libreoffice/metadata/OutlineElement.java @@ -2,7 +2,6 @@ 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; @@ -67,15 +66,12 @@ public class OutlineElement { public void readMetadata(String data) { try { JSONObject json = new JSONObject(data); - 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)); - } - } + Iterator names = json.keys(); + while (names.hasNext()) { + String metaName = names.next(); + String metaValue = (String) json.get(metaName); + metadata.add(new MetadataElement(metaName, metaValue)); + } } catch (JSONException e) { e.printStackTrace(); } catch (Exception e) { @@ -85,15 +81,11 @@ 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()) { - JSONObject meta = new JSONObject(); - meta.put(element.getName(), element.getValue()); - json.put(i.toString(), meta); - i++; + json.put(element.getName(), element.getValue()); } } return json.toString(); diff --git a/source/pro/litvinovg/libreoffice/metadata/resources/clock128.gif b/source/pro/litvinovg/libreoffice/metadata/resources/clock128.gif new file mode 100644 index 0000000..73d3505 Binary files /dev/null and b/source/pro/litvinovg/libreoffice/metadata/resources/clock128.gif differ diff --git a/source/pro/litvinovg/libreoffice/metadata/resources/cura.png b/source/pro/litvinovg/libreoffice/metadata/resources/cura.png new file mode 100644 index 0000000..c311b86 Binary files /dev/null and b/source/pro/litvinovg/libreoffice/metadata/resources/cura.png differ diff --git a/source/pro/litvinovg/libreoffice/metadata/resources/eclipse.png b/source/pro/litvinovg/libreoffice/metadata/resources/eclipse.png new file mode 100644 index 0000000..3cc80f4 Binary files /dev/null and b/source/pro/litvinovg/libreoffice/metadata/resources/eclipse.png differ diff --git a/source/pro/litvinovg/libreoffice/metadata/resources/metadata.png b/source/pro/litvinovg/libreoffice/metadata/resources/metadata.png deleted file mode 100644 index a7af7ee..0000000 Binary files a/source/pro/litvinovg/libreoffice/metadata/resources/metadata.png and /dev/null differ diff --git a/source/pro/litvinovg/libreoffice/metadata/resources/webcam.png b/source/pro/litvinovg/libreoffice/metadata/resources/webcam.png new file mode 100644 index 0000000..4fdb98f Binary files /dev/null and b/source/pro/litvinovg/libreoffice/metadata/resources/webcam.png differ diff --git a/source/pro/litvinovg/libreoffice/metadata/views/EditorGUI.java b/source/pro/litvinovg/libreoffice/metadata/views/EditorGUI.java index 4de8c9e..723b6f7 100644 --- a/source/pro/litvinovg/libreoffice/metadata/views/EditorGUI.java +++ b/source/pro/litvinovg/libreoffice/metadata/views/EditorGUI.java @@ -46,8 +46,6 @@ import java.awt.event.FocusEvent; import javax.swing.JToggleButton; import javax.swing.LayoutStyle.ComponentPlacement; import javax.swing.JLabel; -import javax.swing.ScrollPaneConstants; -import java.awt.Dimension; public class EditorGUI extends JFrame { //Components @@ -184,16 +182,17 @@ public class EditorGUI extends JFrame { panelStandardMetadata = new JPanel(); tabbedPane.addTab("Метаданные либры", null, panelStandardMetadata, null); tabbedPane.setEnabledAt(0, true); - - + /* + * if (true) { addMetadataTab(new OutlineElement(null, "Тестовое название")); } + */ for (OutlineElement element : outline) { addMetadataTab(element); } createDocPropsModel(); createCustomDocPropsModel(); - tableDocStandard = new MetadataTable(); - tableDocCustom = new MetadataTable(); + tableDocStandard = new JTable(); + tableDocCustom = new JTable(); configureTableDocStandard(); configureTableDocCustom(); @@ -219,8 +218,10 @@ public class EditorGUI extends JFrame { private void addMetadataTab(OutlineElement element) { JPanel panelOutline = new JPanel(); + JTable tableOutline = new JTable(); MetadataTableModel outlineTableModel = createOutlineTableModel(element); tableModels.add(outlineTableModel); + configureTableOutline(tableOutline, outlineTableModel); JButton btnOutlineSave = new JButton("Сохранить"); btnOutlineSave.addActionListener(new ActionListener() { @@ -229,41 +230,27 @@ public class EditorGUI extends JFrame { } }); - JScrollPane scrollPane = new JScrollPane(); - scrollPane.setSize(new Dimension(50, 50)); - - JButton btnOutlineSave_1 = new JButton("Закрыть"); - GroupLayout groupLayoutOutlineMetadata = new GroupLayout(panelOutline); groupLayoutOutlineMetadata.setHorizontalGroup( groupLayoutOutlineMetadata.createParallelGroup(Alignment.LEADING) + .addGroup(groupLayoutOutlineMetadata.createSequentialGroup() + .addGap(34) + .addComponent(tableOutline, GroupLayout.DEFAULT_SIZE, 839, Short.MAX_VALUE) + .addGap(126)) .addGroup(Alignment.TRAILING, groupLayoutOutlineMetadata.createSequentialGroup() - .addGroup(groupLayoutOutlineMetadata.createParallelGroup(Alignment.TRAILING) - .addGroup(groupLayoutOutlineMetadata.createSequentialGroup() - .addContainerGap(557, Short.MAX_VALUE) - .addComponent(btnOutlineSave_1, GroupLayout.PREFERRED_SIZE, 108, GroupLayout.PREFERRED_SIZE) - .addGap(104) - .addComponent(btnOutlineSave) - .addGap(32)) - .addGroup(groupLayoutOutlineMetadata.createSequentialGroup() - .addGap(45) - .addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 864, Short.MAX_VALUE))) - .addGap(90)) + .addContainerGap(748, Short.MAX_VALUE) + .addComponent(btnOutlineSave) + .addGap(134)) ); groupLayoutOutlineMetadata.setVerticalGroup( groupLayoutOutlineMetadata.createParallelGroup(Alignment.LEADING) - .addGroup(Alignment.TRAILING, groupLayoutOutlineMetadata.createSequentialGroup() - .addContainerGap() - .addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 600, Short.MAX_VALUE) - .addGap(31) - .addGroup(groupLayoutOutlineMetadata.createParallelGroup(Alignment.BASELINE) - .addComponent(btnOutlineSave_1) - .addComponent(btnOutlineSave)) - .addGap(34)) + .addGroup(groupLayoutOutlineMetadata.createSequentialGroup() + .addGap(85) + .addComponent(tableOutline, GroupLayout.DEFAULT_SIZE, 497, Short.MAX_VALUE) + .addGap(52) + .addComponent(btnOutlineSave) + .addGap(43)) ); - JTable tableOutline = new MetadataTable(); - scrollPane.setViewportView(tableOutline); - configureTableOutline(tableOutline, outlineTableModel); JPopupMenu popupMenu = new JPopupMenu(); addPopup(tableOutline, popupMenu); @@ -288,7 +275,7 @@ public class EditorGUI extends JFrame { } private void configureWindow() { - setIconImage(Toolkit.getDefaultToolkit().getImage(EditorGUI.class.getResource("/pro/litvinovg/libreoffice/metadata/resources/metadata.png"))); + setIconImage(Toolkit.getDefaultToolkit().getImage(EditorGUI.class.getResource("/pro/litvinovg/libreoffice/metadata/resources/webcam.png"))); setTitle("Редактор метаданных"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 1170, 755); diff --git a/source/pro/litvinovg/libreoffice/metadata/views/MetadataCellEditor.java b/source/pro/litvinovg/libreoffice/metadata/views/MetadataCellEditor.java deleted file mode 100644 index bc1fe6a..0000000 --- a/source/pro/litvinovg/libreoffice/metadata/views/MetadataCellEditor.java +++ /dev/null @@ -1,50 +0,0 @@ -package pro.litvinovg.libreoffice.metadata.views; - -import java.awt.Component; -import java.awt.event.ComponentAdapter; -import java.awt.event.ComponentEvent; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; - -import javax.swing.AbstractCellEditor; -import javax.swing.JTable; -import javax.swing.JTextArea; -import javax.swing.table.TableCellEditor; - -public class MetadataCellEditor extends AbstractCellEditor implements TableCellEditor { - JTextArea comp = new JTextArea(); - JTable table; - int row; - - public MetadataCellEditor() { - comp.setLineWrap(true); - comp.setWrapStyleWord(true); - comp.addComponentListener(new ComponentAdapter() { - public void componentResized(ComponentEvent e) { - super.componentResized(e); - table.setRowHeight(row, (int) (comp.getPreferredSize().getHeight())); - } - }); - comp.addKeyListener(new KeyAdapter() { - public void keyTyped(KeyEvent e) { - super.keyTyped(e); - table.setRowHeight(row, (int) (comp.getPreferredSize().getHeight())); - } - }); - } - - public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { - this.table = table; - this.row = row; - - comp.setText((String) value); - comp.setFont(table.getFont()); - - return comp; - } - - public Object getCellEditorValue() { - return comp.getText(); - } - -} diff --git a/source/pro/litvinovg/libreoffice/metadata/views/MetadataTable.java b/source/pro/litvinovg/libreoffice/metadata/views/MetadataTable.java deleted file mode 100644 index 63ea8ad..0000000 --- a/source/pro/litvinovg/libreoffice/metadata/views/MetadataTable.java +++ /dev/null @@ -1,20 +0,0 @@ -package pro.litvinovg.libreoffice.metadata.views; - -import javax.swing.DefaultCellEditor; -import javax.swing.JTable; -import javax.swing.JTextField; -import javax.swing.table.DefaultTableCellRenderer; -import javax.swing.table.TableCellEditor; -import javax.swing.table.TableCellRenderer; - -public class MetadataTable extends JTable { - - public TableCellRenderer getCellRenderer(int row, int col) { - return new MetadataTableRenderer(); - } - - public TableCellEditor getCellEditor(int row, int col) { - return new MetadataCellEditor(); - } - -} diff --git a/source/pro/litvinovg/libreoffice/metadata/views/MetadataTableRenderer.java b/source/pro/litvinovg/libreoffice/metadata/views/MetadataTableRenderer.java deleted file mode 100644 index cde3583..0000000 --- a/source/pro/litvinovg/libreoffice/metadata/views/MetadataTableRenderer.java +++ /dev/null @@ -1,23 +0,0 @@ -package pro.litvinovg.libreoffice.metadata.views; - -import java.awt.Component; - -import javax.swing.JTable; -import javax.swing.JTextArea; -import javax.swing.table.TableCellRenderer; - -public class MetadataTableRenderer extends JTextArea implements TableCellRenderer{ - private static final long serialVersionUID = 1L; - - public MetadataTableRenderer() { - setOpaque(true); - setLineWrap(true); - setWrapStyleWord(true); - } - - public Component getTableCellRendererComponent(JTable table,Object value, - boolean isSelected, boolean hasFocus, int row,int column) { - this.setText(value == null ? "" : value.toString()); - return this; - } -}