item.setIcon(icon);
subMenu.add(item);
addActionListner(item, node);
} else {
ModuleInfoBean info = (ModuleInfoBean) node.getUserObject();
String completion = info.getStampName();
JMenuItem item = new JMenuItem(completion);
addActionListner(item, node);
if (menus.getFirst() instanceof MyJPopupMenu) {
((MyJPopupMenu) menus.getFirst()).add(item);
} else {
((JMenu) menus.getFirst()).add(item);
}
}
} else {
//
// 含まれていないのでマッチ検査が必要
//
if (!node.isLeaf()) {
//
// フォルダの場合
//
String completion = node.getUserObject().toString();
Matcher matcher = pattern.matcher(completion);
if (matcher.matches()) {
//
// マッチした場合はカレントメニューへ加える
// 自分がカレントメニューになる
// 親リストに自分を加える
String folderName = node.getUserObject().toString();
JMenu subMenu = new JMenu(folderName);
if (menus.getFirst() instanceof MyJPopupMenu) {
((MyJPopupMenu) menus.getFirst()).add(subMenu);
} else {
((JMenu) menus.getFirst()).add(subMenu);
}
menus.addFirst(subMenu);
parents.addFirst(node);
//
// フォルダ選択のアイテムを生成しサブメニューの要素にする
//
JMenuItem item = new JMenuItem(folderName);
item.setIcon(icon);
subMenu.add(item);
addActionListner(item, node);
}
} else {
//
// 葉の場合
//
ModuleInfoBean info = (ModuleInfoBean) node.getUserObject();
String completion = info.getStampName();
Matcher matcher = pattern.matcher(completion);
if (matcher.matches()) {
//
// 一致した場合