Example usage for org.eclipse.jface.viewers CellEditor getLayoutData

List of usage examples for org.eclipse.jface.viewers CellEditor getLayoutData

Introduction

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

Prototype

public LayoutData getLayoutData() 

Source Link

Document

Returns a layout data object for this cell editor.

Usage

From source file:com.htmlhifive.tools.jslint.view.DescriptionGroupComposite.java

License:Apache License

/**
 * ??.//from   w  ww .j a v a2 s.c  o  m
 * 
 * @param comp ?
 */
private void createTable(Composite comp) {

    // ??
    tableViewer = CheckboxTableViewer.newCheckList(comp,
            SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.SINGLE | SWT.CHECK);
    tableViewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    TableLayout layout = new TableLayout();
    layout.addColumnData(new ColumnPixelData(50));
    layout.addColumnData(new ColumnPixelData(300));
    layout.addColumnData(new ColumnPixelData(130));
    tableViewer.getTable().setLayout(layout);
    tableViewer.getTable().setHeaderVisible(true);
    tableViewer.getTable().setLinesVisible(true);

    TableViewerColumn columnState = new TableViewerColumn(tableViewer, SWT.CENTER);
    columnState.getColumn().setText(Messages.TC0000.getText());
    columnState.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {

            return "";
        }
    });

    TableViewerColumn columnRegex = new TableViewerColumn(tableViewer, SWT.LEFT);
    columnRegex.getColumn().setText(Messages.TC0004.getText());
    columnRegex.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {

            FilterBean bean = (FilterBean) element;
            return bean.getRegex();
        }
    });
    columnRegex.setEditingSupport(new EditingSupport(tableViewer) {

        @Override
        protected void setValue(Object element, Object value) {

            FilterBean bean = (FilterBean) element;
            bean.setRegex((String) value);
            updateVariable();
        }

        @Override
        protected Object getValue(Object element) {

            String regEx = ((FilterBean) element).getRegex();
            return regEx == null ? "" : regEx;
        }

        @Override
        protected CellEditor getCellEditor(Object element) {

            return new TextCellEditor(tableViewer.getTable());
        }

        @Override
        protected boolean canEdit(Object element) {

            return true;
        }
    });
    TableViewerColumn columnCombo = new TableViewerColumn(tableViewer, SWT.LEFT);
    columnCombo.getColumn().setText(Messages.TC0005.getText());
    columnCombo.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {

            FilterBean bean = (FilterBean) element;
            return bean.getRevel().getLabel();
        }
    });
    columnCombo.setEditingSupport(new EditingSupport(tableViewer) {

        @Override
        protected void setValue(Object element, Object value) {

            FilterBean bean = (FilterBean) element;
            Integer selectNum = (Integer) value;
            // TODO ???????
            bean.setLevel(FilterLevel.getRevelFromLabel(FilterLevel.getAllLabels()[selectNum]));
            updateVariable();
        }

        @Override
        protected Object getValue(Object element) {

            FilterBean bean = (FilterBean) element;
            return ArrayUtils.indexOf(FilterLevel.getAllLabels(), bean.getRevel().getLabel());
        }

        @Override
        protected CellEditor getCellEditor(Object element) {

            CellEditor cellEditor = new ComboBoxCellEditor(tableViewer.getTable(), FilterLevel.getAllLabels(),
                    SWT.READ_ONLY);
            cellEditor.getLayoutData().minimumWidth = 10;
            return cellEditor;
        }

        @Override
        protected boolean canEdit(Object element) {

            return true;
        }
    });

    tableViewer.setContentProvider(ArrayContentProvider.getInstance());
    tableViewer.addCheckStateListener(new ICheckStateListener() {

        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {

            FilterBean bean = (FilterBean) event.getElement();
            bean.setState(event.getChecked());
            updateVariable();

        }
    });

    Composite composite = new Composite(baseComp, SWT.NONE);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
    composite.setLayout(new GridLayout(1, false));
    // ??
    btnAdd = new Button(composite, SWT.None);
    GridData gdBtnAdd = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
    gdBtnAdd.widthHint = 60;
    btnAdd.setLayoutData(gdBtnAdd);
    btnAdd.setText(Messages.B0002.getText());
    btnAdd.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {

            tableElemList.add(new FilterBean());
            updateVariable();
        }
    });
    // ??
    btnDel = new Button(composite, SWT.None);
    GridData gdBtnDel = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
    gdBtnDel.widthHint = 60;
    btnDel.setLayoutData(gdBtnDel);
    btnDel.setText(Messages.B0003.getText());
    btnDel.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {

            FilterBean bean = (FilterBean) ((IStructuredSelection) tableViewer.getSelection())
                    .getFirstElement();
            tableElemList.remove(bean);
            updateVariable();
        }
    });
}

