/*******************************************************************************
* Copyright (c) 2012 Google, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Google, Inc. - initial API and implementation
*******************************************************************************/
package com.windowtester.runtime.swt.internal.text;
import com.windowtester.internal.runtime.WTLocale;
import com.windowtester.runtime.IUIContext;
/**
* A text entry strategy that optionally uses a keymap strategy if
* the locale is non English.
*/
public class DelegatingTextEntryStrategy implements ITextEntryStrategy {
private final ITextEntryStrategy defaultStrategy = new UIDriverTextEntryStrategy();
private final ITextEntryStrategy keyMapStrategy = new KeyMapTextEntryStrategy();
public ITextEntryStrategy getKeyMapStrategy() {
return keyMapStrategy;
}
public ITextEntryStrategy getDefaultStrategy() {
return defaultStrategy;
}
/**
* Returns the currently active text strategy.
*/
public ITextEntryStrategy getActiveStrategy() {
return WTLocale.isCurrent ? getKeyMapStrategy() : getDefaultStrategy();
}
/* (non-Javadoc)
* @see com.windowtester.event.swt.text.ITextEntryStrategy#enterText(com.windowtester.swt.UIContext, java.lang.String)
*/
public void enterText(IUIContext ui, String txt) {
getActiveStrategy().enterText(ui, txt);
}
/* (non-Javadoc)
* @see com.windowtester.event.swt.text.ITextEntryStrategy#keyClick(char)
*/
public void keyClick(IUIContext ui, char key) {
getActiveStrategy().keyClick(ui, key);
}
/* (non-Javadoc)
* @see com.windowtester.event.swt.text.ITextEntryStrategy#keyClick(int, char)
*/
public void keyClick(IUIContext ui, int ctrl, char c) {
getActiveStrategy().keyClick(ui, ctrl, c);
}
/* (non-Javadoc)
* @see com.windowtester.event.swt.text.ITextEntryStrategy#keyClick(int)
*/
public void keyClick(IUIContext ui, int key) {
getActiveStrategy().keyClick(ui, key);
}
/* (non-Javadoc)
* @see com.windowtester.event.swt.text.ITextEntryStrategy#keyDown(char)
*/
public void keyDown(IUIContext ui, char key) {
getActiveStrategy().keyDown(ui, key);
}
/* (non-Javadoc)
* @see com.windowtester.event.swt.text.ITextEntryStrategy#keyDown(int)
*/
public void keyDown(IUIContext ui, int key) {
getActiveStrategy().keyDown(ui, key);
}
/* (non-Javadoc)
* @see com.windowtester.event.swt.text.ITextEntryStrategy#keyUp(char)
*/
public void keyUp(IUIContext ui, char key) {
getActiveStrategy().keyUp(ui, key);
}
/* (non-Javadoc)
* @see com.windowtester.event.swt.text.ITextEntryStrategy#keyUp(int)
*/
public void keyUp(IUIContext ui, int key) {
getActiveStrategy().keyUp(ui, key);
}
/** test locale */
/* public static void main(String[] args) {
Locale locale = Locale.getDefault();
locale = new Locale("en","CA");
System.out.println(locale.getDisplayLanguage().toString());
boolean result = locale.getDisplayLanguage().toString().equals("English");
System.out.println(result);
System.exit(1);
}
*/
}