/**
*
*/
package name.webdizz.clt.crx.client;
import java.util.ArrayList;
import java.util.List;
import com.google.gwt.dom.client.NativeEvent;
/**
* @author Izzet_Mustafayev
*
*/
public class ActivationKeysHolder {
public static final String CTRL = "Ctrl";
public static final String ALT = "Alt";
public static final String META = "Meta";
public static final String SHIFT = "Shift";
/**
* The keys to activate translation for selected text.
*/
public static final String[] KEYS = { CTRL, ALT, SHIFT, META };
/**
* Resolves used keys when given {@link NativeEvent} event was fired.
*
* @param event
* the {@link NativeEvent}
* @return used keys array
*/
private static String[] getUsedKeys(NativeEvent event) {
List<String> list = new ArrayList<String>();
if (event.getAltKey()) {
list.add(ALT);
}
if (event.getCtrlKey()) {
list.add(CTRL);
}
if (event.getMetaKey()) {
list.add(META);
}
if (event.getShiftKey()) {
list.add(SHIFT);
}
return list.toArray(new String[0]);
}
/**
* Perform validation whether message is able to be translated.
*
* @param keys
* the array of pressed keyboard keys
* @return true if right keyboard key was pressed
*/
public static boolean isKeysAllowed(final NativeEvent event) {
String[] keys = getUsedKeys(event);
boolean result = false;
for (String key : keys) {
if (ActivationKeysHolder.CTRL.equals(key)) {
result = true;
break;
}
}
return result;
}
}