 | OO-Snippets: Get the selected text partsCommons| Keywords | get, selected, text, parts, part, selection |
|---|
| Language | ooRexx |
|---|
| Application | Writer |
|---|
| Authors | Josef Frysak (initial)
|
|---|
| Supported Versions | 2.4.1 |
|---|
| Supported OS | All |
|---|
| Question | How to get the selected text parts?
|
|---|
| Answer | Get the current selections of the document and iterate trough this container. For every entry get the "XTextRange" interface and read the text string by calling the entrys "getString" function. For further details see http://wi.wu-wien.ac.at/rgf/diplomarbeiten/BakkStuff/2008/200809_Frysak/200809_Frysak_Automating_OOo_ooRexx_Nutshells.pdf. |
|---|
x_ScriptContext = uno.getScriptContext()
if (x_ScriptContext <> .nil) then
do
x_ComponentContext = x_ScriptContext~getComponentContext
x_Desktop = x_ScriptContext~getDesktop
x_Document = x_ScriptContext~getDocument
end
else
do
x_ComponentContext = UNO.connect()
service = "com.sun.star.frame.Desktop"
s_Desktop = x_ComponentContext~getServiceManager~XMultiServiceFactory~createInstance(service)
x_Desktop = s_Desktop~XDesktop
x_Document = x_Desktop~getCurrentComponent()
end
output = "Text: "
x_Model = x_Document~XModel
s_Container = x_Model~getCurrentSelection()
if s_Container <> .nil then
do
x_IndexAccess = s_Container~XIndexAccess
size = x_IndexAccess~getCount()
do counter = 1 to size
s_text = x_IndexAccess~getByIndex(counter - 1)
x_TextRange = s_text~XTextRange
output = output || x_TextRange~getString()
end
end
.bsf.dialog~messageBox(output, "Currently Selected Text:", "information")
::requires UNO.CLS
|
Changelog| Date | User | Modification |
|---|
| 2008-10-14 | 1 | Initial version |
|