Search in sources :

Example 1 with XulMenu

use of org.pentaho.ui.xul.containers.XulMenu in project pentaho-kettle by pentaho.

the class SpoonMenuABSController method updateMenu.

public void updateMenu(Document doc) {
    try {
        Spoon spoon = Spoon.getInstance();
        boolean createPermitted = true;
        boolean executePermitted = true;
        // If we are working with an Enterprise Repository
        if ((spoon != null) && (spoon.getRepository() != null) && (spoon.getRepository() instanceof PurRepository)) {
            Repository repo = spoon.getRepository();
            // Check for ABS Security
            if (repo.hasService(IAbsSecurityProvider.class)) {
                IAbsSecurityProvider securityProvider = (IAbsSecurityProvider) repo.getService(IAbsSecurityProvider.class);
                // Get create & execute permission
                createPermitted = securityProvider.isAllowed(IAbsSecurityProvider.CREATE_CONTENT_ACTION);
                executePermitted = securityProvider.isAllowed(IAbsSecurityProvider.EXECUTE_CONTENT_ACTION);
                EngineMetaInterface meta = spoon.getActiveMeta();
                // If (meta is not null) and (meta is either a Transformation or Job)
                if ((meta != null) && ((meta instanceof JobMeta) || (meta instanceof TransMeta))) {
                    // Main spoon toolbar
                    // $NON-NLS-1$
                    ((XulToolbarbutton) doc.getElementById("toolbar-file-new")).setDisabled(!createPermitted);
                    // $NON-NLS-1$
                    ((XulToolbarbutton) doc.getElementById("toolbar-file-save")).setDisabled(!createPermitted);
                    // $NON-NLS-1$
                    ((XulToolbarbutton) doc.getElementById("toolbar-file-save-as")).setDisabled(!createPermitted);
                    // Popup menus
                    // $NON-NLS-1$
                    ((XulMenuitem) doc.getElementById("trans-class-new")).setDisabled(!createPermitted);
                    // $NON-NLS-1$
                    ((XulMenuitem) doc.getElementById("job-class-new")).setDisabled(!createPermitted);
                    // Main spoon menu
                    // $NON-NLS-1$
                    ((XulMenu) doc.getElementById("file-new")).setDisabled(!createPermitted);
                    // $NON-NLS-1$
                    ((XulMenuitem) doc.getElementById("file-save")).setDisabled(!createPermitted);
                    // $NON-NLS-1$
                    ((XulMenuitem) doc.getElementById("file-save-as")).setDisabled(!createPermitted);
                    // $NON-NLS-1$
                    ((XulMenuitem) doc.getElementById("file-close")).setDisabled(!createPermitted);
                }
                // Handle Execute permissions
                // $NON-NLS-1$
                ((XulMenuitem) doc.getElementById("process-run")).setDisabled(!executePermitted);
                // $NON-NLS-1$
                ((XulMenuitem) doc.getElementById("trans-preview")).setDisabled(!executePermitted);
                // $NON-NLS-1$
                ((XulMenuitem) doc.getElementById("trans-debug")).setDisabled(!executePermitted);
                // $NON-NLS-1$
                ((XulMenuitem) doc.getElementById("trans-replay")).setDisabled(!executePermitted);
                // $NON-NLS-1$
                ((XulMenuitem) doc.getElementById("trans-verify")).setDisabled(!executePermitted);
                // $NON-NLS-1$
                ((XulMenuitem) doc.getElementById("trans-impact")).setDisabled(!executePermitted);
                // $NON-NLS-1$
                ((XulMenuitem) doc.getElementById("trans-get-sql")).setDisabled(!executePermitted);
                // Disable Show Last menu under the Action menu. Disable without execute permissions.
                // $NON-NLS-1$
                ((XulMenu) doc.getElementById("trans-last")).setDisabled(!executePermitted);
                boolean exportAllowed = createPermitted && executePermitted;
                // $NON-NLS-1$
                ((XulMenu) doc.getElementById("file-export")).setDisabled(!exportAllowed);
                // $NON-NLS-1$
                ((XulMenuitem) doc.getElementById("repository-export-all")).setDisabled(!exportAllowed);
                // $NON-NLS-1$
                ((XulMenuitem) doc.getElementById("file-save-as-vfs")).setDisabled(!exportAllowed);
                // $NON-NLS-1$
                ((XulMenuitem) doc.getElementById("edit-cut-steps")).setDisabled(!exportAllowed);
                // $NON-NLS-1$
                ((XulMenuitem) doc.getElementById("edit-copy-steps")).setDisabled(!exportAllowed);
                // $NON-NLS-1$
                ((XulMenuitem) doc.getElementById("edit.copy-file")).setDisabled(!exportAllowed);
                // $NON-NLS-1$
                ((XulMenuitem) doc.getElementById("edit-paste-steps")).setDisabled(!exportAllowed);
                // Schedule is a plugin
                if (doc.getElementById("trans-schedule") != null) {
                    // $NON-NLS-1$
                    ((XulMenuitem) doc.getElementById("trans-schedule")).setDisabled(!executePermitted);
                }
                TransGraph transGraph = Spoon.getInstance().getActiveTransGraph();
                if (transGraph != null) {
                    XulToolbar toolbar = transGraph.getToolbar();
                    XulToolbarbutton runButton = (XulToolbarbutton) toolbar.getElementById("trans-run");
                    XulToolbarbutton debugButton = (XulToolbarbutton) toolbar.getElementById("trans-debug");
                    XulToolbarbutton previewButton = (XulToolbarbutton) toolbar.getElementById("trans-preview");
                    XulToolbarbutton replayButton = (XulToolbarbutton) toolbar.getElementById("trans-replay");
                    XulToolbarbutton verifyButton = (XulToolbarbutton) toolbar.getElementById("trans-verify");
                    XulToolbarbutton impactButton = (XulToolbarbutton) toolbar.getElementById("trans-impact");
                    XulToolbarbutton generateSqlButton = (XulToolbarbutton) toolbar.getElementById("trans-get-sql");
                    if ((runButton != null) && (runButton.isDisabled() ^ !executePermitted)) {
                        runButton.setDisabled(!executePermitted);
                    }
                    if ((debugButton != null) && (debugButton.isDisabled() ^ !executePermitted)) {
                        debugButton.setDisabled(!executePermitted);
                    }
                    if ((previewButton != null) && (previewButton.isDisabled() ^ !executePermitted)) {
                        previewButton.setDisabled(!executePermitted);
                    }
                    if ((replayButton != null) && (replayButton.isDisabled() ^ !executePermitted)) {
                        replayButton.setDisabled(!executePermitted);
                    }
                    if ((verifyButton != null) && (verifyButton.isDisabled() ^ !executePermitted)) {
                        verifyButton.setDisabled(!executePermitted);
                    }
                    if ((impactButton != null) && (impactButton.isDisabled() ^ !executePermitted)) {
                        impactButton.setDisabled(!executePermitted);
                    }
                    if ((generateSqlButton != null) && (generateSqlButton.isDisabled() ^ !executePermitted)) {
                        generateSqlButton.setDisabled(!executePermitted);
                    }
                }
                JobGraph jobGraph = Spoon.getInstance().getActiveJobGraph();
                if (jobGraph != null) {
                    XulToolbar toolbar = jobGraph.getToolbar();
                    XulToolbarbutton runButton = (XulToolbarbutton) toolbar.getElementById("job-run");
                    XulToolbarbutton generateSqlButton = (XulToolbarbutton) toolbar.getElementById("job-get-sql");
                    if ((runButton != null) && (runButton.isDisabled() ^ !executePermitted)) {
                        runButton.setDisabled(!executePermitted);
                    }
                    if ((generateSqlButton != null) && (generateSqlButton.isDisabled() ^ !executePermitted)) {
                        generateSqlButton.setDisabled(!executePermitted);
                    }
                }
            }
        }
        EESpoonPlugin.updateChangedWarningDialog(createPermitted);
    } catch (Exception e) {
        // don't let this bomb all the way out, otherwise we'll get stuck: PDI-4670
        log.logError(e.getMessage(), e);
    }
}
Also used : IAbsSecurityProvider(org.pentaho.di.ui.repository.pur.services.IAbsSecurityProvider) JobMeta(org.pentaho.di.job.JobMeta) XulToolbar(org.pentaho.ui.xul.containers.XulToolbar) PurRepository(org.pentaho.di.repository.pur.PurRepository) TransMeta(org.pentaho.di.trans.TransMeta) TransGraph(org.pentaho.di.ui.spoon.trans.TransGraph) XulToolbarbutton(org.pentaho.ui.xul.components.XulToolbarbutton) XulMenu(org.pentaho.ui.xul.containers.XulMenu) Repository(org.pentaho.di.repository.Repository) PurRepository(org.pentaho.di.repository.pur.PurRepository) JobGraph(org.pentaho.di.ui.spoon.job.JobGraph) XulMenuitem(org.pentaho.ui.xul.components.XulMenuitem) Spoon(org.pentaho.di.ui.spoon.Spoon) EngineMetaInterface(org.pentaho.di.core.EngineMetaInterface)

