Search in sources :

Example 41 with CTabItem

use of org.eclipse.swt.custom.CTabItem in project pentaho-kettle by pentaho.

the class ScriptDialog method addCtab.

private void addCtab(String cScriptName, String strScript, int iType) {
    CTabItem item = new CTabItem(folder, SWT.CLOSE);
    switch(iType) {
        case ADD_DEFAULT:
            item.setText(cScriptName);
            break;
        default:
            item.setText(getNextName(cScriptName));
            break;
    }
    StyledTextComp wScript = new StyledTextComp(transMeta, item.getParent(), SWT.MULTI | SWT.LEFT | SWT.H_SCROLL | SWT.V_SCROLL, item.getText(), false);
    if ((strScript != null) && strScript.length() > 0) {
        wScript.setText(strScript);
    } else {
        wScript.setText(BaseMessages.getString(PKG, "ScriptDialog.ScriptHere.Label") + Const.CR + Const.CR);
    }
    item.setImage(imageInactiveScript);
    props.setLook(wScript, Props.WIDGET_STYLE_FIXED);
    wScript.addKeyListener(new KeyAdapter() {

        public void keyPressed(KeyEvent e) {
            setPosition();
        }

        public void keyReleased(KeyEvent e) {
            setPosition();
        }
    });
    wScript.addFocusListener(new FocusAdapter() {

        public void focusGained(FocusEvent e) {
            setPosition();
        }

        public void focusLost(FocusEvent e) {
            setPosition();
        }
    });
    wScript.addMouseListener(new MouseAdapter() {

        public void mouseDoubleClick(MouseEvent e) {
            setPosition();
        }

        public void mouseDown(MouseEvent e) {
            setPosition();
        }

        public void mouseUp(MouseEvent e) {
            setPosition();
        }
    });
    wScript.addModifyListener(lsMod);
    // Text Higlighting
    wScript.addLineStyleListener(new ScriptHighlight(ScriptAddedFunctions.jsFunctionList));
    item.setControl(wScript);
    // Adding new Item to Tree
    modifyScriptTree(item, ADD_ITEM);
}
Also used : StyledTextComp(org.pentaho.di.ui.core.widget.StyledTextComp) KeyEvent(org.eclipse.swt.events.KeyEvent) FocusAdapter(org.eclipse.swt.events.FocusAdapter) MouseEvent(org.eclipse.swt.events.MouseEvent) KeyAdapter(org.eclipse.swt.events.KeyAdapter) MouseAdapter(org.eclipse.swt.events.MouseAdapter) CTabItem(org.eclipse.swt.custom.CTabItem) FocusEvent(org.eclipse.swt.events.FocusEvent)

Example 42 with CTabItem

use of org.eclipse.swt.custom.CTabItem in project pentaho-kettle by pentaho.

the class ScriptDialog method open.

