diff --git a/src/main/java/pro/litvinovg/w2phtml/gui/ConfigurationWindow.java b/src/main/java/pro/litvinovg/w2phtml/gui/ConfigurationWindow.java index 3c821e2..78688b5 100644 --- a/src/main/java/pro/litvinovg/w2phtml/gui/ConfigurationWindow.java +++ b/src/main/java/pro/litvinovg/w2phtml/gui/ConfigurationWindow.java @@ -45,6 +45,7 @@ import java.awt.CardLayout; import java.awt.Component; import javax.swing.SwingConstants; +import javax.swing.JComboBox; public class ConfigurationWindow extends JFrame { @@ -223,7 +224,7 @@ public class ConfigurationWindow extends JFrame { JCheckBox cb_convertToPx = new JCheckBox("Convert dimensions to pixels instead of REM (root em)"); configuration.put("convert_to_px", cb_convertToPx); - JLabel lb_FilePath = new JLabel("File path"); + JLabel lb_FilePath = new JLabel("Input file path"); JTextField tf_inputFile = new JTextField(fileName); tf_inputFile.setColumns(10); @@ -236,7 +237,7 @@ public class ConfigurationWindow extends JFrame { JLabel lb_TargetFormat_description = new JLabel("Target format"); - JButton btnChooseFile = new JButton("Choose file"); + JButton btnChooseFile = new JButton("Choose"); btnChooseFile.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { FileDialog fileDialog = new FileDialog(); @@ -246,39 +247,62 @@ public class ConfigurationWindow extends JFrame { } } }); + JTextField tf_OutputFile = new JTextField(""); + configuration.put("outputFile", tf_OutputFile); + tf_OutputFile.setColumns(10); + + JButton btn_ChooseOutputFile = new JButton("Choose"); + btn_ChooseOutputFile.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + FileDialog fileDialog = new FileDialog(); + String newFilePath = fileDialog.chooseFile(tf_OutputFile.getText(),"epub"); + if (newFilePath != null && !newFilePath.isEmpty()) { + tf_OutputFile.setText(newFilePath); + } + } + }); + + + + JLabel lb_OutFilePath = new JLabel("Output file path"); GroupLayout gl_panel_configHTML = new GroupLayout(panel_configHTML); gl_panel_configHTML.setHorizontalGroup( gl_panel_configHTML.createParallelGroup(Alignment.LEADING) .addGroup(gl_panel_configHTML.createSequentialGroup() .addGap(32) .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING) + .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)) .addComponent(cb_UseMathJax, GroupLayout.PREFERRED_SIZE, 303, GroupLayout.PREFERRED_SIZE) .addGroup(gl_panel_configHTML.createSequentialGroup() .addComponent(lb_TargetFormat_description, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.UNRELATED) .addComponent(lb_TargetFormat, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE)) - .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_inputFile, GroupLayout.PREFERRED_SIZE, 604, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(btnChooseFile, GroupLayout.PREFERRED_SIZE, 113, 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_FilterLetterSpacing, GroupLayout.PREFERRED_SIZE, 253, GroupLayout.PREFERRED_SIZE) - .addGap(18) - .addComponent(tf_FilterLetterSpacing, GroupLayout.PREFERRED_SIZE, 58, GroupLayout.PREFERRED_SIZE)) - .addComponent(cb_convertToPx, 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_EmbedRaster, GroupLayout.PREFERRED_SIZE, 194, GroupLayout.PREFERRED_SIZE) - .addComponent(cb_EmbedVectorImages, GroupLayout.PREFERRED_SIZE, 214, GroupLayout.PREFERRED_SIZE) - .addComponent(cb_InlineStyles, GroupLayout.PREFERRED_SIZE, 156, GroupLayout.PREFERRED_SIZE))) - .addContainerGap(80, Short.MAX_VALUE)) + .addGroup(gl_panel_configHTML.createSequentialGroup() + .addComponent(lb_FilterLetterSpacing, GroupLayout.PREFERRED_SIZE, 253, GroupLayout.PREFERRED_SIZE) + .addGap(18) + .addComponent(tf_FilterLetterSpacing, GroupLayout.PREFERRED_SIZE, 58, GroupLayout.PREFERRED_SIZE)) + .addComponent(cb_convertToPx, 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_EmbedRaster, GroupLayout.PREFERRED_SIZE, 194, GroupLayout.PREFERRED_SIZE) + .addComponent(cb_EmbedVectorImages, GroupLayout.PREFERRED_SIZE, 214, GroupLayout.PREFERRED_SIZE) + .addComponent(cb_InlineStyles, GroupLayout.PREFERRED_SIZE, 156, GroupLayout.PREFERRED_SIZE) + .addGroup(gl_panel_configHTML.createSequentialGroup() + .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING) + .addComponent(lb_OutFilePath, GroupLayout.PREFERRED_SIZE, 131, GroupLayout.PREFERRED_SIZE) + .addComponent(lb_FilePath, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE)) + .addGap(12) + .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING) + .addComponent(tf_inputFile, GroupLayout.PREFERRED_SIZE, 616, GroupLayout.PREFERRED_SIZE) + .addComponent(tf_OutputFile, GroupLayout.PREFERRED_SIZE, 616, GroupLayout.PREFERRED_SIZE)) + .addGap(12) + .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING) + .addComponent(btnChooseFile, GroupLayout.PREFERRED_SIZE, 113, GroupLayout.PREFERRED_SIZE) + .addComponent(btn_ChooseOutputFile, GroupLayout.PREFERRED_SIZE, 113, GroupLayout.PREFERRED_SIZE)))) + .addGap(48)) ); gl_panel_configHTML.setVerticalGroup( gl_panel_configHTML.createParallelGroup(Alignment.LEADING) @@ -296,13 +320,22 @@ public class ConfigurationWindow extends JFrame { .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE) .addComponent(tf_inputFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(btnChooseFile)))) - .addPreferredGap(ComponentPlacement.RELATED) + .addPreferredGap(ComponentPlacement.UNRELATED) + .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING) + .addGroup(gl_panel_configHTML.createSequentialGroup() + .addGap(5) + .addComponent(lb_OutFilePath)) + .addGroup(gl_panel_configHTML.createSequentialGroup() + .addGap(3) + .addComponent(tf_OutputFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addComponent(btn_ChooseOutputFile)) + .addGap(42) .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING) .addGroup(gl_panel_configHTML.createSequentialGroup() .addGap(2) .addComponent(lb_Scale)) .addComponent(tf_Scale, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addGap(25) + .addPreferredGap(ComponentPlacement.RELATED) .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING) .addGroup(gl_panel_configHTML.createSequentialGroup() .addGap(8) @@ -324,7 +357,7 @@ public class ConfigurationWindow extends JFrame { .addComponent(cb_IgnoreEmptyParagraphs) .addPreferredGap(ComponentPlacement.UNRELATED) .addComponent(cb_UseMathJax) - .addContainerGap(353, Short.MAX_VALUE)) + .addContainerGap(347, Short.MAX_VALUE)) ); panel_configHTML.setLayout(gl_panel_configHTML); return panel_configHTML; @@ -603,7 +636,7 @@ public class ConfigurationWindow extends JFrame { JCheckBox cb_convertToPx = new JCheckBox("Convert dimensions to pixels instead of REM (root em)"); configuration.put("convert_to_px", cb_convertToPx); - JLabel lb_FilePath = new JLabel("File path"); + JLabel lb_FilePath = new JLabel("Input file path"); JTextField tf_inputFile = new JTextField(fileName); tf_inputFile.setColumns(10); @@ -616,7 +649,7 @@ public class ConfigurationWindow extends JFrame { JLabel lb_TargetFormat_description = new JLabel("Target format"); - JButton btnChooseFile = new JButton("Choose file"); + JButton btnChooseFile = new JButton("Choose"); btnChooseFile.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { FileDialog fileDialog = new FileDialog(); @@ -626,39 +659,69 @@ public class ConfigurationWindow extends JFrame { } } }); + + JLabel lb_OutFilePath = new JLabel("Output file path"); + + JTextField tf_OutputFile = new JTextField(""); + configuration.put("outputFile", tf_OutputFile); + tf_OutputFile.setColumns(10); + + JButton btn_ChooseOutputFile = new JButton("Choose"); + btn_ChooseOutputFile.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + FileDialog fileDialog = new FileDialog(); + String newFilePath = fileDialog.chooseFile(tf_OutputFile.getText(),"rdf"); + if (newFilePath != null && !newFilePath.isEmpty()) { + tf_OutputFile.setText(newFilePath); + } + } + }); + String[] types = {"статья ЭФЭ","статья энциклопедии", "книга", "журнал"}; + JComboBox cbox_type = new JComboBox(types); + + JLabel lb_type = new JLabel("Type"); GroupLayout gl_panel_configHTML = new GroupLayout(panel_configHTML); gl_panel_configHTML.setHorizontalGroup( gl_panel_configHTML.createParallelGroup(Alignment.LEADING) .addGroup(gl_panel_configHTML.createSequentialGroup() .addGap(32) .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING) - .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) + .addPreferredGap(ComponentPlacement.RELATED) + .addComponent(tf_Scale, GroupLayout.PREFERRED_SIZE, 98, GroupLayout.PREFERRED_SIZE)) .addGroup(gl_panel_configHTML.createSequentialGroup() .addComponent(lb_TargetFormat_description, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.UNRELATED) .addComponent(lb_TargetFormat, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE)) - .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_inputFile, GroupLayout.PREFERRED_SIZE, 614, GroupLayout.PREFERRED_SIZE) - .addGap(6) - .addComponent(btnChooseFile, GroupLayout.PREFERRED_SIZE, 113, 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, 98, 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, 58, GroupLayout.PREFERRED_SIZE)) - .addComponent(cb_convertToPx, 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_EmbedRaster, GroupLayout.PREFERRED_SIZE, 194, GroupLayout.PREFERRED_SIZE) - .addComponent(cb_EmbedVectorImages, GroupLayout.PREFERRED_SIZE, 214, GroupLayout.PREFERRED_SIZE) - .addComponent(cb_InlineStyles, GroupLayout.PREFERRED_SIZE, 156, GroupLayout.PREFERRED_SIZE))) - .addContainerGap(97, Short.MAX_VALUE)) + .addComponent(cb_UseMathJax, GroupLayout.PREFERRED_SIZE, 303, 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, 58, GroupLayout.PREFERRED_SIZE)) + .addComponent(cb_convertToPx, 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_EmbedRaster, GroupLayout.PREFERRED_SIZE, 194, GroupLayout.PREFERRED_SIZE) + .addComponent(cb_EmbedVectorImages, GroupLayout.PREFERRED_SIZE, 214, GroupLayout.PREFERRED_SIZE) + .addComponent(cb_InlineStyles, GroupLayout.PREFERRED_SIZE, 156, GroupLayout.PREFERRED_SIZE) + .addGroup(gl_panel_configHTML.createSequentialGroup() + .addComponent(lb_OutFilePath, GroupLayout.PREFERRED_SIZE, 125, GroupLayout.PREFERRED_SIZE) + .addPreferredGap(ComponentPlacement.UNRELATED) + .addComponent(tf_OutputFile, 600, 600, 600) + .addGap(6) + .addComponent(btn_ChooseOutputFile, GroupLayout.PREFERRED_SIZE, 113, GroupLayout.PREFERRED_SIZE)) + .addGroup(gl_panel_configHTML.createSequentialGroup() + .addComponent(lb_FilePath, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE) + .addGap(32) + .addComponent(tf_inputFile, GroupLayout.PREFERRED_SIZE, 600, GroupLayout.PREFERRED_SIZE) + .addGap(6) + .addComponent(btnChooseFile, GroupLayout.PREFERRED_SIZE, 113, GroupLayout.PREFERRED_SIZE)) + .addGroup(gl_panel_configHTML.createSequentialGroup() + .addComponent(lb_type, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE) + .addPreferredGap(ComponentPlacement.RELATED) + .addComponent(cbox_type, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))) + .addContainerGap(70, Short.MAX_VALUE)) ); gl_panel_configHTML.setVerticalGroup( gl_panel_configHTML.createParallelGroup(Alignment.LEADING) @@ -676,15 +739,23 @@ public class ConfigurationWindow extends JFrame { .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE) .addComponent(tf_inputFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(btnChooseFile)))) - .addPreferredGap(ComponentPlacement.RELATED) + .addPreferredGap(ComponentPlacement.UNRELATED) .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING) + .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE) + .addComponent(tf_OutputFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(btn_ChooseOutputFile)) .addGroup(gl_panel_configHTML.createSequentialGroup() - .addGap(8) - .addComponent(lb_Scale)) - .addGroup(gl_panel_configHTML.createSequentialGroup() - .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(tf_Scale, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))) - .addGap(25) + .addGap(2) + .addComponent(lb_OutFilePath))) + .addGap(24) + .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE) + .addComponent(lb_type) + .addComponent(cbox_type, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addGap(18) + .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE) + .addComponent(lb_Scale) + .addComponent(tf_Scale, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addGap(18) .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING) .addGroup(gl_panel_configHTML.createSequentialGroup() .addGap(8) @@ -706,7 +777,7 @@ public class ConfigurationWindow extends JFrame { .addComponent(cb_IgnoreEmptyParagraphs) .addPreferredGap(ComponentPlacement.UNRELATED) .addComponent(cb_UseMathJax) - .addContainerGap(407, Short.MAX_VALUE)) + .addContainerGap(311, Short.MAX_VALUE)) ); panel_configHTML.setLayout(gl_panel_configHTML); return panel_configHTML;