List of usage examples for org.eclipse.jface.viewers CellEditor getLayoutData
public LayoutData getLayoutData()
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); }