[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.
>>
>>