Options passing

This commit is contained in:
Georgy Litvinov 2020-07-30 14:25:03 +02:00
parent 387b29bce7
commit fa22dc688e

View file

@ -5,9 +5,11 @@ import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.UIManager;
import com.github.andrewoma.dexx.collection.Map;
import com.sun.star.uno.XComponentContext;
import pro.litvinovg.xml.Debug;
import w2phtml.Application;
import java.awt.Toolkit;
import java.awt.GridLayout;
@ -26,6 +28,8 @@ import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JRadioButton;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Set;
import java.awt.event.ActionEvent;
import javax.swing.JSplitPane;
import java.awt.BorderLayout;
@ -34,6 +38,8 @@ import javax.swing.BoxLayout;
import javax.swing.SpringLayout;
import java.awt.FlowLayout;
import java.awt.CardLayout;
import java.awt.Component;
import javax.swing.SwingConstants;
public class ConfigurationWindow extends JFrame {
@ -101,37 +107,28 @@ public class ConfigurationWindow extends JFrame {
private JPanel createEpubPanel() {
JPanel panel_epub = new JPanel();
JPanel panel_control = createControlPanel(panel_epub);
HashMap<String, Component> configuration = new HashMap<String, Component>();
JPanel panel_control = createControlPanel(configuration);
JPanel panel_configEpub = createConfigEpubPanel();
applyDefaultLayout(panel_epub, panel_configEpub, panel_control);
return panel_epub;
}
private JPanel createRDFPanel() {
JPanel panel_rdf = new JPanel();
JPanel panel_control = createControlPanel(panel_rdf);
HashMap<String, Component> configuration = new HashMap<String, Component>();
JPanel panel_control = createControlPanel(configuration);
JPanel panel_configRDF = createConfigRDFPanel();
applyDefaultLayout2(panel_rdf, panel_configRDF, panel_control);
return panel_rdf;
}
private JPanel createHTMLPanel() {
JPanel panel_html = new JPanel();
JPanel panel_configHTML = createConfigHTMLPanel();
JPanel panel_control = createControlPanel(panel_configHTML);
HashMap<String, Component> configuration = new HashMap<String, Component>();
JPanel panel_configHTML = createConfigHTMLPanel(configuration);
JPanel panel_control = createControlPanel(configuration);
applyDefaultLayout3(panel_html, panel_configHTML, panel_control);
return panel_html;
}
@ -343,99 +340,129 @@ public class ConfigurationWindow extends JFrame {
return panel_configHTML;
}
private JPanel createConfigHTMLPanel() {
private JPanel createConfigHTMLPanel(HashMap<String, Component> configuration) {
JPanel panel_configHTML = new JPanel();
JCheckBox cb_UseMathJax = new JCheckBox("Use MathJax");
configuration.put("useMathJax", cb_UseMathJax);
JCheckBox cb_IgnoreEmptyParagraphs_2 = new JCheckBox("Split on whole pages only");
JCheckBox cb_SplitWholePagesOnly = new JCheckBox("Split on whole pages only");
configuration.put("splitWholePagesOnly", cb_SplitWholePagesOnly);
JLabel lb_SplitByLevel = new JLabel("Split into multiple files by heading level");
JTextField tf_SplitByLevel = new JTextField();
configuration.put("splitByLevel", tf_SplitByLevel);
tf_SplitByLevel.setColumns(10);
JCheckBox cb_Greenstone = new JCheckBox("Split document into subsections for Greenstone digital library");
configuration.put("greenstone", cb_Greenstone);
JCheckBox cb_IgnoreEmptyParagraphs = new JCheckBox("Filter empty paragraphs");
configuration.put("filterEmptyParagraphs", cb_IgnoreEmptyParagraphs);
JCheckBox cb_IgnoreHardLineBreaks = new JCheckBox("Filter hard line breaks");
configuration.put("filterHardLineBreaks", cb_IgnoreHardLineBreaks);
JLabel lb_FilterLetterSpacing = new JLabel("Filter letter spacing less than");
JTextField tf_FilterLetterSpacing = new JTextField();
configuration.put("filterLetterSpacing", tf_FilterLetterSpacing);
tf_FilterLetterSpacing.setColumns(10);
JCheckBox cb_InlineStyles = new JCheckBox("Inline styles");
configuration.put("inlineStyles", cb_InlineStyles);
JCheckBox cb_EmbedVectorImages = new JCheckBox("Embed vector images");
configuration.put("embedVectorImages", cb_EmbedVectorImages);
JCheckBox cb_EmbedRaster = new JCheckBox("Embed raster images");
configuration.put("embedRaster", cb_EmbedRaster);
JLabel lb_Scale = new JLabel("Scale");
JTextField tf_Scale = new JTextField();
configuration.put("scale", tf_Scale);
tf_Scale.setColumns(10);
JLabel lb_MaxWidth = new JLabel("Max body width");
JTextField tf_MaxWidth = new JTextField();
configuration.put("maxWidth", tf_MaxWidth);
tf_MaxWidth.setColumns(10);
JCheckBox cb_ConversionToRem = new JCheckBox("Convert dimensions to REM");
configuration.put("conversionToRem", cb_ConversionToRem);
JLabel lb_FilePath = new JLabel("File path");
tf_FilePath = new JTextField();
tf_FilePath.setColumns(10);
JLabel lb_TargetFormat = new JLabel("HTML");
configuration.put("targetFormat", lb_TargetFormat);
JLabel lb_TargetFormat_description = new JLabel("Target format");
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)
.addGap(32)
.addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel_configHTML.createSequentialGroup()
.addComponent(lb_FilePath, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(tf_FilePath, GroupLayout.DEFAULT_SIZE, 755, Short.MAX_VALUE))
.addComponent(cb_UseMathJax, GroupLayout.PREFERRED_SIZE, 303, GroupLayout.PREFERRED_SIZE)
.addComponent(lb_TargetFormat_description, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(lb_TargetFormat, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE)
.addContainerGap())
.addGroup(gl_panel_configHTML.createSequentialGroup()
.addComponent(lb_Scale, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(tf_Scale, 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_Greenstone, GroupLayout.PREFERRED_SIZE, 482, GroupLayout.PREFERRED_SIZE)
.addGroup(gl_panel_configHTML.createSequentialGroup()
.addComponent(lb_SplitByLevel, GroupLayout.PREFERRED_SIZE, 295, GroupLayout.PREFERRED_SIZE)
.addGap(42)
.addComponent(tf_SplitByLevel, GroupLayout.PREFERRED_SIZE, 175, GroupLayout.PREFERRED_SIZE))
.addComponent(cb_IgnoreEmptyParagraphs_2, GroupLayout.PREFERRED_SIZE, 303, GroupLayout.PREFERRED_SIZE))
.addGap(40))
.addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel_configHTML.createSequentialGroup()
.addComponent(lb_FilePath, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(tf_FilePath, GroupLayout.DEFAULT_SIZE, 755, Short.MAX_VALUE))
.addComponent(cb_UseMathJax, GroupLayout.PREFERRED_SIZE, 303, GroupLayout.PREFERRED_SIZE)
.addGroup(gl_panel_configHTML.createSequentialGroup()
.addComponent(lb_Scale, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(tf_Scale, 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_Greenstone, GroupLayout.PREFERRED_SIZE, 482, GroupLayout.PREFERRED_SIZE)
.addGroup(gl_panel_configHTML.createSequentialGroup()
.addComponent(lb_SplitByLevel, GroupLayout.PREFERRED_SIZE, 295, GroupLayout.PREFERRED_SIZE)
.addGap(42)
.addComponent(tf_SplitByLevel, GroupLayout.PREFERRED_SIZE, 175, GroupLayout.PREFERRED_SIZE))
.addComponent(cb_SplitWholePagesOnly, GroupLayout.PREFERRED_SIZE, 303, GroupLayout.PREFERRED_SIZE))
.addGap(48))))
);
gl_panel_configHTML.setVerticalGroup(
gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel_configHTML.createSequentialGroup()
.addContainerGap()
.addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE)
.addComponent(lb_TargetFormat_description)
.addComponent(lb_TargetFormat))
.addGap(22)
.addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel_configHTML.createSequentialGroup()
.addGap(17)
.addGap(2)
.addComponent(lb_FilePath))
.addGroup(gl_panel_configHTML.createSequentialGroup()
.addGap(15)
.addComponent(tf_FilePath, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
.addComponent(tf_FilePath, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panel_configHTML.createSequentialGroup()
@ -475,16 +502,16 @@ public class ConfigurationWindow extends JFrame {
.addGap(2)
.addComponent(lb_SplitByLevel)))
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(cb_IgnoreEmptyParagraphs_2)
.addComponent(cb_SplitWholePagesOnly)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(cb_UseMathJax)
.addContainerGap(364, Short.MAX_VALUE))
.addContainerGap(274, Short.MAX_VALUE))
);
panel_configHTML.setLayout(gl_panel_configHTML);
return panel_configHTML;
}
private JPanel createControlPanel(JPanel configurationPanel) {
private JPanel createControlPanel(HashMap<String,Component> configuration) {
JPanel controlPanel = new JPanel();
JButton btn_Exit = new JButton("Exit");
@ -500,6 +527,13 @@ public class ConfigurationWindow extends JFrame {
JButton btn_Save = new JButton("Save");
JButton btn_Convert = new JButton("Convert");
btn_Convert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ConfigurationReader reader = new ConfigurationReader(configuration, context);
//Application.main(reader.getCommandLine());
}
});
GroupLayout gl_panel_control = new GroupLayout(controlPanel);
gl_panel_control.setHorizontalGroup(