/* * Copyright (c) 2010-2012 Eike Stepper (Berlin, Germany) and others. * 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: * Eike Stepper - initial API and implementation * Martin Fluegge - initial API and implementation */ package org.eclipse.net4j.internal.ui.container; import org.eclipse.net4j.internal.ui.bundle.OM; import org.eclipse.net4j.tcp.TCPUtil.ConnectorData; import org.eclipse.net4j.util.factory.ProductCreationException; import org.eclipse.net4j.util.ui.container.ElementWizard; import org.eclipse.net4j.util.ui.container.ElementWizardFactory; import org.eclipse.spi.net4j.ConnectorFactory; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Text; /** * @author Eike Stepper * @author Martin Fluegge * @since 4.0 */ public class TCPConnectorWizard extends ElementWizard implements ModifyListener { private Text hostText; private Text portText; public TCPConnectorWizard() { } @Override protected void create(Composite parent) { hostText = addText(parent, "Host:"); hostText.addModifyListener(this); portText = addText(parent, "Port:"); portText.addModifyListener(this); String description = getDefaultDescription(); if (description != null) { try { ConnectorData data = new ConnectorData(description); hostText.setText(data.getHost()); portText.setText(Integer.toString(data.getPort())); } catch (NoClassDefFoundError error) { OM.LOG.error(error); } } } public void modifyText(ModifyEvent e) { String host = hostText.getText(); if (host.length() == 0) { setValidationError(hostText, "Host name is empty."); return; } String port = portText.getText(); if (port.length() != 0) { host += ":" + port; } setResultDescription(host); setValidationError(hostText, null); } /** * @author Eike Stepper */ public static class Factory extends ElementWizardFactory { public Factory() { super(ConnectorFactory.PRODUCT_GROUP, "tcp"); } @Override public TCPConnectorWizard create(String description) throws ProductCreationException { return new TCPConnectorWizard(); } } }