Home » Eclipse Projects » JFace » JFace Table: cell editing does not work when SWT.FULL_SELECTION is used(JFace Table cell editing)
| |
Re: JFace Table: cell editing does not work when SWT.FULL_SELECTION is used [message #659010 is a reply to message #654958] |
Thu, 10 March 2011 16:54 |
Bill Messages: 13 Registered: February 2011 |
Junior Member |
|
|
Thanks for the encouragement, Julien. I imagine putting the whole project up here is not good, but if it is, please let me know. In this message will try to put up just the pertinent parts:
In View.createPartControl:
tableComposite = new Composite(conditionsGroup, SWT.BORDER | SWT.FULL_SELECTION);
tableComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
TableColumnLayout tcl_tableComposite = new TableColumnLayout();
tableComposite.setLayout(tcl_tableComposite);
tableViewer = new TableViewer(tableComposite, SWT.BORDER);
table = tableViewer.getTable();
table.setHeaderVisible(true);
table.setLinesVisible(true);
itemColumnViewer = new TableViewerColumn(tableViewer, SWT.NONE);
itemColumn = itemColumnViewer.getColumn();
tcl_tableComposite.setColumnData(itemColumn, new ColumnWeightData(0, 45, false));
itemColumn.setText("Item");
mnemonicColumnViewer = new TableViewerColumn(tableViewer, SWT.NONE | SWT.FULL_SELECTION);
mnemonicColumn = mnemonicColumnViewer.getColumn();
tcl_tableComposite.setColumnData(mnemonicColumn, new ColumnWeightData(1000, 100, false));
mnemonicColumn.setText("Mnemonic");
relationshipColumnViewer = new TableViewerColumn(tableViewer, SWT.NONE | SWT.FULL_SELECTION);
relationshipColumn = relationshipColumnViewer.getColumn();
tcl_tableComposite.setColumnData(relationshipColumn, new ColumnWeightData(0, 100, false));
relationshipColumn.setText("Relationship");
valueColumnViewer = new TableViewerColumn(tableViewer, SWT.NONE | SWT.FULL_SELECTION);
valueColumn = valueColumnViewer.getColumn();
tcl_tableComposite.setColumnData(valueColumn, new ColumnWeightData(1000, 90, false));
valueColumn.setText("Value");
/*
* Now that all GUI elements exist, create singleton Controller which brings up Model
*/
Controller.getInstance(this);
In Controller.java:
private Controller(View view) {
this.model = Model.getInstance();
this.view = view;
this.tableViewer = view.getTableViewer();
this.table = tableViewer.getTable();
initialize();
}
public static Controller getInstance(View view) {
if (singletonInstance == null) {
singletonInstance = new Controller(view);
}
return singletonInstance;
}
public void initialize() {
initializeTable();
initializeEventHandlers();
updateGui();
}
private void initializeTable() {
TableViewer tableViewer = view.getTableViewer();
view.getItemColumnViewer().setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return ((Condition) element).getItemNumber() + "";
}
});
view.getItemColumnViewer().setEditingSupport(null);
view.getItemColumnViewer().getColumn().addSelectionListener( new SelectionListener() {
@Override
public void widgetDefaultSelected(SelectionEvent arg0) {
}
@Override
public void widgetSelected(SelectionEvent event) {
System.out.println("widgetSelected:\n" + event.toString());
}
});
view.getMnemonicColumnViewer().setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return ((Condition) element).getMnemonic();
}
});
view.getMnemonicColumnViewer().setEditingSupport(
new MnemonicEditingSupport(tableViewer, model));
view.getRelationshipColumnViewer().setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return ((Condition) element).getRelationshipString();
}
});
view.getMnemonicColumnViewer().getColumn().addSelectionListe ner(new SelectionListener() {
@Override
public void widgetDefaultSelected(SelectionEvent arg0) {
}
@Override
public void widgetSelected(SelectionEvent event) {
System.out.println("widgetSelected:\n" + event.toString());
}
});
view.getRelationshipColumnViewer().setEditingSupport(
new RelationshipEditingSupport(tableViewer));
view.getValueColumnViewer().setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return ((Condition) element).getValue();
}
});
view.getValueColumnViewer().setEditingSupport(new ValueEditingSupport(tableViewer));
view.getValueColumnViewer().getColumn().addSelectionListener (new SelectionListener() {
@Override
public void widgetDefaultSelected(SelectionEvent arg0) {
}
@Override
public void widgetSelected(SelectionEvent event) {
System.out.println("widgetSelected:\n" + event.toString());
}
});
tableViewer.setContentProvider(new ArrayContentProvider());
tableViewer.setInput(model.getConditions());
// Make the selection available to other views
view.getSite().setSelectionProvider(tableViewer);
}
|
|
|
Re: JFace Table: cell editing does not work when SWT.FULL_SELECTION is used [message #659025 is a reply to message #659010] |
Thu, 10 March 2011 17:29 |
Thomas Schindl Messages: 6651 Registered: July 2009 |
Senior Member |
|
|
Am 10.03.11 17:54, schrieb Bill:
> Thanks for the encouragement, Julien. I imagine putting the whole
> project up here is not good, but if it is, please let me know. In this
> message will try to put up just the pertinent parts:
>
> In View.createPartControl:
>
> tableComposite = new Composite(conditionsGroup, SWT.BORDER |
> SWT.FULL_SELECTION);
This is the offending line. SWT.FULL_SELECTION has to be passed to your
TableViewer-constructor.
> tableComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL,
> true, true, 1, 1));
> TableColumnLayout tcl_tableComposite = new TableColumnLayout();
> tableComposite.setLayout(tcl_tableComposite);
>
> tableViewer = new TableViewer(tableComposite, SWT.BORDER);
tableViewer = new TableViewer(tableComposite,
SWT.BORDER|SWT.FULL_SELECTION);
Tom
|
|
| | | |
Goto Forum:
Current Time: Tue Mar 19 13:30:41 GMT 2024
Powered by FUDForum. Page generated in 0.02829 seconds
|