Newer
Older
PureATN_M / src / main / java / cit / PureATN / MultiNote / PopupMenu_forMN.java
package cit.PureATN.MultiNote;

import java.awt.event.KeyEvent;
import java.awt.geom.Point2D;

import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.KeyStroke;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import org.piccolo2d.PCanvas;
import org.piccolo2d.event.PInputEvent;

import cit.PureATN.Note;

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.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {

				fframe.iroduke();
			}
		});
		add(menuItem);// add 色付け menu


		// 追加のメニューは,プラグインが直接オンデマンドで追加する
		// fframe.addPluginMenuTo(this);

		showPopup();
	}

	public void showPopup() {
		Point2D cp = ie.getPositionRelativeTo(canvas.getCamera());

		show(canvas, (int) cp.getX(), (int) cp.getY());
	}
}