package cit.PureATN.MultiNote;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.geom.Point2D;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.KeyStroke;
import org.piccolo2d.PCanvas;
import org.piccolo2d.event.PInputEvent;
import cit.PureATN.Note;
import cit.PureATN.Inspector.DefaultPlugin;
public class PopupMenu_forMN extends JPopupMenu {
private static final long serialVersionUID = 7741402910818721975L;
MultiNote fframe;
PInputEvent ie;
PCanvas canvas;
public PopupMenu_forMN(Note aFR, PInputEvent _ie, PCanvas _canvas) {
fframe = (MultiNote) aFR; // むりやりキャストする (forMN=MultiMenu用なので、大丈夫かと)
ie = _ie;
canvas = _canvas;
setLightWeightPopupEnabled(false);
JMenuItem menuItem;
menuItem = new JMenuItem("cancel");
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0));// メニュー表示時のショートカットキー
add(menuItem); // add cancel menu
addSeparator();
// あたらしいメニューアイテムの設定を開始する。
menuItem = new JMenuItem("exit");
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
add(menuItem);// add exit menu
// あたらしいメニューアイテムの設定を開始する。
menuItem = new JMenuItem("色付け");
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, 0));// メニュー表示時のショートカットキー
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
fframe.iroduke();
}
});
add(menuItem);// add 色付け menu
// あたらしいメニューアイテムの設定を開始する。
menuItem = new JMenuItem("全筆記削除");
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0));// メニュー表示時のショートカットキー
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
fframe.deleteAllStrokes();
}
});
add(menuItem);// add 色付け menu
// 追加のメニューは,プラグインが直接オンデマンドで追加する
// fframe.addPluginMenuTo(this);
addPluginMenuTo(this, aFR);
showPopup();
}
public void showPopup() {
Point2D cp = ie.getPositionRelativeTo(canvas.getCamera());
show(canvas, (int) cp.getX(), (int) cp.getY());
}
// 追加機能分のメニュー
public void addPluginMenuTo(JPopupMenu menu, Note note) {
for (DefaultPlugin dp : note.plugins) {
dp.addMenu(menu);
}
}
}