Compare commits
7 commits
Author | SHA1 | Date | |
---|---|---|---|
cb51dd940c | |||
7e85c01984 | |||
e0302b1652 | |||
7d164e10a6 | |||
7d66b8d73b | |||
a199cf2734 | |||
4152d529f7 |
|
@ -1,16 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<description xmlns="http://openoffice.org/extensions/description/2006" xmlns:d="http://openoffice.org/extensions/description/2006" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<version value="0.3.3"/>
|
||||
<version value="0.4.1"/>
|
||||
<identifier value="pro.litvinovg.libreoffice.metadata"/>
|
||||
<update-information>
|
||||
<src xlink:href="https://dev.litvinovg.pro/litvinovg/metadata-editor/-/raw/master/metadataeditor.update.xml"/>
|
||||
</update-information>
|
||||
<release-notes>
|
||||
<src lang="en" xlink:href="releasenotes.txt"/>
|
||||
</release-notes>
|
||||
<display-name>
|
||||
<name lang="en">MetadataEditor</name>
|
||||
</display-name>
|
||||
<release-notes>
|
||||
<src xlink:href="releasenotes.txt" lang="en" />
|
||||
</release-notes>
|
||||
<update-information>
|
||||
<src xlink:href="https://dev.litvinovg.pro/litvinovg/metadata-editor/-/raw/master/metadataeditor.update.xml" />
|
||||
</update-information>
|
||||
<icon>
|
||||
<default xlink:href="images/metadata.png"/>
|
||||
<high-contrast xlink:href="images/metadata.png"/>
|
||||
</icon>
|
||||
<extension-description>
|
||||
<src lang="en" xlink:href="description/desc_en.txt"/>
|
||||
</extension-description>
|
||||
|
|
Before Width: | Height: | Size: 501 B |
Before Width: | Height: | Size: 575 B |
|
@ -2,9 +2,9 @@
|
|||
<description xmlns="http://openoffice.org/extensions/update/2006"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<identifier value="pro.litvinovg.libreoffice.metadata"/>
|
||||
<version value="0.3.3" />
|
||||
<version value="0.4.1" />
|
||||
<update-download>
|
||||
<src xlink:href="https://dev.litvinovg.pro/litvinovg/metadata-editor/uploads/cb69f3d97235f7cdad897a66005c4f00/Metadata_Editor.oxt" />
|
||||
<src xlink:href="https://dev.litvinovg.pro/litvinovg/metadata-editor/uploads/cc4bd54cbaf865b21ca4f6b7dbda2e7b/Metadata_Editor.oxt" />
|
||||
</update-download>
|
||||
<release-notes>
|
||||
<src xlink:href="https://dev.litvinovg.pro/litvinovg/metadata-editor/-/raw/master/releasenotes.txt" lang="en" />
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<oor:component-data oor:package="org.openoffice.Office" oor:name="Addons"
|
||||
xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<node oor:name="AddonUI">
|
||||
|
@ -9,11 +9,8 @@
|
|||
<value>service:pro.litvinovg.libreoffice.MetadataEditor?openGUI</value>
|
||||
</prop>
|
||||
<node oor:name="UserDefinedImages">
|
||||
<prop oor:name="ImageSmallURL">
|
||||
<value>vnd.sun.star.extension://pro.litvinovg.libreoffice.metadata/images/actionOne_16.png</value>
|
||||
</prop>
|
||||
<prop oor:name="ImageBigURL">
|
||||
<value>vnd.sun.star.extension://pro.litvinovg.libreoffice.metadata/images/actionOne_26.png</value>
|
||||
<prop oor:name="ImageBigURL">
|
||||
<value>vnd.sun.star.extension://pro.litvinovg.libreoffice.metadata/images/metadata.png</value>
|
||||
</prop>
|
||||
</node>
|
||||
</node>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
Before Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 14 KiB |
BIN
source/pro/litvinovg/libreoffice/metadata/resources/metadata.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 30 KiB |
|
@ -46,6 +46,8 @@ 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
|
||||
|
@ -182,9 +184,8 @@ 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);
|
||||
}
|
||||
|
@ -218,10 +219,8 @@ public class EditorGUI extends JFrame {
|
|||
|
||||
private void addMetadataTab(OutlineElement element) {
|
||||
JPanel panelOutline = new JPanel();
|
||||
JTable tableOutline = new MetadataTable();
|
||||
MetadataTableModel outlineTableModel = createOutlineTableModel(element);
|
||||
tableModels.add(outlineTableModel);
|
||||
configureTableOutline(tableOutline, outlineTableModel);
|
||||
|
||||
JButton btnOutlineSave = new JButton("Сохранить");
|
||||
btnOutlineSave.addActionListener(new ActionListener() {
|
||||
|
@ -230,27 +229,41 @@ 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()
|
||||
.addContainerGap(748, Short.MAX_VALUE)
|
||||
.addComponent(btnOutlineSave)
|
||||
.addGap(134))
|
||||
.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))
|
||||
);
|
||||
groupLayoutOutlineMetadata.setVerticalGroup(
|
||||
groupLayoutOutlineMetadata.createParallelGroup(Alignment.LEADING)
|
||||
.addGroup(groupLayoutOutlineMetadata.createSequentialGroup()
|
||||
.addGap(85)
|
||||
.addComponent(tableOutline, GroupLayout.DEFAULT_SIZE, 497, Short.MAX_VALUE)
|
||||
.addGap(52)
|
||||
.addComponent(btnOutlineSave)
|
||||
.addGap(43))
|
||||
.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))
|
||||
);
|
||||
JTable tableOutline = new MetadataTable();
|
||||
scrollPane.setViewportView(tableOutline);
|
||||
configureTableOutline(tableOutline, outlineTableModel);
|
||||
|
||||
JPopupMenu popupMenu = new JPopupMenu();
|
||||
addPopup(tableOutline, popupMenu);
|
||||
|
@ -275,7 +288,7 @@ public class EditorGUI extends JFrame {
|
|||
}
|
||||
|
||||
private void configureWindow() {
|
||||
setIconImage(Toolkit.getDefaultToolkit().getImage(EditorGUI.class.getResource("/pro/litvinovg/libreoffice/metadata/resources/webcam.png")));
|
||||
setIconImage(Toolkit.getDefaultToolkit().getImage(EditorGUI.class.getResource("/pro/litvinovg/libreoffice/metadata/resources/metadata.png")));
|
||||
setTitle("Редактор метаданных");
|
||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
setBounds(100, 100, 1170, 755);
|
||||
|
|
|
@ -17,7 +17,6 @@ public class MetadataTableRenderer extends JTextArea implements TableCellRendere
|
|||
|
||||
public Component getTableCellRendererComponent(JTable table,Object value,
|
||||
boolean isSelected, boolean hasFocus, int row,int column) {
|
||||
|
||||
this.setText(value == null ? "" : value.toString());
|
||||
return this;
|
||||
}
|
||||
|
|