Example usage for org.eclipse.jface.viewers Viewer setInput

List of usage examples for org.eclipse.jface.viewers Viewer setInput

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers Viewer setInput.

Prototype

public abstract void setInput(Object input);

Source Link

Document

Sets or clears the input for this viewer.

Usage

From source file:ca.uvic.chisel.javasketch.ui.internal.presentation.JavaThreadSequenceView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    filterImages = new ImageDescriptor[4];
    ImageRegistry reg = SketchPlugin.getDefault().getImageRegistry();
    filterImages[0] = reg.getDescriptor(ISketchImageConstants.ICON_ELEMENT_VISIBLE);
    filterImages[1] = reg.getDescriptor(ISketchImageConstants.ICON_ELEMENT_VISIBLE + "2-3");
    filterImages[2] = reg.getDescriptor(ISketchImageConstants.ICON_ELEMENT_VISIBLE + "1-3");
    filterImages[3] = reg.getDescriptor(ISketchImageConstants.ICON_ELEMENT_FILTERED);
    Composite page = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout(1, false);
    page.setLayout(layout);//from w  w w . ja  v a2 s  .  co  m

    breadcrumb = new BreadCrumbViewer(page, SWT.BORDER);
    breadcrumb.setContentProvider(new BreadCrumbContentProvider());
    breadcrumb.setLabelProvider(new TraceThreadLabelProvider());

    breadcrumb.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

    viewer = new UMLSequenceViewer(page, SWT.V_SCROLL | SWT.H_SCROLL | SWT.VIRTUAL);

    viewer.setUseHashlookup(true);
    viewer.setContentProvider(new TraceThreadContentProvider());
    viewer.setLabelProvider(new TraceThreadLabelProvider());
    viewer.setMessageGrouper(new ASTMessageGrouper());
    viewer.addFilter(new ViewerFilter() {

        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            boolean reconFilter = SketchPlugin.getDefault().getPreferenceStore()
                    .getBoolean(ISketchPluginPreferences.DIAGRAM_RECON_HIDE);

            if (reconFilter && enableReconnaissanceAction.isChecked() && element instanceof ICall) {
                ICall call = (ICall) element;
                double interest = SketchPlugin.getDefault().getDOI().getInterest(call);
                if (interest < .3) {
                    return false;
                }
            }
            return true;
        }
    });
    internalSelectionListener = new InternalSelectionChangedListener();

    viewer.addSelectionChangedListener(internalSelectionListener);

    viewer.getControl().addMouseListener(new NavigateToCodeListener());
    viewer.getControl().setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE));
    viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    presentationListener = new PresentationListener();
    viewer.addSequenceListener(presentationListener);

    new BreadCrumbHook(breadcrumb, viewer);
    createTimeRange(page, thread);

    viewer.setInput(thread);

    createActions();
    createContextMenu();
    getViewSite().getActionBars().getToolBarManager().add(enableReconnaissanceAction);
    getViewSite().getActionBars().getMenuManager().add(toggleReconFilterAction);
    //add the drop-down menu
    IMenuManager manager = getViewSite().getActionBars().getMenuManager();
    manager.add(new Separator("presentation"));

    getViewSite().getPage().addSelectionListener(javaSelectionListener);
    selectionProvider = new InternalSelectionProvider();
    getViewSite().setSelectionProvider(selectionProvider);
    sketchListener = new ISketchEventListenerImplementation();
    SketchPlugin.getDefault().addSketchEventListener(sketchListener);
    SketchPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(preferenceListener);

}

From source file:ch.elexis.core.ui.dialogs.OrderImportDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    Composite mainArea = new Composite(parent, SWT.NONE);
    mainArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));
    mainArea.setLayout(new GridLayout());

    Composite scannerArea = new Composite(mainArea, SWT.NONE);
    scannerArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    scannerArea.setLayout(new GridLayout());

    Group scannerGroup = new Group(scannerArea, SWT.NONE);
    scannerGroup.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    scannerGroup.setLayout(new GridLayout(4, false));
    scannerGroup.setText("Einlesen mit Barcode-Scanner");

    diffSpinner = new Spinner(scannerGroup, SWT.NONE);
    diffSpinner.setMinimum(DIFF_SPINNER_MIN);
    diffSpinner.setSelection(DIFF_SPINNER_DEFAULT);

    Label eanLabel = new Label(scannerGroup, SWT.NONE);
    eanLabel.setText("EAN:");
    eanText = new ElexisText(scannerGroup, SWT.NONE);
    eanText.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));

    eanText.addKeyListener(new KeyAdapter() {
        @Override/*from  w  ww .  j  a  v  a2  s . c o m*/
        public void keyPressed(KeyEvent e) {
            if (e.character == SWT.CR) {
                applyScanner();
            }
        }
    });

    Button button = new Button(scannerGroup, SWT.PUSH);
    button.setText("bernehmen");
    button.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent e) {
            applyScanner();
        }

        public void widgetDefaultSelected(SelectionEvent e) {
            // do nothing
        }
    });

    Composite tableArea = new Composite(mainArea, SWT.NONE);
    tableArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));
    tableArea.setLayout(new GridLayout());

    viewer = new TableViewer(tableArea, SWT.FULL_SELECTION);
    Table table = viewer.getTable();
    table.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));
    table.setLinesVisible(true);
    table.setHeaderVisible(true);

    verifiedColor = table.getDisplay().getSystemColor(SWT.COLOR_DARK_GREEN);
    boldFont = createBoldFont(table.getFont());

    final TableViewerFocusCellManager mgr = new TableViewerFocusCellManager(viewer,
            new FocusCellOwnerDrawHighlighter(viewer));
    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(viewer) {
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && (event.keyCode == SWT.CR || event.character == ' '))
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };

    TableViewerEditor.create(viewer, mgr, actSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    createViewerColumns();

    viewer.setContentProvider(new ViewerContentProvider());
    viewer.setInput(this);
    viewer.setComparator(new ViewerComparator() {
        public int compare(Viewer viewer, Object e1, Object e2) {
            Artikel a1 = ((OrderElement) e1).getArticle();
            Artikel a2 = ((OrderElement) e2).getArticle();

            if (a1 != null && a2 != null) {
                return a1.getName().compareTo(a2.getName());
            }
            return 0;
        };
    });

    Composite cButtons = new Composite(mainArea, SWT.NONE);
    cButtons.setLayout(new GridLayout(2, false));
    final Button clickAllButton = new Button(cButtons, SWT.PUSH);
    clickAllButton.setText(ALLE_MARKIEREN);
    clickAllButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            boolean bv = true;
            if (clickAllButton.getText().equals(ALLE_MARKIEREN)) {
                bv = true;
                clickAllButton.setText("Alle demarkieren");
            } else {
                bv = false;
                clickAllButton.setText(ALLE_MARKIEREN);
            }

            for (OrderElement oe : orderElements) {
                oe.setVerified(bv);
            }
            viewer.refresh(true);
        }

    });
    Button importButton = new Button(cButtons, SWT.PUSH);
    GridData gd = new GridData(SWT.RIGHT, SWT.CENTER, false, false);
    importButton.setLayoutData(gd);
    importButton.setText("Lagerbestnde anpassen");
    importButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            doImport();
        }
    });
    cButtons.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    return mainArea;
}

