Marco Castillo wrote:
Dear list:
I'm inserting textfields into a Text Document. At this point I can create a
Text Field and I can insert one text field into a Write Document. I use the
following code to get a valid text field:
private XDependentTextField createTextField(XMultiServiceFactory
documentFactory, String fieldName, String fieldValue) {
XDependentTextField userField = null;
try {
if (documentFactory != null) {
// Create the field...
userField = (XDependentTextField)
UnoRuntime.queryInterface(XDependentTextField.class,
documentFactory.createInstance("com.sun.star.text.TextField.User"));
// Create the field master...
XPropertySet masterPropSet = (XPropertySet)
UnoRuntime.queryInterface(XPropertySet.class,
documentFactory.createInstance("com.sun.star.text.FieldMaster.User"));
// Set the field name and content...
masterPropSet.setPropertyValue("Name", fieldName);
masterPropSet.setPropertyValue("Content", fieldValue);
// Attach the fieldmaster to the field...
userField.attachTextFieldMaster(masterPropSet);
}
}
catch (java.lang.Exception e) {
e.printStackTrace();
}
return userField;
}
I took the above code from the TextDocuments.java example that comes with the
OO SDK. I use the following code to insert the field into a Document:
// Create a field...
XDependentTextField userField0 = this.createTextField(documentFactory,
"field0", "hellohello");
// Get the text document. Here the object document is a properly initialized XTextDocument object...
XText documentText = this.getDocumentText(document);
// Insert the field...
documentText.insertTextContent(documentText.getEnd(), userField0,
false);
The above code works like a breeze. It inserts the field field0 initialized with the
string "hellohello" right at the end of the Document.
Now I have a couple of issues. When I try to insert the created field into the
document again, let's say by invoking the following code:
// Insert the field again...
documentText.insertTextContent(documentText.getStart, userField0,
false);
I get the following exception raised:
com.sun.star.uno.RuntimeException:
at com.sun.star.lib.uno.environments.remote.Job.remoteUnoRequestRaisedException(Job.java:187)
at com.sun.star.lib.uno.environments.remote.Job.execute(Job.java:153)
at
com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:349)
at
com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:318)
at
com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:106)
at
com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:657)
at
com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:159)
at
com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:141)
at $Proxy24.insertTextContent(Unknown Source)
So my first issue is, how can I insert a recently created text field into a Document more than one time? Do I have to use another method than insertTextContent(). The Developer Guide states that the preferred method to insert a text field is insertTextContent(). So why am I getting this Exception when I try to insert the field more than one time?
Maybe you need to create the object one by one from scratch and not
using the "same" object twice
Do I have to use a different method to insert a field more than one time?
The second issue is about the cursor position. I need to insert the field in
the current cursor position. The method insertTextContent() takes three
arguments. The first is a XTextRange that indicates the place within the
document where the text field is going to be inserted. How can I get a
XTextRange value that belongs to the current cursor position within the text
document?
in basic: we uses the viewcursor whos is a tectrange
oDoc.getCurrentController().getViewCursor()
oText.insertTextContent(oViewCursor(),userField0, false)
Thank you in advance for your kind reply and for the time to read this message.
Regards
Marco
____________________________________________________________________________________
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]