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

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

Introduction

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

Prototype

public ColumnWeightData(int weight, boolean resizable) 

Source Link

Document

Creates a column width with the given weight and a default minimum width.

Usage

From source file:au.gov.ga.earthsci.common.ui.color.ColorMapEditor.java

License:Apache License

private void addEntriesList(Composite parent) {
    Composite tableContainer = new Composite(parent, SWT.NONE);
    GridData gd = new GridData(GridData.FILL_BOTH);
    gd.horizontalSpan = 2;//  w  ww.  j av  a2  s  .  c o m
    tableContainer.setLayoutData(gd);
    TableColumnLayout layout = new TableColumnLayout();
    tableContainer.setLayout(layout);

    // Not sure why, but columns and column label providers only work when SWT.VIRTUAL is used
    entriesTable = new TableViewer(tableContainer, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER | SWT.VIRTUAL);
    entriesTable.setContentProvider(ArrayContentProvider.getInstance());
    entriesTable.getTable().setHeaderVisible(true);
    entriesTable.getTable().setLinesVisible(true);
    entriesTable.setInput(map.getEntries().entrySet());

    TableViewerColumn valueColumn = new TableViewerColumn(entriesTable, SWT.NONE);
    valueColumn.getColumn().setText(Messages.ColorMapEditor_TableValueColumnLabel);
    valueColumn.setLabelProvider(new ColumnLabelProvider() {
        @SuppressWarnings("unchecked")
        @Override
        public String getText(Object element) {
            Double value = ((Entry<Double, Color>) element).getKey();
            String result = "" + value; //$NON-NLS-1$
            if (map.isPercentageBased()) {
                result += " (" + (int) (value * 100) + "%)"; //$NON-NLS-1$ //$NON-NLS-2$
            }
            return result;
        }
    });
    layout.setColumnData(valueColumn.getColumn(), new ColumnPixelData(80, false));

    TableViewerColumn colorNameColumn = new TableViewerColumn(entriesTable, SWT.NONE);
    colorNameColumn.getColumn().setText(Messages.ColorMapEditor_TableColorColumnLabel);
    colorNameColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            Color color = getColorFromElement(element);
            return "RGBA(" + color.getRed() + ", " //$NON-NLS-1$ //$NON-NLS-2$
                    + color.getGreen() + ", " //$NON-NLS-1$
                    + color.getBlue() + ", " //$NON-NLS-1$
                    + color.getAlpha() + ")"; //$NON-NLS-1$
        }

        @Override
        public String getToolTipText(Object element) {
            return "#" + getColorKey(getColorFromElement(element)); //$NON-NLS-1$
        }

        @SuppressWarnings("unchecked")
        private Color getColorFromElement(Object element) {
            return ((Entry<Double, Color>) element).getValue();
        }

        private String getColorKey(Color color) {
            return Integer.toHexString(color.getRGB());
        }

    });
    layout.setColumnData(colorNameColumn.getColumn(), new ColumnWeightData(100, false));

    ColumnViewerToolTipSupport.enableFor(entriesTable, ToolTip.NO_RECREATE);
}

From source file:ca.hc11337.gui.cpuview.HC11337CPUView.java

License:Open Source License

public HC11337CPUView(Composite parent, int style) {
    Group cpu = new Group(parent, 0);
    cpu.setText("CPU");
    cpu.setLayout(new FillLayout());
    cpuViewer = new TableViewer(cpu, style);
    TableLayout layout = new TableLayout();
    layout.addColumnData(new ColumnWeightData(40, false));
    layout.addColumnData(new ColumnWeightData(60, true));
    cpuViewer.getTable().setLayout(layout);
    cpuViewer.getTable().setLinesVisible(true);
    cpuViewer.getTable().setHeaderVisible(true);
    cpuViewer.getTable().setToolTipText("CPU");
    cpuViewer.setContentProvider(new CPUViewContentProvider());
    cpuViewer.setLabelProvider(new CPUViewLabelProvider());
    cpuViewer.getTable().setFont(new Font(Display.getCurrent(), "Monospace", 10, SWT.NORMAL));

    TableColumn column1 = new TableColumn(cpuViewer.getTable(), SWT.CENTER);
    column1.setText("Register");
    TableColumn column2 = new TableColumn(cpuViewer.getTable(), SWT.LEFT);
    column2.setText("Value");
}

