OSDN Git Service

Merge branch 'Branch_release-'
[jindolf/Jindolf.git] / src / main / java / jp / sfjp / jindolf / dxchg / ClipboardAction.java
-/*\r
- * クリップボード操作用Action\r
- *\r
- * Copyright(c) 2008 olyutorskii\r
- * $Id: ClipboardAction.java 888 2009-11-04 06:23:35Z olyutorskii $\r
- */\r
-\r
-package jp.sourceforge.jindolf;\r
-\r
-import java.awt.Toolkit;\r
-import java.awt.datatransfer.Clipboard;\r
-import java.awt.datatransfer.StringSelection;\r
-import java.awt.event.ActionEvent;\r
-import javax.swing.Action;\r
-import javax.swing.text.JTextComponent;\r
-import javax.swing.text.TextAction;\r
-\r
-/**\r
- * テキストコンポーネント-クリップボード間操作用にカスタム化したAction。\r
- */\r
-@SuppressWarnings("serial")\r
-public class ClipboardAction extends TextAction{\r
-\r
-    /** アクション{@value}。 */\r
-    public static final String ACTION_CUT    = "ACTION_CUT";\r
-    /** アクション{@value}。 */\r
-    public static final String ACTION_COPY   = "ACTION_COPY";\r
-    /** アクション{@value}。 */\r
-    public static final String ACTION_PASTE  = "ACTION_PASTE";\r
-    /** アクション{@value}。 */\r
-    public static final String ACTION_SELALL = "ACTION_SELALL";\r
-\r
-    /**\r
-     * 文字列をクリップボードにコピーする。\r
-     * @param data 文字列\r
-     */\r
-    public static void copyToClipboard(CharSequence data){\r
-        Toolkit toolkit = Toolkit.getDefaultToolkit();\r
-        Clipboard clipboard = toolkit.getSystemClipboard();\r
-        StringSelection selection = new StringSelection(data.toString());\r
-        clipboard.setContents(selection, selection);\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * カット用Actionの生成。\r
-     * @return カット用Action\r
-     */\r
-    public static ClipboardAction cutAction(){\r
-        return new ClipboardAction("選択範囲をカット", ACTION_CUT);\r
-    }\r
-\r
-    /**\r
-     * コピー用Actionの生成。\r
-     * @return コピー用Action\r
-     */\r
-    public static ClipboardAction copyAction(){\r
-        return new ClipboardAction("選択範囲をコピー", ACTION_COPY);\r
-    }\r
-\r
-    /**\r
-     * ペースト用Actionの生成。\r
-     * @return ペースト用Action\r
-     */\r
-    public static ClipboardAction pasteAction(){\r
-        return new ClipboardAction("ペースト", ACTION_PASTE);\r
-    }\r
-\r
-    /**\r
-     * 全選択用Actionの生成。\r
-     * @return 全選択用Action\r
-     */\r
-    public static ClipboardAction selectallAction(){\r
-        return new ClipboardAction("すべて選択", ACTION_SELALL);\r
-    }\r
-\r
-    /**\r
-     * コンストラクタ。\r
-     * @param name ポップアップメニュー名\r
-     * @param command アクションコマンド名\r
-     */\r
-    protected ClipboardAction(String name, String command){\r
-        super(name);\r
-        setActionCommand(command);\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * アクションコマンド名を設定する。\r
-     * @param actionCommand アクションコマンド名\r
-     */\r
-    private void setActionCommand(String actionCommand){\r
-        putValue(Action.ACTION_COMMAND_KEY, actionCommand);\r
-        return;\r
-    }\r
-\r
-    /**\r
-     * アクションコマンド名を取得する。\r
-     * @return アクションコマンド名\r
-     */\r
-    protected String getActionCommand(){\r
-        Object value = getValue(Action.ACTION_COMMAND_KEY);\r
-        if( ! (value instanceof String) ) return null;\r
-\r
-        String command = (String) value;\r
-\r
-        return command;\r
-    }\r
-\r
-    /**\r
-     * {@inheritDoc}\r
-     * アクションの受信によってクリップボード操作を行う。\r
-     * @param event {@inheritDoc}\r
-     */\r
-    public void actionPerformed(ActionEvent event){\r
-        JTextComponent textComp = getTextComponent(event);\r
-        if(textComp == null) return;\r
-\r
-        String command = getActionCommand();\r
-\r
-        if     (ACTION_CUT   .equals(command)) textComp.cut();\r
-        else if(ACTION_COPY  .equals(command)) textComp.copy();\r
-        else if(ACTION_PASTE .equals(command)) textComp.paste();\r
-        else if(ACTION_SELALL.equals(command)) textComp.selectAll();\r
-\r
-        return;\r
-    }\r
-\r
-    // TODO 文字列以外の物をペーストしたときに無視したい。\r
-}\r
+/*
+ * クリップボード操作用Action
+ *
+ * License : The MIT License
+ * Copyright(c) 2008 olyutorskii
+ */
+
+package jp.sfjp.jindolf.dxchg;
+
+import java.awt.Toolkit;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.StringSelection;
+import java.awt.event.ActionEvent;
+import javax.swing.Action;
+import javax.swing.text.JTextComponent;
+import javax.swing.text.TextAction;
+
+/**
+ * テキストコンポーネント-クリップボード間操作用にカスタム化したAction。
+ */
+@SuppressWarnings("serial")
+public class ClipboardAction extends TextAction{
+
+    /** アクション{@value}。 */
+    public static final String ACTION_CUT    = "ACTION_CUT";
+    /** アクション{@value}。 */
+    public static final String ACTION_COPY   = "ACTION_COPY";
+    /** アクション{@value}。 */
+    public static final String ACTION_PASTE  = "ACTION_PASTE";
+    /** アクション{@value}。 */
+    public static final String ACTION_SELALL = "ACTION_SELALL";
+
+
+    /**
+     * コンストラクタ。
+     * @param name ポップアップメニュー名
+     * @param command アクションコマンド名
+     */
+    protected ClipboardAction(String name, String command){
+        super(name);
+        setActionCommand(command);
+        return;
+    }
+
+
+    /**
+     * 文字列をクリップボードにコピーする。
+     * @param data 文字列
+     */
+    public static void copyToClipboard(CharSequence data){
+        Toolkit toolkit = Toolkit.getDefaultToolkit();
+        Clipboard clipboard = toolkit.getSystemClipboard();
+        StringSelection selection = new StringSelection(data.toString());
+        clipboard.setContents(selection, selection);
+        return;
+    }
+
+    /**
+     * カット用Actionの生成。
+     * @return カット用Action
+     */
+    public static ClipboardAction cutAction(){
+        return new ClipboardAction("選択範囲をカット", ACTION_CUT);
+    }
+
+    /**
+     * コピー用Actionの生成。
+     * @return コピー用Action
+     */
+    public static ClipboardAction copyAction(){
+        return new ClipboardAction("選択範囲をコピー", ACTION_COPY);
+    }
+
+    /**
+     * ペースト用Actionの生成。
+     * @return ペースト用Action
+     */
+    public static ClipboardAction pasteAction(){
+        return new ClipboardAction("ペースト", ACTION_PASTE);
+    }
+
+    /**
+     * 全選択用Actionの生成。
+     * @return 全選択用Action
+     */
+    public static ClipboardAction selectallAction(){
+        return new ClipboardAction("すべて選択", ACTION_SELALL);
+    }
+
+    /**
+     * アクションコマンド名を設定する。
+     * @param actionCommand アクションコマンド名
+     */
+    private void setActionCommand(String actionCommand){
+        putValue(Action.ACTION_COMMAND_KEY, actionCommand);
+        return;
+    }
+
+    /**
+     * アクションコマンド名を取得する。
+     * @return アクションコマンド名
+     */
+    protected String getActionCommand(){
+        Object value = getValue(Action.ACTION_COMMAND_KEY);
+        if( ! (value instanceof String) ) return null;
+
+        String command = (String) value;
+
+        return command;
+    }
+
+    /**
+     * {@inheritDoc}
+     * アクションの受信によってクリップボード操作を行う。
+     * @param event {@inheritDoc}
+     */
+    @Override
+    public void actionPerformed(ActionEvent event){
+        JTextComponent textComp = getTextComponent(event);
+        if(textComp == null) return;
+
+        String command = getActionCommand();
+
+        if     (ACTION_CUT   .equals(command)) textComp.cut();
+        else if(ACTION_COPY  .equals(command)) textComp.copy();
+        else if(ACTION_PASTE .equals(command)) textComp.paste();
+        else if(ACTION_SELALL.equals(command)) textComp.selectAll();
+
+        return;
+    }
+
+    // TODO 文字列以外の物をペーストしたときに無視したい。
+}