Search in sources :

Example 1 with TreeSelection

use of org.pentaho.di.ui.spoon.TreeSelection in project pentaho-kettle by pentaho.

the class ConnectionPopupMenuExtension method callExtensionPoint.

@Override
public void callExtensionPoint(LogChannelInterface logChannelInterface, Object extension) throws KettleException {
    Menu popupMenu = null;
    Tree selectionTree = (Tree) extension;
    TreeSelection[] objects = spoonSupplier.get().getTreeObjects(selectionTree);
    TreeSelection object = objects[0];
    Object selection = object.getSelection();
    if (selection == VFSConnectionDetails.class) {
        popupMenu = createRootPopupMenu(selectionTree);
    } else if (selection instanceof ConnectionTreeItem) {
        vfsConnectionTreeItem = (ConnectionTreeItem) selection;
        popupMenu = createItemPopupMenu(selectionTree);
    }
    if (popupMenu != null) {
        ConstUI.displayMenu(popupMenu, selectionTree);
    } else {
        selectionTree.setMenu(null);
    }
}
Also used : TreeSelection(org.pentaho.di.ui.spoon.TreeSelection) Tree(org.eclipse.swt.widgets.Tree) Menu(org.eclipse.swt.widgets.Menu)

Example 2 with TreeSelection

use of org.pentaho.di.ui.spoon.TreeSelection in project pentaho-kettle by pentaho.

the class RunConfigurationPopupMenuExtension method callExtensionPoint.

@Override
public void callExtensionPoint(LogChannelInterface logChannelInterface, Object extension) throws KettleException {
    Menu popupMenu = null;
    Tree selectionTree = (Tree) extension;
    TreeSelection[] objects = spoonSupplier.get().getTreeObjects(selectionTree);
    TreeSelection object = objects[0];
    Object selection = object.getSelection();
    if (selection == RunConfiguration.class) {
        popupMenu = createRootPopupMenu(selectionTree);
    } else if (selection instanceof String) {
        runConfiguration = (String) selection;
        if (runConfiguration.equalsIgnoreCase(DefaultRunConfigurationProvider.DEFAULT_CONFIG_NAME)) {
            return;
        }
        popupMenu = createItemPopupMenu(selectionTree);
    }
    if (popupMenu != null) {
        ConstUI.displayMenu(popupMenu, selectionTree);
    } else {
        selectionTree.setMenu(null);
    }
}
Also used : TreeSelection(org.pentaho.di.ui.spoon.TreeSelection) Tree(org.eclipse.swt.widgets.Tree) Menu(org.eclipse.swt.widgets.Menu)

Example 3 with TreeSelection

use of org.pentaho.di.ui.spoon.TreeSelection in project pentaho-kettle by pentaho.

the class SpoonTreeDelegate method addDragSourceToTree.