From source file:ca.hc11337.gui.fileselector.HC11337FileSelector.java

License:Open Source License

public HC11337FileSelector(Composite parent, HC11337Controller controller, int style) {
    fileViewer = new TableViewer(parent, style);
    TableLayout layout = new TableLayout();
    layout.addColumnData(new ColumnWeightData(100, true));
    fileViewer.getTable().setLayout(layout);
    fileViewer.getTable().setHeaderVisible(true);
    fileViewer.setContentProvider(new FileSelectorContentProvider());
    fileViewer.setLabelProvider(new FileSelectorLabelProvider());
    fileViewer.setInput(new File("workspace"));

    class DoubleClickListener implements IDoubleClickListener {
        private HC11337Controller controller;

        public DoubleClickListener(HC11337Controller controller) {
            this.controller = controller;
        }// w w w  .j  a v  a2s.co  m

        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            File file = (File) selection.getFirstElement();
            if (getExtension(file).equals("asm")) {
                controller.openFile(file);
                File binary = new File("workspace/" + getNameMinusExtension(file) + ".s19");
                controller.loadBinary(binary);
            } else
                controller.loadBinary(file);
        }

        private String getNameMinusExtension(File file) {
            String nameExt = file.getName();
            String ext = getExtension(file);
            return nameExt.substring(0, nameExt.length() - ext.length() - 1);
        }

        private String getExtension(File file) {
            String name = file.getName();
            String extension = "";
            int i = name.length() - 1;
            do {
                extension = name.charAt(i) + extension;
                i--;
            } while (name.charAt(i) != '.');

            return extension.toLowerCase();
        }
    }

    fileViewer.addDoubleClickListener(new DoubleClickListener(controller));

    TableColumn column1 = new TableColumn(fileViewer.getTable(), SWT.LEFT);
    column1.setText("Source Files");
}

From source file:ca.hc11337.gui.memoryview.HC11337Memory.java

License:Open Source License

public HC11337Memory(Composite parent, int style) {
    memViewer = new TableViewer(parent, style);
    TableLayout layout = new TableLayout();
    layout.addColumnData(new ColumnWeightData(3, false));
    for (int i = 1; i <= 0x10; i++)
        layout.addColumnData(new ColumnWeightData(2, false));
    memViewer.getTable().setLayout(layout);
    memViewer.getTable().setLinesVisible(true);
    memViewer.getTable().setHeaderVisible(true);
    memViewer.getTable().setToolTipText("Memory");
    memViewer.setContentProvider(new MemoryViewContentProvider());
    memViewer.setLabelProvider(new MemoryViewLabelProvider());

    for (int i = 0; i <= 0x10; i++) {
        columns[i] = new TableColumn(memViewer.getTable(), SWT.LEFT);
    }//from   w  w  w  . j  a v  a  2 s  .co m

    for (int i = 1; i <= 0x10; i++) {
        columns[i].setText(Integer.toHexString(i - 1));
    }

    /*for(int i = 1; i <= 0x10; i++)
       new TableColumn(memViewer.getTable(), SWT.CENTER);*/
    //column1.setText("Address");
    /*TableColumn column2 = new TableColumn(memViewer.getTable(), SWT.LEFT);
    column2.setText("Value");*/
}

From source file:ca.hc11337.gui.stackview.HC11337StackView.java

License:Open Source License

public HC11337StackView(Composite parent, int style) {
    Group stack = new Group(parent, 0);
    stack.setText("Stack");
    stack.setLayout(new FillLayout());
    stackViewer = new TableViewer(stack, 0);
    TableLayout layout = new TableLayout();
    //layout.addColumnData(new ColumnWeightData(40, false));
    layout.addColumnData(new ColumnWeightData(60, true));
    stackViewer.getTable().setLayout(layout);
    stackViewer.getTable().setLinesVisible(true);
    stackViewer.getTable().setHeaderVisible(true);
    stackViewer.getTable().setToolTipText("Stack");
    stackViewer.setContentProvider(new StackViewContentProvider());
    stackViewer.setLabelProvider(new StackViewLabelProvider());
    stackViewer.getTable().setFont(new Font(Display.getCurrent(), "Monospace", 10, SWT.NORMAL));

    //TableColumn column1 = new TableColumn(stackViewer.getTable(), SWT.CENTER);
    //column1.setText("Address");
    TableColumn column2 = new TableColumn(stackViewer.getTable(), SWT.LEFT);
    column2.setText("Value");
}

