com.amalto.workbench.dialogs.SetupTransformerInputVariablesDialog.java Source code

Java tutorial

Introduction

Here is the source code for com.amalto.workbench.dialogs.SetupTransformerInputVariablesDialog.java

Source

// ============================================================================
//
// Copyright (C) 2006-2017 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package com.amalto.workbench.dialogs;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.widgets.FormToolkit;

import com.amalto.workbench.editors.TransformerMainPage;
import com.amalto.workbench.i18n.Messages;
import com.amalto.workbench.models.Line;
import com.amalto.workbench.models.TreeObject;
import com.amalto.workbench.utils.EContentType;
import com.amalto.workbench.utils.EInputTemplate;
import com.amalto.workbench.webservices.WSTransformerProcessStep;
import com.amalto.workbench.webservices.WSTransformerV2;
import com.amalto.workbench.webservices.WSTransformerVariablesMapping;
import com.amalto.workbench.widgets.ComplexTableViewer;
import com.amalto.workbench.widgets.ComplexTableViewerColumn;
import com.amalto.workbench.widgets.ComplexTableViewerR;

public class SetupTransformerInputVariablesDialog extends Dialog {

    WSTransformerV2 transformer;

    FormToolkit toolkit;

    TreeObject object;

    private ComplexTableViewer objectViewer;

    TransformerMainPage page;

    public SetupTransformerInputVariablesDialog(Shell parentShell, FormToolkit toolkit, TreeObject obj,
            TransformerMainPage page) {
        super(parentShell);
        this.toolkit = toolkit;
        object = obj;
        this.page = page;
        transformer = (WSTransformerV2) obj.getWsObject();
    }

    @Override
    protected Control createDialogArea(Composite parent) {
        Group comp = new Group(parent, SWT.NONE);
        comp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
        ((GridLayout) parent.getLayout()).marginTop = 5;
        ((GridLayout) parent.getLayout()).marginLeft = 5;
        ((GridLayout) parent.getLayout()).marginRight = 5;
        ((GridLayout) parent.getLayout()).marginBottom = 5;
        parent.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE));
        comp.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE));

        comp.setLayout(new GridLayout(1, false));
        comp.setText(Messages.bind(Messages.SetupTransformerInputVariablesDialog_CompText, transformer.getName()));

        // Get the input variable names
        Set<String> inputVariables = new HashSet<String>();
        for (WSTransformerProcessStep step : transformer.getProcessSteps()) {
            for (WSTransformerVariablesMapping mapping : step.getInputMappings()) {
                inputVariables.add(mapping.getPipelineVariable() == null ? TransformerMainPage.DEFAULT_VAR
                        : mapping.getPipelineVariable());
            }
        }

        ComplexTableViewerColumn[] columns = new ComplexTableViewerColumn[] {
                new ComplexTableViewerColumn(Messages.SetupTransformerInputVariablesDialog_InputVariables, // name
                        true, // is Nillable ?
                        "_DEFAULT_", // Nill value//$NON-NLS-1$
                        "_DEFAULT_", // Nill display//$NON-NLS-1$
                        "", // Default Value//$NON-NLS-1$
                        ComplexTableViewerColumn.COMBO_STYLE, // is Combo ?
                        inputVariables.toArray(new String[inputVariables.size()]), // Combo Values
                        0 // Text Lines
                ), new ComplexTableViewerColumn(Messages.SetupTransformerInputVariablesDialog_ContentType, // name
                        false, // is Nillable ?
                        "", // Nill value//$NON-NLS-1$
                        "", // Nill display//$NON-NLS-1$
                        "text/xml", // Default Value//$NON-NLS-1$
                        ComplexTableViewerColumn.COMBO_STYLE, // is Combo ?
                        EContentType.allTypes().toArray(new String[EContentType.allTypes().size()]), // Combo Values
                        0 // Text Lines
                ), new ComplexTableViewerColumn(Messages.SetupTransformerInputVariablesDialog_Value, // name
                        true, // is Nillable ?
                        "", // Nill value//$NON-NLS-1$
                        "", // Nill display//$NON-NLS-1$
                        "", // Default Value//$NON-NLS-1$
                        ComplexTableViewerColumn.TEXT_STYLE, // is Combo ?
                        null, // Combo Values
                        10 // Text Lines
                ) };
        objectViewer = new ComplexTableViewerR(Arrays.asList(columns), toolkit, comp, page.getSite());
        objectViewer.create();

        Table table = objectViewer.getViewer().getTable();

        table.getColumns()[2].setWidth(500);

        // GridData gd=(GridData)objectViewer.getTxtLists().get(0).getLayoutData();
        // gd.minimumHeight=200;
        // gd.minimumWidth=300;

        table.setHeaderVisible(true);
        table.setLinesVisible(true);

        // ((GridData)table.getLayoutData()).minimumHeight = 100;
        // ((GridData)table.getLayoutData()).minimumWidth = 600;
        if (page.getCacheList() != null) {
            objectViewer.getViewer().setInput(page.getCacheList());
        } else {
            List<Line> list = new ArrayList<Line>();
            objectViewer.getViewer().setInput(list);
        }
        final CCombo combo = (CCombo) objectViewer.getColumns().get(1).getControl();
        combo.addSelectionListener(new SelectionListener() {

            public void widgetDefaultSelected(SelectionEvent e) {

            }

            public void widgetSelected(SelectionEvent e) {

                if (combo.getText().equals(EInputTemplate.APPLICATION_ITEMPK.getName())) {
                    Text t = (Text) objectViewer.getColumns().get(2).getControl();
                    t.setText(EInputTemplate.APPLICATION_ITEMPK.getContent());
                }
            }

        });
        return comp;

    }

    @Override
    protected void createButtonsForButtonBar(Composite parent) {
        super.createButtonsForButtonBar(parent);
        parent.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE));
    }

    private void processOk() {
        // objectViewer.add();
        java.util.List<Line> list = (java.util.List<Line>) objectViewer.getViewer().getInput();
        if (list.size() == 0) {
            return;
        }

        page.setCacheList(list);
        page.execute();

    }

    @Override
    protected void okPressed() {
        setReturnCode(OK);
        processOk();
        super.okPressed();
    }

    @Override
    protected void cancelPressed() {
        setReturnCode(CANCEL);
        super.cancelPressed();
    }
}