キーボードショートカットを実装してみたよ

XMLファイル(TwitDuke-Resources/src/main/resources/keyevent/default.xml)を読み込んで、その記述に従ってキーボードショートカットを登録していきます。

ActionListenerを実装したクラスで且つデフォルトコンストラクタを持つものに限り、キーボードショートカットのコマンドに設定できます。
実装の感じとしては `TwitDuke/TwitDuke-Components/src/main/java/net/nokok/twitduke/components/actions/Action_Paste.java`  当たりが参考になるかと思います。

XMLの記述方法は、コピーとか、ペーストとかのアクション(plugin属性)に対して、複数のショートカットを定義でき、
各ショートカット毎に 「どのコンポーネント(component属性)」にフォーカスがあるとき、「どういう入力(keystroke)」で動作するかと言った情報を記述できます。
condition属性は、フォーカス状態を表しJComponent.WHEN_FORCUS系の定義値を指定して下さい。
例えば、JComponent.WHEN_FORCUSなら0、JComponent.WHEN_IN_FOCUSED_WINDOWなら2、と言った感じです。
(ちょっとここを文字列で指定できる形にするか、今みたいに数値で指定するか、迷う。実装はどっちも簡単)


```
 <action id="hey!" plugin="net.nokok.twitduke.components.actions.Action_Hey">
   <keyboard-shortcut component="net.nokok.twitduke.components.basics.TWPanel" condition="1" keystroke="ctrl O"/>
</action>
```

テストとjavadocは、もう少しまって下さい。