annotate dwtx/jface/bindings/keys/formatting/AbstractKeyFormatter.d @ 48:7a3e6c1a4eae

import data with getImportData!()
author Frank Benoit <benoit@tionex.de>
date Fri, 11 Apr 2008 16:20:43 +0200
parents 644f1334b451
children 04b47443bb01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*******************************************************************************
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2004, 2006 IBM Corporation and others.
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * Port to the D programming language:
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 * Frank Benoit <benoit@tionex.de>
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 *******************************************************************************/
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14 module dwtx.jface.bindings.keys.formatting.AbstractKeyFormatter;
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 import dwtx.jface.bindings.keys.formatting.IKeyFormatter;
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 import tango.util.collection.HashSet;
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 import tango.util.collection.model.Set;
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 import dwtx.jface.bindings.keys.IKeyLookup;
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 import dwtx.jface.bindings.keys.KeyLookupFactory;
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 import dwtx.jface.bindings.keys.KeySequence;
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 import dwtx.jface.bindings.keys.KeyStroke;
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 import dwtx.jface.util.Util;
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 import dwt.dwthelper.utils;
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 import dwt.dwthelper.ResourceBundle;
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 /**
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 * <p>
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 * An abstract implementation of a key formatter that provides a lot of common
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 * key formatting functionality. It is recommended that implementations of
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 * <code>IKeyFormatter</code> subclass from here, rather than implementing
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 * <code>IKeyFormatter</code> directly.
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 * </p>
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 *
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 * @since 3.1
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 */
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 public abstract class AbstractKeyFormatter : IKeyFormatter {
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 /**
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 * The key for the delimiter between keys. This is used in the
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 * internationalization bundles.
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 */
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 protected static const String KEY_DELIMITER_KEY = "KEY_DELIMITER"; //$NON-NLS-1$
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 /**
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 * The key for the delimiter between key strokes. This is used in the
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 * internationalization bundles.
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 */
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 protected static const String KEY_STROKE_DELIMITER_KEY = "KEY_STROKE_DELIMITER"; //$NON-NLS-1$
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 /**
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 * An empty integer array that can be used in
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 * <code>sortModifierKeys(int)</code>.
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 */
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 protected static const int[] NO_MODIFIER_KEYS = null;
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 /**
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 * The bundle in which to look up the internationalized text for all of the
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 * individual keys in the system. This is the platform-agnostic version of
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 * the internationalized strings. Some platforms (namely Carbon) provide
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 * special Unicode characters and glyphs for some keys.
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 */
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 private static const ResourceBundle RESOURCE_BUNDLE;
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 /**
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 * The keys in the resource bundle. This is used to avoid missing resource
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 * exceptions when they aren't necessary.
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 */
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 private static const Set!(String) resourceBundleKeys;
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 static this() {
39
644f1334b451 fix anon classes
Frank Benoit <benoit@tionex.de>
parents: 16
diff changeset
75 RESOURCE_BUNDLE = ResourceBundle.getBundle(
48
7a3e6c1a4eae import data with getImportData!()
Frank Benoit <benoit@tionex.de>
parents: 39
diff changeset
76 getImportData!("dwtx.jface.bindings.keys.formatting.AbstractKeyFormatter.properties"));
16
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 resourceBundleKeys = new HashSet!(String);
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 foreach( key; RESOURCE_BUNDLE.getKeys()){
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 resourceBundleKeys.add(key);
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 }
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 }
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 /*
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 * (non-Javadoc)
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 *
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 * @see dwtx.jface.bindings.keysKeyFormatter#format(dwtx.jface.bindings.keys.KeySequence)
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 */
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 public String format(int key) {
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 IKeyLookup lookup = KeyLookupFactory.getDefault();
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 String name = lookup.formalNameLookup(key);
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 if (resourceBundleKeys.contains(name)) {
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 return Util.translateString(RESOURCE_BUNDLE, name, name);
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 }
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 return name;
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 }
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 /*
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 * (non-Javadoc)
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 *
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 * @see dwtx.jface.bindings.keys.KeyFormatter#format(dwtx.jface.bindings.keys.KeySequence)
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 */
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 public String format(KeySequence keySequence) {
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 StringBuffer stringBuffer = new StringBuffer();
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 KeyStroke[] keyStrokes = keySequence.getKeyStrokes();
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 int keyStrokesLength = keyStrokes.length;
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 for (int i = 0; i < keyStrokesLength; i++) {
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 stringBuffer.append(format(keyStrokes[i]));
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 if (i + 1 < keyStrokesLength) {
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 stringBuffer.append(getKeyStrokeDelimiter());
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 }
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 }
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 return stringBuffer.toString();
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 }
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 /*
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 * (non-Javadoc)
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 *
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 * @see dwtx.jface.bindings.keys.KeyFormatter#formatKeyStroke(dwtx.jface.bindings.keys.KeyStroke)
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 */
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 public String format(KeyStroke keyStroke) {
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 String keyDelimiter = getKeyDelimiter();
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 // Format the modifier keys, in sorted order.
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 int modifierKeys = keyStroke.getModifierKeys();
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 int[] sortedModifierKeys = sortModifierKeys(modifierKeys);
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 StringBuffer stringBuffer = new StringBuffer();
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 if (sortedModifierKeys !is null) {
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 for (int i = 0; i < sortedModifierKeys.length; i++) {
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 int modifierKey = sortedModifierKeys[i];
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 if (modifierKey !is KeyStroke.NO_KEY) {
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 stringBuffer.append(format(modifierKey));
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 stringBuffer.append(keyDelimiter);
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 }
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 }
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 }
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 // Format the natural key, if any.
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 int naturalKey = keyStroke.getNaturalKey();
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 if (naturalKey !is 0) {
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 stringBuffer.append(format(naturalKey));
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 }
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 return stringBuffer.toString();
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 }
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 /**
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 * An accessor for the delimiter you wish to use between keys. This is used
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 * by the default format implementations to determine the key delimiter.
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 *
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 * @return The delimiter to use between keys; should not be
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 * <code>null</code>.
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 */
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 protected abstract String getKeyDelimiter();
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 /**
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 * An accessor for the delimiter you wish to use between key strokes. This
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 * used by the default format implementations to determine the key stroke
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 * delimiter.
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 *
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 * @return The delimiter to use between key strokes; should not be
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 * <code>null</code>.
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168 */
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 protected abstract String getKeyStrokeDelimiter();
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 /**
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 * Separates the modifier keys from each other, and then places them in an
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173 * array in some sorted order. The sort order is dependent on the type of
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 * formatter.
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 *
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 * @param modifierKeys
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 * The modifier keys from the key stroke.
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 * @return An array of modifier key values -- separated and sorted in some
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 * order. Any values in this array that are
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 * <code>KeyStroke.NO_KEY</code> should be ignored.
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 */
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182 protected abstract int[] sortModifierKeys(int modifierKeys);
e0f0aaf75edd PopupDialog, bindings and actions
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 }