package org.geogebra.web.html5.javax.swing;
import org.geogebra.common.awt.GRectangle;
import org.geogebra.common.euclidian.EuclidianController;
import org.geogebra.common.gui.inputfield.AutoCompleteTextField;
import org.geogebra.common.javax.swing.GBox;
import org.geogebra.common.util.debug.Log;
import org.geogebra.ggbjdk.java.awt.geom.Rectangle;
import org.geogebra.web.html5.gui.inputfield.AutoCompleteTextFieldW;
import com.google.gwt.user.client.ui.AbsolutePanel;
import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.HorizontalPanel;
public class GBoxW extends GBox {
private HorizontalPanel impl;
private EuclidianController style;
public GBoxW(EuclidianController style) {
this.style = style;
impl = new HorizontalPanel();
impl.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
}
public static HorizontalPanel getImpl(GBox box) {
if (!(box instanceof GBoxW)) {
return null;
}
return ((GBoxW) box).impl;
}
@Override
public void add(AutoCompleteTextField textField) {
impl.add((AutoCompleteTextFieldW) textField);
}
@Override
public void setVisible(boolean isVisible) {
impl.setVisible(isVisible);
}
@Override
public void setBounds(GRectangle rect) {
impl.setWidth(rect.getWidth() + "");
impl.setHeight(rect.getHeight() + "");
if (impl.getParent() instanceof AbsolutePanel) {
((AbsolutePanel) (impl.getParent())).setWidgetPosition(impl,
(int) rect.getMinX(), (int) rect.getMinY());
}
}
@Override
public GRectangle getBounds() {
int left = impl.getAbsoluteLeft();
int top = impl.getAbsoluteTop();
if (impl.getParent() != null) {
left -= impl.getParent().getAbsoluteLeft();
top -= impl.getParent().getAbsoluteTop();
}
if (style != null && style.getEnvironmentStyle() != null) {
left = (int) (left * (1 / style.getEnvironmentStyle().getScaleX()));
top = (int) (top * (1 / style.getEnvironmentStyle().getScaleY()));
} else {
Log.debug("ec null");
}
return new Rectangle(left, top, impl.getOffsetWidth(),
impl.getOffsetHeight());
}
@Override
public void revalidate() {
// TODO Auto-generated method stub
}
}