Example 2 with XulMenu

use of org.pentaho.ui.xul.containers.XulMenu in project pentaho-kettle by pentaho.

the class TransGraphTest method testInitializeXulMenu.

@SuppressWarnings("unchecked")
@Test
public void testInitializeXulMenu() throws KettleException {
    StepMeta stepMeta = mock(StepMeta.class);
    TransGraph transGraph = mock(TransGraph.class);
    TransMeta transMeta = mock(TransMeta.class);
    Document document = mock(Document.class);
    XulMenuitem xulItem = mock(XulMenuitem.class);
    XulMenu xulMenu = mock(XulMenu.class);
    StepErrorMeta stepErrorMeta = mock(StepErrorMeta.class);
    Spoon spoon = mock(Spoon.class);
    List<StepMeta> selection = Arrays.asList(new StepMeta(), stepMeta, new StepMeta());
    doCallRealMethod().when(transGraph).setTransMeta(any(TransMeta.class));
    doCallRealMethod().when(transGraph).setSpoon(any(Spoon.class));
    transGraph.setTransMeta(transMeta);
    transGraph.setSpoon(spoon);
    when(stepMeta.getStepErrorMeta()).thenReturn(stepErrorMeta);
    when(stepMeta.isDrawn()).thenReturn(true);
    when(document.getElementById(any(String.class))).thenReturn(xulItem);
    when(document.getElementById(TransGraph.TRANS_GRAPH_ENTRY_AGAIN)).thenReturn(xulMenu);
    when(document.getElementById(TransGraph.TRANS_GRAPH_ENTRY_SNIFF)).thenReturn(xulMenu);
    doCallRealMethod().when(transGraph).initializeXulMenu(any(Document.class), any(List.class), any(StepMeta.class));
    transGraph.initializeXulMenu(document, selection, stepMeta);
    verify(transMeta).isAnySelectedStepUsedInTransHops();
}
Also used : XulMenuitem(org.pentaho.ui.xul.components.XulMenuitem) Spoon(org.pentaho.di.ui.spoon.Spoon) TransMeta(org.pentaho.di.trans.TransMeta) StepErrorMeta(org.pentaho.di.trans.step.StepErrorMeta) List(java.util.List) Document(org.pentaho.ui.xul.dom.Document) StepMeta(org.pentaho.di.trans.step.StepMeta) XulMenu(org.pentaho.ui.xul.containers.XulMenu) Test(org.junit.Test)

