Search in sources :

Example 1 with TabSet

use of org.pentaho.xul.swt.tab.TabSet in project pentaho-kettle by pentaho.

the class SpoonTabsDelegate method getActiveMeta.

public EngineMetaInterface getActiveMeta() {
    TabSet tabfolder = spoon.tabfolder;
    if (tabfolder == null) {
        return null;
    }
    TabItem tabItem = tabfolder.getSelected();
    if (tabItem == null) {
        return null;
    }
    // What transformation is in the active tab?
    // TransLog, TransGraph & TransHist contain the same transformation
    // 
    TabMapEntry mapEntry = getTab(tabfolder.getSelected());
    EngineMetaInterface meta = null;
    if (mapEntry != null) {
        if (mapEntry.getObject() instanceof TransGraph) {
            meta = (mapEntry.getObject()).getMeta();
        }
        if (mapEntry.getObject() instanceof JobGraph) {
            meta = (mapEntry.getObject()).getMeta();
        }
    }
    return meta;
}
Also used : TabItem(org.pentaho.xul.swt.tab.TabItem) JobGraph(org.pentaho.di.ui.spoon.job.JobGraph) TabSet(org.pentaho.xul.swt.tab.TabSet) EngineMetaInterface(org.pentaho.di.core.EngineMetaInterface) TransGraph(org.pentaho.di.ui.spoon.trans.TransGraph) TabMapEntry(org.pentaho.di.ui.spoon.TabMapEntry)

Example 2 with TabSet

use of org.pentaho.xul.swt.tab.TabSet in project pentaho-kettle by pentaho.

the class BaseStreamingDialog method createSubtrans.

private void createSubtrans(TransMeta newTransMeta) {
    // remember current tab
    TabItem tabItem = spoonInstance.getTabSet().getSelected();
    newTransMeta.setMetaStore(spoonInstance.getMetaStore());
    try {
        SharedObjects sharedObjects = newTransMeta.readSharedObjects();
        newTransMeta.setSharedObjects(sharedObjects);
        newTransMeta.importFromMetaStore();
        newTransMeta.clearChanged();
    } catch (Exception e) {
        log.logError("Failed to retrieve shared objects", e);
    }
    spoonInstance.delegates.tabs.makeTabName(newTransMeta, false);
    spoonInstance.addTransGraph(newTransMeta);
    spoonInstance.applyVariables();
    if (spoonInstance.setDesignMode()) {
        // No refresh done yet, do so
        spoonInstance.refreshTree();
    }
    spoonInstance.loadPerspective(MainSpoonPerspective.ID);
    try {
        ExtensionPointHandler.callExtensionPoint(log, KettleExtensionPoint.TransformationCreateNew.id, newTransMeta);
    } catch (KettleException e) {
        log.logError("Failed to call extension point", e);
    }
    // go back to inital tab
    TabSet ts = spoonInstance.getTabSet();
    ts.setSelected(tabItem);
}
Also used : TabItem(org.pentaho.xul.swt.tab.TabItem) CTabItem(org.eclipse.swt.custom.CTabItem) KettleException(org.pentaho.di.core.exception.KettleException) TabSet(org.pentaho.xul.swt.tab.TabSet) SharedObjects(org.pentaho.di.shared.SharedObjects) KettleFileException(org.pentaho.di.core.exception.KettleFileException) KettleException(org.pentaho.di.core.exception.KettleException)

Example 3 with TabSet

use of org.pentaho.xul.swt.tab.TabSet in project pentaho-kettle by pentaho.

the class Spoon method addTabs.