From source file:ch.elexis.core.ui.views.SearchView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    parent.setLayout(new FillLayout());

    Composite main = new Composite(parent, SWT.NONE);
    main.setLayout(new GridLayout(1, false));

    tabFolder = new TabFolder(main, SWT.NONE);
    tabFolder.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    mainTabItem = new TabItem(tabFolder, SWT.NONE);
    mainTabItem.setText(Messages.SearchView_general); //$NON-NLS-1$
    Composite mainSearchArea = new Composite(tabFolder, SWT.NONE);
    mainTabItem.setControl(mainSearchArea);

    mainSearchArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    mainSearchArea.setLayout(new GridLayout(1, false));

    // text input box
    Composite mainInputArea = new Composite(mainSearchArea, SWT.NONE);
    mainInputArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    mainInputArea.setLayout(new GridLayout(2, false));

    Label searchTextLabel = new Label(mainInputArea, SWT.NONE);
    searchTextLabel.setLayoutData(SWTHelper.getFillGridData(2, true, 1, false));
    searchTextLabel.setText(Messages.SearchView_textToSearch); //$NON-NLS-1$

    mainSearchText = new Text(mainInputArea, SWT.BORDER);
    mainSearchText.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));

    mainCaseCheckbox = new Button(mainInputArea, SWT.CHECK);
    mainCaseCheckbox.setText(Messages.SearchView_honorCase); //$NON-NLS-1$

    // search options
    Composite mainOptionsArea = new Composite(mainSearchArea, SWT.NONE);
    mainOptionsArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    mainOptionsArea.setLayout(new GridLayout(2, true));

    Group typeGroup = new Group(mainOptionsArea, SWT.SHADOW_OUT);
    typeGroup.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    typeGroup.setLayout(new RowLayout());
    typeGroup.setText(Messages.SearchView_dosearch); //$NON-NLS-1$

    consultationRadio = new Button(typeGroup, SWT.RADIO);
    consultationRadio.setText(Messages.SearchView_consultations); //$NON-NLS-1$
    consultationRadio.setSelection(true);

    Group optionsGroup = new Group(mainOptionsArea, SWT.SHADOW_OUT);
    optionsGroup.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    optionsGroup.setLayout(new RowLayout());
    optionsGroup.setText(Messages.SearchView_limitTo); //$NON-NLS-1$

    consultationTextRadio = new Button(optionsGroup, SWT.RADIO);
    consultationTextRadio.setText(Messages.SearchView_entry); //$NON-NLS-1$
    consultationTextRadio.setSelection(true);

    searchButton = new Button(mainSearchArea, SWT.PUSH);
    searchButton.setText(Messages.SearchView_searchButtonCaption); //$NON-NLS-1$
    GridData gd = SWTHelper.getFillGridData(1, true, 1, false);
    gd.horizontalAlignment = GridData.END;
    searchButton.setLayoutData(gd);//from   ww  w  .  j  a  v  a2s.  c o  m

    searchButton.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent e) {
            viewer.refresh();
        }

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

    viewer = new TableViewer(main);
    Table table = viewer.getTable();
    table.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));

    viewer.setContentProvider(new IStructuredContentProvider() {
        public void dispose() {
            // nothing to do
        }

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

        public Object[] getElements(Object inputElement) {
            return mainSearch();
        }
    });

    // simple default label provider
    viewer.setLabelProvider(new LabelProvider() {
        public String getText(Object element) {
            if (element instanceof PersistentObject) {
                PersistentObject po = (PersistentObject) element;
                String type = "?"; //$NON-NLS-1$
                String label = ""; //$NON-NLS-1$
                if (po instanceof Konsultation) {
                    type = Messages.SearchView_consultation; //$NON-NLS-1$

                    Konsultation konsultation = (Konsultation) po;
                    Fall fall = konsultation.getFall();
                    Patient pat = fall.getPatient();
                    label = pat.getLabel() + " - " + fall.getLabel() + " - " //$NON-NLS-1$ //$NON-NLS-2$
                            + konsultation.getLabel();
                } else {
                    label = po.getLabel();
                }

                return type + " - " + label; //$NON-NLS-1$
            } else {
                return super.getText(element);
            }
        }
    });

    viewer.setInput(this.getSite());
}

