Example usage for org.eclipse.jface.viewers TableViewerColumn TableViewerColumn

List of usage examples for org.eclipse.jface.viewers TableViewerColumn TableViewerColumn

Introduction

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

Prototype

public TableViewerColumn(TableViewer viewer, int style, int index) 

Source Link

Document

Creates a new viewer column for the given TableViewer on a new TableColumn with the given style bits.

Usage

From source file:com.archimatetool.editor.propertysections.UserPropertiesSection.java

License:Open Source License

private void createTableControl(Composite parent) {
    // Table Composite
    Composite tableComp = createTableComposite(parent, SWT.NULL);
    fTableLayout = (UpdatingTableColumnLayout) tableComp.getLayout();

    // Table Viewer
    fTableViewer = new TableViewer(tableComp, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION);

    fTableViewer.getTable().setHeaderVisible(true);
    fTableViewer.getTable().setLinesVisible(true);

    addDragSupport();//from   www.j  a  v  a 2s  . co m
    addDropSupport();

    // Help ID on table
    PlatformUI.getWorkbench().getHelpSystem().setHelp(fTableViewer.getTable(), HELP_ID);

    // Columns
    TableViewerColumn columnBlank = new TableViewerColumn(fTableViewer, SWT.NONE, 0);
    fTableLayout.setColumnData(columnBlank.getColumn(), new ColumnPixelData(24, false));

    TableViewerColumn columnKey = new TableViewerColumn(fTableViewer, SWT.NONE, 1);
    columnKey.getColumn().setText(Messages.UserPropertiesSection_0);
    fTableLayout.setColumnData(columnKey.getColumn(), new ColumnWeightData(20, true));
    columnKey.setEditingSupport(new KeyEditingSupport(fTableViewer));

    // Click on Key Table Header
    columnKey.getColumn().addListener(SWT.Selection, new Listener() {
        @Override
        public void handleEvent(Event event) {
            sortKeys();
        }
    });

    TableViewerColumn columnValue = new TableViewerColumn(fTableViewer, SWT.NONE, 2);
    columnValue.getColumn().setText(Messages.UserPropertiesSection_1);
    fTableLayout.setColumnData(columnValue.getColumn(), new ColumnWeightData(80, true));
    columnValue.setEditingSupport(new ValueEditingSupport(fTableViewer));

    // Content Provider
    fTableViewer.setContentProvider(new IStructuredContentProvider() {
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }

        public void dispose() {
        }

        public Object[] getElements(Object inputElement) {
            return ((IProperties) inputElement).getProperties().toArray();
        }
    });

    // Label Provider
    fTableViewer.setLabelProvider(new LabelCellProvider());

    // Toolbar
    ToolBar toolBar = new ToolBar(parent, SWT.FLAT | SWT.VERTICAL);
    GridDataFactory.fillDefaults().align(SWT.END, SWT.TOP).applyTo(toolBar);

    ToolBarManager toolBarmanager = new ToolBarManager(toolBar);

    // New Property
    fActionNewProperty = new Action(Messages.UserPropertiesSection_2) {
        @Override
        public void run() {
            if (isAlive()) {
                int index = -1;
                IProperty selected = (IProperty) ((IStructuredSelection) fTableViewer.getSelection())
                        .getFirstElement();
                if (selected != null) {
                    index = fPropertiesElement.getProperties().indexOf(selected) + 1;
                }
                IProperty property = IArchimateFactory.eINSTANCE.createProperty();
                getCommandStack()
                        .execute(new NewPropertyCommand(fPropertiesElement.getProperties(), property, index));
                fTableViewer.editElement(property, 1);
            }
        }

        @Override
        public String getToolTipText() {
            return getText();
        }

        @Override
        public ImageDescriptor getImageDescriptor() {
            return IArchimateImages.ImageFactory.getImageDescriptor(IArchimateImages.ICON_PLUS);
        }
    };

    // New Multiple Properties
    fActionNewMultipleProperty = new Action(Messages.UserPropertiesSection_3) {
        @Override
        public void run() {
            if (isAlive()) {
                MultipleAddDialog dialog = new MultipleAddDialog(fPage.getSite().getShell());
                if (dialog.open() == Window.OK) {
                    getCommandStack().execute(dialog.getCommand());
                }
            }
        }

        @Override
        public String getToolTipText() {
            return getText();
        }

        @Override
        public ImageDescriptor getImageDescriptor() {
            return IArchimateImages.ImageFactory.getImageDescriptor(IArchimateImages.ICON_MUTIPLE);
        }
    };

    // Remove Property
    fActionRemoveProperty = new Action(Messages.UserPropertiesSection_4) {
        @Override
        public void run() {
            if (isAlive()) {
                CompoundCommand compoundCmd = new EObjectNonNotifyingCompoundCommand(fPropertiesElement) {
                    @Override
                    public String getLabel() {
                        return getCommands().size() > 1 ? Messages.UserPropertiesSection_5
                                : Messages.UserPropertiesSection_6;
                    }
                };
                for (Object o : ((IStructuredSelection) fTableViewer.getSelection()).toList()) {
                    Command cmd = new RemovePropertyCommand(fPropertiesElement.getProperties(), (IProperty) o);
                    compoundCmd.add(cmd);
                }
                getCommandStack().execute(compoundCmd);
            }
        }

        @Override
        public String getToolTipText() {
            return getText();
        }

        @Override
        public ImageDescriptor getImageDescriptor() {
            return IArchimateImages.ImageFactory.getImageDescriptor(IArchimateImages.ICON_SMALL_X);
        }
    };
    fActionRemoveProperty.setEnabled(false);

    // Manage
    fActionShowKeyEditor = new Action(Messages.UserPropertiesSection_7) {
        @Override
        public void run() {
            if (isAlive()) {
                UserPropertiesManagerDialog dialog = new UserPropertiesManagerDialog(fPage.getSite().getShell(),
                        getArchimateModel());
                dialog.open();
            }
        }

        @Override
        public String getToolTipText() {
            return getText();
        }

        @Override
        public ImageDescriptor getImageDescriptor() {
            return IArchimateImages.ImageFactory.getImageDescriptor(IArchimateImages.ICON_COG);
        }
    };

    toolBarmanager.add(fActionNewProperty);
    toolBarmanager.add(fActionNewMultipleProperty);
    toolBarmanager.add(fActionRemoveProperty);
    toolBarmanager.add(fActionShowKeyEditor);
    toolBarmanager.update(true);

    /*
     * Selection Listener
     */
    fTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            fActionRemoveProperty.setEnabled(!event.getSelection().isEmpty());
        }
    });

    /*
     * Table Double-click on cell
     */
    fTableViewer.getTable().addListener(SWT.MouseDoubleClick, new Listener() {
        @Override
        public void handleEvent(Event event) {
            // Get Table item
            TableItem item = fTableViewer.getTable().getItem(new Point(event.x, event.y));
            // Double-click into empty table creates new Property
            if (item == null) {
                fActionNewProperty.run();
            }
            // Handle selected item property double-clicked
            else {
                if (item.getData() instanceof IProperty) {
                    handleDoubleClick((IProperty) item.getData());
                }
            }
        }
    });

    hookContextMenu();
}