private void addTabs() {
    if (tabComp != null) {
        tabComp.dispose();
    }
    tabComp = new Composite(sashform, SWT.BORDER);
    props.setLook(tabComp);
    tabComp.setLayout(new FillLayout());
    tabfolder = new TabSet(tabComp);
    tabfolder.setChangedFont(GUIResource.getInstance().getFontBold());
    final CTabFolder cTabFolder = tabfolder.getSwtTabset();
    props.setLook(cTabFolder, Props.WIDGET_STYLE_TAB);
    cTabFolder.addMenuDetectListener(new MenuDetectListener() {

        @Override
        public void menuDetected(MenuDetectEvent event) {
            org.eclipse.swt.graphics.Point real = new org.eclipse.swt.graphics.Point(event.x, event.y);
            org.eclipse.swt.graphics.Point point = display.map(null, cTabFolder, real);
            final CTabItem item = cTabFolder.getItem(point);
            if (item != null) {
                Menu menu = new Menu(cTabFolder);
                MenuItem closeItem = new MenuItem(menu, SWT.NONE);
                closeItem.setText(BaseMessages.getString(PKG, "Spoon.Tab.Close"));
                closeItem.addSelectionListener(new SelectionAdapter() {

                    @Override
                    public void widgetSelected(SelectionEvent event) {
                        int index = tabfolder.getSwtTabset().indexOf(item);
                        if (index >= 0) {
                            TabMapEntry entry = delegates.tabs.getTabs().get(index);
                            tabClose(entry.getTabItem());
                        }
                    }
                });
                MenuItem closeAllItems = new MenuItem(menu, SWT.NONE);
                closeAllItems.setText(BaseMessages.getString(PKG, "Spoon.Tab.CloseAll"));
                closeAllItems.addSelectionListener(new SelectionAdapter() {

                    @Override
                    public void widgetSelected(SelectionEvent event) {
                        for (TabMapEntry entry : delegates.tabs.getTabs()) {
                            tabClose(entry.getTabItem());
                        }
                    }
                });
                MenuItem closeOtherItems = new MenuItem(menu, SWT.NONE);
                closeOtherItems.setText(BaseMessages.getString(PKG, "Spoon.Tab.CloseOthers"));
                closeOtherItems.addSelectionListener(new SelectionAdapter() {

                    @Override
                    public void widgetSelected(SelectionEvent event) {
                        int index = tabfolder.getSwtTabset().indexOf(item);
                        if (index >= 0) {
                            TabMapEntry entry = delegates.tabs.getTabs().get(index);
                            for (TabMapEntry closeEntry : delegates.tabs.getTabs()) {
                                if (!closeEntry.equals(entry)) {
                                    tabClose(closeEntry.getTabItem());
                                }
                            }
                        }
                    }
                });
                menu.setLocation(real);
                menu.setVisible(true);
            }
        }
    });
    int[] weights = props.getSashWeights();
    sashform.setWeights(weights);
    sashform.setVisible(true);
    // Set a minimum width on the sash so that the view and design buttons
    // on the left panel are always visible.
    // 
    Control[] comps = sashform.getChildren();
    for (Control comp : comps) {
        if (comp instanceof Sash) {
            int limit = 10;
            final int SASH_LIMIT = Const.isOSX() ? 150 : limit;
            final Sash sash = (Sash) comp;
            sash.addSelectionListener(new SelectionAdapter() {

                @Override
                public void widgetSelected(SelectionEvent event) {
                    Rectangle rect = sash.getParent().getClientArea();
                    event.x = Math.min(Math.max(event.x, SASH_LIMIT), rect.width - SASH_LIMIT);
                    if (event.detail != SWT.DRAG) {
                        sash.setBounds(event.x, event.y, event.width, event.height);
                        sashform.layout();
                    }
                }
            });
        }
    }
    // methods: tabDeselected, tabClose,
    tabfolder.addListener(this);
// tabSelected
}
Also used : CTabFolder(org.eclipse.swt.custom.CTabFolder) Rectangle(org.eclipse.swt.graphics.Rectangle) CTabItem(org.eclipse.swt.custom.CTabItem) Control(org.eclipse.swt.widgets.Control) SelectionEvent(org.eclipse.swt.events.SelectionEvent) Menu(org.eclipse.swt.widgets.Menu) Composite(org.eclipse.swt.widgets.Composite) Sash(org.eclipse.swt.widgets.Sash) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) MenuItem(org.eclipse.swt.widgets.MenuItem) FillLayout(org.eclipse.swt.layout.FillLayout) Point(org.pentaho.di.core.gui.Point) KettleExtensionPoint(org.pentaho.di.core.extension.KettleExtensionPoint) Point(org.pentaho.di.core.gui.Point) KettleExtensionPoint(org.pentaho.di.core.extension.KettleExtensionPoint) MenuDetectEvent(org.eclipse.swt.events.MenuDetectEvent) TabSet(org.pentaho.xul.swt.tab.TabSet) MenuDetectListener(org.eclipse.swt.events.MenuDetectListener)

Example 4 with TabSet

use of org.pentaho.xul.swt.tab.TabSet in project pentaho-kettle by pentaho.

the class ExpandedContentManagerTest method setupExpandedContentMocks.

private Composite setupExpandedContentMocks(TransGraph transGraph, Browser browser, SashForm sashForm) {
    Spoon spoon = mock(Spoon.class);
    Composite parent = mock(Composite.class);
    TabSet tabSet = mock(TabSet.class);
    TabItem tabItem = mock(TabItem.class);
    ExpandedContentManager.spoonSupplier = () -> spoon;
    when(spoon.getDesignParent()).thenReturn(sashForm);
    when(spoon.getTabSet()).thenReturn(tabSet);
    when(tabSet.getSelected()).thenReturn(tabItem);
    when(tabItem.getSashWeights()).thenReturn(new int[] { 3, 2, 1 });
    when(transGraph.getChildren()).thenReturn(new Control[] { browser });
    when(browser.getParent()).thenReturn(parent);
    return parent;
}
Also used : TabItem(org.pentaho.xul.swt.tab.TabItem) Composite(org.eclipse.swt.widgets.Composite) TabSet(org.pentaho.xul.swt.tab.TabSet)

Example 5 with TabSet

use of org.pentaho.xul.swt.tab.TabSet in project pentaho-kettle by pentaho.

the class SpoonSlaveDelegate method addSpoonSlave.

public void addSpoonSlave(SlaveServer slaveServer) {
    TabSet tabfolder = spoon.tabfolder;
    // See if there is a SpoonSlave for this slaveServer...
    String tabName = spoon.delegates.tabs.makeSlaveTabName(slaveServer);
    TabMapEntry tabMapEntry = spoon.delegates.tabs.findTabMapEntry(tabName, ObjectType.SLAVE_SERVER);
    if (tabMapEntry == null) {
        SpoonSlave spoonSlave = new SpoonSlave(tabfolder.getSwtTabset(), SWT.NONE, spoon, slaveServer);
        PropsUI props = PropsUI.getInstance();
        TabItem tabItem = new TabItem(tabfolder, tabName, tabName, props.getSashWeights());
        tabItem.setToolTipText("Status of slave server : " + slaveServer.getName() + " : " + slaveServer.getServerAndPort());
        tabItem.setControl(spoonSlave);
        tabMapEntry = new TabMapEntry(tabItem, null, tabName, null, null, spoonSlave, ObjectType.SLAVE_SERVER);
        spoon.delegates.tabs.addTab(tabMapEntry);
    }
    int idx = tabfolder.indexOf(tabMapEntry.getTabItem());
    tabfolder.setSelected(idx);
}
Also used : TabItem(org.pentaho.xul.swt.tab.TabItem) TabSet(org.pentaho.xul.swt.tab.TabSet) SpoonSlave(org.pentaho.di.ui.spoon.SpoonSlave) TabMapEntry(org.pentaho.di.ui.spoon.TabMapEntry) PropsUI(org.pentaho.di.ui.core.PropsUI)

Aggregations

TabSet (org.pentaho.xul.swt.tab.TabSet)7 TabItem (org.pentaho.xul.swt.tab.TabItem)5 TabMapEntry (org.pentaho.di.ui.spoon.TabMapEntry)3 CTabFolder (org.eclipse.swt.custom.CTabFolder)2 CTabItem (org.eclipse.swt.custom.CTabItem)2 Composite (org.eclipse.swt.widgets.Composite)2 KettleException (org.pentaho.di.core.exception.KettleException)2 KettleExtensionPoint (org.pentaho.di.core.extension.KettleExtensionPoint)2 PropsUI (org.pentaho.di.ui.core.PropsUI)2 ArrayList (java.util.ArrayList)1 BrowserFunction (org.eclipse.swt.browser.BrowserFunction)1 OpenWindowListener (org.eclipse.swt.browser.OpenWindowListener)1 WindowEvent (org.eclipse.swt.browser.WindowEvent)1 MenuDetectEvent (org.eclipse.swt.events.MenuDetectEvent)1 MenuDetectListener (org.eclipse.swt.events.MenuDetectListener)1 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)1 SelectionEvent (org.eclipse.swt.events.SelectionEvent)1 Rectangle (org.eclipse.swt.graphics.Rectangle)1 FillLayout (org.eclipse.swt.layout.FillLayout)1 Control (org.eclipse.swt.widgets.Control)1