package com.github.donkirkby.vograbulary.client; import com.github.donkirkby.vograbulary.LetterDisplay; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.user.client.ui.AbsolutePanel; import com.google.gwt.user.client.ui.Button; public class GwtLetterDisplay extends LetterDisplay { private static final int TOP_MARGIN = 4; private static final float DEFAULT_TEXT_SIZE = 14; private AbsolutePanel panel; private Button button; private float textSize; public GwtLetterDisplay(AbsolutePanel panel, Button button) { this.panel = panel; this.button = button; setTextSize(DEFAULT_TEXT_SIZE); setLeft(0); setTop(TOP_MARGIN); } @Override public int getTop() { return panel.getWidgetTop(button); } @Override public void setTop(int top) { panel.setWidgetPosition(button, getLeft(), top); } @Override public int getLeft() { return panel.getWidgetLeft(button); } @Override public void setLeft(int left) { panel.setWidgetPosition(button, left, getTop()); } @Override public void animateTo(int left, int top) { throw new UnsupportedOperationException(); } @Override public int getHeight() { return button.getOffsetHeight(); } @Override public int getWidth() { return button.getOffsetWidth(); } @Override public float getTextSize() { return textSize; } @Override public void setTextSize(float textSize) { this.textSize = textSize; button.getElement().getStyle().setFontSize(textSize, Unit.PX); } @Override public String getLetter() { return button.getText(); } public Button getButton() { return button; } }