Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Copyright (c) 2005 Serge Baranov. All Rights Reserved.
- */
- package amip.configurator.ui.util;
- import amip.configurator.Main;
- import javax.swing.*;
- import javax.swing.text.DefaultEditorKit;
- import javax.swing.text.JTextComponent;
- import java.awt.event.*;
- public class PopUpMenu {
- private static JPopupMenu pm = createPopUpMenu();
- private static MouseListener popupListener = new PopupListener();
- public static void addCopyPasteMenu(JTextComponent tc) {
- tc.addMouseListener(popupListener);
- }
- public static JPopupMenu getPm() {
- return pm;
- }
- private static JPopupMenu createPopUpMenu() {
- final JPopupMenu pm = new JPopupMenu();
- JMenuItem mi;
- mi = new JMenuItem(new DefaultEditorKit.CutAction());
- mi.setText(Main.res.getString("popup.cut"));
- pm.add(mi);
- mi = new JMenuItem(new DefaultEditorKit.CopyAction());
- mi.setText(Main.res.getString("popup.copy"));
- pm.add(mi);
- mi = new JMenuItem(new DefaultEditorKit.PasteAction());
- mi.setText(Main.res.getString("popup.paste"));
- pm.add(mi);
- mi = new JMenuItem(Main.res.getString("popup.delete"));
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- deleteSelection((JTextComponent) pm.getInvoker());
- }
- });
- pm.add(mi);
- pm.addSeparator();
- mi = new JMenuItem(Main.res.getString("popup.selectall"));
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- ((JTextComponent) pm.getInvoker()).selectAll();
- }
- });
- pm.add(mi);
- return pm;
- }
- private static String deleteSelection(JTextComponent tc) {
- int ss = tc.getSelectionStart();
- int se = tc.getSelectionEnd();
- String st = tc.getSelectedText();
- String text = tc.getText();
- int len = text.length();
- text = text.substring(0, ss) + text.substring(se, len);
- tc.setText(text);
- tc.setCaretPosition(ss);
- return st;
- }
- static class PopupListener extends MouseAdapter {
- public void mousePressed(MouseEvent e) {
- maybeShowPopup(e);
- }
- public void mouseReleased(MouseEvent e) {
- maybeShowPopup(e);
- }
- private void maybeShowPopup(MouseEvent e) {
- if (e.isPopupTrigger()) {
- JTextComponent tc = (JTextComponent) e.getComponent();
- if (tc.isEnabled()) {
- if (tc.getSelectedText() == null) {
- setEnabled(0, false);
- setEnabled(1, false);
- setEnabled(3, false);
- } else {
- setEnabled(0, true);
- setEnabled(1, true);
- setEnabled(3, true);
- }
- pm.show(e.getComponent(),
- e.getX(), e.getY());
- }
- }
- }
- private void setEnabled(int item, boolean enabled) {
- MenuElement[] subElements = pm.getSubElements();
- subElements[item].getComponent().setEnabled(enabled);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement