package com.example.e4.rcp.todo.toolcontrols;
import javax.inject.Inject;
import org.eclipse.e4.core.services.nls.ILocaleChangeService;
import org.eclipse.e4.core.services.nls.Translation;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
import com.example.e4.rcp.todo.i18n.Messages;
public class SwitchLanguageToolControl {
Button button;
@Inject
ILocaleChangeService lcs;
@Inject
public SwitchLanguageToolControl(Composite parent) {
final Text input = new Text(parent, SWT.BORDER);
input.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent event) {
if (event.keyCode == SWT.CR || event.keyCode == SWT.KEYPAD_CR) {
lcs.changeApplicationLocale(input.getText());
}
}
});
button = new Button(parent, SWT.PUSH);
button.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
lcs.changeApplicationLocale(input.getText());
};
});
}
@Inject
public void translate(@Translation Messages messages) {
// button localization via Eclipse Translation Pattern
if (button != null && !button.isDisposed()) {
button.setText(messages.toolbar_main_changelocale);
}
}
}