/*
* RSConnectAuthWait.java
*
* Copyright (C) 2009-15 by RStudio, Inc.
*
* Unless you have received this program directly from RStudio pursuant
* to the terms of a commercial license agreement with RStudio, then
* this program is licensed to you under the terms of version 3 of the
* GNU Affero General Public License. This program is distributed WITHOUT
* ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT,
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the
* AGPL (http://www.gnu.org/licenses/agpl-3.0.txt) for more details.
*
*/
package org.rstudio.studio.client.rsconnect.ui;
import org.rstudio.core.client.widget.ThemedButton;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.Command;
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.Label;
import com.google.gwt.user.client.ui.Widget;
public class RSConnectAuthWait extends Composite
{
private static RSConnectAuthWaitUiBinder uiBinder = GWT
.create(RSConnectAuthWaitUiBinder.class);
interface RSConnectAuthWaitUiBinder extends
UiBinder<Widget, RSConnectAuthWait>
{
}
public RSConnectAuthWait()
{
initWidget(uiBinder.createAndBindUi(this));
setWidth("300px");
tryAgainButton_.addClickHandler(new ClickHandler()
{
@Override
public void onClick(ClickEvent arg0)
{
if (tryAgainCmd_ != null)
{
tryAgainCmd_.execute();
}
}
});
}
public void setClaimLink(String serverName, String url)
{
claimLink_.setText("Confirm account on " + serverName);
claimLink_.setHref(url);
}
public void setOnTryAgain(Command cmd)
{
tryAgainCmd_ = cmd;
}
public void showError(String header, String message)
{
errorHeader_.setText(header);
errorMessage_.setText(message);
// toggle panel visibility
successPanel_.setVisible(false);
waitingPanel_.setVisible(false);
errorPanel_.setVisible(true);
}
public void showSuccess(String serverName, String accountName)
{
// toggle panel visibility
successPanel_.setVisible(true);
waitingPanel_.setVisible(false);
errorPanel_.setVisible(false);
}
public void showWaiting()
{
successPanel_.setVisible(false);
waitingPanel_.setVisible(true);
errorPanel_.setVisible(false);
}
private Command tryAgainCmd_;
@UiField Anchor claimLink_;
@UiField HTMLPanel waitingPanel_;
@UiField HTMLPanel successPanel_;
@UiField HTMLPanel errorPanel_;
@UiField Label errorHeader_;
@UiField Label errorMessage_;
@UiField ThemedButton tryAgainButton_;
}