Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc) » [EMF FORMS]Dead loop for 'TreeMasterDetailSWTRenderer'(Using tree master detail in emf forms)
[EMF FORMS]Dead loop for 'TreeMasterDetailSWTRenderer' [message #1785765] |
Thu, 19 April 2018 12:23  |
zhang ph Messages: 43 Registered: March 2017 |
Member |
|
|
Hi,
Recently, I use EMF Forms to display my EMF model. I create a butuon in my editor to generate a dialog and use EMF Forms to create tree structure in the dialog, but when I finish the code, I run an eclipse application to do test, I find when I click the button there will be a dead loop for 'TreeMasterDetailSWTRenderer'. Then stackoverflow will appear.
My code is:
protected Control createDialogArea(Composite parent) {
final EObject dummyObject = getDummyEObject();
try {
final Composite content = new Composite(parent, SWT.ON_TOP);
content.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE));
/* */content.setLayout(GridLayoutFactory.fillDefaults().margins(10, 10).create());
content.setLayoutData(GridDataFactory.fillDefaults().create());
final ReferenceService previewRefServ = new DefaultReferenceService();
final ViewModelContext viewModelContext = ViewModelContextFactory.INSTANCE.createViewModelContext(
ViewProviderHelper.getView(target.eContainer(), null), target.eContainer(), previewRefServ);
ECPSWTViewRenderer.INSTANCE.render(content, target.eContainer());
content.layout();
} catch (Exception e) {
e.printStackTrace();
}
parent.layout();
return null;
}
Below is part of debug information:
SafeRunnable.run(ISafeRunnable) line: 173
TreeViewer(Viewer).fireSelectionChanged(SelectionChangedEvent) line: 155
TreeViewer(StructuredViewer).updateSelection(ISelection) line: 2191
TreeViewer(StructuredViewer).setSelection(ISelection, boolean) line: 1728
TreeViewer.setSelection(ISelection, boolean) line: 1077
TreeViewer(Viewer).setSelection(ISelection) line: 383
TreeMasterDetailSWTRenderer.createMasterTree(Composite) line: 421
TreeMasterDetailSWTRenderer.renderControl(SWTGridCell, Composite) line: 303
TreeMasterDetailSWTRenderer(AbstractSWTRenderer<VELEMENT>).render(SWTGridCell, Composite) line: 201
ViewSWTRenderer(ContainerSWTRenderer<VELEMENT>).renderControl(SWTGridCell, Composite) line: 175
ViewSWTRenderer.renderControl(SWTGridCell, Composite) line: 100
ViewSWTRenderer(AbstractSWTRenderer<VELEMENT>).render(SWTGridCell, Composite) line: 201
ECPSWTViewRendererImpl.render(Composite, ViewModelContext) line: 113
TreeMasterDetailSWTRenderer$TreeMasterViewSelectionListener.selectionChanged(SelectionChangedEvent) line: 887
Viewer$1.run() line: 158
SafeRunner.run(ISafeRunnable) line: 42
JFaceUtil$1.run(ISafeRunnable) line: 50
SafeRunnable.run(ISafeRunnable) line: 173
TreeViewer(Viewer).fireSelectionChanged(SelectionChangedEvent) line: 155
TreeViewer(StructuredViewer).updateSelection(ISelection) line: 2191
TreeViewer(StructuredViewer).setSelection(ISelection, boolean) line: 1728
TreeViewer.setSelection(ISelection, boolean) line: 1077
TreeViewer(Viewer).setSelection(ISelection) line: 383
TreeMasterDetailSWTRenderer.createMasterTree(Composite) line: 421
TreeMasterDetailSWTRenderer.renderControl(SWTGridCell, Composite) line: 303
TreeMasterDetailSWTRenderer(AbstractSWTRenderer<VELEMENT>).render(SWTGridCell, Composite) line: 201
ViewSWTRenderer(ContainerSWTRenderer<VELEMENT>).renderControl(SWTGridCell, Composite) line: 175
ViewSWTRenderer.renderControl(SWTGridCell, Composite) line: 100
ViewSWTRenderer(AbstractSWTRenderer<VELEMENT>).render(SWTGridCell, Composite) line: 201
ECPSWTViewRendererImpl.render(Composite, ViewModelContext) line: 113
TreeMasterDetailSWTRenderer$TreeMasterViewSelectionListener.selectionChanged(SelectionChangedEvent) line: 887
Viewer$1.run() line: 158
SafeRunner.run(ISafeRunnable) line: 42
JFaceUtil$1.run(ISafeRunnable) line: 50
SafeRunnable.run(ISafeRunnable) line: 173
TreeViewer(Viewer).fireSelectionChanged(SelectionChangedEvent) line: 155
TreeViewer(StructuredViewer).updateSelection(ISelection) line: 2191
TreeViewer(StructuredViewer).setSelection(ISelection, boolean) line: 1728
TreeViewer.setSelection(ISelection, boolean) line: 1077
TreeViewer(Viewer).setSelection(ISelection) line: 383
TreeMasterDetailSWTRenderer.createMasterTree(Composite) line: 421
TreeMasterDetailSWTRenderer.renderControl(SWTGridCell, Composite) line: 303
TreeMasterDetailSWTRenderer(AbstractSWTRenderer<VELEMENT>).render(SWTGridCell, Composite) line: 201
ViewSWTRenderer(ContainerSWTRenderer<VELEMENT>).renderControl(SWTGridCell, Composite) line: 175
ViewSWTRenderer.renderControl(SWTGridCell, Composite) line: 100
ViewSWTRenderer(AbstractSWTRenderer<VELEMENT>).render(SWTGridCell, Composite) line: 201
ECPSWTViewRendererImpl.render(Composite, ViewModelContext) line: 113
ECPSWTViewRendererImpl.render(Composite, EObject, VView) line: 78
ECPSWTViewRendererImpl.render(Composite, EObject) line: 65
SampleHandler$Test.createDialogArea(Composite) line: 92
From the information, 'TreeMasterDetailSWTRenderer.createMasterTree' is called repeatedly.
Could you give any suggetions about this problem?
Thanks in advance.
[Updated on: Thu, 19 April 2018 12:25] Report message to a moderator
|
|
| | | | |
Goto Forum:
Current Time: Mon Jun 05 11:35:29 GMT 2023
Powered by FUDForum. Page generated in 0.03396 seconds
|