From source file:ch.elexis.views.SearchView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    parent.setLayout(new FillLayout());

    Composite main = new Composite(parent, SWT.NONE);
    main.setLayout(new GridLayout(1, false));

    tabFolder = new TabFolder(main, SWT.NONE);
    tabFolder.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    mainTabItem = new TabItem(tabFolder, SWT.NONE);
    mainTabItem.setText(Messages.getString("SearchView.general")); //$NON-NLS-1$
    Composite mainSearchArea = new Composite(tabFolder, SWT.NONE);
    mainTabItem.setControl(mainSearchArea);

    mainSearchArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    mainSearchArea.setLayout(new GridLayout(1, false));

    // text input box
    Composite mainInputArea = new Composite(mainSearchArea, SWT.NONE);
    mainInputArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    mainInputArea.setLayout(new GridLayout(2, false));

    Label searchTextLabel = new Label(mainInputArea, SWT.NONE);
    searchTextLabel.setLayoutData(SWTHelper.getFillGridData(2, true, 1, false));
    searchTextLabel.setText(Messages.getString("SearchView.textToSearch")); //$NON-NLS-1$

    mainSearchText = new Text(mainInputArea, SWT.BORDER);
    mainSearchText.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));

    mainCaseCheckbox = new Button(mainInputArea, SWT.CHECK);
    mainCaseCheckbox.setText(Messages.getString("SearchView.honorCase")); //$NON-NLS-1$

    // search options
    Composite mainOptionsArea = new Composite(mainSearchArea, SWT.NONE);
    mainOptionsArea.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    mainOptionsArea.setLayout(new GridLayout(2, true));

    Group typeGroup = new Group(mainOptionsArea, SWT.SHADOW_OUT);
    typeGroup.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    typeGroup.setLayout(new RowLayout());
    typeGroup.setText(Messages.getString("SearchView.dosearch")); //$NON-NLS-1$

    consultationRadio = new Button(typeGroup, SWT.RADIO);
    consultationRadio.setText(Messages.getString("SearchView.consultations")); //$NON-NLS-1$
    consultationRadio.setSelection(true);

    Group optionsGroup = new Group(mainOptionsArea, SWT.SHADOW_OUT);
    optionsGroup.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));
    optionsGroup.setLayout(new RowLayout());
    optionsGroup.setText(Messages.getString("SearchView.limitTo")); //$NON-NLS-1$

    consultationTextRadio = new Button(optionsGroup, SWT.RADIO);
    consultationTextRadio.setText(Messages.getString("SearchView.entry")); //$NON-NLS-1$
    consultationTextRadio.setSelection(true);

    Button searchButton = new Button(mainSearchArea, SWT.PUSH);
    searchButton.setText(Messages.getString("SearchView.searchButtonCaption")); //$NON-NLS-1$
    GridData gd = SWTHelper.getFillGridData(1, true, 1, false);
    gd.horizontalAlignment = GridData.END;
    searchButton.setLayoutData(gd);/*from  w w  w .j a va 2  s .  c om*/

    searchButton.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent e) {
            viewer.refresh();
        }

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

    viewer = new TableViewer(main);
    Table table = viewer.getTable();
    table.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));

    viewer.setContentProvider(new IStructuredContentProvider() {
        public void dispose() {
            // nothing to do
        }

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

        public Object[] getElements(Object inputElement) {
            return mainSearch();
        }
    });

    // simple default label provider
    viewer.setLabelProvider(new LabelProvider() {
        public String getText(Object element) {
            if (element instanceof PersistentObject) {
                PersistentObject po = (PersistentObject) element;
                String type = "?"; //$NON-NLS-1$
                String label = ""; //$NON-NLS-1$
                if (po instanceof Konsultation) {
                    type = Messages.getString("SearchView.consultation"); //$NON-NLS-1$

                    Konsultation konsultation = (Konsultation) po;
                    Fall fall = konsultation.getFall();
                    Patient pat = fall.getPatient();
                    label = pat.getLabel() + " - " + fall.getLabel() + " - " //$NON-NLS-1$ //$NON-NLS-2$
                            + konsultation.getLabel();
                } else {
                    label = po.getLabel();
                }

                return type + " - " + label; //$NON-NLS-1$
            } else {
                return super.getText(element);
            }
        }
    });

    viewer.setInput(this.getSite());
}

