Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 260777 Details for
Bug 491260
[GTK3.20] Cell editing garbled on GTK3.20 and above
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
Snippet that reproduces the issue
ScelaCellEditorTest.java (text/x-java), 6.11 KB, created by
Eric Williams
on 2016-04-07 11:19:38 EDT
(
hide
)
Description:
Snippet that reproduces the issue
Filename:
MIME Type:
Creator:
Eric Williams
Created:
2016-04-07 11:19:38 EDT
Size:
6.11 KB
patch
obsolete
>package testsnippets; > >import org.eclipse.jface.viewers.ArrayContentProvider; >import org.eclipse.jface.viewers.CellEditor; >import org.eclipse.jface.viewers.ColumnLabelProvider; >import org.eclipse.jface.viewers.EditingSupport; >import org.eclipse.jface.viewers.TableViewer; >import org.eclipse.jface.viewers.TableViewerColumn; >import org.eclipse.jface.viewers.TextCellEditor; >import org.eclipse.jface.viewers.ViewerCell; >import org.eclipse.swt.SWT; >import org.eclipse.swt.layout.FillLayout; >import org.eclipse.swt.widgets.Display; >import org.eclipse.swt.widgets.Shell; > >/** > * Demonstrates usage of {@link TextAndDialogCellEditor}. The email column uses the > * TextAndDialogCellEditor; othe columns use ordinary {@link TextCellEditor}s. > * > * @author Eric Rizzo > * > */ >public class ScelaCellEditorTest { > > public class Person { > public String givenname; > public String surname; > public String email; > > public Person(String givenname, String surname, String email) { > this.givenname = givenname; > this.surname = surname; > this.email = email; > } > > @Override > public String toString() { > return '[' + givenname + ' ' + surname + ' ' + email + ']'; > } > } > > protected abstract class AbstractEditingSupport extends EditingSupport { > private CellEditor editor; > > public AbstractEditingSupport(TableViewer viewer, CellEditor anEditor) { > super(viewer); > this.editor = anEditor; > } > > @Override > protected boolean canEdit(Object element) { > return editor != null; > } > > @Override > protected CellEditor getCellEditor(Object element) { > return editor; > } > > @Override > protected void setValue(Object element, Object value) { > doSetValue(element, value); > getViewer().update(element, null); > } > > protected abstract void doSetValue(Object element, Object value); > } > > public ScelaCellEditorTest(Shell shell) { > TableViewer v = new TableViewer(shell, SWT.BORDER | SWT.FULL_SELECTION); > v.setContentProvider(ArrayContentProvider.getInstance()); > > TableViewerColumn column = new TableViewerColumn(v, SWT.NONE); > column.getColumn().setWidth(200); > column.getColumn().setText("Givenname"); > column.getColumn().setMoveable(true); > column.setLabelProvider(new ColumnLabelProvider() { > > @Override > public String getText(Object element) { > return ((Person) element).givenname; > } > }); > > column.setEditingSupport(new AbstractEditingSupport(v, new TextCellEditor(v.getTable())) { > > @Override > protected Object getValue(Object element) { > return ((Person) element).givenname; > } > > @Override > protected void doSetValue(Object element, Object value) { > ((Person) element).givenname = value.toString(); > } > > }); > > column = new TableViewerColumn(v, SWT.NONE); > column.getColumn().setWidth(200); > column.getColumn().setText("Surname"); > column.getColumn().setMoveable(true); > column.setLabelProvider(new ColumnLabelProvider() { > > @Override > public String getText(Object element) { > return ((Person) element).surname; > } > > }); > > column.setEditingSupport(new AbstractEditingSupport(v, new TextCellEditor(v.getTable())) { > @Override > protected Object getValue(Object element) { > return ((Person) element).surname; > } > > @Override > protected void doSetValue(Object element, Object value) { > ((Person) element).surname = value.toString(); > } > > }); > > column = new TableViewerColumn(v, SWT.NONE); > column.getColumn().setWidth(200); > column.getColumn().setText("E-Mail"); > column.getColumn().setMoveable(true); > column.setLabelProvider(new ColumnLabelProvider() { > @Override > public String getText(Object element) { > return ((Person) element).email; > } > > }); > > > TextCellEditor cellEditor = new TextCellEditor(v.getTable()); >// cellEditor.setDialogMessage("Enter email address"); > column.setEditingSupport(new AbstractEditingSupport(v, cellEditor) { > > @Override > protected Object getValue(Object element) { > return ((Person) element).email; > } > > @Override > protected void doSetValue(Object element, Object value) { > ((Person) element).email = value.toString(); > } > > // Print out the model after each edit to verify its values are updated correctly > @Override > protected void saveCellEditorValue(CellEditor cellEditor, ViewerCell cell) { > super.saveCellEditorValue(cellEditor, cell); > System.out.println(cell.getElement()); > } > }); > > Person[] model = createModel(); > v.setInput(model); > v.getTable().setLinesVisible(true); > v.getTable().setHeaderVisible(true); > } > > private Person[] createModel() { > Person[] elements = new Person[4]; > elements[0] = new Person("Tom", "Schindl", > "tom.schindl@bestsolution.at"); > elements[1] = new Person("Boris", "Bokowski", > "Boris_Bokowski@ca.ibm.com"); > elements[2] = new Person("Tod", "Creasey", "Tod_Creasey@ca.ibm.com"); > elements[3] = new Person("Wayne", "Beaton", "wayne@eclipse.org"); > > return elements; > } > > /** > * @param args > */ > public static void main(String[] args) { > Display display = new Display(); > > Shell shell = new Shell(display); > shell.setLayout(new FillLayout()); > new ScelaCellEditorTest(shell); > shell.open(); > > while (!shell.isDisposed()) { > if (!display.readAndDispatch()) > display.sleep(); > } > > display.dispose(); > > } > >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 491260
: 260777 |
260778