From 0e2d725c17263145699b092c182f8b2a8ec59ffc Mon Sep 17 00:00:00 2001 From: henrikjust Date: Fri, 1 May 2009 22:12:12 +0000 Subject: [PATCH] Various work on w2l 1.2 git-svn-id: svn://svn.code.sf.net/p/writer2latex/code/trunk@20 f0f2a975-2e09-46c8-9428-3b39399b9f3c --- source/distro/doc/w4l-user-manual.odt | Bin 16835 -> 44620 bytes .../w2lcommon/filter/OptionsDialogBase.java | 57 ++--- .../da/comp/w2lcommon/helper/DialogBase.java | 69 +----- .../comp/w2lcommon/helper/RegistryHelper.java | 86 +++++++ .../w2lcommon/helper/XPropertySetHelper.java | 100 ++++++++ .../writer4latex/ConfigurationDialog.java | 8 +- .../da/comp/writer4latex/ExternalApps.java | 4 +- .../da/comp/writer4latex/LaTeXImporter.java | 118 +++++++++ .../da/comp/writer4latex/Writer4LaTeX.java | 233 +++++++++++++++++- .../writer2latex/api/ConverterFactory.java | 2 +- source/oxt/writer4latex/Addons.xcu | 4 +- source/oxt/writer4latex/Options.xcs | 2 +- source/oxt/writer4latex/Options.xcu | 6 +- .../writer4latex/W4LDialogs/Configuration.xdl | 2 +- 14 files changed, 574 insertions(+), 117 deletions(-) create mode 100644 source/java/org/openoffice/da/comp/w2lcommon/helper/RegistryHelper.java create mode 100644 source/java/org/openoffice/da/comp/w2lcommon/helper/XPropertySetHelper.java create mode 100644 source/java/org/openoffice/da/comp/writer4latex/LaTeXImporter.java diff --git a/source/distro/doc/w4l-user-manual.odt b/source/distro/doc/w4l-user-manual.odt index f016fb2026e9cceeedfb4e2c8c2e8eace99eb58b..19f082d26b3d53bde9bc3dc6b62f67a7cbc5d957 100644 GIT binary patch literal 44620 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, @@ -67,6 +73,7 @@ public final class Writer4LaTeX extends WeakBase // Global data private TeXify texify = null; + private LaTeXImporter latexImporter = null; private PropertyValue[] mediaProps = null; private String sBasePath = null; private String sBaseFileName = null; @@ -166,9 +173,8 @@ public final class Writer4LaTeX extends WeakBase } else if ( aURL.Path.compareTo("ProcessDirectly") == 0 ) { if (updateLocation()) { - if (mediaProps!=null || updateMediaProperties()) { - process(); - } + updateMediaPropertiesSilent(); + process(); } else { warnNotSaved(); @@ -190,8 +196,7 @@ public final class Writer4LaTeX extends WeakBase return; } else if ( aURL.Path.compareTo("ImportLaTeX") == 0 ) { - org.openoffice.da.comp.w2lcommon.helper.MessageBox msgBox = new org.openoffice.da.comp.w2lcommon.helper.MessageBox(m_xContext); - msgBox.showMessage("Writer4LaTeX", "This feature has not been implemented yet"); + importLaTeX(); return; } } @@ -289,10 +294,61 @@ public final class Writer4LaTeX extends WeakBase } } + + private void importLaTeX() { + // Display the file dialog + String sURL = browseForLaTeXFile(); + if (sURL!=null) { + if (latexImporter==null) { + latexImporter = new LaTeXImporter(m_xContext); + } + latexImporter.importLaTeX(sURL); + } + } // Some utility methods + + private String browseForLaTeXFile() { + String sPath = null; + XComponent xComponent = null; + try { + // Create FilePicker + Object filePicker = m_xContext.getServiceManager() + .createInstanceWithContext("com.sun.star.ui.dialogs.FilePicker", m_xContext); + XFilePicker xFilePicker = (XFilePicker) + UnoRuntime.queryInterface(XFilePicker.class, filePicker); + xComponent = (XComponent) + UnoRuntime.queryInterface(XComponent.class, xFilePicker); + + XFilterManager xFilterManager = (XFilterManager) UnoRuntime.queryInterface(XFilterManager.class, xFilePicker); + xFilterManager.appendFilter("LaTeX","*.tex"); + + + // Display the FilePicker + XExecutableDialog xExecutable = (XExecutableDialog) + UnoRuntime.queryInterface(XExecutableDialog.class, xFilePicker); + + // Get the path + if (xExecutable.execute() == ExecutableDialogResults.OK) { + String[] sPathList = xFilePicker.getFiles(); + if (sPathList.length > 0) { + sPath = sPathList[0]; + } + } + } + catch (com.sun.star.uno.Exception e) { + } + finally{ + // Always dispose the FilePicker component + if (xComponent!=null) { + xComponent.dispose(); + } + } + return sPath; + } + - private boolean updateMediaProperties() { + private void prepareMediaProperties() { // Create inital media properties mediaProps = new PropertyValue[2]; mediaProps[0] = new PropertyValue(); @@ -300,8 +356,12 @@ public final class Writer4LaTeX extends WeakBase mediaProps[0].Value = "org.openoffice.da.writer2latex"; mediaProps[1] = new PropertyValue(); mediaProps[1].Name = "Overwrite"; - mediaProps[1].Value = "true"; - + mediaProps[1].Value = "true"; + } + + private boolean updateMediaProperties() { + prepareMediaProperties(); + try { // Display options dialog Object dialog = m_xContext.getServiceManager() @@ -341,6 +401,161 @@ public final class Writer4LaTeX extends WeakBase return false; } } + + private String getOptionAsString(XPropertySet xProps, String sName) { + Object value = XPropertySetHelper.getPropertyValue(xProps, sName); + // Try to convert the value to a string + if (value instanceof String) return (String) value; + else if (value instanceof Boolean) return ((Boolean) value).toString(); + else if (value instanceof Integer) return ((Integer) value).toString(); + else if (value instanceof Short) return ((Short) value).toString(); + else return null; + } + + private void loadOption(XPropertySet xProps, PropertyHelper filterData, String sRegName, String sOptionName) { + String sValue = getOptionAsString(xProps,sRegName); + if (sValue!=null) { + // Set the filter data + filterData.put(sOptionName, sValue); + } + } + + // Read the configuration directly from the registry rather than using the dialog + // TODO: Should probably do some refactoring in the Options dialogs to avoid this solution + private void updateMediaPropertiesSilent() { + prepareMediaProperties(); + + RegistryHelper registry = new RegistryHelper(m_xContext); + + // Read the stored settings from the registry rather than displaying a dialog + try { + // Prepare registry view + Object view = registry.getRegistryView("/org.openoffice.da.Writer2LaTeX.Options/LaTeXOptions",true); + XPropertySet xProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,view); + + PropertyHelper filterData = new PropertyHelper(); + + // Read the configuration file + short nConfig = XPropertySetHelper.getPropertyValueAsShort(xProps, "Config"); + switch (nConfig) { + case 0: filterData.put("ConfigURL","*ultraclean.xml"); break; + case 1: filterData.put("ConfigURL","*clean.xml"); break; + case 2: filterData.put("ConfigURL","*default.xml"); break; + case 3: filterData.put("ConfigURL","*pdfprint.xml"); break; + case 4: filterData.put("ConfigURL","*pdfscreen.xml"); break; + case 5: filterData.put("ConfigURL","$(user)/writer2latex.xml"); + filterData.put("AutoCreate","true"); break; + default: + loadOption(xProps,filterData,"ConfigName","ConfigURL"); + } + + // Read the options + // General + short nBackend = XPropertySetHelper.getPropertyValueAsShort(xProps,"Backend"); + switch (nBackend) { + case 0: filterData.put("backend","generic"); break; + case 1: filterData.put("backend","pdftex"); break; + case 2: filterData.put("backend","dvips"); break; + case 3: filterData.put("backend","xetex"); break; + case 4: filterData.put("backend","unspecified"); + } + short nInputencoding = XPropertySetHelper.getPropertyValueAsShort(xProps,"Inputencoding"); + switch (nInputencoding) { + case 0: filterData.put("inputencoding", "ascii"); break; + case 1: filterData.put("inputencoding", "latin1"); break; + case 2: filterData.put("inputencoding", "latin2"); break; + case 3: filterData.put("inputencoding", "iso-8859-7"); break; + case 4: filterData.put("inputencoding", "cp1250"); break; + case 5: filterData.put("inputencoding", "cp1251"); break; + case 6: filterData.put("inputencoding", "koi8-r"); break; + case 7: filterData.put("inputencoding", "utf8"); + } + loadOption(xProps,filterData,"Multilingual","multilingual"); + loadOption(xProps,filterData,"GreekMath","greek_math"); + loadOption(xProps,filterData,"AdditionalSymbols","use_pifont"); + loadOption(xProps,filterData,"AdditionalSymbols","use_ifsym"); + loadOption(xProps,filterData,"AdditionalSymbols","use_wasysym"); + loadOption(xProps,filterData,"AdditionalSymbols","use_eurosym"); + loadOption(xProps,filterData,"AdditionalSymbols","use_tipa"); + + // Bibliography + loadOption(xProps,filterData,"UseBibtex","use_bibtex"); + loadOption(xProps,filterData,"BibtexStyle","bibtex_style"); + + // Files + boolean bWrapLines = XPropertySetHelper.getPropertyValueAsBoolean(xProps,"WrapLines"); + if (bWrapLines) { + loadOption(xProps,filterData,"WrapLinesAfter","wrap_lines_after"); + } + else { + filterData.put("wrap_lines_after", "0"); + } + loadOption(xProps,filterData,"SplitLinkedSections","split_linked_sections"); + loadOption(xProps,filterData,"SplitToplevelSections","split_toplevel_sections"); + loadOption(xProps,filterData,"SaveImagesInSubdir","save_images_in_subdir"); + + // Special content + short nNotes = XPropertySetHelper.getPropertyValueAsShort(xProps, "Notes"); + switch (nNotes) { + case 0: filterData.put("notes","ignore"); break; + case 1: filterData.put("notes","comment"); break; + case 2: filterData.put("notes","pdfannotation"); break; + case 3: filterData.put("notes","marginpar"); + } + loadOption(xProps,filterData,"Metadata","metadata"); + + // Figures and tables + loadOption(xProps,filterData,"OriginalImageSize","original_image_size"); + boolean bOptimizeSimpleTables = XPropertySetHelper.getPropertyValueAsBoolean(xProps,"OptimizeSimpleTables"); + if (bOptimizeSimpleTables) { + loadOption(xProps,filterData,"SimpleTableLimit","simple_table_limit"); + } + else { + filterData.put("simple_table_limit", "0"); + } + loadOption(xProps,filterData,"FloatTables","float_tables"); + loadOption(xProps,filterData,"FloatFigures","float_figures"); + loadOption(xProps,filterData,"FloatOptions","float_options"); + short nFloatOptions = XPropertySetHelper.getPropertyValueAsShort(xProps, "FloatOptions"); + switch (nFloatOptions) { + case 0: filterData.put("float_options", ""); break; + case 1: filterData.put("float_options", "tp"); break; + case 2: filterData.put("float_options", "bp"); break; + case 3: filterData.put("float_options", "htp"); break; + case 4: filterData.put("float_options", "hbp"); + } + + // AutoCorrect + loadOption(xProps,filterData,"IgnoreHardPageBreaks","ignore_hard_page_breaks"); + loadOption(xProps,filterData,"IgnoreHardLineBreaks","ignore_hard_line_breaks"); + loadOption(xProps,filterData,"IgnoreEmptyParagraphs","ignore_empty_paragraphs"); + loadOption(xProps,filterData,"IgnoreDoubleSpaces","ignore_empty_spaces"); + + registry.disposeRegistryView(view); + + // Write out the filter data + /*PropertyValue[] props = filterData.toArray(); + for (int i=0; icom.sun.star.text.TextDocument - Writer4LaTeX + LaTe~X _self @@ -35,7 +35,6 @@ - com.sun.star.text.TextDocument diff --git a/source/oxt/writer4latex/Options.xcs b/source/oxt/writer4latex/Options.xcs index a1a5012..4947124 100644 --- a/source/oxt/writer4latex/Options.xcs +++ b/source/oxt/writer4latex/Options.xcs @@ -18,7 +18,7 @@ - + diff --git a/source/oxt/writer4latex/Options.xcu b/source/oxt/writer4latex/Options.xcu index 8ccfcbf..b36c7a4 100644 --- a/source/oxt/writer4latex/Options.xcu +++ b/source/oxt/writer4latex/Options.xcu @@ -45,12 +45,12 @@ %s - + - oolatex + mk4ht - %s + oolatex %s diff --git a/source/oxt/writer4latex/W4LDialogs/Configuration.xdl b/source/oxt/writer4latex/W4LDialogs/Configuration.xdl index 92675de..9891929 100644 --- a/source/oxt/writer4latex/W4LDialogs/Configuration.xdl +++ b/source/oxt/writer4latex/W4LDialogs/Configuration.xdl @@ -16,7 +16,7 @@ - +