From source file:com.amalto.workbench.dialogs.AnnotationOrderedListsDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {

    // Should not really be here but well,....

    parent.getShell().setText(this.title);

    Composite composite = (Composite) super.createDialogArea(parent);

    GridLayout layout = (GridLayout) composite.getLayout();
    layout.numColumns = 3;/*from   w w w  .jav a 2 s. c o  m*/
    layout.makeColumnsEqualWidth = false;
    // layout.verticalSpacing = 10;

    if (actionType == AnnotationWrite_ActionType || actionType == AnnotationHidden_ActionType) {
        textControl = new CCombo(composite, SWT.BORDER | SWT.READ_ONLY);

        // roles=Util.getCachedXObjectsNameSet(this.xObject, TreeObject.ROLE);
        roles = getAllRolesStr();
        ((CCombo) textControl).setItems(roles.toArray(new String[roles.size()]));

    } else if (actionType == AnnotationLookupField_ActionType
            || actionType == AnnotationPrimaKeyInfo_ActionType) {
        textControl = new CCombo(composite, SWT.BORDER | SWT.READ_ONLY);

        // roles=Util.getCachedXObjectsNameSet(this.xObject, TreeObject.ROLE);
        roles = getConceptElements();
        ((CCombo) textControl).setItems(roles.toArray(new String[roles.size()]));

    } else {
        if (actionType == AnnotationOrderedListsDialog.AnnotationSchematron_ActionType) {
            textControl = new Text(composite, SWT.BORDER | SWT.WRAP | SWT.V_SCROLL);
        } else {
            textControl = new Text(composite, SWT.BORDER | SWT.SINGLE);
        }
    }

    if (actionType == AnnotationOrderedListsDialog.AnnotationForeignKeyInfo_ActionType) {
        textControl.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    } else {
        if (actionType == AnnotationOrderedListsDialog.AnnotationSchematron_ActionType) {
            textControl.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 7));
        } else {
            textControl.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
        }
    }

    ((GridData) textControl.getLayoutData()).minimumWidth = 400;

    textControl.addKeyListener(new KeyListener() {

        public void keyPressed(KeyEvent e) {
        }

        public void keyReleased(KeyEvent e) {
            if ((e.stateMask == 0) && (e.character == SWT.CR)) {
                xPaths.add(AnnotationOrderedListsDialog.getControlText(textControl));
                viewer.refresh();
                fireXPathsChanges();
            }
        }
    });

    if (actionType == AnnotationOrderedListsDialog.AnnotationForeignKeyInfo_ActionType) {
        Button xpathButton = new Button(composite, SWT.PUSH | SWT.CENTER);
        xpathButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1));
        xpathButton.setText("...");//$NON-NLS-1$
        xpathButton.setToolTipText(Messages.AnnotationOrderedListsDialog_SelectXpath);
        xpathButton.addSelectionListener(new SelectionListener() {

            public void widgetDefaultSelected(SelectionEvent e) {

            }

            public void widgetSelected(SelectionEvent e) {
                XpathSelectDialog dlg = getNewXpathSelectDialog(parentPage, dataModelName);

                dlg.setLock(lock);

                dlg.setBlockOnOpen(true);

                dlg.open();

                if (dlg.getReturnCode() == Window.OK) {
                    ((Text) textControl).setText(dlg.getXpath());
                    dlg.close();
                }

            }

        });

    }

    Button addLabelButton = new Button(composite, SWT.PUSH);
    addLabelButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
    // addLabelButton.setText("Set");
    addLabelButton.setImage(ImageCache.getCreatedImage(EImage.ADD_OBJ.getPath()));
    addLabelButton.setToolTipText(Messages.AnnotationOrderedListsDialog_Add);
    addLabelButton.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
        };

        public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
            boolean exist = false;
            for (String string : xPaths) {
                if (string.equals(getControlText(textControl))) {
                    exist = true;
                }
            }
            if (!exist && getControlText(textControl) != null && getControlText(textControl) != "") {
                xPaths.add(getControlText(textControl));
            }
            viewer.refresh();
            fireXPathsChanges();
        };
    });

    final String COLUMN = columnName;

    viewer = new TableViewer(composite,
            SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);
    viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
    ((GridData) viewer.getControl().getLayoutData()).heightHint = 100;
    // Set up the underlying table
    Table table = viewer.getTable();
    // table.setLayoutData(new GridData(GridData.FILL_BOTH));

    new TableColumn(table, SWT.CENTER).setText(COLUMN);
    table.getColumn(0).setWidth(500);
    for (int i = 1, n = table.getColumnCount(); i < n; i++) {
        table.getColumn(i).pack();
    }

    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    // Create the cell editors --> We actually discard those later: not natural for an user
    CellEditor[] editors = new CellEditor[1];
    if (actionType == AnnotationOrderedListsDialog.AnnotationWrite_ActionType
            || actionType == AnnotationOrderedListsDialog.AnnotationHidden_ActionType
            || actionType == AnnotationLookupField_ActionType
            || actionType == AnnotationPrimaKeyInfo_ActionType) {
        editors[0] = new ComboBoxCellEditor(table, roles.toArray(new String[] {}), SWT.READ_ONLY);
    } else {
        editors[0] = new TextCellEditor(table);
    }

    viewer.setCellEditors(editors);

    // set the content provider
    viewer.setContentProvider(new IStructuredContentProvider() {

        public void dispose() {
        }

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

        public Object[] getElements(Object inputElement) {
            @SuppressWarnings("unchecked")
            ArrayList<String> xPaths = (ArrayList<String>) inputElement;
            ArrayList<DescriptionLine> lines = new ArrayList<DescriptionLine>();
            for (String xPath : xPaths) {
                DescriptionLine line = new DescriptionLine(xPath);
                lines.add(line);
            }
            // we return an instance line made of a Sring and a boolean
            return lines.toArray(new DescriptionLine[lines.size()]);
        }
    });

    // set the label provider
    viewer.setLabelProvider(new ITableLabelProvider() {

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

        public void dispose() {
        }

        public void addListener(ILabelProviderListener listener) {
        }

        public void removeListener(ILabelProviderListener listener) {
        }

        public String getColumnText(Object element, int columnIndex) {
            // System.out.println("getColumnText() "+columnIndex);
            DescriptionLine line = (DescriptionLine) element;
            switch (columnIndex) {
            case 0:
                return line.getLabel();
            }
            return "";//$NON-NLS-1$
        }

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

    // Set the column properties
    viewer.setColumnProperties(new String[] { COLUMN });

    // set the Cell Modifier
    viewer.setCellModifier(new ICellModifier() {

        public boolean canModify(Object element, String property) {
            // if (INSTANCE_ACCESS.equals(property)) return true; Deactivated
            return true;
            // return false;
        }

        public void modify(Object element, String property, Object value) {

            TableItem item = (TableItem) element;
            DescriptionLine line = (DescriptionLine) item.getData();
            String orgValue = line.getLabel();
            if (actionType != AnnotationWrite_ActionType && actionType != AnnotationHidden_ActionType
                    && actionType != AnnotationLookupField_ActionType
                    && actionType != AnnotationPrimaKeyInfo_ActionType) {
                int targetPos = xPaths.indexOf(value.toString());
                if (targetPos < 0) {
                    line.setLabel(value.toString());
                    int index = xPaths.indexOf(orgValue);
                    xPaths.remove(index);
                    xPaths.add(index, value.toString());
                    viewer.update(line, null);
                } else if (targetPos >= 0 && !value.toString().equals(orgValue)) {
                    MessageDialog.openInformation(null, Messages.Warning,
                            Messages.AnnotationOrderedListsDialog_ValueAlreadyExists);
                }
            } else {

                String[] attrs = roles.toArray(new String[] {});
                int index = Integer.parseInt(value.toString());
                if (index == -1) {
                    return;
                }
                value = attrs[index];
                int pos = xPaths.indexOf(value.toString());
                if (pos >= 0 && !(orgValue.equals(value))) {
                    MessageDialog.openInformation(null, Messages.Warning,
                            Messages.AnnotationOrderedListsDialog_);
                    return;
                } else if (pos < 0) {
                    line.setLabel(value.toString());
                    xPaths.set(index, value.toString());
                    viewer.update(line, null);
                }
            }

            fireXPathsChanges();
        }

        public Object getValue(Object element, String property) {
            DescriptionLine line = (DescriptionLine) element;
            String value = line.getLabel();

            if (actionType == AnnotationWrite_ActionType || actionType == AnnotationHidden_ActionType
                    || actionType == AnnotationLookupField_ActionType
                    || actionType == AnnotationPrimaKeyInfo_ActionType) {
                String[] attrs = roles.toArray(new String[] {});
                return Arrays.asList(attrs).indexOf(value);
            } else {
                return value;
            }

        }
    });

    // Listen for changes in the selection of the viewer to display additional parameters
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            DescriptionLine line = (DescriptionLine) ((IStructuredSelection) viewer.getSelection())
                    .getFirstElement();
            if (line != null) {
                if (textControl instanceof CCombo) {
                    ((CCombo) textControl).setText(line.getLabel());
                }
                if (textControl instanceof Text) {
                    ((Text) textControl).setText(line.getLabel());
                }
            }
        }
    });

    // display for Delete Key events to delete an instance
    viewer.getTable().addKeyListener(new KeyListener() {

        public void keyPressed(KeyEvent e) {
        }

        public void keyReleased(KeyEvent e) {
            // System.out.println("Table keyReleased() ");
            if ((e.stateMask == 0) && (e.character == SWT.DEL) && (viewer.getSelection() != null)) {
                DescriptionLine line = (DescriptionLine) ((IStructuredSelection) viewer.getSelection())
                        .getFirstElement();
                @SuppressWarnings("unchecked")
                ArrayList<String> xPaths = (ArrayList<String>) viewer.getInput();
                xPaths.remove(line.getLabel());
                viewer.refresh();
            }
        }
    });

    viewer.setInput(xPaths);
    viewer.refresh();

    Composite rightButtonsComposite = new Composite(composite, SWT.NULL);
    rightButtonsComposite.setLayout(new GridLayout(1, true));
    rightButtonsComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1));

    Button upButton = new Button(rightButtonsComposite, SWT.PUSH | SWT.CENTER);
    upButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1));
    upButton.setImage(ImageCache.getCreatedImage(EImage.PREV_NAV.getPath()));
    upButton.setToolTipText(Messages.AnnotationOrderedListsDialog_MoveUpTheItem);
    upButton.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
        };

        public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
            DescriptionLine line = (DescriptionLine) ((IStructuredSelection) viewer.getSelection())
                    .getFirstElement();
            if (line == null) {
                return;
            }
            int i = 0;
            for (String xPath : xPaths) {
                if (xPath.equals(line.getLabel())) {
                    if (i > 0) {
                        xPaths.remove(i);
                        xPaths.add(i - 1, xPath);
                        viewer.refresh();
                        viewer.getTable().setSelection(i - 1);
                        viewer.getTable().showSelection();
                        fireXPathsChanges();
                    }
                    return;
                }
                i++;
            }
        };
    });
    Button downButton = new Button(rightButtonsComposite, SWT.PUSH | SWT.CENTER);
    downButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1));
    downButton.setImage(ImageCache.getCreatedImage(EImage.NEXT_NAV.getPath()));
    downButton.setToolTipText(Messages.AnnotationOrderedListsDialog_MoveDownTheItem);
    downButton.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
        };

        public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
            DescriptionLine line = (DescriptionLine) ((IStructuredSelection) viewer.getSelection())
                    .getFirstElement();
            if (line == null) {
                return;
            }
            int i = 0;
            for (String xPath : xPaths) {
                if (xPath.equals(line.getLabel())) {
                    if (i < xPaths.size() - 1) {
                        xPaths.remove(i);
                        xPaths.add(i + 1, xPath);
                        viewer.refresh();
                        viewer.getTable().setSelection(i + 1);
                        viewer.getTable().showSelection();
                        fireXPathsChanges();
                    }
                    return;
                }
                i++;
            }
        };
    });
    Button delButton = new Button(rightButtonsComposite, SWT.PUSH | SWT.CENTER);
    delButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1));
    delButton.setImage(ImageCache.getCreatedImage(EImage.DELETE_OBJ.getPath()));
    delButton.setToolTipText(Messages.AnnotationOrderedListsDialog_DelTheItem);

    delButton.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
        };

        public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
            DescriptionLine line = (DescriptionLine) ((IStructuredSelection) viewer.getSelection())
                    .getFirstElement();
            if (line != null) {
                @SuppressWarnings("unchecked")
                ArrayList<String> xPaths = (ArrayList<String>) viewer.getInput();
                xPaths.remove(line.getLabel());
                viewer.refresh();
                fireXPathsChanges();
            }
        };
    });

    textControl.setFocus();
    if (actionType != AnnotationOrderedListsDialog.AnnotationForeignKeyInfo_ActionType
            && actionType != AnnotationOrderedListsDialog.AnnotationTargetSystems_ActionType
            && actionType != AnnotationOrderedListsDialog.AnnotationSchematron_ActionType
            && actionType != AnnotationOrderedListsDialog.AnnotationLookupField_ActionType
            && actionType != AnnotationOrderedListsDialog.AnnotationPrimaKeyInfo_ActionType) {
        checkBox = new Button(composite, SWT.CHECK);
        checkBox.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, true, 2, 1));
        checkBox.addSelectionListener(new SelectionListener() {

            public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
            };

            public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
                recursive = checkBox.getSelection();
            };
        });
        checkBox.setSelection(recursive);
        checkBox.setText(Messages.AnnotationOrderedListsDialog_SetRoleRecursively);
        // Label label = new Label(composite, SWT.LEFT);
        // label.setText("set role recursively");
        // label.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, true,
        // 1, 1));
    }

    if (actionType == AnnotationForeignKeyInfo_ActionType) {
        createFKInfoFormatComp(composite);
        addDoubleClickListener();
    }

    return composite;
}