From source file:gov.nasa.ensemble.common.ui.treetable.TreeTableViewer.java

License:Open Source License

private void activateCellEditor(TreeItem item, Object element, Object facet, int columnIndex,
        ITreeTableColumn column) {//from ww  w. j a  v  a  2s  .com
    trace.debug("activateCellEditor : " + facet);

    boolean edited = column.editOnActivate(facet, model.getUndoContext(), item, columnIndex);
    if (edited) {
        return;
    }

    CellEditor cellEditor = column.getCellEditor(getTree(), facet);
    if (cellEditorActionHandler != null) {
        cellEditorActionHandler.addCellEditor(cellEditor);
    }
    if (cellEditor == null) {
        return; // no editor
    }
    if (currentCellEditorHelper != null) {
        currentCellEditorHelper.applyEditorValue();
        currentCellEditorHelper = null;
    }
    CellEditorHelper helper = new CellEditorHelper(facet, column, cellEditor, element);
    cellEditor.addListener(helper);
    @SuppressWarnings("unchecked")
    Font font = column.getFont(facet);
    if (font == null) {
        font = getTreeTableLabelProvider().getFont(element);
    }
    cellEditor.activate();
    LayoutData layoutData = cellEditor.getLayoutData();
    treeEditor.grabHorizontal = layoutData.grabHorizontal;
    treeEditor.horizontalAlignment = layoutData.horizontalAlignment;
    treeEditor.minimumWidth = layoutData.minimumWidth;
    Control control = cellEditor.getControl();
    if (control != null) {
        control.setFont(font);
        control.addFocusListener(helper);
        control.forceFocus();
        int[] order = getTree().getColumnOrder();
        int editorIndex = order[columnIndex];
        treeEditor.setEditor(control, item, editorIndex);
    }
    cellEditor.setFocus();
    currentCellEditorHelper = helper;
}

From source file:org.eclipse.sapphire.ui.swt.gef.parts.NodeCellEditorLocator.java

License:Open Source License

public void relocate(CellEditor celleditor) {
    Rectangle labelRect = textFigure.getClientArea();
    Rectangle parentRect = textFigure.getAvailableArea();
    double zoom = manager.getDiagramEditor().getZoomLevel();
    if (celleditor instanceof ComboBoxCellEditor) {
        GC gc = new GC(((ComboBoxCellEditor) celleditor).getControl());
        int charHeight = gc.getFontMetrics().getHeight();
        gc.dispose();// w  ww. j  av a  2  s  .  c o  m

        CellEditor.LayoutData layoutData = celleditor.getLayoutData();
        // adjust location if space available
        int offset = 0;
        if (layoutData.minimumWidth > labelRect.width && parentRect.x < labelRect.x) {
            offset = Math.min(layoutData.minimumWidth - labelRect.width, labelRect.x - parentRect.x);
        }
        CCombo combo = (CCombo) celleditor.getControl();
        textFigure.translateToAbsolute(labelRect);
        combo.setBounds(labelRect.x - offset, labelRect.y, layoutData.minimumWidth, charHeight);
        return;
    }

    labelRect.x = parentRect.x;
    labelRect.width = parentRect.width;
    // zoom
    labelRect.width = (int) (labelRect.width * zoom);
    labelRect.height = (int) (labelRect.height * zoom);

    Text text = (Text) celleditor.getControl();
    Point textSize = text.computeSize(SWT.DEFAULT, SWT.DEFAULT);

    if (text.getText().length() == 0) {
        textSize.x = 10;
    }
    Point size = new Point(Math.min(textSize.x, labelRect.width), Math.min(textSize.y, labelRect.height));

    // center the cell editor horizontally
    int horizontalOffet = 0;
    switch (textFigure.getHorizontalAlignment()) {
    case SWT.RIGHT:
        if (size.x < labelRect.width) {
            horizontalOffet = labelRect.width - size.x;
        }
        break;
    case SWT.LEFT:
        break;
    default:
        if (size.x < labelRect.width) {
            horizontalOffet = (labelRect.width - size.x + 1) / 2;
        }
        break;
    }

    // center the cell editor vertically
    int verticalOffet = 0;
    switch (textFigure.getVerticalAlignment()) {
    case SWT.BOTTOM:
        if (size.y < labelRect.height) {
            verticalOffet = labelRect.height - size.y;
        }
        break;
    case SWT.TOP:
        break;
    default:
        if (size.y < labelRect.height) {
            verticalOffet = (labelRect.height - size.y + 1) / 2;
        }
        break;
    }

    textFigure.translateToAbsolute(labelRect);
    text.setBounds(labelRect.x + horizontalOffet, labelRect.y + verticalOffet, size.x, size.y);

}