com.ebmwebsourcing.petals.services.su.extensions.generic.GenericSuWizardPage.java Source code

Java tutorial

Introduction

Here is the source code for com.ebmwebsourcing.petals.services.su.extensions.generic.GenericSuWizardPage.java

Source

/******************************************************************************
 * Copyright (c) 2011-2013, Linagora
 *
 * 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:
 *       Linagora - initial API and implementation
 *******************************************************************************/

package com.ebmwebsourcing.petals.services.su.extensions.generic;

import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;

import com.ebmwebsourcing.petals.common.internal.provisional.utils.StringUtils;
import com.ebmwebsourcing.petals.common.internal.provisional.utils.SwtFactory;
import com.ebmwebsourcing.petals.services.su.extensions.ComponentVersionDescription;
import com.ebmwebsourcing.petals.services.su.wizards.pages.AbstractSuWizardPage;

/**
 * A wizard page to define the target component (and to create a default SU for this component).
 * @author Vincent Zurczak - EBM WebSourcing
 */
public class GenericSuWizardPage extends AbstractSuWizardPage {

    /**
     * Empty constructor. Required empty to be instantiated by the main plug-in.
     */
    public GenericSuWizardPage() {
        super("GenericSuWizardPage");
    }

    /*
     * (non-Javadoc)
     * @see com.ebmwebsourcing.petals.tools.eclipse.su.main.pages.XsdBasedAbstractSuPage
     * #dialogChanged()
     */
    @Override
    public boolean validate() {

        setMessage(null, IMessageProvider.INFORMATION);

        // Validate the fields
        String error = null;
        ComponentVersionDescription desc = getWizard().getComponentVersionDescription();
        if (StringUtils.isEmpty(desc.getComponentName()))
            error = "You have to set the component name.";
        else if (StringUtils.isEmpty(desc.getComponentAlias()))
            error = "You have to define the service type (e.g. SOAP).";

        // Update the UI
        setPageComplete(error == null);
        setErrorMessage(error);
        return error == null;
    }

    /*
     * (non-Javadoc)
     * @see org.eclipse.jface.dialogs.IDialogPage
     * #createControl(org.eclipse.swt.widgets.Composite)
     */
    @Override
    public void createControl(final Composite parent) {

        // Keep the component description
        final GenericComponentDescription genDesc = (GenericComponentDescription) getWizard()
                .getComponentVersionDescription();

        // Create the composite container and define its layout.
        final Composite container = SwtFactory.createComposite(parent);
        SwtFactory.applyNewGridLayout(container, 2, false, 20, 15, 5, 15);
        SwtFactory.applyGrabbingGridData(container);

        // The fields to fill-in
        SwtFactory.createLabel(container, "Component Type:", "The type of the target component");
        Combo typeCombo = SwtFactory.createDropDownCombo(container, true, true);
        typeCombo.add("Binding Component");
        typeCombo.add("Service Engine");
        typeCombo.select(genDesc.isBc() ? 0 : 1);
        typeCombo.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                boolean isBc = ((Combo) e.widget).getSelectionIndex() == 0 ? true : false;
                genDesc.setBc(isBc);
                validate();
            }
        });

        SwtFactory.createLabel(container, "Component Name:", "The name of the target component");
        Text text = SwtFactory.createSimpleTextField(container, true);
        text.setText(genDesc.getComponentName());
        text.addModifyListener(new ModifyListener() {
            @Override
            public void modifyText(ModifyEvent e) {
                String componentName = ((Text) e.widget).getText().trim();
                genDesc.setComponentName(componentName);
                validate();
            }
        });

        SwtFactory.createLabel(container, "Component Version:", "The version of the target component");
        text = SwtFactory.createSimpleTextField(container, true);
        genDesc.setComponentVersion("1.0");
        text.setText("1.0");
        text.addModifyListener(new ModifyListener() {
            @Override
            public void modifyText(ModifyEvent e) {
                String version = ((Text) e.widget).getText().trim();
                genDesc.setComponentVersion(version);
                validate();
            }
        });

        SwtFactory.createLabel(container, "Component Alias:", "The component's alias (e.g. SOAP, FTP...)");
        text = SwtFactory.createSimpleTextField(container, true);
        text.setText(genDesc.getComponentAlias());
        text.addModifyListener(new ModifyListener() {
            @Override
            public void modifyText(ModifyEvent e) {
                String type = ((Text) e.widget).getText().trim();
                genDesc.setComponentAlias(type);
                validate();
            }
        });

        //      SwtFactory.createLabel( container, "CDK Version:", "The version of the CDK to use" );
        //      Combo cdkCombo = new Combo( container, SWT.DROP_DOWN | SWT.BORDER | SWT.READ_ONLY );
        //      cdkCombo.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ));
        //      cdkCombo.add( "" );
        //      cdkCombo.add( "4.x" );
        //      cdkCombo.add( "5.x" );
        //      cdkCombo.addSelectionListener( new SelectionAdapter() {
        //         @Override
        //         public void widgetSelected( SelectionEvent e ) {
        //            // String version = ((Combo) e.widget).getText();
        //            // TODO : commented to remove deps on editor to CDK
        //            // GenericSuWizardPage.this.cdkNamespaceUri = CdkXsdManager.getInstance().resolveCdkVersion( version.replace( 'x', '0' ));
        //            // validate();
        //         }
        //      });

        // Complete the page
        validate();
        String msg = getErrorMessage();
        if (msg != null) {
            setErrorMessage(null);
            setMessage(msg, IMessageProvider.INFORMATION);
        }

        setControl(container);
    }
}