Hi Fernand,
the refresh don´t have a effect.
// Attach the fieldmaster to the field...
userField.attachTextFieldMaster(masterPropSet);
((XRefreshable) UnoRuntime.queryInterface(XRefreshable.class,
xTextFieldsSupplier.getTextFields())).refresh();
Am 27.08.2012 11:48, schrieb Fernand Vanrie:
Carsten ,
you need a "refresch" off the field ?
hope it helps
Fernand
Hello, i have a problem with formatting of a text field. I create a
text field in Java and insert this in a document.
The content is 0.0 and the format is the default currency. But the
content is not formatted. The document show me 0.0 and not 0,00 €.
Why?
private void setTextField(Object[] value)
{
try
{
XTextDocument xTextDocument = (XTextDocument)
UnoRuntime.queryInterface(XTextDocument.class, oBean.getDocument());
XController xController = xTextDocument.getCurrentController();
XTextViewCursorSupplier xTextViewCursorSupplier =
(XTextViewCursorSupplier)
UnoRuntime.queryInterface(XTextViewCursorSupplier.class, xController);
XTextViewCursor xDocTextCursor =
xTextViewCursorSupplier.getViewCursor();
XText xText = xDocTextCursor.getText();
xText.insertTextContent(xDocTextCursor,
createTextField(xTextDocument, (String) value[2], (String) value[1]),
false);
}
catch (Exception e)
{
logger.error(e);
}
}
private XDependentTextField createTextField(XTextDocument
xTextDocument, String fieldName, String fieldValue)
{
XMultiServiceFactory xMultiServiceFactory = (XMultiServiceFactory)
UnoRuntime.queryInterface(XMultiServiceFactory.class, xTextDocument);
XTextFieldsSupplier xTextFieldsSupplier = (XTextFieldsSupplier)
UnoRuntime.queryInterface(XTextFieldsSupplier.class, xTextDocument);
XNameAccess xNamedFieldMasters =
xTextFieldsSupplier.getTextFieldMasters();
XDependentTextField userField = null;
XPropertySet masterPropSet = null;
try
{
// Create the field...
userField = (XDependentTextField)
UnoRuntime.queryInterface(XDependentTextField.class,
xMultiServiceFactory.createInstance("com.sun.star.text.TextField.User"));
if
(!xNamedFieldMasters.hasByName("com.sun.star.text.FieldMaster.User."
+ fieldName))
{
// Create the field master...
masterPropSet = (XPropertySet)
UnoRuntime.queryInterface(XPropertySet.class,
xMultiServiceFactory.createInstance("com.sun.star.text.FieldMaster.User"));
// Set the field name and content...
masterPropSet.setPropertyValue("Name", fieldName);
masterPropSet.setPropertyValue("Content", fieldValue);
if (fieldValue.equals("0.0"))
{
// Query the number formats supplier of the document
com.sun.star.util.XNumberFormatsSupplier xNumberFormatsSupplier =
(com.sun.star.util.XNumberFormatsSupplier)
UnoRuntime.queryInterface(com.sun.star.util.XNumberFormatsSupplier.class,
xTextDocument);
// Get the number formats from the supplier
com.sun.star.util.XNumberFormats xNumberFormats =
xNumberFormatsSupplier.getNumberFormats();
// Query the XNumberFormatTypes interface
com.sun.star.util.XNumberFormatTypes xNumberFormatTypes =
(com.sun.star.util.XNumberFormatTypes)
UnoRuntime.queryInterface(com.sun.star.util.XNumberFormatTypes.class,
xNumberFormats);
// Get the number format index key of the default currency
// format,
// note the empty locale for default locale
com.sun.star.lang.Locale aLocale = new com.sun.star.lang.Locale();
int nCurrencyKey =
xNumberFormatTypes.getStandardFormat(com.sun.star.util.NumberFormat.CURRENCY,
aLocale);
XPropertySet fieldProperties = (XPropertySet)
UnoRuntime.queryInterface(XPropertySet.class, userField);
fieldProperties.setPropertyValue("NumberFormat", new
Integer(nCurrencyKey));
}
}
else
{
masterPropSet = (XPropertySet)
UnoRuntime.queryInterface(XPropertySet.class,
xNamedFieldMasters.getByName("com.sun.star.text.FieldMaster.User." +
fieldName));
}
// Attach the fieldmaster to the field...
userField.attachTextFieldMaster(masterPropSet);
}
catch (java.lang.Exception e)
{
logger.error(e);
}
return userField;
}
Kind regrads
Carsten