Example 3 with XulMenu

use of org.pentaho.ui.xul.containers.XulMenu in project pentaho-kettle by pentaho.

the class EESpoonPlugin method updateMenuState.

/**
 * Change the menu-item states based on Execute and Create permissions.
 * @param createPermitted
 *          - if true, we enable menu-items requiring creation permissions
 * @param executePermitted
 *          - if true, we enable menu-items requiring execute permissions
 */
void updateMenuState(boolean createPermitted, boolean executePermitted) {
    Document doc = getDocumentRoot();
    if (doc != null) {
        // Main spoon menu
        // $NON-NLS-1$
        ((XulMenuitem) doc.getElementById("process-run")).setDisabled(!executePermitted);
        // $NON-NLS-1$
        XulToolbarbutton transRunButton = ((XulToolbarbutton) doc.getElementById("trans-run"));
        if (transRunButton != null) {
            transRunButton.setDisabled(!executePermitted);
        }
        // $NON-NLS-1$
        ((XulMenuitem) doc.getElementById("trans-preview")).setDisabled(!executePermitted);
        // $NON-NLS-1$
        ((XulMenuitem) doc.getElementById("trans-debug")).setDisabled(!executePermitted);
        // $NON-NLS-1$
        ((XulMenuitem) doc.getElementById("trans-replay")).setDisabled(!executePermitted);
        // $NON-NLS-1$
        ((XulMenuitem) doc.getElementById("trans-verify")).setDisabled(!executePermitted);
        // $NON-NLS-1$
        ((XulMenuitem) doc.getElementById("trans-impact")).setDisabled(!executePermitted);
        // $NON-NLS-1$
        ((XulMenuitem) doc.getElementById("trans-get-sql")).setDisabled(!executePermitted);
        // Disable Show Last menu under the Action menu.
        // $NON-NLS-1$
        ((XulMenu) doc.getElementById("trans-last")).setDisabled(!executePermitted);
        // Schedule is a plugin
        if (doc.getElementById("trans-schedule") != null) {
            // $NON-NLS-1$
            ((XulMenuitem) doc.getElementById("trans-schedule")).setDisabled(!executePermitted);
        }
        // Main spoon toolbar
        // $NON-NLS-1$
        ((XulToolbarbutton) doc.getElementById("toolbar-file-new")).setDisabled(!createPermitted);
        // $NON-NLS-1$
        ((XulToolbarbutton) doc.getElementById("toolbar-file-save")).setDisabled(!createPermitted);
        // $NON-NLS-1$
        ((XulToolbarbutton) doc.getElementById("toolbar-file-save-as")).setDisabled(!createPermitted);
        // Popup menus
        // $NON-NLS-1$
        ((XulMenuitem) doc.getElementById("trans-class-new")).setDisabled(!createPermitted);
        // $NON-NLS-1$
        ((XulMenuitem) doc.getElementById("job-class-new")).setDisabled(!createPermitted);
        // Main spoon menu
        // $NON-NLS-1$
        ((XulMenu) doc.getElementById("file-new")).setDisabled(!createPermitted);
        // $NON-NLS-1$
        ((XulMenuitem) doc.getElementById("file-save")).setDisabled(!createPermitted);
        // $NON-NLS-1$
        ((XulMenuitem) doc.getElementById("file-save-as")).setDisabled(!createPermitted);
        // $NON-NLS-1$
        ((XulMenuitem) doc.getElementById("file-close")).setDisabled(!createPermitted);
        boolean exportAllowed = createPermitted && executePermitted;
        // $NON-NLS-1$
        ((XulMenu) doc.getElementById("file-export")).setDisabled(!exportAllowed);
        // $NON-NLS-1$
        ((XulMenuitem) doc.getElementById("repository-export-all")).setDisabled(!exportAllowed);
        // $NON-NLS-1$
        ((XulMenuitem) doc.getElementById("file-save-as-vfs")).setDisabled(!exportAllowed);
        // $NON-NLS-1$
        ((XulMenuitem) doc.getElementById("edit-cut-steps")).setDisabled(!exportAllowed);
        // $NON-NLS-1$
        ((XulMenuitem) doc.getElementById("edit-copy-steps")).setDisabled(!exportAllowed);
        // $NON-NLS-1$
        ((XulMenuitem) doc.getElementById("edit.copy-file")).setDisabled(!exportAllowed);
        // $NON-NLS-1$
        ((XulMenuitem) doc.getElementById("edit-paste-steps")).setDisabled(!exportAllowed);
        // $NON-NLS-1$
        XulMenuitem transCopyContextMenu = ((XulMenuitem) doc.getElementById("trans-graph-entry-copy"));
        if (transCopyContextMenu != null) {
            transCopyContextMenu.setDisabled(!exportAllowed);
        }
    }
}
Also used : XulMenuitem(org.pentaho.ui.xul.components.XulMenuitem) Document(org.pentaho.ui.xul.dom.Document) XulToolbarbutton(org.pentaho.ui.xul.components.XulToolbarbutton) XulMenu(org.pentaho.ui.xul.containers.XulMenu)

Example 4 with XulMenu

use of org.pentaho.ui.xul.containers.XulMenu in project pentaho-kettle by pentaho.

the class TransGraph method initializeXulMenu.

protected void initializeXulMenu(Document doc, List<StepMeta> selection, StepMeta stepMeta) throws KettleException {
    XulMenuitem item = (XulMenuitem) doc.getElementById("trans-graph-entry-newhop");
    int sels = selection.size();
    item.setDisabled(sels != 2);
    item = (XulMenuitem) doc.getElementById("trans-graph-entry-align-snap");
    item.setAcceltext("ALT-HOME");
    item.setLabel(BaseMessages.getString(PKG, "TransGraph.PopupMenu.SnapToGrid"));
    item.setAccesskey("alt-home");
    item = (XulMenuitem) doc.getElementById("trans-graph-entry-open-mapping");
    XulMenu men = (XulMenu) doc.getElementById(TRANS_GRAPH_ENTRY_SNIFF);
    men.setDisabled(trans == null || trans.isRunning() == false);
    item = (XulMenuitem) doc.getElementById("trans-graph-entry-sniff-input");
    item.setDisabled(trans == null || trans.isRunning() == false);
    item = (XulMenuitem) doc.getElementById("trans-graph-entry-sniff-output");
    item.setDisabled(trans == null || trans.isRunning() == false);
    item = (XulMenuitem) doc.getElementById("trans-graph-entry-sniff-error");
    item.setDisabled(!(stepMeta.supportsErrorHandling() && stepMeta.getStepErrorMeta() != null && stepMeta.getStepErrorMeta().getTargetStep() != null && trans != null && trans.isRunning()));
    XulMenu aMenu = (XulMenu) doc.getElementById(TRANS_GRAPH_ENTRY_AGAIN);
    if (aMenu != null) {
        aMenu.setDisabled(sels < 2);
    }
    // item = (XulMenuitem) doc.getElementById("trans-graph-entry-data-movement-distribute");
    // item.setSelected(stepMeta.isDistributes());
    item = (XulMenuitem) doc.getElementById("trans-graph-entry-partitioning");
    item.setDisabled(spoon.getPartitionSchemasNames(transMeta).isEmpty());
    item = (XulMenuitem) doc.getElementById("trans-graph-entry-data-movement-copy");
    item.setSelected(!stepMeta.isDistributes());
    item = (XulMenuitem) doc.getElementById("trans-graph-entry-hide");
    item.setDisabled(!(stepMeta.isDrawn() && !transMeta.isAnySelectedStepUsedInTransHops()));
    item = (XulMenuitem) doc.getElementById("trans-graph-entry-detach");
    item.setDisabled(!transMeta.isStepUsedInTransHops(stepMeta));
    item = (XulMenuitem) doc.getElementById("trans-graph-entry-errors");
    item.setDisabled(!stepMeta.supportsErrorHandling());
}
Also used : XulMenuitem(org.pentaho.ui.xul.components.XulMenuitem) Point(org.pentaho.di.core.gui.Point) KettleExtensionPoint(org.pentaho.di.core.extension.KettleExtensionPoint) XulMenu(org.pentaho.ui.xul.containers.XulMenu)

Example 5 with XulMenu

use of org.pentaho.ui.xul.containers.XulMenu in project pentaho-kettle by pentaho.

the class JobGraph method setMenu.

protected synchronized void setMenu(int x, int y) {
    currentMouseX = x;
    currentMouseY = y;
    final JobEntryCopy jobEntry = jobMeta.getJobEntryCopy(x, y, iconsize);
    setJobEntry(jobEntry);
    Document doc = xulDomContainer.getDocumentRoot();
    if (jobEntry != null) {
        // We clicked on a Job Entry!
        XulMenupopup menu = (XulMenupopup) doc.getElementById("job-graph-entry");
        if (menu != null) {
            List<JobEntryCopy> selection = jobMeta.getSelectedEntries();
            doRightClickSelection(jobEntry, selection);
            int sels = selection.size();
            XulMenuitem item = (XulMenuitem) doc.getElementById("job-graph-entry-newhop");
            item.setDisabled(sels < 2);
            JfaceMenupopup launchMenu = (JfaceMenupopup) doc.getElementById("job-graph-entry-launch-popup");
            String[] referencedObjects = jobEntry.getEntry().getReferencedObjectDescriptions();
            boolean[] enabledObjects = jobEntry.getEntry().isReferencedObjectEnabled();
            launchMenu.setDisabled(Utils.isEmpty(referencedObjects));
            launchMenu.removeChildren();
            if (!Utils.isEmpty(referencedObjects)) {
                for (int i = 0; i < referencedObjects.length; i++) {
                    final int index = i;
                    String referencedObject = referencedObjects[i];
                    Action action = new Action(referencedObject, Action.AS_PUSH_BUTTON) {

                        public void run() {
                            loadReferencedObject(jobEntry, index);
                        }
                    };
                    JfaceMenuitem child = new JfaceMenuitem(null, launchMenu, xulDomContainer, referencedObject, i, action);
                    child.setLabel(referencedObject);
                    child.setDisabled(!enabledObjects[i]);
                }
            }
            item = (XulMenuitem) doc.getElementById("job-graph-entry-align-snap");
            item.setAcceltext("ALT-HOME");
            item.setLabel(BaseMessages.getString(PKG, "JobGraph.PopupMenu.JobEntry.AllignDistribute.SnapToGrid"));
            item.setAccesskey("alt-home");
            XulMenu aMenu = (XulMenu) doc.getElementById("job-graph-entry-align");
            if (aMenu != null) {
                aMenu.setDisabled(sels < 1);
            }
            item = (XulMenuitem) doc.getElementById("job-graph-entry-detach");
            if (item != null) {
                item.setDisabled(!jobMeta.isEntryUsedInHops(jobEntry));
            }
            item = (XulMenuitem) doc.getElementById("job-graph-entry-hide");
            if (item != null) {
                item.setDisabled(!(jobEntry.isDrawn() && !jobMeta.isEntryUsedInHops(jobEntry)));
            }
            item = (XulMenuitem) doc.getElementById("job-graph-entry-delete");
            if (item != null) {
                item.setDisabled(!jobEntry.isDrawn());
            }
            item = (XulMenuitem) doc.getElementById("job-graph-entry-parallel");
            if (item != null) {
                item.setSelected(jobEntry.isLaunchingInParallel());
            }
            try {
                JobGraphJobEntryMenuExtension extension = new JobGraphJobEntryMenuExtension(xulDomContainer, doc, jobMeta, jobEntry, this);
                ExtensionPointHandler.callExtensionPoint(log, KettleExtensionPoint.JobGraphJobEntrySetMenu.id, extension);
            } catch (Exception e) {
                log.logError("Error handling menu right click on job entry through extension point", e);
            }
            ConstUI.displayMenu(menu, canvas);
        }
    } else {
        // Clear the menu
        final JobHopMeta hi = findJobHop(x, y);
        setCurrentHop(hi);
        if (hi != null) {
            // We clicked on a HOP!
            XulMenupopup menu = (XulMenupopup) doc.getElementById("job-graph-hop");
            if (menu != null) {
                XulMenuitem miPopEvalUncond = (XulMenuitem) doc.getElementById("job-graph-hop-evaluation-uncond");
                XulMenuitem miPopEvalTrue = (XulMenuitem) doc.getElementById("job-graph-hop-evaluation-true");
                XulMenuitem miPopEvalFalse = (XulMenuitem) doc.getElementById("job-graph-hop-evaluation-false");
                XulMenuitem miDisHop = (XulMenuitem) doc.getElementById("job-graph-hop-enabled");
                XulMenuitem miFlipHop = (XulMenuitem) doc.getElementById("job-graph-hop-flip");
                // 
                if (miPopEvalUncond != null && miPopEvalTrue != null && miPopEvalFalse != null) {
                    if (hi.isUnconditional()) {
                        miPopEvalUncond.setSelected(true);
                        miPopEvalTrue.setSelected(false);
                        miPopEvalFalse.setSelected(false);
                    } else {
                        if (hi.getEvaluation()) {
                            miPopEvalUncond.setSelected(false);
                            miPopEvalTrue.setSelected(true);
                            miPopEvalFalse.setSelected(false);
                        } else {
                            miPopEvalUncond.setSelected(false);
                            miPopEvalTrue.setSelected(false);
                            miPopEvalFalse.setSelected(true);
                        }
                    }
                    if (!hi.getFromEntry().evaluates()) {
                        miPopEvalTrue.setDisabled(true);
                        miPopEvalFalse.setDisabled(true);
                    } else {
                        miPopEvalTrue.setDisabled(false);
                        miPopEvalFalse.setDisabled(false);
                    }
                    if (!hi.getFromEntry().isUnconditional()) {
                        miPopEvalUncond.setDisabled(true);
                    } else {
                        miPopEvalUncond.setDisabled(false);
                    }
                    if (hi.getFromEntry().isStart()) {
                        miFlipHop.setDisabled(true);
                    } else {
                        miFlipHop.setDisabled(false);
                    }
                }
                if (miDisHop != null) {
                    if (hi.isEnabled()) {
                        miDisHop.setLabel(BaseMessages.getString(PKG, "JobGraph.PopupMenu.Hop.Disable"));
                    } else {
                        miDisHop.setLabel(BaseMessages.getString(PKG, "JobGraph.PopupMenu.Hop.Enable"));
                    }
                }
                ConstUI.displayMenu(menu, canvas);
            }
        } else {
            // Clicked on the background: maybe we hit a note?
            final NotePadMeta ni = jobMeta.getNote(x, y);
            setCurrentNote(ni);
            if (ni != null) {
                XulMenupopup menu = (XulMenupopup) doc.getElementById("job-graph-note");
                if (menu != null) {
                    ConstUI.displayMenu(menu, canvas);
                }
            } else {
                XulMenupopup menu = (XulMenupopup) doc.getElementById("job-graph-background");
                if (menu != null) {
                    final String clipcontent = spoon.fromClipboard();
                    XulMenuitem item = (XulMenuitem) doc.getElementById("job-graph-note-paste");
                    if (item != null) {
                        item.setDisabled(clipcontent == null);
                    }
                    ConstUI.displayMenu(menu, canvas);
                }
            }
        }
    }
}
Also used : Action(org.eclipse.jface.action.Action) JobHopMeta(org.pentaho.di.job.JobHopMeta) JfaceMenuitem(org.pentaho.ui.xul.jface.tags.JfaceMenuitem) Document(org.pentaho.ui.xul.dom.Document) JfaceMenupopup(org.pentaho.ui.xul.jface.tags.JfaceMenupopup) Point(org.pentaho.di.core.gui.Point) KettleExtensionPoint(org.pentaho.di.core.extension.KettleExtensionPoint) XulException(org.pentaho.ui.xul.XulException) KettleRepositoryLostException(org.pentaho.di.repository.KettleRepositoryLostException) KettleException(org.pentaho.di.core.exception.KettleException) XulMenupopup(org.pentaho.ui.xul.containers.XulMenupopup) XulMenu(org.pentaho.ui.xul.containers.XulMenu) JobEntryCopy(org.pentaho.di.job.entry.JobEntryCopy) XulMenuitem(org.pentaho.ui.xul.components.XulMenuitem) NotePadMeta(org.pentaho.di.core.NotePadMeta)

Aggregations

XulMenuitem (org.pentaho.ui.xul.components.XulMenuitem)5 XulMenu (org.pentaho.ui.xul.containers.XulMenu)5 Document (org.pentaho.ui.xul.dom.Document)3 KettleExtensionPoint (org.pentaho.di.core.extension.KettleExtensionPoint)2 Point (org.pentaho.di.core.gui.Point)2 TransMeta (org.pentaho.di.trans.TransMeta)2 Spoon (org.pentaho.di.ui.spoon.Spoon)2 XulToolbarbutton (org.pentaho.ui.xul.components.XulToolbarbutton)2 List (java.util.List)1 Action (org.eclipse.jface.action.Action)1 Test (org.junit.Test)1 EngineMetaInterface (org.pentaho.di.core.EngineMetaInterface)1 NotePadMeta (org.pentaho.di.core.NotePadMeta)1 KettleException (org.pentaho.di.core.exception.KettleException)1 JobHopMeta (org.pentaho.di.job.JobHopMeta)1 JobMeta (org.pentaho.di.job.JobMeta)1 JobEntryCopy (org.pentaho.di.job.entry.JobEntryCopy)1 KettleRepositoryLostException (org.pentaho.di.repository.KettleRepositoryLostException)1 Repository (org.pentaho.di.repository.Repository)1 PurRepository (org.pentaho.di.repository.pur.PurRepository)1