blob: 49c3c886272aceb7c6fa1c10c0acc8cfd12a0092 [file] [log] [blame]
package autotest.moblab.wizard;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Label;
import autotest.common.ui.NotifyManager;
import autotest.moblab.rpc.MoblabRpcCallbacks;
import autotest.moblab.rpc.MoblabRpcHelper;
import autotest.moblab.rpc.NetworkInfo;
/**
* Wizard card for network info configuration.
*/
public class NetworkInfoCard extends FlexWizardCard {
// The cached network info.
private NetworkInfo networkInfo;
// Button for network validation.
private Button btnValidate;
public NetworkInfoCard() {
super();
setViewTitle("Moblab Network Information");
setEditTitle("Validate Moblab Network Information");
btnValidate = new Button("Query");
btnValidate.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
validateNewtorkInfo(true);
}
});
}
@Override
public boolean canGoNext() {
return networkInfo != null && networkInfo.isConnectedToGoogle();
}
@Override
protected void updateModeUI() {
if (networkInfo != null) {
resetUI();
int row = 0;
layoutTable.setWidget(row, 0, new Label("Server IP"));
if (networkInfo.getServerIps().length > 0) {
layoutTable.setWidget(row, 1, new Label(networkInfo.getServerIps()[0]));
} else {
layoutTable.setWidget(row, 1, new Label("Unknown"));
}
row++;
layoutTable.setWidget(row, 0, new Label("Connected to Internet"));
layoutTable.setWidget(row, 1,
new Label(networkInfo.isConnectedToGoogle() ? "Yes" : "No"));
row++;
if (getMode() == ConfigWizard.Mode.Edit) {
layoutTable.setWidget(row, 0, btnValidate);
}
} else {
validateNewtorkInfo(false);
}
}
protected void validateNewtorkInfo(final boolean notify) {
MoblabRpcHelper.fetchNetworkInfo(new MoblabRpcCallbacks.FetchNetworkInfoRpcCallback() {
@Override
public void onNetworkInfoFetched(NetworkInfo info) {
networkInfo = info;
if (notify) {
NotifyManager.getInstance().showMessage("Retrieved netowrk information.");
}
updateModeUI();
fireDataStatusChanged();
}
});
}
@Override
public void resetData() {
networkInfo = null;
super.resetData();
}
}