-/*\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 文字列以外の物をペーストしたときに無視したい。
+}