From source file:com.amalto.workbench.widgets.TisTableViewer.java

License:Open Source License

@Override
protected void createViewer() {
    super.createTable();
    GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
    table.setLayoutData(gd);//from  w  w w.j a  va 2  s.  c  o m
    gd.heightHint = 80;
    // Up Down Delete button group
    Composite stepUpDownComposite = toolkit.createComposite(mainComposite, SWT.NONE);
    stepUpDownComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
    GridLayout layout = new GridLayout(8, false);
    layout.marginTop = 0;
    layout.marginBottom = 0;
    layout.marginHeight = 0;
    stepUpDownComposite.setLayout(layout);
    //
    addButton = toolkit.createButton(stepUpDownComposite, "", SWT.PUSH | SWT.CENTER);//$NON-NLS-1$
    addButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
    addButton.setToolTipText(Messages.Add);
    if (isXpath()) {
        addButton.setImage(ImageCache.getCreatedImage(EImage.ADD_NEWXPATH.getPath()));
    } else {
        addButton.setImage(ImageCache.getCreatedImage(EImage.ADD_OBJ.getPath()));
    }
    addButton.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
        };

        @SuppressWarnings("unchecked")
        public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {

            // check uniqueness by concatenating all the values
            List<Line> list = (List<Line>) getViewer().getInput();
            // Update the model
            Line line = new Line(columns.toArray(new ComplexTableViewerColumn[columns.size()]),
                    getInitValues());
            list.add(line);
            viewer.setInput(list);
            // update the instances viewer
            viewer.setSelection(null);
            viewer.refresh();
            viewer.getTable().select(viewer.getTable().getItemCount() - 1);
            markDirty();
        };
    });
    // Add Multi
    if (isAddMulti()) {
        Button selNewPathButton = toolkit.createButton(stepUpDownComposite, "", SWT.PUSH | SWT.CENTER);//$NON-NLS-1$
        selNewPathButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
        selNewPathButton.setToolTipText(Messages.AddMultiple);
        selNewPathButton.setImage(ImageCache.getCreatedImage(EImage.SELECT_NEWXPATH.getPath()));
        selNewPathButton.addSelectionListener(new SelectionListener() {

            public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
            };

            @SuppressWarnings("unchecked")
            public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {

                xpathDialog = getNewXpathDlgInstance();
                xpathDialog.setConceptName(conceptName);
                xpathDialog.setBlockOnOpen(true);
                xpathDialog.open();

                if (xpathDialog.getReturnCode() == Window.OK) {
                    datamodelName = xpathDialog.getDataModelName();
                    String[] xpaths = xpathDialog.getXpath().split("&");//$NON-NLS-1$
                    List<Line> list = new LinkedList<Line>();
                    for (String xpath : xpaths) {
                        // check uniqueness by concatenating all the values
                        list = (List<Line>) getViewer().getInput();
                        // Update the model
                        Line line = new Line(columns.toArray(new ComplexTableViewerColumn[columns.size()]),
                                getLineValues(xpath, 0));
                        list.add(line);
                    }
                    viewer.setInput(list);
                    // update the instances viewer
                    viewer.setSelection(null);
                    viewer.refresh();
                    viewer.getTable().select(viewer.getTable().getItemCount() - 1);

                    markDirty();
                }
            };
        });
    }
    deleteButton = toolkit.createButton(stepUpDownComposite, "", SWT.PUSH | SWT.CENTER);//$NON-NLS-1$
    deleteButton.setToolTipText(Messages.DeleteSelectedItem);
    deleteButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
    deleteButton.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
        };

        @SuppressWarnings("unchecked")
        public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
            List<Line> input = (List<Line>) viewer.getInput();
            TableItem[] items = viewer.getTable().getSelection();
            for (int i = 0; i < items.length; i++) {
                input.remove(items[i].getData());
            }
            viewer.setInput(input);
            markDirty();
        };
    });
    deleteButton.setImage(ImageCache.getCreatedImage(EImage.DELETE_OBJ.getPath()));
    // delete all
    Button deleteAllButton = toolkit.createButton(stepUpDownComposite, "", SWT.PUSH | SWT.CENTER);//$NON-NLS-1$
    deleteAllButton.setToolTipText(Messages.DeleteAllItems);
    deleteAllButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
    deleteAllButton.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
        };

        @SuppressWarnings("unchecked")
        public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
            List<Line> items = (List<Line>) viewer.getInput();
            items.clear();
            viewer.setInput(items);
            viewer.refresh();
            markDirty();
        };
    });
    deleteAllButton.setImage(ImageCache.getCreatedImage(EImage.PROGRESS_REMALL.getPath()));

    upButton = toolkit.createButton(stepUpDownComposite, "", SWT.PUSH | SWT.CENTER);//$NON-NLS-1$
    upButton.setToolTipText(Messages.MoveUpSelectedItem);
    upButton.setImage(ImageCache.getCreatedImage(EImage.PREV_NAV.getPath()));
    upButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
    upButton.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
        };

        @SuppressWarnings("unchecked")
        public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
            int index = viewer.getTable().getSelectionIndex();
            if (index > 0 && index < viewer.getTable().getItemCount()) {
                // commit as we go
                if (mainPage != null) {
                    mainPage.setComitting(true);
                }
                List<Line> items = (List<Line>) viewer.getInput();
                Line line = items.get(index);
                items.remove(index);
                items.add(index - 1, line);

                viewer.refresh();

                if (mainPage != null) {
                    mainPage.setComitting(false);
                }
                markDirty();
            }
        };
    });
    downButton = toolkit.createButton(stepUpDownComposite, "", SWT.PUSH | SWT.CENTER);//$NON-NLS-1$
    downButton.setToolTipText(Messages.MovedownSelectedItem);
    downButton.setImage(ImageCache.getCreatedImage(EImage.NEXT_NAV.getPath()));
    downButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
    downButton.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
        };

        @SuppressWarnings("unchecked")
        public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
            int index = viewer.getTable().getSelectionIndex();
            if (index >= 0 && index < viewer.getTable().getItemCount() - 1) {
                // commit as we go
                if (mainPage != null) {
                    mainPage.setComitting(true);
                }
                List<Line> items = (List<Line>) viewer.getInput();
                Line line = items.get(index);
                items.remove(index);
                items.add(index + 1, line);
                // viewer.setInput(items);
                viewer.refresh();
                // TODO
                if (mainPage != null) {
                    mainPage.setComitting(false);
                }
                markDirty();
            }
        };
    });

    copyButton = toolkit.createButton(stepUpDownComposite, "", SWT.PUSH | SWT.CENTER);//$NON-NLS-1$
    copyButton.setToolTipText(Messages.CopySelectedItems);
    copyButton.setImage(ImageCache.getCreatedImage(EImage.COPY.getPath()));
    copyButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
    copyButton.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(SelectionEvent e) {

        }

        public void widgetSelected(SelectionEvent e) {
            int[] indexs = viewer.getTable().getSelectionIndices();
            List<Line> copyLines = new ArrayList<Line>();
            for (int index : indexs) {
                if (index >= 0 && index <= viewer.getTable().getItemCount() - 1) {
                    List<Line> items = (List<Line>) viewer.getInput();
                    Line line = items.get(index);
                    Line copyLine = line.clone();
                    copyLines.add(copyLine);
                }
            }
            if (indexs.length > 0) {
                // enable all paste buttons
                HashSet<Button> btns = pastBtns.get(String.valueOf(columns.size()));
                if (btns != null) {
                    for (Button btn : btns) {
                        if (btn != null) {
                            btn.setEnabled(true);
                        }
                    }
                }
                // add to workbenchclipboard
                WorkbenchClipboard.getWorkbenchClipboard().setLines(String.valueOf(columns.size()), copyLines);
            }
        }
    });
    pastButton = toolkit.createButton(stepUpDownComposite, "", SWT.PUSH | SWT.CENTER);//$NON-NLS-1$
    pastButton.setToolTipText(Messages.PasteSelectedItem);
    pastButton.setImage(ImageCache.getCreatedImage(EImage.PASTE.getPath()));
    pastButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
    pastButton.setEnabled(false);
    pastButton.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
        };

        @SuppressWarnings("unchecked")
        public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
            if (mainPage != null) {
                mainPage.setComitting(true);
            }
            boolean dirty = false;
            List<Line> items = (List<Line>) viewer.getInput();
            List<Line> cacheLine = WorkbenchClipboard.getWorkbenchClipboard()
                    .getLines(String.valueOf(columns.size()));
            List<Line> coloneLine = new ArrayList<Line>();
            for (Line l : cacheLine) {
                coloneLine.add(l.clone());
            }
            if (cacheLine.size() > 0) {
                items.addAll(coloneLine);
                dirty = true;
            }
            viewer.refresh();
            // TODO
            if (mainPage != null) {
                mainPage.setComitting(false);
            }
            if (dirty) {
                markDirty();
            }
        };
    });
    HashSet<Button> btns = pastBtns.get(String.valueOf(columns.size()));
    if (btns == null) {
        btns = new HashSet<Button>();
        pastBtns.put(String.valueOf(columns.size()), btns);
    }
    btns.add(pastButton);
    // Create the cell editors --> We actually discard those later: not natural for an user
    CellEditor[] editors = new CellEditor[columns.size()];
    for (int i = 0; i < columns.size(); i++) {
        if (columns.get(i).isText()) {
            editors[i] = new TextCellEditor(table);
        } else if (columns.get(i).isCombo()) {
            editors[i] = new ComboBoxCellEditor(table, columns.get(i).getComboValues(), SWT.READ_ONLY);
        } else if (columns.get(i).isXPATH()) {
            editors[i] = new XpathCellEditor(table, validators.get(columns.get(i)));
        } else if (columns.get(i).isMultiMessage()) {
            editors[i] = new MultiMessageEditor(table);
            multiMsg.setColumn(table.getColumn(i));
        } else if (columns.get(i).isValidationRule()) {
            editors[i] = createValidationRuleEditor();
            validationRule.setColumn(table.getColumn(i));
        }
    }
    viewer.setCellEditors(editors);

    // set the content provider
    viewer.setContentProvider(new IStructuredContentProvider() {

        public void dispose() {
        }

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

        @SuppressWarnings("unchecked")
        public Object[] getElements(Object inputElement) {
            ArrayList<Line> lines = (ArrayList<Line>) inputElement;
            return lines.toArray(new Line[lines.size()]);
        }
    });

    // set the label provider
    viewer.setLabelProvider(new ITableLabelProvider() {

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

        public void dispose() {
        }

        public void addListener(ILabelProviderListener listener) {
        }

        public void removeListener(ILabelProviderListener listener) {
        }

        public String getColumnText(Object element, int columnIndex) {
            Line line = (Line) element;
            if (columnIndex >= 0 && columnIndex < columns.size()) {
                for (KeyValue keyvalue : line.keyValues) {
                    if (keyvalue.key.equals(columns.get(columnIndex).getName())) {
                        String val = keyvalue.value;
                        if (columns.get(columnIndex).isNillable()) {
                            if (columns.get(columnIndex).getNillValue().equals(val)) {
                                val = columns.get(columnIndex).getNillDisplay();
                            }
                        }
                        return val;
                    }
                }
            }
            return "";//$NON-NLS-1$
        }

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

    // Set the column properties
    ArrayList<String> columnNames = new ArrayList<String>();
    for (ComplexTableViewerColumn column : columns) {
        columnNames.add(column.getName());
    }
    viewer.setColumnProperties(columnNames.toArray(new String[columnNames.size()]));

    // set the Cell Modifier
    viewer.setCellModifier(new ICellModifier() {

        public boolean canModify(Object element, String property) {
            return editable;
        }

        @SuppressWarnings("unchecked")
        public void modify(Object element, String property, Object value) {
            if (value instanceof Integer) {
                if (Integer.valueOf(value.toString()) == -1) {
                    return;
                }
            }
            // modify the text and combo cell value
            TableItem item = (TableItem) element;
            Line line = (Line) item.getData();
            int columnIndex = Arrays.asList(viewer.getColumnProperties()).indexOf(property);
            if (columnIndex >= 0 && columnIndex < viewer.getColumnProperties().length) {
                if (isAColumnWithCombo(columnIndex)) {
                    String[] attrs = columns.get(columnIndex).getComboValues();
                    value = attrs[Integer.parseInt(value.toString())];
                }
                KeyValue kv = line.keyValues.get(columnIndex);
                boolean noChange = kv.value.equals(value.toString());
                kv.value = value.toString();
                viewer.refresh();
                if (!noChange) {
                    markDirty();
                }
            }
        }

        public Object getValue(Object element, String property) {
            int columnIndex = Arrays.asList(viewer.getColumnProperties()).indexOf(property);
            Line line = (Line) element;
            // add getting value from combo
            if (isAColumnWithCombo(columnIndex)) {
                String value = line.keyValues.get(columnIndex).value;
                String[] attrs = columns.get(columnIndex).getComboValues();
                return Arrays.asList(attrs).indexOf(value);
            }
            for (KeyValue keyvalue : line.keyValues) {
                if (property.equals(keyvalue.key)) {
                    if (keyvalue.value.equals("")) {//$NON-NLS-1$
                        return columns.get(columnIndex).getNillDisplay();
                    }
                    return keyvalue.value;
                }
            }
            return null;
        }

        private boolean isAColumnWithCombo(int columnIdx) {
            return columns.get(columnIdx).isCombo();
        }

    });

    // display for Delete Key events to delete an instance
    viewer.getTable().addKeyListener(new KeyListener() {

        public void keyPressed(KeyEvent e) {
        }

        @SuppressWarnings("unchecked")
        public void keyReleased(KeyEvent e) {
            if ((e.stateMask == 0) && (e.character == SWT.DEL) && (viewer.getSelection() != null)) {
                Line line = (Line) ((IStructuredSelection) viewer.getSelection()).getFirstElement();
                // update the underlying role and refresh the table
                // update the underlying model
                List<Line> items = (List<Line>) viewer.getInput();
                items.remove(line);
                // refresh
                viewer.refresh();
                // mark for update
                markDirty();
            }
        }
    });
    // add dispose listener
    viewer.getTable().addDisposeListener(new DisposeListener() {

        public void widgetDisposed(DisposeEvent e) {
            HashSet<Button> btns = pastBtns.get(String.valueOf(columns.size()));
            btns.remove(pastButton);
        }
    });
}

From source file:com.bdaum.zoom.ui.internal.dialogs.EditStructDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    Composite area = (Composite) super.createDialogArea(parent);
    Composite comp = new Composite(area, SWT.NONE);
    comp.setLayoutData(new GridData(GridData.FILL_BOTH));
    comp.setLayout(new GridLayout());
    viewer = new TableViewer(parent,
            SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
    Table table = viewer.getTable();// w w w . j a  v  a 2s  . com
    table.setLayoutData(new GridData(GridData.FILL_BOTH));
    table.setLinesVisible(true);
    table.setHeaderVisible(true);
    TableViewerColumn col1 = new TableViewerColumn(viewer, SWT.NONE);
    col1.getColumn().setWidth(200);
    col1.getColumn().setText(Messages.EditStructDialog_name);
    col1.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof QueryField) {
                QueryField qf = (QueryField) element;
                return !readonly && qf.isEditable((Asset) null) ? Format.EDITABLEINDICATOR + qf.getLabel()
                        : qf.getLabel(); // $NON-NLS-1$
            }
            return null;
        }
    });
    TableViewerColumn col2 = new TableViewerColumn(viewer, SWT.NONE);
    col2.getColumn().setWidth(400);
    col2.getColumn().setText(Messages.EditStructDialog_value);
    col2.setLabelProvider(new ValueColumnLabelProvider());
    col2.setEditingSupport(new ViewEditingSupport(viewer));
    viewer.setContentProvider(new ViewContentProvider());
    // viewer.setComparator(new ViewComparator());
    if (fields != null)
        viewer.setFilters(new ViewerFilter[] { new ViewerFilter() {
            @Override
            public boolean select(Viewer viewer, Object parentElement, Object element) {
                for (QueryField qfield : fields) {
                    if (qfield == element)
                        return true;
                }
                return false;
            }
        } });
    viewer.setInput(qfield);
    return area;
}

