[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Newsgroup Home]
|
[news.eclipse.platform.rcp] Re: TableViewer display problem in Master/Detail block
|
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(StructuredViewer.java:582)
at
org.eclipse.jface.viewers.TableViewer.internalRefreshAll(TableViewer.java:832)
at
org.eclipse.jface.viewers.TableViewer.internalRefresh(TableViewer.java:748)
at
org.eclipse.jface.viewers.TableViewer.internalRefresh(TableViewer.java:737)
at
org.eclipse.jface.viewers.StructuredViewer$7.run(StructuredViewer.java:1264)
at
org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1201)
at
org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1262)
at
org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1221)
at
org.eclipse.jface.viewers.ContentViewer.setLabelProvider(ContentViewer.java:279)
at
org.eclipse.jface.viewers.StructuredViewer.setLabelProvider(StructuredViewer.java:1810)
at
org.eclipse.jface.viewers.TableViewer.setLabelProvider(TableViewer.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.
>>
>>