1 /*
2 * Copyright 2004-2008 the Seasar Foundation and the Others.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13 * either express or implied. See the License for the specific language
14 * governing permissions and limitations under the License.
15 */
16 package org.seasar.uruma.util;
17
18 import org.seasar.uruma.core.UrumaConstants;
19
20 /**
21 * メニューのニーモニックを扱うためのユーティリティクラスです。<br />
22 *
23 * @author y-komori
24 */
25 public class MnemonicUtil implements UrumaConstants {
26 private MnemonicUtil() {
27
28 }
29
30 /**
31 * テキストからニーモニックとアクセラレータを削除します。<br />
32 *
33 * @param text
34 * テキスト
35 * @return 削除結果
36 */
37 public static String chopMnemonicAndAccelerator(final String text) {
38 return chopMnemonic(chopAccelerator(text));
39 }
40
41 /**
42 * テキストからニーモニックプレフィックス(&記号)を削除します。<br />
43 * 【例】「ファイル(&F)」の場合、結果は「ファイル(F)」となります。
44 *
45 * @param text
46 * テキスト
47 * @return 削除結果
48 */
49 public static String chopMnemonic(final String text) {
50 return text.replace(AMPERSAND, NULL_STRING);
51 }
52
53 /**
54 * テキストからアクセラレータ部分を削除します。<br />
55 * 【例】「開く(&O)\tCtrl-O」の場合、結果は「Ctrl-O」となります。
56 *
57 * @param title
58 * テキスト
59 * @return 削除結果
60 */
61 public static String chopAccelerator(final String title) {
62 int startPos = title.indexOf("\\t");
63 if (startPos > 0) {
64 return title.substring(0, startPos);
65 }
66 return title;
67 }
68
69 /**
70 * テキストからニーモニックを取り出します。<br />
71 * ニーモニックは最初の「&」(アンパサンド)に続く一文字です。<br />
72 * 【例】「ファイル(&F)」の場合、結果は「F」となります。
73 *
74 * @param text
75 * テキスト
76 * @return ニーモニック。見つからない場合は空文字列。
77 */
78 public static String getMnemonic(final String text) {
79 int startPos = text.indexOf(AMPERSAND);
80 if (startPos > 0) {
81 return text.substring(startPos + 1, startPos + 2);
82 }
83 return NULL_STRING;
84 }
85 }