public void addDragSourceToTree(final Tree tree, final Tree selectionTree, final Tree coreObjectsTree) {
    // Drag & Drop for steps
    Transfer[] ttypes = new Transfer[] { XMLTransfer.getInstance() };
    DragSource ddSource = new DragSource(tree, DND.DROP_MOVE);
    ddSource.setTransfer(ttypes);
    ddSource.addDragListener(new DragSourceListener() {

        public void dragStart(DragSourceEvent event) {
            TreeSelection[] treeObjects = getTreeObjects(tree, selectionTree, coreObjectsTree);
            if (treeObjects.length == 0) {
                event.doit = false;
                return;
            }
            spoon.hideToolTips();
            TreeSelection treeObject = treeObjects[0];
            Object object = treeObject.getSelection();
            TransMeta transMeta = spoon.getActiveTransformation();
            if (object instanceof StepMeta || object instanceof PluginInterface || (object instanceof DatabaseMeta && transMeta != null) || object instanceof TransHopMeta || object instanceof JobEntryCopy) {
                event.doit = true;
            } else {
                event.doit = false;
            }
        }

        public void dragSetData(DragSourceEvent event) {
            TreeSelection[] treeObjects = getTreeObjects(tree, selectionTree, coreObjectsTree);
            if (treeObjects.length == 0) {
                event.doit = false;
                return;
            }
            int type = 0;
            String id = null;
            String data = null;
            TreeSelection treeObject = treeObjects[0];
            Object object = treeObject.getSelection();
            if (object instanceof StepMeta) {
                StepMeta stepMeta = (StepMeta) object;
                type = DragAndDropContainer.TYPE_STEP;
                // name of the step.
                data = stepMeta.getName();
            } else if (object instanceof PluginInterface) {
                PluginInterface plugin = (PluginInterface) object;
                Class<? extends PluginTypeInterface> pluginType = plugin.getPluginType();
                if (Const.classIsOrExtends(pluginType, StepPluginType.class)) {
                    type = DragAndDropContainer.TYPE_BASE_STEP_TYPE;
                    id = plugin.getIds()[0];
                    // Step type name
                    data = plugin.getName();
                } else {
                    type = DragAndDropContainer.TYPE_BASE_JOB_ENTRY;
                    // job entry type name
                    data = plugin.getName();
                    if (treeObject.getItemText().equals(JobMeta.createStartEntry().getName())) {
                        data = treeObject.getItemText();
                    } else if (treeObject.getItemText().equals(JobMeta.createDummyEntry().getName())) {
                        data = treeObject.getItemText();
                    }
                }
            } else if (object instanceof DatabaseMeta) {
                DatabaseMeta databaseMeta = (DatabaseMeta) object;
                type = DragAndDropContainer.TYPE_DATABASE_CONNECTION;
                data = databaseMeta.getName();
            } else if (object instanceof TransHopMeta) {
                TransHopMeta hop = (TransHopMeta) object;
                type = DragAndDropContainer.TYPE_TRANS_HOP;
                // nothing for really ;-)
                data = hop.toString();
            } else if (object instanceof JobEntryCopy) {
                JobEntryCopy jobEntryCopy = (JobEntryCopy) object;
                type = DragAndDropContainer.TYPE_JOB_ENTRY;
                // name of the job entry.
                data = jobEntryCopy.getName();
            } else {
                event.doit = false;
                // ignore anything else you drag.
                return;
            }
            event.data = new DragAndDropContainer(type, data, id);
        }

        public void dragFinished(DragSourceEvent event) {
        }
    });
}
Also used : PluginInterface(org.pentaho.di.core.plugins.PluginInterface) TransMeta(org.pentaho.di.trans.TransMeta) DragSource(org.eclipse.swt.dnd.DragSource) DragSourceListener(org.eclipse.swt.dnd.DragSourceListener) StepMeta(org.pentaho.di.trans.step.StepMeta) DatabaseMeta(org.pentaho.di.core.database.DatabaseMeta) DragSourceEvent(org.eclipse.swt.dnd.DragSourceEvent) JobEntryCopy(org.pentaho.di.job.entry.JobEntryCopy) TreeSelection(org.pentaho.di.ui.spoon.TreeSelection) Transfer(org.eclipse.swt.dnd.Transfer) XMLTransfer(org.pentaho.di.core.dnd.XMLTransfer) DragAndDropContainer(org.pentaho.di.core.dnd.DragAndDropContainer) TransHopMeta(org.pentaho.di.trans.TransHopMeta)

Example 4 with TreeSelection

use of org.pentaho.di.ui.spoon.TreeSelection in project pentaho-kettle by pentaho.

the class SpoonTreeDelegateTest method getTreeObjects_getStepById.

