1 package org.columba.core.gui.globalactions; 17 18 import java.awt.KeyboardFocusManager ; 19 import java.awt.Toolkit ; 20 import java.awt.event.ActionEvent ; 21 import java.awt.event.KeyEvent ; 22 import java.beans.PropertyChangeEvent ; 23 import java.beans.PropertyChangeListener ; 24 25 import javax.swing.Action ; 26 import javax.swing.JComponent ; 27 import javax.swing.KeyStroke ; 28 import javax.swing.TransferHandler ; 29 30 import org.columba.api.gui.frame.IFrameMediator; 31 import org.columba.core.gui.action.AbstractColumbaAction; 32 import org.columba.core.resourceloader.GlobalResourceLoader; 33 import org.columba.core.resourceloader.IconKeys; 34 import org.columba.core.resourceloader.ImageLoader; 35 36 public class CutAction extends AbstractColumbaAction implements 37 PropertyChangeListener { 38 39 private JComponent focusOwner = null; 40 41 public CutAction(IFrameMediator controller) { 42 super(controller, GlobalResourceLoader.getString(null, null, 43 "menu_edit_cut")); 44 45 putValue(SHORT_DESCRIPTION, GlobalResourceLoader.getString(null, null, 47 "menu_edit_cut_tooltip").replaceAll("&", "")); 48 49 putValue(SMALL_ICON, ImageLoader.getSmallIcon(IconKeys.EDIT_CUT)); 51 52 putValue(LARGE_ICON, ImageLoader.getIcon(IconKeys.EDIT_CUT)); 54 55 setShowToolBarText(false); 57 58 putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_X, 60 Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); 61 62 setEnabled(true); 63 64 putValue(Action.ACTION_COMMAND_KEY, (String ) TransferHandler 65 .getCutAction().getValue(Action.NAME)); 66 67 KeyboardFocusManager manager = KeyboardFocusManager 68 .getCurrentKeyboardFocusManager(); 69 70 manager.addPropertyChangeListener("permanentFocusOwner", this); 71 } 72 73 public void propertyChange(PropertyChangeEvent e) { 74 Object o = e.getNewValue(); 75 if (o instanceof JComponent ) 76 focusOwner = (JComponent ) o; 77 else 78 focusOwner = null; 79 80 } 81 82 85 public void actionPerformed(ActionEvent e) { 86 87 if (focusOwner == null) 88 return; 89 String action = (String ) e.getActionCommand(); 90 Action a = focusOwner.getActionMap().get(action); 91 if (a != null) 92 a.actionPerformed(new ActionEvent (focusOwner, 93 ActionEvent.ACTION_PERFORMED, null)); 94 95 } 96 97 100 public boolean isSingleton() { 101 return true; 102 } 103 } 104 | Popular Tags |