From source file:com.bdaum.zoom.ui.internal.dialogs.VocabEnforceDialog.java

License:Open Source License

@SuppressWarnings("unused")
@Override//  w  w  w  .jav a  2 s  .c o m
protected Control createDialogArea(Composite parent) {
    Composite area = (Composite) super.createDialogArea(parent);
    Composite composite = new Composite(area, SWT.NONE);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    composite.setLayout(new GridLayout(2, false));
    viewer = CheckboxTableViewer.newCheckList(composite, SWT.BORDER | SWT.V_SCROLL);
    GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
    layoutData.heightHint = 400;
    layoutData.widthHint = 250;
    viewer.getTable().setLayoutData(layoutData);
    viewer.setContentProvider(ArrayContentProvider.getInstance());
    viewer.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof String[]) {
                String[] change = (String[]) element;
                if (change[1] == null)
                    return NLS.bind(Messages.VocabEnforceDialog_delete, change[0]);
                return NLS.bind(Messages.VocabEnforceDialog_replace, change[0], change[1]);
            }
            return null;
        }
    });
    viewer.setComparator(new ZViewerComparator() {
        @Override
        public int compare(Viewer viewer, Object o1, Object o2) {
            if (o1 instanceof String[] && o2 instanceof String[])
                return UiUtilities.stringComparator.compare(((String[]) o1)[0], ((String[]) o2)[0]);
            return super.compare(viewer, o1, o2);
        }
    });
    viewer.setInput(changes);
    viewer.setAllChecked(true);
    new AllNoneGroup(composite, new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            viewer.setAllChecked(e.widget.getData() == AllNoneGroup.ALL);
        }
    });
    buttonGroup = new RadioButtonGroup(composite, null, SWT.HORIZONTAL,
            Messages.VocabEnforceDialog_apply_to_images, Messages.VocabEnforceDialog_apply_to_catalog);
    buttonGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
    buttonGroup.setSelection(0);
    return area;
}

