/******************************************************************************* * Copyright (c) 2011, 2016 Eurotech and/or its affiliates * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Eurotech *******************************************************************************/ package org.eclipse.kura.web.client.ui.Network; import java.util.HashMap; import java.util.List; import java.util.Map; import org.eclipse.kura.web.client.messages.Messages; import org.eclipse.kura.web.client.util.MessageUtils; import org.eclipse.kura.web.shared.model.GwtModemAuthType; import org.eclipse.kura.web.shared.model.GwtModemInterfaceConfig; import org.eclipse.kura.web.shared.model.GwtNetInterfaceConfig; import org.eclipse.kura.web.shared.model.GwtSession; import org.gwtbootstrap3.client.ui.FieldSet; import org.gwtbootstrap3.client.ui.FormControlStatic; import org.gwtbootstrap3.client.ui.FormGroup; import org.gwtbootstrap3.client.ui.FormLabel; import org.gwtbootstrap3.client.ui.HelpBlock; import org.gwtbootstrap3.client.ui.Input; import org.gwtbootstrap3.client.ui.ListBox; import org.gwtbootstrap3.client.ui.PanelHeader; import org.gwtbootstrap3.client.ui.RadioButton; import org.gwtbootstrap3.client.ui.TextBox; import org.gwtbootstrap3.client.ui.constants.ValidationState; import org.gwtbootstrap3.client.ui.html.Span; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.BlurEvent; import com.google.gwt.event.dom.client.BlurHandler; import com.google.gwt.event.dom.client.ChangeEvent; import com.google.gwt.event.dom.client.ChangeHandler; import com.google.gwt.event.dom.client.MouseOutEvent; import com.google.gwt.event.dom.client.MouseOutHandler; import com.google.gwt.event.dom.client.MouseOverEvent; import com.google.gwt.event.dom.client.MouseOverHandler; import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.ScrollPanel; import com.google.gwt.user.client.ui.Widget; public class TabModemUi extends Composite implements NetworkTab { private static final String MODEM_AUTH_NONE_MESSAGE = MessageUtils.get(GwtModemAuthType.netModemAuthNONE.name()); private static TabModemUiUiBinder uiBinder = GWT.create(TabModemUiUiBinder.class); interface TabModemUiUiBinder extends UiBinder<Widget, TabModemUi> { } private static final Messages MSGS = GWT.create(Messages.class); private static final String REGEX_NUM = "(?:\\d*)?\\d+"; private final GwtSession session; private final TabTcpIpUi tcpTab; private boolean dirty; private GwtModemInterfaceConfig selectedNetIfConfig; private final Map<String, String> defaultDialString = new HashMap<String, String>(); private String dialString; @UiField FormGroup groupReset, groupMaxfail, groupIdle, groupInterval, groupFailure, groupNumber, groupDial, groupApn; @UiField FormLabel labelModel, labelNetwork, labelService, labelModem, labelNumber, labelDial, labelApn, labelAuth, labelUsername, labelPassword, labelReset, labelPersist, labelMaxfail, labelIdle, labelActive, labelInterval, labelFailure; @UiField HelpBlock helpReset, helpMaxfail, helpIdle, helpInterval, helpFailure, helpNumber; @UiField ListBox network, auth; @UiField TextBox modem, number, dial, apn, username, reset, maxfail, idle, active, interval, failure; @UiField FormControlStatic model, service; @UiField Input password; @UiField RadioButton radio1, radio2; @UiField PanelHeader helpTitle; @UiField ScrollPanel helpText; @UiField FieldSet field; public TabModemUi(GwtSession currentSession, TabTcpIpUi tcp) { initWidget(uiBinder.createAndBindUi(this)); this.session = currentSession; this.tcpTab = tcp; this.defaultDialString.put("HE910", "atd*99***1#"); this.defaultDialString.put("DE910", "atd#777"); initForm(); this.tcpTab.status.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { update(); } }); } @Override public void setDirty(boolean flag) { this.dirty = flag; } @Override public boolean isDirty() { return this.dirty; } @Override public boolean isValid() { if (this.number.getText() == null || "".equals(this.number.getText().trim())) { this.groupNumber.setValidationState(ValidationState.ERROR); } if (this.dial.getText() == null || "".equals(this.dial.getText().trim())) { this.groupDial.setValidationState(ValidationState.ERROR); } if (this.apn.getText() == null || "".equals(this.apn.getText().trim())) { if (this.apn.isEnabled()) { this.groupApn.setValidationState(ValidationState.ERROR); } } if (this.maxfail.getText() == null || "".equals(this.maxfail.getText().trim())) { this.groupMaxfail.setValidationState(ValidationState.ERROR); } if (this.idle.getText() == null || "".equals(this.idle.getText().trim())) { this.groupIdle.setValidationState(ValidationState.ERROR); } if (this.interval.getText() == null || "".equals(this.interval.getText().trim())) { this.groupInterval.setValidationState(ValidationState.ERROR); } if (this.failure.getText() == null || "".equals(this.failure.getText().trim())) { this.groupFailure.setValidationState(ValidationState.ERROR); } if (this.groupNumber.getValidationState().equals(ValidationState.ERROR) || this.groupDial.getValidationState().equals(ValidationState.ERROR) || this.groupApn.getValidationState().equals(ValidationState.ERROR) || this.groupMaxfail.getValidationState().equals(ValidationState.ERROR) || this.groupIdle.getValidationState().equals(ValidationState.ERROR) || this.groupInterval.getValidationState().equals(ValidationState.ERROR) || this.groupFailure.getValidationState().equals(ValidationState.ERROR)) { return false; } else { return true; } } @Override public void setNetInterface(GwtNetInterfaceConfig config) { setDirty(true); if (config instanceof GwtModemInterfaceConfig) { this.selectedNetIfConfig = (GwtModemInterfaceConfig) config; } } @Override public void refresh() { if (isDirty()) { setDirty(false); resetValidations(); if (this.selectedNetIfConfig == null) { reset(); } else { update(); } } } @Override public void getUpdatedNetInterface(GwtNetInterfaceConfig updatedNetIf) { GwtModemInterfaceConfig updatedModemNetIf = (GwtModemInterfaceConfig) updatedNetIf; if (this.model.getText() != null && this.service.getText() != null) { // note - status is set in tcp/ip tab updatedModemNetIf.setPppNum(Integer.parseInt(this.number.getText())); updatedModemNetIf.setModemId(this.modem.getText().trim() != null ? this.modem.getText().trim() : ""); updatedModemNetIf.setDialString(this.dial.getText().trim() != null ? this.dial.getText().trim() : ""); updatedModemNetIf.setApn(this.apn.getText().trim() != null ? this.apn.getText().trim() : ""); String authValue = this.auth.getSelectedValue(); for (GwtModemAuthType authT : GwtModemAuthType.values()) { if (MessageUtils.get(authT.name()).equals(authValue)) { updatedModemNetIf.setAuthType(authT); } } if (updatedModemNetIf.getAuthType() != GwtModemAuthType.netModemAuthNONE) { updatedModemNetIf .setUsername(this.username.getText().trim() != null ? this.username.getText().trim() : ""); updatedModemNetIf .setPassword(this.password.getText().trim() != null ? this.password.getText().trim() : ""); } updatedModemNetIf.setResetTimeout(Integer.parseInt(this.reset.getValue().trim())); updatedModemNetIf.setPersist(this.radio1.getValue()); updatedModemNetIf.setMaxFail(Integer.parseInt(this.maxfail.getText().trim())); updatedModemNetIf.setIdle(Integer.parseInt(this.idle.getText().trim())); updatedModemNetIf.setActiveFilter(this.active.getText() != "" ? this.active.getText().trim() : ""); updatedModemNetIf.setLcpEchoInterval(Integer.parseInt(this.interval.getText().trim())); updatedModemNetIf.setLcpEchoFailure(Integer.parseInt(this.failure.getText().trim())); // --- } else { // initForm hasn't been called yet updatedModemNetIf.setPppNum(this.selectedNetIfConfig.getPppNum()); updatedModemNetIf.setModemId(this.selectedNetIfConfig.getModemId()); updatedModemNetIf.setDialString(this.selectedNetIfConfig.getDialString()); updatedModemNetIf.setApn(this.selectedNetIfConfig.getApn()); updatedModemNetIf.setAuthType(this.selectedNetIfConfig.getAuthType()); updatedModemNetIf.setUsername(this.selectedNetIfConfig.getUsername()); updatedModemNetIf.setPassword(this.selectedNetIfConfig.getPassword()); updatedModemNetIf.setResetTimeout(this.selectedNetIfConfig.getResetTimeout()); updatedModemNetIf.setPersist(this.selectedNetIfConfig.isPersist()); updatedModemNetIf.setMaxFail(this.selectedNetIfConfig.getMaxFail()); updatedModemNetIf.setIdle(this.selectedNetIfConfig.getIdle()); updatedModemNetIf.setActiveFilter(this.selectedNetIfConfig.getActiveFilter()); updatedModemNetIf.setLcpEchoInterval(this.selectedNetIfConfig.getLcpEchoInterval()); updatedModemNetIf.setLcpEchoFailure(this.selectedNetIfConfig.getLcpEchoFailure()); } } // ----Private Methods---- private void initForm() { // MODEL this.labelModel.setText(MSGS.netModemModel()); // NETWORK TECHNOLOGY this.labelNetwork.setText(MSGS.netModemNetworkTechnology()); this.network.addItem(MSGS.unknown()); this.network.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { if (TabModemUi.this.network.isEnabled()) { TabModemUi.this.helpText.clear(); TabModemUi.this.helpText.add(new Span(MSGS.netModemToolTipNetworkTopology())); } } }); this.network.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { resetHelp(); } }); this.network.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { setDirty(true); refreshForm(); } }); // CONNECTION TYPE this.labelService.setText(MSGS.netModemConnectionType()); // MODEM IDENTIFIER this.labelModem.setText(MSGS.netModemIdentifier()); this.modem.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { if (TabModemUi.this.modem.isEnabled()) { TabModemUi.this.helpText.clear(); TabModemUi.this.helpText.add(new Span(MSGS.netModemToolTipModemIndentifier())); } } }); this.modem.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { resetHelp(); } }); this.modem.addValueChangeHandler(new ValueChangeHandler<String>() { @Override public void onValueChange(ValueChangeEvent<String> event) { setDirty(true); } }); // INTERFACE NUMBER this.labelNumber.setText(MSGS.netModemInterfaceNum() + "*"); this.number.addBlurHandler(new BlurHandler() { @Override public void onBlur(BlurEvent event) { setDirty(true); if (TabModemUi.this.number.getText().trim() != null && (!TabModemUi.this.number.getText().trim().matches(REGEX_NUM) || Integer.parseInt(TabModemUi.this.number.getText()) < 0)) { TabModemUi.this.helpNumber.setText("This Field requires a numeric input"); TabModemUi.this.groupNumber.setValidationState(ValidationState.ERROR); } else { TabModemUi.this.helpNumber.setText(""); TabModemUi.this.groupNumber.setValidationState(ValidationState.NONE); } } }); this.number.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { if (TabModemUi.this.number.isEnabled()) { TabModemUi.this.helpText.clear(); TabModemUi.this.helpText.add(new Span(MSGS.netModemToolTipModemInterfaceNumber())); } } }); this.number.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { resetHelp(); } }); // DIAL STRING this.labelDial.setText(MSGS.netModemDialString() + "*"); this.dial.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { resetHelp(); } }); this.dialString = ""; String model = ""; if (this.selectedNetIfConfig != null) { model = this.selectedNetIfConfig.getModel(); if (model != null && model.length() > 0) { if (model.contains("HE910")) { this.dialString = this.defaultDialString.get("HE910"); } else if (model.contains("DE910")) { this.dialString = this.defaultDialString.get("DE910"); } else { this.dialString = ""; } } } this.dial.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { if (TabModemUi.this.dial.isEnabled()) { TabModemUi.this.helpText.clear(); if (TabModemUi.this.dialString.equals("")) { TabModemUi.this.helpText.add(new Span(MSGS.netModemToolTipDialStringDefault())); } else { TabModemUi.this.helpText .add(new Span(MSGS.netModemToolTipDialString(TabModemUi.this.dial.getText()))); } } } }); this.dial.addBlurHandler(new BlurHandler() { @Override public void onBlur(BlurEvent event) { setDirty(true); if (TabModemUi.this.dial.getText() == null || "".equals(TabModemUi.this.dial.getText().trim())) { TabModemUi.this.groupDial.setValidationState(ValidationState.ERROR); } else { TabModemUi.this.groupDial.setValidationState(ValidationState.NONE); } } }); // APN this.labelApn.setText(MSGS.netModemAPN() + "*"); this.apn.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { if (TabModemUi.this.apn.isEnabled()) { TabModemUi.this.helpText.clear(); TabModemUi.this.helpText.add(new Span(MSGS.netModemToolTipApn())); } } }); this.apn.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { resetHelp(); } }); this.apn.addBlurHandler(new BlurHandler() { @Override public void onBlur(BlurEvent event) { setDirty(true); if (TabModemUi.this.apn.getText() == null || "".equals(TabModemUi.this.apn.getText().trim())) { if (TabModemUi.this.apn.isEnabled()) { TabModemUi.this.groupApn.setValidationState(ValidationState.ERROR); } else { TabModemUi.this.groupApn.setValidationState(ValidationState.NONE); } } else { TabModemUi.this.groupApn.setValidationState(ValidationState.NONE); } } }); // AUTH TYPE this.labelAuth.setText(MSGS.netModemAuthType()); for (GwtModemAuthType a : GwtModemAuthType.values()) { this.auth.addItem(MessageUtils.get(a.name())); } this.auth.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { if (TabModemUi.this.auth.isEnabled()) { TabModemUi.this.helpText.clear(); TabModemUi.this.helpText.add(new Span(MSGS.netModemToolTipAuthentication())); } } }); this.auth.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { resetHelp(); } }); this.auth.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { setDirty(true); refreshForm(); } }); // USERNAME this.labelUsername.setText(MSGS.netModemUsername()); this.username.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { if (TabModemUi.this.username.isEnabled()) { TabModemUi.this.helpText.clear(); TabModemUi.this.helpText.add(new Span(MSGS.netModemToolTipUsername())); } } }); this.username.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { resetHelp(); } }); this.username.addValueChangeHandler(new ValueChangeHandler<String>() { @Override public void onValueChange(ValueChangeEvent<String> event) { setDirty(true); } }); // PASSWORD this.labelPassword.setText(MSGS.netModemPassword()); this.password.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { if (TabModemUi.this.network.isEnabled()) { TabModemUi.this.helpText.clear(); TabModemUi.this.helpText.add(new Span(MSGS.netModemToolTipPassword())); } } }); this.password.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { resetHelp(); } }); this.password.addValueChangeHandler(new ValueChangeHandler<String>() { @Override public void onValueChange(ValueChangeEvent<String> event) { setDirty(true); } }); // MODEM RESET TIMEOUT this.labelReset.setText(MSGS.netModemResetTimeout() + "*"); this.reset.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { if (TabModemUi.this.reset.isEnabled()) { TabModemUi.this.helpText.clear(); TabModemUi.this.helpText.add(new Span(MSGS.netModemToolTipResetTimeout())); } } }); this.reset.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { resetHelp(); } }); this.reset.addBlurHandler(new BlurHandler() { @Override public void onBlur(BlurEvent event) { setDirty(true); if (TabModemUi.this.reset.getText().trim() != null && (!TabModemUi.this.reset.getText().trim().matches(REGEX_NUM) || Integer.parseInt(TabModemUi.this.reset.getText()) < 0 || Integer.parseInt(TabModemUi.this.reset.getText()) == 1)) { TabModemUi.this.helpReset.setText(MSGS.netModemInvalidResetTimeout()); TabModemUi.this.groupReset.setValidationState(ValidationState.ERROR); } else { TabModemUi.this.helpReset.setText(""); TabModemUi.this.groupReset.setValidationState(ValidationState.NONE); } } }); // REOPEN CONNECTION ON TERMINATION this.labelPersist.setText(MSGS.netModemPersist()); this.radio1.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { if (TabModemUi.this.radio1.isEnabled()) { TabModemUi.this.helpText.clear(); TabModemUi.this.helpText.add(new Span(MSGS.netModemToolTipPersist())); } } }); this.radio1.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { resetHelp(); } }); this.radio2.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { if (TabModemUi.this.radio2.isEnabled()) { TabModemUi.this.helpText.clear(); TabModemUi.this.helpText.add(new Span(MSGS.netModemToolTipPersist())); } } }); this.radio2.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { resetHelp(); } }); this.radio1.addValueChangeHandler(new ValueChangeHandler<Boolean>() { @Override public void onValueChange(ValueChangeEvent<Boolean> event) { setDirty(true); } }); this.radio2.addValueChangeHandler(new ValueChangeHandler<Boolean>() { @Override public void onValueChange(ValueChangeEvent<Boolean> event) { setDirty(true); } }); // CONNECTION ATTEMPTS this.labelMaxfail.setText(MSGS.netModemMaxFail() + "*"); this.maxfail.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { if (TabModemUi.this.maxfail.isEnabled()) { TabModemUi.this.helpText.clear(); TabModemUi.this.helpText.add(new Span(MSGS.netModemToolTipMaxFail())); } } }); this.maxfail.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { resetHelp(); } }); this.maxfail.addBlurHandler(new BlurHandler() { @Override public void onBlur(BlurEvent event) { setDirty(true); if (TabModemUi.this.maxfail.getText().trim() != null && (!TabModemUi.this.maxfail.getText().trim().matches(REGEX_NUM) || Integer.parseInt(TabModemUi.this.maxfail.getText()) <= 0) || TabModemUi.this.maxfail.getText().trim().length() <= 0) { TabModemUi.this.helpMaxfail.setText(MSGS.netModemInvalidMaxFail()); TabModemUi.this.groupMaxfail.setValidationState(ValidationState.ERROR); } else { TabModemUi.this.helpMaxfail.setText(""); TabModemUi.this.groupMaxfail.setValidationState(ValidationState.NONE); } } }); // DISCONNET IF IDLE this.labelIdle.setText(MSGS.netModemIdle() + "*"); this.idle.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { if (TabModemUi.this.idle.isEnabled()) { TabModemUi.this.helpText.clear(); TabModemUi.this.helpText.add(new Span(MSGS.netModemToolTipIdle())); } } }); this.idle.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { resetHelp(); } }); this.idle.addBlurHandler(new BlurHandler() { @Override public void onBlur(BlurEvent event) { setDirty(true); if (TabModemUi.this.idle.getText().trim() != null && (!TabModemUi.this.idle.getText().trim().matches(REGEX_NUM) || Integer.parseInt(TabModemUi.this.idle.getText()) < 0)) { TabModemUi.this.helpIdle.setText(MSGS.netModemInvalidIdle()); TabModemUi.this.groupIdle.setValidationState(ValidationState.ERROR); } else { TabModemUi.this.helpIdle.setText(""); TabModemUi.this.groupIdle.setValidationState(ValidationState.NONE); } } }); // ACTIVE FILTER this.labelActive.setText(MSGS.netModemActiveFilter()); this.active.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { if (TabModemUi.this.active.isEnabled()) { TabModemUi.this.helpText.clear(); TabModemUi.this.helpText.add(new Span(MSGS.netModemToolTipActiveFilter())); } } }); this.active.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { resetHelp(); } }); this.active.addValueChangeHandler(new ValueChangeHandler<String>() { @Override public void onValueChange(ValueChangeEvent<String> event) { setDirty(true); } }); // LCP ECHO INTERVAL this.labelInterval.setText(MSGS.netModemLcpEchoInterval() + "*"); this.interval.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { if (TabModemUi.this.interval.isEnabled()) { TabModemUi.this.helpText.clear(); TabModemUi.this.helpText.add(new Span(MSGS.netModemToolTipLcpEchoInterval())); } } }); this.interval.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { resetHelp(); } }); this.interval.addBlurHandler(new BlurHandler() { @Override public void onBlur(BlurEvent event) { setDirty(true); if (TabModemUi.this.interval.getText().trim() != null && (!TabModemUi.this.interval.getText().trim().matches(REGEX_NUM) || Integer.parseInt(TabModemUi.this.interval.getText()) < 0)) { TabModemUi.this.helpInterval.setText(MSGS.netModemInvalidLcpEchoInterval()); TabModemUi.this.groupInterval.setValidationState(ValidationState.ERROR); } else { TabModemUi.this.groupInterval.setValidationState(ValidationState.NONE); } } }); // LCP ECHO FAILURE this.labelFailure.setText(MSGS.netModemLcpEchoFailure() + "*"); this.failure.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { if (TabModemUi.this.failure.isEnabled()) { TabModemUi.this.helpText.clear(); TabModemUi.this.helpText.add(new Span(MSGS.netModemToolTipLcpEchoFailure())); } } }); this.failure.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { resetHelp(); } }); this.failure.addBlurHandler(new BlurHandler() { @Override public void onBlur(BlurEvent event) { setDirty(true); if (TabModemUi.this.failure.getText().trim() != null && (!TabModemUi.this.failure.getText().trim().matches(REGEX_NUM) || Integer.parseInt(TabModemUi.this.failure.getText()) < 0)) { TabModemUi.this.helpFailure.setText(MSGS.netModemInvalidLcpEchoFailure()); TabModemUi.this.groupFailure.setValidationState(ValidationState.ERROR); } else { TabModemUi.this.helpFailure.setText(""); TabModemUi.this.groupFailure.setValidationState(ValidationState.NONE); } } }); this.helpTitle.setText(MSGS.netHelpTitle()); this.radio1.setText(MSGS.trueLabel()); this.radio2.setText(MSGS.falseLabel()); this.radio1.setValue(true); this.radio2.setValue(false); } private void resetValidations() { this.groupApn.setValidationState(ValidationState.NONE); this.groupDial.setValidationState(ValidationState.NONE); this.groupFailure.setValidationState(ValidationState.NONE); this.groupIdle.setValidationState(ValidationState.NONE); this.groupInterval.setValidationState(ValidationState.NONE); this.groupMaxfail.setValidationState(ValidationState.NONE); this.groupNumber.setValidationState(ValidationState.NONE); this.groupReset.setValidationState(ValidationState.NONE); this.helpReset.setText(""); this.helpMaxfail.setText(""); this.helpIdle.setText(""); this.helpInterval.setText(""); this.helpFailure.setText(""); this.helpNumber.setText(""); } private void resetHelp() { this.helpText.clear(); this.helpText.add(new Span(MSGS.netHelpDefaultHint())); } private void update() { if (this.selectedNetIfConfig != null) { this.model.setText(this.selectedNetIfConfig.getManufacturer() + "-" + this.selectedNetIfConfig.getModel()); this.network.clear(); List<String> networkTechnologies = this.selectedNetIfConfig.getNetworkTechnology(); if (networkTechnologies != null && !networkTechnologies.isEmpty()) { for (String techType : this.selectedNetIfConfig.getNetworkTechnology()) { this.network.addItem(techType); } } else { this.network.addItem(MSGS.unknown()); } this.service.setText(this.selectedNetIfConfig.getConnectionType()); this.modem.setText(this.selectedNetIfConfig.getModemId()); this.number.setText(String.valueOf(this.selectedNetIfConfig.getPppNum())); this.dial.setText(this.selectedNetIfConfig.getDialString()); this.apn.setText(this.selectedNetIfConfig.getApn()); GwtModemAuthType authType = GwtModemAuthType.netModemAuthNONE; if (this.selectedNetIfConfig.getAuthType() != null) { authType = this.selectedNetIfConfig.getAuthType(); } for (int i = 0; i < this.auth.getItemCount(); i++) { if (this.auth.getItemText(i).equals(MessageUtils.get(authType.name()))) { this.auth.setSelectedIndex(i); } } this.username.setText(this.selectedNetIfConfig.getUsername()); this.password.setText(this.selectedNetIfConfig.getPassword()); this.reset.setText(String.valueOf(this.selectedNetIfConfig.getResetTimeout())); if (this.selectedNetIfConfig.isPersist()) { this.radio1.setActive(true); this.radio2.setActive(false); } else { this.radio1.setActive(false); this.radio2.setActive(true); } this.maxfail.setText(String.valueOf(this.selectedNetIfConfig.getMaxFail())); this.idle.setText(String.valueOf(this.selectedNetIfConfig.getIdle())); this.active.setText(this.selectedNetIfConfig.getActiveFilter()); this.interval.setText(String.valueOf(this.selectedNetIfConfig.getLcpEchoInterval())); this.failure.setText(String.valueOf(this.selectedNetIfConfig.getLcpEchoFailure())); } refreshForm(); } private void refreshForm() { this.network.setEnabled(true); this.modem.setEnabled(true); this.number.setEnabled(true); this.dial.setEnabled(true); this.apn.setEnabled(true); this.auth.setEnabled(true); this.username.setEnabled(true); this.password.setEnabled(true); this.reset.setEnabled(true); this.radio1.setEnabled(true); this.radio2.setEnabled(true); this.maxfail.setEnabled(true); this.idle.setEnabled(true); this.active.setEnabled(true); this.interval.setEnabled(true); this.failure.setEnabled(true); String authTypeVal = this.auth.getSelectedItemText().trim(); if (authTypeVal == null || authTypeVal.equalsIgnoreCase(MODEM_AUTH_NONE_MESSAGE)) { this.username.setEnabled(false); this.password.setEnabled(false); } else { this.username.setEnabled(true); this.password.setEnabled(true); } /* * if (selectedNetIfConfig.isGpsSupported()) { * radio1.setEnabled(true); * radio2.setEnabled(true); * } else { * radio1.setEnabled(false); * radio2.setEnabled(false); * } */ if (this.selectedNetIfConfig != null) { for (String techType : this.selectedNetIfConfig.getNetworkTechnology()) { if (techType.equals("EVDO") || techType.equals("CDMA")) { this.apn.setEnabled(false); this.auth.setEnabled(false); this.username.setEnabled(false); this.password.setEnabled(false); } } } } private void reset() { this.model.setText(null); this.network.setSelectedIndex(0); this.service.setText(null); this.modem.setText(null); this.number.setText(null); this.dial.setText(null); this.apn.setText(null); this.auth.setSelectedIndex(1); this.username.setText(null); this.password.setText(null); this.reset.setText(null); this.radio1.setActive(true); this.radio2.setActive(false); this.maxfail.setText(null); this.idle.setText(null); this.active.setText(null); this.interval.setText(null); this.failure.setText(null); update(); } }