package net.thesocialos.client.view; import net.thesocialos.client.TheSocialOS; import net.thesocialos.client.presenter.LoginPresenter.Display; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.AnchorElement; import com.google.gwt.dom.client.DivElement; import com.google.gwt.dom.client.ImageElement; import com.google.gwt.dom.client.InputElement; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.dom.client.TableCellElement; import com.google.gwt.event.logical.shared.ResizeEvent; import com.google.gwt.event.logical.shared.ResizeHandler; import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Anchor; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.HTMLPanel; import com.google.gwt.user.client.ui.Widget; public class LoginView extends Composite implements Display { interface LoginViewUiBinder extends UiBinder<Widget, LoginView> { } private static LoginViewUiBinder uiBinder = GWT.create(LoginViewUiBinder.class); @UiField HTMLPanel html; @UiField ImageElement background; @UiField DivElement error; @UiField InputElement email; @UiField InputElement password; @UiField InputElement loginButton; @UiField DivElement helpers; @UiField AnchorElement register; @UiField AnchorElement forgotPass; @UiField DivElement footer; @UiField TableCellElement flags; Anchor spainFlag; Anchor usaFlag; Timer timer = null; public LoginView() { initWidget(uiBinder.createAndBindUi(this)); /* * lblPass.setText(TheSocialOS.getConstants().password()); * keepLogged.setText(TheSocialOS.getConstants().keepLogged()); * forgot.setText(TheSocialOS.getConstants().forgotPassword()); * register.setText(TheSocialOS.getConstants().registerNow()); * loginButton.setText(TheSocialOS.getConstants().login()); lblIncorrect.setVisible(false); */ register.setInnerText(TheSocialOS.getConstants().registerNow()); forgotPass.setInnerText(TheSocialOS.getConstants().forgotPassword()); error.setInnerText(TheSocialOS.getConstants().error_login()); error.getStyle().setDisplay(com.google.gwt.dom.client.Style.Display.NONE); Window.addResizeHandler(new ResizeHandler() { @Override public void onResize(ResizeEvent event) { repositionElements(); } }); timer = new Timer() { @Override public void run() { repositionElements(); } }; timer.schedule(10); timer.schedule(50); timer.scheduleRepeating(100); spainFlag = new Anchor(new SafeHtmlBuilder().appendHtmlConstant( "<image class='flags spain' src='./images/flags/wes.gif'/>").toSafeHtml()); usaFlag = new Anchor(new SafeHtmlBuilder().appendHtmlConstant( "<image class='flags spain' src='./images/flags/wus.gif'/>").toSafeHtml()); html.add(spainFlag, flags); html.add(usaFlag, flags); } protected void repositionElements() { error.getStyle().setTop(background.getHeight() - 130, Unit.PX); email.getStyle().setTop(background.getHeight() - 100, Unit.PX); password.getStyle().setTop(background.getHeight() - 100, Unit.PX); loginButton.getStyle().setTop(background.getHeight() - 100, Unit.PX); helpers.getStyle().setTop(background.getHeight() - 50, Unit.PX); footer.getStyle().setTop(background.getHeight() + 2, Unit.PX); String top = footer.getStyle().getTop(); int iTop = Integer.parseInt(top.substring(0, top.indexOf("px"))); if (iTop > 100) timer.cancel(); } @Override public String getEmail() { return email.getValue(); } /* * @Override public boolean getKeepLoged() { return keepLogged.getValue(); } */ @Override public InputElement getLoginButton() { return loginButton; } @Override public String getPassword() { return password.getValue(); } @Override public boolean getKeepLoged() { // TODO Auto-generated method stub return true; } @Override public Anchor getSpainFlag() { return spainFlag; } @Override public Anchor getUsaFlag() { return usaFlag; } @Override public DivElement getError() { return error; } }