From source file:com.microsoft.tfs.client.common.ui.controls.TeamProjectTable.java

License:Open Source License

public TeamProjectTable(final Composite parent, final int style, final boolean showIcons) {
    super(parent, (SWT.CHECK | style), ProjectInfo.class, null);

    final TableColumnData[] columnData = new TableColumnData[] { new TableColumnData(
            Messages.getString("TeamProjectTable.ColumnNameProject"), 100, 1.00F, PROJECT_COLUMN), //$NON-NLS-1$
    };/*from   w  w w .jav  a2 s  .c  o  m*/

    setupTable(false, false, columnData);

    final TableViewerColumn projectColumnViewer = new TableViewerColumn(getViewer(), SWT.None, 0);
    projectColumnViewer.setLabelProvider(new ProjectColumnLabelProvider(showIcons));

    setUseDefaultContentProvider();
    setEnableTooltips(false);

    /*
     * Ensure the select all item sorts first.
     */
    final TableViewerSorter sorter = new TableViewerSorter(getViewer());
    sorter.setCategoryProvider(new CategoryProvider() {
        @Override
        public int getCategory(final Object element) {
            if (element == SELECT_ALL_SPECIAL_PROJECT_INFO) {
                return 0;
            }

            return 1;
        }
    });

    sorter.setComparator(PROJECT_COLUMN, new Comparator<ProjectInfo>() {

        @Override
        public int compare(final ProjectInfo o1, final ProjectInfo o2) {
            if (o1 == SELECT_ALL_SPECIAL_PROJECT_INFO) {
                return -1;
            }

            if (o2 == SELECT_ALL_SPECIAL_PROJECT_INFO) {
                return 1;
            }

            return o1.getName().compareToIgnoreCase(o2.getName());
        }
    });

    getViewer().setSorter(sorter);

    getViewer().setComparer(new IElementComparer() {
        @Override
        public boolean equals(final Object a, final Object b) {
            if (a instanceof ProjectInfo && b instanceof ProjectInfo) {
                return ((ProjectInfo) a).getGUID().equals(((ProjectInfo) b).getGUID());
            }

            return a.equals(b);
        }

        @Override
        public int hashCode(final Object element) {
            if (element instanceof ProjectInfo) {
                return ((ProjectInfo) element).getGUID().hashCode();
            }

            return element.toString().hashCode();
        }
    });

    ((CheckboxTableViewer) getViewer()).addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(final CheckStateChangedEvent event) {
            final CheckboxTableViewer viewer = (CheckboxTableViewer) getViewer();

            /*
             * "Select all" item was checked: apply check state to all the
             * other elements.
             */
            if (event.getElement().equals(SELECT_ALL_SPECIAL_PROJECT_INFO)) {
                if (event.getChecked()) {
                    setCheckedElements(removeNotValidVC(getProjects()));
                } else {
                    setCheckedElements(new ProjectInfo[0]);
                }
            } else {
                if (!hasValidVC(event.getElement())) {
                    viewer.setChecked(event.getElement(), false);
                    setCheckedElements(removeNotValidVC(getCheckedElements()));
                }
            }

            updateSelectAllCheckState();
        }
    });
}

From source file:gov.va.isaac.mdht.otf.ui.properties.OTFTableViewer.java

License:Apache License

protected TableViewerColumn createTableViewerColumn(String header, int width, int idx) {
    TableViewerColumn column = new TableViewerColumn(this, SWT.LEFT, idx);
    column.getColumn().setText(header);/*  w  w w.  j a v  a  2s.  c om*/
    column.getColumn().setWidth(width);
    column.getColumn().setResizable(true);
    column.getColumn().setMoveable(true);

    return column;
}