---- Original message ----
Date: Fri, 31 Dec 2010 12:16:25 +0000 (UTC)
From: Sandro <[email protected]>
Subject: [users] Re: API to clone a row in a
writer's table
To: [email protected]
>Thanks Andrew,
>
>Andrew Douglas Pitonyak <andrew <at>
pitonyak.org> writes:>
>
>> Note that I have not tried anything that I am
about to suggest
>>
>> 1. Insert the new row where you desire it to
be.
>>
>> 2. Use the view cursor to select the row that
you desire to duplicate.
>>
>> 3. Use a dispatch to copy row to the clipboard.
>>
>> 4. Move the view cursor to the new position and
use a dispatch to paste
>> the row into the new row.
>
>after sending this mail I did also investigate
the solution with dispatcher,
>but I realized I couldn't understand how to move
the viewcursor to the
>correct location... moreover I mean to use it in
a headless environ and I
>wasn't sure that this is the best solution.
Anyhow this is what I did:
>
>
> table = document.TextTables.getByIndex(0)
> cell = table.getCellByPosition(0,1)
> controller=document.getCurrentController()
> frame=controller.getFrame()
> view_cursor=controller.getViewCursor()
>
> ... how to move the cursor to the cell??
>
> dispatcher = context.ServiceManager.
>
createInstance('com.sun.star.frame.DispatchHelper')
>
> dispatcher.executeDispatch(frame,
'.uno:EntireRow', '', 0, tuple())
> dispatcher.executeDispatch(frame, '.uno:Copy',
'', 0, tuple())
> dispatcher.executeDispatch(frame, '.uno:Paste',
'', 0, tuple())
> dispatcher.executeDispatch(frame,
'.uno:JumpToNextCell', '', 0, tuple())
>
>
>
>
>>
>> Note: This will likely fail with a complex
table and special care is
>> required for complex content (such as when a
cell contains multiple text
>> objects; for example, an embedded image).
>
>The case I'm dealing with now is simple but as it
is part of a template
>system that is public I can't make assumptions on
how complex will the real
>templates be.
>
>> I think that new provisions may exist for
copying text content. If that is
>> the case, you may be able to copy the text
content in each cell to the new
>> cell in the new row.
>
>Can you explain what you mean by "new provisions
may exist for copying text
>content". I think this is what I was looking for
but I was not able to find
>a way neather for copying text and style nor for
pasting it!...
>
>
>thanks for your time
>sandro
>*:-)
>
>>
>> On 12/28/2010 11:36 AM, Sandro wrote:
>> > Hi,
>> > I already spent many hours on this problem
and I can't find the correct
>> > approach. I really hope someone can help me
or point me in the correct
>> > direction/reading.
>> >
>> > I need to programmatically duplicate rows of
a Table in openoffice writer.
>> >
>> > It's not difficult to add rows via
table.Rows.insertByIndex(idx, count),
>> > that adds empty rows and it's easy to add
text in that row assigning
>> > DataArray to the CellRange. Doing this way
you loose control on the style of
>> > the cells and specifically if a cell has
words with different style
>> > (bold/italic) they get flattened to the same
face. What I need is to
>> > duplicate a row in a way that preserves the
style of each word in the
>> > cell/row.
>> >
>> > This is the last step of a Python template
system that uses openoffice
>> > (http://oootemplate.argolinux.org). I access
the document via 'uno'
>> > interface in Python but any language would do
to explain the logic behind
>> > it.
>> >
>> > thanks in advance
>> >
>> >
>> > sandro
>> > *
>> >
>> >
>> >
---------------------------------------------------------------------
>> > To unsubscribe, e-mail: users-unsubscribe
<at> openoffice.org
>> > For additional commands, e-mail: users-help
<at> openoffice.org
>> >
>>
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail:
[email protected]
>For additional commands, e-mail:
[email protected]
>
>