@Action public void protocolSelectionChanged(final NSPopUpButton sender) { log.debug("protocolSelectionChanged:" + sender); final Protocol selected = ProtocolFactory.forName(protocolPopup.selectedItem().representedObject()); host.setPort(selected.getDefaultPort()); if (!host.getProtocol().isHostnameConfigurable()) { // Previously selected protocol had a default hostname. Change to default // of newly selected protocol. host.setHostname(selected.getDefaultHostname()); } if (!selected.isHostnameConfigurable()) { // Hostname of newly selected protocol is not configurable. Change to default. host.setHostname(selected.getDefaultHostname()); } if (StringUtils.isNotBlank(selected.getDefaultHostname())) { // Prefill with default hostname host.setHostname(selected.getDefaultHostname()); } if (!selected.isWebUrlConfigurable()) { host.setWebURL(null); } host.setProtocol(selected); this.itemChanged(); this.init(); this.reachable(); }
public void setProtocolPopup(NSPopUpButton protocolPopup) { this.protocolPopup = protocolPopup; this.protocolPopup.setEnabled(true); this.protocolPopup.setTarget(this.id()); this.protocolPopup.setAction(Foundation.selector("protocolSelectionChanged:")); this.protocolPopup.removeAllItems(); for (Protocol protocol : ProtocolFactory.getKnownProtocols()) { final String title = protocol.getDescription(); this.protocolPopup.addItemWithTitle(title); final NSMenuItem item = this.protocolPopup.itemWithTitle(title); item.setRepresentedObject(String.valueOf(protocol.hashCode())); item.setImage(IconCache.iconNamed(protocol.icon(), 16)); } }