| 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(); |
| } |
| } |