From source file:com.iw.plugins.spindle.ui.wizards.source.MoveImplicitAttributesPage.java

License:Mozilla Public License

private void handleLeftRightChange(Viewer fromViewer, Object changeObject) {

    IStructuredSelection selection = null;
    if (changeObject instanceof ISelection) {

        selection = (IStructuredSelection) changeObject;
    } else {//from  w  w w .j  a va 2  s .c  o  m

        selection = new StructuredSelection(changeObject);
    }

    List fromList = null;
    List toList = null;
    TableViewer toViewer = null;
    if (fromViewer == fAttributesThatStayViewer) {

        fromList = fAttributesThatStay;
        toList = fAttributesThatMove;
        toViewer = fAttributesThatMoveViewer;
    } else {

        fromList = fAttributesThatMove;
        toList = fAttributesThatStay;
        toViewer = fAttributesThatStayViewer;
    }

    if (!selection.isEmpty()) {

        List selectedObjects = selection.toList();
        fromList.removeAll(selectedObjects);
        toList.addAll(selectedObjects);
        fromViewer.setInput(fromList);
        toViewer.setInput(toViewer);
        toViewer.getControl().setFocus();
        toViewer.setSelection(selection);
    }
    updateButtonsEnabled();
    updateStatus();
}

From source file:com.iw.plugins.spindle.wizards.migrate.DefinePagesComponentsPage.java

License:Mozilla Public License

private void handleChange(Viewer fromViewer, Object changeObject) {

    IStructuredSelection selection = null;
    if (changeObject instanceof ISelection) {

        selection = (IStructuredSelection) changeObject;
    } else {//from   w w w . java  2s  .  co  m

        selection = new StructuredSelection(changeObject);
    }

    List fromList = null;
    List toList = null;
    TableViewer toViewer = null;
    if (fromViewer == componentViewer) {

        fromList = componentList;
        toList = pageList;
        toViewer = pageViewer;
    } else {

        fromList = pageList;
        toList = componentList;
        toViewer = componentViewer;
    }

    if (!selection.isEmpty()) {

        List selectedObjects = selection.toList();
        fromList.removeAll(selectedObjects);
        toList.addAll(selectedObjects);
        fromViewer.setInput(fromList);
        toViewer.setInput(toViewer);
        toViewer.getControl().setFocus();
        toViewer.setSelection(selection);
        updateButtonsEnabled();
    }
}