package org.geogebra.web.web.gui.view.algebra;
import org.geogebra.common.gui.inputfield.AltKeys;
import org.geogebra.web.html5.gui.util.MathKeyboardListener;
import com.google.gwt.canvas.client.Canvas;
import com.google.gwt.user.client.ui.UIObject;
import com.himamis.retex.editor.web.MathFieldW;
/**
* ReTeX connector for keyboard
*/
public class RetexKeyboardListener implements MathKeyboardListener {
private Canvas canvas;
private MathFieldW mf;
/**
* @param canvas
* canvas
* @param mf
* math input field
*/
public RetexKeyboardListener(Canvas canvas, MathFieldW mf) {
this.canvas = canvas;
this.mf = mf;
}
@Override
public void setFocus(boolean focus, boolean scheduled) {
// canvas.setFocus(focus);
mf.setFocus(focus);
}
@Override
public void ensureEditing() {
mf.requestViewFocus();
}
@Override
public UIObject asWidget() {
return canvas;
}
@Override
public String getText() {
// TODO Auto-generated method stub
return null;
}
@Override
public void onEnter(boolean b) {
// TODO Auto-generated method stub
}
/**
* @return math input field
*/
public MathFieldW getMathField() {
return mf;
}
@Override
public boolean needsAutofocus() {
return true;
}
/**
* @param unicodeKeyChar
* code
* @param shift
* whether shift is pressed also
* @return sequence for alt+code
*/
public String alt(int unicodeKeyChar, boolean shift) {
return AltKeys.getAltSymbols(unicodeKeyChar, shift, true);
}
}