public String open() {
    Shell parent = getParent();
    Display display = parent.getDisplay();
    shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MAX | SWT.MIN);
    props.setLook(shell);
    setShellImage(shell, input);
    lsMod = new ModifyListener() {

        public void modifyText(ModifyEvent e) {
            input.setChanged();
        }
    };
    changed = input.hasChanged();
    FormLayout formLayout = new FormLayout();
    formLayout.marginWidth = Const.FORM_MARGIN;
    formLayout.marginHeight = Const.FORM_MARGIN;
    shell.setLayout(formLayout);
    shell.setText(BaseMessages.getString(PKG, "ScriptDialog.Shell.Title"));
    int middle = props.getMiddlePct();
    int margin = Const.MARGIN;
    // Filename line
    wlStepname = new Label(shell, SWT.RIGHT);
    wlStepname.setText(BaseMessages.getString(PKG, "ScriptDialog.Stepname.Label"));
    props.setLook(wlStepname);
    fdlStepname = new FormData();
    fdlStepname.left = new FormAttachment(0, 0);
    fdlStepname.right = new FormAttachment(middle, -margin);
    fdlStepname.top = new FormAttachment(0, margin);
    wlStepname.setLayoutData(fdlStepname);
    wStepname = new Text(shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
    wStepname.setText(stepname);
    props.setLook(wStepname);
    wStepname.addModifyListener(lsMod);
    fdStepname = new FormData();
    fdStepname.left = new FormAttachment(middle, 0);
    fdStepname.top = new FormAttachment(0, margin);
    fdStepname.right = new FormAttachment(100, 0);
    wStepname.setLayoutData(fdStepname);
    wSash = new SashForm(shell, SWT.VERTICAL);
    // Top sash form
    // 
    wTop = new Composite(wSash, SWT.NONE);
    props.setLook(wTop);
    FormLayout topLayout = new FormLayout();
    topLayout.marginWidth = Const.FORM_MARGIN;
    topLayout.marginHeight = Const.FORM_MARGIN;
    wTop.setLayout(topLayout);
    // Script line
    wlScriptFunctions = new Label(wTop, SWT.NONE);
    wlScriptFunctions.setText(BaseMessages.getString(PKG, "ScriptDialog.JavascriptFunctions.Label"));
    props.setLook(wlScriptFunctions);
    fdlScriptFunctions = new FormData();
    fdlScriptFunctions.left = new FormAttachment(0, 0);
    fdlScriptFunctions.top = new FormAttachment(0, 0);
    wlScriptFunctions.setLayoutData(fdlScriptFunctions);
    // Tree View Test
    wTree = new Tree(wTop, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    props.setLook(wTree);
    fdlTree = new FormData();
    fdlTree.left = new FormAttachment(0, 0);
    fdlTree.top = new FormAttachment(wlScriptFunctions, margin);
    fdlTree.right = new FormAttachment(20, 0);
    fdlTree.bottom = new FormAttachment(100, -margin);
    wTree.setLayoutData(fdlTree);
    // Script line
    wlScript = new Label(wTop, SWT.NONE);
    wlScript.setText(BaseMessages.getString(PKG, "ScriptDialog.Javascript.Label"));
    props.setLook(wlScript);
    fdlScript = new FormData();
    fdlScript.left = new FormAttachment(wTree, margin);
    fdlScript.top = new FormAttachment(0, 0);
    wlScript.setLayoutData(fdlScript);
    folder = new CTabFolder(wTop, SWT.BORDER | SWT.RESIZE);
    folder.setSimple(false);
    folder.setUnselectedImageVisible(true);
    folder.setUnselectedCloseVisible(true);
    fdScript = new FormData();
    fdScript.left = new FormAttachment(wTree, margin);
    fdScript.top = new FormAttachment(wlScript, margin);
    fdScript.right = new FormAttachment(100, -5);
    fdScript.bottom = new FormAttachment(100, -50);
    folder.setLayoutData(fdScript);
    wlPosition = new Label(wTop, SWT.NONE);
    wlPosition.setText(BaseMessages.getString(PKG, "ScriptDialog.Position.Label"));
    props.setLook(wlPosition);
    fdlPosition = new FormData();
    fdlPosition.left = new FormAttachment(wTree, margin);
    fdlPosition.right = new FormAttachment(30, 0);
    fdlPosition.top = new FormAttachment(folder, margin);
    wlPosition.setLayoutData(fdlPosition);
    wlHelpLabel = new Text(wTop, SWT.V_SCROLL | SWT.LEFT);
    wlHelpLabel.setEditable(false);
    wlHelpLabel.setText("Hallo");
    props.setLook(wlHelpLabel);
    fdHelpLabel = new FormData();
    fdHelpLabel.left = new FormAttachment(wlPosition, margin);
    fdHelpLabel.top = new FormAttachment(folder, margin);
    fdHelpLabel.right = new FormAttachment(100, -5);
    fdHelpLabel.bottom = new FormAttachment(100, 0);
    wlHelpLabel.setLayoutData(fdHelpLabel);
    wlHelpLabel.setVisible(false);
    fdTop = new FormData();
    fdTop.left = new FormAttachment(0, 0);
    fdTop.top = new FormAttachment(0, 0);
    fdTop.right = new FormAttachment(100, 0);
    fdTop.bottom = new FormAttachment(100, 0);
    wTop.setLayoutData(fdTop);
    wBottom = new Composite(wSash, SWT.NONE);
    props.setLook(wBottom);
    FormLayout bottomLayout = new FormLayout();
    bottomLayout.marginWidth = Const.FORM_MARGIN;
    bottomLayout.marginHeight = Const.FORM_MARGIN;
    wBottom.setLayout(bottomLayout);
    wSeparator = new Label(wBottom, SWT.SEPARATOR | SWT.HORIZONTAL);
    fdSeparator = new FormData();
    fdSeparator.left = new FormAttachment(0, 0);
    fdSeparator.right = new FormAttachment(100, 0);
    fdSeparator.top = new FormAttachment(0, -margin + 2);
    wSeparator.setLayoutData(fdSeparator);
    wlFields = new Label(wBottom, SWT.NONE);
    wlFields.setText(BaseMessages.getString(PKG, "ScriptDialog.Fields.Label"));
    props.setLook(wlFields);
    fdlFields = new FormData();
    fdlFields.left = new FormAttachment(0, 0);
    fdlFields.top = new FormAttachment(wSeparator, 0);
    wlFields.setLayoutData(fdlFields);
    final int FieldsRows = input.getFieldname().length;
    ColumnInfo[] colinf = new ColumnInfo[] { new ColumnInfo(BaseMessages.getString(PKG, "ScriptDialog.ColumnInfo.Filename"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo(BaseMessages.getString(PKG, "ScriptDialog.ColumnInfo.RenameTo"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo(BaseMessages.getString(PKG, "ScriptDialog.ColumnInfo.Type"), ColumnInfo.COLUMN_TYPE_CCOMBO, ValueMetaFactory.getValueMetaNames()), new ColumnInfo(BaseMessages.getString(PKG, "ScriptDialog.ColumnInfo.Length"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo(BaseMessages.getString(PKG, "ScriptDialog.ColumnInfo.Precision"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo(BaseMessages.getString(PKG, "ScriptDialog.ColumnInfo.Replace"), ColumnInfo.COLUMN_TYPE_CCOMBO, YES_NO_COMBO) };
    wFields = new TableView(transMeta, wBottom, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, colinf, FieldsRows, lsMod, props);
    fdFields = new FormData();
    fdFields.left = new FormAttachment(0, 0);
    fdFields.top = new FormAttachment(wlFields, margin);
    fdFields.right = new FormAttachment(100, 0);
    fdFields.bottom = new FormAttachment(100, 0);
    wFields.setLayoutData(fdFields);
    fdBottom = new FormData();
    fdBottom.left = new FormAttachment(0, 0);
    fdBottom.top = new FormAttachment(0, 0);
    fdBottom.right = new FormAttachment(100, 0);
    fdBottom.bottom = new FormAttachment(100, 0);
    wBottom.setLayoutData(fdBottom);
    fdSash = new FormData();
    fdSash.left = new FormAttachment(0, 0);
    fdSash.top = new FormAttachment(wStepname, 0);
    fdSash.right = new FormAttachment(100, 0);
    fdSash.bottom = new FormAttachment(100, -50);
    wSash.setLayoutData(fdSash);
    wSash.setWeights(new int[] { 75, 25 });
    wOK = new Button(shell, SWT.PUSH);
    wOK.setText(BaseMessages.getString(PKG, "System.Button.OK"));
    wVars = new Button(shell, SWT.PUSH);
    wVars.setText(BaseMessages.getString(PKG, "ScriptDialog.GetVariables.Button"));
    wTest = new Button(shell, SWT.PUSH);
    wTest.setText(BaseMessages.getString(PKG, "ScriptDialog.TestScript.Button"));
    wCancel = new Button(shell, SWT.PUSH);
    wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel"));
    setButtonPositions(new Button[] { wOK, wCancel, wVars, wTest }, margin, null);
    // Add listeners
    lsCancel = new Listener() {

        public void handleEvent(Event e) {
            cancel();
        }
    };
    // lsGet = new Listener() { public void handleEvent(Event e) { get(); } };
    lsTest = new Listener() {

        public void handleEvent(Event e) {
            newTest();
        }
    };
    lsVars = new Listener() {

        public void handleEvent(Event e) {
            test(true, true);
        }
    };
    lsOK = new Listener() {

        public void handleEvent(Event e) {
            ok();
        }
    };
    lsTree = new Listener() {

        public void handleEvent(Event e) {
            treeDblClick(e);
        }
    };
    // lsHelp = new Listener(){public void handleEvent(Event e){ wlHelpLabel.setVisible(true); }};
    wCancel.addListener(SWT.Selection, lsCancel);
    // wGet.addListener (SWT.Selection, lsGet );
    wTest.addListener(SWT.Selection, lsTest);
    wVars.addListener(SWT.Selection, lsVars);
    wOK.addListener(SWT.Selection, lsOK);
    wTree.addListener(SWT.MouseDoubleClick, lsTree);
    lsDef = new SelectionAdapter() {

        public void widgetDefaultSelected(SelectionEvent e) {
            ok();
        }
    };
    wStepname.addSelectionListener(lsDef);
    // Detect X or ALT-F4 or something that kills this window...
    shell.addShellListener(new ShellAdapter() {

        public void shellClosed(ShellEvent e) {
            if (!cancel()) {
                e.doit = false;
            }
        }
    });
    folder.addCTabFolder2Listener(new CTabFolder2Adapter() {

        public void close(CTabFolderEvent event) {
            CTabItem cItem = (CTabItem) event.item;
            event.doit = false;
            if (cItem != null && folder.getItemCount() > 1) {
                MessageBox messageBox = new MessageBox(shell, SWT.ICON_QUESTION | SWT.NO | SWT.YES);
                messageBox.setText(BaseMessages.getString(PKG, "ScriptDialog.DeleteItem.Label"));
                messageBox.setMessage(BaseMessages.getString(PKG, "ScriptDialog.ConfirmDeleteItem.Label", cItem.getText()));
                switch(messageBox.open()) {
                    case SWT.YES:
                        modifyScriptTree(cItem, DELETE_ITEM);
                        event.doit = true;
                        break;
                    default:
                        break;
                }
            }
        }
    });
    cMenu = new Menu(shell, SWT.POP_UP);
    buildingFolderMenu();
    tMenu = new Menu(shell, SWT.POP_UP);
    buildingTreeMenu();
    // Adding the Default Transform Scripts Item to the Tree
    wTreeScriptsItem = new TreeItem(wTree, SWT.NULL);
    wTreeScriptsItem.setImage(guiresource.getImageBol());
    wTreeScriptsItem.setText(BaseMessages.getString(PKG, "ScriptDialog.TransformScript.Label"));
    // Set the shell size, based upon previous time...
    setSize();
    getData();
    // Adding the Rest (Functions, InputItems, etc.) to the Tree
    buildSpecialFunctionsTree();
    // Input Fields
    iteminput = new TreeItem(wTree, SWT.NULL);
    iteminput.setImage(imageInputFields);
    iteminput.setText(BaseMessages.getString(PKG, "ScriptDialog.InputFields.Label"));
    // Output Fields
    itemoutput = new TreeItem(wTree, SWT.NULL);
    itemoutput.setImage(imageOutputFields);
    itemoutput.setText(BaseMessages.getString(PKG, "ScriptDialog.OutputFields.Label"));
    // Display waiting message for input
    itemWaitFieldsIn = new TreeItem(iteminput, SWT.NULL);
    itemWaitFieldsIn.setText(BaseMessages.getString(PKG, "ScriptDialog.GettingFields.Label"));
    itemWaitFieldsIn.setForeground(guiresource.getColorDirectory());
    iteminput.setExpanded(true);
    // Display waiting message for output
    itemWaitFieldsOut = new TreeItem(itemoutput, SWT.NULL);
    itemWaitFieldsOut.setText(BaseMessages.getString(PKG, "ScriptDialog.GettingFields.Label"));
    itemWaitFieldsOut.setForeground(guiresource.getColorDirectory());
    itemoutput.setExpanded(true);
    // 
    // Search the fields in the background
    // 
    final Runnable runnable = new Runnable() {

        public void run() {
            StepMeta stepMeta = transMeta.findStep(stepname);
            if (stepMeta != null) {
                try {
                    rowPrevStepFields = transMeta.getPrevStepFields(stepMeta);
                    if (rowPrevStepFields != null) {
                        setInputOutputFields();
                    } else {
                        // Can not get fields...end of wait message
                        iteminput.removeAll();
                        itemoutput.removeAll();
                    }
                } catch (KettleException e) {
                    logError(BaseMessages.getString(PKG, "System.Dialog.GetFieldsFailed.Message"));
                }
            }
        }
    };
    new Thread(runnable).start();
    // rebuildInputFieldsTree();
    // buildOutputFieldsTree();
    buildAddClassesListTree();
    addRenameTowTreeScriptItems();
    input.setChanged(changed);
    // Create the drag source on the tree
    DragSource ds = new DragSource(wTree, DND.DROP_MOVE);
    ds.setTransfer(new Transfer[] { TextTransfer.getInstance() });
    ds.addDragListener(new DragSourceAdapter() {

        public void dragStart(DragSourceEvent event) {
            TreeItem item = wTree.getSelection()[0];
            // Qualifikation where the Drag Request Comes from
            if (item != null && item.getParentItem() != null) {
                if (item.getParentItem().equals(wTreeScriptsItem)) {
                    event.doit = false;
                } else if (!item.getData().equals("Function")) {
                    String strInsert = (String) item.getData();
                    if (strInsert.equals("jsFunction")) {
                        event.doit = true;
                    } else {
                        event.doit = false;
                    }
                } else {
                    event.doit = false;
                }
            } else {
                event.doit = false;
            }
        }

        public void dragSetData(DragSourceEvent event) {
            // Set the data to be the first selected item's text
            event.data = wTree.getSelection()[0].getText();
        }
    });
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) {
            display.sleep();
        }
    }
    return stepname;
}
Also used : KettleException(org.pentaho.di.core.exception.KettleException) CTabFolder(org.eclipse.swt.custom.CTabFolder) Listener(org.eclipse.swt.widgets.Listener) ModifyListener(org.eclipse.swt.events.ModifyListener) ModifyListener(org.eclipse.swt.events.ModifyListener) TreeItem(org.eclipse.swt.widgets.TreeItem) Label(org.eclipse.swt.widgets.Label) ColumnInfo(org.pentaho.di.ui.core.widget.ColumnInfo) ShellEvent(org.eclipse.swt.events.ShellEvent) CTabItem(org.eclipse.swt.custom.CTabItem) DragSourceEvent(org.eclipse.swt.dnd.DragSourceEvent) Shell(org.eclipse.swt.widgets.Shell) ModifyEvent(org.eclipse.swt.events.ModifyEvent) Button(org.eclipse.swt.widgets.Button) SelectionEvent(org.eclipse.swt.events.SelectionEvent) Tree(org.eclipse.swt.widgets.Tree) Menu(org.eclipse.swt.widgets.Menu) FormAttachment(org.eclipse.swt.layout.FormAttachment) TableView(org.pentaho.di.ui.core.widget.TableView) FormLayout(org.eclipse.swt.layout.FormLayout) FormData(org.eclipse.swt.layout.FormData) DragSourceAdapter(org.eclipse.swt.dnd.DragSourceAdapter) ShellAdapter(org.eclipse.swt.events.ShellAdapter) CTabFolder2Adapter(org.eclipse.swt.custom.CTabFolder2Adapter) Composite(org.eclipse.swt.widgets.Composite) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) Text(org.eclipse.swt.widgets.Text) CTabFolderEvent(org.eclipse.swt.custom.CTabFolderEvent) DragSource(org.eclipse.swt.dnd.DragSource) StepMeta(org.pentaho.di.trans.step.StepMeta) BaseStepMeta(org.pentaho.di.trans.step.BaseStepMeta) Point(org.eclipse.swt.graphics.Point) MessageBox(org.eclipse.swt.widgets.MessageBox) SashForm(org.eclipse.swt.custom.SashForm) FocusEvent(org.eclipse.swt.events.FocusEvent) KeyEvent(org.eclipse.swt.events.KeyEvent) MouseEvent(org.eclipse.swt.events.MouseEvent) ModifyEvent(org.eclipse.swt.events.ModifyEvent) CTabFolderEvent(org.eclipse.swt.custom.CTabFolderEvent) DragSourceEvent(org.eclipse.swt.dnd.DragSourceEvent) Event(org.eclipse.swt.widgets.Event) ShellEvent(org.eclipse.swt.events.ShellEvent) SelectionEvent(org.eclipse.swt.events.SelectionEvent) Display(org.eclipse.swt.widgets.Display)

Example 43 with CTabItem

use of org.eclipse.swt.custom.CTabItem in project pentaho-kettle by pentaho.

the class ScriptValuesModDialog method addCtab.

private void addCtab(String cScriptName, String strScript, int iType) {
    CTabItem item = new CTabItem(folder, SWT.CLOSE);
    switch(iType) {
        case ADD_DEFAULT:
            item.setText(cScriptName);
            break;
        default:
            item.setText(getNextName(cScriptName));
            break;
    }
    StyledTextComp wScript = new StyledTextComp(transMeta, item.getParent(), SWT.MULTI | SWT.LEFT | SWT.H_SCROLL | SWT.V_SCROLL, item.getText(), false);
    if ((strScript != null) && strScript.length() > 0) {
        wScript.setText(strScript);
    } else {
        wScript.setText(BaseMessages.getString(PKG, "ScriptValuesDialogMod.ScriptHere.Label") + Const.CR + Const.CR);
    }
    item.setImage(imageInactiveScript);
    props.setLook(wScript, Props.WIDGET_STYLE_FIXED);
    wScript.addKeyListener(new KeyAdapter() {

        public void keyPressed(KeyEvent e) {
            setPosition();
        }

        public void keyReleased(KeyEvent e) {
            setPosition();
        }
    });
    wScript.addFocusListener(new FocusAdapter() {

        public void focusGained(FocusEvent e) {
            setPosition();
        }

        public void focusLost(FocusEvent e) {
            setPosition();
        }
    });
    wScript.addMouseListener(new MouseAdapter() {

        public void mouseDoubleClick(MouseEvent e) {
            setPosition();
        }

        public void mouseDown(MouseEvent e) {
            setPosition();
        }

        public void mouseUp(MouseEvent e) {
            setPosition();
        }
    });
    wScript.addModifyListener(lsMod);
    // Text Higlighting
    lineStyler = new ScriptValuesHighlight(ScriptValuesAddedFunctions.jsFunctionList);
    wScript.addLineStyleListener(lineStyler);
    item.setControl(wScript);
    // Adding new Item to Tree
    modifyScriptTree(item, ADD_ITEM);
}
Also used : StyledTextComp(org.pentaho.di.ui.core.widget.StyledTextComp) KeyEvent(org.eclipse.swt.events.KeyEvent) FocusAdapter(org.eclipse.swt.events.FocusAdapter) MouseEvent(org.eclipse.swt.events.MouseEvent) KeyAdapter(org.eclipse.swt.events.KeyAdapter) MouseAdapter(org.eclipse.swt.events.MouseAdapter) CTabItem(org.eclipse.swt.custom.CTabItem) FocusEvent(org.eclipse.swt.events.FocusEvent)

Example 44 with CTabItem

use of org.eclipse.swt.custom.CTabItem in project pentaho-kettle by pentaho.

the class ScriptValuesModDialog method buildingFolderMenu.

private void buildingFolderMenu() {
    // styledTextPopupmenu = new Menu(, SWT.POP_UP);
    MenuItem addNewItem = new MenuItem(cMenu, SWT.PUSH);
    addNewItem.setText(BaseMessages.getString(PKG, "ScriptValuesDialogMod.AddNewTab"));
    addNewItem.setImage(imageAddScript);
    addNewItem.addListener(SWT.Selection, new Listener() {

        public void handleEvent(Event e) {
            addCtab("", "", ADD_BLANK);
        }
    });
    MenuItem copyItem = new MenuItem(cMenu, SWT.PUSH);
    copyItem.setText(BaseMessages.getString(PKG, "ScriptValuesDialogMod.AddCopy"));
    copyItem.setImage(imageDuplicateScript);
    copyItem.addListener(SWT.Selection, new Listener() {

        public void handleEvent(Event e) {
            CTabItem item = folder.getSelection();
            StyledTextComp st = (StyledTextComp) item.getControl();
            addCtab(item.getText(), st.getText(), ADD_COPY);
        }
    });
    new MenuItem(cMenu, SWT.SEPARATOR);
    MenuItem setActiveScriptItem = new MenuItem(cMenu, SWT.PUSH);
    setActiveScriptItem.setText(BaseMessages.getString(PKG, "ScriptValuesDialogMod.SetTransformScript"));
    setActiveScriptItem.setImage(imageActiveScript);
    setActiveScriptItem.addListener(SWT.Selection, new Listener() {

        public void handleEvent(Event e) {
            CTabItem item = folder.getSelection();
            for (int i = 0; i < folder.getItemCount(); i++) {
                if (folder.getItem(i).equals(item)) {
                    if (item.getImage().equals(imageActiveScript)) {
                        strActiveScript = "";
                    } else if (item.getImage().equals(imageActiveStartScript)) {
                        strActiveStartScript = "";
                    } else if (item.getImage().equals(imageActiveEndScript)) {
                        strActiveEndScript = "";
                    }
                    item.setImage(imageActiveScript);
                    strActiveScript = item.getText();
                } else if (folder.getItem(i).getImage().equals(imageActiveScript)) {
                    folder.getItem(i).setImage(imageInactiveScript);
                }
            }
            modifyScriptTree(item, SET_ACTIVE_ITEM);
        }
    });
    MenuItem setStartScriptItem = new MenuItem(cMenu, SWT.PUSH);
    setStartScriptItem.setText(BaseMessages.getString(PKG, "ScriptValuesDialogMod.SetStartScript"));
    setStartScriptItem.setImage(imageActiveStartScript);
    setStartScriptItem.addListener(SWT.Selection, new Listener() {

        public void handleEvent(Event e) {
            CTabItem item = folder.getSelection();
            for (int i = 0; i < folder.getItemCount(); i++) {
                if (folder.getItem(i).equals(item)) {
                    if (item.getImage().equals(imageActiveScript)) {
                        strActiveScript = "";
                    } else if (item.getImage().equals(imageActiveStartScript)) {
                        strActiveStartScript = "";
                    } else if (item.getImage().equals(imageActiveEndScript)) {
                        strActiveEndScript = "";
                    }
                    item.setImage(imageActiveStartScript);
                    strActiveStartScript = item.getText();
                } else if (folder.getItem(i).getImage().equals(imageActiveStartScript)) {
                    folder.getItem(i).setImage(imageInactiveScript);
                }
            }
            modifyScriptTree(item, SET_ACTIVE_ITEM);
        }
    });
    MenuItem setEndScriptItem = new MenuItem(cMenu, SWT.PUSH);
    setEndScriptItem.setText(BaseMessages.getString(PKG, "ScriptValuesDialogMod.SetEndScript"));
    setEndScriptItem.setImage(imageActiveEndScript);
    setEndScriptItem.addListener(SWT.Selection, new Listener() {

        public void handleEvent(Event e) {
            CTabItem item = folder.getSelection();
            for (int i = 0; i < folder.getItemCount(); i++) {
                if (folder.getItem(i).equals(item)) {
                    if (item.getImage().equals(imageActiveScript)) {
                        strActiveScript = "";
                    } else if (item.getImage().equals(imageActiveStartScript)) {
                        strActiveStartScript = "";
                    } else if (item.getImage().equals(imageActiveEndScript)) {
                        strActiveEndScript = "";
                    }
                    item.setImage(imageActiveEndScript);
                    strActiveEndScript = item.getText();
                } else if (folder.getItem(i).getImage().equals(imageActiveEndScript)) {
                    folder.getItem(i).setImage(imageInactiveScript);
                }
            }
            modifyScriptTree(item, SET_ACTIVE_ITEM);
        }
    });
    new MenuItem(cMenu, SWT.SEPARATOR);
    MenuItem setRemoveScriptItem = new MenuItem(cMenu, SWT.PUSH);
    setRemoveScriptItem.setText(BaseMessages.getString(PKG, "ScriptValuesDialogMod.RemoveScriptType"));
    setRemoveScriptItem.setImage(imageInactiveScript);
    setRemoveScriptItem.addListener(SWT.Selection, new Listener() {

        public void handleEvent(Event e) {
            CTabItem item = folder.getSelection();
            input.setChanged(true);
            if (item.getImage().equals(imageActiveScript)) {
                strActiveScript = "";
            } else if (item.getImage().equals(imageActiveStartScript)) {
                strActiveStartScript = "";
            } else if (item.getImage().equals(imageActiveEndScript)) {
                strActiveEndScript = "";
            }
            item.setImage(imageInactiveScript);
        }
    });
    folder.setMenu(cMenu);
}
Also used : StyledTextComp(org.pentaho.di.ui.core.widget.StyledTextComp) Listener(org.eclipse.swt.widgets.Listener) ModifyListener(org.eclipse.swt.events.ModifyListener) FocusEvent(org.eclipse.swt.events.FocusEvent) KeyEvent(org.eclipse.swt.events.KeyEvent) MouseEvent(org.eclipse.swt.events.MouseEvent) ModifyEvent(org.eclipse.swt.events.ModifyEvent) CTabFolderEvent(org.eclipse.swt.custom.CTabFolderEvent) DragSourceEvent(org.eclipse.swt.dnd.DragSourceEvent) Event(org.eclipse.swt.widgets.Event) ShellEvent(org.eclipse.swt.events.ShellEvent) SelectionEvent(org.eclipse.swt.events.SelectionEvent) MenuItem(org.eclipse.swt.widgets.MenuItem) CTabItem(org.eclipse.swt.custom.CTabItem)

Example 45 with CTabItem

use of org.eclipse.swt.custom.CTabItem in project pentaho-kettle by pentaho.

the class ScriptValuesModDialog method getInfo.

private void getInfo(ScriptValuesMetaMod meta) {
    meta.setCompatible(wCompatible.getSelection());
    meta.setOptimizationLevel(wOptimizationLevel.getText());
    int nrfields = wFields.nrNonEmpty();
    meta.allocate(nrfields);
    // CHECKSTYLE:Indentation:OFF
    for (int i = 0; i < nrfields; i++) {
        TableItem item = wFields.getNonEmpty(i);
        meta.getFieldname()[i] = item.getText(1);
        meta.getRename()[i] = item.getText(2);
        if (meta.getRename()[i] == null || meta.getRename()[i].length() == 0 || meta.getRename()[i].equalsIgnoreCase(meta.getFieldname()[i])) {
            meta.getRename()[i] = meta.getFieldname()[i];
        }
        meta.getType()[i] = ValueMetaFactory.getIdForValueMeta(item.getText(3));
        String slen = item.getText(4);
        String sprc = item.getText(5);
        meta.getLength()[i] = Const.toInt(slen, -1);
        meta.getPrecision()[i] = Const.toInt(sprc, -1);
        meta.getReplace()[i] = YES_NO_COMBO[1].equalsIgnoreCase(item.getText(6));
    }
    // input.setActiveJSScript(strActiveScript);
    CTabItem[] cTabs = folder.getItems();
    if (cTabs.length > 0) {
        ScriptValuesScript[] jsScripts = new ScriptValuesScript[cTabs.length];
        for (int i = 0; i < cTabs.length; i++) {
            ScriptValuesScript jsScript = new ScriptValuesScript(ScriptValuesScript.NORMAL_SCRIPT, cTabs[i].getText(), getStyledTextComp(cTabs[i]).getText());
            if (cTabs[i].getImage().equals(imageActiveScript)) {
                jsScript.setScriptType(ScriptValuesScript.TRANSFORM_SCRIPT);
            } else if (cTabs[i].getImage().equals(imageActiveStartScript)) {
                jsScript.setScriptType(ScriptValuesScript.START_SCRIPT);
            } else if (cTabs[i].getImage().equals(imageActiveEndScript)) {
                jsScript.setScriptType(ScriptValuesScript.END_SCRIPT);
            }
            jsScripts[i] = jsScript;
        }
        meta.setJSScripts(jsScripts);
    }
}
Also used : ScriptValuesScript(org.pentaho.di.trans.steps.scriptvalues_mod.ScriptValuesScript) TableItem(org.eclipse.swt.widgets.TableItem) CTabItem(org.eclipse.swt.custom.CTabItem) Point(org.eclipse.swt.graphics.Point)

Aggregations

CTabItem (org.eclipse.swt.custom.CTabItem)377 Composite (org.eclipse.swt.widgets.Composite)246 FormLayout (org.eclipse.swt.layout.FormLayout)189 FormAttachment (org.eclipse.swt.layout.FormAttachment)185 FormData (org.eclipse.swt.layout.FormData)185 SelectionEvent (org.eclipse.swt.events.SelectionEvent)173 Label (org.eclipse.swt.widgets.Label)168 CTabFolder (org.eclipse.swt.custom.CTabFolder)165 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)149 Button (org.eclipse.swt.widgets.Button)142 Text (org.eclipse.swt.widgets.Text)117 Event (org.eclipse.swt.widgets.Event)107 Listener (org.eclipse.swt.widgets.Listener)107 TextVar (org.pentaho.di.ui.core.widget.TextVar)107 ModifyListener (org.eclipse.swt.events.ModifyListener)106 ModifyEvent (org.eclipse.swt.events.ModifyEvent)104 Shell (org.eclipse.swt.widgets.Shell)101 ColumnInfo (org.pentaho.di.ui.core.widget.ColumnInfo)100 TableView (org.pentaho.di.ui.core.widget.TableView)99 ShellEvent (org.eclipse.swt.events.ShellEvent)95