Example usage for org.eclipse.jface.window ToolTip NO_RECREATE

List of usage examples for org.eclipse.jface.window ToolTip NO_RECREATE

Introduction

In this page you can find the example usage for org.eclipse.jface.window ToolTip NO_RECREATE.

Prototype

int NO_RECREATE

To view the source code for org.eclipse.jface.window ToolTip NO_RECREATE.

Click Source Link

Document

Don't recreate the tooltip as long the mouse doesn't leave the area triggering the tooltip creation

Usage

From source file:org.larz.dom4.editor.AbstractDetailsPage.java

License:Open Source License

/**
 * @param control/*from   w  w  w.  j a  v a  2 s . c  om*/
 * @param text
 */
protected void setToolTip(Control control, String text) {
    DefaultToolTip toolTip = new DefaultToolTip(control, SWT.BALLOON | ToolTip.NO_RECREATE, false);
    toolTip.setText(text);
    toolTip.setHideDelay(0);
    toolTip.setShift(new Point(0, 25));
}

From source file:org.ow2.petals.client.swt.dialogs.ServiceRegistryViewerDialog.java

License:Open Source License

@Override
protected Control createDialogArea(final Composite parent) {

    // General properties
    getShell().setText("Consume a Petals Service");
    setTitle("Consume a Petals Service");
    setMessage(DEFAULT_MSG);/*from ww w  . j ava  2 s.  c  o m*/

    Composite outterComposite = new Composite(parent, SWT.BORDER);
    outterComposite.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
    GridLayoutFactory.swtDefaults().margins(0, 0).applyTo(outterComposite);
    outterComposite.setLayoutData(new GridData(GridData.FILL_BOTH));

    Tree tree = new Tree(outterComposite, SWT.HIDE_SELECTION | SWT.FULL_SELECTION | SWT.SINGLE);
    GridData layoutData = new GridData(GridData.FILL_BOTH);
    layoutData.widthHint = 400;
    layoutData.heightHint = 400;
    tree.setLayoutData(layoutData);

    final TreeViewer treeViewer = new TreeViewer(tree);
    treeViewer.setContentProvider(new ServiceRegistryContentProvider());

    this.labelProvider = new ServiceRegistryLabelProvider();
    treeViewer.setLabelProvider(this.labelProvider);
    ColumnViewerToolTipSupport.enableFor(treeViewer, ToolTip.NO_RECREATE);

    // Prepare the input...
    Map<QName, ItfBean> itfNameToInterface = new HashMap<QName, ItfBean>();
    for (ServiceEndpoint se : this.serviceEndpoints) {

        // Handle the interface name
        ItfBean itfBean = itfNameToInterface.get(se.getInterfaceName());
        if (itfBean == null) {
            itfBean = new ItfBean();
            itfBean.itfName = se.getInterfaceName();
            itfNameToInterface.put(itfBean.itfName, itfBean);
        }

        // Handle the service name
        SrvBean srvBean = itfBean.srvNameToService.get(se.getServiceName());
        if (srvBean == null) {
            srvBean = new SrvBean();
            srvBean.itfName = itfBean.itfName;
            srvBean.srvName = se.getServiceName();
            itfBean.srvNameToService.put(srvBean.srvName, srvBean);
        }

        // Handle the end-point name
        EdptBean edptBean = new EdptBean();
        edptBean.se = se;
        srvBean.endpoints.add(edptBean);
    }

    // ... and set it!
    treeViewer.setInput(itfNameToInterface);

    // Listen to the selection
    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent e) {

            Object o = ((IStructuredSelection) e.getSelection()).getFirstElement();
            if (o instanceof ItfBean) {
                ServiceRegistryViewerDialog.this.itfToInvoke = ((ItfBean) o).itfName;
                ServiceRegistryViewerDialog.this.srvToInvoke = null;
                ServiceRegistryViewerDialog.this.edptToInvoke = null;

            } else if (o instanceof SrvBean) {
                ServiceRegistryViewerDialog.this.itfToInvoke = ((SrvBean) o).itfName;
                ServiceRegistryViewerDialog.this.srvToInvoke = ((SrvBean) o).srvName;
                ServiceRegistryViewerDialog.this.edptToInvoke = null;

            } else if (o instanceof EdptBean) {
                ServiceRegistryViewerDialog.this.itfToInvoke = ((EdptBean) o).se.getInterfaceName();
                ServiceRegistryViewerDialog.this.srvToInvoke = ((EdptBean) o).se.getServiceName();
                ServiceRegistryViewerDialog.this.edptToInvoke = ((EdptBean) o).se.getEndpointName();
            }

            Button okButton;
            if (ServiceRegistryViewerDialog.this.itfToInvoke != null
                    && (okButton = getButton(IDialogConstants.OK_ID)) != null)
                okButton.setEnabled(true);
        }
    });

    return outterComposite;
}

From source file:org.ow2.petals.engine.client.swt.dialogs.ServiceRegistryViewerDialog.java

License:Open Source License

@Override
protected Control createDialogArea(final Composite parent) {

    // General properties
    getShell().setText("Consume a Petals Service");
    setTitle("Consume a Petals Service");
    setMessage(DEFAULT_MSG);// w w  w  . j  a  va  2s. com

    Composite outterComposite = new Composite(parent, SWT.BORDER);
    outterComposite.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
    GridLayoutFactory.swtDefaults().margins(0, 0).applyTo(outterComposite);
    outterComposite.setLayoutData(new GridData(GridData.FILL_BOTH));

    Tree tree = new Tree(outterComposite, SWT.HIDE_SELECTION | SWT.FULL_SELECTION | SWT.SINGLE);
    GridData layoutData = new GridData(GridData.FILL_BOTH);
    layoutData.widthHint = 400;
    layoutData.heightHint = 400;
    tree.setLayoutData(layoutData);

    final TreeViewer treeViewer = new TreeViewer(tree);
    treeViewer.setContentProvider(new ServiceRegistryContentProvider());

    this.labelProvider = new ServiceRegistryLabelProvider();
    treeViewer.setLabelProvider(this.labelProvider);
    ColumnViewerToolTipSupport.enableFor(treeViewer, ToolTip.NO_RECREATE);

    // Prepare the input...
    Map<QName, ItfBean> itfNameToInterface = new HashMap<QName, ItfBean>();
    for (ServiceEndpoint se : this.serviceEndpoints) {

        // Handle the interface name
        ItfBean itfBean = itfNameToInterface.get(se.getInterfaces()[0]);
        if (itfBean == null) {
            itfBean = new ItfBean();
            itfBean.itfName = se.getInterfaces()[0];
            itfNameToInterface.put(itfBean.itfName, itfBean);
        }

        // Handle the service name
        SrvBean srvBean = itfBean.srvNameToService.get(se.getServiceName());
        if (srvBean == null) {
            srvBean = new SrvBean();
            srvBean.itfName = itfBean.itfName;
            srvBean.srvName = se.getServiceName();
            itfBean.srvNameToService.put(srvBean.srvName, srvBean);
        }

        // Handle the end-point name
        EdptBean edptBean = new EdptBean();
        edptBean.se = se;
        srvBean.endpoints.add(edptBean);
    }

    // ... and set it!
    treeViewer.setInput(itfNameToInterface);

    // Listen to the selection
    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent e) {

            Object o = ((IStructuredSelection) e.getSelection()).getFirstElement();
            if (o instanceof ItfBean) {
                ServiceRegistryViewerDialog.this.itfToInvoke = ((ItfBean) o).itfName;
                ServiceRegistryViewerDialog.this.srvToInvoke = null;
                ServiceRegistryViewerDialog.this.edptToInvoke = null;

            } else if (o instanceof SrvBean) {
                ServiceRegistryViewerDialog.this.itfToInvoke = ((SrvBean) o).itfName;
                ServiceRegistryViewerDialog.this.srvToInvoke = ((SrvBean) o).srvName;
                ServiceRegistryViewerDialog.this.edptToInvoke = null;

            } else if (o instanceof EdptBean) {
                ServiceRegistryViewerDialog.this.itfToInvoke = ((EdptBean) o).se.getInterfaces()[0];
                ServiceRegistryViewerDialog.this.srvToInvoke = ((EdptBean) o).se.getServiceName();
                ServiceRegistryViewerDialog.this.edptToInvoke = ((EdptBean) o).se.getEndpointName();
            }

            Button okButton;
            if (ServiceRegistryViewerDialog.this.itfToInvoke != null
                    && (okButton = getButton(IDialogConstants.OK_ID)) != null)
                okButton.setEnabled(true);
        }
    });

    return outterComposite;
}

From source file:org.pentaho.di.ui.spoon.job.JobGraph.java

License:Apache License

public JobGraph(Composite par, final Spoon spoon, final JobMeta jobMeta) {
    super(par, SWT.NONE);
    shell = par.getShell();/*  w  w w. j  a  va  2  s.  c  om*/
    this.log = spoon.getLog();
    this.spoon = spoon;
    this.jobMeta = jobMeta;
    spoon.clearSearchFilter();

    this.props = PropsUI.getInstance();
    this.areaOwners = new ArrayList<>();
    this.mouseOverEntries = new ArrayList<>();
    this.delayTimers = new HashMap<>();

    jobLogDelegate = new JobLogDelegate(spoon, this);
    jobHistoryDelegate = new JobHistoryDelegate(spoon, this);
    jobGridDelegate = new JobGridDelegate(spoon, this);
    jobMetricsDelegate = new JobMetricsDelegate(spoon, this);

    refreshListeners = new ArrayList<RefreshListener>();

    try {
        KettleXulLoader loader = new KettleXulLoader();
        loader.setIconsSize(16, 16);
        loader.setSettingsManager(XulSpoonSettingsManager.getInstance());
        ResourceBundle bundle = new XulSpoonResourceBundle(JobGraph.class);
        XulDomContainer container = loader.loadXul(XUL_FILE_JOB_GRAPH, bundle);
        container.addEventHandler(this);

        SpoonPluginManager.getInstance().applyPluginsForContainer("job-graph", xulDomContainer);

        setXulDomContainer(container);
    } catch (XulException e1) {
        log.logError(toString(), Const.getStackTracker(e1));
    }

    setLayout(new FormLayout());
    setLayoutData(new GridData(GridData.FILL_BOTH));

    // Add a tool-bar at the top of the tab
    // The form-data is set on the native widget automatically
    //
    addToolBar();

    // The main composite contains the graph view, but if needed also
    // a view with an extra tab containing log, etc.
    //
    mainComposite = new Composite(this, SWT.NONE);
    mainComposite.setLayout(new FillLayout());

    // Nick's fix below -------
    Control toolbarControl = (Control) toolbar.getManagedObject();

    FormData toolbarFd = new FormData();
    toolbarFd.left = new FormAttachment(0, 0);
    toolbarFd.right = new FormAttachment(100, 0);

    toolbarControl.setLayoutData(toolbarFd);
    toolbarControl.setParent(this);
    // ------------------------

    FormData fdMainComposite = new FormData();
    fdMainComposite.left = new FormAttachment(0, 0);
    fdMainComposite.top = new FormAttachment((Control) toolbar.getManagedObject(), 0);
    fdMainComposite.right = new FormAttachment(100, 0);
    fdMainComposite.bottom = new FormAttachment(100, 0);
    mainComposite.setLayoutData(fdMainComposite);

    // To allow for a splitter later on, we will add the splitter here...
    //
    sashForm = new SashForm(mainComposite, SWT.VERTICAL);

    // Add a canvas below it, use up all space initially
    //
    canvas = new Canvas(sashForm, SWT.V_SCROLL | SWT.H_SCROLL | SWT.NO_BACKGROUND | SWT.BORDER);

    sashForm.setWeights(new int[] { 100, });

    try {
        Document doc = xulDomContainer.getDocumentRoot();
        menuMap.put("job-graph-hop", (XulMenupopup) doc.getElementById("job-graph-hop"));
        menuMap.put("job-graph-note", (XulMenupopup) doc.getElementById("job-graph-note"));
        menuMap.put("job-graph-background", (XulMenupopup) doc.getElementById("job-graph-background"));
        menuMap.put("job-graph-entry", (XulMenupopup) doc.getElementById("job-graph-entry"));
    } catch (Throwable t) {
        log.logError(Const.getStackTracker(t));
        new ErrorDialog(
                shell, BaseMessages.getString(PKG, "JobGraph.Exception.ErrorReadingXULFile.Title"), BaseMessages
                        .getString(PKG, "JobGraph.Exception.ErrorReadingXULFile.Message", Spoon.XUL_FILE_MENUS),
                new Exception(t));
    }

    toolTip = new DefaultToolTip(canvas, ToolTip.NO_RECREATE, true);
    toolTip.setRespectMonitorBounds(true);
    toolTip.setRespectDisplayBounds(true);
    toolTip.setPopupDelay(350);
    toolTip.setShift(new org.eclipse.swt.graphics.Point(ConstUI.TOOLTIP_OFFSET, ConstUI.TOOLTIP_OFFSET));

    helpTip = new CheckBoxToolTip(canvas);
    helpTip.addCheckBoxToolTipListener(new CheckBoxToolTipListener() {

        public void checkBoxSelected(boolean enabled) {
            spoon.props.setShowingHelpToolTips(enabled);
        }
    });

    newProps();

    selectionRegion = null;
    hop_candidate = null;
    last_hop_split = null;

    selectedEntries = null;
    selectedNote = null;

    hori = canvas.getHorizontalBar();
    vert = canvas.getVerticalBar();

    hori.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            redraw();
        }
    });
    vert.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            redraw();
        }
    });
    hori.setThumb(100);
    vert.setThumb(100);

    hori.setVisible(true);
    vert.setVisible(true);

    setVisible(true);

    canvas.addPaintListener(new PaintListener() {
        public void paintControl(PaintEvent e) {
            JobGraph.this.paintControl(e);
        }
    });

    selectedEntries = null;
    lastclick = null;

    canvas.addMouseListener(this);
    canvas.addMouseMoveListener(this);
    canvas.addMouseTrackListener(this);
    canvas.addMouseWheelListener(this);

    // Drag & Drop for steps
    Transfer[] ttypes = new Transfer[] { XMLTransfer.getInstance() };
    DropTarget ddTarget = new DropTarget(canvas, DND.DROP_MOVE);
    ddTarget.setTransfer(ttypes);
    ddTarget.addDropListener(new DropTargetListener() {
        public void dragEnter(DropTargetEvent event) {
            drop_candidate = PropsUI.calculateGridPosition(getRealPosition(canvas, event.x, event.y));
            redraw();
        }

        public void dragLeave(DropTargetEvent event) {
            drop_candidate = null;
            redraw();
        }

        public void dragOperationChanged(DropTargetEvent event) {
        }

        public void dragOver(DropTargetEvent event) {
            drop_candidate = PropsUI.calculateGridPosition(getRealPosition(canvas, event.x, event.y));
            redraw();
        }

        public void drop(DropTargetEvent event) {
            // no data to copy, indicate failure in event.detail
            if (event.data == null) {
                event.detail = DND.DROP_NONE;
                return;
            }

            Point p = getRealPosition(canvas, event.x, event.y);

            try {
                DragAndDropContainer container = (DragAndDropContainer) event.data;
                String entry = container.getData();

                switch (container.getType()) {
                case DragAndDropContainer.TYPE_BASE_JOB_ENTRY: // Create a new Job Entry on the canvas
                    JobEntryCopy jge = spoon.newJobEntry(jobMeta, entry, false);
                    if (jge != null) {
                        PropsUI.setLocation(jge, p.x, p.y);
                        jge.setDrawn();
                        redraw();

                        // See if we want to draw a tool tip explaining how to create new hops...
                        //
                        if (jobMeta.nrJobEntries() > 1 && jobMeta.nrJobEntries() < 5
                                && spoon.props.isShowingHelpToolTips()) {
                            showHelpTip(p.x, p.y,
                                    BaseMessages.getString(PKG, "JobGraph.HelpToolTip.CreatingHops.Title"),
                                    BaseMessages.getString(PKG, "JobGraph.HelpToolTip.CreatingHops.Message"));
                        }
                    }
                    break;

                case DragAndDropContainer.TYPE_JOB_ENTRY: // Drag existing one onto the canvas
                    jge = jobMeta.findJobEntry(entry, 0, true);
                    if (jge != null) {
                        // Create duplicate of existing entry

                        // There can be only 1 start!
                        if (jge.isStart() && jge.isDrawn()) {
                            showOnlyStartOnceMessage(shell);
                            return;
                        }

                        boolean jge_changed = false;

                        // For undo :
                        JobEntryCopy before = (JobEntryCopy) jge.clone_deep();

                        JobEntryCopy newjge = jge;
                        if (jge.isDrawn()) {
                            newjge = (JobEntryCopy) jge.clone();
                            if (newjge != null) {
                                // newjge.setEntry(jge.getEntry());
                                if (log.isDebug()) {
                                    log.logDebug("entry aft = " + ((Object) jge.getEntry()).toString());
                                }

                                newjge.setNr(jobMeta.findUnusedNr(newjge.getName()));

                                jobMeta.addJobEntry(newjge);
                                spoon.addUndoNew(jobMeta, new JobEntryCopy[] { newjge },
                                        new int[] { jobMeta.indexOfJobEntry(newjge) });
                            } else {
                                if (log.isDebug()) {
                                    log.logDebug("jge is not cloned!");
                                }
                            }
                        } else {
                            if (log.isDebug()) {
                                log.logDebug(jge.toString() + " is not drawn");
                            }
                            jge_changed = true;
                        }
                        PropsUI.setLocation(newjge, p.x, p.y);
                        newjge.setDrawn();
                        if (jge_changed) {
                            spoon.addUndoChange(jobMeta, new JobEntryCopy[] { before },
                                    new JobEntryCopy[] { newjge },
                                    new int[] { jobMeta.indexOfJobEntry(newjge) });
                        }
                        redraw();
                        spoon.refreshTree();
                        log.logBasic("DropTargetEvent",
                                "DROP " + newjge.toString() + "!, type=" + newjge.getEntry().getPluginId());
                    } else {
                        log.logError("Unknown job entry dropped onto the canvas.");
                    }
                    break;

                default:
                    break;
                }
            } catch (Exception e) {
                new ErrorDialog(shell,
                        BaseMessages.getString(PKG, "JobGraph.Dialog.ErrorDroppingObject.Message"),
                        BaseMessages.getString(PKG, "JobGraph.Dialog.ErrorDroppingObject.Title"), e);
            }
        }

        public void dropAccept(DropTargetEvent event) {
            drop_candidate = null;
        }
    });

    canvas.addKeyListener(this);

    setBackground(GUIResource.getInstance().getColorBackground());

    setControlStates();

    // Add a timer to set correct the state of the run/stop buttons every 2 seconds...
    //
    final Timer timer = new Timer("JobGraph.setControlStates Timer: " + getMeta().getName());
    TimerTask timerTask = new TimerTask() {
        public void run() {
            try {
                setControlStates();
            } catch (KettleRepositoryLostException krle) {
                if (log.isBasic()) {
                    log.logBasic(krle.getLocalizedMessage());
                }
            }
        }
    };
    timer.schedule(timerTask, 2000, 1000);

    // Make sure the timer stops when we close the tab...
    //
    addDisposeListener(new DisposeListener() {
        public void widgetDisposed(DisposeEvent arg0) {
            timer.cancel();
        }
    });

}

From source file:org.pentaho.di.ui.spoon.trans.TransGraph.java

License:Apache License

public TransGraph(Composite parent, final Spoon spoon, final TransMeta transMeta) {
    super(parent, SWT.NONE);
    this.shell = parent.getShell();
    this.spoon = spoon;
    this.transMeta = transMeta;
    this.areaOwners = new ArrayList<>();

    this.log = spoon.getLog();
    spoon.clearSearchFilter();/*from  w w  w  .  j  ava2s .  c  o  m*/

    this.mouseOverSteps = new ArrayList<>();
    this.delayTimers = new HashMap<>();

    transLogDelegate = new TransLogDelegate(spoon, this);
    transGridDelegate = new TransGridDelegate(spoon, this);
    transHistoryDelegate = new TransHistoryDelegate(spoon, this);
    transPerfDelegate = new TransPerfDelegate(spoon, this);
    transMetricsDelegate = new TransMetricsDelegate(spoon, this);
    transPreviewDelegate = new TransPreviewDelegate(spoon, this);

    stepListeners = new ArrayList<>();

    try {
        KettleXulLoader loader = new KettleXulLoader();
        loader.setIconsSize(16, 16);
        loader.setSettingsManager(XulSpoonSettingsManager.getInstance());
        ResourceBundle bundle = new XulSpoonResourceBundle(Spoon.class);
        XulDomContainer container = loader.loadXul(XUL_FILE_TRANS_TOOLBAR, bundle);
        container.addEventHandler(this);

        SpoonPluginManager.getInstance().applyPluginsForContainer("trans-graph", xulDomContainer);

        setXulDomContainer(container);
    } catch (XulException e1) {
        log.logError("Error loading XUL resource bundle for Spoon", e1);
    }

    setLayout(new FormLayout());
    setLayoutData(new GridData(GridData.FILL_BOTH));

    // Add a tool-bar at the top of the tab
    // The form-data is set on the native widget automatically
    //
    addToolBar();

    setControlStates(); // enable / disable the icons in the toolbar too.

    // The main composite contains the graph view, but if needed also
    // a view with an extra tab containing log, etc.
    //
    mainComposite = new Composite(this, SWT.NONE);
    mainComposite.setLayout(new FillLayout());

    // Nick's fix below -------
    Control toolbarControl = (Control) toolbar.getManagedObject();

    FormData toolbarFd = new FormData();
    toolbarFd.left = new FormAttachment(0, 0);
    toolbarFd.right = new FormAttachment(100, 0);

    toolbarControl.setLayoutData(toolbarFd);
    toolbarControl.setParent(this);
    // ------------------------

    FormData fdMainComposite = new FormData();
    fdMainComposite.left = new FormAttachment(0, 0);
    fdMainComposite.top = new FormAttachment((Control) toolbar.getManagedObject(), 0);
    fdMainComposite.right = new FormAttachment(100, 0);
    fdMainComposite.bottom = new FormAttachment(100, 0);
    mainComposite.setLayoutData(fdMainComposite);

    // To allow for a splitter later on, we will add the splitter here...
    //
    sashForm = new SashForm(mainComposite, SWT.VERTICAL);

    // Add a canvas below it, use up all space initially
    //
    canvas = new Canvas(sashForm, SWT.V_SCROLL | SWT.H_SCROLL | SWT.NO_BACKGROUND | SWT.BORDER);

    sashForm.setWeights(new int[] { 100, });

    try {
        // first get the XML document
        menuMap.put("trans-graph-hop",
                (XulMenupopup) getXulDomContainer().getDocumentRoot().getElementById("trans-graph-hop"));
        menuMap.put("trans-graph-entry",
                (XulMenupopup) getXulDomContainer().getDocumentRoot().getElementById("trans-graph-entry"));
        menuMap.put("trans-graph-background",
                (XulMenupopup) getXulDomContainer().getDocumentRoot().getElementById("trans-graph-background"));
        menuMap.put("trans-graph-note",
                (XulMenupopup) getXulDomContainer().getDocumentRoot().getElementById("trans-graph-note"));
    } catch (Throwable t) {
        log.logError("Error parsing XUL XML", t);
    }

    toolTip = new DefaultToolTip(canvas, ToolTip.NO_RECREATE, true);
    toolTip.setRespectMonitorBounds(true);
    toolTip.setRespectDisplayBounds(true);
    toolTip.setPopupDelay(350);
    toolTip.setHideDelay(TOOLTIP_HIDE_DELAY_SHORT);
    toolTip.setShift(new org.eclipse.swt.graphics.Point(ConstUI.TOOLTIP_OFFSET, ConstUI.TOOLTIP_OFFSET));

    helpTip = new CheckBoxToolTip(canvas);
    helpTip.addCheckBoxToolTipListener(new CheckBoxToolTipListener() {

        @Override
        public void checkBoxSelected(boolean enabled) {
            spoon.props.setShowingHelpToolTips(enabled);
        }
    });

    iconsize = spoon.props.getIconSize();

    clearSettings();

    remarks = new ArrayList<>();
    impact = new ArrayList<>();
    impactFinished = false;

    hori = canvas.getHorizontalBar();
    vert = canvas.getVerticalBar();

    hori.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            redraw();
        }
    });
    vert.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            redraw();
        }
    });
    hori.setThumb(100);
    vert.setThumb(100);

    hori.setVisible(true);
    vert.setVisible(true);

    setVisible(true);
    newProps();

    canvas.setBackground(GUIResource.getInstance().getColorBackground());

    canvas.addPaintListener(new PaintListener() {
        @Override
        public void paintControl(PaintEvent e) {
            if (!spoon.isStopped()) {
                TransGraph.this.paintControl(e);
            }
        }
    });

    selectedSteps = null;
    lastclick = null;

    /*
     * Handle the mouse...
     */

    canvas.addMouseListener(this);
    canvas.addMouseMoveListener(this);
    canvas.addMouseTrackListener(this);
    canvas.addMouseWheelListener(this);
    canvas.addKeyListener(this);

    // Drag & Drop for steps
    Transfer[] ttypes = new Transfer[] { XMLTransfer.getInstance() };
    DropTarget ddTarget = new DropTarget(canvas, DND.DROP_MOVE);
    ddTarget.setTransfer(ttypes);
    ddTarget.addDropListener(new DropTargetListener() {
        @Override
        public void dragEnter(DropTargetEvent event) {
            clearSettings();

            drop_candidate = PropsUI.calculateGridPosition(getRealPosition(canvas, event.x, event.y));

            redraw();
        }

        @Override
        public void dragLeave(DropTargetEvent event) {
            drop_candidate = null;
            redraw();
        }

        @Override
        public void dragOperationChanged(DropTargetEvent event) {
        }

        @Override
        public void dragOver(DropTargetEvent event) {
            drop_candidate = PropsUI.calculateGridPosition(getRealPosition(canvas, event.x, event.y));

            redraw();
        }

        @Override
        public void drop(DropTargetEvent event) {
            // no data to copy, indicate failure in event.detail
            if (event.data == null) {
                event.detail = DND.DROP_NONE;
                return;
            }

            // System.out.println("Dropping a step!!");

            // What's the real drop position?
            Point p = getRealPosition(canvas, event.x, event.y);

            //
            // We expect a Drag and Drop container... (encased in XML)
            try {
                DragAndDropContainer container = (DragAndDropContainer) event.data;

                StepMeta stepMeta = null;
                boolean newstep = false;

                switch (container.getType()) {
                // Put an existing one on the canvas.
                case DragAndDropContainer.TYPE_STEP:
                    // Drop hidden step onto canvas....
                    stepMeta = transMeta.findStep(container.getData());
                    if (stepMeta != null) {
                        if (stepMeta.isDrawn() || transMeta.isStepUsedInTransHops(stepMeta)) {
                            modalMessageDialog(getString("TransGraph.Dialog.StepIsAlreadyOnCanvas.Title"),
                                    getString("TransGraph.Dialog.StepIsAlreadyOnCanvas.Message"), SWT.OK);
                            return;
                        }
                        // This step gets the drawn attribute and position set below.
                    } else {
                        // Unknown step dropped: ignore this to be safe!
                        return;
                    }
                    break;

                // Create a new step
                case DragAndDropContainer.TYPE_BASE_STEP_TYPE:
                    // Not an existing step: data refers to the type of step to create
                    String id = container.getId();
                    String name = container.getData();
                    stepMeta = spoon.newStep(transMeta, id, name, name, false, true);
                    if (stepMeta != null) {
                        newstep = true;
                    } else {
                        return; // Cancelled pressed in dialog or unable to create step.
                    }
                    break;

                // Create a new TableInput step using the selected connection...
                case DragAndDropContainer.TYPE_DATABASE_CONNECTION:
                    newstep = true;
                    String connectionName = container.getData();
                    TableInputMeta tii = new TableInputMeta();
                    tii.setDatabaseMeta(transMeta.findDatabase(connectionName));
                    PluginRegistry registry = PluginRegistry.getInstance();
                    String stepID = registry.getPluginId(StepPluginType.class, tii);
                    PluginInterface stepPlugin = registry.findPluginWithId(StepPluginType.class, stepID);
                    String stepName = transMeta.getAlternativeStepname(stepPlugin.getName());
                    stepMeta = new StepMeta(stepID, stepName, tii);
                    if (spoon.editStep(transMeta, stepMeta) != null) {
                        transMeta.addStep(stepMeta);
                        spoon.refreshTree();
                        spoon.refreshGraph();
                    } else {
                        return;
                    }
                    break;

                // Drag hop on the canvas: create a new Hop...
                case DragAndDropContainer.TYPE_TRANS_HOP:
                    newHop();
                    return;

                default:
                    // Nothing we can use: give an error!
                    modalMessageDialog(getString("TransGraph.Dialog.ItemCanNotBePlacedOnCanvas.Title"),
                            getString("TransGraph.Dialog.ItemCanNotBePlacedOnCanvas.Message"), SWT.OK);
                    return;
                }

                transMeta.unselectAll();

                StepMeta before = null;
                if (!newstep) {
                    before = (StepMeta) stepMeta.clone();
                }

                stepMeta.drawStep();
                stepMeta.setSelected(true);
                PropsUI.setLocation(stepMeta, p.x, p.y);

                if (newstep) {
                    spoon.addUndoNew(transMeta, new StepMeta[] { stepMeta },
                            new int[] { transMeta.indexOfStep(stepMeta) });
                } else {
                    spoon.addUndoChange(transMeta, new StepMeta[] { before },
                            new StepMeta[] { (StepMeta) stepMeta.clone() },
                            new int[] { transMeta.indexOfStep(stepMeta) });
                }

                canvas.forceFocus();
                redraw();

                // See if we want to draw a tool tip explaining how to create new hops...
                //
                if (newstep && transMeta.nrSteps() > 1 && transMeta.nrSteps() < 5
                        && spoon.props.isShowingHelpToolTips()) {
                    showHelpTip(p.x, p.y,
                            BaseMessages.getString(PKG, "TransGraph.HelpToolTip.CreatingHops.Title"),
                            BaseMessages.getString(PKG, "TransGraph.HelpToolTip.CreatingHops.Message"));
                }
            } catch (Exception e) {
                new ErrorDialog(shell,
                        BaseMessages.getString(PKG, "TransGraph.Dialog.ErrorDroppingObject.Message"),
                        BaseMessages.getString(PKG, "TransGraph.Dialog.ErrorDroppingObject.Title"), e);
            }
        }

        @Override
        public void dropAccept(DropTargetEvent event) {
        }
    });

    setBackground(GUIResource.getInstance().getColorBackground());

    // Add a timer to set correct the state of the run/stop buttons every 2 seconds...
    //
    final Timer timer = new Timer("TransGraph.setControlStates Timer: " + getMeta().getName());
    TimerTask timerTask = new TimerTask() {

        @Override
        public void run() {
            try {
                setControlStates();
            } catch (KettleRepositoryLostException krle) {
                if (log.isBasic()) {
                    log.logBasic(krle.getLocalizedMessage());
                }
            }
        }
    };
    timer.schedule(timerTask, 2000, 1000);

    // Make sure the timer stops when we close the tab...
    //
    addDisposeListener(new DisposeListener() {
        @Override
        public void widgetDisposed(DisposeEvent arg0) {
            timer.cancel();
        }
    });
}

From source file:org.robotframework.ide.eclipse.main.plugin.project.editor.libraries.PathsFormFragment.java

License:Apache License

private RowExposingTableViewer createViewer(final Composite parent, final ViewerConfiguration config) {
    final RowExposingTableViewer viewer = new RowExposingTableViewer(parent,
            SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    CellsActivationStrategy.addActivationStrategy(viewer, RowTabbingStrategy.MOVE_TO_NEXT);
    ColumnViewerToolTipSupport.enableFor(viewer, ToolTip.NO_RECREATE);

    GridDataFactory.fillDefaults().grab(true, true).indent(10, 0).minSize(100, 100).applyTo(viewer.getTable());
    viewer.setUseHashlookup(true);/*w  w w. jav  a  2s .  c om*/
    viewer.getTable().setEnabled(false);
    viewer.getTable().setLinesVisible(false);
    viewer.getTable().setHeaderVisible(false);

    viewer.setContentProvider(new PathsContentProvider(config.getVariableName(), editorInput.isEditable()));

    ViewersConfigurator.enableDeselectionPossibility(viewer);
    ViewersConfigurator.disableContextMenuOnHeader(viewer);
    Viewers.boundViewerWithContext(viewer, site, config.getContextId());
    return viewer;
}

From source file:org.robotframework.ide.eclipse.main.plugin.project.editor.libraries.ReferencedLibrariesFormFragment.java

License:Apache License

private void createViewer(final Composite parent) {
    viewer = new RowExposingTableViewer(parent,
            SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    CellsActivationStrategy.addActivationStrategy(viewer, RowTabbingStrategy.MOVE_TO_NEXT);
    ColumnViewerToolTipSupport.enableFor(viewer, ToolTip.NO_RECREATE);

    GridDataFactory.fillDefaults().grab(true, true).span(1, 4).indent(0, 10).applyTo(viewer.getTable());
    viewer.setUseHashlookup(true);//from  w ww .  j  a v  a  2 s  . c o  m
    viewer.getTable().setEnabled(false);
    viewer.getTable().setLinesVisible(false);
    viewer.getTable().setHeaderVisible(false);

    viewer.setContentProvider(new ReferencedLibrariesContentProvider());

    ViewersConfigurator.enableDeselectionPossibility(viewer);
    ViewersConfigurator.disableContextMenuOnHeader(viewer);
    Viewers.boundViewerWithContext(viewer, site, CONTEXT_ID);
}

From source file:org.robotframework.ide.eclipse.main.plugin.project.editor.validation.ProjectValidationFormFragment.java

License:Apache License

private void createViewer(final Composite parent) {
    viewer = new RowExposingTreeViewer(parent,
            SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    CellsActivationStrategy.addActivationStrategy(viewer, RowTabbingStrategy.MOVE_TO_NEXT);
    ColumnViewerToolTipSupport.enableFor(viewer, ToolTip.NO_RECREATE);

    GridDataFactory.fillDefaults().grab(true, true).indent(0, 10).applyTo(viewer.getTree());
    viewer.setUseHashlookup(true);//from w w w . ja  v  a  2  s  .  c o m
    viewer.setAutoExpandLevel(2);
    viewer.getTree().setEnabled(false);
    viewer.setComparator(new ViewerSorter());

    viewer.setContentProvider(new WorkbenchContentProvider());

    ViewersConfigurator.enableDeselectionPossibility(viewer);
    ViewersConfigurator.disableContextMenuOnHeader(viewer);
    Viewers.boundViewerWithContext(viewer, site, CONTEXT_ID);
}

From source file:org.robotframework.ide.eclipse.main.plugin.project.editor.variables.VariableFilesFormFragment.java

License:Apache License

private void createViewer(final Composite parent) {
    viewer = new RowExposingTableViewer(parent,
            SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    CellsActivationStrategy.addActivationStrategy(viewer, RowTabbingStrategy.MOVE_TO_NEXT);
    ColumnViewerToolTipSupport.enableFor(viewer, ToolTip.NO_RECREATE);

    GridDataFactory.fillDefaults().grab(true, true).indent(0, 10).applyTo(viewer.getTable());
    viewer.setUseHashlookup(true);//ww  w  .j av a2s . c  o m
    viewer.getTable().setEnabled(false);
    viewer.getTable().setLinesVisible(true);
    viewer.getTable().setHeaderVisible(true);

    viewer.setContentProvider(new VariableFilesContentProvider());

    ViewersConfigurator.enableDeselectionPossibility(viewer);
    ViewersConfigurator.disableContextMenuOnHeader(viewer);
    Viewers.boundViewerWithContext(viewer, site, CONTEXT_ID);
}

From source file:org.spotter.eclipse.ui.viewers.ExtensionsGroupViewer.java

License:Apache License

/**
 * Create a table viewer under the given parent. Initializes the viewer with
 * the given input. Uses SpotterExtensionsContentProvider as content
 * provider and SpotterExtensionsLabelProvider as label provider.
 * /*from w  w w. j  a  v  a 2 s  .  co  m*/
 * @param parent
 *            The parent composite. Must not be <code>null</code>.
 * @param input
 *            The input of the viewer. Must not be <code>null</code>.
 * 
 * @return the created table viewer
 * 
 * @see SpotterExtensionsContentProvider
 * @see SpotterExtensionsLabelProvider
 */
public static TableViewer createTableViewer(Composite parent, ExtensionItem input) {
    if (parent == null) {
        throw new IllegalArgumentException("parent must not be null");
    }
    if (input == null) {
        throw new IllegalArgumentException("input must not be null");
    }
    // configure table layout
    Composite tblExtensionsComp = new Composite(parent, SWT.NONE);
    tblExtensionsComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    TableColumnLayout tblExtensionsColLayout = new TableColumnLayout();
    tblExtensionsComp.setLayout(tblExtensionsColLayout);
    // create table
    Table table = new Table(tblExtensionsComp, VIEWER_CONTROL_STYLE);
    table.setHeaderVisible(false);
    table.setLinesVisible(false);
    // create viewer for table
    TableViewer tableViewer = new TableViewer(table);
    ColumnViewerToolTipSupport.enableFor(tableViewer, ToolTip.NO_RECREATE);
    TableViewerColumn extensionsColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    tblExtensionsColLayout.setColumnData(extensionsColumn.getColumn(), new ColumnWeightData(1));
    tableViewer.setContentProvider(new SpotterExtensionsContentProvider());
    tableViewer.setLabelProvider(new SpotterExtensionsLabelProvider());
    tableViewer.setInput(input);

    return tableViewer;
}