Subversion対応マクロ(update)
Subversionのファイル管理のために、わざわざEclipseを立ち上げるってのも何か間違ってる気がする。
ファイル管理はファイラーの役目、ってことでSubversion対応のマクロを少しずつ作ってみる。
まずはupdateから。
外部コマンドのsvnを呼んでるので、Windowsならsvn.exeにパスが通っている必要がある。
ダイアログを作るのにgroovyのSwingBuilderを使ったけど、これはいい!!
コンポーネントの関係が見やすいしレイアウトしやすい。
Swingを使うのは初めて(awtもほとんど忘れた)なので、希望のレイアウト(BoxLayout)を探すのにちょっと手間取ったけど。
import javax.swing.BoxLayout import com.nullfish.app.jfd2.ext_command.CommandExecuter dlg=new groovy.swing.SwingBuilder().dialog(title:"svn update ...doing"){ box(axis:BoxLayout.Y_AXIS){ scrollPane(){ ta=textArea(rows:15,columns:60) } btn=button(text:"OK",visible:false,actionPerformed:{dlg.dispose()}) } } dlg.pack() dlg.locationRelativeTo=null dlg.visible=true model=jfd.model files = model.markedFiles if(files == null || files.length == 0){ files = [model.selectedFile] } cmd=files.inject("svn update "){s,f->s+='"'+f.name+'" '} ta.append(cmd+"\n") CommandExecuter.instance .exec(cmd,CommandExecuter.USE_APP_SHELL,new File(model.currentDirectory.absolutePath)) .in.eachLine{ta.append(it+"\n")} dlg.title="svn update ...done" btn.visible=true btn.requestFocusInWindow()