OSDN Git Service

1b789b003e6f0c08d555a0929df388ca259140fb
[coroid/inqubus.git] / frontend / src / saccubus / util / PopupRightClick.java
1 /**
2  * 右クリックメニュー作成用。
3  * 2005年かー。ずいぶん前のを流用してるんだなあ。
4  */
5 package saccubus.util;
6
7 import java.awt.event.*;
8 import javax.swing.*;
9 import javax.swing.text.*;
10
11 /**
12  * <p>
13  * タイトル: ポケモンセーブデータエディタ for GBA
14  * </p>
15  * 
16  * <p>
17  * 説明:
18  * </p>
19  * 
20  * <p>
21  * 著作権: Copyright (c) 2005 PSI
22  * </p>
23  * 
24  * <p>
25  * 会社名: ψ(プサイ)の興味関心空間
26  * </p>
27  * 
28  * @author PSI
29  * @version 1.0
30  */
31 public class PopupRightClick implements MouseListener, ActionListener {
32         JPopupMenu popup;
33
34         JMenuItem CutMenu;
35
36         JMenuItem CopyMenu;
37
38         JMenuItem PasteMenu;
39
40         JTextComponent Owner;
41
42         public static final String Actin_Cut = "CO";
43
44         public static final String Actin_Copy = "CU";
45
46         public static final String Actin_Paste = "P";
47
48         private boolean pressed = false;
49
50         public PopupRightClick(JTextComponent owner) {
51                 this.Owner = owner;
52                 popup = new JPopupMenu("メニュー");
53                 CopyMenu = new JMenuItem("コピー(CTRL + C)");
54                 CopyMenu.setActionCommand(Actin_Copy);
55                 CopyMenu.addActionListener(this);
56                 popup.add(CopyMenu);
57
58                 CutMenu = new JMenuItem("切り取り(CTRL + X)");
59                 CutMenu.setActionCommand(Actin_Cut);
60                 CutMenu.addActionListener(this);
61                 popup.add(CutMenu);
62
63                 PasteMenu = new JMenuItem("貼り付け(CTRL + V)");
64                 PasteMenu.setActionCommand(Actin_Paste);
65                 PasteMenu.addActionListener(this);
66                 popup.add(PasteMenu);
67         }
68
69         /**
70          * Invoked when the mouse button has been clicked (pressed and released) on
71          * a component.
72          * 
73          * @param e
74          *            MouseEvent
75          * @todo この java.awt.event.MouseListener メソッドを実装
76          */
77         public void mouseClicked(MouseEvent e) {
78         }
79
80         /**
81          * Invoked when the mouse enters a component.
82          * 
83          * @param e
84          *            MouseEvent
85          * @todo この java.awt.event.MouseListener メソッドを実装
86          */
87         public void mouseEntered(MouseEvent e) {
88         }
89
90         /**
91          * Invoked when the mouse exits a component.
92          * 
93          * @param e
94          *            MouseEvent
95          * @todo この java.awt.event.MouseListener メソッドを実装
96          */
97         public void mouseExited(MouseEvent e) {
98                 pressed = false;
99         }
100
101         /**
102          * Invoked when a mouse button has been pressed on a component.
103          * 
104          * @param e
105          *            MouseEvent
106          * @todo この java.awt.event.MouseListener メソッドを実装
107          */
108         public void mousePressed(MouseEvent e) {
109                 pressed = true;
110         }
111
112         /**
113          * Invoked when a mouse button has been released on a component.
114          * 
115          * @param e
116          *            MouseEvent
117          * @todo この java.awt.event.MouseListener メソッドを実装
118          */
119         public void mouseReleased(MouseEvent e) {
120                 // 右クリックの時だけの話
121                 if (pressed && SwingUtilities.isRightMouseButton(e)) {
122                         popup.show(e.getComponent(), e.getX(), e.getY());
123                 }
124                 pressed = false;
125         }
126
127         /**
128          * こっちはPopupMenu
129          * 
130          * @param e
131          *            ActionEvent
132          * @todo この java.awt.event.ActionListener メソッドを実装
133          */
134         public void actionPerformed(ActionEvent e) {
135                 String ActionCommand = e.getActionCommand();
136                 if (ActionCommand.equals(Actin_Cut)) { // カット
137                         Owner.cut();
138                 } else if (ActionCommand.equals(Actin_Copy)) { // コピー
139                         Owner.copy();
140                 } else if (ActionCommand.equals(Actin_Paste)) { // 貼り付け
141                         Owner.paste();
142                 }
143         }
144 }