From source file:ca.hc11337.gui.watchedmemory.HC11337WatchedMem.java

License:Open Source License

public HC11337WatchedMem(Composite parent, int style) {
    Group memory = new Group(parent, 0);
    memory.setText("Watched Memory");
    memory.setLayout(new FillLayout());
    final TableViewer memViewer = new TableViewer(memory, 0);
    TableLayout layout = new TableLayout();
    layout.addColumnData(new ColumnWeightData(40, false));
    layout.addColumnData(new ColumnWeightData(60, true));
    memViewer.getTable().setLayout(layout);
    memViewer.getTable().setLinesVisible(true);
    memViewer.getTable().setHeaderVisible(true);
    memViewer.getTable().setToolTipText("Watched Memory");

    TableColumn column1 = new TableColumn(memViewer.getTable(), SWT.CENTER);
    column1.setText("Name");
    TableColumn column2 = new TableColumn(memViewer.getTable(), SWT.LEFT);
    column2.setText("Value");
}

From source file:ccw.preferences.HoverPreferencePage.java

License:Open Source License

/**
 * Creates page for hover preferences.//from  www . j  av  a  2s.  co  m
 *
 * @param parent
 *            the parent composite
 * @return the control for the preference page
 */
public Control createContents(Composite parent) {

    ScrolledPageContent scrolled = new ScrolledPageContent(parent, SWT.H_SCROLL | SWT.V_SCROLL);
    scrolled.setExpandHorizontal(true);
    scrolled.setExpandVertical(true);

    Composite cointainerComposite = new Composite(scrolled, SWT.NONE);
    FillLayout fillLayout = new FillLayout(SWT.VERTICAL);
    cointainerComposite.setLayout(fillLayout);

    // Hover Table
    Composite hoverComposite = new Composite(cointainerComposite, SWT.NONE);

    fHoverTableViewer = CheckboxTableViewer.newCheckList(hoverComposite,
            SWT.H_SCROLL | SWT.V_SCROLL | SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION | SWT.CHECK);
    ColumnViewerToolTipSupport.enableFor(fHoverTableViewer, ToolTip.NO_RECREATE);

    // Cell Editor
    fHoverModifierStringTextCellEditor = new TextCellEditor(fHoverTableViewer.getTable());

    // Setup
    fHoverTableViewer.setUseHashlookup(true);
    fHoverTableViewer.getTable().setHeaderVisible(true);
    fHoverTableViewer.getTable().setLinesVisible(true);

    TableColumnLayout layout = new TableColumnLayout();
    hoverComposite.setLayout(layout);

    TableViewerColumn viewerColumn = new TableViewerColumn(fHoverTableViewer, SWT.NONE);
    TableColumn column = viewerColumn.getColumn();
    column.setText(Messages.HoverPreferencePage_labelColumnTitle);
    column.setResizable(true);
    column.setMoveable(true);
    column.setResizable(true);
    layout.setColumnData(column, new ColumnWeightData(35, true));

    fModifierTableViewerColumn = new TableViewerColumn(fHoverTableViewer, SWT.NONE);
    column = fModifierTableViewerColumn.getColumn();
    column.setText(Messages.HoverPreferencePage_modifierColumnTitle);
    column.setResizable(true);
    column.setMoveable(true);
    layout.setColumnData(column, new ColumnWeightData(25, true));

    viewerColumn = new TableViewerColumn(fHoverTableViewer, SWT.NONE);
    column = viewerColumn.getColumn();
    column.setText(Messages.HoverPreferencePage_descriptionColumnTitle);
    column.setResizable(true);
    column.setMoveable(true);
    layout.setColumnData(column, new ColumnWeightData(40, true));

    // Summary
    Composite summaryComposite = new Composite(cointainerComposite, SWT.NONE);
    summaryComposite.setLayout(new FillLayout(SWT.HORIZONTAL));

    fGrpSummary = new Group(summaryComposite, SWT.NONE);
    GridLayout gridLayout = new GridLayout(2, false);
    gridLayout.marginLeft = 4;
    gridLayout.marginRight = 4;
    gridLayout.horizontalSpacing = 8;
    gridLayout.verticalSpacing = 8;
    gridLayout.marginTop = 4;
    gridLayout.marginHeight = 0;
    gridLayout.marginWidth = 0;
    fGrpSummary.setLayout(gridLayout);

    // Summary Label
    fSummaryHoverNameLabel = new Label(fGrpSummary, SWT.HORIZONTAL);
    GridData fieldLayoutData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
    fieldLayoutData.widthHint = 120;
    fSummaryHoverNameLabel.setLayoutData(fieldLayoutData);

    // Summary Modifier String
    fSummaryHoverModifierStringText = new Text(fGrpSummary, SWT.BORDER);
    fieldLayoutData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
    fieldLayoutData.widthHint = 120;
    fSummaryHoverModifierStringText.setLayoutData(fieldLayoutData);

    // Summary Description
    fSummaryHoverDescriptionLabel = new Label(fGrpSummary, SWT.BORDER | SWT.WRAP);
    fieldLayoutData = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
    fieldLayoutData.heightHint = 100;
    fieldLayoutData.horizontalSpan = 2;
    fSummaryHoverDescriptionLabel.setLayoutData(fieldLayoutData);

    summaryComposite.pack();

    // End Summary

    scrolled.setContent(cointainerComposite);
    final Point size = cointainerComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT);
    scrolled.setMinSize(size.x, size.y);

    Dialog.applyDialogFont(scrolled);

    initDataBindings();

    return scrolled;
}