@Test
public void getTreeObjects_getStepById() {
    SpoonTreeDelegate std = spy(new SpoonTreeDelegate(spoon));
    Tree selection = mock(Tree.class);
    Tree core = mock(Tree.class);
    TreeItem item = mock(TreeItem.class);
    PluginInterface step = mock(PluginInterface.class);
    PluginRegistry registry = mock(PluginRegistry.class);
    TreeItem[] items = new TreeItem[] { item };
    when(ConstUI.getTreeStrings(item)).thenReturn(new String[] { "Output", "Avro Output" });
    when(PluginRegistry.getInstance()).thenReturn(registry);
    doReturn(items).when(core).getSelection();
    doReturn("AvroOutputPlugin").when(item).getData(anyString());
    doReturn(step).when(registry).findPluginWithId(StepPluginType.class, "AvroOutputPlugin");
    spoon.showJob = false;
    spoon.showTrans = true;
    TreeSelection[] ts = std.getTreeObjects(core, selection, core);
    assertEquals(1, ts.length);
    assertEquals(step, ts[0].getSelection());
}
Also used : TreeItem(org.eclipse.swt.widgets.TreeItem) TreeSelection(org.pentaho.di.ui.spoon.TreeSelection) PluginInterface(org.pentaho.di.core.plugins.PluginInterface) PluginRegistry(org.pentaho.di.core.plugins.PluginRegistry) Tree(org.eclipse.swt.widgets.Tree) Test(org.junit.Test) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest)

Example 5 with TreeSelection

use of org.pentaho.di.ui.spoon.TreeSelection in project pdi-dataservice-server-plugin by pentaho.

the class DataServicePopupMenuExtension method callExtensionPoint.

@Override
public void callExtensionPoint(LogChannelInterface log, Object extension) throws KettleException {
    Menu popupMenu = null;
    Tree selectionTree = (Tree) extension;
    TreeSelection[] objects = delegate.getSpoon().getTreeObjects(selectionTree);
    TreeSelection object = objects[0];
    Object selection = object.getSelection();
    if (selection == DataServiceMeta.class) {
        popupMenu = uiFactory.getMenu(selectionTree);
        createRootPopupMenu(popupMenu);
    } else if (selection instanceof DataServiceMeta) {
        selectedDataService = (DataServiceMeta) selection;
        popupMenu = uiFactory.getMenu(selectionTree);
        createItemPopupMenu(popupMenu);
    }
    if (popupMenu != null) {
        ConstUI.displayMenu(popupMenu, selectionTree);
    } else {
        selectionTree.setMenu(null);
    }
}
Also used : DataServiceMeta(org.pentaho.di.trans.dataservice.DataServiceMeta) TreeSelection(org.pentaho.di.ui.spoon.TreeSelection) Tree(org.eclipse.swt.widgets.Tree) Menu(org.eclipse.swt.widgets.Menu)

Aggregations

TreeSelection (org.pentaho.di.ui.spoon.TreeSelection)10 Tree (org.eclipse.swt.widgets.Tree)5 PluginInterface (org.pentaho.di.core.plugins.PluginInterface)4 Menu (org.eclipse.swt.widgets.Menu)3 TreeItem (org.eclipse.swt.widgets.TreeItem)3 KettleException (org.pentaho.di.core.exception.KettleException)3 ExtensionPoint (org.pentaho.di.core.extension.ExtensionPoint)3 PluginRegistry (org.pentaho.di.core.plugins.PluginRegistry)3 TransMeta (org.pentaho.di.trans.TransMeta)3 SpoonTreeDelegateExtension (org.pentaho.di.ui.spoon.delegates.SpoonTreeDelegateExtension)3 Test (org.junit.Test)2 AbstractMeta (org.pentaho.di.base.AbstractMeta)2 DatabaseMeta (org.pentaho.di.core.database.DatabaseMeta)2 JobEntryCopy (org.pentaho.di.job.entry.JobEntryCopy)2 TransHopMeta (org.pentaho.di.trans.TransHopMeta)2 DataServiceMeta (org.pentaho.di.trans.dataservice.DataServiceMeta)2 StepMeta (org.pentaho.di.trans.step.StepMeta)2 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)2 ArrayList (java.util.ArrayList)1 DragSource (org.eclipse.swt.dnd.DragSource)1