[Libreoffice-commits] core.git: wizards/com wizards/Jar_commonwizards.mk
Noel Grandin
noel at peralex.com
Mon Sep 22 05:29:49 PDT 2014
wizards/Jar_commonwizards.mk | 1
wizards/com/sun/star/wizards/common/ConfigGroup.java | 6
wizards/com/sun/star/wizards/common/ConfigNode.java | 6
wizards/com/sun/star/wizards/common/ConfigSet.java | 2
wizards/com/sun/star/wizards/common/Configuration.java | 102 -
wizards/com/sun/star/wizards/common/DebugHelper.java | 6
wizards/com/sun/star/wizards/common/Desktop.java | 201 +-
wizards/com/sun/star/wizards/common/FileAccess.java | 464 ++++
wizards/com/sun/star/wizards/common/Helper.java | 102 -
wizards/com/sun/star/wizards/common/IRenderer.java | 2
wizards/com/sun/star/wizards/common/Indexable.java | 2
wizards/com/sun/star/wizards/common/JavaTools.java | 163 +
wizards/com/sun/star/wizards/common/NamedValueCollection.java | 20
wizards/com/sun/star/wizards/common/NumberFormatter.java | 47
wizards/com/sun/star/wizards/common/NumericalHelper.java | 980 +++++++++-
wizards/com/sun/star/wizards/common/ParaStyled.java | 4
wizards/com/sun/star/wizards/common/PlaceholderTextElement.java | 14
wizards/com/sun/star/wizards/common/Properties.java | 4
wizards/com/sun/star/wizards/common/PropertyNames.java | 2
wizards/com/sun/star/wizards/common/PropertySetHelper.java | 124 +
wizards/com/sun/star/wizards/common/Resource.java | 25
wizards/com/sun/star/wizards/common/SystemDialog.java | 105 -
wizards/com/sun/star/wizards/common/TemplateElement.java | 2
wizards/com/sun/star/wizards/common/TextElement.java | 1
wizards/com/sun/star/wizards/common/UCB.java | 17
wizards/com/sun/star/wizards/common/XMLProvider.java | 2
wizards/com/sun/star/wizards/db/BlindtextCreator.java | 12
wizards/com/sun/star/wizards/db/ColumnPropertySet.java | 16
wizards/com/sun/star/wizards/db/CommandMetaData.java | 146 +
wizards/com/sun/star/wizards/db/CommandName.java | 27
wizards/com/sun/star/wizards/db/DBMetaData.java | 69
wizards/com/sun/star/wizards/db/FieldColumn.java | 18
wizards/com/sun/star/wizards/db/QueryMetaData.java | 38
wizards/com/sun/star/wizards/db/RecordParser.java | 23
wizards/com/sun/star/wizards/db/SQLQueryComposer.java | 43
wizards/com/sun/star/wizards/db/TableDescriptor.java | 71
wizards/com/sun/star/wizards/db/TypeInspector.java | 48
wizards/com/sun/star/wizards/document/Control.java | 42
wizards/com/sun/star/wizards/document/DatabaseControl.java | 14
wizards/com/sun/star/wizards/document/FormHandler.java | 147 +
wizards/com/sun/star/wizards/document/GridControl.java | 7
wizards/com/sun/star/wizards/document/OfficeDocument.java | 165 +
wizards/com/sun/star/wizards/document/Shape.java | 4
wizards/com/sun/star/wizards/document/TimeStampControl.java | 28
wizards/com/sun/star/wizards/form/CallFormWizard.java | 31
wizards/com/sun/star/wizards/form/DataEntrySetter.java | 21
wizards/com/sun/star/wizards/form/FieldLinker.java | 19
wizards/com/sun/star/wizards/form/Finalizer.java | 27
wizards/com/sun/star/wizards/form/FormConfiguration.java | 98 -
wizards/com/sun/star/wizards/form/FormControlArranger.java | 25
wizards/com/sun/star/wizards/form/FormDocument.java | 65
wizards/com/sun/star/wizards/form/FormWizard.java | 26
wizards/com/sun/star/wizards/form/StyleApplier.java | 108 -
wizards/com/sun/star/wizards/form/UIControlArranger.java | 41
wizards/com/sun/star/wizards/query/CallQueryWizard.java | 12
wizards/com/sun/star/wizards/query/Finalizer.java | 20
wizards/com/sun/star/wizards/query/QuerySummary.java | 16
wizards/com/sun/star/wizards/query/QueryWizard.java | 21
wizards/com/sun/star/wizards/report/CallReportWizard.java | 6
wizards/com/sun/star/wizards/report/DBColumn.java | 58
wizards/com/sun/star/wizards/report/Dataimport.java | 25
wizards/com/sun/star/wizards/report/GroupFieldHandler.java | 9
wizards/com/sun/star/wizards/report/IReportBuilderLayouter.java | 37
wizards/com/sun/star/wizards/report/IReportDefinitionReadAccess.java | 7
wizards/com/sun/star/wizards/report/IReportDocument.java | 106 -
wizards/com/sun/star/wizards/report/RecordTable.java | 9
wizards/com/sun/star/wizards/report/ReportFinalizer.java | 61
wizards/com/sun/star/wizards/report/ReportImplementationHelper.java | 4
wizards/com/sun/star/wizards/report/ReportLayouter.java | 57
wizards/com/sun/star/wizards/report/ReportTextDocument.java | 96
wizards/com/sun/star/wizards/report/ReportTextImplementation.java | 25
wizards/com/sun/star/wizards/report/ReportWizard.java | 30
wizards/com/sun/star/wizards/report/report.component | 2
wizards/com/sun/star/wizards/reportbuilder/ReportBuilderImplementation.java | 5
wizards/com/sun/star/wizards/reportbuilder/layout/ColumnarSingleColumn.java | 2
wizards/com/sun/star/wizards/reportbuilder/layout/ColumnarThreeColumns.java | 3
wizards/com/sun/star/wizards/reportbuilder/layout/ColumnarTwoColumns.java | 2
wizards/com/sun/star/wizards/reportbuilder/layout/DesignTemplate.java | 10
wizards/com/sun/star/wizards/reportbuilder/layout/InBlocksLabelsAbove.java | 4
wizards/com/sun/star/wizards/reportbuilder/layout/InBlocksLabelsLeft.java | 4
wizards/com/sun/star/wizards/reportbuilder/layout/ReportBuilderLayouter.java | 101 -
wizards/com/sun/star/wizards/reportbuilder/layout/SectionEmptyObject.java | 1
wizards/com/sun/star/wizards/reportbuilder/layout/SectionLabel.java | 4
wizards/com/sun/star/wizards/reportbuilder/layout/SectionObject.java | 2
wizards/com/sun/star/wizards/reportbuilder/layout/SectionTextField.java | 3
wizards/com/sun/star/wizards/reportbuilder/layout/Tabular.java | 3
wizards/com/sun/star/wizards/table/CGCategory.java | 10
wizards/com/sun/star/wizards/table/CGTable.java | 8
wizards/com/sun/star/wizards/table/CallTableWizard.java | 19
wizards/com/sun/star/wizards/table/FieldDescription.java | 2
wizards/com/sun/star/wizards/table/FieldFormatter.java | 203 +-
wizards/com/sun/star/wizards/table/Finalizer.java | 48
wizards/com/sun/star/wizards/table/PrimaryKeyHandler.java | 49
wizards/com/sun/star/wizards/table/ScenarioSelector.java | 47
wizards/com/sun/star/wizards/table/TableWizard.java | 72
wizards/com/sun/star/wizards/text/TextDocument.java | 184 +
wizards/com/sun/star/wizards/text/TextFieldHandler.java | 40
wizards/com/sun/star/wizards/text/TextSectionHandler.java | 26
wizards/com/sun/star/wizards/text/TextStyleHandler.java | 2
wizards/com/sun/star/wizards/text/TextTableHandler.java | 40
wizards/com/sun/star/wizards/text/ViewHandler.java | 3
wizards/com/sun/star/wizards/ui/AggregateComponent.java | 94
wizards/com/sun/star/wizards/ui/ButtonList.java | 111 +
wizards/com/sun/star/wizards/ui/CommandFieldSelection.java | 37
wizards/com/sun/star/wizards/ui/ControlScroller.java | 100 -
wizards/com/sun/star/wizards/ui/DBLimitedFieldSelection.java | 29
wizards/com/sun/star/wizards/ui/FieldSelection.java | 72
wizards/com/sun/star/wizards/ui/FilterComponent.java | 125 -
wizards/com/sun/star/wizards/ui/ImageList.java | 90
wizards/com/sun/star/wizards/ui/PathSelection.java | 19
wizards/com/sun/star/wizards/ui/PeerConfig.java | 83
wizards/com/sun/star/wizards/ui/SortingComponent.java | 90
wizards/com/sun/star/wizards/ui/TitlesComponent.java | 41
wizards/com/sun/star/wizards/ui/UIConsts.java | 88
wizards/com/sun/star/wizards/ui/UnoDialog.java | 209 +-
wizards/com/sun/star/wizards/ui/UnoDialog2.java | 149 +
wizards/com/sun/star/wizards/ui/WizardDialog.java | 201 +-
wizards/com/sun/star/wizards/ui/XCommandSelectionListener.java | 24
wizards/com/sun/star/wizards/ui/XCompletion.java | 7
wizards/com/sun/star/wizards/ui/XFieldSelectionListener.java | 12
wizards/com/sun/star/wizards/ui/XPathSelectionListener.java | 2
wizards/com/sun/star/wizards/ui/event/AbstractListener.java | 7
wizards/com/sun/star/wizards/ui/event/CommonListener.java | 5
wizards/com/sun/star/wizards/ui/event/DataAware.java | 92
wizards/com/sun/star/wizards/ui/event/DataAwareFields.java | 13
wizards/com/sun/star/wizards/ui/event/EventNames.java | 30
wizards/com/sun/star/wizards/ui/event/ListModelBinder.java | 5
wizards/com/sun/star/wizards/ui/event/MethodInvocation.java | 17
wizards/com/sun/star/wizards/ui/event/RadioDataAware.java | 6
wizards/com/sun/star/wizards/ui/event/SimpleDataAware.java | 34
wizards/com/sun/star/wizards/ui/event/Task.java | 77
wizards/com/sun/star/wizards/ui/event/TaskEvent.java | 5
wizards/com/sun/star/wizards/ui/event/TaskListener.java | 9
wizards/com/sun/star/wizards/ui/event/UnoDataAware.java | 108 -
134 files changed, 5798 insertions(+), 1474 deletions(-)
New commits:
commit 04f43cd6a0159da29a0df4bf8e27387156f321e5
Author: Noel Grandin <noel at peralex.com>
Date: Mon Sep 22 12:23:28 2014 +0200
84059 - form wizard : files required could not be found
I've essentially unwound most the Java changes I made te wizards module
in the last few months. I will revisit my changes at a later date and
make them more carefully :-)
Change-Id: I9221a825dc8de6edc96d6db07072aefcd1a37107
diff --git a/wizards/Jar_commonwizards.mk b/wizards/Jar_commonwizards.mk
index 3932223..a13a114 100644
--- a/wizards/Jar_commonwizards.mk
+++ b/wizards/Jar_commonwizards.mk
@@ -105,6 +105,7 @@ $(eval $(call gb_Jar_add_sourcefiles,commonwizards,\
wizards/com/sun/star/wizards/ui/UIConsts \
wizards/com/sun/star/wizards/ui/UnoDialog \
wizards/com/sun/star/wizards/ui/UnoDialog2 \
+ wizards/com/sun/star/wizards/ui/XCommandSelectionListener \
wizards/com/sun/star/wizards/ui/XFieldSelectionListener \
wizards/com/sun/star/wizards/ui/XPathSelectionListener \
wizards/com/sun/star/wizards/ui/XCompletion \
diff --git a/wizards/com/sun/star/wizards/common/ConfigGroup.java b/wizards/com/sun/star/wizards/common/ConfigGroup.java
index 238e3fb..0a71af2 100644
--- a/wizards/com/sun/star/wizards/common/ConfigGroup.java
+++ b/wizards/com/sun/star/wizards/common/ConfigGroup.java
@@ -68,7 +68,9 @@ public class ConfigGroup implements ConfigNode
* convert the primitive type value of the
* given Field object to the corresponding
* Java Object value.
+ * @param field
* @return the value of the field as a Object.
+ * @throws IllegalAccessException
*/
public Object convertValue(Field field) throws IllegalAccessException
{
@@ -78,11 +80,11 @@ public class ConfigGroup implements ConfigNode
}
if (field.getType().equals(Integer.TYPE))
{
- return Integer.valueOf(field.getInt(this));
+ return new Integer(field.getInt(this));
}
if (field.getType().equals(Short.TYPE))
{
- return Short.valueOf(field.getShort(this));
+ return new Short(field.getShort(this));
}
if (field.getType().equals(Float.TYPE))
{
diff --git a/wizards/com/sun/star/wizards/common/ConfigNode.java b/wizards/com/sun/star/wizards/common/ConfigNode.java
index 0d2abd8..4803ec1 100644
--- a/wizards/com/sun/star/wizards/common/ConfigNode.java
+++ b/wizards/com/sun/star/wizards/common/ConfigNode.java
@@ -35,9 +35,9 @@ public interface ConfigNode
* to be used in a tree like way, reading objects and subobjects and so on,
* it might be practical to be able to pass an extra parameter, for a free use.
*/
- void readConfiguration(Object configurationView, Object param);
+ public void readConfiguration(Object configurationView, Object param);
- void writeConfiguration(Object configurationView, Object param);
+ public void writeConfiguration(Object configurationView, Object param);
- void setRoot(Object root);
+ public void setRoot(Object root);
}
diff --git a/wizards/com/sun/star/wizards/common/ConfigSet.java b/wizards/com/sun/star/wizards/common/ConfigSet.java
index 75aaa51..2e97984 100644
--- a/wizards/com/sun/star/wizards/common/ConfigSet.java
+++ b/wizards/com/sun/star/wizards/common/ConfigSet.java
@@ -382,6 +382,8 @@ public class ConfigSet implements ConfigNode, XMLProvider, ListModel
* This method reindexes the given member to be
* the index number 0
* Do not forget to call commit() after calling this method.
+ * @param confView
+ * @param memberName
*/
public void reindexSet(Object confView, String memberName, String indexPropertyName) throws Exception
{
diff --git a/wizards/com/sun/star/wizards/common/Configuration.java b/wizards/com/sun/star/wizards/common/Configuration.java
index bed4b9c..2eb3827 100644
--- a/wizards/com/sun/star/wizards/common/Configuration.java
+++ b/wizards/com/sun/star/wizards/common/Configuration.java
@@ -26,6 +26,7 @@ import com.sun.star.uno.AnyConverter;
import com.sun.star.uno.Exception;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.lang.Locale;
+import com.sun.star.util.XChangesBatch;
/**
* This class gives access to the OO configuration API.
@@ -108,14 +109,30 @@ public abstract class Configuration
public static void set(int value, String name, Object parent) throws Exception
{
- set(Integer.valueOf(value), name, parent);
+ set(new Integer(value), name, parent);
}
+ public static void set(short value, String name, Object parent) throws Exception
+ {
+ set(new Short(value), name, parent);
+ }
+ public static void set(String value, String name, Object parent) throws Exception
+ {
+ set((Object) value, name, parent);
+ }
-
-
-
+ public static void set(boolean value, String name, Object parent) throws Exception
+ {
+ if (value)
+ {
+ set(Boolean.TRUE, name, parent);
+ }
+ else
+ {
+ set(Boolean.FALSE, name, parent);
+ }
+ }
public static void set(Object value, String name, Object parent) throws com.sun.star.lang.IllegalArgumentException, PropertyVetoException, UnknownPropertyException, WrappedTargetException
{
@@ -123,6 +140,10 @@ public abstract class Configuration
}
/** Creates a new instance of RegistryEntry
+ * @param name
+ * @param parent
+ * @return
+ * @throws Exception
*/
public static Object getConfigurationNode(String name, Object parent) throws Exception
{
@@ -179,7 +200,7 @@ public abstract class Configuration
}
}
- private static String getLocaleString(XMultiServiceFactory xMSF, String root, String key)
+ public static String getLocaleString(XMultiServiceFactory xMSF, String root, String key)
{
String sLocale = PropertyNames.EMPTY_STRING;
try
@@ -198,7 +219,7 @@ public abstract class Configuration
return sLocale;
}
- private static Locale getLocale(XMultiServiceFactory xMSF, String root, String key)
+ public static Locale getLocale(XMultiServiceFactory xMSF, String root, String key)
{
Locale aLocLocale = new Locale();
String sLocale = getLocaleString(xMSF, root, key);
@@ -216,18 +237,33 @@ public abstract class Configuration
return getLocale(xMSF, "org.openoffice.Setup/L10N/", "ooSetupSystemLocale");
}
+ public static Locale getUILocale(XMultiServiceFactory xMSF)
+ {
+ return getLocale(xMSF, "org.openoffice.Setup/L10N/", "ooLocale");
+ }
+ public static String getLocaleString(XMultiServiceFactory xMSF)
+ {
+ return getLocaleString(xMSF, "org.openoffice.Setup/L10N/", "ooSetupSystemLocale");
+ }
-
-
-
+ public static String getUILocaleString(XMultiServiceFactory xMSF)
+ {
+ return getLocaleString(xMSF, "org.openoffice.Setup/L10N/", "ooLocale");
+ }
/**
* This method creates a new configuration node and adds it
* to the given view. Note that if a node with the given name
* already exists it will be completely removed from
* the configuration.
+ * @param configView
+ * @param name
* @return the new created configuration node.
+ * @throws com.sun.star.lang.WrappedTargetException
+ * @throws ElementExistException
+ * @throws NoSuchElementException
+ * @throws com.sun.star.uno.Exception
*/
public static Object addConfigNode(Object configView, String name) throws com.sun.star.lang.WrappedTargetException, ElementExistException, NoSuchElementException, com.sun.star.uno.Exception
{
@@ -264,11 +300,28 @@ public abstract class Configuration
}
}
+ public static void commit(Object configView) throws WrappedTargetException
+ {
+ XChangesBatch xUpdateControl = UnoRuntime.queryInterface(XChangesBatch.class, configView);
+ xUpdateControl.commitChanges();
+ }
+ public static void updateConfiguration(XMultiServiceFactory xmsf, String path, String name, ConfigNode node, Object param) throws com.sun.star.uno.Exception, com.sun.star.container.ElementExistException, NoSuchElementException, WrappedTargetException
+ {
+ Object view = Configuration.getConfigurationRoot(xmsf, path, true);
+ addConfigNode(path, name);
+ node.writeConfiguration(view, param);
+ XChangesBatch xUpdateControl = UnoRuntime.queryInterface(XChangesBatch.class, view);
+ xUpdateControl.commitChanges();
+ }
-
-
-
+ public static void removeNode(XMultiServiceFactory xmsf, String path, String name) throws com.sun.star.uno.Exception, com.sun.star.container.ElementExistException, NoSuchElementException, WrappedTargetException
+ {
+ Object view = Configuration.getConfigurationRoot(xmsf, path, true);
+ removeNode(view, name);
+ XChangesBatch xUpdateControl = UnoRuntime.queryInterface(XChangesBatch.class, view);
+ xUpdateControl.commitChanges();
+ }
public static String[] getNodeDisplayNames(XNameAccess _xNameAccessNode)
{
@@ -334,7 +387,32 @@ public abstract class Configuration
return null;
}
+ public static XNameAccess getChildNodebyDisplayName(XNameAccess _xNameAccessNode, String _displayname)
+ {
+ return getChildNodebyDisplayName(_xNameAccessNode, _displayname, PropertyNames.PROPERTY_NAME);
+ }
+ public static XNameAccess getChildNodebyDisplayName(XNameAccess _xNameAccessNode, String _displayname, String _nodename)
+ {
+ String[] snames = null;
+ try
+ {
+ snames = _xNameAccessNode.getElementNames();
+ for (int i = 0; i < snames.length; i++)
+ {
+ String curdisplayname = (String) Helper.getUnoPropertyValue(_xNameAccessNode.getByName(snames[i]), _nodename);
+ if (curdisplayname.equals(_displayname))
+ {
+ return UnoRuntime.queryInterface(XNameAccess.class, _xNameAccessNode.getByName(snames[i]));
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace(System.err);
+ }
+ return null;
+ }
public static XNameAccess getChildNodebyDisplayName(XMultiServiceFactory _xMSF, Locale _aLocale, XNameAccess _xNameAccessNode, String _displayname, String _nodename, int _nmaxcharcount)
{
diff --git a/wizards/com/sun/star/wizards/common/DebugHelper.java b/wizards/com/sun/star/wizards/common/DebugHelper.java
index cc3bdf3..16c39fb 100644
--- a/wizards/com/sun/star/wizards/common/DebugHelper.java
+++ b/wizards/com/sun/star/wizards/common/DebugHelper.java
@@ -21,7 +21,11 @@ import com.sun.star.uno.Exception;
public class DebugHelper
{
-
+//TODO - Verify these methods. Can not remove?
+ public static void exception(String DetailedMessage, Exception ex, int err, String additionalArgument) throws java.lang.Exception
+ {
+// throw new UnsupportedOperationException("Not supported yet.");
+ }
public static void exception(int err, String additionalArgument) throws java.lang.Exception
{
diff --git a/wizards/com/sun/star/wizards/common/Desktop.java b/wizards/com/sun/star/wizards/common/Desktop.java
index 5d71d92..8b2c39a 100644
--- a/wizards/com/sun/star/wizards/common/Desktop.java
+++ b/wizards/com/sun/star/wizards/common/Desktop.java
@@ -18,16 +18,25 @@
package com.sun.star.wizards.common;
import com.sun.star.beans.PropertyValue;
+import com.sun.star.lang.WrappedTargetException;
+import com.sun.star.lang.XComponent;
import com.sun.star.lang.XMultiComponentFactory;
import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.Any;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext;
import com.sun.star.util.XURLTransformer;
import com.sun.star.lang.Locale;
+import com.sun.star.uno.XInterface;
import com.sun.star.bridge.XUnoUrlResolver;
import com.sun.star.comp.helper.Bootstrap;
+import com.sun.star.container.NoSuchElementException;
+import com.sun.star.container.XEnumeration;
import com.sun.star.container.XHierarchicalNameAccess;
import com.sun.star.container.XNameAccess;
+import com.sun.star.util.XStringSubstitution;
import com.sun.star.frame.*;
import com.sun.star.i18n.KParseType;
import com.sun.star.i18n.ParseResult;
@@ -36,6 +45,11 @@ import com.sun.star.i18n.XCharacterClassification;
public class Desktop
{
+ /** Creates a new instance of Desktop */
+ public Desktop()
+ {
+ }
+
public static XDesktop getDesktop(XMultiServiceFactory xMSF)
{
com.sun.star.uno.XInterface xInterface = null;
@@ -66,7 +80,25 @@ public class Desktop
return xFrameSuppl.getActiveFrame();
}
- private static XDispatch getDispatcher(XFrame xFrame, String _stargetframe, com.sun.star.util.URL oURL)
+ public static XComponent getActiveComponent(XMultiServiceFactory _xMSF)
+ {
+ XFrame xFrame = getActiveFrame(_xMSF);
+ return UnoRuntime.queryInterface(XComponent.class, xFrame.getController().getModel());
+ }
+
+ public static XTextDocument getActiveTextDocument(XMultiServiceFactory _xMSF)
+ {
+ XComponent xComponent = getActiveComponent(_xMSF);
+ return UnoRuntime.queryInterface(XTextDocument.class, xComponent);
+ }
+
+ public static XSpreadsheetDocument getActiveSpreadsheetDocument(XMultiServiceFactory _xMSF)
+ {
+ XComponent xComponent = getActiveComponent(_xMSF);
+ return UnoRuntime.queryInterface(XSpreadsheetDocument.class, xComponent);
+ }
+
+ public static XDispatch getDispatcher(XMultiServiceFactory xMSF, XFrame xFrame, String _stargetframe, com.sun.star.util.URL oURL)
{
try
{
@@ -82,7 +114,7 @@ public class Desktop
return null;
}
- private static com.sun.star.util.URL getDispatchURL(XMultiServiceFactory xMSF, String _sURL)
+ public static com.sun.star.util.URL getDispatchURL(XMultiServiceFactory xMSF, String _sURL)
{
try
{
@@ -101,10 +133,10 @@ public class Desktop
return null;
}
- private static void dispatchURL(XMultiServiceFactory xMSF, String sURL, XFrame xFrame, String _stargetframe)
+ public static void dispatchURL(XMultiServiceFactory xMSF, String sURL, XFrame xFrame, String _stargetframe)
{
com.sun.star.util.URL oURL = getDispatchURL(xMSF, sURL);
- XDispatch xDispatch = getDispatcher(xFrame, _stargetframe, oURL);
+ XDispatch xDispatch = getDispatcher(xMSF, xFrame, _stargetframe, oURL);
dispatchURL(xDispatch, oURL);
}
@@ -113,13 +145,13 @@ public class Desktop
dispatchURL(xMSF, sURL, xFrame, PropertyNames.EMPTY_STRING);
}
- private static void dispatchURL(XDispatch _xDispatch, com.sun.star.util.URL oURL)
+ public static void dispatchURL(XDispatch _xDispatch, com.sun.star.util.URL oURL)
{
PropertyValue[] oArg = new PropertyValue[0];
_xDispatch.dispatch(oURL, oArg);
}
- private static XMultiComponentFactory getMultiComponentFactory() throws com.sun.star.uno.Exception, RuntimeException, java.lang.Exception
+ public static XMultiComponentFactory getMultiComponentFactory() throws com.sun.star.uno.Exception, RuntimeException, java.lang.Exception
{
XComponentContext xcomponentcontext = Bootstrap.createInitialComponentContext(null);
// initial serviceManager
@@ -156,7 +188,7 @@ public class Desktop
return sIncSuffix;
}
- private static String getIncrementSuffix(XHierarchicalNameAccess xElementContainer, String ElementName)
+ public static String getIncrementSuffix(XHierarchicalNameAccess xElementContainer, String ElementName)
{
boolean bElementexists = true;
int i = 1;
@@ -178,7 +210,7 @@ public class Desktop
return sIncSuffix;
}
- private static int checkforfirstSpecialCharacter(XMultiServiceFactory _xMSF, String _sString, Locale _aLocale)
+ public static int checkforfirstSpecialCharacter(XMultiServiceFactory _xMSF, String _sString, Locale _aLocale)
{
try
{
@@ -214,6 +246,8 @@ public class Desktop
/**
* Checks if the passed Element Name already exists in the ElementContainer. If yes it appends a
* suffix to make it unique
+ * @param xElementContainer
+ * @param sElementName
* @return a unique Name ready to be added to the container.
*/
public static String getUniqueName(XNameAccess xElementContainer, String sElementName)
@@ -225,6 +259,8 @@ public class Desktop
/**
* Checks if the passed Element Name already exists in the ElementContainer. If yes it appends a
* suffix to make it unique
+ * @param xElementContainer
+ * @param sElementName
* @return a unique Name ready to be added to the container.
*/
public static String getUniqueName(XHierarchicalNameAccess xElementContainer, String sElementName)
@@ -236,6 +272,9 @@ public class Desktop
/**
* Checks if the passed Element Name already exists in the list If yes it appends a
* suffix to make it unique
+ * @param _slist
+ * @param _sElementName
+ * @param _sSuffixSeparator
* @return a unique Name not being in the passed list.
*/
public static String getUniqueName(String[] _slist, String _sElementName, String _sSuffixSeparator)
@@ -265,9 +304,67 @@ public class Desktop
return PropertyNames.EMPTY_STRING;
}
+ /**
+ * @deprecated use Configuration.getConfigurationRoot() with the same parameters instead
+ * @param xMSF
+ * @param KeyName
+ * @param bForUpdate
+ * @return
+ */
+ public static XInterface getRegistryKeyContent(XMultiServiceFactory xMSF, String KeyName, boolean bForUpdate)
+ {
+ try
+ {
+ Object oConfigProvider;
+ PropertyValue[] aNodePath = new PropertyValue[1];
+ oConfigProvider = xMSF.createInstance("com.sun.star.configuration.ConfigurationProvider");
+ aNodePath[0] = new PropertyValue();
+ aNodePath[0].Name = "nodepath";
+ aNodePath[0].Value = KeyName;
+ XMultiServiceFactory xMSFConfig = UnoRuntime.queryInterface(XMultiServiceFactory.class, oConfigProvider);
+ if (bForUpdate)
+ {
+ return (XInterface) xMSFConfig.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess", aNodePath);
+ }
+ else
+ {
+ return (XInterface) xMSFConfig.createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess", aNodePath);
+ }
+ }
+ catch (Exception exception)
+ {
+ exception.printStackTrace(System.err);
+ return null;
+ }
+ }
+
+ /**
+ * @deprecated used to retrieve the most common paths used in the office application
+ */
+ public class OfficePathRetriever
+ {
+ public String TemplatePath;
+ public String BitmapPath;
+ public String UserTemplatePath;
+ public String WorkPath;
- private static String getTemplatePath(XMultiServiceFactory _xMSF)
+ public OfficePathRetriever(XMultiServiceFactory xMSF)
+ {
+ try
+ {
+ TemplatePath = FileAccess.getOfficePath(xMSF, "Template", "share", "/wizard");
+ UserTemplatePath = FileAccess.getOfficePath(xMSF, "Template", "user", PropertyNames.EMPTY_STRING);
+ BitmapPath = FileAccess.combinePaths(xMSF, TemplatePath, "/../wizard/bitmap");
+ WorkPath = FileAccess.getOfficePath(xMSF, "Work", PropertyNames.EMPTY_STRING, PropertyNames.EMPTY_STRING);
+ }
+ catch (NoValidPathException nopathexception)
+ {
+ }
+ }
+ }
+
+ public static String getTemplatePath(XMultiServiceFactory _xMSF)
{
try
{
@@ -279,7 +376,17 @@ public class Desktop
return PropertyNames.EMPTY_STRING;
}
-
+ public static String getUserTemplatePath(XMultiServiceFactory _xMSF)
+ {
+ try
+ {
+ return FileAccess.getOfficePath(_xMSF, "Template", "user", PropertyNames.EMPTY_STRING);
+ }
+ catch (NoValidPathException nopathexception)
+ {
+ }
+ return PropertyNames.EMPTY_STRING;
+ }
public static String getBitmapPath(XMultiServiceFactory _xMSF)
{
@@ -293,9 +400,83 @@ public class Desktop
return PropertyNames.EMPTY_STRING;
}
+ public static String getWorkPath(XMultiServiceFactory _xMSF)
+ {
+ try
+ {
+ return FileAccess.getOfficePath(_xMSF, "Work", PropertyNames.EMPTY_STRING, PropertyNames.EMPTY_STRING);
+ }
+ catch (NoValidPathException nopathexception)
+ {
+ }
+ return PropertyNames.EMPTY_STRING;
+ }
+ public static XStringSubstitution createStringSubstitution(XMultiServiceFactory xMSF)
+ {
+ Object xPathSubst = null;
+ try
+ {
+ xPathSubst = xMSF.createInstance("com.sun.star.util.PathSubstitution");
+ }
+ catch (com.sun.star.uno.Exception e)
+ {
+ e.printStackTrace();
+ }
+ if (xPathSubst != null)
+ {
+ return UnoRuntime.queryInterface(XStringSubstitution.class, xPathSubst);
+ }
+ else
+ {
+ return null;
+ }
+ }
+ /**
+ * This method searches (and hopefully finds...) a frame
+ * with a componentWindow.
+ * It does it in three phases:
+ * 1. Check if the given desktop argument has a componentWindow.
+ * If it is null, the myFrame argument is taken.
+ * 2. Go up the tree of frames and search a frame with a component window.
+ * 3. Get from the desktop all the components, and give the first one
+ * which has a frame.
+ * @param xMSF
+ * @param myFrame
+ * @param desktop
+ * @return
+ * @throws NoSuchElementException
+ * @throws WrappedTargetException
+ */
+ public static XFrame findAFrame(XMultiServiceFactory xMSF, XFrame myFrame, XFrame desktop)
+ throws NoSuchElementException,
+ WrappedTargetException
+ {
+ if (desktop == null)
+ {
+ desktop = myFrame; // we go up in the tree...
+ }
+ while (desktop != null && desktop.getComponentWindow() == null)
+ {
+ desktop = desktop.findFrame("_parent", FrameSearchFlag.PARENT);
+ }
+ if (desktop == null)
+ {
+ for (XEnumeration e = Desktop.getDesktop(xMSF).getComponents().createEnumeration(); e.hasMoreElements();)
+ {
+ Object comp = ((Any) e.nextElement()).getObject();
+ XModel xModel = UnoRuntime.queryInterface(XModel.class, comp);
+ XFrame xFrame = xModel.getCurrentController().getFrame();
+ if (xFrame != null && xFrame.getComponentWindow() != null)
+ {
+ return xFrame;
+ }
+ }
+ }
+ return desktop;
+ }
}
diff --git a/wizards/com/sun/star/wizards/common/FileAccess.java b/wizards/com/sun/star/wizards/common/FileAccess.java
index 58af791..862f1b8 100644
--- a/wizards/com/sun/star/wizards/common/FileAccess.java
+++ b/wizards/com/sun/star/wizards/common/FileAccess.java
@@ -26,6 +26,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Vector;
+import com.sun.star.awt.VclWindowPeerAttribute;
import com.sun.star.io.XActiveDataSink;
import com.sun.star.io.XInputStream;
import com.sun.star.io.XTextInputStream;
@@ -33,6 +34,7 @@ import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.ucb.*;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XInterface;
+import com.sun.star.util.DateTime;
import com.sun.star.beans.PropertyValue;
import com.sun.star.document.XDocumentProperties;
@@ -50,9 +52,36 @@ import com.sun.star.document.XDocumentProperties;
public class FileAccess
{
+ /**
+ *
+ * @param xMSF
+ * @param sPath
+ * @param sAddPath
+ */
+ public static void addOfficePath(XMultiServiceFactory xMSF, String sPath, String sAddPath)
+ {
+ XSimpleFileAccess xSimpleFileAccess = null;
+ String ResultPath = getOfficePath(xMSF, sPath, xSimpleFileAccess);
+ // As there are several conventions about the look of Url (e.g. with " " or with "%20") you cannot make a
+ // simple String comparison to find out, if a path is already in "ResultPath"
+ String[] PathList = JavaTools.ArrayoutofString(ResultPath, PropertyNames.SEMI_COLON);
+ int MaxIndex = PathList.length - 1;
+ String CompCurPath;
+ String CompAddPath = JavaTools.replaceSubString(sAddPath, PropertyNames.EMPTY_STRING, "/");
+ String CurPath;
+ for (int i = 0; i <= MaxIndex; i++)
+ {
+ CurPath = JavaTools.convertfromURLNotation(PathList[i]);
+ CompCurPath = JavaTools.replaceSubString(CurPath, PropertyNames.EMPTY_STRING, "/");
+ if (CompCurPath.equals(CompAddPath))
+ {
+ return;
+ }
+ }
+ ResultPath += PropertyNames.SEMI_COLON + sAddPath;
+ }
-
- private static String deleteLastSlashfromUrl(String _sPath)
+ public static String deleteLastSlashfromUrl(String _sPath)
{
if (_sPath.endsWith("/"))
{
@@ -67,6 +96,9 @@ public class FileAccess
/**
* Further information on arguments value see in OO Developer Guide,
* chapter 6.2.7
+ * @param xMSF
+ * @param sPath
+ * @param xSimpleFileAccess
* @return the respective path of the office application. A probable following "/" at the end is trimmed.
*/
public static String getOfficePath(XMultiServiceFactory xMSF, String sPath, XSimpleFileAccess xSimpleFileAccess)
@@ -89,8 +121,13 @@ public class FileAccess
/**
* Further information on arguments value see in OO Developer Guide,
* chapter 6.2.7
+ * @param xMSF
+ * @param sPath
* @param sType use "share" or "user". Set to PropertyNames.EMPTY_STRING if not needed eg for the WorkPath;
* In the return Officepath a possible slash at the end is cut off
+ * @param sSearchDir
+ * @return
+ * @throws NoValidPathException
*/
public static String getOfficePath(XMultiServiceFactory xMSF, String sPath, String sType, String sSearchDir) throws NoValidPathException
{
@@ -164,7 +201,7 @@ public class FileAccess
return ResultPath;
}
- public static ArrayList<String> getOfficePaths(XMultiServiceFactory xMSF, String _sPath)
+ public static ArrayList<String> getOfficePaths(XMultiServiceFactory xMSF, String _sPath, String sType, String sSearchDir)
{
//This method currently only works with sPath="Template"
@@ -338,10 +375,190 @@ public class FileAccess
return ReturnPath;
}
+ public static boolean createSubDirectory(XMultiServiceFactory xMSF, XSimpleFileAccess xSimpleFileAccess, String Path)
+ {
+ String sNoDirCreation = PropertyNames.EMPTY_STRING;
+ try
+ {
+ Resource oResource = new Resource(xMSF, "ImportWizard", "imp");
+ sNoDirCreation = oResource.getResText(1050);
+ String sMsgDirNotThere = oResource.getResText(1051);
+ String sQueryForNewCreation = oResource.getResText(1052);
+ String OSPath = JavaTools.convertfromURLNotation(Path);
+ String sQueryMessage = JavaTools.replaceSubString(sMsgDirNotThere, OSPath, "%1");
+ sQueryMessage = sQueryMessage + (char) 13 + sQueryForNewCreation;
+ int icreate = SystemDialog.showMessageBox(xMSF, "QueryBox", VclWindowPeerAttribute.YES_NO, sQueryMessage);
+ if (icreate == 2)
+ {
+ xSimpleFileAccess.createFolder(Path);
+ return true;
+ }
+ return false;
+ }
+ catch (com.sun.star.ucb.CommandAbortedException exception)
+ {
+ String sMsgNoDir = JavaTools.replaceSubString(sNoDirCreation, Path, "%1");
+ SystemDialog.showMessageBox(xMSF, "ErrorBox", VclWindowPeerAttribute.OK, sMsgNoDir);
+ return false;
+ }
+ catch (com.sun.star.uno.Exception unoexception)
+ {
+ String sMsgNoDir = JavaTools.replaceSubString(sNoDirCreation, Path, "%1");
+ SystemDialog.showMessageBox(xMSF, "ErrorBox", VclWindowPeerAttribute.OK, sMsgNoDir);
+ return false;
+ }
+ }
+
+ // checks if the root of a path exists. if the parameter xWindowPeer is not null then also the directory is
+ // created when it does not exists and the user
+ public static boolean PathisValid(XMultiServiceFactory xMSF, String Path, String sMsgFilePathInvalid, boolean baskbeforeOverwrite)
+ {
+ try
+ {
+ String SubDir;
+ String SubDirPath = PropertyNames.EMPTY_STRING;
+ int SubLen;
+ int NewLen;
+ int RestLen;
+ boolean bexists;
+ boolean bSubDirexists = true;
+ String LowerCasePath;
+ String NewPath = Path;
+ XInterface xInterface = (XInterface) xMSF.createInstance("com.sun.star.ucb.SimpleFileAccess");
+ XSimpleFileAccess xSimpleFileAccess = UnoRuntime.queryInterface(XSimpleFileAccess.class, xInterface);
+ if (baskbeforeOverwrite)
+ {
+ if (xSimpleFileAccess.exists(Path))
+ {
+ Resource oResource = new Resource(xMSF, "ImportWizard", "imp");
+ String sFileexists = oResource.getResText(1053);
+ String NewString = JavaTools.convertfromURLNotation(Path);
+ sFileexists = JavaTools.replaceSubString(sFileexists, NewString, "<1>");
+ sFileexists = JavaTools.replaceSubString(sFileexists, String.valueOf((char) 13), "<CR>");
+ int iLeave = SystemDialog.showMessageBox(xMSF, "QueryBox", VclWindowPeerAttribute.YES_NO, sFileexists);
+ if (iLeave == 3)
+ {
+ return false;
+ }
+ }
+ }
+ String[] DirArray = JavaTools.ArrayoutofString(Path, "/");
+ int MaxIndex = DirArray.length - 1;
+ if (MaxIndex > 0)
+ {
+ for (int i = MaxIndex; i >= 0; i--)
+ {
+ SubDir = DirArray[i];
+ SubLen = SubDir.length();
+ NewLen = NewPath.length();
+ RestLen = NewLen - SubLen;
+ if (RestLen > 0)
+ {
+ NewPath = NewPath.substring(0, NewLen - SubLen - 1);
+ if (i == MaxIndex)
+ {
+ SubDirPath = NewPath;
+ }
+ bexists = xSimpleFileAccess.exists(NewPath);
+ if (bexists)
+ {
+ LowerCasePath = NewPath.toLowerCase();
+ bexists = (!((LowerCasePath.equals("file:///")) || (LowerCasePath.equals("file://")) || (LowerCasePath.equals("file:/")) || (LowerCasePath.equals("file:"))));
+ }
+ if (bexists)
+ {
+ if (!bSubDirexists)
+ {
+ return createSubDirectory(xMSF, xSimpleFileAccess, SubDirPath);
+ }
+ return true;
+ }
+ else
+ {
+ bSubDirexists = false;
+ }
+ }
+ }
+ }
+ SystemDialog.showMessageBox(xMSF, "ErrorBox", VclWindowPeerAttribute.OK, sMsgFilePathInvalid);
+ return false;
+ }
+ catch (com.sun.star.uno.Exception exception)
+ {
+ exception.printStackTrace(System.err);
+ SystemDialog.showMessageBox(xMSF, "ErrorBox", VclWindowPeerAttribute.OK, sMsgFilePathInvalid);
+ return false;
+ }
+ }
+
+ /**
+ * searches a directory for files which start with a certain
+ * prefix, and returns their URLs and document-titles.
+ * @param xMSF
+ * @param FilterName the prefix of the filename. a "-" is added to the prefix !
+ * @param FolderName the folder (URL) to look for files...
+ * @return an array with two array members. The first one, with document titles,
+ * the second with the corresponding URLs.
+ * @deprecated please use the getFolderTitles() with ArrayList
+ */
+ public static String[][] getFolderTitles(com.sun.star.lang.XMultiServiceFactory xMSF, String FilterName, String FolderName)
+ {
+ String[][] LocLayoutFiles = new String[2][];
+ try
+ {
+ java.util.ArrayList<String> TitleVector = null;
+ java.util.ArrayList<String> NameVector = null;
+
+ XInterface xDocInterface = (XInterface) xMSF.createInstance("com.sun.star.document.DocumentProperties");
+ XDocumentProperties xDocProps = UnoRuntime.queryInterface(XDocumentProperties.class, xDocInterface);
+
+ XInterface xInterface = (XInterface) xMSF.createInstance("com.sun.star.ucb.SimpleFileAccess");
+ com.sun.star.ucb.XSimpleFileAccess xSimpleFileAccess = UnoRuntime.queryInterface(XSimpleFileAccess.class, xInterface);
+
+ String[] nameList = xSimpleFileAccess.getFolderContents(FolderName, false);
+
+ TitleVector = new java.util.ArrayList<String>(/*nameList.length*/);
+ NameVector = new java.util.ArrayList<String>(nameList.length);
+
+ FilterName = FilterName == null || FilterName.equals(PropertyNames.EMPTY_STRING) ? null : FilterName + "-";
+
+ String fileName = PropertyNames.EMPTY_STRING;
+ PropertyValue[] noArgs = { };
+ for (int i = 0; i < nameList.length; i++)
+ {
+ fileName = getFilename(nameList[i]);
+
+ if (FilterName == null || fileName.startsWith(FilterName))
+ {
+ xDocProps.loadFromMedium(nameList[i], noArgs);
+ NameVector.add(nameList[i]);
+ TitleVector.add(xDocProps.getTitle());
+ }
+ }
+ String[] LocNameList = new String[NameVector.size()];
+ String[] LocTitleList = new String[TitleVector.size()];
+
+ NameVector.toArray(LocNameList);
+ TitleVector.toArray(LocTitleList);
+ LocLayoutFiles[1] = LocNameList;
+ LocLayoutFiles[0] = LocTitleList;
+
+ JavaTools.bubblesortList(LocLayoutFiles);
+ }
+ catch (Exception exception)
+ {
+ exception.printStackTrace(System.err);
+ }
+ return LocLayoutFiles;
+ }
+
/**
* We search in all given path for a given file
+ * @param _sPath
+ * @param _sPath2
+ * @return
*/
- private static String addPath(String _sPath, String _sPath2)
+ public static String addPath(String _sPath, String _sPath2)
{
String sNewPath;
if (!_sPath.endsWith("/"))
@@ -380,6 +597,14 @@ public class FileAccess
return sFoundFile;
}
+ /**
+ *
+ * @param xMSF
+ * @param _sStartFilterName
+ * @param FolderNames
+ * @return
+ * @throws com.sun.star.wizards.common.NoValidPathException
+ */
public static String[][] getFolderTitles(com.sun.star.lang.XMultiServiceFactory xMSF, String _sStartFilterName, ArrayList<String> FolderNames)
throws NoValidPathException
{
@@ -486,7 +711,7 @@ public class FileAccess
return LocLayoutFiles;
}
public XSimpleFileAccess2 fileAccess;
- private XFileIdentifierConverter filenameConverter;
+ public XFileIdentifierConverter filenameConverter;
public FileAccess(XMultiServiceFactory xmsf) throws com.sun.star.uno.Exception
{
@@ -505,15 +730,22 @@ public class FileAccess
return filenameConverter.getFileURLFromSystemPath(parentPath, f.getAbsolutePath());
}
+ public String getURL(String path)
+ {
+ File f = new File(path);
+ return filenameConverter.getFileURLFromSystemPath(path, f.getAbsolutePath());
+ }
+
public String getPath(String parentURL, String childURL)
{
return filenameConverter.getSystemPathFromFileURL(parentURL + (((childURL == null || childURL.equals(PropertyNames.EMPTY_STRING)) ? PropertyNames.EMPTY_STRING : "/" + childURL)));
}
/**
+ * @param filename
* @return the extension of the given filename.
*/
- private static String getExtension(String filename)
+ public static String getExtension(String filename)
{
int p = filename.indexOf('.');
if (p == -1)
@@ -532,6 +764,29 @@ public class FileAccess
}
/**
+ * @param s
+ * @return
+ */
+ public boolean mkdir(String s)
+ {
+ try
+ {
+ fileAccess.createFolder(s);
+ return true;
+ }
+ catch (CommandAbortedException cax)
+ {
+ cax.printStackTrace();
+ }
+ catch (com.sun.star.uno.Exception ex)
+ {
+ ex.printStackTrace();
+ }
+ return false;
+ }
+
+ /**
+ * @param filename
* @param def what to return in case of an exception
* @return true if the given file exists or not.
* if an exception accures, returns the def value.
@@ -552,14 +807,96 @@ public class FileAccess
return def;
}
+ /**
+ * @param filename
+ * @return
+ */
+ public boolean isDirectory(String filename)
+ {
+ try
+ {
+ return fileAccess.isFolder(filename);
+ }
+ catch (CommandAbortedException e)
+ {
+ }
+ catch (Exception e)
+ {
+ }
+
+ return false;
+ }
+
+ /**
+ * lists the files in a given directory
+ * @param dir
+ * @param includeFolders
+ * @return
+ */
+ public String[] listFiles(String dir, boolean includeFolders)
+ {
+ try
+ {
+ return fileAccess.getFolderContents(dir, includeFolders);
+ }
+ catch (CommandAbortedException e)
+ {
+ }
+ catch (Exception e)
+ {
+ }
+
+ return new String[0];
+ }
+
+ /**
+ * @param file
+ * @return
+ */
+ public boolean delete(String file)
+ {
+ try
+ {
+ fileAccess.kill(file);
+ return true;
+ }
+ catch (CommandAbortedException e)
+ {
+ e.printStackTrace(System.err);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace(System.err);
+ }
+
+ return false;
+ }
+
+ /**
+ * @param path
+ * @return
+ */
public static String getFilename(String path)
{
return getFilename(path, "/");
}
+ /**
+ * return the filename out of a system-dependent path
+ * @param path
+ * @return
+ */
+ public static String getPathFilename(String path)
+ {
+ return getFilename(path, File.separator);
+ }
-
- private static String getFilename(String path, String pathSeparator)
+ /**
+ * @param path
+ * @param pathSeparator
+ * @return
+ */
+ public static String getFilename(String path, String pathSeparator)
{
String[] s = JavaTools.ArrayoutofString(path, pathSeparator);
return s[s.length - 1];
@@ -572,11 +909,45 @@ public class FileAccess
return filename.substring(0, filename.length() - (sExtension.length() + 1));
}
+ /**
+ * @param source
+ * @param target
+ * @return
+ */
+ public boolean copy(String source, String target)
+ {
+ try
+ {
+ fileAccess.copy(source, target);
+ return true;
+ }
+ catch (CommandAbortedException e)
+ {
+ }
+ catch (Exception e)
+ {
+ }
+ return false;
+ }
-
+ public DateTime getLastModified(String url)
+ {
+ try
+ {
+ return fileAccess.getDateTimeModified(url);
+ }
+ catch (CommandAbortedException e)
+ {
+ }
+ catch (Exception e)
+ {
+ }
+ return null;
+ }
/**
+ * @param url
* @return the parent dir of the given url.
* if the path points to file, gives the directory in which the file is.
*/
@@ -595,7 +966,50 @@ public class FileAccess
return url.substring(0, lastPos);
}
+ public String createNewDir(String parentDir, String name)
+ {
+ String s = getNewFile(parentDir, name, PropertyNames.EMPTY_STRING);
+ if (mkdir(s))
+ {
+ return s;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ public String getNewFile(String parentDir, String name, String extension)
+ {
+ int i = 0;
+ String url;
+ do
+ {
+ String filename = filename(name, extension, i++);
+ url = getURL(parentDir, filename);
+ }
+ while (exists(url, true));
+
+ return url;
+ }
+
+ private static String filename(String name, String ext, int i)
+ {
+ return name + (i == 0 ? PropertyNames.EMPTY_STRING : String.valueOf(i)) + (ext.equals(PropertyNames.EMPTY_STRING) ? PropertyNames.EMPTY_STRING : "." + ext);
+ }
+
+ public int getSize(String url)
+ {
+ try
+ {
+ return fileAccess.getSize(url);
+ }
+ catch (Exception ex)
+ {
+ return -1;
+ }
+ }
public static String connectURLs(String urlFolder, String urlFilename)
{
@@ -635,4 +1049,36 @@ public class FileAccess
return sFileData;
}
+ /**
+ * shortens a filename to a user displayable representation.
+ * @param path
+ * @param maxLength
+ * @return
+ */
+ public static String getShortFilename(String path, int maxLength)
+ {
+ int firstPart = 0;
+
+ if (path.length() > maxLength)
+ {
+ if (path.startsWith("/"))
+ { // unix
+ int nextSlash = path.indexOf("/", 1) + 1;
+ firstPart = Math.min(nextSlash, (maxLength - 3) / 2);
+ }
+ else
+ { //windows
+ firstPart = Math.min(10, (maxLength - 3) / 2);
+ }
+
+ String s1 = path.substring(0, firstPart);
+ String s2 = path.substring(path.length() - (maxLength - (3 + firstPart)));
+
+ return s1 + "..." + s2;
+ }
+ else
+ {
+ return path;
+ }
+ }
}
diff --git a/wizards/com/sun/star/wizards/common/Helper.java b/wizards/com/sun/star/wizards/common/Helper.java
index cc5c243..3aa4628 100644
--- a/wizards/com/sun/star/wizards/common/Helper.java
+++ b/wizards/com/sun/star/wizards/common/Helper.java
@@ -22,6 +22,7 @@ import com.sun.star.util.XMacroExpander;
import java.util.Calendar;
import com.sun.star.beans.Property;
+import com.sun.star.beans.PropertyValue;
import com.sun.star.beans.XPropertySet;
import com.sun.star.lang.Locale;
import com.sun.star.lang.XMultiServiceFactory;
@@ -35,6 +36,11 @@ import com.sun.star.util.XNumberFormatter;
public class Helper
{
+ /** Creates a new instance of Helper */
+ public Helper()
+ {
+ }
+
public static long convertUnoDatetoInteger(com.sun.star.util.Date DateValue)
{
java.util.Calendar oCal = java.util.Calendar.getInstance();
@@ -86,7 +92,21 @@ public class Helper
}
}
-
+ public static Object getPropertyValue(PropertyValue[] CurPropertyValue, String PropertyName)
+ {
+ int MaxCount = CurPropertyValue.length;
+ for (int i = 0; i < MaxCount; i++)
+ {
+ if (CurPropertyValue[i] != null)
+ {
+ if (CurPropertyValue[i].Name.equals(PropertyName))
+ {
+ return CurPropertyValue[i].Value;
+ }
+ }
+ }
+ throw new RuntimeException();
+ }
public static Object getUnoPropertyValue(Object oUnoObject, String PropertyName, java.lang.Class<?> xClass)
{
@@ -114,9 +134,53 @@ public class Helper
}
}
+ public static Object getPropertyValuefromAny(Object[] CurPropertyValue, String PropertyName)
+ {
+ if (CurPropertyValue != null)
+ {
+ int MaxCount = CurPropertyValue.length;
+ for (int i = 0; i < MaxCount; i++)
+ {
+ if (CurPropertyValue[i] != null)
+ {
+ PropertyValue aValue = (PropertyValue) CurPropertyValue[i];
+ if (aValue != null && aValue.Name.equals(PropertyName))
+ {
+ return aValue.Value;
+ }
+ }
+ }
+ }
+ return null;
+ }
-
-
+ public static Object getPropertyValuefromAny(Object[] CurPropertyValue, String PropertyName, java.lang.Class<?> xClass)
+ {
+ try
+ {
+ if (CurPropertyValue != null)
+ {
+ int MaxCount = CurPropertyValue.length;
+ for (int i = 0; i < MaxCount; i++)
+ {
+ if (CurPropertyValue[i] != null)
+ {
+ PropertyValue aValue = (PropertyValue) CurPropertyValue[i];
+ if (aValue != null && aValue.Name.equals(PropertyName))
+ {
+ return com.sun.star.uno.AnyConverter.toObject(new com.sun.star.uno.Type(xClass), aValue.Value);
+ }
+ }
+ }
+ }
+ return null;
+ }
+ catch (Exception exception)
+ {
+ exception.printStackTrace(System.err);
+ return null;
+ }
+ }
public static Object getUnoPropertyValue(Object oUnoObject, String PropertyName)
{
@@ -206,7 +270,7 @@ public class Helper
* @param oValue the parameter that has to represent an object
* @return a null reference if the array is empty
*/
- private static Object getArrayValue(Object oValue)
+ public static Object getArrayValue(Object oValue)
{
try
{
@@ -262,6 +326,7 @@ public class Helper
/**
* @param format a constant of the enumeration NumberFormatIndex
+ * @return
*/
public int getFormat(short format)
{
@@ -283,7 +348,7 @@ public class Helper
* @param date a VCL date in form of 20041231
* @return a document relative date
*/
- private synchronized double getDocumentDateAsDouble(int date)
+ public synchronized double getDocumentDateAsDouble(int date)
{
calendar.clear();
calendar.set(date / 10000,
@@ -298,17 +363,40 @@ public class Helper
return (date1 - docNullTime) / DAY_IN_MILLIS + 1;
}
- private double getDocumentDateAsDouble(DateTime date)
+ public double getDocumentDateAsDouble(DateTime date)
{
return getDocumentDateAsDouble(date.Year * 10000 + date.Month * 100 + date.Day);
}
- public String format(int formatIndex, DateTime date)
+ public synchronized double getDocumentDateAsDouble(long javaTimeInMillis)
+ {
+ calendar.clear();
+ JavaTools.setTimeInMillis(calendar, javaTimeInMillis);
+
+ long date1 = getTimeInMillis();
+
+ /*
+ * docNullTime and date1 are in millis, but
+ * I need a day...
+ */
+ return (date1 - docNullTime) / DAY_IN_MILLIS + 1;
+
+ }
+
+ public String format(int formatIndex, int date)
{
return formatter.convertNumberToString(formatIndex, getDocumentDateAsDouble(date));
}
+ public String format(int formatIndex, DateTime date)
+ {
+ return formatter.convertNumberToString(formatIndex, getDocumentDateAsDouble(date));
+ }
+ public String format(int formatIndex, long javaTimeInMillis)
+ {
+ return formatter.convertNumberToString(formatIndex, getDocumentDateAsDouble(javaTimeInMillis));
+ }
}
public static XComponentContext getComponentContext(XMultiServiceFactory _xMSF)
diff --git a/wizards/com/sun/star/wizards/common/IRenderer.java b/wizards/com/sun/star/wizards/common/IRenderer.java
index c704ed6..c4513ea 100644
--- a/wizards/com/sun/star/wizards/common/IRenderer.java
+++ b/wizards/com/sun/star/wizards/common/IRenderer.java
@@ -26,5 +26,5 @@ package com.sun.star.wizards.common;
public interface IRenderer
{
- String render(Object object);
+ public String render(Object object);
}
diff --git a/wizards/com/sun/star/wizards/common/Indexable.java b/wizards/com/sun/star/wizards/common/Indexable.java
index d838c35..b20fd17 100644
--- a/wizards/com/sun/star/wizards/common/Indexable.java
+++ b/wizards/com/sun/star/wizards/common/Indexable.java
@@ -25,6 +25,6 @@ package com.sun.star.wizards.common;
public interface Indexable {
- int getIndex();
+ public int getIndex();
}
diff --git a/wizards/com/sun/star/wizards/common/JavaTools.java b/wizards/com/sun/star/wizards/common/JavaTools.java
index 4f81e43..d7935b5 100644
--- a/wizards/com/sun/star/wizards/common/JavaTools.java
+++ b/wizards/com/sun/star/wizards/common/JavaTools.java
@@ -17,6 +17,7 @@
*/
package com.sun.star.wizards.common;
+import com.sun.star.util.DateTime;
import com.sun.star.beans.PropertyValue;
import java.util.*;
import java.io.File;
@@ -28,6 +29,43 @@ import java.net.URL;
public class JavaTools
{
+ /** Creates a new instance of JavaTools */
+ public JavaTools()
+ {
+ }
+
+ public static String[] copyStringArray(String[] FirstArray)
+ {
+ if (FirstArray != null)
+ {
+ String[] SecondArray = new String[FirstArray.length];
+ System.arraycopy(FirstArray, 0, SecondArray, 0, FirstArray.length);
+ return SecondArray;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ public static Object[] initializeArray(Object[] olist, Object ovalue)
+ {
+ for (int i = 0; i < olist.length; i++)
+ {
+ olist[i] = ovalue;
+ }
+ return olist;
+ }
+
+ public static Object[][] initializeMultiDimArray(Object[][] olist, Object[] ovalue)
+ {
+ for (int i = 0; i < olist.length; i++)
+ {
+ olist[i] = ovalue;
+ }
+ return olist;
+ }
+
public static String[] ArrayOutOfMultiDimArray(String _sMultiDimArray[][], int _index)
{
String[] sRetArray = null;
@@ -42,9 +80,24 @@ public class JavaTools
return sRetArray;
}
+ public static int[] initializeintArray(int FieldCount, int nValue)
+ {
+ int[] LocintArray = new int[FieldCount];
+ for (int i = 0; i < LocintArray.length; i++)
+ {
+ LocintArray[i] = nValue;
+ }
+ return LocintArray;
+ }
+
/**converts a list of Integer values included in an Integer vector to a list of int values
+ *
+ *
+ * @param _aIntegerVector
+ * @return
*/
- public static int[] IntegerTointList(java.util.List<Integer> _aIntegerVector) {
+ public static int[] IntegerTointList(java.util.List<Integer> _aIntegerVector)
+ {
int[] nintValues = null;
if (_aIntegerVector.size() > 0) {
int i = 0;
@@ -57,8 +110,13 @@ public class JavaTools
}
/**converts a list of Boolean values included in a Boolean vector to a list of boolean values
+ *
+ *
+ * @param _aBooleanVector
+ * @return
*/
- public static boolean[] BooleanTobooleanList(java.util.List<Boolean> _aBooleanVector) {
+ public static boolean[] BooleanTobooleanList(java.util.List<Boolean> _aBooleanVector)
+ {
boolean[] bbooleanValues = null;
if (_aBooleanVector.size() > 0) {
int i = 0;
@@ -70,6 +128,19 @@ public class JavaTools
return bbooleanValues;
}
+ public static String[] multiDimListToArray(String[][] multidimlist)
+ {
+ String[] retlist = new String[]
+ {
+ };
+ retlist = new String[multidimlist.length];
+ for (int i = 0; i < multidimlist.length; i++)
+ {
+ retlist[i] = multidimlist[i][0];
+ }
+ return retlist;
+ }
+
public static String getlongestArrayItem(String[] StringArray)
{
String sLongestItem = PropertyNames.EMPTY_STRING;
@@ -87,12 +158,13 @@ public class JavaTools
return sLongestItem;
}
- public static String ArraytoString(String[] LocArray) {
+ public static String ArraytoString(String[] LocArray)
+ {
StringBuilder ResultString = new StringBuilder(PropertyNames.EMPTY_STRING);
boolean bActive = false;
for (String str : LocArray) {
if (bActive) {
- ResultString.append(PropertyNames.SEMI_COLON);
+ ResultString.append(PropertyNames.SEMI_COLON);
} else {
bActive = true;
}
@@ -102,6 +174,8 @@ public class JavaTools
}
/**
+ * @param SearchList
+ * @param SearchString
* @return the index of the field that contains the string 'SearchString' or '-1' if not it is
* not contained within the array
*/
@@ -116,7 +190,26 @@ public class JavaTools
return retvalue;
}
- public static int FieldInTable(String[][] SearchList, String SearchString) {
+ public static int FieldInList(String[] SearchList, String SearchString, int StartIndex)
+ {
+ int FieldLen = SearchList.length;
+ int retvalue = -1;
+ if (StartIndex < FieldLen)
+ {
+ for (int i = StartIndex; i < FieldLen; i++)
+ {
+ if (SearchList[i].equals(SearchString))
+ {
+ retvalue = i;
+ break;
+ }
+ }
+ }
+ return retvalue;
+ }
+
+ public static int FieldInTable(String[][] SearchList, String SearchString)
+ {
int retvalue = -1;
int FieldLen = SearchList.length;
if (FieldLen > 0) {
@@ -203,6 +296,11 @@ public class JavaTools
return SortList;
}
+ /**
+ * @param MainString
+ * @param Token
+ * @return
+ */
public static String[] ArrayoutofString(String MainString, String Token)
{
String[] StringArray;
@@ -261,6 +359,24 @@ public class JavaTools
}
}
+ public static String getFilenameOutOfPath(String sPath)
+ {
+ String[] Hierarchy = ArrayoutofString(sPath, "/");
+ return Hierarchy[Hierarchy.length - 1];
+ }
+
+ public static String getFileDescription(String sPath)
+ {
+ String sFilename = getFilenameOutOfPath(sPath);
+ String[] FilenameList = ArrayoutofString(sFilename, ".");
+ StringBuilder FileDescription = new StringBuilder(PropertyNames.EMPTY_STRING);
+ for (int i = 0; i < FilenameList.length - 1; i++)
+ {
+ FileDescription.append(FilenameList[i]);
+ }
+ return FileDescription.toString();
+ }
+
public static String convertfromURLNotation(String _sURLPath)
{
String sPath = PropertyNames.EMPTY_STRING;
@@ -277,6 +393,27 @@ public class JavaTools
return sPath;
}
+ public static DateTime getDateTime(long timeMillis)
+ {
+ java.util.Calendar cal = java.util.Calendar.getInstance();
+ setTimeInMillis(cal, timeMillis);
+ DateTime dt = new DateTime();
+ dt.Year = (short) cal.get(Calendar.YEAR);
+ dt.Day = (short) cal.get(Calendar.DAY_OF_MONTH);
+ dt.Month = (short) (cal.get(Calendar.MONTH) + 1);
+ dt.Hours = (short) cal.get(Calendar.HOUR);
+ dt.Minutes = (short) cal.get(Calendar.MINUTE);
+ dt.Seconds = (short) cal.get(Calendar.SECOND);
+ dt.NanoSeconds = cal.get(Calendar.MILLISECOND)*1000000;
+ return dt;
+ }
+
+ public static long getTimeInMillis(Calendar _calendar)
+ {
+ java.util.Date dDate = _calendar.getTime();
+ return dDate.getTime();
+ }
+
public static void setTimeInMillis(Calendar _calendar, long _timemillis)
{
java.util.Date dDate = new java.util.Date();
@@ -284,6 +421,13 @@ public class JavaTools
_calendar.setTime(dDate);
}
+ public static long getMillis(DateTime time)
+ {
+ java.util.Calendar cal = java.util.Calendar.getInstance();
+ cal.set(time.Year, time.Month, time.Day, time.Hours, time.Minutes, time.Seconds);
+ return getTimeInMillis(cal);
+ }
+
public static String[] removeOutdatedFields(String[] baselist, String[] _complist)
{
String[] retarray = new String[]
@@ -371,6 +515,8 @@ public class JavaTools
* MasterFieldName1;MasterFieldName2;MasterFieldName3
* The entries SlaveFieldNameX and MasterFieldNameX are grouped together and then the created groups are compared
* If a group is duplicate the entry of the second group is returned.
+ * @param _scomplist
+ * @return
*/
public static int getDuplicateFieldIndex(String[][] _scomplist)
{
@@ -397,6 +543,8 @@ public class JavaTools
/**
* not tested!!!!!
+ * @param scomplist
+ * @return
*/
public static int getDuplicateFieldIndex(String[] scomplist)
{
@@ -434,7 +582,7 @@ public class JavaTools
return -1;
}
- private static boolean isEqual(PropertyValue firstPropValue, PropertyValue secPropValue)
+ public static boolean isEqual(PropertyValue firstPropValue, PropertyValue secPropValue)
{
if (!firstPropValue.Name.equals(secPropValue.Name))
{
@@ -510,6 +658,9 @@ public class JavaTools
/**
* compares two strings. If one of them is empty and the other one is null it also returns true
+ * @param sFirstString
+ * @param sSecondString
+ * @return
*/
public static boolean isSame(String sFirstString, String sSecondString)
{
diff --git a/wizards/com/sun/star/wizards/common/NamedValueCollection.java b/wizards/com/sun/star/wizards/common/NamedValueCollection.java
index 32cc0cd..2813b22 100644
--- a/wizards/com/sun/star/wizards/common/NamedValueCollection.java
+++ b/wizards/com/sun/star/wizards/common/NamedValueCollection.java
@@ -45,7 +45,20 @@ public class NamedValueCollection
m_values.put( i_name, i_value );
}
-
+ @SuppressWarnings("unchecked")
+ public final < T > T getOrDefault( final String i_key, final T i_default )
+ {
+ if ( m_values.containsKey( i_key ) )
+ {
+ final Object value = m_values.get( i_key );
+ try
+ {
+ return (T)value;
+ }
+ catch ( ClassCastException e ) { }
+ }
+ return i_default;
+ }
public final < T extends XInterface > T queryOrDefault( final String i_key, final T i_default, Class<T> i_interfaceClass )
{
@@ -57,6 +70,11 @@ public class NamedValueCollection
return i_default;
}
+ public final boolean has( final String i_key )
+ {
+ return m_values.containsKey( i_key );
+ }
+
public final PropertyValue[] getPropertyValues()
{
PropertyValue[] values = new PropertyValue[ m_values.size() ];
diff --git a/wizards/com/sun/star/wizards/common/NumberFormatter.java b/wizards/com/sun/star/wizards/common/NumberFormatter.java
index 1d9a9c3..05fb55f 100644
--- a/wizards/com/sun/star/wizards/common/NumberFormatter.java
+++ b/wizards/com/sun/star/wizards/common/NumberFormatter.java
@@ -36,17 +36,17 @@ import com.sun.star.util.XNumberFormatter;
public class NumberFormatter
{
- private int iDateFormatKey = -1;
- private int iDateTimeFormatKey = -1;
- private int iNumberFormatKey = -1;
- private int iTextFormatKey = -1;
- private int iTimeFormatKey = -1;
- private int iLogicalFormatKey = -1;
- private long lDateCorrection;
- private XNumberFormatter xNumberFormatter;
- private XNumberFormats xNumberFormats;
- private XNumberFormatTypes xNumberFormatTypes;
- private XPropertySet xNumberFormatSettings;
+ public int iDateFormatKey = -1;
+ public int iDateTimeFormatKey = -1;
+ public int iNumberFormatKey = -1;
+ public int iTextFormatKey = -1;
+ public int iTimeFormatKey = -1;
+ public int iLogicalFormatKey = -1;
+ public long lDateCorrection;
+ public XNumberFormatter xNumberFormatter;
+ public XNumberFormats xNumberFormats;
+ public XNumberFormatTypes xNumberFormatTypes;
+ public XPropertySet xNumberFormatSettings;
private boolean bNullDateCorrectionIsDefined = false;
private Locale aLocale;
@@ -72,6 +72,14 @@ public class NumberFormatter
}
+ /**
+ * @param _xMSF
+ * @param _xNumberFormatsSupplier
+ * @return
+ * @throws Exception
+ * @deprecated
+ *
+ */
public static XNumberFormatter createNumberFormatter(XMultiServiceFactory _xMSF, XNumberFormatsSupplier _xNumberFormatsSupplier) throws Exception
{
Object oNumberFormatter = _xMSF.createInstance("com.sun.star.util.NumberFormatter");
@@ -90,6 +98,7 @@ public class NumberFormatter
* XNumberFormatter nf = Desktop.createNumberFormatter(xmsf, nsf);
* nf.convertNumberToString( key, 1972 );
* </pre>
+ * @param numberFormatsSupplier
* @param type - a constant out of i18n.NumberFormatIndex enumeration.
* @return a key to use with a util.NumberFormat instance.
*
@@ -108,7 +117,10 @@ public class NumberFormatter
}
-
+ public static String convertNumberToString(XNumberFormatter _xNumberFormatter, int _nkey, double _dblValue)
+ {
+ return _xNumberFormatter.convertNumberToString(_nkey, _dblValue);
+ }
public double convertStringToNumber(int _nkey, String _sString)throws Exception
@@ -146,9 +158,12 @@ public class NumberFormatter
/**
- * @return a numberformat for a FormatString.
+ * returns a numberformat for a FormatString.
+ * @param _FormatString
+ * @param _aLocale
+ * @return
*/
- private int defineNumberFormat(String _FormatString, Locale _aLocale)
+ public int defineNumberFormat(String _FormatString, Locale _aLocale)
{
try
{
@@ -183,11 +198,11 @@ public class NumberFormatter
}
if (xPSet.getPropertySetInfo().hasPropertyByName("NumberFormat"))
{
- xPSet.setPropertyValue("NumberFormat", Integer.valueOf(NewFormatKey));
+ xPSet.setPropertyValue("NumberFormat", new Integer(NewFormatKey));
}
else if (xPSet.getPropertySetInfo().hasPropertyByName("FormatKey"))
{
- xPSet.setPropertyValue("FormatKey", Integer.valueOf(NewFormatKey));
+ xPSet.setPropertyValue("FormatKey", new Integer(NewFormatKey));
}
else
{
diff --git a/wizards/com/sun/star/wizards/common/NumericalHelper.java b/wizards/com/sun/star/wizards/common/NumericalHelper.java
index f2c6e76..ab1cd36 100644
--- a/wizards/com/sun/star/wizards/common/NumericalHelper.java
+++ b/wizards/com/sun/star/wizards/common/NumericalHelper.java
@@ -33,20 +33,20 @@ import com.sun.star.uno.TypeClass;
public class NumericalHelper
{
- private static final int UNKNOWN_TYPE = -32768;
- private static final int BYTE_TYPE = 0;
- private static final int SHORT_TYPE = 1;
- private static final int INT_TYPE = 2;
- private static final int LONG_TYPE = 3;
- private static final int FLOAT_TYPE = 4;
- private static final int DOUBLE_TYPE = 5;
- private static final int CHAR_TYPE = 6;
- private static final int STRING_TYPE = -1;
- private static final int BOOLEAN_TYPE = -2;
- private static final int SEQUENCE_TYPE = -3;
-
-
-
+ public static final int UNKNOWN_TYPE = -32768;
+ public static final int BYTE_TYPE = 0;
+ public static final int SHORT_TYPE = 1;
+ public static final int INT_TYPE = 2;
+ public static final int LONG_TYPE = 3;
+ public static final int FLOAT_TYPE = 4;
+ public static final int DOUBLE_TYPE = 5;
+ public static final int CHAR_TYPE = 6;
+ public static final int STRING_TYPE = -1;
+ public static final int BOOLEAN_TYPE = -2;
+ public static final int SEQUENCE_TYPE = -3;
+ public static final int ASCII_VALUE_0 = 48;
+ public static final int ASCII_VALUE_A = 65;
+ public static final int COUNT_CHARS_IN_ALPHABET = 26;
private static final int HEX_BASE = 16;
private static final int DEC_BASE = 10;
private static final int ASCII_LETTER_A_OFFSET = 55;
@@ -59,17 +59,458 @@ public class NumericalHelper
// private c'tor, so no one can instantiate
}
-
-
/**
- * get an int value from the object
- * @return an int
+ * get the type of an object: returns all types that can possibly converted
+ * with this class.
+ * @param obj an object that is checked for conversion
+ * @return the type of the object
+ */
+ public static int getType(Object obj)
+ {
+ try
+ {
+ TypeObject aTypeObject = getTypeObject(obj);
+ return aTypeObject.iType;
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e)
+ {
+ // ignore this one; just return unknown type
+ }
+ return UNKNOWN_TYPE;
+ }
+
+ /**
+ * get a byte value from the object
+ * @param aValue
+ * @return a byte
+ * @throws com.sun.star.lang.IllegalArgumentException if the object cannot be converted
+ */
+ public static byte toByte(Object aValue)
+ throws com.sun.star.lang.IllegalArgumentException
+ {
+
+ byte retValue = 0;
+ TypeObject aTypeObject = getTypeObject(aValue);
+ switch (aTypeObject.iType)
+ {
+ case BYTE_TYPE:
+ retValue = getByte(aTypeObject);
+ break;
+ case CHAR_TYPE:
+ retValue = (byte) getChar(aTypeObject);
+ break;
+ case SHORT_TYPE:
+ retValue = (byte) getShort(aTypeObject);
+ break;
+ case INT_TYPE:
+ retValue = (byte) getInt(aTypeObject);
+ break;
+ case LONG_TYPE:
+ retValue = (byte) getLong(aTypeObject);
+ break;
+ case FLOAT_TYPE:
+ retValue = (byte) getFloat(aTypeObject);
+ break;
+ case DOUBLE_TYPE:
+ retValue = (byte) getDouble(aTypeObject);
+ break;
+ case STRING_TYPE:
+ try
+ {
+ retValue = Byte.parseByte((String) aTypeObject.aValue);
+ }
+ catch (java.lang.NumberFormatException e)
+ {
+ throw new com.sun.star.lang.IllegalArgumentException(
+ "Cannot convert to byte: " + aTypeObject.aValue);
+ }
+ break;
+ case BOOLEAN_TYPE:
+ retValue = getBool(aTypeObject) ? (byte) -1 : (byte) 0;
+ break;
+ default:
+ throw new com.sun.star.lang.IllegalArgumentException(
+ "Cannot convert this type: " + aValue.getClass().getName());
+ }
+ return retValue;
+ }
+
+ /**
+ * get a char value from the object
+ * @param aValue
+ * @return a char
+ * @throws com.sun.star.lang.IllegalArgumentException if the object cannot be converted
+ */
+ public static char toChar(Object aValue)
+ throws com.sun.star.lang.IllegalArgumentException
+ {
+
+ char retValue = 0;
+ TypeObject aTypeObject = getTypeObject(aValue);
+ switch (aTypeObject.iType)
+ {
+ case CHAR_TYPE:
+ retValue = getChar(aTypeObject);
+ break;
+ case BYTE_TYPE:
+ retValue = (char) getByte(aTypeObject);
+ break;
+ case SHORT_TYPE:
+ retValue = (char) getShort(aTypeObject);
+ break;
+ case INT_TYPE:
+ retValue = (char) getInt(aTypeObject);
+ break;
+ case LONG_TYPE:
+ retValue = (char) getLong(aTypeObject);
+ break;
+ case FLOAT_TYPE:
+ retValue = (char) getFloat(aTypeObject);
+ break;
+ case DOUBLE_TYPE:
+ retValue = (char) getDouble(aTypeObject);
+ break;
+ case STRING_TYPE:
+ try
+ {
+ String s = (String) aTypeObject.aValue;
+ if (s.length() > 0)
+ {
+ retValue = s.charAt(0);
+ }
+ else
+ {
+ retValue = (char) 0;
+ }
+ }
+ catch (java.lang.NumberFormatException e)
+ {
+ throw new com.sun.star.lang.IllegalArgumentException(
+ "Cannot convert to char: " + aTypeObject.aValue);
+ }
+ break;
+ case BOOLEAN_TYPE:
+ retValue = getBool(aTypeObject) ? (char) -1 : (char) 0;
+ break;
+ default:
+ throw new com.sun.star.lang.IllegalArgumentException(
+ "Cannot convert this type: " + aValue.getClass().getName());
+ }
+ return retValue;
+ }
+
+ /**
+ * get a short value from the object
+ * @param aValue
+ * @return a short
+ * @throws com.sun.star.lang.IllegalArgumentException if the object cannot be converted
+ */
+ public static short toShort(Object aValue)
+ throws com.sun.star.lang.IllegalArgumentException
+ {
+ short retValue = 0;
+ TypeObject aTypeObject = getTypeObject(aValue);
+ switch (aTypeObject.iType)
+ {
+ case BYTE_TYPE:
+ retValue = getByte(aTypeObject);
+ break;
+ case CHAR_TYPE:
+ retValue = (byte) getChar(aTypeObject);
+ break;
+ case SHORT_TYPE:
+ retValue = getShort(aTypeObject);
+ break;
+ case INT_TYPE:
+ retValue = (short) getInt(aTypeObject);
+ break;
+ case LONG_TYPE:
+ retValue = (short) getLong(aTypeObject);
+ break;
+ case FLOAT_TYPE:
+ retValue = (short) getFloat(aTypeObject);
+ break;
+ case DOUBLE_TYPE:
+ retValue = (short) getDouble(aTypeObject);
+ break;
+ case STRING_TYPE:
+ try
+ {
+ retValue = Short.parseShort((String) aTypeObject.aValue);
+ }
+ catch (java.lang.NumberFormatException e)
+ {
+ throw new com.sun.star.lang.IllegalArgumentException(
+ "Cannot convert to short: " + aTypeObject.aValue);
+ }
+ break;
+ case BOOLEAN_TYPE:
+ retValue = getBool(aTypeObject) ? (short) -1 : (short) 0;
+ break;
+ default:
+ throw new com.sun.star.lang.IllegalArgumentException(
+ "Cannot convert this type: " + aValue.getClass().getName());
+ }
+ return retValue;
+ }
+
+ public static boolean isValidAndNumerical(Object aValue) throws com.sun.star.lang.IllegalArgumentException
+ {
+ if (aValue != null)
+ {
+ if (!AnyConverter.isVoid(aValue))
+ {
+ return (NumericalHelper.isNumerical(aValue));
+ }
+ }
+ return false;
+ }
+
+ public static boolean isValidAndBoolean(Object aValue) throws com.sun.star.lang.IllegalArgumentException
+ {
+ if (aValue != null)
+ {
+ if (!AnyConverter.isVoid(aValue))
+ {
+ int nType = AnyConverter.getType(aValue).getTypeClass().getValue();
+ return (nType == TypeClass.BOOLEAN_value);
+ }
+ }
+ return false;
+ }
+
+ public static boolean isValid(Object aValue)
+ {
+ if (aValue != null)
+ {
+ if (!AnyConverter.isVoid(aValue))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ @param aValue a object this can contain anything
+ @return true, if the parameter aValue is type of real numbers
+ @deprecate, use isRealNumber() instead.
+ */
+ public static boolean isNumerical(Object aValue)
+ {
+ try
+ {
+ TypeObject aTypeObject = getTypeObject(aValue);
+ switch (aTypeObject.iType)
+ {
+ case BYTE_TYPE:
+ case CHAR_TYPE:
+ case SHORT_TYPE:
+ case INT_TYPE:
+ case LONG_TYPE:
+ case DOUBLE_TYPE:
+ case FLOAT_TYPE:
+ return true;
+ default:
+ return false;
+ }
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e)
+ {
+ return false;
+ }
+ }
+
+ /**
+ @param _aValue a object this can contain anything
+ @return true, if the parameter aValue is type of real numbers
+
+ see also http://en.wikipedia.org/wiki/Mathematics
+ */
+ public static boolean isRealNumber(Object _aValue)
+ {
+ return isNumerical(_aValue);
+ }
+
+ /**
+ @param aValue a object this can contain anything
+ * @return true, if the value is type of any integer values. double / float are not(!) integer values
+ * @throws com.sun.star.lang.IllegalArgumentException
+ */
+ public static boolean isInteger(Object aValue) throws com.sun.star.lang.IllegalArgumentException
+ {
+ TypeObject aTypeObject = getTypeObject(aValue);
+ switch (aTypeObject.iType)
+ {
+ case BYTE_TYPE:
+ case CHAR_TYPE:
+ case SHORT_TYPE:
+ case INT_TYPE:
+ case LONG_TYPE:
+ return true;
+ default:
+ return false;
+ }
+ }
+
+ /**
+ * Can a given object be converted to a String array?
+ * @param aValue the object to test
+ * @return true, if the object can be converted to a String array.
+ */
+ public static boolean isStringArray(Object aValue)
+ {
+ try
+ {
+ toStringArray(aValue);
+ return true;
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e)
+ {
+ // ignore
+ }
+ return false;
+ }
+
+ /**
+ * Can a given object be converted to an int array?
+ * @param aValue the object to test
+ * @return true, if the object can be converted to an Integer array.
+ */
+ public static boolean isIntegerArray(Object aValue)
+ {
+ try
+ {
+ toIntArray(aValue);
+ return true;
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e)
+ {
+ // ignore
+ }
+ return false;
+ }
+
+ /**
+ * get an int value from the object
+ * @param aValue
+ * @return an int
+ * @throws com.sun.star.lang.IllegalArgumentException if the object cannot be converted
+ */
+ public static int toInt(Object aValue)
+ throws com.sun.star.lang.IllegalArgumentException
+ {
+ int retValue = 0;
+ TypeObject aTypeObject = getTypeObject(aValue);
+ switch (aTypeObject.iType)
+ {
+ case BYTE_TYPE:
+ retValue = getByte(aTypeObject);
+ break;
+ case CHAR_TYPE:
+ retValue = getChar(aTypeObject);
+ break;
+ case SHORT_TYPE:
+ retValue = getShort(aTypeObject);
+ break;
+ case INT_TYPE:
+ retValue = getInt(aTypeObject);
+ break;
+ case LONG_TYPE:
+ retValue = (int) getLong(aTypeObject);
+ break;
+ case FLOAT_TYPE:
+ retValue = (int) getFloat(aTypeObject);
+ break;
+ case DOUBLE_TYPE:
+ retValue = (int) getDouble(aTypeObject);
+ break;
+ case STRING_TYPE:
+ try
+ {
+ retValue = Integer.parseInt((String) aTypeObject.aValue);
+ }
+ catch (java.lang.NumberFormatException e)
+ {
+ throw new com.sun.star.lang.IllegalArgumentException(
+ "Cannot convert to int: " + aTypeObject.aValue);
+ }
+ break;
+ case BOOLEAN_TYPE:
+ retValue = getBool(aTypeObject) ? -1 : 0;
+ break;
+ default:
+ throw new com.sun.star.lang.IllegalArgumentException(
+ "Cannot convert this type: " + aValue.getClass().getName());
+ }
+ return retValue;
+ }
+
+ /**
+ * get a long value from the object
+ * @param aValue
+ * @return a long
+ * @throws com.sun.star.lang.IllegalArgumentException if the object cannot be converted
+ */
+ public static long toLong(Object aValue)
+ throws com.sun.star.lang.IllegalArgumentException
+ {
+ long retValue = 0;
+ TypeObject aTypeObject = getTypeObject(aValue);
+ switch (aTypeObject.iType)
+ {
+ case BYTE_TYPE:
+ retValue = getByte(aTypeObject);
+ break;
+ case CHAR_TYPE:
+ retValue = getChar(aTypeObject);
+ break;
+ case SHORT_TYPE:
+ retValue = getShort(aTypeObject);
+ break;
+ case INT_TYPE:
+ retValue = getInt(aTypeObject);
+ break;
+ case LONG_TYPE:
+ retValue = getLong(aTypeObject);
+ break;
+ case FLOAT_TYPE:
+ retValue = (long) getFloat(aTypeObject);
+ break;
+ case DOUBLE_TYPE:
+ retValue = (long) getDouble(aTypeObject);
+ break;
+ case STRING_TYPE:
+ try
+ {
+ retValue = Long.parseLong((String) aTypeObject.aValue);
+ }
+ catch (java.lang.NumberFormatException e)
+ {
+ throw new com.sun.star.lang.IllegalArgumentException(
+ "Cannot convert to short: " + aTypeObject.aValue);
+ }
+ break;
+ case BOOLEAN_TYPE:
+ retValue = getBool(aTypeObject) ? -1 : 0;
+ break;
+ default:
+ throw new com.sun.star.lang.IllegalArgumentException(
+ "Cannot convert this type: " + aValue.getClass().getName());
+ }
+ return retValue;
+ }
+
+ /**
+ * get a float value from the object
+ * @param aValue
+ * @return a float
* @throws com.sun.star.lang.IllegalArgumentException if the object cannot be converted
*/
- public static int toInt(Object aValue)
+ public static float toFloat(Object aValue)
throws com.sun.star.lang.IllegalArgumentException
{
- int retValue = 0;
+ float retValue = (float) 0.0;
TypeObject aTypeObject = getTypeObject(aValue);
switch (aTypeObject.iType)
{
@@ -86,27 +527,27 @@ public class NumericalHelper
retValue = getInt(aTypeObject);
break;
case LONG_TYPE:
- retValue = (int) getLong(aTypeObject);
+ retValue = getLong(aTypeObject);
break;
case FLOAT_TYPE:
- retValue = (int) getFloat(aTypeObject);
+ retValue = getFloat(aTypeObject);
break;
case DOUBLE_TYPE:
- retValue = (int) getDouble(aTypeObject);
+ retValue = (float) getDouble(aTypeObject);
break;
case STRING_TYPE:
try
{
- retValue = Integer.parseInt((String) aTypeObject.aValue);
+ retValue = Float.parseFloat((String) aTypeObject.aValue);
}
catch (java.lang.NumberFormatException e)
{
throw new com.sun.star.lang.IllegalArgumentException(
- "Cannot convert to int: " + aTypeObject.aValue);
+ "Cannot convert to short: " + aTypeObject.aValue);
}
break;
case BOOLEAN_TYPE:
- retValue = getBool(aTypeObject) ? -1 : 0;
+ retValue = getBool(aTypeObject) ? (float) -1 : (float) 0;
break;
default:
throw new com.sun.star.lang.IllegalArgumentException(
@@ -117,6 +558,7 @@ public class NumericalHelper
/**
* get a double value from the object
+ * @param aValue
* @return a double
* @throws com.sun.star.lang.IllegalArgumentException if the object cannot be converted
*/
@@ -170,7 +612,58 @@ public class NumericalHelper
}
/**
+ * get a String value from the object
+ * @param aValue
+ * @return a String
+ * @throws com.sun.star.lang.IllegalArgumentException if the object cannot be converted
+ */
+ public static String toString(Object aValue)
+ throws com.sun.star.lang.IllegalArgumentException
+ {
+ String retValue = null;
+ TypeObject aTypeObject = getTypeObject(aValue);
+ switch (aTypeObject.iType)
+ {
+ case BYTE_TYPE:
+ retValue = aTypeObject.aValue.toString();
+ break;
+ case CHAR_TYPE:
+ retValue = aTypeObject.aValue.toString();
+ break;
+ case SHORT_TYPE:
+ retValue = aTypeObject.aValue.toString();
+ break;
+ case INT_TYPE:
+ retValue = aTypeObject.aValue.toString();
+ break;
+ case LONG_TYPE:
+ retValue = aTypeObject.aValue.toString();
+ break;
+ case FLOAT_TYPE:
+ retValue = aTypeObject.aValue.toString();
+ break;
+ case DOUBLE_TYPE:
+ retValue = aTypeObject.aValue.toString();
+ break;
+ case STRING_TYPE:
+ retValue = (String) aTypeObject.aValue;
+ break;
+ case BOOLEAN_TYPE:
+ retValue = aTypeObject.aValue.toString();
+ break;
+ case SEQUENCE_TYPE:
+ retValue = new String(toByteArray((aValue)));
+ break;
+ default:
+ throw new com.sun.star.lang.IllegalArgumentException(
+ "Cannot convert this type: " + aValue.getClass().getName());
+ }
+ return retValue;
+ }
+
+ /**
* get a boolean value from the object
+ * @param aValue
* @return a boolean
* @throws com.sun.star.lang.IllegalArgumentException if the object cannot be converted
*/
@@ -224,6 +717,320 @@ public class NumericalHelper
}
/**
+ * get an int array from an object
+ * @param anArrayValue a value that is constructed into an array
+ * @return an integer array
+ * @throws com.sun.star.lang.IllegalArgumentException
+ */
+ public static int[] toIntArray(Object anArrayValue)
+ throws com.sun.star.lang.IllegalArgumentException
+ {
+ int[] retValue = null;
+ TypeObject aTypeObject = getTypeObject(anArrayValue);
+ if (aTypeObject.iType == SEQUENCE_TYPE)
+ {
+ Object[] obj = convertSequenceToObjectArray(aTypeObject);
+ retValue = new int[obj.length];
+ for (int i = 0; i < obj.length; i++)
+ {
+ retValue[i] = toInt(obj[i]);
+ }
+ }
+ else
+ { // object is not really an array
+ retValue = new int[]
+ {
+ toInt(anArrayValue)
+ };
+ }
+ return retValue;
+ }
+
+ /**
+ * get an byte array from an object
+ * @param anArrayValue a value that is constructed into an array
+ * @return a byte array
+ * @throws com.sun.star.lang.IllegalArgumentException
+ */
+ public static byte[] toByteArray(Object anArrayValue)
+ throws com.sun.star.lang.IllegalArgumentException
+ {
+ byte[] retValue = null;
+ TypeObject aTypeObject = getTypeObject(anArrayValue);
+ if (aTypeObject.iType == SEQUENCE_TYPE)
+ {
+ Object[] obj = convertSequenceToObjectArray(aTypeObject);
+ retValue = new byte[obj.length];
+ for (int i = 0; i < obj.length; i++)
+ {
+ retValue[i] = toByte(obj[i]);
+ }
+ }
+ else
+ { // object is not really an array
+ retValue = new byte[]
+ {
+ toByte(anArrayValue)
+ };
+ }
+ return retValue;
+ }
+
+ /**
+ * get a short array from an object
+ * @param anArrayValue a value that is constructed into an array
+ * @return a short array
+ * @throws com.sun.star.lang.IllegalArgumentException
+ */
+ public static short[] toShortArray(Object anArrayValue)
+ throws com.sun.star.lang.IllegalArgumentException
+ {
+ short[] retValue = null;
+ TypeObject aTypeObject = getTypeObject(anArrayValue);
+ if (aTypeObject.iType == SEQUENCE_TYPE)
+ {
+ Object[] obj = convertSequenceToObjectArray(aTypeObject);
+ retValue = new short[obj.length];
+ for (int i = 0; i < obj.length; i++)
+ {
+ retValue[i] = toShort(obj[i]);
+ }
+ }
+ else
+ { // object is not really an array
+ retValue = new short[]
+ {
+ toShort(anArrayValue)
+ };
+ }
+ return retValue;
+ }
+
+ /**
+ * get a string array from an object
+ * @param anArrayValue a value that is constructed into an array
+ * @return a short array
+ * @throws com.sun.star.lang.IllegalArgumentException
+ */
+ public static String[] toStringArray(Object anArrayValue)
+ throws com.sun.star.lang.IllegalArgumentException
+ {
+ String[] retValue = null;
+ TypeObject aTypeObject = getTypeObject(anArrayValue);
+ if (aTypeObject.iType == SEQUENCE_TYPE)
+ {
+ Object[] obj = convertSequenceToObjectArray(aTypeObject);
+ retValue = new String[obj.length];
+ for (int i = 0; i < obj.length; i++)
+ {
+ retValue[i] = toString(obj[i]);
+ }
+ }
+ else
+ { // object is not really an array
+ retValue = new String[]
+ {
+ toString(anArrayValue)
+ };
+ }
+ return retValue;
+ }
+
+ /**
+ * get an int from an object
+ * @param _aValue a value that is constructed into an int
+ * @param _ndefaultValue the value that is returned, if conversion fails, or if 'aValue' is null
+ * @return an int value
+ * @throws java.lang.Exception
+ */
+ public static int toInt(Object _aValue, int _ndefaultValue) throws Exception
+ {
+ int nreturn = _ndefaultValue;
+ try
+ {
+ if ((_aValue != null) && (!(AnyConverter.isVoid(_aValue))))
+ {
+ if (isInteger(_aValue))
+ {
+ nreturn = toInt(_aValue);
+ }
+ else
+ {
+ DebugHelper.exception(1/* BasicErrorCode.SbERR_CONVERSION*/, PropertyNames.EMPTY_STRING);
+ }
+ }
+ }
+ catch (com.sun.star.uno.Exception e)
+ {
+ DebugHelper.exception(1 /*BasicErrorCode.SbERR_METHOD_FAILED*/, PropertyNames.EMPTY_STRING);
+ }
+ return nreturn;
+ }
+
+ /**
+ * get a long from an object
+ * @param aValue a value that is constructed into a long
+ * @param defaultValue the value that is returned, if conversion fails
+ * @return a long value
+ */
+ public static long toLong(Object aValue, long defaultValue)
+ {
+ try
+ {
+ return toLong(aValue);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e)
+ {
+ // ignore exception
+ }
+ return defaultValue;
+ }
+
+ /**
+ * get a float from an object
+ * @param aValue a value that is constructed into a float
+ * @param defaultValue the value that is returned, if conversion fails
+ * @return a long value
+ */
+ public static float toFloat(Object aValue, float defaultValue)
+ {
+ try
+ {
+ return toFloat(aValue);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e)
+ {
+ // ignore exception
+ }
+ return defaultValue;
+ }
+
+ /**
+ * get a double from an object
+ * @param aValue a value that is constructed into a double
+ * @param defaultValue the value that is returned, if conversion fails
+ * @return a double value
+ */
+ public static double toDouble(Object aValue, double defaultValue)
+ {
+ try
+ {
+ return toDouble(aValue);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e)
+ {
+ // ignore exception
+ }
+ return defaultValue;
+ }
+
+ /**
+ * get a string from an object
+ * @param aValue a value that is constructed into a string
+ * @param defaultValue the value that is returned, if conversion fails
+ * @return a string value
+ */
+ public static String toString(Object aValue, String defaultValue)
+ {
+ try
+ {
+ return toString(aValue);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e)
+ {
+ // ignore exception
+ }
+ return defaultValue;
+ }
+
+ /**
+ * get a boolean from an object
+ * @param aValue a value that is constructed into a boolean
+ * @param defaultValue the value that is returned, if conversion fails
+ * @return a boolean value
+ */
+ public static boolean toBoolean(Object aValue, boolean defaultValue)
+ {
+ try
+ {
+ return toBoolean(aValue);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e)
+ {
+ // ignore exception
+ }
+ return defaultValue;
+ }
+
+ /**
+ * get a int array from an object
+ * @param anArrayValue a value that is constructed into an int array
+ * @param defaultValue the value that is returned, if conversion fails
+ * @return an int array
+ */
+ public static int[] toIntArray(Object anArrayValue, int[] defaultValue)
+ {
+ try
+ {
+ return toIntArray(anArrayValue);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e)
+ {
+ // ignore exception
+ }
+ return defaultValue;
+ }
+
+ /**
+ * get a short array from an object
+ * @param anArrayValue a value that is constructed into a short array
+ * @param defaultValue the value that is returned, if conversion fails
+ * @return a short array
+ */
+ public static short[] toShortArray(Object anArrayValue, short[] defaultValue)
+ {
+ try
+ {
+ return toShortArray(anArrayValue);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e)
+ {
+ // ignore exception
+ }
+ return defaultValue;
+ }
+
+ /**
+ * get a string array from an object
+ * @param anArrayValue a value that is constructed into a string array
+ * @param defaultValue the value that is returned, if conversion fails
+ * @return a string array
+ */
+ public static String[] toStringArray(Object anArrayValue, String[] defaultValue)
+ {
+ try
+ {
+ return toStringArray(anArrayValue);
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e)
+ {
+ // ignore exception
+ }
+ return defaultValue;
+ }
+
+ /**
+ * get a hexadecimal representation from a number
+ * @param number the number to transform
+ * @return a String with the hex code of the number
+ */
+ public static String getHexStringFromNumber(long number)
+ {
+ TransformNumToHex num = new TransformNumToHex(number);
+ return num.getResult();
+ }
+
+ /**
* get the type object from the given object
* @param aValue an object representing a (numerical) value; can also be an 'any'
* @return a type object: the object together with the its type information
@@ -246,19 +1053,19 @@ public class NumericalHelper
break;
case TypeClass.BYTE_value:
aTypeObject.iType = BYTE_TYPE;
- aTypeObject.aValue = Byte.valueOf(AnyConverter.toByte(aValue));
+ aTypeObject.aValue = new Byte(AnyConverter.toByte(aValue));
break;
case TypeClass.SHORT_value:
aTypeObject.iType = SHORT_TYPE;
- aTypeObject.aValue = Short.valueOf(AnyConverter.toShort(aValue));
+ aTypeObject.aValue = new Short(AnyConverter.toShort(aValue));
break;
case TypeClass.LONG_value:
aTypeObject.iType = INT_TYPE;
- aTypeObject.aValue = Integer.valueOf(AnyConverter.toInt(aValue));
+ aTypeObject.aValue = new Integer(AnyConverter.toInt(aValue));
break;
case TypeClass.HYPER_value:
aTypeObject.iType = LONG_TYPE;
- aTypeObject.aValue = Long.valueOf(AnyConverter.toLong(aValue));
+ aTypeObject.aValue = new Long(AnyConverter.toLong(aValue));
break;
case TypeClass.FLOAT_value:
aTypeObject.iType = FLOAT_TYPE;
@@ -335,7 +1142,7 @@ public class NumericalHelper
* @return
* @throws com.sun.star.lang.IllegalArgumentException
*/
- private static int getInt(TypeObject typeObject)
+ static int getInt(TypeObject typeObject)
throws com.sun.star.lang.IllegalArgumentException
{
if (typeObject.iType != INT_TYPE)
@@ -350,7 +1157,7 @@ public class NumericalHelper
* get the simple float type
* @throws com.sun.star.lang.IllegalArgumentException
*/
- private static float getFloat(TypeObject typeObject)
+ static float getFloat(TypeObject typeObject)
throws com.sun.star.lang.IllegalArgumentException
{
if (typeObject.iType != FLOAT_TYPE)
@@ -444,5 +1251,114 @@ public class NumericalHelper
transform(number);
}
}
+
+ public String getResult()
+ {
+ return val.toString();
+ }
+ }
+
+ private static Object[] convertSequenceToObjectArray(
+ TypeObject sourceObject)
+ throws com.sun.star.lang.IllegalArgumentException
+ {
+ Object array = sourceObject.aValue;
+ Class<?> c = array.getClass();
+ Object[] aShortVal = null;
+ if (c.equals(byte[].class))
+ {
+ byte[] vals = (byte[]) array;
+ aShortVal = new Object[vals.length];
+ for (int i = 0; i < vals.length; i++)
+ {
+ aShortVal[i] = new Byte(vals[i]);
+ }
+ }
+ else if (c.equals(short[].class))
+ {
+ short[] vals = (short[]) array;
+ aShortVal = new Object[vals.length];
+ for (int i = 0; i < vals.length; i++)
+ {
+ aShortVal[i] = new Short(vals[i]);
+ }
+ }
+ else if (c.equals(int[].class))
+ {
+ int[] vals = (int[]) array;
+ aShortVal = new Object[vals.length];
+ for (int i = 0; i < vals.length; i++)
+ {
+ aShortVal[i] = new Integer(vals[i]);
+ }
+ }
+ else if (c.equals(long[].class))
+ {
+ long[] vals = (long[]) array;
+ aShortVal = new Object[vals.length];
+ for (int i = 0; i < vals.length; i++)
+ {
+ aShortVal[i] = new Long(vals[i]);
+ }
+ }
+ else if (c.equals(float[].class))
+ {
+ float[] vals = (float[]) array;
+ aShortVal = new Object[vals.length];
+ for (int i = 0; i < vals.length; i++)
+ {
+ aShortVal[i] = new Float(vals[i]);
+ }
+ }
+ else if (c.equals(double[].class))
+ {
+ double[] vals = (double[]) array;
+ aShortVal = new Object[vals.length];
+ for (int i = 0; i < vals.length; i++)
+ {
+ aShortVal[i] = new Double(vals[i]);
+ }
+ }
+ else if (c.equals(boolean[].class))
+ {
+ boolean[] vals = (boolean[]) array;
+ aShortVal = new Object[vals.length];
+ for (int i = 0; i < vals.length; i++)
+ {
+ aShortVal[i] = Boolean.valueOf(vals[i]);
+ }
+ }
+ // if nothing did match, try this
+ if (aShortVal == null)
+ {
+ try
+ {
+ aShortVal = (Object[]) array;
+ }
+ catch (java.lang.ClassCastException e)
+ {
+ // unknown type cannot be converted
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list