if (objects == null || objects.length == 0) {
return;
}
// テーブルはシングルセレクションである
// TODO ブラウズ時にbyte[]を取得している...
final PublishedTreeModel importTree = (PublishedTreeModel) objects[0];
try {
importTree.setTreeXml(new String(importTree.getTreeBytes(), "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace(System.err);
}
//importTree.setTreeBytes(null);
// サブスクライブリストに追加する
SubscribedTreeModel sm = new SubscribedTreeModel();
sm.setUser(Project.getUserModel());
sm.setTreeId(importTree.getId());
final List<SubscribedTreeModel> subscribeList = new ArrayList<SubscribedTreeModel>(1);
subscribeList.add(sm);
// デリゲータを生成する
sdl = new StampDelegater();
// Worker, Timer を実行する
int delay = 200;
int maxEstimation = 60*1000;
String mmsg = "公開スタンプをインポートしています...";
String message = "スタンプ取り込み";
Component c = frame;
Task task = new Task<Boolean>(c, message, mmsg, maxEstimation) {
@Override
protected Boolean doInBackground() {
sdl.subscribeTrees(subscribeList);
return sdl.isNoError();
}
@Override
protected void succeeded(Boolean result) {
if (result.booleanValue()) {
// スタンプボックスへインポートする
stampBox.importPublishedTree(importTree);
// Browser表示をインポート済みにする
importTree.setImported(true);
browseTable.getTableModel().fireTableDataChanged();
} else {
JOptionPane.showMessageDialog(frame,
sdl.getErrorMessage(),