| TableViewer display problem in Master/Detail block [message #461052] |
Thu, 04 January 2007 09:04  |
Eclipse User |
|
|
|
Hi,
I write master/detail block in my plugin.
I want display tableviewer in detail block when item selected in
masterblock.
table create code in IDetailsPage#createContents
(in createContents)
Table table = toolkit.createTable(client, SWT.V_SCROLL);
gld = new GridData(GridData.FILL_BOTH);
gld.widthHint = 20;
gld.heightHint = 100;
table.setLayoutData(gld);
TableViewer viewer = new TableViewer(table, SWT.BORDER);
viewer.setItemCount(16);
viewer.setContentProvider(new SecurityTableContentProvider());
viewer.setLabelProvider(new SecurityTableLabelProvider());
but in runtime, exception occurred when I selected some item in master
block. I traced exception point what is viewer.setLabelProvider
BusyIndicator exception.
I think it may trying draw tableviewer when detail block is not ready.
Is there any other strategy?
Thanks in advance.
Jung.
|
|
|
|
| Re: TableViewer display problem in Master/Detail block [message #461097 is a reply to message #461054] |
Thu, 04 January 2007 22:03   |
Eclipse User |
|
|
|
This is stack trace
org.eclipse.jface.util.Assert$AssertionFailedException: null argument;
at org.eclipse.jface.util.Assert.isNotNull(Assert.java:149)
at org.eclipse.jface.util.Assert.isNotNull(Assert.java:125)
at
org.eclipse.jface.viewers.StructuredViewer.disassociate(Stru cturedViewer.java:582)
at
org.eclipse.jface.viewers.TableViewer.internalRefreshAll(Tab leViewer.java:832)
at
org.eclipse.jface.viewers.TableViewer.internalRefresh(TableV iewer.java:748)
at
org.eclipse.jface.viewers.TableViewer.internalRefresh(TableV iewer.java:737)
at
org.eclipse.jface.viewers.StructuredViewer$7.run(StructuredV iewer.java:1264)
at
org.eclipse.jface.viewers.StructuredViewer.preservingSelecti on(StructuredViewer.java:1201)
at
org.eclipse.jface.viewers.StructuredViewer.refresh(Structure dViewer.java:1262)
at
org.eclipse.jface.viewers.StructuredViewer.refresh(Structure dViewer.java:1221)
at
org.eclipse.jface.viewers.ContentViewer.setLabelProvider(Con tentViewer.java:279)
at
org.eclipse.jface.viewers.StructuredViewer.setLabelProvider( StructuredViewer.java:1810)
at
org.eclipse.jface.viewers.TableViewer.setLabelProvider(Table Viewer.java:997)
and it is firstpart of createContents
public void createContents(Composite parent) {
TableWrapLayout layout = new TableWrapLayout();
layout.topMargin = 0;
layout.leftMargin = 5;
layout.rightMargin = 2;
layout.bottomMargin = 2;
parent.setLayout(layout);
FormToolkit toolkit = mform.getToolkit();
Section section = toolkit.createSection(parent, Section.DESCRIPTION |
Section.TITLE_BAR);
section.marginWidth = 10;
section.setText("File Detail Section");
TableWrapData td = new TableWrapData(TableWrapData.FILL,
TableWrapData.TOP);
td.grabHorizontal = true;
section.setLayoutData(td);
Composite client = toolkit.createComposite(section);
GridLayout glayout = new GridLayout();
glayout.marginWidth = glayout.marginHeight = 0;
glayout.numColumns = 2;
glayout.makeColumnsEqualWidth = true;
client.setLayout(glayout);
label = toolkit.createLabel(client, "Test Label");
GridData gld = new GridData(GridData.FILL_HORIZONTAL |
GridData.VERTICAL_ALIGN_BEGINNING);
gld.widthHint = 100;
label.setLayoutData(gld);
// table
Table table = toolkit.createTable(client, SWT.V_SCROLL);
gld = new GridData(GridData.FILL_BOTH);
gld.widthHint = 20;
gld.heightHint = 100;
table.setLayoutData(gld);
TableViewer viewer = new TableViewer(table, SWT.BORDER);
viewer.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TREE_BORDER);
viewer.refresh();
viewer.setItemCount(16);
viewer.setContentProvider(new SecurityTableContentProvider());
viewer.setLabelProvider(new SecurityTableLabelProvider());
.....
thanks in advance.
Jung
Tom Schindl:
> You you provide the complete stack trace with the exact message given?
>
> Tom
>
> Jung schrieb:
>> Hi,
>>
>> I write master/detail block in my plugin.
>> I want display tableviewer in detail block when item selected in
>> masterblock.
>>
>> table create code in IDetailsPage#createContents
>>
>> (in createContents)
>>
>> Table table = toolkit.createTable(client, SWT.V_SCROLL);
>> gld = new GridData(GridData.FILL_BOTH);
>> gld.widthHint = 20;
>> gld.heightHint = 100;
>> table.setLayoutData(gld);
>>
>> TableViewer viewer = new TableViewer(table, SWT.BORDER);
>> viewer.setItemCount(16);
>> viewer.setContentProvider(new SecurityTableContentProvider());
>> viewer.setLabelProvider(new SecurityTableLabelProvider());
>>
>>
>> but in runtime, exception occurred when I selected some item in master
>> block. I traced exception point what is viewer.setLabelProvider
>> BusyIndicator exception.
>> I think it may trying draw tableviewer when detail block is not ready.
>>
>> Is there any other strategy?
>>
>> Thanks in advance.
>>
>> Jung.
>>
>>
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04265 seconds