From source file:ch.elexis.core.ui.contacts.preferences.BezugsKontaktSettings.java

License:Open Source License

@Override
protected Control createContents(Composite parent) {
    updateExistingEntriesIds.clear();/*from www .  jav a 2  s . c  o m*/
    Composite container = new Composite(parent, SWT.NULL);
    container.setLayout(new GridLayout(1, false));

    Group group = new Group(container, SWT.NONE);
    group.setLayout(new GridLayout(1, false));
    group.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    group.setText(Messages.Bezugskontakt_Definition);

    Composite composite = new Composite(group, SWT.NONE);
    GridData gd_composite = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
    gd_composite.heightHint = 300;
    composite.setLayoutData(gd_composite);
    TableColumnLayout tcl_composite = new TableColumnLayout();
    composite.setLayout(tcl_composite);

    tableViewer = new TableViewer(composite, SWT.BORDER | SWT.FULL_SELECTION);
    tableViewer.setContentProvider(ArrayContentProvider.getInstance());

    tableBezugsKontaktRelations = tableViewer.getTable();
    tableBezugsKontaktRelations.setHeaderVisible(true);
    tableBezugsKontaktRelations.setLinesVisible(true);

    if (allowEditing) {
        Menu menu = new Menu(tableBezugsKontaktRelations);
        tableBezugsKontaktRelations.setMenu(menu);

        MenuItem mntmAddBezugsKontaktRelation = new MenuItem(menu, SWT.NONE);
        mntmAddBezugsKontaktRelation.setText(Messages.Bezugskontakt_Add);
        mntmAddBezugsKontaktRelation.setImage(Images.IMG_NEW.getImage());
        mntmAddBezugsKontaktRelation.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                BezugsKontaktRelation bezugsKontaktRelation = new BezugsKontaktRelation("",
                        RelationshipType.AGENERIC, RelationshipType.AGENERIC);
                tableViewer.add(bezugsKontaktRelation);
                tableViewer.setSelection(new StructuredSelection(bezugsKontaktRelation));
            }
        });

        MenuItem mntmRemoveBezugsKontaktRelation = new MenuItem(menu, SWT.NONE);
        mntmRemoveBezugsKontaktRelation.setText(Messages.Bezugskontakt_Delete);
        mntmRemoveBezugsKontaktRelation.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                int selectionsIdx = tableViewer.getTable().getSelectionIndex();
                if (selectionsIdx != -1) {
                    boolean ret = MessageDialog.openQuestion(UiDesk.getTopShell(),
                            Messages.Bezugskontakt_ConfirmDelete, Messages.Bezugskontakt_ConfirmDeleteText);
                    if (ret) {
                        tableViewer.getTable().remove(selectionsIdx);
                    }
                }
            }
        });
    }

    TableViewerColumn viewCol = new TableViewerColumn(tableViewer, SWT.NONE);
    TableColumn col = viewCol.getColumn();
    tcl_composite.setColumnData(col, new ColumnWeightData(1, 140));
    col.setText(Messages.BezugsKonktat_Reference);
    col.setToolTipText(Messages.Bezugskontakt_ReferenceTooltip);
    viewCol.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            BezugsKontaktRelation s = (BezugsKontaktRelation) cell.getElement();
            if (s == null)
                return;
            cell.setText(s.getName());
        }
    });
    viewCol.setEditingSupport(new EditingSupport(tableViewer) {

        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof BezugsKontaktRelation) {
                String newName = String.valueOf(value);
                BezugsKontaktRelation tableData = null;
                for (TableItem tableItem : tableViewer.getTable().getItems()) {
                    tableData = (BezugsKontaktRelation) tableItem.getData();
                    if (tableData != null && !tableData.equals(element) && !tableData.getName().isEmpty()
                            && newName.equalsIgnoreCase(tableData.getName())) {
                        MessageDialog.openError(UiDesk.getTopShell(), "",
                                Messages.Bezugskontakt_NameMustBeUnique);
                        return;
                    }
                }
                BezugsKontaktRelation bezugsKontaktRelation = (BezugsKontaktRelation) element;
                if (!bezugsKontaktRelation.getName().equals(newName)) {
                    bezugsKontaktRelation.setName(newName);
                    getViewer().update(bezugsKontaktRelation, null);
                    openConfirmUpdateExistingData(bezugsKontaktRelation);
                }
            }

        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof BezugsKontaktRelation) {
                return ((BezugsKontaktRelation) element).getName();
            }
            return null;
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            return new TextCellEditor(tableViewer.getTable());
        }

        @Override
        protected boolean canEdit(Object element) {
            return allowEditing;
        }
    });

    viewCol = new TableViewerColumn(tableViewer, SWT.NONE);
    col = viewCol.getColumn();
    tcl_composite.setColumnData(col, new ColumnWeightData(0, 140));
    col.setText(Messages.Bezugskontakt_RelationFrom);
    viewCol.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            BezugsKontaktRelation s = (BezugsKontaktRelation) cell.getElement();
            if (s == null)
                return;
            cell.setText(LocalizeUtil.getLocaleText(s.getDestRelationType()));
        }
    });
    viewCol.setEditingSupport(new EditingSupport(tableViewer) {

        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof BezugsKontaktRelation && value instanceof Integer) {
                BezugsKontaktRelation bezugsKontaktRelation = (BezugsKontaktRelation) element;
                RelationshipType[] allRelationshipTypes = RelationshipType.values();
                if ((int) value != -1 && !bezugsKontaktRelation.getDestRelationType()
                        .equals(allRelationshipTypes[(int) value])) {
                    bezugsKontaktRelation.setDestRelationType(allRelationshipTypes[(int) value]);
                    getViewer().update(bezugsKontaktRelation, null);
                    openConfirmUpdateExistingData(bezugsKontaktRelation);
                }
            }

        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof BezugsKontaktRelation) {
                BezugsKontaktRelation bezugsKontaktRelation = (BezugsKontaktRelation) element;
                RelationshipType relationshipType = bezugsKontaktRelation.getDestRelationType();
                if (relationshipType != null) {
                    return relationshipType.getValue();
                }
            }

            return 0;
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            return new ComboBoxCellEditor(tableViewer.getTable(), BezugsKontaktAuswahl.getBezugKontaktTypes(),
                    SWT.NONE);
        }

        @Override
        protected boolean canEdit(Object element) {
            return allowEditing;
        }
    });

    viewCol = new TableViewerColumn(tableViewer, SWT.NONE);
    col = viewCol.getColumn();
    tcl_composite.setColumnData(col, new ColumnWeightData(0, 140));
    col.setText(Messages.Bezugskontakt_RelationTo);

    viewCol.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            BezugsKontaktRelation s = (BezugsKontaktRelation) cell.getElement();
            if (s == null)
                return;
            cell.setText(LocalizeUtil.getLocaleText(s.getSrcRelationType()));
        }
    });
    viewCol.setEditingSupport(new EditingSupport(tableViewer) {

        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof BezugsKontaktRelation && value instanceof Integer) {
                BezugsKontaktRelation bezugsKontaktRelation = (BezugsKontaktRelation) element;
                RelationshipType[] allRelationshipTypes = RelationshipType.values();
                if ((int) value != -1 && !bezugsKontaktRelation.getSrcRelationType()
                        .equals(allRelationshipTypes[(int) value])) {
                    bezugsKontaktRelation.setSrcRelationType(allRelationshipTypes[(int) value]);
                    getViewer().update(bezugsKontaktRelation, null);
                    openConfirmUpdateExistingData(bezugsKontaktRelation);
                }
            }
        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof BezugsKontaktRelation) {
                BezugsKontaktRelation bezugsKontaktRelation = (BezugsKontaktRelation) element;
                RelationshipType relationshipType = bezugsKontaktRelation.getSrcRelationType();
                if (relationshipType != null) {
                    return relationshipType.getValue();
                }
            }

            return 0;
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            return new ComboBoxCellEditor(tableViewer.getTable(), BezugsKontaktAuswahl.getBezugKontaktTypes(),
                    SWT.NONE);
        }

        @Override
        protected boolean canEdit(Object element) {
            return allowEditing;
        }
    });
    ;
    tableViewer
            .setInput(loadBezugKonkaktTypes(CoreHub.globalCfg.get(Patientenblatt2.CFG_BEZUGSKONTAKTTYPEN, "")));
    return container;
}

