2010年6月6日日曜日

groovyとApache Commons VFSでJARファイルシステム上のファイルを列挙する

groovyとApache Commons VFSでJARファイルシステム上のファイルを列挙するには、以下のコードを実行します。

import org.apache.commons.vfs.*

fsm = VFS.getManager()

// JAR file systemのファイルを列挙
files = fsm.resolveFile(
"jar://C:\\Program Files\\Groovy\\Groovy-1.7.1\\lib\\groovy-1.7.1.jar!/"
).getChildren()
for(file in files){
println file.getName().getBaseName()
}


動作環境
groovy 1.7.1, JDK6 Update19, apache commons vfs 1.0, apache commons logging 1.1.1

2010年6月5日土曜日

ScriptomとPower Pointで下方向に向いた矢印を描画する

ScriptomとPower Pointで下方向に向いた矢印を描画するには、以下のコードを実行します。

import org.codehaus.groovy.scriptom.*;
import org.codehaus.groovy.scriptom.tlb.office.*;
import org.codehaus.groovy.scriptom.tlb.office.powerpoint.*;

Scriptom.inApartment
{
ppa = new ActiveXObject("PowerPoint.Application")
ppa.Presentations.Open(new File("test1.pptx").canonicalPath,
Scriptom.MISSING, Scriptom.MISSING, MsoTriState.msoFalse)
// 下方向に向いた矢印を描画する
slide = ppa.Presentations(1).slides(1)
shape = slide.Shapes.AddShape(
MsoAutoShapeType.msoShapeDownArrow,
100/* =left */, 100/* =top*/, 200/* =width*/, 200/* height */)

// 線の色
shape.Line.ForeColor.RGB = 0xffffff /* BGR*/
// 塗りつぶし色
shape.Fill.ForeColor.RGB = 0xffddbb /* BGR*/

ppa.Presentations(1).saveAs(new File("test64.pptx").canonicalPath)
ppa.Presentations(1).close()
ppa.quit()
}


元プレゼンテーション(test1.pptx)


出力プレゼンテーション(test64.pptx)
ScriptomとPower Pointで描画した下方向に向いた矢印

動作環境
groovy1.7.0, JDK6 Update18, PowerPoint 2007

groovyとApache Commons VFSでRAMファイルシステム上でファイルを移動する

groovyとApache Commons VFSでRAMファイルシステム上でファイルを移動するには、以下のコードを実行します。

import org.apache.commons.vfs.*

fsm = VFS.getManager()

// RAM file systemにファイルをコピー
fsm.resolveFile( "ram://folder1/test.txt").copyFrom(
fsm.resolveFile("C:\\share\\commons-vfs\\test.txt"),
new AllFileSelector())

// ファイルを移動
fsm.resolveFile( "ram://folder1/test.txt").moveTo(
fsm.resolveFile( "ram://test.txt")
)

// RAM file systemのファイルを列挙
files = fsm.resolveFile("ram:///").getChildren()
for(file in files){
println file.getName().getBaseName()
}


動作環境
groovy 1.7.1, JDK6 Update19, apache commons vfs 1.0, apache commons logging 1.1.1

2010年6月4日金曜日

groovyとVI Java APIで仮想マシンファイル(*.vmx)のパスを一覧表示する

groovyとVI Java APIで仮想マシンファイル(*.vmx)のパスを一覧表示するには、以下のコードを実行します。

import com.vmware.vim25.*
import com.vmware.vim25.mo.*

// VMWare ESXiに接続
host = "https://192.168.1.161/sdk"
user = "root"
password = "password"
si = new ServiceInstance(new URL(host), user, password, true)
rf = si.getRootFolder()

// 仮想マシンファイル(*.vmx)のパスを一覧表示
sc = [["VirtualMachine", "name"]] as String[][]
vms = new InventoryNavigator(rf).searchManagedEntities(sc, true)
for( vm in vms ){
println "${vm.name}:${vm.config?.files?.vmPathName}"
}
si.getServerConnection().logout()


動作環境
groovy 1.7.1, JDK6 Update19, VMware VI (vSphere) Java API vijava2u120091204,
VMWare ESXi 4.0 Update1

関連情報
groovyとVI Java APIのまとめ
VMware VI (vSphere) Java APIのホームページ
http://vijava.sourceforge.net/

ScriptomとPower Pointで二重に波うった四角を描画する

ScriptomとPower Pointで二重に波うった四角を描画するには、以下のコードを実行します。

import org.codehaus.groovy.scriptom.*;
import org.codehaus.groovy.scriptom.tlb.office.*;
import org.codehaus.groovy.scriptom.tlb.office.powerpoint.*;

Scriptom.inApartment
{
ppa = new ActiveXObject("PowerPoint.Application")
ppa.Presentations.Open(new File("test1.pptx").canonicalPath,
Scriptom.MISSING, Scriptom.MISSING, MsoTriState.msoFalse)
// 二重に波うった四角を描画する
slide = ppa.Presentations(1).slides(1)
shape = slide.Shapes.AddShape(
MsoAutoShapeType.msoShapeDoubleWave,
100/* =left */, 100/* =top*/, 200/* =width*/, 200/* height */)

// 線の色
shape.Line.ForeColor.RGB = 0xffffff /* BGR*/
// 塗りつぶし色
shape.Fill.ForeColor.RGB = 0xffddbb /* BGR*/

ppa.Presentations(1).saveAs(new File("test63.pptx").canonicalPath)
ppa.Presentations(1).close()
ppa.quit()
}


元プレゼンテーション(test1.pptx)


出力プレゼンテーション(test63.pptx)
ScriptomとPower Pointで描画した二重に波うった四角

動作環境
groovy1.7.0, JDK6 Update18, PowerPoint 2007

groovyとApache Commons VFSでRAMファイルシステム上にフォルダを作成する

groovyとApache Commons VFSでRAMファイルシステム上にフォルダを作成するには、以下のコードを実行します。

import org.apache.commons.vfs.*

fsm = VFS.getManager()

// RAM file systemにフォルダを作成
fsm.resolveFile( "ram://folder1").createFolder()

// RAM file systemのファイルを列挙
files = fsm.resolveFile("ram:///").getChildren()
for(file in files){
println file.getName().getBaseName()
}

動作環境
groovy 1.7.1, JDK6 Update19, apache commons vfs 1.0, apache commons logging 1.1.1

2010年6月3日木曜日

groovyとjOpenDocumentでOpen Office Calcのセルの値を設定する

groovyとjOpenDocumentでOpen Office Calcのセルの値を設定するには、以下のコードを実行します。

import org.jopendocument.dom.spreadsheet.*

sheets = SpreadSheet.createFromFile(new File("sample1.ods"))
sheet = sheets.getSheet(0)
sheet.setRowCount(sheet.getRowCount() + 1)
// A3セルの値を設定
sheet.setValueAt("日本語", 0, 2)
// B3セルの値を設定
sheet.setValueAt(1234, 1, 2)
// 名前をつけて保存
sheets.saveAs(new File("sample2.ods"))


元ファイル(sample1.ods)


出力ファイル(sample2.png)

groovyとjOpenDocumentでOpen Office Calcのセルの値を設定するには、以下のコードを実行します。

動作環境
groovy 1.7.2, JDK6 Update20, jOpenDocument-1.2b3, OpenOffice 3.2

関連情報
jOpenDocumentのホームページ
http://www.jopendocument.org/