diff --git a/src/main/java/pro/litvinovg/w2phtml/gui/BasePanel.java b/src/main/java/pro/litvinovg/w2phtml/gui/BasePanel.java
deleted file mode 100644
index 796b99d..0000000
--- a/src/main/java/pro/litvinovg/w2phtml/gui/BasePanel.java
+++ /dev/null
@@ -1,253 +0,0 @@
-package pro.litvinovg.w2phtml.gui;
-
-import static pro.litvinovg.w2phtml.gui.Contstants.*;
-
-import java.awt.Component;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.io.File;
-import java.util.HashMap;
-
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JComboBox;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JTextField;
-
-public class BasePanel extends JPanel {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private UIPreferences preferences = null;
- private HashMap configuration = null;
-
- public BasePanel(HashMap configuration, UIPreferences preferences) {
- this.configuration = configuration;
- this.preferences = preferences;
- }
-
-
- public BasePanel() {
- }
-
-
- protected JCheckBox addMathJaxCB(UIPreferences preferences) {
- JCheckBox cb_UseMathJax = new JCheckBox(Localizer.get(LABEL_USE_MATHJAX));
- cb_UseMathJax.setSelected(Boolean.parseBoolean(preferences.get(PREF_USE_MATHJAX)));
- return cb_UseMathJax;
- }
-
- protected void setOutputFilePath(String newFilePath, JTextField tf_OutputFile, String extension) {
-
- File inputFile = new File(newFilePath);
- if (!inputFile.exists()) {
- return;
- }
- if (!inputFile.isDirectory()) {
- File parent = inputFile.getParentFile();
- if (parent == null) {
- return;
- }
- if (!parent.canWrite()) {
- JOptionPane.showMessageDialog(ConfigurationWindow.getSingleFrame(), Localizer.get(CANT_WRITE_MESSAGE));
- }
- }
- if (newFilePath.length() < 3) {
- return;
- }
- String exportPath;
- if (inputFile.isDirectory()) {
- exportPath = newFilePath;
- tf_OutputFile.setText(exportPath);
- } else {
- String importExt = newFilePath.substring(newFilePath.length() - 3, newFilePath.length()).toLowerCase();
- if (importExt.equals(ODT_FILE_EXTENSION)) {
- exportPath = newFilePath.substring(0, newFilePath.length() - 3) + extension;
- tf_OutputFile.setText(exportPath);
- }
- }
- }
-
- protected JCheckBox addIgnoreEmptyParsCB() {
- JCheckBox cb_IgnoreEmptyParagraphs = new JCheckBox(Localizer.get(LABEL_INGNORE_EMPTY_PARS));
- cb_IgnoreEmptyParagraphs.setSelected(Boolean.parseBoolean(preferences.get(PREF_IGNORE_EMPTY_PARS)));
- configuration.put(ARG_IGNORE_EMPTY_PARAGRAPHS, cb_IgnoreEmptyParagraphs);
- return cb_IgnoreEmptyParagraphs;
- }
-
- protected JCheckBox addSplitWholePagesOnly() {
- JCheckBox cb_SplitWholePagesOnly = new JCheckBox(Localizer.get(LABEL_SPLIT_WHOLE_PAGES_ONLY));
- cb_SplitWholePagesOnly.setSelected(Boolean.parseBoolean(preferences.get(PREF_SPLIT_WHOLE_PAGES)));
- configuration.put(ARG_ALIGN_SPLITS_TO_PAGES, cb_SplitWholePagesOnly);
- return cb_SplitWholePagesOnly;
- }
-
- protected JCheckBox addMathJaxCB() {
- JCheckBox cb_UseMathJax = new JCheckBox(Localizer.get(LABEL_USE_MATHJAX));
- cb_UseMathJax.setSelected(Boolean.parseBoolean(preferences.get(PREF_USE_MATHJAX)));
- configuration.put(ARG_USE_MATHJAX, cb_UseMathJax);
- return cb_UseMathJax;
- }
- protected JCheckBox addIgnoreHardLineBreaks() {
- JCheckBox cb_IgnoreHardLineBreaks = new JCheckBox(Localizer.get(LABEL_FILETER_HARD_LINE_BREAKS));
- cb_IgnoreHardLineBreaks.setSelected(Boolean.parseBoolean(preferences.get(PREF_IGNORE_HARD_BREAKS)));
- configuration.put(ARG_IGNORE_HARD_LINE_BREAKS, cb_IgnoreHardLineBreaks);
- return cb_IgnoreHardLineBreaks;
- }
-
- protected JTextField addLetterSpacingFilter() {
- JTextField tf_FilterLetterSpacing = new JTextField();
- tf_FilterLetterSpacing.setText(preferences.get(PREF_LETTER_SPACING));
- configuration.put(ARG_MIN_LETTER_SPACING, tf_FilterLetterSpacing);
- tf_FilterLetterSpacing.setColumns(10);
- return tf_FilterLetterSpacing;
- }
-
-
- protected JCheckBox addInlineStyles() {
- JCheckBox cb_InlineStyles = new JCheckBox(Localizer.get(LABEL_INLINE_STYLES));
- cb_InlineStyles.setSelected(Boolean.parseBoolean(preferences.get(PREF_INLINE_STYLES)));
- configuration.put(ARG_CSS_INLINE, cb_InlineStyles);
- return cb_InlineStyles;
- }
-
- protected JCheckBox addGreenstoneTags() {
- JCheckBox cb_Greenstone = new JCheckBox(Localizer.get(LABEL_GREENSTONE_SPLIT));
- configuration.put(ARG_GREENSTONE, cb_Greenstone);
- cb_Greenstone.setSelected(Boolean.parseBoolean(preferences.get(PREF_GREENSTONE_TAGS)));
- return cb_Greenstone;
- }
-
- protected JTextField addOutputFileTextField() {
- JTextField tf_OutputFile = new JTextField("");
- configuration.put(ARG_OUTPUT_FILE, tf_OutputFile);
- tf_OutputFile.setColumns(10);
- return tf_OutputFile;
- }
-
- protected JCheckBox addPagination() {
- JCheckBox cb_Pagination = new JCheckBox(Localizer.get(LABEL_PAGINATION));
- cb_Pagination.setSelected(Boolean.getBoolean(preferences.get(PREF_PAGINATION)));
- configuration.put(ARG_PAGINATION, cb_Pagination);
- return cb_Pagination;
- }
-
- protected JCheckBox addConvertToPX() {
- JCheckBox cb_convertToPx = new JCheckBox(Localizer.get(LABEL_CONVERT_TO_PX));
- cb_convertToPx.setSelected(Boolean.getBoolean(preferences.get(PREF_CONVERT_TO_PX)));
- configuration.put(ARG_CONVERT_TO_PX, cb_convertToPx);
- return cb_convertToPx;
- }
-
- protected JTextField addPageBreakStyle() {
- JTextField tf_pageBreakInlineStyle = new JTextField(preferences.get(PREF_PAGEBREAK_STYLES));
- tf_pageBreakInlineStyle.setColumns(10);
- configuration.put(ARG_PAGE_BREAK_STYLE, tf_pageBreakInlineStyle);
- return tf_pageBreakInlineStyle;
- }
-
- protected JLabel addTargetFormat(String format) {
- JLabel lb_TargetFormat = new JLabel(format);
- configuration.put(ARG_TARGET_FORMAT, lb_TargetFormat);
- return lb_TargetFormat;
- }
-
- protected JTextField addScaling() {
- JTextField tf_Scale = new JTextField();
- tf_Scale.setText(preferences.get(PREF_SCALING));
- tf_Scale.setColumns(10);
- configuration.put(ARG_SCALING, tf_Scale);
- return tf_Scale;
- }
-
- protected JTextField addInputFile() {
- JTextField tf_inputFile = new JTextField(preferences.getSourceFileName());
- tf_inputFile.setColumns(10);
- configuration.put(ARG_INPUT_FILE, tf_inputFile);
- return tf_inputFile;
- }
-
- protected JComboBox addImageResolution() {
- JComboBox cbox_image_resolution = new JComboBox(preferences.getAll(PREF_RESOLUTIONS));
- cbox_image_resolution.setSelectedIndex(Integer.parseInt(preferences.get(PREF_DEFAULT_IMAGE_RESOLUTION)));
- configuration.put(ARG_IMAGE_RESOLUTION, cbox_image_resolution);
- return cbox_image_resolution;
- }
-
- protected JComboBox addSplitByLevel() {
- JComboBox cbox_SplitByLevel = new JComboBox(preferences.getAll(PREF_SPLIT_LEVELS));
- configuration.put(ARG_SPLIT_LEVEL, cbox_SplitByLevel);
- cbox_SplitByLevel.setSelectedIndex(Integer.parseInt(preferences.get(PREF_SPLIT_BY_LEVEL)));
- return cbox_SplitByLevel;
- }
-
- protected JTextField addMaxWidth() {
- JTextField tf_MaxWidth = new JTextField(preferences.get(PREF_MAX_WIDTH));
- tf_MaxWidth.setColumns(10);
- configuration.put(ARG_MAX_WIDTH, tf_MaxWidth);
- return tf_MaxWidth;
- }
-
- protected JCheckBox addEmbedRasterImages() {
- JCheckBox cb_EmbedRaster = new JCheckBox(Localizer.get(LABEL_EMBED_RASTER));
- cb_EmbedRaster.setSelected(Boolean.parseBoolean(preferences.get(PREF_EMBED_RASTER)));
- configuration.put(ARG_EMBED_IMG, cb_EmbedRaster);
- return cb_EmbedRaster;
- }
-
- protected JCheckBox addEmbedVectorImages() {
- JCheckBox cb_EmbedVectorImages = new JCheckBox(Localizer.get(LABEL_EMBED_VECTOR));
- cb_EmbedVectorImages.setSelected(Boolean.parseBoolean(preferences.get(PREF_EMBED_VECTOR)));
- configuration.put(ARG_EMBED_SVG, cb_EmbedVectorImages);
- return cb_EmbedVectorImages;
- }
-
- protected JButton addChooseOutputButton(JTextField tf_OutputFile, String fileExtension) {
- JButton btn_ChooseOutputFile = new JButton(Localizer.get(LABEL_BUTTON_CHOOSE));
- btn_ChooseOutputFile.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- FileDialog fileDialog = new FileDialog();
- String newFilePath = fileDialog.chooseFile(tf_OutputFile.getText(),fileExtension);
- if (newFilePath != null && !newFilePath.isEmpty()) {
- tf_OutputFile.setText(newFilePath);
- }
- }
- });
- return btn_ChooseOutputFile;
- }
-
- protected void setMetadataFilePath(String newFilePath, JTextField tf_MetadataFile, String extension) {
-
- File inputFile = new File(newFilePath);
- if (!inputFile.exists()) {
- return;
- }
- if (inputFile.isDirectory()) {
- tf_MetadataFile.setText(newFilePath);
- } else {
- File parent = inputFile.getParentFile();
- if (parent == null) {
- return;
- }
- if (newFilePath.length() < 3) {
- return;
- }
- String importExt = newFilePath.substring(newFilePath.length()-3, newFilePath.length()).toLowerCase();
- if (importExt.equals(ODT_FILE_EXTENSION)) {
- String metadataPath = newFilePath.substring(0, newFilePath.length()-3) + extension;
- File metaFile = new File(metadataPath);
- if (metaFile.exists() && metaFile.canRead()){
- tf_MetadataFile.setText(metadataPath);
- } else {
- tf_MetadataFile.setText("");
- }
- }
- }
-
- }
-}
\ No newline at end of file
diff --git a/src/main/java/pro/litvinovg/w2phtml/gui/ControlPanel.java b/src/main/java/pro/litvinovg/w2phtml/gui/ControlPanel.java
index a0742ff..c64d749 100644
--- a/src/main/java/pro/litvinovg/w2phtml/gui/ControlPanel.java
+++ b/src/main/java/pro/litvinovg/w2phtml/gui/ControlPanel.java
@@ -12,6 +12,7 @@ import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
+import javax.swing.JPanel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -19,7 +20,7 @@ import org.slf4j.LoggerFactory;
import javax.swing.GroupLayout.Alignment;
import javax.swing.LayoutStyle.ComponentPlacement;
-public class ControlPanel extends BasePanel {
+public class ControlPanel extends JPanel {
private static final Logger logger = LoggerFactory.getLogger(ControlPanel.class);
private PreferencesStorage storage;
private String configName;
@@ -29,7 +30,6 @@ public class ControlPanel extends BasePanel {
this.factory = factory;
}
public ControlPanel(HashMap configuration, PreferencesStorage storage, String configName, String configType) {
- super();
this.storage = storage;
this.configName = configName;
this.configType = configType;
diff --git a/src/main/java/pro/litvinovg/w2phtml/gui/EpubPanel.java b/src/main/java/pro/litvinovg/w2phtml/gui/EpubPanel.java
index 735b97d..47bb12a 100644
--- a/src/main/java/pro/litvinovg/w2phtml/gui/EpubPanel.java
+++ b/src/main/java/pro/litvinovg/w2phtml/gui/EpubPanel.java
@@ -3,198 +3,418 @@ package pro.litvinovg.w2phtml.gui;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.io.File;
import java.util.HashMap;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
-import javax.swing.JFrame;
import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.GroupLayout.Alignment;
import javax.swing.LayoutStyle.ComponentPlacement;
import static pro.litvinovg.w2phtml.gui.Contstants.*;
+import net.miginfocom.swing.MigLayout;
-
-public class EpubPanel extends BasePanel {
+public class EpubPanel extends JPanel {
-
- /**
- *
- */
private static final long serialVersionUID = 1L;
+ private UIPreferences preferences;
+ private HashMap configuration;
+ private JTextField tf_pageBreakInlineStyle_1;
+ private JComboBox cbox_image_resolution_1;
+ private JCheckBox cb_Pagination_1;
+ private JTextField tf_Scale_1;
+ private JTextField tf_FilterLetterSpacing_1;
+ private JCheckBox cb_convertToPx_1;
+ private JCheckBox cb_IgnoreHardLineBreaks_1;
+ private JCheckBox cb_IgnoreEmptyParagraphs_1;
+ private JCheckBox cb_UseMathJax_1;
+ private JCheckBox cb_EmbedVectorImages_1;
+ private JCheckBox cb_InlineStyles_1;
+ private JCheckBox cb_EmbedRaster_1;
+ private JTextField tf_OutputFile_1;
+ private JButton btn_ChooseOutputFile_1;
+ private JLabel lb_TargetFormat_1;
+ private JTextField tf_inputFile_1;
+ private JButton btn_chooseFile_1;
+
+ public EpubPanel() {
+ this.preferences = PreferencesStorage.getDefaultEpub(null);
+ this.configuration = new HashMap();
+ initComponents();
+ }
public EpubPanel(HashMap configuration, UIPreferences preferences) {
- super(configuration, preferences);
-
+ this.configuration = configuration;
+ this.preferences = preferences;
+ initComponents();
+ }
+
+ private void initComponents() {
JLabel lb_FilterLetterSpacing = new JLabel(Localizer.get(LABEL_MIN_LETTER_SPACING));
JLabel lb_TargetFormat_description = new JLabel(Localizer.get(LABEL_TARGET_FORMAT));
JLabel lb_Scale = new JLabel(Localizer.get(LABEL_SCALE));
JLabel lb_FilePath = new JLabel(Localizer.get(LABEL_INPUT_FILE_PATH));
- JLabel lb_TargetFormat = addTargetFormat(EPUB3_TARGET_FORMAT);
+ JLabel lb_TargetFormat = addTargetFormat(EPUB3_TARGET_FORMAT, configuration);
JLabel lb_ImageResolution = new JLabel(Localizer.get(LABEL_IMAGE_RESOLUTION));
JLabel lb_OutFilePath = new JLabel(Localizer.get(OUTPUT_FILE_PATH));
JLabel lb_pageBreakInlineStyle = new JLabel(Localizer.get(LABEL_BREAK_STYLE));
- JTextField tf_FilterLetterSpacing = addLetterSpacingFilter();
- JTextField tf_OutputFile = addOutputFileTextField();
- JTextField tf_inputFile = addInputFile();
- JTextField tf_Scale = addScaling();
- JTextField tf_pageBreakInlineStyle = addPageBreakStyle();
+ JTextField tf_FilterLetterSpacing = addLetterSpacingFilter(configuration,preferences);
+ JTextField tf_OutputFile = addOutputFileTextField(configuration,preferences);
+ JTextField tf_inputFile = addInputFile(configuration,preferences);
+ JTextField tf_Scale = addScaling(configuration,preferences);
+ JTextField tf_pageBreakInlineStyle = addPageBreakStyle(configuration,preferences);
- JCheckBox cb_UseMathJax = addMathJaxCB();
- JCheckBox cb_IgnoreEmptyParagraphs = addIgnoreEmptyParsCB();
- JCheckBox cb_IgnoreHardLineBreaks = addIgnoreHardLineBreaks();
- JCheckBox cb_InlineStyles = addInlineStyles();
- JCheckBox cb_EmbedVectorImages = addEmbedVectorImages();
- JCheckBox cb_EmbedRaster = addEmbedRasterImages();
- JCheckBox cb_convertToPx = addConvertToPX();
- JCheckBox cb_Pagination = addPagination();
+ JCheckBox cb_UseMathJax = addMathJaxCB(configuration,preferences);
+ JCheckBox cb_IgnoreEmptyParagraphs = addIgnoreEmptyParsCB(configuration,preferences);
+ JCheckBox cb_IgnoreHardLineBreaks = addIgnoreHardLineBreaks(configuration,preferences);
+ JCheckBox cb_InlineStyles = addInlineStyles(configuration,preferences);
+ JCheckBox cb_EmbedVectorImages = addEmbedVectorImages(configuration,preferences);
+ JCheckBox cb_EmbedRaster = addEmbedRasterImages(configuration,preferences);
+ JCheckBox cb_convertToPx = addConvertToPX(configuration,preferences);
+ JCheckBox cb_Pagination = addPagination(configuration,preferences);
- JComboBox cbox_image_resolution = addImageResolution();
+ JComboBox cbox_image_resolution = addImageResolution(configuration,preferences);
JButton btn_ChooseOutputFile = addChooseOutputButton(tf_OutputFile, EPUB_FILE_EXTENSION);
JButton btn_chooseFile = addButtonChooseFile(tf_OutputFile, tf_inputFile);
-
- GroupLayout gl_panel_configHTML = new GroupLayout(this);
- gl_panel_configHTML.setHorizontalGroup(
- gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGap(34)
- .addComponent(lb_pageBreakInlineStyle, GroupLayout.PREFERRED_SIZE, 184, GroupLayout.PREFERRED_SIZE)
- .addGap(7)
- .addComponent(tf_pageBreakInlineStyle, GroupLayout.DEFAULT_SIZE, 802, Short.MAX_VALUE)
- .addGap(60))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGap(32)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(lb_ImageResolution, GroupLayout.PREFERRED_SIZE, 336, GroupLayout.PREFERRED_SIZE)
+ GroupLayout groupLayout = new GroupLayout(this);
+ groupLayout.setHorizontalGroup(
+ groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(6)
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addComponent(lb_TargetFormat_description)
+ .addGap(30)
+ .addComponent(lb_TargetFormat_1))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(1)
+ .addComponent(lb_FilePath, GroupLayout.PREFERRED_SIZE, 201, GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(ComponentPlacement.UNRELATED)
+ .addComponent(tf_inputFile_1, GroupLayout.DEFAULT_SIZE, 413, Short.MAX_VALUE)
+ .addGap(12)
+ .addComponent(btn_chooseFile_1, GroupLayout.PREFERRED_SIZE, 107, GroupLayout.PREFERRED_SIZE))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addComponent(lb_OutFilePath, GroupLayout.PREFERRED_SIZE, 201, GroupLayout.PREFERRED_SIZE)
+ .addGap(19)
+ .addComponent(tf_OutputFile_1, GroupLayout.DEFAULT_SIZE, 413, Short.MAX_VALUE)
+ .addGap(12)
+ .addComponent(btn_ChooseOutputFile_1, GroupLayout.PREFERRED_SIZE, 107, GroupLayout.PREFERRED_SIZE))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addComponent(lb_pageBreakInlineStyle, GroupLayout.PREFERRED_SIZE, 201, GroupLayout.PREFERRED_SIZE)
+ .addGap(19)
+ .addComponent(tf_pageBreakInlineStyle_1, GroupLayout.DEFAULT_SIZE, 532, Short.MAX_VALUE))
+ .addComponent(cb_InlineStyles_1, GroupLayout.PREFERRED_SIZE, 492, GroupLayout.PREFERRED_SIZE)
+ .addComponent(cb_EmbedVectorImages_1, GroupLayout.PREFERRED_SIZE, 362, GroupLayout.PREFERRED_SIZE)
+ .addComponent(cb_EmbedRaster_1, GroupLayout.PREFERRED_SIZE, 492, GroupLayout.PREFERRED_SIZE)
+ .addComponent(cb_convertToPx_1)
+ .addComponent(cb_IgnoreHardLineBreaks_1, GroupLayout.PREFERRED_SIZE, 492, GroupLayout.PREFERRED_SIZE)
+ .addComponent(cb_IgnoreEmptyParagraphs_1, GroupLayout.PREFERRED_SIZE, 492, GroupLayout.PREFERRED_SIZE)
+ .addComponent(cb_UseMathJax_1, GroupLayout.PREFERRED_SIZE, 492, GroupLayout.PREFERRED_SIZE)
+ .addComponent(cb_Pagination_1, GroupLayout.PREFERRED_SIZE, 362, GroupLayout.PREFERRED_SIZE)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addComponent(lb_ImageResolution, GroupLayout.PREFERRED_SIZE, 249, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.RELATED)
- .addComponent(cbox_image_resolution, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
- .addContainerGap())
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addComponent(cb_Pagination, GroupLayout.PREFERRED_SIZE, 303, GroupLayout.PREFERRED_SIZE)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(lb_Scale, GroupLayout.PREFERRED_SIZE, 175, GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(ComponentPlacement.RELATED)
- .addComponent(tf_Scale, GroupLayout.PREFERRED_SIZE, 175, GroupLayout.PREFERRED_SIZE))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(lb_FilterLetterSpacing, GroupLayout.DEFAULT_SIZE, 307, Short.MAX_VALUE)
- .addPreferredGap(ComponentPlacement.RELATED)
- .addComponent(tf_FilterLetterSpacing, GroupLayout.PREFERRED_SIZE, 58, GroupLayout.PREFERRED_SIZE)
- .addGap(215))
- .addComponent(cb_convertToPx, GroupLayout.PREFERRED_SIZE, 592, GroupLayout.PREFERRED_SIZE)
- .addComponent(cb_IgnoreHardLineBreaks, GroupLayout.PREFERRED_SIZE, 389, GroupLayout.PREFERRED_SIZE)
- .addComponent(cb_IgnoreEmptyParagraphs, GroupLayout.PREFERRED_SIZE, 405, GroupLayout.PREFERRED_SIZE)
- .addComponent(cb_UseMathJax, GroupLayout.PREFERRED_SIZE, 409, GroupLayout.PREFERRED_SIZE)
- .addComponent(cb_EmbedVectorImages, GroupLayout.PREFERRED_SIZE, 313, GroupLayout.PREFERRED_SIZE)
- .addComponent(cb_InlineStyles, GroupLayout.PREFERRED_SIZE, 349, GroupLayout.PREFERRED_SIZE)
- .addComponent(cb_EmbedRaster, GroupLayout.PREFERRED_SIZE, 416, GroupLayout.PREFERRED_SIZE))
- .addGap(463))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGap(1)
- .addComponent(lb_OutFilePath, GroupLayout.PREFERRED_SIZE, 184, GroupLayout.PREFERRED_SIZE)
- .addGap(10)
- .addComponent(tf_OutputFile, GroupLayout.DEFAULT_SIZE, 668, Short.MAX_VALUE)
- .addGap(21)
- .addComponent(btn_ChooseOutputFile, GroupLayout.PREFERRED_SIZE, 113, GroupLayout.PREFERRED_SIZE)
- .addGap(10))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(lb_TargetFormat_description)
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addComponent(lb_TargetFormat, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGap(3)
- .addComponent(lb_FilePath, GroupLayout.PREFERRED_SIZE, 178, GroupLayout.PREFERRED_SIZE)
- .addGap(14)
- .addComponent(tf_inputFile, GroupLayout.DEFAULT_SIZE, 667, Short.MAX_VALUE)
- .addGap(22)
- .addComponent(btn_chooseFile, GroupLayout.PREFERRED_SIZE, 113, GroupLayout.PREFERRED_SIZE)
- .addGap(10)))
- .addGap(48))))))
+ .addComponent(cbox_image_resolution_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addPreferredGap(ComponentPlacement.RELATED)
+ .addComponent(lb_Scale, GroupLayout.PREFERRED_SIZE, 91, GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(ComponentPlacement.RELATED)
+ .addComponent(tf_Scale_1, GroupLayout.PREFERRED_SIZE, 61, GroupLayout.PREFERRED_SIZE))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addComponent(lb_FilterLetterSpacing, GroupLayout.PREFERRED_SIZE, 218, GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(ComponentPlacement.RELATED)
+ .addComponent(tf_FilterLetterSpacing_1, GroupLayout.PREFERRED_SIZE, 50, GroupLayout.PREFERRED_SIZE)))
+ .addGap(6))
);
- gl_panel_configHTML.setVerticalGroup(
- gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addContainerGap()
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.TRAILING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE)
- .addComponent(lb_TargetFormat_description)
- .addComponent(lb_TargetFormat))
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGap(16)
- .addComponent(tf_inputFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGap(12)
- .addComponent(lb_FilePath, GroupLayout.PREFERRED_SIZE, 17, GroupLayout.PREFERRED_SIZE)))
- .addGap(2))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(btn_chooseFile)
- .addPreferredGap(ComponentPlacement.RELATED)))
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGap(7)
- .addComponent(btn_ChooseOutputFile))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGap(8)
- .addComponent(tf_OutputFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGap(10)
- .addComponent(lb_OutFilePath)))
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGap(8)
- .addComponent(tf_pageBreakInlineStyle, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGap(7)
- .addComponent(lb_pageBreakInlineStyle)))
- .addGap(22)
- .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))
+ groupLayout.setVerticalGroup(
+ groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(6)
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addComponent(lb_TargetFormat_description)
+ .addComponent(lb_TargetFormat_1))
+ .addGap(6)
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(5)
+ .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
+ .addComponent(tf_inputFile_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
+ .addComponent(lb_FilePath)))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(3)
+ .addComponent(btn_chooseFile_1)))
+ .addGap(6)
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(5)
+ .addComponent(lb_OutFilePath))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(3)
+ .addComponent(tf_OutputFile_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addComponent(btn_ChooseOutputFile_1))
+ .addGap(6)
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addComponent(lb_pageBreakInlineStyle)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(1)
+ .addComponent(tf_pageBreakInlineStyle_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
.addGap(8)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE)
- .addComponent(lb_FilterLetterSpacing, GroupLayout.PREFERRED_SIZE, 18, GroupLayout.PREFERRED_SIZE)
- .addComponent(tf_FilterLetterSpacing, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(ComponentPlacement.RELATED)
- .addComponent(cb_InlineStyles)
- .addGap(7)
- .addComponent(cb_EmbedVectorImages)
- .addGap(7)
- .addComponent(cb_EmbedRaster)
- .addGap(7)
- .addComponent(cb_convertToPx)
- .addPreferredGap(ComponentPlacement.RELATED)
- .addComponent(cb_IgnoreHardLineBreaks)
- .addGap(7)
- .addComponent(cb_IgnoreEmptyParagraphs)
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addComponent(cb_UseMathJax)
- .addPreferredGap(ComponentPlacement.RELATED)
- .addComponent(cb_Pagination)
- .addGap(7)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE)
+ .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
+ .addComponent(lb_Scale)
+ .addComponent(tf_Scale_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addGap(8)
+ .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
+ .addComponent(lb_FilterLetterSpacing, GroupLayout.PREFERRED_SIZE, 19, GroupLayout.PREFERRED_SIZE)
+ .addComponent(tf_FilterLetterSpacing_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addGap(6)
+ .addComponent(cb_InlineStyles_1)
+ .addGap(6)
+ .addComponent(cb_EmbedVectorImages_1)
+ .addGap(6)
+ .addComponent(cb_EmbedRaster_1)
+ .addGap(6)
+ .addComponent(cb_convertToPx_1)
+ .addGap(6)
+ .addComponent(cb_IgnoreHardLineBreaks_1)
+ .addGap(6)
+ .addComponent(cb_IgnoreEmptyParagraphs_1)
+ .addGap(6)
+ .addComponent(cb_UseMathJax_1)
+ .addGap(6)
+ .addComponent(cb_Pagination_1)
+ .addGap(11)
+ .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
.addComponent(lb_ImageResolution)
- .addComponent(cbox_image_resolution, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addContainerGap(118, Short.MAX_VALUE))
+ .addComponent(cbox_image_resolution_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addGap(4))
);
- this.setLayout(gl_panel_configHTML);
+ setLayout(groupLayout);
}
- private JButton addButtonChooseFile(JTextField tf_OutputFile, JTextField tf_inputFile) {
- JButton btn_chooseFile = new JButton(Localizer.get(LABEL_BUTTON_CHOOSE));
- btn_chooseFile.addActionListener(new ActionListener() {
+
+//Shared methods added here to make WindowBuilder work
+
+ JCheckBox addMathJaxCB(HashMap configuration, UIPreferences preferences) {
+ cb_UseMathJax_1 = new JCheckBox(Localizer.get(LABEL_USE_MATHJAX));
+ cb_UseMathJax_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_USE_MATHJAX)));
+ configuration.put(ARG_USE_MATHJAX, cb_UseMathJax_1);
+ return cb_UseMathJax_1;
+ }
+
+ JCheckBox addIgnoreEmptyParsCB(HashMap configuration, UIPreferences preferences) {
+ cb_IgnoreEmptyParagraphs_1 = new JCheckBox(Localizer.get(LABEL_INGNORE_EMPTY_PARS));
+ cb_IgnoreEmptyParagraphs_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_IGNORE_EMPTY_PARS)));
+ configuration.put(ARG_IGNORE_EMPTY_PARAGRAPHS, cb_IgnoreEmptyParagraphs_1);
+ return cb_IgnoreEmptyParagraphs_1;
+ }
+
+ JCheckBox addSplitWholePagesOnly(HashMap configuration, UIPreferences preferences) {
+ JCheckBox cb_SplitWholePagesOnly = new JCheckBox(Localizer.get(LABEL_SPLIT_WHOLE_PAGES_ONLY));
+ cb_SplitWholePagesOnly.setSelected(Boolean.parseBoolean(preferences.get(PREF_SPLIT_WHOLE_PAGES)));
+ configuration.put(ARG_ALIGN_SPLITS_TO_PAGES, cb_SplitWholePagesOnly);
+ return cb_SplitWholePagesOnly;
+ }
+
+ JCheckBox addIgnoreHardLineBreaks(HashMap configuration, UIPreferences preferences) {
+ cb_IgnoreHardLineBreaks_1 = new JCheckBox(Localizer.get(LABEL_FILETER_HARD_LINE_BREAKS));
+ cb_IgnoreHardLineBreaks_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_IGNORE_HARD_BREAKS)));
+ configuration.put(ARG_IGNORE_HARD_LINE_BREAKS, cb_IgnoreHardLineBreaks_1);
+ return cb_IgnoreHardLineBreaks_1;
+ }
+
+ JTextField addLetterSpacingFilter(HashMap configuration, UIPreferences preferences) {
+ tf_FilterLetterSpacing_1 = new JTextField();
+ tf_FilterLetterSpacing_1.setText(preferences.get(PREF_LETTER_SPACING));
+ configuration.put(ARG_MIN_LETTER_SPACING, tf_FilterLetterSpacing_1);
+ tf_FilterLetterSpacing_1.setColumns(10);
+ return tf_FilterLetterSpacing_1;
+ }
+
+
+ JCheckBox addInlineStyles(HashMap configuration, UIPreferences preferences) {
+ cb_InlineStyles_1 = new JCheckBox(Localizer.get(LABEL_INLINE_STYLES));
+ cb_InlineStyles_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_INLINE_STYLES)));
+ configuration.put(ARG_CSS_INLINE, cb_InlineStyles_1);
+ return cb_InlineStyles_1;
+ }
+
+ JCheckBox addGreenstoneTags(HashMap configuration, UIPreferences preferences) {
+ JCheckBox cb_Greenstone = new JCheckBox(Localizer.get(LABEL_GREENSTONE_SPLIT));
+ configuration.put(ARG_GREENSTONE, cb_Greenstone);
+ cb_Greenstone.setSelected(Boolean.parseBoolean(preferences.get(PREF_GREENSTONE_TAGS)));
+ return cb_Greenstone;
+ }
+
+ JTextField addOutputFileTextField(HashMap configuration, UIPreferences preferences) {
+ tf_OutputFile_1 = new JTextField("");
+ configuration.put(ARG_OUTPUT_FILE, tf_OutputFile_1);
+ tf_OutputFile_1.setColumns(10);
+ return tf_OutputFile_1;
+ }
+
+ JCheckBox addPagination(HashMap configuration, UIPreferences preferences) {
+ cb_Pagination_1 = new JCheckBox(Localizer.get(LABEL_PAGINATION));
+ cb_Pagination_1.setSelected(Boolean.getBoolean(preferences.get(PREF_PAGINATION)));
+ configuration.put(ARG_PAGINATION, cb_Pagination_1);
+ return cb_Pagination_1;
+ }
+
+ JCheckBox addConvertToPX(HashMap configuration, UIPreferences preferences) {
+ cb_convertToPx_1 = new JCheckBox(Localizer.get(LABEL_CONVERT_TO_PX));
+ cb_convertToPx_1.setSelected(Boolean.getBoolean(preferences.get(PREF_CONVERT_TO_PX)));
+ configuration.put(ARG_CONVERT_TO_PX, cb_convertToPx_1);
+ return cb_convertToPx_1;
+ }
+
+ JTextField addPageBreakStyle(HashMap configuration, UIPreferences preferences) {
+ tf_pageBreakInlineStyle_1 = new JTextField(preferences.get(PREF_PAGEBREAK_STYLES));
+ tf_pageBreakInlineStyle_1.setColumns(10);
+ configuration.put(ARG_PAGE_BREAK_STYLE, tf_pageBreakInlineStyle_1);
+ return tf_pageBreakInlineStyle_1;
+ }
+
+ JLabel addTargetFormat(String format, HashMap configuration) {
+ lb_TargetFormat_1 = new JLabel(format);
+ configuration.put(ARG_TARGET_FORMAT, lb_TargetFormat_1);
+ return lb_TargetFormat_1;
+ }
+
+ JTextField addScaling(HashMap configuration, UIPreferences preferences) {
+ tf_Scale_1 = new JTextField();
+ tf_Scale_1.setText(preferences.get(PREF_SCALING));
+ tf_Scale_1.setColumns(10);
+ configuration.put(ARG_SCALING, tf_Scale_1);
+ return tf_Scale_1;
+ }
+
+ JTextField addInputFile(HashMap configuration, UIPreferences preferences) {
+ tf_inputFile_1 = new JTextField(preferences.getSourceFileName());
+ tf_inputFile_1.setColumns(10);
+ configuration.put(ARG_INPUT_FILE, tf_inputFile_1);
+ return tf_inputFile_1;
+ }
+
+ JComboBox addImageResolution(HashMap configuration, UIPreferences preferences) {
+ cbox_image_resolution_1 = new JComboBox(preferences.getAll(PREF_RESOLUTIONS));
+ cbox_image_resolution_1.setSelectedIndex(Integer.parseInt(preferences.get(PREF_DEFAULT_IMAGE_RESOLUTION)));
+ configuration.put(ARG_IMAGE_RESOLUTION, cbox_image_resolution_1);
+ return cbox_image_resolution_1;
+ }
+
+ JComboBox addSplitByLevel(HashMap configuration, UIPreferences preferences) {
+ JComboBox cbox_SplitByLevel = new JComboBox(preferences.getAll(PREF_SPLIT_LEVELS));
+ configuration.put(ARG_SPLIT_LEVEL, cbox_SplitByLevel);
+ cbox_SplitByLevel.setSelectedIndex(Integer.parseInt(preferences.get(PREF_SPLIT_BY_LEVEL)));
+ return cbox_SplitByLevel;
+ }
+
+ JTextField addMaxWidth(HashMap configuration, UIPreferences preferences) {
+ JTextField tf_MaxWidth = new JTextField(preferences.get(PREF_MAX_WIDTH));
+ tf_MaxWidth.setColumns(10);
+ configuration.put(ARG_MAX_WIDTH, tf_MaxWidth);
+ return tf_MaxWidth;
+ }
+
+ JCheckBox addEmbedRasterImages(HashMap configuration, UIPreferences preferences) {
+ cb_EmbedRaster_1 = new JCheckBox(Localizer.get(LABEL_EMBED_RASTER));
+ cb_EmbedRaster_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_EMBED_RASTER)));
+ configuration.put(ARG_EMBED_IMG, cb_EmbedRaster_1);
+ return cb_EmbedRaster_1;
+ }
+
+ JCheckBox addEmbedVectorImages(HashMap configuration, UIPreferences preferences) {
+ cb_EmbedVectorImages_1 = new JCheckBox(Localizer.get(LABEL_EMBED_VECTOR));
+ cb_EmbedVectorImages_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_EMBED_VECTOR)));
+ configuration.put(ARG_EMBED_SVG, cb_EmbedVectorImages_1);
+ return cb_EmbedVectorImages_1;
+ }
+
+ void setOutputFilePath(String newFilePath, JTextField tf_OutputFile, String extension) {
+
+ File inputFile = new File(newFilePath);
+ if (!inputFile.exists()) {
+ return;
+ }
+ if (!inputFile.isDirectory()) {
+ File parent = inputFile.getParentFile();
+ if (parent == null) {
+ return;
+ }
+ if (!parent.canWrite()) {
+ JOptionPane.showMessageDialog(ConfigurationWindow.getSingleFrame(), Localizer.get(CANT_WRITE_MESSAGE));
+ }
+ }
+ if (newFilePath.length() < 3) {
+ return;
+ }
+ String exportPath;
+ if (inputFile.isDirectory()) {
+ exportPath = newFilePath;
+ tf_OutputFile.setText(exportPath);
+ } else {
+ String importExt = newFilePath.substring(newFilePath.length() - 3, newFilePath.length()).toLowerCase();
+ if (importExt.equals(ODT_FILE_EXTENSION)) {
+ exportPath = newFilePath.substring(0, newFilePath.length() - 3) + extension;
+ tf_OutputFile.setText(exportPath);
+ }
+ }
+ }
+
+
+ JButton addChooseOutputButton(JTextField tf_OutputFile, String fileExtension) {
+ btn_ChooseOutputFile_1 = new JButton(Localizer.get(LABEL_BUTTON_CHOOSE));
+ btn_ChooseOutputFile_1.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ FileDialog fileDialog = new FileDialog();
+ String newFilePath = fileDialog.chooseFile(tf_OutputFile.getText(),fileExtension);
+ if (newFilePath != null && !newFilePath.isEmpty()) {
+ tf_OutputFile.setText(newFilePath);
+ }
+ }
+ });
+ return btn_ChooseOutputFile_1;
+ }
+
+ public void setMetadataFilePath(String newFilePath, JTextField tf_MetadataFile, String extension) {
+
+ File inputFile = new File(newFilePath);
+ if (!inputFile.exists()) {
+ return;
+ }
+ if (inputFile.isDirectory()) {
+ tf_MetadataFile.setText(newFilePath);
+ } else {
+ File parent = inputFile.getParentFile();
+ if (parent == null) {
+ return;
+ }
+ if (newFilePath.length() < 3) {
+ return;
+ }
+ String importExt = newFilePath.substring(newFilePath.length()-3, newFilePath.length()).toLowerCase();
+ if (importExt.equals(ODT_FILE_EXTENSION)) {
+ String metadataPath = newFilePath.substring(0, newFilePath.length()-3) + extension;
+ File metaFile = new File(metadataPath);
+ if (metaFile.exists() && metaFile.canRead()){
+ tf_MetadataFile.setText(metadataPath);
+ } else {
+ tf_MetadataFile.setText("");
+ }
+ }
+ }
+
+ }
+
+ JButton addButtonChooseFile(JTextField tf_OutputFile, JTextField tf_inputFile) {
+ btn_chooseFile_1 = new JButton(Localizer.get(LABEL_BUTTON_CHOOSE));
+ btn_chooseFile_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
FileDialog fileDialog = new FileDialog();
String newFilePath = fileDialog.chooseFile(tf_inputFile.getText(),ODT_FILE_EXTENSION);
@@ -204,6 +424,6 @@ public class EpubPanel extends BasePanel {
}
}
});
- return btn_chooseFile;
+ return btn_chooseFile_1;
}
}
diff --git a/src/main/java/pro/litvinovg/w2phtml/gui/FileDialog.java b/src/main/java/pro/litvinovg/w2phtml/gui/FileDialog.java
index f9dba02..4687797 100644
--- a/src/main/java/pro/litvinovg/w2phtml/gui/FileDialog.java
+++ b/src/main/java/pro/litvinovg/w2phtml/gui/FileDialog.java
@@ -37,7 +37,11 @@ public class FileDialog extends JFrame {
int result = fileChooser.showOpenDialog(null);
if (result == fileChooser.APPROVE_OPTION){
selected = fileChooser.getSelectedFile();
- return selected.getAbsolutePath();
+ if (selected.isDirectory()) {
+ return selected.getAbsolutePath() + File.separator;
+ } else {
+ return selected.getAbsolutePath();
+ }
} else {
return "";
}
diff --git a/src/main/java/pro/litvinovg/w2phtml/gui/HTMLPanel.java b/src/main/java/pro/litvinovg/w2phtml/gui/HTMLPanel.java
index 311c99b..925cb64 100644
--- a/src/main/java/pro/litvinovg/w2phtml/gui/HTMLPanel.java
+++ b/src/main/java/pro/litvinovg/w2phtml/gui/HTMLPanel.java
@@ -3,6 +3,7 @@ package pro.litvinovg.w2phtml.gui;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.io.File;
import java.util.HashMap;
import javax.swing.GroupLayout;
@@ -10,26 +11,58 @@ import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.GroupLayout.Alignment;
import javax.swing.LayoutStyle.ComponentPlacement;
import static pro.litvinovg.w2phtml.gui.Contstants.*;
+import javax.swing.SpringLayout;
+import net.miginfocom.swing.MigLayout;
-public class HTMLPanel extends BasePanel{
+public class HTMLPanel extends JPanel{
private static final long serialVersionUID = 1L;
- public static void main(String[] args) {
- HashMap configStub = new HashMap();
- UIPreferences prefStub = PreferencesStorage.getDefaultHTML(null);
- Object htmlPanel = new HTMLPanel(configStub,prefStub);
- }
+ private HashMap configuration = null;
+ private UIPreferences preferences = null;
+ private JComboBox cbox_SplitByLevel_1;
+ private JCheckBox cb_Greenstone_1;
+ private JCheckBox cb_IgnoreEmptyParagraphs_1;
+ private JCheckBox cb_IgnoreHardLineBreaks_1;
+ private JCheckBox cb_convertToPx_1;
+ private JCheckBox cb_EmbedRaster_1;
+ private JCheckBox cb_EmbedVectorImages_1;
+ private JCheckBox cb_InlineStyles_1;
+ private JTextField tf_FilterLetterSpacing_1;
+ private JLabel lb_TargetFormat_1;
+ private JTextField tf_OutputFile_1;
+ private JTextField tf_inputFile_1;
+ private JButton btn_ChooseOutputFile_1;
+ private JButton btn_chooseFile_1;
+ private JCheckBox cb_UseMathJax_1;
+ private JCheckBox cb_SplitWholePagesOnly_1;
+ private JTextField tf_Scale_1;
+ private JTextField tf_pageBreakInlineStyle_1;
+ private JTextField tf_MaxWidth_1;
+ private JCheckBox cb_Pagination_1;
+ private JComboBox cbox_image_resolution_1;
+
+ public HTMLPanel() {
+ this.preferences = PreferencesStorage.getDefaultHTML(null);
+ this.configuration = new HashMap();
+ initComponents();
+ }
+
public HTMLPanel(HashMap configuration, UIPreferences preferences) {
- super( configuration, preferences);
-
+ this.configuration = configuration;
+ this.preferences = preferences;
+ initComponents();
+ }
+ private void initComponents() {
JLabel lb_SplitByLevel = new JLabel(Localizer.get(LABEL_SPLIT_BY_HEADING));
JLabel lb_FilterLetterSpacing = new JLabel(Localizer.get(LABEL_MIN_LETTER_SPACING));
- JLabel lb_TargetFormat = addTargetFormat(HTML5_TARGET_FORMAT);
+ JLabel lb_TargetFormat = addTargetFormat(HTML5_TARGET_FORMAT, configuration);
JLabel lb_Scale = new JLabel(Localizer.get(LABEL_SCALE));
JLabel lb_MaxWidth = new JLabel(Localizer.get(LABEL_MAX_BODY_WIDTH));
JLabel lb_FilePath = new JLabel(Localizer.get(LABEL_INPUT_FILE_PATH));
@@ -38,191 +71,396 @@ public class HTMLPanel extends BasePanel{
JLabel lb_ImageResolution = new JLabel(Localizer.get(LABEL_IMAGE_RESOLUTION));
JLabel lb_pageBreakInlineStyle = new JLabel(Localizer.get(LABEL_BREAK_STYLE));
- JTextField tf_FilterLetterSpacing = addLetterSpacingFilter();
- JTextField tf_Scale = addScaling();
- JTextField tf_MaxWidth = addMaxWidth();
- JTextField tf_inputFile = addInputFile();
- JTextField tf_OutputFile = addOutputFileTextField();
- JTextField tf_pageBreakInlineStyle = addPageBreakStyle();
+ JTextField tf_FilterLetterSpacing = addLetterSpacingFilter(configuration,preferences);
+ JTextField tf_Scale = addScaling(configuration,preferences);
+ JTextField tf_MaxWidth = addMaxWidth(configuration,preferences);
+ JTextField tf_inputFile = addInputFile(configuration,preferences);
+ JTextField tf_OutputFile = addOutputFileTextField(configuration,preferences);
+ JTextField tf_pageBreakInlineStyle = addPageBreakStyle(configuration,preferences);
- JCheckBox cb_UseMathJax = addMathJaxCB();
- JCheckBox cb_IgnoreEmptyParagraphs = addIgnoreEmptyParsCB();
- JCheckBox cb_IgnoreHardLineBreaks = addIgnoreHardLineBreaks();
- JCheckBox cb_SplitWholePagesOnly = addSplitWholePagesOnly();
- JCheckBox cb_Greenstone = addGreenstoneTags();
- JCheckBox cb_InlineStyles = addInlineStyles();
- JCheckBox cb_EmbedRaster = addEmbedRasterImages();
- JCheckBox cb_EmbedVectorImages = addEmbedVectorImages();
- JCheckBox cb_convertToPx = addConvertToPX();
- JCheckBox cb_Pagination = addPagination();
+ JCheckBox cb_UseMathJax = addMathJaxCB(configuration,preferences);
+ JCheckBox cb_IgnoreEmptyParagraphs = addIgnoreEmptyParsCB(configuration,preferences);
+ JCheckBox cb_IgnoreHardLineBreaks = addIgnoreHardLineBreaks(configuration,preferences);
+ JCheckBox cb_SplitWholePagesOnly = addSplitWholePagesOnly(configuration,preferences);
+ JCheckBox cb_Greenstone = addGreenstoneTags(configuration,preferences);
+ JCheckBox cb_InlineStyles = addInlineStyles(configuration,preferences);
+ JCheckBox cb_EmbedRaster = addEmbedRasterImages(configuration,preferences);
+ JCheckBox cb_EmbedVectorImages = addEmbedVectorImages(configuration,preferences);
+ JCheckBox cb_convertToPx = addConvertToPX(configuration,preferences);
+ JCheckBox cb_Pagination = addPagination(configuration,preferences);
- JComboBox cbox_image_resolution = addImageResolution();
- JComboBox cbox_SplitByLevel = addSplitByLevel();
+ JComboBox cbox_image_resolution = addImageResolution(configuration,preferences);
+ JComboBox cbox_SplitByLevel = addSplitByLevel(configuration,preferences);
JButton btn_chooseFile = addButtonChooseFile( tf_inputFile, tf_OutputFile);
JButton btn_ChooseOutputFile = addChooseOutputButton(tf_OutputFile, HTML_FILE_EXTENSION);
-
- GroupLayout gl_panel_configHTML = new GroupLayout(this);
- 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.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(lb_SplitByLevel, GroupLayout.PREFERRED_SIZE, 454, GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(ComponentPlacement.RELATED)
- .addComponent(cbox_SplitByLevel, GroupLayout.PREFERRED_SIZE, 48, GroupLayout.PREFERRED_SIZE)
- .addGap(541))
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(cb_Greenstone, GroupLayout.PREFERRED_SIZE, 482, GroupLayout.PREFERRED_SIZE)
- .addContainerGap())
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addComponent(cb_IgnoreEmptyParagraphs, GroupLayout.PREFERRED_SIZE, 441, GroupLayout.PREFERRED_SIZE)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(cb_IgnoreHardLineBreaks, GroupLayout.PREFERRED_SIZE, 341, GroupLayout.PREFERRED_SIZE)
- .addContainerGap())
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(cb_convertToPx, GroupLayout.PREFERRED_SIZE, 592, GroupLayout.PREFERRED_SIZE)
- .addContainerGap())
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(cb_EmbedRaster)
- .addContainerGap())
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(cb_EmbedVectorImages, GroupLayout.PREFERRED_SIZE, 276, GroupLayout.PREFERRED_SIZE)
- .addContainerGap())
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(cb_InlineStyles, GroupLayout.PREFERRED_SIZE, 322, GroupLayout.PREFERRED_SIZE)
- .addContainerGap())
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(lb_FilterLetterSpacing, GroupLayout.PREFERRED_SIZE, 350, GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(ComponentPlacement.RELATED)
- .addComponent(tf_FilterLetterSpacing, GroupLayout.PREFERRED_SIZE, 58, GroupLayout.PREFERRED_SIZE)
- .addGap(635))
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(lb_MaxWidth, GroupLayout.PREFERRED_SIZE, 175, GroupLayout.PREFERRED_SIZE)
- .addContainerGap())
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(lb_Scale, GroupLayout.PREFERRED_SIZE, 168, GroupLayout.PREFERRED_SIZE)
- .addContainerGap())
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(lb_TargetFormat_description, GroupLayout.PREFERRED_SIZE, 178, GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(ComponentPlacement.RELATED)
- .addComponent(lb_TargetFormat, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addComponent(lb_FilePath, GroupLayout.PREFERRED_SIZE, 193, GroupLayout.PREFERRED_SIZE)
- .addComponent(lb_OutFilePath, GroupLayout.PREFERRED_SIZE, 191, GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(ComponentPlacement.RELATED)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addComponent(tf_OutputFile, Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 558, Short.MAX_VALUE)
- .addComponent(tf_inputFile, Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 558, Short.MAX_VALUE))
- .addPreferredGap(ComponentPlacement.RELATED)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addComponent(btn_ChooseOutputFile, GroupLayout.PREFERRED_SIZE, 113, GroupLayout.PREFERRED_SIZE)
- .addComponent(btn_chooseFile, GroupLayout.PREFERRED_SIZE, 113, GroupLayout.PREFERRED_SIZE)))
- .addComponent(cb_UseMathJax, GroupLayout.PREFERRED_SIZE, 352, GroupLayout.PREFERRED_SIZE)
- .addComponent(cb_SplitWholePagesOnly, GroupLayout.PREFERRED_SIZE, 323, GroupLayout.PREFERRED_SIZE)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(lb_pageBreakInlineStyle, GroupLayout.PREFERRED_SIZE, 191, GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(ComponentPlacement.RELATED)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addComponent(tf_Scale, GroupLayout.PREFERRED_SIZE, 175, GroupLayout.PREFERRED_SIZE)
- .addComponent(tf_pageBreakInlineStyle, GroupLayout.DEFAULT_SIZE, 707, Short.MAX_VALUE)
- .addComponent(tf_MaxWidth, GroupLayout.PREFERRED_SIZE, 175, GroupLayout.PREFERRED_SIZE))))
- .addGap(145)))))))))))))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addComponent(cb_Pagination, GroupLayout.PREFERRED_SIZE, 303, GroupLayout.PREFERRED_SIZE)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(lb_ImageResolution, GroupLayout.PREFERRED_SIZE, 366, GroupLayout.PREFERRED_SIZE)
- .addGap(4)
- .addComponent(cbox_image_resolution, GroupLayout.PREFERRED_SIZE, 70, GroupLayout.PREFERRED_SIZE)))
- .addGap(615))))
+ GroupLayout groupLayout = new GroupLayout(this);
+ groupLayout.setHorizontalGroup(
+ groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(6)
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addComponent(lb_OutFilePath, GroupLayout.PREFERRED_SIZE, 201, GroupLayout.PREFERRED_SIZE)
+ .addGap(21)
+ .addComponent(tf_OutputFile_1, GroupLayout.DEFAULT_SIZE, 463, Short.MAX_VALUE)
+ .addGap(17)
+ .addComponent(btn_ChooseOutputFile_1, GroupLayout.PREFERRED_SIZE, 112, GroupLayout.PREFERRED_SIZE))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addComponent(lb_pageBreakInlineStyle, GroupLayout.PREFERRED_SIZE, 201, GroupLayout.PREFERRED_SIZE)
+ .addGap(21)
+ .addComponent(tf_pageBreakInlineStyle_1, GroupLayout.DEFAULT_SIZE, 592, Short.MAX_VALUE))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addComponent(lb_Scale, GroupLayout.PREFERRED_SIZE, 177, GroupLayout.PREFERRED_SIZE)
+ .addGap(45)
+ .addComponent(tf_Scale_1, GroupLayout.PREFERRED_SIZE, 53, GroupLayout.PREFERRED_SIZE))
+ .addComponent(cb_InlineStyles_1, GroupLayout.PREFERRED_SIZE, 370, GroupLayout.PREFERRED_SIZE)
+ .addComponent(cb_EmbedVectorImages_1, GroupLayout.PREFERRED_SIZE, 370, GroupLayout.PREFERRED_SIZE)
+ .addComponent(cb_EmbedRaster_1)
+ .addComponent(cb_convertToPx_1, GroupLayout.PREFERRED_SIZE, 685, GroupLayout.PREFERRED_SIZE)
+ .addComponent(cb_IgnoreHardLineBreaks_1, GroupLayout.PREFERRED_SIZE, 370, GroupLayout.PREFERRED_SIZE)
+ .addComponent(cb_IgnoreEmptyParagraphs_1, GroupLayout.PREFERRED_SIZE, 501, GroupLayout.PREFERRED_SIZE)
+ .addComponent(cb_Greenstone_1)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addComponent(lb_SplitByLevel, GroupLayout.PREFERRED_SIZE, 199, GroupLayout.PREFERRED_SIZE)
+ .addGap(3)
+ .addComponent(cbox_SplitByLevel_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addComponent(cb_SplitWholePagesOnly_1, GroupLayout.PREFERRED_SIZE, 370, GroupLayout.PREFERRED_SIZE)
+ .addComponent(cb_UseMathJax_1, GroupLayout.PREFERRED_SIZE, 370, GroupLayout.PREFERRED_SIZE)
+ .addComponent(cb_Pagination_1, GroupLayout.PREFERRED_SIZE, 370, GroupLayout.PREFERRED_SIZE)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addComponent(lb_ImageResolution, GroupLayout.PREFERRED_SIZE, 244, GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(ComponentPlacement.RELATED)
+ .addComponent(cbox_image_resolution_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addComponent(lb_MaxWidth, GroupLayout.PREFERRED_SIZE, 177, GroupLayout.PREFERRED_SIZE)
+ .addComponent(lb_FilterLetterSpacing, GroupLayout.PREFERRED_SIZE, 220, GroupLayout.PREFERRED_SIZE))
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(2)
+ .addComponent(tf_MaxWidth_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(26)
+ .addComponent(tf_FilterLetterSpacing_1, GroupLayout.PREFERRED_SIZE, 50, GroupLayout.PREFERRED_SIZE))))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false)
+ .addComponent(lb_TargetFormat_description, GroupLayout.PREFERRED_SIZE, 177, GroupLayout.PREFERRED_SIZE)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addComponent(lb_FilePath, GroupLayout.PREFERRED_SIZE, 177, GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(17)
+ .addComponent(lb_TargetFormat_1, GroupLayout.PREFERRED_SIZE, 145, GroupLayout.PREFERRED_SIZE))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(45)
+ .addComponent(tf_inputFile_1, GroupLayout.DEFAULT_SIZE, 463, Short.MAX_VALUE)
+ .addGap(17)
+ .addComponent(btn_chooseFile_1, GroupLayout.PREFERRED_SIZE, 112, GroupLayout.PREFERRED_SIZE)))))
+ .addGap(6))
);
- gl_panel_configHTML.setVerticalGroup(
- gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGap(12)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE)
+ groupLayout.setVerticalGroup(
+ groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(6)
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addComponent(lb_TargetFormat_description)
- .addComponent(lb_TargetFormat))
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE)
- .addComponent(tf_inputFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
- .addComponent(btn_chooseFile))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGap(2)
+ .addComponent(lb_TargetFormat_1))
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(6)
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(3)
+ .addComponent(tf_inputFile_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addComponent(btn_chooseFile_1)))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(lb_FilePath)))
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE)
- .addComponent(lb_OutFilePath)
- .addComponent(tf_OutputFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
- .addComponent(btn_ChooseOutputFile))
- .addGap(12)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE)
- .addComponent(lb_pageBreakInlineStyle)
- .addComponent(tf_pageBreakInlineStyle, 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))
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE)
- .addComponent(lb_MaxWidth)
- .addComponent(tf_MaxWidth, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addGap(6)
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(5)
+ .addComponent(lb_OutFilePath))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(3)
+ .addComponent(tf_OutputFile_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addComponent(btn_ChooseOutputFile_1))
+ .addGap(6)
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(2)
+ .addComponent(lb_pageBreakInlineStyle))
+ .addComponent(tf_pageBreakInlineStyle_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(8)
+ .addComponent(lb_Scale))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(6)
+ .addComponent(tf_Scale_1, GroupLayout.PREFERRED_SIZE, 19, GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(ComponentPlacement.RELATED)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE)
- .addComponent(lb_FilterLetterSpacing)
- .addComponent(tf_FilterLetterSpacing, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addComponent(cb_InlineStyles)
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addComponent(cb_EmbedVectorImages)
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addComponent(cb_EmbedRaster)
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addComponent(cb_convertToPx)
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addComponent(cb_IgnoreHardLineBreaks)
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addComponent(cb_IgnoreEmptyParagraphs)
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addComponent(cb_Greenstone)
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE)
- .addComponent(lb_SplitByLevel, GroupLayout.PREFERRED_SIZE, 16, GroupLayout.PREFERRED_SIZE)
- .addComponent(cbox_SplitByLevel, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(ComponentPlacement.RELATED)
- .addComponent(cb_SplitWholePagesOnly)
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addComponent(cb_UseMathJax)
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addComponent(cb_Pagination)
- .addPreferredGap(ComponentPlacement.RELATED)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE)
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(2)
+ .addComponent(lb_MaxWidth))
+ .addComponent(tf_MaxWidth_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addGap(8)
+ .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
+ .addComponent(lb_FilterLetterSpacing, GroupLayout.PREFERRED_SIZE, 15, GroupLayout.PREFERRED_SIZE)
+ .addComponent(tf_FilterLetterSpacing_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addGap(10)
+ .addComponent(cb_InlineStyles_1)
+ .addGap(6)
+ .addComponent(cb_EmbedVectorImages_1)
+ .addGap(6)
+ .addComponent(cb_EmbedRaster_1)
+ .addGap(6)
+ .addComponent(cb_convertToPx_1)
+ .addGap(6)
+ .addComponent(cb_IgnoreHardLineBreaks_1)
+ .addGap(6)
+ .addComponent(cb_IgnoreEmptyParagraphs_1)
+ .addGap(6)
+ .addComponent(cb_Greenstone_1)
+ .addGap(11)
+ .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
+ .addComponent(lb_SplitByLevel)
+ .addComponent(cbox_SplitByLevel_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addGap(10)
+ .addComponent(cb_SplitWholePagesOnly_1)
+ .addGap(6)
+ .addComponent(cb_UseMathJax_1)
+ .addGap(6)
+ .addComponent(cb_Pagination_1)
+ .addGap(11)
+ .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
.addComponent(lb_ImageResolution)
- .addComponent(cbox_image_resolution, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addGap(101))
+ .addComponent(cbox_image_resolution_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addGap(4))
);
- this.setLayout(gl_panel_configHTML);
+ setLayout(groupLayout);
+ }
+
+
+
+ //Shared methods added here to make WindowBuilder work
+
+ JCheckBox addMathJaxCB(HashMap configuration, UIPreferences preferences) {
+ cb_UseMathJax_1 = new JCheckBox(Localizer.get(LABEL_USE_MATHJAX));
+ cb_UseMathJax_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_USE_MATHJAX)));
+ configuration.put(ARG_USE_MATHJAX, cb_UseMathJax_1);
+ return cb_UseMathJax_1;
+ }
+
+ JCheckBox addIgnoreEmptyParsCB(HashMap configuration, UIPreferences preferences) {
+ cb_IgnoreEmptyParagraphs_1 = new JCheckBox(Localizer.get(LABEL_INGNORE_EMPTY_PARS));
+ cb_IgnoreEmptyParagraphs_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_IGNORE_EMPTY_PARS)));
+ configuration.put(ARG_IGNORE_EMPTY_PARAGRAPHS, cb_IgnoreEmptyParagraphs_1);
+ return cb_IgnoreEmptyParagraphs_1;
}
- private JButton addButtonChooseFile(JTextField tf_inputFile, JTextField tf_OutputFile) {
- JButton btn_chooseFile = new JButton(Localizer.get(LABEL_BUTTON_CHOOSE));
- btn_chooseFile.addActionListener(new ActionListener() {
+ JCheckBox addSplitWholePagesOnly(HashMap configuration, UIPreferences preferences) {
+ cb_SplitWholePagesOnly_1 = new JCheckBox(Localizer.get(LABEL_SPLIT_WHOLE_PAGES_ONLY));
+ cb_SplitWholePagesOnly_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_SPLIT_WHOLE_PAGES)));
+ configuration.put(ARG_ALIGN_SPLITS_TO_PAGES, cb_SplitWholePagesOnly_1);
+ return cb_SplitWholePagesOnly_1;
+ }
+
+ JCheckBox addIgnoreHardLineBreaks(HashMap configuration, UIPreferences preferences) {
+ cb_IgnoreHardLineBreaks_1 = new JCheckBox(Localizer.get(LABEL_FILETER_HARD_LINE_BREAKS));
+ cb_IgnoreHardLineBreaks_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_IGNORE_HARD_BREAKS)));
+ configuration.put(ARG_IGNORE_HARD_LINE_BREAKS, cb_IgnoreHardLineBreaks_1);
+ return cb_IgnoreHardLineBreaks_1;
+ }
+
+ JTextField addLetterSpacingFilter(HashMap configuration, UIPreferences preferences) {
+ tf_FilterLetterSpacing_1 = new JTextField();
+ tf_FilterLetterSpacing_1.setText(preferences.get(PREF_LETTER_SPACING));
+ configuration.put(ARG_MIN_LETTER_SPACING, tf_FilterLetterSpacing_1);
+ tf_FilterLetterSpacing_1.setColumns(10);
+ return tf_FilterLetterSpacing_1;
+ }
+
+
+ JCheckBox addInlineStyles(HashMap configuration, UIPreferences preferences) {
+ cb_InlineStyles_1 = new JCheckBox(Localizer.get(LABEL_INLINE_STYLES));
+ cb_InlineStyles_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_INLINE_STYLES)));
+ configuration.put(ARG_CSS_INLINE, cb_InlineStyles_1);
+ return cb_InlineStyles_1;
+ }
+
+ JCheckBox addGreenstoneTags(HashMap configuration, UIPreferences preferences) {
+ cb_Greenstone_1 = new JCheckBox(Localizer.get(LABEL_GREENSTONE_SPLIT));
+ configuration.put(ARG_GREENSTONE, cb_Greenstone_1);
+ cb_Greenstone_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_GREENSTONE_TAGS)));
+ return cb_Greenstone_1;
+ }
+
+ JTextField addOutputFileTextField(HashMap configuration, UIPreferences preferences) {
+ tf_OutputFile_1 = new JTextField("");
+ configuration.put(ARG_OUTPUT_FILE, tf_OutputFile_1);
+ tf_OutputFile_1.setColumns(10);
+ return tf_OutputFile_1;
+ }
+
+ JCheckBox addPagination(HashMap configuration, UIPreferences preferences) {
+ cb_Pagination_1 = new JCheckBox(Localizer.get(LABEL_PAGINATION));
+ cb_Pagination_1.setSelected(Boolean.getBoolean(preferences.get(PREF_PAGINATION)));
+ configuration.put(ARG_PAGINATION, cb_Pagination_1);
+ return cb_Pagination_1;
+ }
+
+ JCheckBox addConvertToPX(HashMap configuration, UIPreferences preferences) {
+ cb_convertToPx_1 = new JCheckBox(Localizer.get(LABEL_CONVERT_TO_PX));
+ cb_convertToPx_1.setSelected(Boolean.getBoolean(preferences.get(PREF_CONVERT_TO_PX)));
+ configuration.put(ARG_CONVERT_TO_PX, cb_convertToPx_1);
+ return cb_convertToPx_1;
+ }
+
+ JTextField addPageBreakStyle(HashMap configuration, UIPreferences preferences) {
+ tf_pageBreakInlineStyle_1 = new JTextField(preferences.get(PREF_PAGEBREAK_STYLES));
+ tf_pageBreakInlineStyle_1.setColumns(10);
+ configuration.put(ARG_PAGE_BREAK_STYLE, tf_pageBreakInlineStyle_1);
+ return tf_pageBreakInlineStyle_1;
+ }
+
+ JLabel addTargetFormat(String format, HashMap configuration) {
+ lb_TargetFormat_1 = new JLabel(format);
+ configuration.put(ARG_TARGET_FORMAT, lb_TargetFormat_1);
+ return lb_TargetFormat_1;
+ }
+
+ JTextField addScaling(HashMap configuration, UIPreferences preferences) {
+ tf_Scale_1 = new JTextField();
+ tf_Scale_1.setText(preferences.get(PREF_SCALING));
+ tf_Scale_1.setColumns(10);
+ configuration.put(ARG_SCALING, tf_Scale_1);
+ return tf_Scale_1;
+ }
+
+ JTextField addInputFile(HashMap configuration, UIPreferences preferences) {
+ tf_inputFile_1 = new JTextField(preferences.getSourceFileName());
+ tf_inputFile_1.setColumns(10);
+ configuration.put(ARG_INPUT_FILE, tf_inputFile_1);
+ return tf_inputFile_1;
+ }
+
+ JComboBox addImageResolution(HashMap configuration, UIPreferences preferences) {
+ cbox_image_resolution_1 = new JComboBox(preferences.getAll(PREF_RESOLUTIONS));
+ cbox_image_resolution_1.setSelectedIndex(Integer.parseInt(preferences.get(PREF_DEFAULT_IMAGE_RESOLUTION)));
+ configuration.put(ARG_IMAGE_RESOLUTION, cbox_image_resolution_1);
+ return cbox_image_resolution_1;
+ }
+
+ JComboBox addSplitByLevel(HashMap configuration, UIPreferences preferences) {
+ cbox_SplitByLevel_1 = new JComboBox(preferences.getAll(PREF_SPLIT_LEVELS));
+ configuration.put(ARG_SPLIT_LEVEL, cbox_SplitByLevel_1);
+ cbox_SplitByLevel_1.setSelectedIndex(Integer.parseInt(preferences.get(PREF_SPLIT_BY_LEVEL)));
+ return cbox_SplitByLevel_1;
+ }
+
+ JTextField addMaxWidth(HashMap configuration, UIPreferences preferences) {
+ tf_MaxWidth_1 = new JTextField(preferences.get(PREF_MAX_WIDTH));
+ tf_MaxWidth_1.setColumns(10);
+ configuration.put(ARG_MAX_WIDTH, tf_MaxWidth_1);
+ return tf_MaxWidth_1;
+ }
+
+ JCheckBox addEmbedRasterImages(HashMap configuration, UIPreferences preferences) {
+ cb_EmbedRaster_1 = new JCheckBox(Localizer.get(LABEL_EMBED_RASTER));
+ cb_EmbedRaster_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_EMBED_RASTER)));
+ configuration.put(ARG_EMBED_IMG, cb_EmbedRaster_1);
+ return cb_EmbedRaster_1;
+ }
+
+ JCheckBox addEmbedVectorImages(HashMap configuration, UIPreferences preferences) {
+ cb_EmbedVectorImages_1 = new JCheckBox(Localizer.get(LABEL_EMBED_VECTOR));
+ cb_EmbedVectorImages_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_EMBED_VECTOR)));
+ configuration.put(ARG_EMBED_SVG, cb_EmbedVectorImages_1);
+ return cb_EmbedVectorImages_1;
+ }
+
+ void setOutputFilePath(String newFilePath, JTextField tf_OutputFile, String extension) {
+
+ File inputFile = new File(newFilePath);
+ if (!inputFile.exists()) {
+ return;
+ }
+ if (!inputFile.isDirectory()) {
+ File parent = inputFile.getParentFile();
+ if (parent == null) {
+ return;
+ }
+ if (!parent.canWrite()) {
+ JOptionPane.showMessageDialog(ConfigurationWindow.getSingleFrame(), Localizer.get(CANT_WRITE_MESSAGE));
+ }
+ }
+ if (newFilePath.length() < 3) {
+ return;
+ }
+ String exportPath;
+ if (inputFile.isDirectory()) {
+ exportPath = newFilePath;
+ tf_OutputFile.setText(exportPath);
+ } else {
+ String importExt = newFilePath.substring(newFilePath.length() - 3, newFilePath.length()).toLowerCase();
+ if (importExt.equals(ODT_FILE_EXTENSION)) {
+ exportPath = newFilePath.substring(0, newFilePath.length() - 3) + extension;
+ tf_OutputFile.setText(exportPath);
+ }
+ }
+ }
+
+
+ JButton addChooseOutputButton(JTextField tf_OutputFile, String fileExtension) {
+ btn_ChooseOutputFile_1 = new JButton(Localizer.get(LABEL_BUTTON_CHOOSE));
+ btn_ChooseOutputFile_1.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ FileDialog fileDialog = new FileDialog();
+ String newFilePath = fileDialog.chooseFile(tf_OutputFile.getText(),fileExtension);
+ if (newFilePath != null && !newFilePath.isEmpty()) {
+ tf_OutputFile.setText(newFilePath);
+ }
+ }
+ });
+ return btn_ChooseOutputFile_1;
+ }
+
+ public void setMetadataFilePath(String newFilePath, JTextField tf_MetadataFile, String extension) {
+
+ File inputFile = new File(newFilePath);
+ if (!inputFile.exists()) {
+ return;
+ }
+ if (inputFile.isDirectory()) {
+ tf_MetadataFile.setText(newFilePath);
+ } else {
+ File parent = inputFile.getParentFile();
+ if (parent == null) {
+ return;
+ }
+ if (newFilePath.length() < 3) {
+ return;
+ }
+ String importExt = newFilePath.substring(newFilePath.length()-3, newFilePath.length()).toLowerCase();
+ if (importExt.equals(ODT_FILE_EXTENSION)) {
+ String metadataPath = newFilePath.substring(0, newFilePath.length()-3) + extension;
+ File metaFile = new File(metadataPath);
+ if (metaFile.exists() && metaFile.canRead()){
+ tf_MetadataFile.setText(metadataPath);
+ } else {
+ tf_MetadataFile.setText("");
+ }
+ }
+ }
+
+ }
+
+ JButton addButtonChooseFile(JTextField tf_inputFile, JTextField tf_OutputFile) {
+ btn_chooseFile_1 = new JButton(Localizer.get(LABEL_BUTTON_CHOOSE));
+ btn_chooseFile_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String newFilePath = FileDialog.chooseFile(tf_inputFile.getText(),ODT_FILE_EXTENSION);
if (newFilePath != null && !newFilePath.isEmpty()) {
@@ -231,7 +469,6 @@ public class HTMLPanel extends BasePanel{
}
}
});
- return btn_chooseFile;
+ return btn_chooseFile_1;
}
-}
-
+}
\ No newline at end of file
diff --git a/src/main/java/pro/litvinovg/w2phtml/gui/RDFPanel.java b/src/main/java/pro/litvinovg/w2phtml/gui/RDFPanel.java
index 1701ae4..7950bf9 100644
--- a/src/main/java/pro/litvinovg/w2phtml/gui/RDFPanel.java
+++ b/src/main/java/pro/litvinovg/w2phtml/gui/RDFPanel.java
@@ -3,31 +3,65 @@ package pro.litvinovg.w2phtml.gui;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.io.File;
import java.util.HashMap;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
-import javax.swing.JFrame;
import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.GroupLayout.Alignment;
import javax.swing.LayoutStyle.ComponentPlacement;
import static pro.litvinovg.w2phtml.gui.Contstants.*;
+import net.miginfocom.swing.MigLayout;
-
-public class RDFPanel extends BasePanel {
+public class RDFPanel extends JPanel {
/**
*
*/
private static final long serialVersionUID = 1L;
+ private UIPreferences preferences;
+ private HashMap configuration;
+ private JComboBox cbox_image_resolution_1;
+ private JCheckBox cb_Pagination_1;
+ private JCheckBox cb_convertToPx_1;
+ private JCheckBox cb_EmbedRaster_1;
+ private JCheckBox cb_EmbedVectorImages_1;
+ private JTextField tf_FilterLetterSpacing_1;
+ private JCheckBox cb_InlineStyles_1;
+ private JLabel lb_TargetFormat_1;
+ private JTextField tf_OutputFile_1;
+ private JTextField tf_metadataPath_1;
+ private JTextField tf_inputFile_1;
+ private JButton btnChooseFile;
+ private JButton btn_metadataChoose_1;
+ private JButton btn_ChooseOutputFile_1;
+ private JTextField tf_pageBreakInlineStyle_1;
+ private JTextField tf_Scale_1;
+ private JComboBox cbox_type_1;
+ private JCheckBox cb_IgnoreEmptyParagraphs_1;
+ private JCheckBox cb_UseMathJax_1;
+ private JCheckBox cb_IgnoreHardLineBreaks_1;
+ public RDFPanel() {
+ this.preferences = PreferencesStorage.getDefaultRDF(null);
+ this.configuration = new HashMap();
+ initComponents();
+ }
+
public RDFPanel(HashMap configuration, UIPreferences preferences) {
- super(configuration, preferences);
-
+ this.configuration = configuration;
+ this.preferences = preferences;
+ initComponents();
+ }
+
+ private void initComponents() {
JLabel lb_FilterLetterSpacing = new JLabel(Localizer.get(LABEL_MIN_LETTER_SPACING));
- JLabel lb_TargetFormat = addTargetFormat(RDF_TARGET_FORMAT);
+ JLabel lb_TargetFormat = addTargetFormat(RDF_TARGET_FORMAT,configuration);
JLabel lb_Scale = new JLabel(Localizer.get(LABEL_SCALE));
JLabel lb_FilePath = new JLabel(Localizer.get(LABEL_INPUT_FILE_PATH));
JLabel lb_TargetFormat_description = new JLabel(Localizer.get(LABEL_TARGET_FORMAT));
@@ -37,198 +71,173 @@ public class RDFPanel extends BasePanel {
JLabel lb_metadataFilePath = new JLabel(Localizer.get(LABEL_METADATA_PATH));
JLabel lb_pageBreakInlineStyle = new JLabel(Localizer.get(LABEL_BREAK_STYLE));
- JTextField tf_OutputFile = addOutputFileTextField();
- JTextField tf_FilterLetterSpacing = addLetterSpacingFilter();
- JTextField tf_Scale = addScaling();
- JTextField tf_inputFile = addInputFile();
+ JTextField tf_OutputFile = addOutputFileTextField(configuration,preferences);
+ JTextField tf_FilterLetterSpacing = addLetterSpacingFilter(configuration,preferences);
+ JTextField tf_Scale = addScaling(configuration,preferences);
+ JTextField tf_inputFile = addInputFile(configuration,preferences);
JTextField tf_metadataPath = addMetadataPath(configuration);
- JTextField tf_pageBreakInlineStyle = addPageBreakStyle();
+ JTextField tf_pageBreakInlineStyle = addPageBreakStyle(configuration,preferences);
- JCheckBox cb_UseMathJax = addMathJaxCB();
- JCheckBox cb_IgnoreEmptyParagraphs = addIgnoreEmptyParsCB();
- JCheckBox cb_IgnoreHardLineBreaks = addIgnoreHardLineBreaks();
- JCheckBox cb_InlineStyles = addInlineStyles();
+ JCheckBox cb_UseMathJax = addMathJaxCB(configuration,preferences);
+ JCheckBox cb_IgnoreEmptyParagraphs = addIgnoreEmptyParsCB(configuration,preferences);
+ JCheckBox cb_IgnoreHardLineBreaks = addIgnoreHardLineBreaks(configuration,preferences);
+ JCheckBox cb_InlineStyles = addInlineStyles(configuration,preferences);
cb_InlineStyles.setEnabled(false);
- JCheckBox cb_EmbedVectorImages = addEmbedVectorImages();
+ JCheckBox cb_EmbedVectorImages = addEmbedVectorImages(configuration,preferences);
cb_EmbedVectorImages.setEnabled(false);
- JCheckBox cb_EmbedRaster = addEmbedRasterImages();
+ JCheckBox cb_EmbedRaster = addEmbedRasterImages(configuration,preferences);
cb_EmbedRaster.setEnabled(false);
- JCheckBox cb_convertToPx = addConvertToPX();
- JCheckBox cb_Pagination = addPagination();
+ JCheckBox cb_convertToPx = addConvertToPX(configuration,preferences);
+ JCheckBox cb_Pagination = addPagination(configuration,preferences);
- JComboBox cbox_image_resolution = addImageResolution();
+ JComboBox cbox_image_resolution = addImageResolution(configuration,preferences);
JComboBox cbox_type = addPubTypes(configuration, preferences);
JButton btn_ChooseOutputFile = addChooseOutputButton(tf_OutputFile, RDF_FILE_EXTENSION);
JButton btn_ChooseFile = addChooseFile(tf_OutputFile, tf_inputFile, tf_metadataPath);
JButton btn_metadataChoose = addMetadataButton(tf_metadataPath);
-
- GroupLayout gl_panel_configHTML = new GroupLayout(this);
- 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_ImageResolution, GroupLayout.PREFERRED_SIZE, 369, GroupLayout.PREFERRED_SIZE)
- .addGap(4)
- .addComponent(cbox_image_resolution, GroupLayout.PREFERRED_SIZE, 70, GroupLayout.PREFERRED_SIZE)
- .addContainerGap())
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(cb_Pagination, GroupLayout.PREFERRED_SIZE, 303, GroupLayout.PREFERRED_SIZE)
- .addContainerGap())
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(cb_convertToPx, GroupLayout.PREFERRED_SIZE, 592, GroupLayout.PREFERRED_SIZE)
- .addContainerGap())
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(cb_EmbedRaster)
- .addContainerGap())
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(cb_EmbedVectorImages)
- .addContainerGap())
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(lb_FilterLetterSpacing)
- .addPreferredGap(ComponentPlacement.RELATED)
- .addComponent(tf_FilterLetterSpacing, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
- .addGap(599))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addComponent(cb_InlineStyles)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addPreferredGap(ComponentPlacement.RELATED)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addComponent(lb_TargetFormat_description, GroupLayout.PREFERRED_SIZE, 311, GroupLayout.PREFERRED_SIZE)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addComponent(lb_FilePath, GroupLayout.PREFERRED_SIZE, 176, GroupLayout.PREFERRED_SIZE)
- .addComponent(lb_metadataFilePath, GroupLayout.PREFERRED_SIZE, 177, GroupLayout.PREFERRED_SIZE)
- .addComponent(lb_OutFilePath, GroupLayout.PREFERRED_SIZE, 187, GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(ComponentPlacement.RELATED)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addComponent(lb_TargetFormat, GroupLayout.PREFERRED_SIZE, 68, GroupLayout.PREFERRED_SIZE)
- .addComponent(tf_OutputFile, GroupLayout.DEFAULT_SIZE, 561, Short.MAX_VALUE)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(tf_metadataPath, GroupLayout.DEFAULT_SIZE, 560, Short.MAX_VALUE)
- .addGap(1))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(tf_inputFile, GroupLayout.DEFAULT_SIZE, 558, Short.MAX_VALUE)
- .addGap(3)))))
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGap(11)
- .addComponent(btn_ChooseFile, GroupLayout.PREFERRED_SIZE, 113, GroupLayout.PREFERRED_SIZE))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGap(12)
- .addComponent(btn_metadataChoose, GroupLayout.PREFERRED_SIZE, 113, GroupLayout.PREFERRED_SIZE))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGap(11)
- .addComponent(btn_ChooseOutputFile, GroupLayout.PREFERRED_SIZE, 113, GroupLayout.PREFERRED_SIZE)))
- .addGap(149))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(lb_pageBreakInlineStyle, GroupLayout.PREFERRED_SIZE, 196, GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(ComponentPlacement.RELATED)
- .addComponent(tf_pageBreakInlineStyle, GroupLayout.DEFAULT_SIZE, 681, Short.MAX_VALUE)
- .addGap(145))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(lb_type, GroupLayout.PREFERRED_SIZE, 148, GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(ComponentPlacement.RELATED)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addComponent(tf_Scale, GroupLayout.PREFERRED_SIZE, 98, GroupLayout.PREFERRED_SIZE)
- .addComponent(cbox_type, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))))
- .addGap(21))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(lb_Scale, GroupLayout.PREFERRED_SIZE, 137, GroupLayout.PREFERRED_SIZE)
- .addContainerGap())))))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(cb_IgnoreEmptyParagraphs, GroupLayout.PREFERRED_SIZE, 339, GroupLayout.PREFERRED_SIZE)
- .addContainerGap())
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(cb_UseMathJax, GroupLayout.PREFERRED_SIZE, 345, GroupLayout.PREFERRED_SIZE)
- .addContainerGap())
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addComponent(cb_IgnoreHardLineBreaks, GroupLayout.PREFERRED_SIZE, 344, GroupLayout.PREFERRED_SIZE)
- .addContainerGap()))))
- );
- gl_panel_configHTML.setVerticalGroup(
- gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGroup(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))
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGap(22)
- .addComponent(tf_inputFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGap(24)
- .addComponent(lb_FilePath, GroupLayout.PREFERRED_SIZE, 19, GroupLayout.PREFERRED_SIZE)))
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.LEADING)
- .addComponent(tf_metadataPath, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
- .addComponent(lb_metadataFilePath, GroupLayout.PREFERRED_SIZE, 17, GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE)
- .addComponent(lb_OutFilePath, GroupLayout.PREFERRED_SIZE, 18, GroupLayout.PREFERRED_SIZE)
- .addComponent(tf_OutputFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
- .addGroup(gl_panel_configHTML.createSequentialGroup()
- .addGap(46)
- .addComponent(btn_ChooseFile)
+ GroupLayout groupLayout = new GroupLayout(this);
+ groupLayout.setHorizontalGroup(
+ groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(6)
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(210)
+ .addComponent(lb_TargetFormat_1))
+ .addComponent(lb_TargetFormat_description, GroupLayout.PREFERRED_SIZE, 382, GroupLayout.PREFERRED_SIZE)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addComponent(lb_FilePath, GroupLayout.PREFERRED_SIZE, 198, GroupLayout.PREFERRED_SIZE)
+ .addGap(12)
+ .addComponent(tf_inputFile_1, GroupLayout.DEFAULT_SIZE, 448, Short.MAX_VALUE)
+ .addGap(19)
+ .addComponent(btnChooseFile, GroupLayout.PREFERRED_SIZE, 115, GroupLayout.PREFERRED_SIZE))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addComponent(lb_metadataFilePath, GroupLayout.PREFERRED_SIZE, 198, GroupLayout.PREFERRED_SIZE)
+ .addGap(12)
+ .addComponent(tf_metadataPath_1, GroupLayout.DEFAULT_SIZE, 448, Short.MAX_VALUE)
+ .addGap(19)
+ .addComponent(btn_metadataChoose_1, GroupLayout.PREFERRED_SIZE, 115, GroupLayout.PREFERRED_SIZE))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addComponent(lb_OutFilePath, GroupLayout.PREFERRED_SIZE, 198, GroupLayout.PREFERRED_SIZE)
+ .addGap(12)
+ .addComponent(tf_OutputFile_1, GroupLayout.DEFAULT_SIZE, 448, Short.MAX_VALUE)
+ .addGap(19)
+ .addComponent(btn_ChooseOutputFile_1, GroupLayout.PREFERRED_SIZE, 115, GroupLayout.PREFERRED_SIZE))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addComponent(lb_pageBreakInlineStyle, GroupLayout.PREFERRED_SIZE, 198, GroupLayout.PREFERRED_SIZE)
+ .addGap(12)
+ .addComponent(tf_pageBreakInlineStyle_1, GroupLayout.DEFAULT_SIZE, 582, Short.MAX_VALUE))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addComponent(lb_type, GroupLayout.PREFERRED_SIZE, 71, GroupLayout.PREFERRED_SIZE)
+ .addGap(27)
+ .addComponent(cbox_type_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addComponent(cb_InlineStyles_1)
+ .addComponent(cb_EmbedVectorImages_1)
+ .addComponent(cb_EmbedRaster_1)
+ .addComponent(cb_convertToPx_1, GroupLayout.PREFERRED_SIZE, 658, GroupLayout.PREFERRED_SIZE)
+ .addComponent(cb_IgnoreHardLineBreaks_1, GroupLayout.PREFERRED_SIZE, 382, GroupLayout.PREFERRED_SIZE)
+ .addComponent(cb_IgnoreEmptyParagraphs_1, GroupLayout.PREFERRED_SIZE, 382, GroupLayout.PREFERRED_SIZE)
+ .addComponent(cb_UseMathJax_1, GroupLayout.PREFERRED_SIZE, 382, GroupLayout.PREFERRED_SIZE)
+ .addComponent(cb_Pagination_1, GroupLayout.PREFERRED_SIZE, 382, GroupLayout.PREFERRED_SIZE)
+ .addGroup(groupLayout.createSequentialGroup()
.addPreferredGap(ComponentPlacement.RELATED)
- .addComponent(btn_metadataChoose)
- .addGap(7)
- .addComponent(btn_ChooseOutputFile)))
- .addGap(20)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE)
- .addComponent(lb_pageBreakInlineStyle, GroupLayout.PREFERRED_SIZE, 23, GroupLayout.PREFERRED_SIZE)
- .addComponent(tf_pageBreakInlineStyle, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addGap(18)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE)
- .addComponent(lb_type)
- .addComponent(cbox_type, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE)
- .addComponent(lb_Scale)
- .addComponent(tf_Scale, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE)
- .addComponent(lb_FilterLetterSpacing)
- .addComponent(tf_FilterLetterSpacing, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addGap(10)
- .addComponent(cb_InlineStyles)
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addComponent(cb_EmbedVectorImages)
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addComponent(cb_EmbedRaster)
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addComponent(cb_convertToPx)
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addComponent(cb_IgnoreHardLineBreaks)
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addComponent(cb_IgnoreEmptyParagraphs)
- .addPreferredGap(ComponentPlacement.UNRELATED)
- .addComponent(cb_UseMathJax)
- .addPreferredGap(ComponentPlacement.RELATED)
- .addComponent(cb_Pagination)
- .addPreferredGap(ComponentPlacement.RELATED)
- .addGroup(gl_panel_configHTML.createParallelGroup(Alignment.BASELINE)
- .addComponent(lb_ImageResolution)
- .addComponent(cbox_image_resolution, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addContainerGap(87, Short.MAX_VALUE))
+ .addComponent(lb_ImageResolution, GroupLayout.PREFERRED_SIZE, 245, GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(ComponentPlacement.RELATED)
+ .addComponent(cbox_image_resolution_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addComponent(lb_Scale, GroupLayout.PREFERRED_SIZE, 83, GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(ComponentPlacement.RELATED)
+ .addComponent(tf_Scale_1, GroupLayout.PREFERRED_SIZE, 60, GroupLayout.PREFERRED_SIZE))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addComponent(lb_FilterLetterSpacing)
+ .addPreferredGap(ComponentPlacement.RELATED)
+ .addComponent(tf_FilterLetterSpacing_1, GroupLayout.PREFERRED_SIZE, 52, GroupLayout.PREFERRED_SIZE)))
+ .addGap(6))
);
- this.setLayout(gl_panel_configHTML);
+ groupLayout.setVerticalGroup(
+ groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(6)
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addComponent(lb_TargetFormat_1)
+ .addComponent(lb_TargetFormat_description))
+ .addGap(6)
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(5)
+ .addComponent(lb_FilePath))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(3)
+ .addComponent(tf_inputFile_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addComponent(btnChooseFile))
+ .addGap(6)
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(5)
+ .addComponent(lb_metadataFilePath))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(6)
+ .addComponent(tf_metadataPath_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addComponent(btn_metadataChoose_1))
+ .addGap(6)
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(5)
+ .addComponent(lb_OutFilePath))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(3)
+ .addComponent(tf_OutputFile_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addComponent(btn_ChooseOutputFile_1))
+ .addGap(6)
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addComponent(lb_pageBreakInlineStyle, GroupLayout.PREFERRED_SIZE, 23, GroupLayout.PREFERRED_SIZE)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(2)
+ .addComponent(tf_pageBreakInlineStyle_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
+ .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
+ .addGroup(groupLayout.createSequentialGroup()
+ .addGap(11)
+ .addComponent(lb_type))
+ .addGroup(groupLayout.createSequentialGroup()
+ .addPreferredGap(ComponentPlacement.UNRELATED)
+ .addComponent(cbox_type_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
+ .addGap(8)
+ .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
+ .addComponent(lb_Scale)
+ .addComponent(tf_Scale_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addGap(10)
+ .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
+ .addComponent(lb_FilterLetterSpacing)
+ .addComponent(tf_FilterLetterSpacing_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addGap(8)
+ .addComponent(cb_InlineStyles_1)
+ .addGap(6)
+ .addComponent(cb_EmbedVectorImages_1)
+ .addGap(6)
+ .addComponent(cb_EmbedRaster_1)
+ .addGap(6)
+ .addComponent(cb_convertToPx_1)
+ .addGap(6)
+ .addComponent(cb_IgnoreHardLineBreaks_1)
+ .addGap(6)
+ .addComponent(cb_IgnoreEmptyParagraphs_1)
+ .addGap(6)
+ .addComponent(cb_UseMathJax_1)
+ .addGap(6)
+ .addComponent(cb_Pagination_1)
+ .addGap(11)
+ .addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
+ .addComponent(lb_ImageResolution, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(cbox_image_resolution_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
+ .addContainerGap())
+ );
+ setLayout(groupLayout);
}
private JButton addMetadataButton( JTextField tf_metadataPath) {
- JButton btn_metadataChoose = new JButton(Localizer.get(LABEL_BUTTON_CHOOSE));
- btn_metadataChoose.addActionListener(new ActionListener() {
+ btn_metadataChoose_1 = new JButton(Localizer.get(LABEL_BUTTON_CHOOSE));
+ btn_metadataChoose_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String newFilePath = FileDialog.chooseFile(tf_metadataPath.getText(),CSV_FILE_EXTENSION);
if (newFilePath != null && !newFilePath.isEmpty()) {
@@ -236,19 +245,19 @@ public class RDFPanel extends BasePanel {
}
}
});
- return btn_metadataChoose;
+ return btn_metadataChoose_1;
}
private JTextField addMetadataPath(HashMap configuration) {
- JTextField tf_metadataPath = new JTextField("");
- tf_metadataPath.setColumns(10);
- configuration.put(ARG_CSV_METADATA, tf_metadataPath);
- return tf_metadataPath;
+ tf_metadataPath_1 = new JTextField("");
+ tf_metadataPath_1.setColumns(10);
+ configuration.put(ARG_CSV_METADATA, tf_metadataPath_1);
+ return tf_metadataPath_1;
}
private JButton addChooseFile( JTextField tf_OutputFile, JTextField tf_inputFile,
JTextField tf_metadataPath) {
- JButton btnChooseFile = new JButton(Localizer.get(LABEL_BUTTON_CHOOSE));
+ btnChooseFile = new JButton(Localizer.get(LABEL_BUTTON_CHOOSE));
btnChooseFile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String newFilePath = FileDialog.chooseFile(tf_inputFile.getText(),ODT_FILE_EXTENSION);
@@ -263,11 +272,222 @@ public class RDFPanel extends BasePanel {
}
private JComboBox addPubTypes(HashMap configuration, UIPreferences preferences) {
- JComboBox cbox_type = new JComboBox(preferences.getAll(PREF_PUBLICATION_TYPES));
- cbox_type.setSelectedIndex(Integer.parseInt(preferences.get(PREF_DEFAULT_PUBLICATION_TYPE)));
- configuration.put(ARG_RDF_TYPE, cbox_type);
- return cbox_type;
+ cbox_type_1 = new JComboBox(preferences.getAll(PREF_PUBLICATION_TYPES));
+ cbox_type_1.setSelectedIndex(Integer.parseInt(preferences.get(PREF_DEFAULT_PUBLICATION_TYPE)));
+ configuration.put(ARG_RDF_TYPE, cbox_type_1);
+ return cbox_type_1;
+ }
+ //Shared methods added here to make WindowBuilder work
+
+ JCheckBox addMathJaxCB(HashMap configuration, UIPreferences preferences) {
+ cb_UseMathJax_1 = new JCheckBox(Localizer.get(LABEL_USE_MATHJAX));
+ cb_UseMathJax_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_USE_MATHJAX)));
+ configuration.put(ARG_USE_MATHJAX, cb_UseMathJax_1);
+ return cb_UseMathJax_1;
+ }
+
+ JCheckBox addIgnoreEmptyParsCB(HashMap configuration, UIPreferences preferences) {
+ cb_IgnoreEmptyParagraphs_1 = new JCheckBox(Localizer.get(LABEL_INGNORE_EMPTY_PARS));
+ cb_IgnoreEmptyParagraphs_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_IGNORE_EMPTY_PARS)));
+ configuration.put(ARG_IGNORE_EMPTY_PARAGRAPHS, cb_IgnoreEmptyParagraphs_1);
+ return cb_IgnoreEmptyParagraphs_1;
+ }
+
+ JCheckBox addSplitWholePagesOnly(HashMap configuration, UIPreferences preferences) {
+ JCheckBox cb_SplitWholePagesOnly = new JCheckBox(Localizer.get(LABEL_SPLIT_WHOLE_PAGES_ONLY));
+ cb_SplitWholePagesOnly.setSelected(Boolean.parseBoolean(preferences.get(PREF_SPLIT_WHOLE_PAGES)));
+ configuration.put(ARG_ALIGN_SPLITS_TO_PAGES, cb_SplitWholePagesOnly);
+ return cb_SplitWholePagesOnly;
+ }
+
+ JCheckBox addIgnoreHardLineBreaks(HashMap configuration, UIPreferences preferences) {
+ cb_IgnoreHardLineBreaks_1 = new JCheckBox(Localizer.get(LABEL_FILETER_HARD_LINE_BREAKS));
+ cb_IgnoreHardLineBreaks_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_IGNORE_HARD_BREAKS)));
+ configuration.put(ARG_IGNORE_HARD_LINE_BREAKS, cb_IgnoreHardLineBreaks_1);
+ return cb_IgnoreHardLineBreaks_1;
+ }
+
+ JTextField addLetterSpacingFilter(HashMap configuration, UIPreferences preferences) {
+ tf_FilterLetterSpacing_1 = new JTextField();
+ tf_FilterLetterSpacing_1.setText(preferences.get(PREF_LETTER_SPACING));
+ configuration.put(ARG_MIN_LETTER_SPACING, tf_FilterLetterSpacing_1);
+ tf_FilterLetterSpacing_1.setColumns(10);
+ return tf_FilterLetterSpacing_1;
}
+ JCheckBox addInlineStyles(HashMap configuration, UIPreferences preferences) {
+ cb_InlineStyles_1 = new JCheckBox(Localizer.get(LABEL_INLINE_STYLES));
+ cb_InlineStyles_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_INLINE_STYLES)));
+ configuration.put(ARG_CSS_INLINE, cb_InlineStyles_1);
+ return cb_InlineStyles_1;
+ }
+
+ JCheckBox addGreenstoneTags(HashMap configuration, UIPreferences preferences) {
+ JCheckBox cb_Greenstone = new JCheckBox(Localizer.get(LABEL_GREENSTONE_SPLIT));
+ configuration.put(ARG_GREENSTONE, cb_Greenstone);
+ cb_Greenstone.setSelected(Boolean.parseBoolean(preferences.get(PREF_GREENSTONE_TAGS)));
+ return cb_Greenstone;
+ }
+
+ JTextField addOutputFileTextField(HashMap configuration, UIPreferences preferences) {
+ tf_OutputFile_1 = new JTextField("");
+ configuration.put(ARG_OUTPUT_FILE, tf_OutputFile_1);
+ tf_OutputFile_1.setColumns(10);
+ return tf_OutputFile_1;
+ }
+
+ JCheckBox addPagination(HashMap configuration, UIPreferences preferences) {
+ cb_Pagination_1 = new JCheckBox(Localizer.get(LABEL_PAGINATION));
+ cb_Pagination_1.setSelected(Boolean.getBoolean(preferences.get(PREF_PAGINATION)));
+ configuration.put(ARG_PAGINATION, cb_Pagination_1);
+ return cb_Pagination_1;
+ }
+
+ JCheckBox addConvertToPX(HashMap configuration, UIPreferences preferences) {
+ cb_convertToPx_1 = new JCheckBox(Localizer.get(LABEL_CONVERT_TO_PX));
+ cb_convertToPx_1.setSelected(Boolean.getBoolean(preferences.get(PREF_CONVERT_TO_PX)));
+ configuration.put(ARG_CONVERT_TO_PX, cb_convertToPx_1);
+ return cb_convertToPx_1;
+ }
+
+ JTextField addPageBreakStyle(HashMap configuration, UIPreferences preferences) {
+ tf_pageBreakInlineStyle_1 = new JTextField(preferences.get(PREF_PAGEBREAK_STYLES));
+ tf_pageBreakInlineStyle_1.setColumns(10);
+ configuration.put(ARG_PAGE_BREAK_STYLE, tf_pageBreakInlineStyle_1);
+ return tf_pageBreakInlineStyle_1;
+ }
+
+ JLabel addTargetFormat(String format, HashMap configuration) {
+ lb_TargetFormat_1 = new JLabel(format);
+ configuration.put(ARG_TARGET_FORMAT, lb_TargetFormat_1);
+ return lb_TargetFormat_1;
+ }
+
+ JTextField addScaling(HashMap configuration, UIPreferences preferences) {
+ tf_Scale_1 = new JTextField();
+ tf_Scale_1.setText(preferences.get(PREF_SCALING));
+ tf_Scale_1.setColumns(10);
+ configuration.put(ARG_SCALING, tf_Scale_1);
+ return tf_Scale_1;
+ }
+
+ JTextField addInputFile(HashMap configuration, UIPreferences preferences) {
+ tf_inputFile_1 = new JTextField(preferences.getSourceFileName());
+ tf_inputFile_1.setColumns(10);
+ configuration.put(ARG_INPUT_FILE, tf_inputFile_1);
+ return tf_inputFile_1;
+ }
+
+ JComboBox addImageResolution(HashMap configuration, UIPreferences preferences) {
+ cbox_image_resolution_1 = new JComboBox(preferences.getAll(PREF_RESOLUTIONS));
+ cbox_image_resolution_1.setSelectedIndex(Integer.parseInt(preferences.get(PREF_DEFAULT_IMAGE_RESOLUTION)));
+ configuration.put(ARG_IMAGE_RESOLUTION, cbox_image_resolution_1);
+ return cbox_image_resolution_1;
+ }
+
+ JComboBox addSplitByLevel(HashMap configuration, UIPreferences preferences) {
+ JComboBox cbox_SplitByLevel = new JComboBox(preferences.getAll(PREF_SPLIT_LEVELS));
+ configuration.put(ARG_SPLIT_LEVEL, cbox_SplitByLevel);
+ cbox_SplitByLevel.setSelectedIndex(Integer.parseInt(preferences.get(PREF_SPLIT_BY_LEVEL)));
+ return cbox_SplitByLevel;
+ }
+
+ JTextField addMaxWidth(HashMap configuration, UIPreferences preferences) {
+ JTextField tf_MaxWidth = new JTextField(preferences.get(PREF_MAX_WIDTH));
+ tf_MaxWidth.setColumns(10);
+ configuration.put(ARG_MAX_WIDTH, tf_MaxWidth);
+ return tf_MaxWidth;
+ }
+
+ JCheckBox addEmbedRasterImages(HashMap configuration, UIPreferences preferences) {
+ cb_EmbedRaster_1 = new JCheckBox(Localizer.get(LABEL_EMBED_RASTER));
+ cb_EmbedRaster_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_EMBED_RASTER)));
+ configuration.put(ARG_EMBED_IMG, cb_EmbedRaster_1);
+ return cb_EmbedRaster_1;
+ }
+
+ JCheckBox addEmbedVectorImages(HashMap configuration, UIPreferences preferences) {
+ cb_EmbedVectorImages_1 = new JCheckBox(Localizer.get(LABEL_EMBED_VECTOR));
+ cb_EmbedVectorImages_1.setSelected(Boolean.parseBoolean(preferences.get(PREF_EMBED_VECTOR)));
+ configuration.put(ARG_EMBED_SVG, cb_EmbedVectorImages_1);
+ return cb_EmbedVectorImages_1;
+ }
+
+ void setOutputFilePath(String newFilePath, JTextField tf_OutputFile, String extension) {
+
+ File inputFile = new File(newFilePath);
+ if (!inputFile.exists()) {
+ return;
+ }
+ if (!inputFile.isDirectory()) {
+ File parent = inputFile.getParentFile();
+ if (parent == null) {
+ return;
+ }
+ if (!parent.canWrite()) {
+ JOptionPane.showMessageDialog(ConfigurationWindow.getSingleFrame(), Localizer.get(CANT_WRITE_MESSAGE));
+ }
+ }
+ if (newFilePath.length() < 3) {
+ return;
+ }
+ String exportPath;
+ if (inputFile.isDirectory()) {
+ exportPath = newFilePath;
+ tf_OutputFile.setText(exportPath);
+ } else {
+ String importExt = newFilePath.substring(newFilePath.length() - 3, newFilePath.length()).toLowerCase();
+ if (importExt.equals(ODT_FILE_EXTENSION)) {
+ exportPath = newFilePath.substring(0, newFilePath.length() - 3) + extension;
+ tf_OutputFile.setText(exportPath);
+ }
+ }
+ }
+
+
+ JButton addChooseOutputButton(JTextField tf_OutputFile, String fileExtension) {
+ btn_ChooseOutputFile_1 = new JButton(Localizer.get(LABEL_BUTTON_CHOOSE));
+ btn_ChooseOutputFile_1.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ FileDialog fileDialog = new FileDialog();
+ String newFilePath = fileDialog.chooseFile(tf_OutputFile.getText(),fileExtension);
+ if (newFilePath != null && !newFilePath.isEmpty()) {
+ tf_OutputFile.setText(newFilePath);
+ }
+ }
+ });
+ return btn_ChooseOutputFile_1;
+ }
+
+ public void setMetadataFilePath(String newFilePath, JTextField tf_MetadataFile, String extension) {
+
+ File inputFile = new File(newFilePath);
+ if (!inputFile.exists()) {
+ return;
+ }
+ if (inputFile.isDirectory()) {
+ tf_MetadataFile.setText(newFilePath);
+ } else {
+ File parent = inputFile.getParentFile();
+ if (parent == null) {
+ return;
+ }
+ if (newFilePath.length() < 3) {
+ return;
+ }
+ String importExt = newFilePath.substring(newFilePath.length()-3, newFilePath.length()).toLowerCase();
+ if (importExt.equals(ODT_FILE_EXTENSION)) {
+ String metadataPath = newFilePath.substring(0, newFilePath.length()-3) + extension;
+ File metaFile = new File(metadataPath);
+ if (metaFile.exists() && metaFile.canRead()){
+ tf_MetadataFile.setText(metadataPath);
+ } else {
+ tf_MetadataFile.setText("");
+ }
+ }
+ }
+
+ }
+
}
diff --git a/src/main/java/pro/litvinovg/w2phtml/gui/localizations/w2phtml.properties b/src/main/java/pro/litvinovg/w2phtml/gui/localizations/w2phtml.properties
index a90bfa7..5279522 100644
--- a/src/main/java/pro/litvinovg/w2phtml/gui/localizations/w2phtml.properties
+++ b/src/main/java/pro/litvinovg/w2phtml/gui/localizations/w2phtml.properties
@@ -23,7 +23,7 @@ label_use_mathjax=Use MathJax
label_fileter_hard_line_breaks=Filter hard line breaks
label_metadata_path=Metadata path
label_type=Type
-label_split_by_heading=Split into multiple files by heading level
+label_split_by_heading=Split by heading level
label_html5=html5
error_cant_write=Attention. Can't save file in output directory.
message_not_implemented=Not implemented
diff --git a/src/main/java/pro/litvinovg/w2phtml/gui/localizations/w2phtml_ru.properties b/src/main/java/pro/litvinovg/w2phtml/gui/localizations/w2phtml_ru.properties
index ea151d8..ced5746 100644
--- a/src/main/java/pro/litvinovg/w2phtml/gui/localizations/w2phtml_ru.properties
+++ b/src/main/java/pro/litvinovg/w2phtml/gui/localizations/w2phtml_ru.properties
@@ -7,13 +7,13 @@ label_target_format=Целевой формат файла
label_input_file_path=Путь к входному файлу
label_output_file_path=Путь к выходному файлу
label_convert_to_px=Конвертировать в пиксели (вместо rem)
-label_scale=Масштабирование
+label_scale=Масштаб
label_embed_raster=Встроить растровые изображения
label_embed_vector=Встроить векторные изображения
label_inline_styles=Применить стили внутри html элементов
label_button_choose=Выбрать
label_max_body_width=Максимальная ширина
-label_min_letter_spacing=Отбросить межсимвольные расстояния меньше
+label_min_letter_spacing=Фильтр утяжки символов
label_ingnore_empty_pars=Не конвертировать пустые параграфы
label_greenstone_split=Встроить комментарии для содержаний в Greenstone
label_break_style=Стиль разрывов страниц
@@ -22,12 +22,12 @@ label_split_whole_pages_only=Разрывы только по границам
label_use_mathjax=Встроить библиотеку MathJax для формул
label_fileter_hard_line_breaks=Не конвертировать жесткие разрывы строк
label_metadata_path=Путь к метаданным
-label_type=Тип документа
-label_split_by_heading=Разделить на файлы по заголовкам до уровня (включительно)
+label_type=Вид
+label_split_by_heading=Разделять по заголовкам
label_html5=html5
error_cant_write=Ошибка. Не удалось сохранить файл в целевую директорию
message_not_implemented=Данная функциональность еще не реализована
-label_image_resolution=Уменьшить разрешение изображений до (PPI)
+label_image_resolution=Разрешение изображений (PPI)
enter_new_config_name=Введите имя новой вкладки
config_name_is_already_in_use=Такое имя вкладки уже используется
default_config_cant_be_saved=Настройки вкладок по умолчанию нельзя сохранять