diff --git a/src/main/java/pro/litvinovg/w2phtml/gui/ConfigurationWindow.java b/src/main/java/pro/litvinovg/w2phtml/gui/ConfigurationWindow.java
index 468c1a1..849f039 100644
--- a/src/main/java/pro/litvinovg/w2phtml/gui/ConfigurationWindow.java
+++ b/src/main/java/pro/litvinovg/w2phtml/gui/ConfigurationWindow.java
@@ -15,6 +15,28 @@ import javax.swing.JTabbedPane;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JPanel;
+import javax.swing.JLabel;
+import javax.swing.JCheckBox;
+import javax.swing.JTextField;
+import javax.swing.GroupLayout;
+import javax.swing.GroupLayout.Alignment;
+import javax.swing.LayoutStyle.ComponentPlacement;
+import javax.swing.JRadioButton;
+import javax.swing.JButton;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+import javax.swing.JSplitPane;
+import java.awt.BorderLayout;
+import javax.swing.JDesktopPane;
+import javax.swing.BoxLayout;
+import com.jgoodies.forms.layout.FormLayout;
+import com.jgoodies.forms.layout.ColumnSpec;
+import com.jgoodies.forms.layout.RowSpec;
+import com.jgoodies.forms.layout.FormSpecs;
+import javax.swing.SpringLayout;
+import java.awt.FlowLayout;
+import java.awt.CardLayout;
+import javax.swing.SwingConstants;
public class ConfigurationWindow extends JFrame {
@@ -30,15 +52,13 @@ public class ConfigurationWindow extends JFrame {
*/
public static void main(String[] args) {
runGUI(null);
- /*
- * EventQueue.invokeLater(new Runnable() { public void run() { try {
- * ConfigurationWindow window = new ConfigurationWindow();
- * window.frame.setVisible(true); } catch (Exception e) {
- * e.printStackTrace(); } } });
- */
}
private XComponentContext context;
+ private JTextField tf_MaxWidth;
+ private JTextField tf_FilterLetterSpacing;
+ private JTextField textField_1;
+ private JTextField textField;
/**
* Create the application.
@@ -71,20 +91,153 @@ public class ConfigurationWindow extends JFrame {
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.LEFT);
getContentPane().add(tabbedPane);
- JPanel panel_1 = new JPanel();
- tabbedPane.addTab("HTML", null, panel_1, null);
+ JPanel panel_rdf = createRDFPanel();
- JPanel panel = new JPanel();
- tabbedPane.addTab("ePub", null, panel, null);
+ JPanel panel_epub = createEpubPanel();
- JPanel panel_2 = new JPanel();
- tabbedPane.addTab("RDF", null, panel_2, null);
+ JPanel panel_html = createHTMLPanel();
+
+ tabbedPane.addTab("HTML", null, panel_html, null);
+ tabbedPane.addTab("RDF", null, panel_rdf, null);
+ tabbedPane.addTab("ePub", null, panel_epub, null);
- JMenuBar menuBar = new JMenuBar();
- setJMenuBar(menuBar);
- JMenu mnFile = new JMenu("File");
- menuBar.add(mnFile);
+ }
+
+ private JPanel createEpubPanel() {
+ JPanel panel_epub = new JPanel();
+ GroupLayout gl_panel_epub = new GroupLayout(panel_epub);
+ gl_panel_epub.setHorizontalGroup(
+ gl_panel_epub.createParallelGroup(Alignment.LEADING)
+ .addGap(0, 968, Short.MAX_VALUE)
+ );
+ gl_panel_epub.setVerticalGroup(
+ gl_panel_epub.createParallelGroup(Alignment.TRAILING)
+ .addGap(0, 745, Short.MAX_VALUE)
+ );
+ panel_epub.setLayout(gl_panel_epub);
+ return panel_epub;
+ }
+
+ private JPanel createRDFPanel() {
+ JPanel panel_rdf = new JPanel();
+ GroupLayout gl_panel_rdf = new GroupLayout(panel_rdf);
+ gl_panel_rdf.setHorizontalGroup(
+ gl_panel_rdf.createParallelGroup(Alignment.LEADING)
+ .addGap(0, 968, Short.MAX_VALUE)
+ );
+ gl_panel_rdf.setVerticalGroup(
+ gl_panel_rdf.createParallelGroup(Alignment.LEADING)
+ .addGap(0, 745, Short.MAX_VALUE)
+ );
+ panel_rdf.setLayout(gl_panel_rdf);
+ return panel_rdf;
+ }
+
+ private JPanel createHTMLPanel() {
+ JPanel panel_html = new JPanel();
+
+ JPanel panel_control = createControlPanel();
+
+ JPanel panel_configHTML = createConfigHTMLPanel();
+
+ GroupLayout gl_panel_html = new GroupLayout(panel_html);
+ gl_panel_html.setHorizontalGroup(gl_panel_html.createParallelGroup(Alignment.TRAILING)
+ .addGroup(gl_panel_html.createSequentialGroup().addGroup(gl_panel_html.createParallelGroup(Alignment.TRAILING).addComponent(panel_configHTML, GroupLayout.DEFAULT_SIZE, 852, Short.MAX_VALUE).addComponent(panel_control, GroupLayout.DEFAULT_SIZE, 852, Short.MAX_VALUE)).addGap(4)));
+ gl_panel_html.setVerticalGroup(gl_panel_html.createParallelGroup(Alignment.LEADING).addGroup(Alignment.TRAILING,
+ gl_panel_html.createSequentialGroup().addComponent(panel_configHTML, GroupLayout.DEFAULT_SIZE, 691, Short.MAX_VALUE).addPreferredGap(ComponentPlacement.RELATED).addComponent(panel_control, GroupLayout.PREFERRED_SIZE, 48, GroupLayout.PREFERRED_SIZE)));
+
+
+ panel_html.setLayout(gl_panel_html);
+ return panel_html;
+ }
+
+ private JPanel createConfigHTMLPanel() {
+ JPanel panel_configHTML = new JPanel();
+
+ JCheckBox cb_IgnoreEmptyParagraphs_2_1_1 = new JCheckBox("Use MathJax");
+
+ JCheckBox cb_IgnoreEmptyParagraphs_2 = new JCheckBox("Split on whole pages only");
+
+ JLabel lb_FilterLetterSpacing_1 = new JLabel("Split into multiple files by heading level");
+
+ textField = new JTextField();
+ textField.setColumns(10);
+
+ JCheckBox cb_IgnoreEmptyParagraphs_1 = new JCheckBox("Split document into subsections for Greenstone digital library");
+
+ JCheckBox cb_IgnoreEmptyParagraphs = new JCheckBox("Filter empty paragraphs");
+
+ JCheckBox cb_IgnoreHardLineBreaks = new JCheckBox("Filter hard line breaks");
+
+ JLabel lb_FilterLetterSpacing = new JLabel("Filter letter spacing less than");
+
+ tf_FilterLetterSpacing = new JTextField();
+ tf_FilterLetterSpacing.setColumns(10);
+
+ JCheckBox cb_InlineStyles = new JCheckBox("Inline styles");
+
+ JCheckBox cb_EmbedVectorImages = new JCheckBox("Embed vector images");
+
+ JCheckBox cb_EmbedRaster = new JCheckBox("Embed raster images");
+
+ JLabel lb_MaxWidth_1 = new JLabel("Scale");
+
+ textField_1 = new JTextField();
+ textField_1.setColumns(10);
+
+ JLabel lb_MaxWidth = new JLabel("Max body width");
+
+ tf_MaxWidth = new JTextField();
+ tf_MaxWidth.setColumns(10);
+
+ JCheckBox cb_ConversionToRem = new JCheckBox("Convert dimensions to REM");
+ GroupLayout gl_panel_configHTML = new GroupLayout(panel_configHTML);
+ gl_panel_configHTML.setHorizontalGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
+ .addGroup(gl_panel_configHTML.createSequentialGroup().addGap(40)
+ .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING).addComponent(cb_IgnoreEmptyParagraphs_2_1_1, GroupLayout.PREFERRED_SIZE, 303, GroupLayout.PREFERRED_SIZE)
+ .addGroup(gl_panel_configHTML.createSequentialGroup().addComponent(lb_MaxWidth_1, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE).addGap(18).addComponent(textField_1, GroupLayout.PREFERRED_SIZE, 175, GroupLayout.PREFERRED_SIZE))
+ .addGroup(gl_panel_configHTML.createSequentialGroup().addComponent(lb_MaxWidth).addGap(18).addComponent(tf_MaxWidth, GroupLayout.PREFERRED_SIZE, 175, GroupLayout.PREFERRED_SIZE))
+ .addGroup(gl_panel_configHTML.createSequentialGroup().addComponent(lb_FilterLetterSpacing, GroupLayout.PREFERRED_SIZE, 253, GroupLayout.PREFERRED_SIZE).addGap(18).addComponent(tf_FilterLetterSpacing, GroupLayout.PREFERRED_SIZE, 175, GroupLayout.PREFERRED_SIZE))
+ .addComponent(cb_InlineStyles, GroupLayout.PREFERRED_SIZE, 592, GroupLayout.PREFERRED_SIZE).addComponent(cb_EmbedVectorImages, GroupLayout.PREFERRED_SIZE, 592, GroupLayout.PREFERRED_SIZE).addComponent(cb_EmbedRaster, GroupLayout.PREFERRED_SIZE, 592, GroupLayout.PREFERRED_SIZE)
+ .addComponent(cb_ConversionToRem, GroupLayout.PREFERRED_SIZE, 592, GroupLayout.PREFERRED_SIZE).addComponent(cb_IgnoreHardLineBreaks, GroupLayout.PREFERRED_SIZE, 303, GroupLayout.PREFERRED_SIZE)
+ .addComponent(cb_IgnoreEmptyParagraphs, GroupLayout.PREFERRED_SIZE, 303, GroupLayout.PREFERRED_SIZE).addComponent(cb_IgnoreEmptyParagraphs_1, GroupLayout.PREFERRED_SIZE, 482, GroupLayout.PREFERRED_SIZE)
+ .addGroup(gl_panel_configHTML.createSequentialGroup().addComponent(lb_FilterLetterSpacing_1, GroupLayout.PREFERRED_SIZE, 325, GroupLayout.PREFERRED_SIZE).addGap(12).addComponent(textField, GroupLayout.PREFERRED_SIZE, 175, GroupLayout.PREFERRED_SIZE))
+ .addComponent(cb_IgnoreEmptyParagraphs_2, GroupLayout.PREFERRED_SIZE, 303, GroupLayout.PREFERRED_SIZE))
+ .addContainerGap(332, Short.MAX_VALUE)));
+ gl_panel_configHTML.setVerticalGroup(gl_panel_configHTML.createParallelGroup(Alignment.TRAILING).addGroup(Alignment.LEADING,
+ gl_panel_configHTML.createSequentialGroup().addGap(38)
+ .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING).addGroup(gl_panel_configHTML.createSequentialGroup().addGap(2).addComponent(lb_MaxWidth_1)).addComponent(textField_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(6)
+ .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING).addGroup(gl_panel_configHTML.createSequentialGroup().addGap(2).addComponent(lb_MaxWidth)).addComponent(tf_MaxWidth, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(6)
+ .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING).addGroup(gl_panel_configHTML.createSequentialGroup().addGap(2).addComponent(lb_FilterLetterSpacing)).addComponent(tf_FilterLetterSpacing, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(2)
+ .addComponent(cb_InlineStyles).addGap(7).addComponent(cb_EmbedVectorImages).addGap(7).addComponent(cb_EmbedRaster).addGap(7).addComponent(cb_ConversionToRem).addPreferredGap(ComponentPlacement.RELATED).addComponent(cb_IgnoreHardLineBreaks).addGap(7).addComponent(cb_IgnoreEmptyParagraphs)
+ .addGap(4).addComponent(cb_IgnoreEmptyParagraphs_1).addGap(8)
+ .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING).addGroup(gl_panel_configHTML.createSequentialGroup().addGap(2).addComponent(lb_FilterLetterSpacing_1)).addComponent(textField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(ComponentPlacement.RELATED).addComponent(cb_IgnoreEmptyParagraphs_2).addPreferredGap(ComponentPlacement.UNRELATED).addComponent(cb_IgnoreEmptyParagraphs_2_1_1).addContainerGap(310, Short.MAX_VALUE)));
+ panel_configHTML.setLayout(gl_panel_configHTML);
+ return panel_configHTML;
+ }
+
+ private JPanel createControlPanel() {
+ JPanel panel_control = new JPanel();
+
+ GroupLayout gl_panel_control = new GroupLayout(panel_control);
+ JButton btn_Exit = new JButton("Close converter");
+ btn_Exit.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ singleFrame.setVisible(false);
+ singleFrame.dispose();
+ }
+ });
+ JButton btn_SaveConfig = new JButton("Save configuration");
+ JButton btn_Convert = new JButton("Convert");
+
+ gl_panel_control.setHorizontalGroup(gl_panel_control.createParallelGroup(Alignment.LEADING).addGroup(Alignment.TRAILING, gl_panel_control.createSequentialGroup().addContainerGap(200, Short.MAX_VALUE).addComponent(btn_Exit, GroupLayout.PREFERRED_SIZE, 165, GroupLayout.PREFERRED_SIZE).addGap(5)
+ .addComponent(btn_SaveConfig).addGap(5).addComponent(btn_Convert, GroupLayout.PREFERRED_SIZE, 136, GroupLayout.PREFERRED_SIZE).addGap(286)));
+ gl_panel_control.setVerticalGroup(gl_panel_control.createParallelGroup(Alignment.TRAILING)
+ .addGroup(gl_panel_control.createSequentialGroup().addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addGroup(gl_panel_control.createParallelGroup(Alignment.LEADING).addComponent(btn_Convert).addComponent(btn_Exit).addComponent(btn_SaveConfig)).addContainerGap()));
+ panel_control.setLayout(gl_panel_control);
+ return panel_control;
}
public static void runGUI(XComponentContext context) {
@@ -115,6 +268,4 @@ public class ConfigurationWindow extends JFrame {
});
}
-
-
}