create a new page, using OOoBasic/Macros/MRI/Documentation/RunMRI as a template.
Front page
Search
掲示板
Reload
Help
Browse Log
掲示板の使い方
OOo 掲示板3
OOo 掲示板2
OOo 掲示板
掲示板
雑談掲示板
New
List of pages
Recent changes
Backup
簡単ヘルプ
整形ルール
Start:
*MRI の起動の仕方 [#r9f52847]
#contents
MRI はどんな言語からも呼び出すことができ、またアドオンメ...
**言語から利用 [#c236530e]
あなたが利用したい言語から MRI を利用したいとき、"mytools...
''inspect'' メソッドは com.sun.star.beans.XIntrospection ...
UNO オブジェクト以外のものを inspect メソッドに渡しても M...
com.sun.star.beans.XIntrospectionAccess ''inspect''( [in]...
***OpenOffice.org Basic [#ee8f0179]
OOo Basic 用に MRILib ライブラリが付属しています。MRILib ...
Mri ThisComponent
Mri の引数はオプションです。引数を与えずに呼び出したとき...
Mri '
Mri を最初に呼び出す前に MRILib ライブラリを読み込んでお...
Globalscope.BasicLibraries.LoadLibrary("MRILib")
また、Mri サブルーチンを利用せずに一般的に MRI を実行する...
oMRI = CreateUnoService("mytools.Mri")
oMRI.inspect(ThisComponent)
#xhppara(note){{
プログラムのコントロールは Mri サブルーチンが実行された後...
}}
#xhppara(note){{
MRI に渡したターゲットが開かれているドキュメントの一部の...
}}
***BeanShell から利用 [#p8778a33]
This is an example of how to use MRI from BeanShell macros.
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext;
import com.sun.star.lang.XMultiComponentFactory;
import com.sun.star.beans.XIntrospection;
//import com.sun.star.beans.XIntrospectionAccess;
XComponentContext xContext = XSCRIPTCONTEXT.getComponent...
XMultiComponentFactory xMCF = xContext.getServiceManager...
try {
oMRI = xMCF.createInstanceWithContext( "mytools.Mri", ...
} catch (com.sun.star.uno.Exception e) {
System.out.println( e.Message );
}
XIntrospection xIntrospection = (XIntrospection) UnoRunt...
XIntrospection.cl...
Object oDoc = XSCRIPTCONTEXT.getDocument();
Object oIAccess= xIntrospection.inspect(oDoc);
*** JavaScript から利用 [#uddad561]
下記の例では JavaScript のマクロから MRI を利用します。
importClass(Packages.com.sun.star.uno.UnoRuntime);
importClass(Packages.com.sun.star.beans.XIntrospection);
oDoc = XSCRIPTCONTEXT.getDocument();
xContext = XSCRIPTCONTEXT.getComponentContext();
xMCF = xContext.getServiceManager();
oMRI = xMCF.createInstanceWithContext("mytools.Mri", xCo...
xIntrospection = UnoRuntime.queryInterface(XIntrospectio...
xIntrospection.inspect(oDoc);
***Java から利用 [#kfb08d72]
BeanShell と同じようにします。
import com.sun.star.beans.XIntrospection;
try {
Object oMRI = xMultComponentFactory.createInstanceWithC...
"mytools.Mri", xContext );
XIntrospection xIntrospection = (XIntrospection) UnoRun...
XIntrospection.class, oMRI);
xIntrospection.inspect(oShape);
} catch (com.sun.star.uno.Exception e) {
System.err.println();
}
***Python [#s55e807d]
Python マクロから MRI を利用する方法です。
def Mri_test():
ctx = XSCRIPTCONTEXT.getComponentContext()
document = XSCRIPTCONTEXT.getDocument()
mri(ctx,document)
def mri(ctx, target):
mri = ctx.ServiceManager.createInstanceWithContext(
"mytools.Mri",ctx)
mri.inspect(target)
Python-UNO ブリッジからも次のようにして利用できます。
import uno
def connect():
try:
localctx = uno.getComponentContext()
resolver = localctx.ServiceManager.createInstanceWithC...
"com.sun.star.bridge.UnoUrlResolver",localctx)
ctx = resolver.resolve(
"uno:socket,host=localhost,port=2002;urp;StarOffice.C...
except:
return None
return ctx
def mri(ctx, target):
mri = ctx.ServiceManager.createInstanceWithContext(
"mytools.Mri",ctx)
mri.inspect(target)
if __name__=="__main__":
ctx = connect()
if ctx == None:
print "Failed to connect."
import sys
sys.exit()
smgr = ctx.ServiceManager
desktop = smgr.createInstanceWithContext("com.sun.star....
model = desktop.loadComponentFromURL("private:factory/s...
mri(ctx,model)
ctx.ServiceManager
***VB Script [#dc1cbfb6]
MRI は VB Script からも利用できます。
Set oSM = WScript.CreateObject("com.sun.star.ServiceMana...
Set oDesktop = oSM.createInstance("com.sun.star.frame.De...
Dim aArgs()
Set oDoc = oDesktop.loadComponentFromURL("private:factor...
Set oMRI = oSM.createInstance("mytools.Mri")
oMRI.inspect(oDoc)
*** ooRexx [#v2c45e2e]
ooRexx (with Vienna BSF4Rexx).
/* */
xScriptContext = uno.getScriptContext()
xContext = xScriptContext~getComponentContext()
xServiceManager = xContext~getServiceManager()
oDoc = xScriptContext~getDocument
oMRI = xServiceManager~createInstanceWithContext("mytool...
oMRI~XIntrospection~inspect(oDoc)
::requires UNO.CLS
**アドオンメニューからの起動 [#abb51cac]
MRI はメニューからも利用できます。MRI をインストールする...
"MRI" メニューは現在のドキュメントを OOo Basic で書くと次...
oDesktop = CreateUnoService("com.sun.star.frame.Desktop")
oTarget = oDesktop.getCurrentComponent()
Mri oTarget
***Add-Ons メニューから選択範囲と [#y9c080af]
メニューからツール - アドオン - "MRI <- selection" を選択...
oDesktop = CreateUnoService( "com.sun.star.frame.Desktop...
oTarget = oDesktop.CurrentComponent.getCurrentSelection()
Mri oTarget ' using Mri subroutine of the MRILib
'or
oMri = CreateUnoService("mytools.Mri")
oMri.inspect(oTarget)
#xhppara(tip){{
このメニューを利用してドキュメント上の選択できるオブジェ...
}}
#xhppara(note){{
図形描写オブジェクトを選択して選択範囲をターゲットとして ...
}}
***独自のメニュー項目の作成 [#c5e66846]
MRI のメニュー項目を追加、またはツールバーボタンへ追加し...
service:mytools.Mri?current
"current" 引数が与えられると MRI はターゲットとして Deskt...
Desktop の CurrentComponent から選択オブジェクトをターゲ...
service:mytools.Mri?selection
**コマンドラインから起動 [#w9f393d4]
ターミナルなどコマンドラインから起動するには次のようにし...
>soffice service:mytools.Mri?none
End:
*MRI の起動の仕方 [#r9f52847]
#contents
MRI はどんな言語からも呼び出すことができ、またアドオンメ...
**言語から利用 [#c236530e]
あなたが利用したい言語から MRI を利用したいとき、"mytools...
''inspect'' メソッドは com.sun.star.beans.XIntrospection ...
UNO オブジェクト以外のものを inspect メソッドに渡しても M...
com.sun.star.beans.XIntrospectionAccess ''inspect''( [in]...
***OpenOffice.org Basic [#ee8f0179]
OOo Basic 用に MRILib ライブラリが付属しています。MRILib ...
Mri ThisComponent
Mri の引数はオプションです。引数を与えずに呼び出したとき...
Mri '
Mri を最初に呼び出す前に MRILib ライブラリを読み込んでお...
Globalscope.BasicLibraries.LoadLibrary("MRILib")
また、Mri サブルーチンを利用せずに一般的に MRI を実行する...
oMRI = CreateUnoService("mytools.Mri")
oMRI.inspect(ThisComponent)
#xhppara(note){{
プログラムのコントロールは Mri サブルーチンが実行された後...
}}
#xhppara(note){{
MRI に渡したターゲットが開かれているドキュメントの一部の...
}}
***BeanShell から利用 [#p8778a33]
This is an example of how to use MRI from BeanShell macros.
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext;
import com.sun.star.lang.XMultiComponentFactory;
import com.sun.star.beans.XIntrospection;
//import com.sun.star.beans.XIntrospectionAccess;
XComponentContext xContext = XSCRIPTCONTEXT.getComponent...
XMultiComponentFactory xMCF = xContext.getServiceManager...
try {
oMRI = xMCF.createInstanceWithContext( "mytools.Mri", ...
} catch (com.sun.star.uno.Exception e) {
System.out.println( e.Message );
}
XIntrospection xIntrospection = (XIntrospection) UnoRunt...
XIntrospection.cl...
Object oDoc = XSCRIPTCONTEXT.getDocument();
Object oIAccess= xIntrospection.inspect(oDoc);
*** JavaScript から利用 [#uddad561]
下記の例では JavaScript のマクロから MRI を利用します。
importClass(Packages.com.sun.star.uno.UnoRuntime);
importClass(Packages.com.sun.star.beans.XIntrospection);
oDoc = XSCRIPTCONTEXT.getDocument();
xContext = XSCRIPTCONTEXT.getComponentContext();
xMCF = xContext.getServiceManager();
oMRI = xMCF.createInstanceWithContext("mytools.Mri", xCo...
xIntrospection = UnoRuntime.queryInterface(XIntrospectio...
xIntrospection.inspect(oDoc);
***Java から利用 [#kfb08d72]
BeanShell と同じようにします。
import com.sun.star.beans.XIntrospection;
try {
Object oMRI = xMultComponentFactory.createInstanceWithC...
"mytools.Mri", xContext );
XIntrospection xIntrospection = (XIntrospection) UnoRun...
XIntrospection.class, oMRI);
xIntrospection.inspect(oShape);
} catch (com.sun.star.uno.Exception e) {
System.err.println();
}
***Python [#s55e807d]
Python マクロから MRI を利用する方法です。
def Mri_test():
ctx = XSCRIPTCONTEXT.getComponentContext()
document = XSCRIPTCONTEXT.getDocument()
mri(ctx,document)
def mri(ctx, target):
mri = ctx.ServiceManager.createInstanceWithContext(
"mytools.Mri",ctx)
mri.inspect(target)
Python-UNO ブリッジからも次のようにして利用できます。
import uno
def connect():
try:
localctx = uno.getComponentContext()
resolver = localctx.ServiceManager.createInstanceWithC...
"com.sun.star.bridge.UnoUrlResolver",localctx)
ctx = resolver.resolve(
"uno:socket,host=localhost,port=2002;urp;StarOffice.C...
except:
return None
return ctx
def mri(ctx, target):
mri = ctx.ServiceManager.createInstanceWithContext(
"mytools.Mri",ctx)
mri.inspect(target)
if __name__=="__main__":
ctx = connect()
if ctx == None:
print "Failed to connect."
import sys
sys.exit()
smgr = ctx.ServiceManager
desktop = smgr.createInstanceWithContext("com.sun.star....
model = desktop.loadComponentFromURL("private:factory/s...
mri(ctx,model)
ctx.ServiceManager
***VB Script [#dc1cbfb6]
MRI は VB Script からも利用できます。
Set oSM = WScript.CreateObject("com.sun.star.ServiceMana...
Set oDesktop = oSM.createInstance("com.sun.star.frame.De...
Dim aArgs()
Set oDoc = oDesktop.loadComponentFromURL("private:factor...
Set oMRI = oSM.createInstance("mytools.Mri")
oMRI.inspect(oDoc)
*** ooRexx [#v2c45e2e]
ooRexx (with Vienna BSF4Rexx).
/* */
xScriptContext = uno.getScriptContext()
xContext = xScriptContext~getComponentContext()
xServiceManager = xContext~getServiceManager()
oDoc = xScriptContext~getDocument
oMRI = xServiceManager~createInstanceWithContext("mytool...
oMRI~XIntrospection~inspect(oDoc)
::requires UNO.CLS
**アドオンメニューからの起動 [#abb51cac]
MRI はメニューからも利用できます。MRI をインストールする...
"MRI" メニューは現在のドキュメントを OOo Basic で書くと次...
oDesktop = CreateUnoService("com.sun.star.frame.Desktop")
oTarget = oDesktop.getCurrentComponent()
Mri oTarget
***Add-Ons メニューから選択範囲と [#y9c080af]
メニューからツール - アドオン - "MRI <- selection" を選択...
oDesktop = CreateUnoService( "com.sun.star.frame.Desktop...
oTarget = oDesktop.CurrentComponent.getCurrentSelection()
Mri oTarget ' using Mri subroutine of the MRILib
'or
oMri = CreateUnoService("mytools.Mri")
oMri.inspect(oTarget)
#xhppara(tip){{
このメニューを利用してドキュメント上の選択できるオブジェ...
}}
#xhppara(note){{
図形描写オブジェクトを選択して選択範囲をターゲットとして ...
}}
***独自のメニュー項目の作成 [#c5e66846]
MRI のメニュー項目を追加、またはツールバーボタンへ追加し...
service:mytools.Mri?current
"current" 引数が与えられると MRI はターゲットとして Deskt...
Desktop の CurrentComponent から選択オブジェクトをターゲ...
service:mytools.Mri?selection
**コマンドラインから起動 [#w9f393d4]
ターミナルなどコマンドラインから起動するには次のようにし...
>soffice service:mytools.Mri?none
Page: