Example usage for org.eclipse.jface.viewers TableViewer setSelection

List of usage examples for org.eclipse.jface.viewers TableViewer setSelection

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers TableViewer setSelection.

Prototype

@Override
public void setSelection(ISelection selection, boolean reveal) 

Source Link

Document

Sets a new selection for this viewer and optionally makes it visible.

Usage

From source file:ch.elexis.core.ui.contacts.views.PatientenListeView.java

License:Open Source License

private void makeActions() {

    filterAction = new Action(Messages.PatientenListeView_FilteList, Action.AS_CHECK_BOX) { // $NON-NLS-1$
        {/*from   w w  w.j a  va2s  .  co m*/
            setImageDescriptor(Images.IMG_FILTER.getImageDescriptor());
            setToolTipText(Messages.PatientenListeView_FilterList); // $NON-NLS-1$
        }

        @Override
        public void run() {
            GridData gd = (GridData) plfb.getLayoutData();
            if (filterAction.isChecked()) {
                gd.heightHint = 80;
                plfb.reset();
                plcp.setFilter(plfb);

            } else {
                gd.heightHint = 0;
                plcp.removeFilter(plfb);
            }
            parent.layout(true);

        }

    };

    newPatAction = new RestrictedAction(AccessControlDefaults.PATIENT_INSERT,
            Messages.PatientenListeView_NewPatientAction) {
        {
            setImageDescriptor(Images.IMG_NEW.getImageDescriptor());
            setToolTipText(Messages.PatientenListeView_NewPationtToolTip);
        }

        @Override
        public void doRun() {
            HashMap<String, String> ctlFields = new HashMap<String, String>();
            String[] fx = vc.getControlFieldProvider().getValues();
            int i = 0;
            if (CoreHub.userCfg.get(Preferences.USR_PATLIST_SHOWPATNR, false)) {
                if (i < fx.length) {
                    ctlFields.put(Patient.FLD_PATID, fx[i++]);
                }
            }
            if (CoreHub.userCfg.get(Preferences.USR_PATLIST_SHOWNAME, true)) {
                if (i < fx.length) {
                    ctlFields.put(Patient.FLD_NAME, fx[i++]);
                }
            }
            if (CoreHub.userCfg.get(Preferences.USR_PATLIST_SHOWFIRSTNAME, true)) {
                if (i < fx.length) {
                    ctlFields.put(Patient.FLD_FIRSTNAME, fx[i++]);
                }
            }
            if (CoreHub.userCfg.get(Preferences.USR_PATLIST_SHOWDOB, true)) {
                if (i < fx.length) {
                    ctlFields.put(Patient.FLD_DOB, fx[i++]);
                }
            }

            PatientErfassenDialog ped = new PatientErfassenDialog(getViewSite().getShell(), ctlFields);
            if (ped.open() == Dialog.OK) {
                plcp.temporaryAddObject(ped.getResult());
                Patient pat = ped.getResult();
                for (int j = 0; j < currentUserFields.length; j++) {
                    String current = currentUserFields[j];
                    if (current.startsWith(Patient.FLD_PATID)) {
                        dcfp.setValue(j, pat.getPatCode());
                    } else if (current.startsWith(Patient.FLD_NAME) && pat.getName() != null) {
                        dcfp.setValue(j, pat.getName());
                    } else if (current.startsWith(Patient.FLD_FIRSTNAME) && pat.getVorname() != null) {
                        dcfp.setValue(j, pat.getVorname());
                    }
                }
                plcp.syncRefresh();
                TableViewer tv = (TableViewer) cv.getViewerWidget();
                tv.setSelection(new StructuredSelection(pat), true);
            }
        }
    };

    /*
     * Copy selected PatientInfos to the clipboard, so it/they can be easily
     * pasted into a letter for printing. An action with identical / similar
     * code has also been added above, and to KontakteView.java. Detailed
     * comments regarding field access, and output including used newline/cr
     * characters are maintained only there.
     */
    copySelectedPatInfosToClipboardAction = new Action(
            Messages.PatientenListeView_copySelectedPatInfosToClipboard) { // $NON-NLS-1$
        {
            setImageDescriptor(Images.IMG_CLIPBOARD.getImageDescriptor());
            setToolTipText(Messages.PatientenListeView_copySelectedPatInfosToClipboard); // $NON-NLS-1$
        }

        @Override
        public void run() {

            // Adopted from KontakteView.printList:
            // Convert the selected addresses into a list

            /*
             * ToDo: OK, vielleicht wre es schner, in Person.java
             * (+-Patient.java?) eine Funktion getPostAnschriftFaxEmail() zu
             * ergnzen...
             */
            // TODO: PatientenListeView.java, Bitte in Person.java
            // getPersonalia() durch
            // abgewandelte Fassung komplementieren und den entsprechenden
            // Code dorthin verlagern.
            // TODO: Bitte Fehlermeldung Elexis-Konform gestalten, ggf.
            // Automatik /
            // assistierte Fehlerbehebung hinzufgen.

            StringBuffer selectedPatInfosText = new StringBuffer();

            Object[] sel = cv.getSelection();

            // If you enable the following line for debug output,
            // you should also enable the selectedPatInfosText.setLength(0)
            // line below,
            // and enable output of selectedPatInfosText even for the case
            // of an empty
            // selection further below.
            // selectedPatInfosText.append("jsdebug: Sorry, your selection
            // is empty.");

            if (sel != null && sel.length > 0) {
                // selectedPatInfosText.setLength(0);
                // selectedPatInfosText.append("jsdebug: Your selection
                // includes "+sel.length+"
                // element(s):"+System.getProperty("line.separator"));

                // In PateintenListeView.java, only zero or one patients can
                // be selected at
                // a time.
                // Consequently, the for-loop inherited from
                // KontakteView.java is a bit of
                // an overkill right here.
                for (int i = 0; i < sel.length; i++) {

                    /*
                     * Patient ist eine Person, das ist Kontakt mit
                     * zustzlichen Feldern (Kontakt.java, Person.java) In
                     * KontakteView.java stand hier: Kontakt k = (Kontakt)
                     * sel[i] In PatientenListeView.java verwende ich
                     * dieselbe Variablenbezeichnung k, damit ich unten
                     * nicht alle Feldeinbindungen aktualisieren muss - und
                     * damit spter nderungen in KontakteView.java schnell
                     * hierher bernommen werden knnen.
                     */

                    Patient k = (Patient) sel[i];

                    /*
                     * Synthesize the lines to output from the entries in
                     * Patient (=includes fields from Kontakt) k. This time,
                     * we build a completely self-made block of text,
                     * instead of using getPostAnschrift() as above.
                     */

                    // The following code is adopted from
                    // Kontakt.createStdAnschrift for a
                    // different purpose/layout:
                    // ggf. hier zu Person.getPersonalia() eine abgewandelte
                    // Fassung
                    // hinzufgen und von hier aus aufrufen.

                    // Highly similar (but still different) code is now
                    // added
                    // to KontakteView.java
                    // CopySelectedContactInfoToClipboard...
                    // 201202161313js

                    if (k.istPerson()) {
                        // TODO default salutation might be configurable (or
                        // a
                        // "Sex missing!" Info might appear) js
                        String salutation;
                        if (k.getGeschlecht().equals(Person.MALE)) {
                            salutation = Messages.KontakteView_SalutationM; // $NON-NLS-1$
                        } else // We do not use any default salutation for
                               // unknown sex to
                               // avoid errors!
                        if (k.getGeschlecht().equals(Person.FEMALE)) {
                            salutation = Messages.KontakteView_SalutationF; // $NON-NLS-1$
                        } else {
                            salutation = ""; //$NON-NLS-1$
                        }
                        selectedPatInfosText.append(salutation);
                        selectedPatInfosText.append(StringTool.space);

                        String titel = k.get(Person.TITLE); // $NON-NLS-1$
                        if (!StringTool.isNothing(titel)) {
                            selectedPatInfosText.append(titel).append(StringTool.space);
                        }
                        // A comma between Family Name and Given Name would
                        // be generally
                        // helpful to reliably tell them apart:
                        // selectedPatInfosText.append(k.getName()+","+StringTool.space+k.getVorname());
                        // But Jrg Hamacher prefers this in his letters
                        // without a comma in
                        // between:
                        // selectedPatInfosText.append(k.getName()+StringTool.space+k.getVorname());
                        // Now, I only use a spacer, if the first field is
                        // not empty!
                        // SelectedContactInfosText.append(p.getVorname()+StringTool.space+p.getName());
                        if (!StringTool.isNothing(k.getName())) {
                            selectedPatInfosText.append(k.getName() + StringTool.space);
                        }
                        if (!StringTool.isNothing(k.getVorname())) {
                            selectedPatInfosText.append(k.getVorname());
                        }

                        String thisPatientBIRTHDATE = k.get(Person.BIRTHDATE);
                        if (!StringTool.isNothing(thisPatientBIRTHDATE)) {
                            // This would add the term "geb." (born on the)
                            // before the date
                            // of birth:
                            // selectedPatInfosText.append(","+StringTool.space+"geb."+StringTool.space+new
                            // TimeTool(thisPatientBIRTHDATE).toString(TimeTool.DATE_GER));
                            // But Jrg Hamacher prefers the patient
                            // information in his
                            // letters without that term:
                            selectedPatInfosText.append("," + StringTool.space
                                    + new TimeTool(thisPatientBIRTHDATE).toString(TimeTool.DATE_GER));
                        }

                        String thisAddressFLD_STREET = k.get(Kontakt.FLD_STREET);
                        if (!StringTool.isNothing(thisAddressFLD_STREET)) {
                            selectedPatInfosText.append("," + StringTool.space + thisAddressFLD_STREET);
                        }

                        String thisAddressFLD_COUNTRY = k.get(Kontakt.FLD_COUNTRY);
                        if (!StringTool.isNothing(thisAddressFLD_COUNTRY)) {
                            selectedPatInfosText.append("," + StringTool.space + thisAddressFLD_COUNTRY + "-");
                        }

                        String thisAddressFLD_ZIP = k.get(Kontakt.FLD_ZIP);
                        if (!StringTool.isNothing(thisAddressFLD_ZIP)) {
                            if (StringTool.isNothing(thisAddressFLD_COUNTRY)) {
                                selectedPatInfosText.append("," + StringTool.space);
                            }
                            ;
                            selectedPatInfosText.append(thisAddressFLD_ZIP);
                        }
                        ;

                        String thisAddressFLD_PLACE = k.get(Kontakt.FLD_PLACE);
                        if (!StringTool.isNothing(thisAddressFLD_PLACE)) {
                            if (StringTool.isNothing(thisAddressFLD_COUNTRY)
                                    && StringTool.isNothing(thisAddressFLD_ZIP)) {
                                selectedPatInfosText.append(",");
                            }
                            ;
                            selectedPatInfosText.append(StringTool.space + thisAddressFLD_PLACE);
                        }

                        String thisAddressFLD_PHONE1 = k.get(Kontakt.FLD_PHONE1);
                        if (!StringTool.isNothing(thisAddressFLD_PHONE1)) {
                            selectedPatInfosText
                                    .append("," + StringTool.space + StringTool.space + thisAddressFLD_PHONE1);
                        }

                        String thisAddressFLD_PHONE2 = k.get(Kontakt.FLD_PHONE2);
                        if (!StringTool.isNothing(thisAddressFLD_PHONE2)) {
                            selectedPatInfosText
                                    .append("," + StringTool.space + StringTool.space + thisAddressFLD_PHONE2);
                        }

                        String thisAddressFLD_MOBILEPHONE = k.get(Kontakt.FLD_MOBILEPHONE);
                        if (!StringTool.isNothing(thisAddressFLD_MOBILEPHONE)) {
                            // With a colon after the label:
                            // selectedPatInfosText.append(","+StringTool.space+k.FLD_MOBILEPHONE+":"+StringTool.space+thisAddressFLD_MOBILEPHONE);
                            // Without a colon after the label:
                            selectedPatInfosText.append("," + StringTool.space + Kontakt.FLD_MOBILEPHONE
                                    + StringTool.space + thisAddressFLD_MOBILEPHONE);
                        }

                        String thisAddressFLD_FAX = k.get(Kontakt.FLD_FAX);
                        if (!StringTool.isNothing(thisAddressFLD_FAX)) {
                            // With a colon after the label:
                            // selectedPatInfosText.append(","+StringTool.space+k.FLD_FAX+":"+StringTool.space+thisAddressFLD_FAX);
                            // Without a colon after the label:
                            selectedPatInfosText.append("," + StringTool.space + Kontakt.FLD_FAX
                                    + StringTool.space + thisAddressFLD_FAX);
                        }

                        String thisAddressFLD_E_MAIL = k.get(Kontakt.FLD_E_MAIL);
                        if (!StringTool.isNothing(thisAddressFLD_E_MAIL)) {
                            selectedPatInfosText.append("," + StringTool.space + thisAddressFLD_E_MAIL);
                        }
                    } else {
                        selectedPatInfosText.append(
                                "Fehler: Bei diesem Patienten ist das Flag \"Person\" nicht gesetzt! Bitte korrigieren!\n");
                        // TODO: Fehler: Bei diesem Patienten ist das Flag
                        // \"Person\" nicht gesetzt!\n");
                        // TODO: Bitte Fehlermeldung Elexis-Konform
                        // gestalten, ggf.
                        // Automatik / assistierte Fehlerbehebung
                        // hinzufgen.\n");
                    }

                    // Add another empty line (or rather: paragraph), if at
                    // least one more
                    // address will follow.
                    if (i < sel.length - 1) {
                        selectedPatInfosText.append(System.getProperty("line.separator"));

                    }
                } // for each element in sel do

                /*
                 * The following code portions can be moved down behind the
                 * next } if you want to produce debugging output or empty
                 * the clipboard even when NO addresses have been selected.
                 * (However, I may disable the toolbar icon / menu entry for
                 * this action in that case later on.)
                 */

                // Adopted from BestellView.exportClipboardAction:
                // Copy some generated object.toString() to the clipoard

                Clipboard clipboard = new Clipboard(UiDesk.getDisplay());
                TextTransfer textTransfer = TextTransfer.getInstance();
                Transfer[] transfers = new Transfer[] { textTransfer };
                Object[] data = new Object[] { selectedPatInfosText.toString() };
                clipboard.setContents(data, transfers);
                clipboard.dispose();

            } // if sel not empty
        }; // copyselectedPatInfosToClipboardAction.run()
    };

    /*
     * Copy selected address(es) to the clipboard, so it/they can be easily
     * pasted into a letter for printing. An actions with identical /
     * similar code has also been added below, and to KontakteView.java.
     * Detailed comments regarding field access, and output including used
     * newline/cr characters are maintained only there.
     */
    copySelectedAddressesToClipboardAction = new Action(
            Messages.PatientenListeView_copySelectedAddressesToClipboard) { // $NON-NLS-1$
        {
            setImageDescriptor(Images.IMG_CLIPBOARD.getImageDescriptor());
            setToolTipText(Messages.PatientenListeView_copySelectedAddressesToClipboard); // $NON-NLS-1$
        }

        @Override
        public void run() {

            // Adopted from KontakteView.printList:
            // Convert the selected addresses into a list

            StringBuffer selectedAddressesText = new StringBuffer();

            Object[] sel = cv.getSelection();

            // If you enable the following line for debug output,
            // you should also enable the selectedAddressesText.setLength(0)
            // line below,
            // and enable output of selectedAddressesText even for the case
            // of an empty
            // selection further below.
            // selectedAddressesText.append("jsdebug: Sorry, your selection
            // is empty.");

            if (sel != null && sel.length > 0) {
                // selectedAddressesText.setLength(0);
                // selectedAddressesText.append("jsdebug: Your selection
                // includes "+sel.length+"
                // element(s):"+System.getProperty("line.separator"));

                // In PateintenListeView.java, only zero or one patients can
                // be selected at
                // a time.
                // Consequently, the for-loop inherited from
                // KontakteView.java is a bit of
                // an overkill right here.
                for (int i = 0; i < sel.length; i++) {

                    /*
                     * Patient ist eine Person, das ist Kontakt mit
                     * zustzlichen Feldern (Kontakt.java, Person.java) In
                     * KontakteView.java stand hier: Kontakt k = (Kontakt)
                     * sel[i] In PatientenListeView.java verwende ich
                     * dieselbe Variablenbezeichnung k, damit ich unten
                     * nicht alle Feldeinbindungen aktualisieren muss - und
                     * damit spter nderungen in KontakteView.java schnell
                     * hierher bernommen werden knnen.
                     */

                    Patient k = (Patient) sel[i];

                    /*
                     * Synthesize the address lines to output from the
                     * entries in Patient (=includes fields from Kontakt) k.
                     * A different, completely self-made block of text, is
                     * provided by a similar action defined further below.
                     */

                    // selectedAddressesText.append("jsdebug: Item
                    // "+Integer.toString(i)+"
                    // "+k.toString()+System.getProperty("line.separator"));

                    // getPostAnschriftPhoneFaxEmail() already returns a
                    // line separator
                    // after the address
                    // The first parameter controls multiline or single line
                    // output
                    // The second parameter controls whether the phone
                    // numbers shall be
                    // included
                    selectedAddressesText.append(k.getPostAnschriftPhoneFaxEmail(true, true));

                    // Add another empty line (or rather: paragraph), if at
                    // least one more
                    // address will follow.
                    if (i < sel.length - 1) {
                        selectedAddressesText.append(System.getProperty("line.separator"));

                    }
                } // for each element in sel do

                /*
                 * I would prefer to move the following code portions down
                 * behind the "if sel not empty" block, so that (a)
                 * debugging output can be produced and (b) the clipboard
                 * will be emptied when NO addresses have been selected. I
                 * did this to avoid the case where a user would assume they
                 * had selected some address, copied data to the clipboard,
                 * and pasted them - and, even when they erred about their
                 * selection, which was indeed empty, they would not
                 * immediately notice that because some (old, unchanged)
                 * content would still come out of the clipboard.
                 * 
                 * But if I do so, and there actually is no address
                 * selected, I get an error window: Unhandled Exception ...
                 * not valid. So to avoid that message without any further
                 * research (I need to get this work fast now), I move the
                 * code back up and leave the clipboard unchanged for now,
                 * if no addresses had been selected to process.
                 * 
                 * (However, I may disable the toolbar icon / menu entry for
                 * this action in that case later on.)
                 */

                // System.out.print("jsdebug: selectedAddressesText:
                // \n"+selectedAddressesText+"\n");

                // Adopted from BestellView.exportClipboardAction:
                // Copy some generated object.toString() to the clipoard

                Clipboard clipboard = new Clipboard(UiDesk.getDisplay());
                TextTransfer textTransfer = TextTransfer.getInstance();
                Transfer[] transfers = new Transfer[] { textTransfer };
                Object[] data = new Object[] { selectedAddressesText.toString() };
                clipboard.setContents(data, transfers);
                clipboard.dispose();

            } // if sel not empty
        }; // copySelectedAddressesToClipboardAction.run()
    };

}

From source file:com.mousefeed.eclipse.preferences.presentation.PresentationModePreferencePage.java

License:Open Source License

protected void addItem(TableViewer viewer) {

    Scheme initialValue = bindingService.getActiveScheme();
    List<Scheme> input = Arrays.asList(bindingService.getDefinedSchemes());

    IBaseLabelProvider labelProvider = new LabelProvider() {
        @Override/*from ww  w.java2s. com*/
        public String getText(Object element) {
            try {
                return ((Scheme) element).getName();
            } catch (NotDefinedException e) {
                Activator.getDefault().getLog().log(
                        new Status(IStatus.WARNING, Activator.PLUGIN_ID, "Could not get label for scheme", e));
                return "(Undefined)";
            }
        }
    };
    ComboInputDialog<Scheme> comboInputDialog = new ComboInputDialog<Scheme>(getShell(), "Select Scheme",
            "Select the Scheme which should be added to the configuration", initialValue, input, labelProvider);
    if (comboInputDialog.open() == Window.OK) {
        Scheme value = comboInputDialog.getValue();
        SchemeConfig config = new SchemeConfig(value.getId());
        preferences.addPresentationModeSchemeConfigs(config);
        viewer.refresh();
        viewer.setSelection(new StructuredSelection(config), true);
    }

}

From source file:com.nokia.tools.variant.editor.dialogs.SelectConfigurationDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    GridLayout layout3 = (GridLayout) parent.getLayout();
    layout3.marginLeft = 0;//  w ww  . j  a  va 2s .  c o  m
    layout3.marginRight = 0;
    layout3.marginTop = 0;
    layout3.marginBottom = 0;
    layout3.horizontalSpacing = 0;
    layout3.verticalSpacing = 0;
    parent.setLayout(layout3);

    Composite dialogArea = (Composite) super.createDialogArea(parent);
    GridLayout layout = new GridLayout(1, false);
    dialogArea.setLayout(layout);

    Composite c = new Composite(dialogArea, SWT.NONE);
    c.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    GridLayout layout2 = new GridLayout(2, false);
    c.setLayout(layout2);
    c.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));

    Label l = new Label(c, SWT.NONE);
    l.setText("The file contains multiple configurations. Select configuration and then press OK.");
    l.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
    GridData layoutData = new GridData(GridData.FILL_HORIZONTAL);
    layoutData.heightHint = 60;
    layoutData.grabExcessHorizontalSpace = true;
    l.setLayoutData(layoutData);

    GridData gridData = new GridData();
    gridData.horizontalAlignment = GridData.HORIZONTAL_ALIGN_END;
    gridData.heightHint = 60;
    Label rightLabel = new Label(c, SWT.NO);
    rightLabel.setLayoutData(gridData);

    ImageDescriptor imageDescriptor = Activator.getImageDescriptor("icons/saveas_wiz.png");
    Image image = imageDescriptor.createImage();

    rightLabel.setImage(image);
    rightLabel.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));

    Rectangle bounds = dialogArea.getShell().getBounds();
    getShell().setBounds(bounds);

    dialogArea.setLayout(new GridLayout());
    configTable = new Table(dialogArea, SWT.FULL_SELECTION);
    final TableViewer viewer = new TableViewer(configTable);

    final Listener labelDisposeListener = new Listener() {
        public void handleEvent(Event event) {
            StyledText styledText = (StyledText) event.widget;
            Shell shell = styledText.getShell();
            switch (event.type) {
            case SWT.MouseDown:
                Event e = new Event();
                e.item = (TableItem) styledText.getData(KEY_TOOLTIPTEXT);
                configTable.setSelection(new TableItem[] { (TableItem) e.item });
                configTable.notifyListeners(SWT.Selection, e);
                // dispose shell on mouse down
            case SWT.MouseExit:
                shell.dispose();
                break;
            }
        }
    };

    Listener toolTipDisplayListener = new Listener() {
        Shell tooltipShell = null;
        StyledText styledText = null;

        public void handleEvent(Event event) {
            switch (event.type) {
            case SWT.Dispose:
            case SWT.KeyDown:
            case SWT.MouseMove:
                if (tooltipShell == null || tooltipShell.isDisposed()) {
                    break;
                }
                tooltipShell.dispose();
                tooltipShell = null;
                styledText = null;
                break;
            case SWT.MouseHover:
                TableItem item = configTable.getItem(new Point(event.x, event.y));
                if (item != null) {
                    if (tooltipShell != null && !tooltipShell.isDisposed()) {
                        tooltipShell.dispose();
                    }
                    tooltipShell = new Shell(configTable.getShell(), SWT.ON_TOP | SWT.TOOL);
                    tooltipShell.setLayout(new FillLayout());
                    styledText = new StyledText(tooltipShell, SWT.NONE);
                    styledText.setEditable(false);
                    styledText.getCaret().setVisible(false);
                    styledText
                            .setBackground(configTable.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
                    styledText
                            .setForeground(configTable.getDisplay().getSystemColor(SWT.COLOR_INFO_FOREGROUND));
                    styledText.setData(KEY_TOOLTIPTEXT, item);
                    Object data = item.getData();
                    CPFInformation cpfInformation = (CPFInformation) data;
                    styledText.setText(cpfInformation.getLayerPopupInfoText());
                    styledText.addListener(SWT.MouseExit, labelDisposeListener);
                    styledText.addListener(SWT.MouseDown, labelDisposeListener);
                    Point size = tooltipShell.computeSize(SWT.DEFAULT, SWT.DEFAULT);
                    Rectangle rect = item.getBounds(0);
                    Point pt = configTable.toDisplay(rect.x, rect.y);
                    tooltipShell.setBounds(pt.x, pt.y, size.x, size.y);
                    tooltipShell.setVisible(true);
                }
                break;
            }
        }
    };

    configTable.addListener(SWT.Dispose, toolTipDisplayListener);
    configTable.addListener(SWT.KeyDown, toolTipDisplayListener);
    configTable.addListener(SWT.MouseMove, toolTipDisplayListener);
    configTable.addListener(SWT.MouseHover, toolTipDisplayListener);

    configTable.setHeaderVisible(true);
    configTable.setLayoutData(new GridData(GridData.FILL_BOTH));

    configTable.addSelectionListener(new SelectionListener() {

        public void widgetSelected(SelectionEvent e) {
            selectedConfigurationIndex = configTable.getSelectionIndex();
            viewer.setSelection(new StructuredSelection(viewer.getElementAt(selectedConfigurationIndex)), true);
        }

        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });

    final String[] columnNames = new String[] { "Name", "Version", "Platform", "Release", "Product", "Date" };
    final int[] columnWidths = new int[] { 170, 50, 100, 60, 100, 100 };

    viewer.setColumnProperties(columnNames);

    TableColumn nameColumn = new TableColumn(configTable, SWT.LEFT);
    nameColumn.setText(columnNames[0]);
    nameColumn.setWidth(columnWidths[0]);

    TableColumn versionColumn = new TableColumn(configTable, SWT.LEFT);
    versionColumn.setText(columnNames[1]);
    versionColumn.setWidth(columnWidths[1]);

    TableColumn platformColumn = new TableColumn(configTable, SWT.LEFT);
    platformColumn.setText(columnNames[2]);
    platformColumn.setWidth(columnWidths[2]);

    TableColumn releaseColumn = new TableColumn(configTable, SWT.LEFT);
    releaseColumn.setText(columnNames[3]);
    releaseColumn.setWidth(columnWidths[3]);

    TableColumn productColumn = new TableColumn(configTable, SWT.LEFT);
    productColumn.setText(columnNames[4]);
    productColumn.setWidth(columnWidths[4]);

    TableColumn dateColumn = new TableColumn(configTable, SWT.LEFT);
    dateColumn.setText(columnNames[5]);
    dateColumn.setWidth(columnWidths[5]);

    viewer.setLabelProvider(new ITableLabelProvider() {

        public void removeListener(ILabelProviderListener listener) {
        }

        public boolean isLabelProperty(Object element, String property) {
            return false;
        }

        public void dispose() {
        }

        public void addListener(ILabelProviderListener listener) {
        }

        public String getColumnText(Object element, int columnIndex) {
            if (!(element instanceof CPFInformation)) {
                return null;
            }
            CPFInformation ci = (CPFInformation) element;
            switch (columnIndex) {
            case 0:
                return ci.getName();
            case 1:
                return ci.getVersion();
            case 2:
                return ci.getPlatform();
            case 3:
                return ci.getRelease();
            case 4:
                return ci.getProduct();
            case 5:
                return ci.getDate();
            }
            return null;
        }

        public Image getColumnImage(Object element, int columnIndex) {
            return null;
        }
    });

    ArrayContentProvider provider = new ArrayContentProvider();
    viewer.setContentProvider(provider);

    viewer.setInput(configurations);

    int itemCount = configTable.getItemCount();
    for (int i = 0; i < itemCount; i++) {
        TableItem item = configTable.getItem(i);
        // ToolTip.createToolTip(item, "");
    }
    viewer.setSelection(new StructuredSelection(viewer.getElementAt(0)), true);
    dialogArea.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
    return dialogArea;
}

From source file:de.dfki.iui.mmds.sdk.editors.grammar_rules.ContentListComposite.java

License:Creative Commons License

protected void addElementToTable(TableViewer tableViewer, EObject container, EStructuralFeature feature,
        Object newValue) {/*from w w  w  .  ja  v  a  2  s .  co  m*/
    Command cmd = AddCommand.create(editor.getEditingDomain(), container, feature, newValue);
    editor.getEditingDomain().getCommandStack().execute(cmd);
    Table table = tableViewer.getTable();
    tableViewer.refresh();
    tableViewer.setSelection(new StructuredSelection(tableViewer.getElementAt(table.getItemCount() - 1)), true);
    // hickhack
    if (newValue instanceof PhraseMapping) {
        ((PhraseMapping) newValue).setDescription(String.valueOf(table.getItemCount()));
    }

}

From source file:org.csstudio.alarm.beast.ui.alarmtable.GUI.java

License:Open Source License

/**
 * Select PVs in table that match filter expression
 *
 * @param pattern/*w  w w  .  j a va 2 s . com*/
 *            PV name pattern ('vac', 'amp*trip')
 * @param table_viewer
 *            Table in which to select PVs
 */
private void selectFilteredPVs(final Pattern pattern, final TableViewer table_viewer) {
    final AlarmTreePV pvs[] = ((AlarmTableContentProvider) table_viewer.getContentProvider()).getAlarms();
    final ArrayList<AlarmTreePV> selected = new ArrayList<AlarmTreePV>();
    for (AlarmTreePV pv : pvs) {
        if (pattern.matcher(pv.getName()).matches() || pattern.matcher(pv.getDescription()).matches())
            selected.add(pv);
    }
    table_viewer.setSelection(new StructuredSelection(selected), true);
}

