/*
* Copyright (c) 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.util.ObjectUtil;
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.AcceptorFactory;
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
* @since 4.0
*/
public class JVMAcceptorWizard extends ElementWizard implements ModifyListener
{
private Text acceptorNameText;
public JVMAcceptorWizard()
{
}
@Override
protected void create(Composite parent)
{
acceptorNameText = addText(parent, "Acceptor Name:");
acceptorNameText.addModifyListener(this);
String description = getDefaultDescription();
if (description != null)
{
acceptorNameText.setText(description);
}
}
public void modifyText(ModifyEvent e)
{
String acceptorName = acceptorNameText.getText();
if (acceptorName.length() == 0)
{
setValidationError(acceptorNameText, "Acceptor name is empty.");
return;
}
try
{
for (Object element : getContainer().getElements(AcceptorFactory.PRODUCT_GROUP, "jvm"))
{
if (element instanceof org.eclipse.net4j.jvm.IJVMAcceptor)
{
org.eclipse.net4j.jvm.IJVMAcceptor acceptor = (org.eclipse.net4j.jvm.IJVMAcceptor)element;
if (ObjectUtil.equals(acceptor.getName(), acceptorName))
{
setValidationError(acceptorNameText, "Duplicate acceptor name.");
return;
}
}
}
}
catch (NoClassDefFoundError error)
{
// Ignore.
}
setResultDescription(acceptorName);
setValidationError(acceptorNameText, null);
}
/**
* @author Eike Stepper
*/
public static class Factory extends ElementWizardFactory
{
public Factory()
{
super(AcceptorFactory.PRODUCT_GROUP, "jvm");
}
@Override
public JVMAcceptorWizard create(String description) throws ProductCreationException
{
return new JVMAcceptorWizard();
}
}
}