From source file:ch.elexis.core.ui.laboratory.preferences.LaborPrefs.java

License:Open Source License

protected Control createContents(Composite parn) {
    noDefaultAndApplyButton();/*from w  ww  .  jav  a2  s.  c  o  m*/

    Composite tableComposite = new Composite(parn, SWT.NONE);
    GridData gd = new GridData();
    tableComposite.setLayoutData(gd);
    TableColumnLayout tableColumnLayout = new TableColumnLayout();
    tableComposite.setLayout(tableColumnLayout);
    tableViewer = new TableViewer(tableComposite, SWT.BORDER | SWT.FULL_SELECTION);
    table = tableViewer.getTable();

    for (int i = 0; i < headers.length; i++) {
        TableColumn tc = new TableColumn(table, SWT.LEFT);
        tc.setText(headers[i]);
        tableColumnLayout.setColumnData(tc, new ColumnWeightData(colwidth[i], true));
        tc.setData(i);
        tc.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                sortC = (Integer) ((TableColumn) e.getSource()).getData();
                tableViewer.refresh(true);
            }

        });
    }
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    table.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));
    tableViewer.setContentProvider(new IStructuredContentProvider() {

        public Object[] getElements(Object inputElement) {
            return LabItem.getLabItems().toArray();
        }

        public void dispose() {
        }

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

    });
    tableViewer.setLabelProvider(new LabListLabelProvider());
    tableViewer.addDoubleClickListener(new IDoubleClickListener() {

        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection sel = (IStructuredSelection) tableViewer.getSelection();
            Object o = sel.getFirstElement();
            if (o instanceof LabItem) {
                LabItem li = (LabItem) o;
                EditLabItemUi.executeWithParams(li);
                tableViewer.refresh();
            }
        }

    });
    tableViewer.setSorter(new ViewerSorter() {

        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            LabItem li1 = (LabItem) e1;
            LabItem li2 = (LabItem) e2;
            String s1 = "", s2 = ""; //$NON-NLS-1$ //$NON-NLS-2$
            switch (sortC) {
            case 1:
                s1 = li1.getKuerzel();
                s2 = li2.getKuerzel();
                break;
            case 3:
                s1 = li1.getTyp().toString();
                s2 = li2.getTyp().toString();
                break;
            case 7:
                s1 = li1.getGroup();
                s2 = li2.getGroup();
                break;
            default:
                s1 = li1.getName();
                s2 = li2.getName();
            }
            int res = s1.compareToIgnoreCase(s2);
            if (res == 0) {
                try {
                    Integer no1 = Integer.parseInt(li1.getPrio());
                    Integer no2 = Integer.parseInt(li2.getPrio());

                    return no1.compareTo(no2);
                } catch (NumberFormatException nfe) {
                    return li1.getPrio().compareToIgnoreCase(li2.getPrio());
                }
            }
            return res;
        }

    });

    int operations = DND.DROP_COPY;
    Transfer[] transferTypes = new Transfer[] { TextTransfer.getInstance() };
    tableViewer.addDragSupport(operations, transferTypes, new DragSourceAdapter() {

        @Override
        public void dragSetData(DragSourceEvent event) {
            IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection();
            LabItem labItem = (LabItem) selection.getFirstElement();
            if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
                event.data = labItem.getKuerzel() + "," + labItem.getName() + "," + labItem.getId();
            }
        }
    });

    tableViewer.setInput(this);
    return tableComposite;
}

From source file:ch.elexis.preferences.LaborPrefs.java

License:Open Source License

protected Control createContents(Composite parn) {
    noDefaultAndApplyButton();//from  w w w .  j a  va2s.  c  om

    Composite tableComposite = new Composite(parn, SWT.NONE);
    GridData gd = new GridData();
    tableComposite.setLayoutData(gd);
    TableColumnLayout tableColumnLayout = new TableColumnLayout();
    tableComposite.setLayout(tableColumnLayout);
    tableViewer = new TableViewer(tableComposite, SWT.BORDER | SWT.FULL_SELECTION);
    table = tableViewer.getTable();

    for (int i = 0; i < headers.length; i++) {
        TableColumn tc = new TableColumn(table, SWT.LEFT);
        tc.setText(headers[i]);
        tableColumnLayout.setColumnData(tc, new ColumnWeightData(colwidth[i], true));
        tc.setData(i);
        tc.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                sortC = (Integer) ((TableColumn) e.getSource()).getData();
                tableViewer.refresh(true);
            }

        });
    }
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    table.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));
    tableViewer.setContentProvider(new IStructuredContentProvider() {

        public Object[] getElements(Object inputElement) {
            return LabItem.getLabItems().toArray();
        }

        public void dispose() {
        }

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

    });
    tableViewer.setLabelProvider(new LabListLabelProvider());
    tableViewer.addDoubleClickListener(new IDoubleClickListener() {

        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection sel = (IStructuredSelection) tableViewer.getSelection();
            Object o = sel.getFirstElement();
            if (o instanceof LabItem) {
                LabItem li = (LabItem) o;
                EditLabItem eli = new EditLabItem(getShell(), li);
                eli.create();
                if (eli.open() == Dialog.OK) {
                    tableViewer.refresh();
                }
            }
        }

    });
    tableViewer.setSorter(new ViewerSorter() {

        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            LabItem li1 = (LabItem) e1;
            LabItem li2 = (LabItem) e2;
            String s1 = "", s2 = ""; //$NON-NLS-1$ //$NON-NLS-2$
            switch (sortC) {
            case 0:
                s1 = li1.getLabor().getLabel();
                s2 = li2.getLabor().getLabel();
                break;
            case 2:
                s1 = li1.getKuerzel();
                s2 = li2.getKuerzel();
                break;
            case 3:
                s1 = li1.getTyp().toString();
                s2 = li2.getTyp().toString();
                break;
            case 7:
                s1 = li1.getGroup();
                s2 = li2.getGroup();
                break;
            default:
                s1 = li1.getName();
                s2 = li2.getName();
            }
            int res = s1.compareToIgnoreCase(s2);
            if (res == 0) {
                return li1.getPrio().compareToIgnoreCase(li2.getPrio());
            }
            return res;
        }

    });
    tableViewer.setInput(this);
    return tableComposite;
}