From source file:org.eclipse.linuxtools.internal.valgrind.massif.charting.ChartEditor.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    final ChartEditorInput input = (ChartEditorInput) getEditorInput();
    final HeapChart heapChart = input.getChart();
    control = new Chart(parent, SWT.FILL);
    heapChart.setChartControl(control);/*from  w w  w .  j  ava2s  .  c o m*/

    final Color LIGHTYELLOW = new Color(Display.getDefault(), 255, 255, 225);
    final Color WHITE = Display.getDefault().getSystemColor(SWT.COLOR_WHITE);
    final Color BLACK = Display.getDefault().getSystemColor(SWT.COLOR_BLACK);
    final Color RED = Display.getDefault().getSystemColor(SWT.COLOR_RED);
    final Color ORANGE = new Color(Display.getDefault(), 255, 165, 0);
    final Color GREEN = Display.getDefault().getSystemColor(SWT.COLOR_GREEN);
    final Color DARK_BLUE = new Color(Display.getDefault(), 64, 128, 128);
    final int TICK_GAP = 40;

    control.setBackground(WHITE);
    control.setBackgroundInPlotArea(LIGHTYELLOW);

    FontData fd = JFaceResources.getDialogFont().getFontData()[0];
    fd.setStyle(SWT.BOLD);

    Font font = new Font(Display.getDefault(), fd);
    fd.setHeight(fd.getHeight() + 2);
    Font titleFont = new Font(Display.getDefault(), fd);

    ITitle title = control.getTitle();
    title.setFont(titleFont);
    title.setForeground(BLACK);
    title.setText(heapChart.title);

    IAxis xAxis = control.getAxisSet().getXAxis(0);
    xAxis.getGrid().setStyle(LineStyle.NONE);
    xAxis.getTick().setForeground(BLACK);
    ITitle xTitle = xAxis.getTitle();
    xTitle.setFont(font);
    xTitle.setForeground(BLACK);
    xTitle.setText(heapChart.xUnits);

    IAxis yAxis = control.getAxisSet().getYAxis(0);
    yAxis.getGrid().setStyle(LineStyle.SOLID);
    yAxis.getTick().setForeground(BLACK);
    yAxis.getTick().setTickMarkStepHint(TICK_GAP);
    ITitle yTitle = yAxis.getTitle();
    yTitle.setFont(font);
    yTitle.setText(heapChart.yUnits);
    yTitle.setForeground(BLACK);

    control.getLegend().setPosition(SWT.BOTTOM);

    // data
    final ILineSeries lsUseful = (ILineSeries) control.getSeriesSet().createSeries(SeriesType.LINE,
            Messages.getString("HeapChart.Useful_Heap")); //$NON-NLS-1$;
    lsUseful.setXSeries(heapChart.time);
    lsUseful.setYSeries(heapChart.dataUseful);
    lsUseful.setSymbolType(PlotSymbolType.DIAMOND);
    lsUseful.setSymbolColor(RED);
    lsUseful.setLineColor(RED);

    final ILineSeries lsExtra = (ILineSeries) control.getSeriesSet().createSeries(SeriesType.LINE,
            Messages.getString("HeapChart.Extra_Heap")); //$NON-NLS-1$;
    lsExtra.setXSeries(heapChart.time);
    lsExtra.setYSeries(heapChart.dataExtra);
    lsExtra.setSymbolType(PlotSymbolType.DIAMOND);
    lsExtra.setSymbolColor(ORANGE);
    lsExtra.setLineColor(ORANGE);

    if (heapChart.dataStacks != null) {
        final ILineSeries lsStack = (ILineSeries) control.getSeriesSet().createSeries(SeriesType.LINE,
                Messages.getString("HeapChart.Stacks")); //$NON-NLS-1$;
        lsStack.setXSeries(heapChart.time);
        lsStack.setYSeries(heapChart.dataStacks);
        lsStack.setSymbolType(PlotSymbolType.DIAMOND);
        lsStack.setSymbolColor(DARK_BLUE);
        lsStack.setLineColor(DARK_BLUE);
    }

    final ILineSeries lsTotal = (ILineSeries) control.getSeriesSet().createSeries(SeriesType.LINE,
            Messages.getString("HeapChart.Total_Heap")); //$NON-NLS-1$;
    lsTotal.setXSeries(heapChart.time);
    lsTotal.setYSeries(heapChart.dataTotal);
    lsTotal.setSymbolType(PlotSymbolType.DIAMOND);
    lsTotal.setSymbolColor(GREEN);
    lsTotal.setLineColor(GREEN);

    // adjust axes
    control.getAxisSet().adjustRange();

    IAxisSet axisSet = control.getAxisSet();
    Range xRange = axisSet.getXAxis(0).getRange();
    Range yRange = axisSet.getYAxis(0).getRange();

    double xExtra = 0.05 * (xRange.upper - xRange.lower);
    double yExtra = 0.05 * (yRange.upper - yRange.lower);

    axisSet.getXAxis(0).setRange(new Range(xRange.lower, xRange.upper + xExtra));
    axisSet.getYAxis(0).setRange(new Range(yRange.lower, yRange.upper + yExtra));

    // listeners
    control.getPlotArea().addMouseListener(new MouseAdapter() {

        @Override
        public void mouseDown(MouseEvent e) {
            showView();
            TableViewer viewer = input.getView().getTableViewer();
            input.getView().setTopControl(viewer.getControl());

            Point p = new Point(e.x, e.y);

            int closest = 0;
            double d1, d2, d3, currMin;
            double globalMin = Double.MAX_VALUE;
            for (int i = 0; i < heapChart.time.length; i++) {
                // get distance from click event to data points for the given index
                d1 = distance(lsUseful.getPixelCoordinates(i), p);
                d2 = distance(lsExtra.getPixelCoordinates(i), p);
                d3 = distance(lsTotal.getPixelCoordinates(i), p);
                // find the closest data point to the click event
                currMin = Math.min(Math.min(d1, d2), d3);
                if (currMin < globalMin) {
                    closest = i;
                    globalMin = currMin;
                }
            }

            MassifSnapshot snapshot = (MassifSnapshot) viewer.getElementAt(closest);
            viewer.setSelection(new StructuredSelection(snapshot), true);

            if (e.count == 2 && snapshot.isDetailed()) {
                ChartLocationsDialog dialog = new ChartLocationsDialog(Display.getCurrent().getActiveShell());
                dialog.setInput(snapshot);

                if (dialog.open() == Window.OK) {
                    dialog.openEditorForResult();
                }
            }

        }
    });

}

From source file:org.eclipse.rcptt.ctx.parameters.ui.ParametersContextEditor.java

License:Open Source License

private TableViewer createTable(Composite parent, FormToolkit toolkit) {
    table = new Table(parent, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);
    GridDataFactory.fillDefaults().grab(true, true).hint(100, 50).applyTo(table);
    table.setHeaderVisible(true);/*  w ww.  j a v  a 2s  . c  om*/
    toolkit.adapt(table);
    table.setLinesVisible(true);

    nameColumn = new TableColumn(table, SWT.LEFT);
    nameColumn.setText("Name");
    nameColumn.setWidth(200);
    nameColumn.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            sortBy(nameColumn);
        }
    });

    valueColumn = new TableColumn(table, SWT.LEFT);
    valueColumn.setText("Value");
    valueColumn.setWidth(350);
    valueColumn.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            sortBy(valueColumn);
        }
    });

    table.addKeyListener(new KeyAdapter() {

        public void keyPressed(KeyEvent e) {
            switch (e.keyCode) {
            case SWT.DEL:
            case SWT.BS:
                removeSelected();
                break;
            case SWT.INSERT:
                addNew();
                break;
            case SWT.CR:
            case SWT.F2:
                lastNewName = "";
                Object el = ((StructuredSelection) viewer.getSelection()).getFirstElement();
                if (el != null)
                    viewer.editElement(el, 0);
                else
                    viewer.editElement(newParameterItem, 0);
                break;
            }
        }
    });

    final TableViewer viewer = new TableViewer(table);
    viewer.setContentProvider(new IStructuredContentProvider() {

        public void dispose() {
            // do nothing
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            // do nothing
        }

        public Object[] getElements(Object inputElement) {
            ParametersContext ctx = (ParametersContext) inputElement;

            List<Parameter> elements = new ArrayList<Parameter>();
            elements.addAll(ctx.getParameters());
            elements.add(newParameterItem);

            return elements.toArray();
        }

    });

    // --

    TableViewerColumn nameViewerColumn = new TableViewerColumn(viewer, nameColumn);
    nameViewerColumn.setLabelProvider(new ColumnLabelProvider() {

        public String getText(Object element) {
            Parameter p = (Parameter) element;
            return p.getName();
        }

        public Image getImage(Object element) {
            return element == newParameterItem
                    ? Images.getImageDescriptor(ISharedImages.IMG_OBJ_ADD).createImage()
                    : Images.getImage(Images.PARAMETER);
        }

        public Font getFont(Object element) {
            if (element == newParameterItem) {
                Font tableFont = table.getFont();
                FontData fd = tableFont.getFontData()[0];
                fd.setStyle(fd.getStyle() | SWT.ITALIC);

                return new Font(tableFont.getDevice(), fd);
            } else
                return null;
        }
    });

    nameViewerColumn.setEditingSupport(new EditingSupport(viewer) {

        protected CellEditor getCellEditor(final Object element) {
            final TextCellEditor editor = new TextCellEditor(table);
            editor.getControl().addTraverseListener(new TraverseListener() {

                public void keyTraversed(TraverseEvent e) {
                    Text text = (Text) editor.getControl();

                    switch (e.detail) {
                    case SWT.TRAVERSE_TAB_NEXT:
                        if (validateName(element, text.getText()))
                            viewer.editElement(element, 1);
                        e.detail = SWT.TRAVERSE_NONE;
                        e.doit = false;
                        break;
                    case SWT.TRAVERSE_ARROW_NEXT:
                        if (e.keyCode == SWT.ARROW_DOWN) {
                            if (table.getItemCount() > table.getSelectionIndex() + 1
                                    && (isNewAndBlank(element, text.getText())
                                            || validateName(element, text.getText())))
                                viewer.editElement(viewer.getElementAt(table.getSelectionIndex() + 1), 0);
                            e.detail = SWT.TRAVERSE_NONE;
                            e.doit = false;
                        }
                        break;
                    case SWT.TRAVERSE_ARROW_PREVIOUS:
                        if (e.keyCode == SWT.ARROW_UP) {
                            if (table.getSelectionIndex() > 0 && (isNewAndBlank(element, text.getText())
                                    || validateName(element, text.getText())))
                                viewer.editElement(viewer.getElementAt(table.getSelectionIndex() - 1), 0);
                            e.detail = SWT.TRAVERSE_NONE;
                            e.doit = false;
                        }
                        break;
                    }
                }

            });
            return editor;
        }

        protected boolean canEdit(Object element) {
            return true;
        }

        protected Object getValue(Object element) {
            if (lastNewName.length() > 0)
                return lastNewName;
            else if (element == newParameterItem)
                return "";
            else {
                Parameter p = (Parameter) element;
                return p.getName();
            }
        }

        protected void setValue(final Object element, Object value) {
            String name = (String) value;
            Parameter param = (Parameter) element;
            ParametersContext ctx = getContextElement();

            if (isNewAndBlank(element, name)) {
                lastNewName = "";
                return;
            }

            if (!validateName(element, name)) {
                table.getDisplay().asyncExec(new Runnable() {

                    public void run() {
                        if (!table.isDisposed())
                            viewer.editElement(element, 0);
                    }
                });

                return;
            }

            if (param != newParameterItem) {
                if (!param.getName().equals(name)) {
                    Integer index = nameToIndex.get(param.getName());
                    nameToIndex.remove(param.getName());
                    nameToIndex.put(name, index);

                    param.setName(name);
                    viewer.update(element, NAME_PROPERTIES);
                }
            } else {
                final Parameter newParam = ParametersFactory.eINSTANCE.createParameter();
                newParam.setName(name);
                newParam.setValue("");

                nameToIndex.put(name, table.getItemCount() - 1);

                ctx.getParameters().add(newParam);
                viewer.add(newParam);

                viewer.setSelection(new StructuredSelection(newParam), true);
                table.getDisplay().asyncExec(new Runnable() {

                    public void run() {
                        viewer.editElement(newParam, 1);
                    }
                });
            }
        }

    });

    // --

    TableViewerColumn valueViewerColumn = new TableViewerColumn(viewer, valueColumn);
    valueViewerColumn.setLabelProvider(new ColumnLabelProvider() {
        public String getText(Object element) {
            Parameter p = (Parameter) element;
            return p.getValue();
        }
    });

    valueViewerColumn.setEditingSupport(new EditingSupport(viewer) {

        protected CellEditor getCellEditor(final Object element) {
            final TextCellEditor editor = new TextCellEditor(table);
            editor.getControl().addTraverseListener(new TraverseListener() {

                public void keyTraversed(TraverseEvent e) {
                    Text text = (Text) editor.getControl();

                    switch (e.detail) {
                    case SWT.TRAVERSE_TAB_PREVIOUS:
                        if (validateName(element, text.getText()))
                            viewer.editElement(element, 0);
                        e.detail = SWT.TRAVERSE_NONE;
                        e.doit = false;
                        break;
                    case SWT.TRAVERSE_ARROW_NEXT:
                        if (e.keyCode == SWT.ARROW_DOWN) {
                            if (table.getItemCount() > table.getSelectionIndex() + 1)
                                viewer.editElement(viewer.getElementAt(table.getSelectionIndex() + 1), 1);
                            e.detail = SWT.TRAVERSE_NONE;
                            e.doit = false;
                        }
                        break;
                    case SWT.TRAVERSE_ARROW_PREVIOUS:
                        if (e.keyCode == SWT.ARROW_UP) {
                            if (table.getSelectionIndex() > 0)
                                viewer.editElement(viewer.getElementAt(table.getSelectionIndex() - 1), 1);
                            e.detail = SWT.TRAVERSE_NONE;
                            e.doit = false;
                        }
                        break;
                    }
                }

            });
            return editor;
        }

        protected boolean canEdit(Object element) {
            return element != newParameterItem;
        }

        protected Object getValue(Object element) {
            Parameter p = (Parameter) element;
            return p.getValue();
        }

        protected void setValue(Object element, Object value) {
            Parameter p = (Parameter) element;
            String v = (String) value;
            if (!p.getValue().equals(v)) {
                p.setValue((String) value);
                viewer.update(element, VALUE_PROPERTIES);
            }
        }

    });

    // --

    updateIndexes();
    viewer.setComparator(new Comparator());

    // --

    viewer.setInput(getContextElement());

    return viewer;
}

From source file:org.eclipse.rcptt.ui.editors.ScenarioProperties.java

License:Open Source License

private TableViewer createTable(Composite parent, FormToolkit toolkit) {
    table = new Table(parent, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);
    GridDataFactory.fillDefaults().grab(true, true).hint(100, 50).applyTo(table);
    table.setHeaderVisible(true);//  w  w w  .ja va 2s  .  co  m
    toolkit.adapt(table);
    table.setLinesVisible(true);

    nameColumn = new TableColumn(table, SWT.LEFT);
    nameColumn.setText("Name");
    nameColumn.setWidth(200);
    nameColumn.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            sortBy(nameColumn);
        }
    });

    valueColumn = new TableColumn(table, SWT.LEFT);
    valueColumn.setText("Value");
    valueColumn.setWidth(350);
    valueColumn.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            sortBy(valueColumn);
        }
    });

    table.addKeyListener(new KeyAdapter() {

        public void keyPressed(KeyEvent e) {
            switch (e.keyCode) {
            case SWT.DEL:
                removeSelected();
                break;
            case SWT.INSERT:
                addNew();
                break;
            case SWT.CR:
            case SWT.F2:
                lastNewName = "";
                Object el = ((StructuredSelection) viewer.getSelection()).getFirstElement();
                if (el != null)
                    viewer.editElement(el, 0);
                else
                    viewer.editElement(newParameterItem, 0);
                break;
            }
        }
    });

    final TableViewer viewer = new TableViewer(table);

    table.addMouseListener(new MouseListener() {
        @Override
        public void mouseUp(MouseEvent e) {
        }

        @Override
        public void mouseDown(MouseEvent e) {
            TableItem item = table.getItem(new Point(e.x, e.y));
            if (item == null) {
                viewer.cancelEditing();
            }
        }

        @Override
        public void mouseDoubleClick(MouseEvent e) {
            // TODO Auto-generated method stub

        }
    });

    viewer.setContentProvider(new IStructuredContentProvider() {

        public void dispose() {
            // do nothing
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            // do nothing
        }

        public Object[] getElements(Object inputElement) {
            Scenario ctx = (Scenario) inputElement;

            List<ScenarioProperty> elements = new ArrayList<ScenarioProperty>();
            elements.addAll(ctx.getProperties());
            elements.add(newParameterItem);

            return elements.toArray();
        }

    });

    // --

    TableViewerColumn nameViewerColumn = new TableViewerColumn(viewer, nameColumn);
    nameViewerColumn.setLabelProvider(new ColumnLabelProvider() {

        public String getText(Object element) {
            ScenarioProperty p = (ScenarioProperty) element;
            return p.getName();
        }

        public Image getImage(Object element) {
            return element == newParameterItem
                    ? Images.getImageDescriptor(ISharedImages.IMG_OBJ_ADD).createImage()
                    : Images.getImage(Images.PARAMETER);
        }

        public Font getFont(Object element) {
            if (element == newParameterItem) {
                Font tableFont = table.getFont();
                FontData fd = tableFont.getFontData()[0];
                fd.setHeight(fd.getHeight() - 2);

                return new Font(tableFont.getDevice(), fd);
            } else
                return null;
        }
    });

    nameViewerColumn.setEditingSupport(new EditingSupport(viewer) {

        protected CellEditor getCellEditor(final Object element) {
            final Scenario scenario = getNamedElement();
            final List<SuggestionItem> suggestions = PropertySuggestionManager.getInstance()
                    .getScenarioProperties(scenario);
            final PropertyCellEditor editor = new PropertyCellEditor(table, suggestions) {
                public void completeEdit() {
                    viewer.applyEditorValue();
                };
            };
            editor.setFilterEnabled(false);
            editor.getControl().addTraverseListener(new TraverseListener() {

                public void keyTraversed(TraverseEvent e) {
                    Text text = (Text) editor.getControl();

                    switch (e.detail) {
                    case SWT.TRAVERSE_TAB_NEXT:
                        //                     if (validateName(element, text.getText()))
                        viewer.editElement(element, 1);
                        e.detail = SWT.TRAVERSE_NONE;
                        e.doit = false;
                        break;
                    }
                }

            });

            return editor;
        }

        protected boolean canEdit(Object element) {
            return true;
        }

        protected Object getValue(Object element) {
            if (lastNewName.length() > 0)
                return lastNewName;
            else if (element == newParameterItem)
                return "";
            else {
                ScenarioProperty p = (ScenarioProperty) element;
                return p.getName();
            }
        }

        protected void setValue(final Object element, Object value) {
            String name = (String) value;
            ScenarioProperty param = (ScenarioProperty) element;
            Scenario ctx = getNamedElement();

            if (isNewAndBlank(element, name)) {
                lastNewName = "";
                return;
            }

            //            if (!validateName(element, name)) {
            //               table.getDisplay().asyncExec(new Runnable() {
            //
            //                  public void run() {
            //                     if (!table.isDisposed())
            //                        viewer.editElement(element, 0);
            //                  }
            //               });

            //               return;
            //            }

            if (param != newParameterItem) {
                if (!param.getName().equals(name)) {
                    Integer index = nameToIndex.get(param.getName());
                    nameToIndex.remove(param.getName());
                    nameToIndex.put(name, index);

                    param.setName(name);
                    viewer.update(element, NAME_PROPERTIES);
                }
            } else {
                final ScenarioProperty newParam = ScenarioFactory.eINSTANCE.createScenarioProperty();
                newParam.setName(name);
                newParam.setValue("");

                nameToIndex.put(name, table.getItemCount() - 1);

                ctx.getProperties().add(newParam);
                viewer.add(newParam);

                viewer.setSelection(new StructuredSelection(newParam), true);
                table.getDisplay().asyncExec(new Runnable() {

                    public void run() {
                        viewer.editElement(newParam, 1);
                    }
                });
            }
        }

    });

    // --

    TableViewerColumn valueViewerColumn = new TableViewerColumn(viewer, valueColumn);
    valueViewerColumn.setLabelProvider(new ColumnLabelProvider() {
        public String getText(Object element) {
            ScenarioProperty p = (ScenarioProperty) element;
            return p.getValue();
        }
    });

    valueViewerColumn.setEditingSupport(new EditingSupport(viewer) {

        protected CellEditor getCellEditor(final Object element) {
            final ScenarioProperty param = (ScenarioProperty) element;
            final List<SuggestionItem> suggestions = PropertySuggestionManager.getInstance()
                    .getScenarioPropertySuggestions(param.getName());
            final PropertyCellEditor editor = new PropertyCellEditor(table, suggestions) {
                public void completeEdit() {
                    viewer.applyEditorValue();
                };
            };
            editor.setFilterEnabled(true);
            editor.getControl().addTraverseListener(new TraverseListener() {

                public void keyTraversed(TraverseEvent e) {
                    Text text = (Text) editor.getControl();

                    switch (e.detail) {
                    case SWT.TRAVERSE_TAB_PREVIOUS:
                        //                     if (validateName(element, text.getText()))
                        viewer.editElement(element, 0);
                        e.detail = SWT.TRAVERSE_NONE;
                        e.doit = false;
                        break;
                    }
                }

            });

            return editor;
        }

        protected boolean canEdit(Object element) {
            return element != newParameterItem;
        }

        protected Object getValue(Object element) {
            ScenarioProperty p = (ScenarioProperty) element;
            return p.getValue();
        }

        protected void setValue(Object element, Object value) {
            ScenarioProperty p = (ScenarioProperty) element;
            String v = (String) value;
            if (!p.getValue().equals(v)) {
                p.setValue((String) value);
                viewer.update(element, VALUE_PROPERTIES);
            }
        }

    });

    // --

    updateIndexes();
    viewer.setComparator(new Comparator());

    // --

    viewer.setInput(getNamedElement());

    return viewer;
}

From source file:org.eclipse.ui.views.tasklist.RemoveTaskAction.java

License:Open Source License

/**
 * Removes all the tasks in the current selection from the task list.
 *///w ww .j  av  a  2 s  . co  m
public void run() {
    TaskList taskList = getTaskList();
    TableViewer viewer = taskList.getTableViewer();
    IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
    if (selection.isEmpty()) {
        return;
    }
    taskList.cancelEditing();
    // get the index of the selected item which has focus
    Table table = viewer.getTable();
    int focusIndex = table.getSelectionIndex();
    List list = selection.toList();
    IMarker[] markers = new IMarker[list.size()];
    list.toArray(markers);
    IUndoableOperation op = new DeleteMarkersOperation(markers, TaskListMessages.RemoveTask_undoText);
    execute(op, TaskListMessages.RemoveTask_errorMessage, null, WorkspaceUndoUtil.getUIInfoAdapter(getShell()));
    // set the selection to be the one which took the place of the one with focus
    int count = table.getItemCount();
    if (focusIndex < count) {
        table.setSelection(focusIndex);
    } else if (count != 0) {
        table.setSelection(count - 1);
    }
    // update the viewer's selection, since setting the table selection does not notify the viewer
    viewer.setSelection(viewer.getSelection(), true);
}

From source file:org.jcryptool.actions.ui.handler.StartHandler.java

License:Open Source License

public IStatus execute(final ActionView view, final ActionItem startItem, final Shell shell,
        IProgressMonitor monitor) {/*from  w w  w .j ava 2 s  . c o m*/
    ActionCascade ac = view.getActionCascade();
    final TableViewer viewer = view.getViewer();

    LogUtil.logInfo("Running Action Cascade " + ac.getName()); //$NON-NLS-1$

    boolean start = false;
    for (final ActionItem a : ac.getAllItems()) {
        int steps = ac.getSize();

        // Start the execution at the first selected element
        if (a == startItem) {
            start = true;
            monitor.beginTask(a.getActionName(), steps);
        } else
            steps--;

        if (start) {
            if (monitor.isCanceled()) {
                return Status.CANCEL_STATUS;
            }

            try {
                boolean executed = false;

                // Set focus on moved row. Just look and feel ...
                display.asyncExec(new Runnable() {
                    public void run() {
                        viewer.setSelection(new StructuredSelection(a), true);
                    }
                });

                OperationsPlugin op = OperationsPlugin.getDefault();
                CommandInfo[] commands = op.getAlgorithmsManager().getShadowAlgorithmCommands();

                // Try to find an CryptoAlgorithm-Plug-in (Classic or Modern)
                for (int i = 0, length = commands.length; i < length; i++) {
                    if (commands[i].getHandler() != null
                            && a.getPluginId().equals(commands[i].getCommandId())) {
                        ((ShadowAlgorithmHandler) commands[i].getHandler()).run(convert(a));
                        executed = true;
                    }
                }

                // Try to find a FlexiProvider algorithm
                if (!executed) {
                    LogUtil.logInfo("Trying to execute FlexiProvider algorithm"); //$NON-NLS-1$
                    for (RegistryType rt : RegistryType.values()) {
                        if (rt.getName().equals(a.getPluginId())) {
                            AlgorithmDescriptor descriptor = new AlgorithmDescriptor(a.getActionName(), rt,
                                    null);

                            if (a.getParam("algorithm type").equals(RegistryType.BLOCK_CIPHER.getName())) { //$NON-NLS-1$
                                descriptor = new BlockCipherDescriptor(descriptor.getAlgorithmName(),
                                        a.getParam("mode"), a.getParam("padding scheme"), null, null); //$NON-NLS-1$ //$NON-NLS-2$
                            } else if (a.getParam("algorithm type") //$NON-NLS-1$
                                    .equals(RegistryType.SECURE_RANDOM.getName())) {
                                // TODO Get property "alphabet" from item
                                byte[][] alphabet = null;
                                if (alphabet == null) {
                                    descriptor = new SecureRandomDescriptor(descriptor.getAlgorithmName(),
                                            Integer.parseInt(a.getParam("random size"))); //$NON-NLS-1$
                                }
                            }

                            final IFlexiProviderOperation operation = new IntegratorOperation(descriptor);
                            operation.setInput(Messages.InputType);
                            operation.setOutput(Messages.StartHandler_6);
                            operation.setSignature(a.getParam("signature")); //$NON-NLS-1$

                            if ("encrypt".equals(a.getActionType())) { //$NON-NLS-1$
                                operation.setOperation(OperationType.ENCRYPT);
                            } else if ("decrypt".equals(a.getActionType())) { //$NON-NLS-1$
                                operation.setOperation(OperationType.DECRYPT);
                            } else if ("sign".equals(a.getActionType())) { //$NON-NLS-1$
                                operation.setOperation(OperationType.SIGN);
                            } else if ("verify".equals(a.getActionType())) { //$NON-NLS-1$
                                operation.setOperation(OperationType.VERIFY);
                            } else {
                                operation.setOperation(OperationType.UNKNOWN);
                            }

                            String alias = a.getParam("key alias"); //$NON-NLS-1$
                            if (alias != null) {
                                operation.setKeyStoreAlias(new KeyStoreAlias(alias));
                            }

                            String password = a.getParam("key password"); //$NON-NLS-1$
                            if (password != null) {
                                operation.setPassword(password.toCharArray());
                            }

                            display.asyncExec(new Runnable() {
                                public void run() {
                                    PerformOperationManager.getInstance().firePerformOperation(operation);
                                }
                            });
                            executed = true;
                        }
                    }
                }
                if (!executed) {
                    throw new Exception(Messages.StartHandler_2 + a.getPluginId());

                }
            } catch (final Exception e) {
                if (ActionsUIPlugin.getDefault().getPreferenceStore()
                        .getBoolean(PreferenceConstants.P_IGNORE_ERRORS)) {
                    LogUtil.logError(ActionsUIPlugin.PLUGIN_ID, a.getActionName() + ": " + e.getMessage(), e, //$NON-NLS-1$
                            false);
                    if (!ActionsUIPlugin.getDefault().getPreferenceStore()
                            .getBoolean(PreferenceConstants.P_DONT_SHOW_MESSAGES)) {
                        display.syncExec(new Runnable() {
                            public void run() {
                                MessageDialog.openWarning(shell, Messages.StartHandler_3, e.getMessage());
                            }
                        });
                    }
                } else {
                    display.asyncExec(new Runnable() {
                        public void run() {
                            MessageDialog.openError(shell, Messages.StartHandler_3,
                                    e.getMessage() + Messages.StartHandler_4); //$NON-NLS-1$
                        }
                    });
                    return Status.CANCEL_STATUS;
                }
            } finally {
                monitor.worked(ac.getSize() - steps);
            }
        }
    }
    monitor.done();
    return Status.OK_STATUS;
}