From ea5d8679c9698a2f23cd0d20a7abace77b10a3d3 Mon Sep 17 00:00:00 2001 From: henrikjust Date: Thu, 9 Dec 2010 19:30:33 +0000 Subject: [PATCH] W2L custom config ui refactoring & enhancements git-svn-id: svn://svn.code.sf.net/p/writer2latex/code/trunk@79 f0f2a975-2e09-46c8-9428-3b39399b9f3c --- source/distro/changelog.txt | 6 + source/distro/doc/user-manual.odt | Bin 48860 -> 48904 bytes .../filter/ConfigurationDialogBase.java | 50 ++-- .../helper/FieldMasterNameProvider.java | 93 ++++++ .../writer2latex/ConfigurationDialog.java | 271 ++++++++++-------- .../writer2xhtml/ConfigurationDialog.java | 21 +- .../oxt/writer2latex/W2LDialogs2/Figures.xdl | 5 +- .../oxt/writer2latex/W2LDialogs2/Tables.xdl | 25 +- .../Configuration/Figures.xhp | 5 +- .../Configuration/Tables.xhp | 7 +- 10 files changed, 322 insertions(+), 161 deletions(-) create mode 100644 source/java/org/openoffice/da/comp/w2lcommon/helper/FieldMasterNameProvider.java diff --git a/source/distro/changelog.txt b/source/distro/changelog.txt index 19058f7..7aa2880 100644 --- a/source/distro/changelog.txt +++ b/source/distro/changelog.txt @@ -2,6 +2,12 @@ Changelog for Writer2LaTeX version 1.0 -> 1.2 ---------- version 1.1.9 ---------- +[all] Custom config ui: Style controls are now disabled if there are no definitions for the current style famlily + +[w2l] Custom config ui: The table and figure sequence name can now be selected from existing field masters + +[w2l] Custom config ui: The four special styles for tables are now localized and can be selected from existing styles + [w2x] In EPUB export, convert_to_px=true now (despite the name) exports relative font sizes [w2l] Custom config ui is now refactored to use ConfigurationDialogBase, fixing some minor bugs diff --git a/source/distro/doc/user-manual.odt b/source/distro/doc/user-manual.odt index 641dabc7ebd20188bda34a15a6db781ac3033bc1..e20be04516c7acc7d21f852f2d969f7354740f91 100644 GIT binary patch delta 41148 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 ADgXcg diff --git a/source/java/org/openoffice/da/comp/w2lcommon/filter/ConfigurationDialogBase.java b/source/java/org/openoffice/da/comp/w2lcommon/filter/ConfigurationDialogBase.java index 9a717d5..f7ae651 100644 --- a/source/java/org/openoffice/da/comp/w2lcommon/filter/ConfigurationDialogBase.java +++ b/source/java/org/openoffice/da/comp/w2lcommon/filter/ConfigurationDialogBase.java @@ -20,7 +20,7 @@ * * All Rights Reserved. * -* Version 1.2 (2010-04-12) +* Version 1.2 (2010-12-09) * */ @@ -288,6 +288,14 @@ public abstract class ConfigurationDialogBase extends WeakBase implements XConta config.setOption(sConfigName, sConfigValues[dlg.getListBoxSelectedItem(sListBoxName)]); } + // Utilities + protected String[] sortStringSet(Set theSet) { + String[] theArray = theSet.toArray(new String[theSet.size()]); + // TODO: Get locale from OOo rather than the system + Collator collator = Collator.getInstance(); + Arrays.sort(theArray, collator); + return theArray; + } } protected abstract class CustomFileHandler extends PageHandler { @@ -506,13 +514,7 @@ public abstract class ConfigurationDialogBase extends WeakBase implements XConta private String newItem(Set suggestions) { XDialog xDialog=getDialog(getDialogLibraryName()+".NewDialog"); if (xDialog!=null) { - int nCount = suggestions.size(); - String[] sItems = new String[nCount]; - int i=0; - for (String s : suggestions) { - sItems[i++] = s; - } - sortStringArray(sItems); + String[] sItems = sortStringSet(suggestions); DialogAccess ndlg = new DialogAccess(xDialog); ndlg.setListBoxStringItemList("Name", sItems); String sResult = null; @@ -547,23 +549,6 @@ public abstract class ConfigurationDialogBase extends WeakBase implements XConta return sNewItem; } - // Utilities - protected String[] sortStringSet(Set theSet) { - String[] theArray = new String[theSet.size()]; - int i=0; - for (String s : theSet) { - theArray[i++] = s; - } - sortStringArray(theArray); - return theArray; - } - - protected void sortStringArray(String[] theArray) { - // TODO: Get locale from OOo rather than the system - Collator collator = Collator.getInstance(); - Arrays.sort(theArray, collator); - } - } protected abstract class StylesPageHandler extends UserListPageHandler { @@ -588,7 +573,7 @@ public abstract class ConfigurationDialogBase extends WeakBase implements XConta protected abstract void clearControls(DialogAccess dlg); - protected abstract void prepareControls(DialogAccess dlg); + protected abstract void prepareControls(DialogAccess dlg, boolean bHasDefinitions); // Constructor protected StylesPageHandler(int nCount) { @@ -682,8 +667,7 @@ public abstract class ConfigurationDialogBase extends WeakBase implements XConta dlg.setListBoxSelectedItem("StyleName", (short)-1); } - updateDeleteButton(dlg); - prepareControls(dlg); + updateStyleControls(dlg); styleNameChange(dlg); } } @@ -711,7 +695,7 @@ public abstract class ConfigurationDialogBase extends WeakBase implements XConta styleMap[nCurrentFamily].put(sNewName, new HashMap()); clearControls(dlg); } - updateDeleteButton(dlg); + updateStyleControls(dlg); } } @@ -722,7 +706,7 @@ public abstract class ConfigurationDialogBase extends WeakBase implements XConta styleMap[nCurrentFamily].remove(sStyleName); styleNameChange(dlg); } - updateDeleteButton(dlg); + updateStyleControls(dlg); } } @@ -776,8 +760,10 @@ public abstract class ConfigurationDialogBase extends WeakBase implements XConta styleFamilyChange(dlg); } - private void updateDeleteButton(DialogAccess dlg) { - dlg.setControlEnabled("DeleteStyleButton", dlg.getListBoxStringItemList("StyleName").length>0); + private void updateStyleControls(DialogAccess dlg) { + boolean bHasMappings = dlg.getListBoxStringItemList("StyleName").length>0; + dlg.setControlEnabled("DeleteStyleButton", bHasMappings); + prepareControls(dlg,bHasMappings); } private void copyStyles(ComplexOption source, ComplexOption target, Map nameTranslation) { diff --git a/source/java/org/openoffice/da/comp/w2lcommon/helper/FieldMasterNameProvider.java b/source/java/org/openoffice/da/comp/w2lcommon/helper/FieldMasterNameProvider.java new file mode 100644 index 0000000..17274b0 --- /dev/null +++ b/source/java/org/openoffice/da/comp/w2lcommon/helper/FieldMasterNameProvider.java @@ -0,0 +1,93 @@ +/************************************************************************ + * + * FiledMasterNameProvider.java + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * Copyright: 2002-2010 by Henrik Just + * + * All Rights Reserved. + * + * Version 1.2 (2010-12-09) + * + */ + +package org.openoffice.da.comp.w2lcommon.helper; + +import java.util.HashSet; +import java.util.Set; + +import com.sun.star.container.XNameAccess; +import com.sun.star.frame.XController; +import com.sun.star.frame.XDesktop; +import com.sun.star.frame.XModel; +import com.sun.star.text.XTextFieldsSupplier; +import com.sun.star.uno.UnoRuntime; +import com.sun.star.uno.XComponentContext; + +/** This class provides access to the names of all field masters in the current document + */ +public class FieldMasterNameProvider { + private String[] fieldMasterNames; + + /** Construct a new FieldMasterNameProvider + * + * @param xContext the component context to get the desktop from + */ + public FieldMasterNameProvider(XComponentContext xContext) { + fieldMasterNames = new String[0]; + + // TODO: This code should be shared (identical with StyleNameProvider...) + // Get the model for the current frame + XModel xModel = null; + try { + Object desktop = xContext.getServiceManager().createInstanceWithContext("com.sun.star.frame.Desktop", xContext); + XDesktop xDesktop = (XDesktop)UnoRuntime.queryInterface(XDesktop.class, desktop); + XController xController = xDesktop.getCurrentFrame().getController(); + if (xController!=null) { + xModel = xController.getModel(); + } + } + catch (Exception e) { + // do nothing + } + + // Get the field masters from the model + if (xModel!=null) { + XTextFieldsSupplier xSupplier = (XTextFieldsSupplier) UnoRuntime.queryInterface( + XTextFieldsSupplier.class, xModel); + if (xSupplier!=null) { + XNameAccess xFieldMasters = xSupplier.getTextFieldMasters(); + fieldMasterNames = xFieldMasters.getElementNames(); + } + } + } + + /** Get the names of all field masters relative to a given prefix + * + * @param sPrefix the prefix to look for, e.g. "com.sun.star.text.fieldmaster.SetExpression." + * @return a read only Set containing all known names with the given prefix, stripped for the prefix + */ + public Set getFieldMasterNames(String sPrefix) { + Set names = new HashSet(); + for (String sName : fieldMasterNames) { + if (sName.startsWith(sPrefix)) { + names.add(sName.substring(sPrefix.length())); + } + } + return names; + } + +} diff --git a/source/java/org/openoffice/da/comp/writer2latex/ConfigurationDialog.java b/source/java/org/openoffice/da/comp/writer2latex/ConfigurationDialog.java index 0c9666d..d400d2a 100644 --- a/source/java/org/openoffice/da/comp/writer2latex/ConfigurationDialog.java +++ b/source/java/org/openoffice/da/comp/writer2latex/ConfigurationDialog.java @@ -20,7 +20,7 @@ * * All Rights Reserved. * - * Version 1.2 (2010-12-08) + * Version 1.2 (2010-12-09) * */ @@ -33,6 +33,8 @@ import writer2latex.api.ComplexOption; import org.openoffice.da.comp.w2lcommon.filter.ConfigurationDialogBase; import org.openoffice.da.comp.w2lcommon.helper.DialogAccess; +import org.openoffice.da.comp.w2lcommon.helper.FieldMasterNameProvider; +import org.openoffice.da.comp.w2lcommon.helper.StyleNameProvider; import com.sun.star.lang.XServiceInfo; import com.sun.star.uno.XComponentContext; @@ -82,8 +84,8 @@ public final class ConfigurationDialog extends ConfigurationDialogBase implement pageHandlers.put("Characters", new CharactersHandler()); pageHandlers.put("Fonts", new FontsHandler()); pageHandlers.put("Pages", new PagesHandler()); - //pageHandlers.put("Tables", new Handler()); - //pageHandlers.put("Figures", new Handler()); + pageHandlers.put("Tables", new TablesHandler()); + pageHandlers.put("Figures", new FiguresHandler()); //pageHandlers.put("TextAndMath", new Handler()); } @@ -97,7 +99,7 @@ public final class ConfigurationDialog extends ConfigurationDialogBase implement "UseSoulChange", "FormattingAttributeChange", "CustomAttributeChange", // Characters "ExportGeometryChange", "ExportHeaderAndFooterChange", // Pages "NoTablesChange", "UseSupertabularChange", "UseLongtableChange", // Tables - "NoImagesChange", // Images + "NoImagesChange", // Figures "MathSymbolNameChange", "NewSymbolClick", "DeleteSymbolClick", "TextInputChange", "NewTextClick", "DeleteTextClick" // Text and Math }; @@ -455,13 +457,18 @@ public final class ConfigurationDialog extends ConfigurationDialogBase implement dlg.setCheckBoxStateAsBoolean("LineBreak", false); } - protected void prepareControls(DialogAccess dlg) { - dlg.setControlEnabled("NextLabel", nCurrentFamily==2); - dlg.setControlEnabled("Next", nCurrentFamily==2); - dlg.setControlEnabled("AddNextButton", nCurrentFamily==2); - dlg.setControlEnabled("RemoveNextButton", nCurrentFamily==2); - dlg.setControlEnabled("Verbatim", nCurrentFamily<2); - dlg.setControlEnabled("LineBreak", nCurrentFamily==1); + protected void prepareControls(DialogAccess dlg, boolean bHasMappings) { + dlg.setControlEnabled("BeforeLabel", bHasMappings); + dlg.setControlEnabled("Before", bHasMappings); + dlg.setControlEnabled("AfterLabel", bHasMappings); + dlg.setControlEnabled("After", bHasMappings); + dlg.setControlEnabled("NextLabel", bHasMappings && nCurrentFamily==2); + dlg.setControlEnabled("Next", bHasMappings && nCurrentFamily==2); + dlg.setControlEnabled("AddNextButton", bHasMappings && nCurrentFamily==2); + //dlg.setControlEnabled("RemoveNextButton", bHasMappings && nCurrentFamily==2); + dlg.setControlEnabled("Verbatim", bHasMappings && nCurrentFamily<2); + dlg.setControlEnabled("LineBreak", bHasMappings && nCurrentFamily==1); + updateRemoveNextButton(dlg); } // Define own event handlers @@ -698,6 +705,147 @@ public final class ConfigurationDialog extends ConfigurationDialogBase implement } } + // The page "Tables" + // This page handles the options table_content, use_tabulary, use_colortbl, use_multirow, use_supertabular, use_longtable, + // table_first_head_style, table_head_style, table_foot_style, table_last_foot_style + // Limitation: Cannot handle the values "error" and "warning" for table_content + private class TablesHandler extends PageHandler { + + protected TablesHandler() { + } + + @Override protected void setControls(DialogAccess dlg) { + // Fill the table style combo boxes with style names + StyleNameProvider styleNameProvider = new StyleNameProvider(xContext); + Map internalNames = styleNameProvider.getInternalNames("ParagraphStyles"); + if (internalNames!=null) { + String[] styleNames = sortStringSet(internalNames.keySet()); + dlg.setListBoxStringItemList("TableFirstHeadStyle",styleNames); + dlg.setListBoxStringItemList("TableHeadStyle",styleNames); + dlg.setListBoxStringItemList("TableFootStyle",styleNames); + dlg.setListBoxStringItemList("TableLastFootStyle",styleNames); + } + + // Fill the table sequence combo box with sequence names + FieldMasterNameProvider fieldMasterNameProvider = new FieldMasterNameProvider(xContext); + dlg.setListBoxStringItemList("TableSequenceName", + sortStringSet(fieldMasterNameProvider.getFieldMasterNames("com.sun.star.text.fieldmaster.SetExpression."))); + + dlg.setCheckBoxStateAsBoolean("NoTables", !"accept".equals(config.getOption("table_content"))); + checkBoxFromConfig(dlg,"UseColortbl","use_colortbl"); + checkBoxFromConfig(dlg,"UseTabulary","use_tabulary"); + //checkBoxFromConfig(dlg,"UseMultirow","use_multirow"); + checkBoxFromConfig(dlg,"UseSupertabular","use_supertabular"); + checkBoxFromConfig(dlg,"UseLongtable","use_longtable"); + textFieldFromConfig(dlg,"TableFirstHeadStyle","table_first_head_style"); + textFieldFromConfig(dlg,"TableHeadStyle","table_head_style"); + textFieldFromConfig(dlg,"TableFootStyle","table_foot_style"); + textFieldFromConfig(dlg,"TableLastFootStyle","table_last_foot_style"); + textFieldFromConfig(dlg,"TableSequenceName","table_sequence_name"); + + checkBoxChange(dlg); + } + + @Override protected void getControls(DialogAccess dlg) { + config.setOption("table_content", dlg.getCheckBoxStateAsBoolean("NoTables") ? "ignore" : "accept"); + checkBoxToConfig(dlg,"UseColortbl","use_colortbl"); + checkBoxToConfig(dlg,"UseTabulary","use_tabulary"); + //checkBoxToConfig(dlg,"UseMultirow","use_multirow"); + checkBoxToConfig(dlg,"UseSupertabular","use_supertabular"); + checkBoxToConfig(dlg,"UseLongtable","use_longtable"); + textFieldToConfig(dlg,"TableFirstHeadStyle","table_first_head_style"); + textFieldToConfig(dlg,"TableHeadStyle","table_head_style"); + textFieldToConfig(dlg,"TableFootStyle","table_foot_style"); + textFieldToConfig(dlg,"TableLastFootStyle","table_last_foot_style"); + textFieldToConfig(dlg,"TableSequenceName","table_sequence_name"); + } + + @Override protected boolean handleEvent(DialogAccess dlg, String sMethod) { + if (sMethod.equals("NoTablesChange")) { + checkBoxChange(dlg); + return true; + } + else if (sMethod.equals("UseSupertabularChange")) { + checkBoxChange(dlg); + return true; + } + else if (sMethod.equals("UseLongtableChange")) { + checkBoxChange(dlg); + return true; + } + return false; + } + + private void checkBoxChange(DialogAccess dlg) { + boolean bNoTables = dlg.getCheckBoxStateAsBoolean("NoTables"); + boolean bSupertabular = dlg.getCheckBoxStateAsBoolean("UseSupertabular"); + boolean bLongtable = dlg.getCheckBoxStateAsBoolean("UseLongtable"); + dlg.setControlEnabled("UseColortbl", !bNoTables); + dlg.setControlEnabled("UseTabulary", !bNoTables); + dlg.setControlEnabled("UseMultirow", false); + dlg.setControlEnabled("UseSupertabular", !bNoTables); + dlg.setControlEnabled("UseLongtable", !bNoTables && !bSupertabular); + dlg.setControlEnabled("TableFirstHeadLabel", !bNoTables && (bSupertabular || bLongtable)); + dlg.setControlEnabled("TableFirstHeadStyle", !bNoTables && (bSupertabular || bLongtable)); + dlg.setControlEnabled("TableHeadLabel", !bNoTables && (bSupertabular || bLongtable)); + dlg.setControlEnabled("TableHeadStyle", !bNoTables && (bSupertabular || bLongtable)); + dlg.setControlEnabled("TableFootLabel", !bNoTables && (bSupertabular || bLongtable)); + dlg.setControlEnabled("TableFootStyle", !bNoTables && (bSupertabular || bLongtable)); + dlg.setControlEnabled("TableLastFootLabel", !bNoTables && (bSupertabular || bLongtable)); + dlg.setControlEnabled("TableLastFootStyle", !bNoTables && (bSupertabular || bLongtable)); + dlg.setControlEnabled("TableSequenceLabel", !bNoTables); + dlg.setControlEnabled("TableSequenceName", !bNoTables); + } + + } + + // The page "Figures" + // This page handles the options use_caption, align_frames, figure_sequence_name, image_content, + // remove_graphics_extension and image_options + // Limitation: Cannot handle the values "error" and "warning" for image_content + private class FiguresHandler extends PageHandler { + @Override protected void setControls(DialogAccess dlg) { + // Fill the figure sequence combo box with sequence names + FieldMasterNameProvider fieldMasterNameProvider = new FieldMasterNameProvider(xContext); + dlg.setListBoxStringItemList("FigureSequenceName", + sortStringSet(fieldMasterNameProvider.getFieldMasterNames("com.sun.star.text.fieldmaster.SetExpression."))); + + checkBoxFromConfig(dlg,"UseCaption","use_caption"); + checkBoxFromConfig(dlg,"AlignFrames","align_frames"); + textFieldFromConfig(dlg,"FigureSequenceName","figure_sequence_name"); + dlg.setCheckBoxStateAsBoolean("NoImages", !"accept".equals(config.getOption("image_content"))); + checkBoxFromConfig(dlg,"RemoveGraphicsExtension","remove_graphics_extension"); + textFieldFromConfig(dlg,"ImageOptions","image_options"); + + noImagesChange(dlg); + } + + @Override protected void getControls(DialogAccess dlg) { + checkBoxToConfig(dlg,"UseCaption","use_caption"); + checkBoxToConfig(dlg,"AlignFrames","align_frames"); + textFieldToConfig(dlg,"FigureSequenceName","figure_sequence_name"); + config.setOption("image_content", dlg.getCheckBoxStateAsBoolean("NoImages") ? "ignore" : "accept"); + checkBoxToConfig(dlg,"RemoveGraphicsExtension","remove_graphics_extension"); + textFieldToConfig(dlg,"ImageOptions","image_options"); + } + + @Override protected boolean handleEvent(DialogAccess dlg, String sMethod) { + if (sMethod.equals("NoImagesChange")) { + noImagesChange(dlg); + return true; + } + return false; + } + + private void noImagesChange(DialogAccess dlg) { + boolean bNoImages = dlg.getCheckBoxStateAsBoolean("NoImages"); + dlg.setControlEnabled("RemoveGraphicsExtension", !bNoImages); + dlg.setControlEnabled("ImageOptionsLabel", !bNoImages); + dlg.setControlEnabled("ImageOptions", !bNoImages); + } + + } + /* @@ -916,12 +1064,6 @@ public final class ConfigurationDialog extends ConfigurationDialogBase implement // Set controls based on the config private void setControls() { - else if ("Styles".equals(sTitle)) { - loadStyles(); - } - else if ("Tables".equals(sTitle)) { - loadTables(); - } else if ("Figures".equals(sTitle)) { loadFigures(); } @@ -932,12 +1074,6 @@ public final class ConfigurationDialog extends ConfigurationDialogBase implement // Change the config based on the controls private void getControls() { - else if ("Styles".equals(sTitle)) { - saveStyles(); - } - else if ("Tables".equals(sTitle)) { - saveTables(); - } else if ("Figures".equals(sTitle)) { saveFigures(); } @@ -946,95 +1082,6 @@ public final class ConfigurationDialog extends ConfigurationDialogBase implement } } - - - - // The page "Tables" - // This page handles the options table_content, use_tabulary, use_colortbl, use_multirow, use_supertabular, use_longtable, - // table_first_head_style, table_head_style, table_foot_style, table_last_foot_style - // Limitation: Cannot handle the values "error" and "warning" for table_content - - private void loadTables() { - dlg.setCheckBoxStateAsBoolean("NoTables", !"accept".equals(config.getOption("table_content"))); - dlg.setCheckBoxStateAsBoolean("UseColortbl","true".equals(config.getOption("use_colortbl"))); - dlg.setCheckBoxStateAsBoolean("UseTabulary", "true".equals(config.getOption("use_tabulary"))); - //dlg.setCheckBoxStateAsBoolean("UseMultirow", "true".equals(config.getOption("use_multirow"))); - dlg.setCheckBoxStateAsBoolean("UseSupertabular","true".equals(config.getOption("use_supertabular"))); - dlg.setCheckBoxStateAsBoolean("UseLongtable", "true".equals(config.getOption("use_longtable"))); - dlg.setTextFieldText("TableFirstHeadStyle", config.getOption("table_first_head_style")); - dlg.setTextFieldText("TableHeadStyle", config.getOption("table_head_style")); - dlg.setTextFieldText("TableFootStyle", config.getOption("table_foot_style")); - dlg.setTextFieldText("TableLastFootStyle", config.getOption("table_last_foot_style")); - dlg.setTextFieldText("TableSequenceName", config.getOption("table_sequence_name")); - updateTablesControls(); - } - - private void saveTables() { - config.setOption("table_content", dlg.getCheckBoxStateAsBoolean("NoTables") ? "ignore" : "accept"); - config.setOption("use_colortbl", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseColortbl"))); - config.setOption("use_tabulary", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseTabulary"))); - //config.setOption("use_multirow", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseMultirow"))); - config.setOption("use_supertabular", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseSupertabular"))); - config.setOption("use_longtable", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseLongtable"))); - config.setOption("table_first_head_style", dlg.getTextFieldText("TableFirstHeadStyle")); - config.setOption("table_head_style", dlg.getTextFieldText("TableHeadStyle")); - config.setOption("table_foot_style", dlg.getTextFieldText("TableFootStyle")); - config.setOption("table_last_foot_style", dlg.getTextFieldText("TableLastFootStyle")); - config.setOption("table_sequence_name", dlg.getTextFieldText("TableSequenceName")); - } - - private void updateTablesControls() { - boolean bNoTables = dlg.getCheckBoxStateAsBoolean("NoTables"); - boolean bSupertabular = dlg.getCheckBoxStateAsBoolean("UseSupertabular"); - boolean bLongtable = dlg.getCheckBoxStateAsBoolean("UseLongtable"); - dlg.setControlEnabled("UseColortbl", !bNoTables); - dlg.setControlEnabled("UseTabulary", !bNoTables); - dlg.setControlEnabled("UseMultirow", false); - dlg.setControlEnabled("UseSupertabular", !bNoTables); - dlg.setControlEnabled("UseLongtable", !bNoTables && !bSupertabular); - dlg.setControlEnabled("TableFirstHeadLabel", !bNoTables && (bSupertabular || bLongtable)); - dlg.setControlEnabled("TableFirstHeadStyle", !bNoTables && (bSupertabular || bLongtable)); - dlg.setControlEnabled("TableHeadLabel", !bNoTables && (bSupertabular || bLongtable)); - dlg.setControlEnabled("TableHeadStyle", !bNoTables && (bSupertabular || bLongtable)); - dlg.setControlEnabled("TableFootLabel", !bNoTables && (bSupertabular || bLongtable)); - dlg.setControlEnabled("TableFootStyle", !bNoTables && (bSupertabular || bLongtable)); - dlg.setControlEnabled("TableLastFootLabel", !bNoTables && (bSupertabular || bLongtable)); - dlg.setControlEnabled("TableLastFootStyle", !bNoTables && (bSupertabular || bLongtable)); - dlg.setControlEnabled("TableSequenceLabel", !bNoTables); - dlg.setControlEnabled("TableSequenceName", !bNoTables); - } - - // The page "Figures" - // This page handles the options use_caption, align_frames, figure_sequence_name, image_content, - // remove_graphics_extension and image_options - // Limitation: Cannot handle the values "error" and "warning" for image_content - - private void loadFigures() { - dlg.setCheckBoxStateAsBoolean("UseCaption", "true".equals(config.getOption("use_caption"))); - dlg.setCheckBoxStateAsBoolean("AlignFrames", "true".equals(config.getOption("align_frames"))); - dlg.setTextFieldText("FigureSequenceName", config.getOption("figure_sequence_name")); - dlg.setCheckBoxStateAsBoolean("NoImages", !"accept".equals(config.getOption("image_content"))); - dlg.setCheckBoxStateAsBoolean("RemoveGraphicsExtension", "true".equals(config.getOption("remove_graphics_extension"))); - dlg.setTextFieldText("ImageOptions", config.getOption("image_options")); - updateFiguresControls(); - } - - private void saveFigures() { - config.setOption("use_caption", Boolean.toString(dlg.getCheckBoxStateAsBoolean("UseCaption"))); - config.setOption("align_frames", Boolean.toString(dlg.getCheckBoxStateAsBoolean("AlignFrames"))); - config.setOption("figure_sequence_name", dlg.getTextFieldText("FigureSequenceName")); - config.setOption("image_content", dlg.getCheckBoxStateAsBoolean("NoImages") ? "ignore" : "accept"); - config.setOption("remove_graphics_extension", Boolean.toString(dlg.getCheckBoxStateAsBoolean("RemoveGraphicsExtension"))); - config.setOption("image_options", dlg.getTextFieldText("ImageOptions")); - } - - private void updateFiguresControls() { - boolean bNoImages = dlg.getCheckBoxStateAsBoolean("NoImages"); - dlg.setControlEnabled("RemoveGraphicsExtension", !bNoImages); - dlg.setControlEnabled("ImageOptionsLabel", !bNoImages); - dlg.setControlEnabled("ImageOptions", !bNoImages); - } - // The page "TextAndMath" // This page handles the options use_ooomath and tabstop as well as the // text replacements and math symbol definitions diff --git a/source/java/org/openoffice/da/comp/writer2xhtml/ConfigurationDialog.java b/source/java/org/openoffice/da/comp/writer2xhtml/ConfigurationDialog.java index 03e9b5c..b460916 100644 --- a/source/java/org/openoffice/da/comp/writer2xhtml/ConfigurationDialog.java +++ b/source/java/org/openoffice/da/comp/writer2xhtml/ConfigurationDialog.java @@ -20,7 +20,7 @@ * * All Rights Reserved. * -* Version 1.2 (2010-06-20) +* Version 1.2 (2010-12-09) * */ @@ -114,7 +114,7 @@ public class ConfigurationDialog extends ConfigurationDialogBase implements XSer checkBoxFromConfig(dlg, "Multilingual", "multilingual"); checkBoxFromConfig(dlg, "PrettyPrint", "pretty_print"); - updateControls(dlg); + encodingChange(dlg); } @Override protected void getControls(DialogAccess dlg) { @@ -131,13 +131,13 @@ public class ConfigurationDialog extends ConfigurationDialogBase implements XSer @Override protected boolean handleEvent(DialogAccess dlg, String sMethod) { if (sMethod.equals("EncodingChange")) { - updateControls(dlg); + encodingChange(dlg); return true; } return false; } - private void updateControls(DialogAccess dlg) { + private void encodingChange(DialogAccess dlg) { int nEncoding = dlg.getListBoxSelectedItem("Encoding"); dlg.setControlEnabled("AddBOM", nEncoding==0); // Only for UTF-8 dlg.setControlEnabled("HexadecimalEntitiesLabel", nEncoding>1); // Not for UNICODE @@ -304,12 +304,17 @@ public class ConfigurationDialog extends ConfigurationDialogBase implements XSer dlg.setTextFieldText("BlockCss", ""); } - protected void prepareControls(DialogAccess dlg) { + protected void prepareControls(DialogAccess dlg, boolean bHasMappings) { dlg.setListBoxStringItemList("Element", sElements[nCurrentFamily]); dlg.setListBoxStringItemList("BlockElement", sBlockElements[nCurrentFamily]); - dlg.setControlEnabled("Element", nCurrentFamily<=2); - dlg.setControlEnabled("BlockElement", nCurrentFamily==1 || nCurrentFamily==2); - dlg.setControlEnabled("BlockCss", nCurrentFamily==1 || nCurrentFamily==2); + dlg.setControlEnabled("ElementLabel", bHasMappings && nCurrentFamily<=2); + dlg.setControlEnabled("Element", bHasMappings && nCurrentFamily<=2); + dlg.setControlEnabled("CssLabel", bHasMappings); + dlg.setControlEnabled("Css", bHasMappings); + dlg.setControlEnabled("BlockElementLabel", bHasMappings && (nCurrentFamily==1 || nCurrentFamily==2)); + dlg.setControlEnabled("BlockElement", bHasMappings && (nCurrentFamily==1 || nCurrentFamily==2)); + dlg.setControlEnabled("BlockCssLabel", bHasMappings && (nCurrentFamily==1 || nCurrentFamily==2)); + dlg.setControlEnabled("BlockCss", bHasMappings && (nCurrentFamily==1 || nCurrentFamily==2)); } } diff --git a/source/oxt/writer2latex/W2LDialogs2/Figures.xdl b/source/oxt/writer2latex/W2LDialogs2/Figures.xdl index c3e9bb6..418d05e 100644 --- a/source/oxt/writer2latex/W2LDialogs2/Figures.xdl +++ b/source/oxt/writer2latex/W2LDialogs2/Figures.xdl @@ -6,7 +6,10 @@ - + + + + diff --git a/source/oxt/writer2latex/W2LDialogs2/Tables.xdl b/source/oxt/writer2latex/W2LDialogs2/Tables.xdl index 0e537cd..5adb2b5 100644 --- a/source/oxt/writer2latex/W2LDialogs2/Tables.xdl +++ b/source/oxt/writer2latex/W2LDialogs2/Tables.xdl @@ -17,12 +17,27 @@ - - - - + + + + + + + + + + + + + + + + - + + + + \ No newline at end of file diff --git a/source/oxt/writer2latex/help/en/org.openoffice.da.writer2latex.oxt/Configuration/Figures.xhp b/source/oxt/writer2latex/help/en/org.openoffice.da.writer2latex.oxt/Configuration/Figures.xhp index 299dd4c..bd54ff5 100644 --- a/source/oxt/writer2latex/help/en/org.openoffice.da.writer2latex.oxt/Configuration/Figures.xhp +++ b/source/oxt/writer2latex/help/en/org.openoffice.da.writer2latex.oxt/Configuration/Figures.xhp @@ -33,7 +33,10 @@ This option can be set to a sequence name in the source document. OpenDocument has a very weak sense of figure captions: A figure caption is a paragraph containing a sequence number. If you use %PRODUCTNAME's defaults, Writer2LaTeX can guess which sequence name to use. - If it fails, you can type the name here. Normally it should be left empty. + If it fails, you can type the name here, or select the name from the list. (Note that %PRODUCTNAME Writer has four + basic sequence names which always will be displayed in English here. These are Drawing, Illustration, Table, Text.) + Normally this field should be left empty. + Graphics diff --git a/source/oxt/writer2latex/help/en/org.openoffice.da.writer2latex.oxt/Configuration/Tables.xhp b/source/oxt/writer2latex/help/en/org.openoffice.da.writer2latex.oxt/Configuration/Tables.xhp index c507d61..25d6c4c 100644 --- a/source/oxt/writer2latex/help/en/org.openoffice.da.writer2latex.oxt/Configuration/Tables.xhp +++ b/source/oxt/writer2latex/help/en/org.openoffice.da.writer2latex.oxt/Configuration/Tables.xhp @@ -43,7 +43,8 @@ Style for first head This option is used to produce advanced tables, that are not supported in - %PRODUCTNAME Writer. Enter the name of a paragraph style. If the first paragraph of the first cell in a row is formatted + %PRODUCTNAME Writer. Enter the name of a paragraph style, or select a style in the list. + If the first paragraph of the first cell in a row is formatted with this paragraph style, the row in question will be used for the first head in a multipage table. @@ -66,6 +67,8 @@ This option can be set to a sequence name in the source document. OpenDocument has a very weak sense of table captions: A table caption is a paragraph containing a sequence number. If you use %PRODUCTNAME's defaults, Writer2LaTeX can guess which sequence name to use. - If it fails, you can type the name here. Normally it should be left empty. + If it fails, you can type the name here, or select the name from the list. (Note that %PRODUCTNAME Writer has four + basic sequence names which always will be displayed in English here. These are Drawing, Illustration, Table, Text.) + Normally this field should be left empty. \ No newline at end of file