Outline view problem [message #644755] |
Tue, 14 December 2010 07:27 |
Lita Messages: 12 Registered: December 2010 |
Junior Member |
|
|
When I tried to open the customised file, I get this error:
An error has occurred. See error log for more details.
Can not set org.eclipse.xtext.ui.editor.outline.actions.IContentOutlineN odeAdapterFactory field org.eclipse.xtext.ui.editor.outline.XtextContentOutlinePage. outlineNodeAdapterFactory to packagename.MySyntaxOutlineNodeAdapterFactory
The error log contains:
Message: Problems occurred when invoking code from plug-in: "org.eclipse.ui.workbench".
Exception Stack Trace:
java.lang.IllegalArgumentException: Can not set org.eclipse.xtext.ui.editor.outline.actions.IContentOutlineN odeAdapterFactory field org.eclipse.xtext.ui.editor.outline.XtextContentOutlinePage. outlineNodeAdapterFactory to packagename.MySyntaxOutlineNodeAdapterFactory
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentE xception(UnsafeFieldAccessorImpl.java:146)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentE xception(UnsafeFieldAccessorImpl.java:150)
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFi eldAccessorImpl.java:63)
at java.lang.reflect.Field.set(Field.java:657)
at com.google.inject.SingleFieldInjector.inject(SingleFieldInje ctor.java:57)
at com.google.inject.MembersInjectorImpl.injectMembers(MembersI njectorImpl.java:99)
at com.google.inject.ConstructorInjector.construct(ConstructorI njector.java:94)
at com.google.inject.ConstructorBindingImpl$Factory.get(Constru ctorBindingImpl.java:111)
at com.google.inject.FactoryProxy.get(FactoryProxy.java:56)
at com.google.inject.InjectorImpl$4$1.call(InjectorImpl.java:75
at com.google.inject.InjectorImpl.callInContext(InjectorImpl.ja va:804)
at com.google.inject.InjectorImpl$4.get(InjectorImpl.java:754)
at org.eclipse.xtext.ui.editor.XtextEditor.createOutlinePage(Xt extEditor.java:230)
at org.eclipse.xtext.ui.editor.XtextEditor.getContentOutlinePag e(XtextEditor.java:221)
at org.eclipse.xtext.ui.editor.XtextEditor.getAdapter(XtextEdit or.java:214)
at org.eclipse.ui.internal.views.ViewsPlugin.getAdapter(ViewsPl ugin.java:103)
at org.eclipse.ui.views.contentoutline.ContentOutline.doCreateP age(ContentOutline.java:131)
at org.eclipse.ui.part.PageBookView.createPage(PageBookView.jav a:408)
at org.eclipse.ui.part.PageBookView.partActivated(PageBookView. java:751)
at org.eclipse.ui.views.contentoutline.ContentOutline.partBroug htToTop(ContentOutline.java:212)
at org.eclipse.ui.part.PageBookView$4.partBroughtToTop(PageBook View.java:1014)
at org.eclipse.ui.internal.PartListenerList2$2.run(PartListener List2.java:85)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.runtime.Platform.run(Platform.java:888)
at org.eclipse.ui.internal.PartListenerList2.fireEvent(PartList enerList2.java:55)
at org.eclipse.ui.internal.PartListenerList2.firePartBroughtToT op(PartListenerList2.java:83)
at org.eclipse.ui.internal.PartService.firePartBroughtToTop(Par tService.java:212)
at org.eclipse.ui.internal.WorkbenchPagePartList.firePartBrough tToTop(WorkbenchPagePartList.java:76)
at org.eclipse.ui.internal.WorkbenchPagePartList.fireActiveEdit orChanged(WorkbenchPagePartList.java:52)
at org.eclipse.ui.internal.PartList.setActiveEditor(PartList.ja va:162)
at org.eclipse.ui.internal.WorkbenchPage.makeActiveEditor(Workb enchPage.java:1281)
at org.eclipse.ui.internal.WorkbenchPage.setActivePart(Workbenc hPage.java:3530)
at org.eclipse.ui.internal.WorkbenchPage.internalActivate(Workb enchPage.java:617)
at org.eclipse.ui.internal.WorkbenchPage.activate(WorkbenchPage .java:589)
at org.eclipse.ui.internal.WorkbenchPage.showEditor(WorkbenchPa ge.java:2949)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2849)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2768)
at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPag e.java:2760)
at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.j ava:2711)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2707)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2691)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2682)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:651)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:610)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInE ditor(EditorUtility.java:365)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInE ditor(EditorUtility.java:168)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:22 9)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:20
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchR un(SelectionDispatchAction.java:274)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(Selec tionDispatchAction.java:250)
at org.eclipse.jdt.internal.ui.navigator.OpenAndExpand.run(Open AndExpand.java:49)
at org.eclipse.ui.actions.RetargetAction.run(RetargetAction.jav a:221)
at org.eclipse.ui.navigator.CommonNavigatorManager$3.open(Commo nNavigatorManager.java:185)
at org.eclipse.ui.OpenAndLinkWithEditorHelper$InternalListener. open(OpenAndLinkWithEditorHelper.java:48)
at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredV iewer.java:845)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:17 5)
at org.eclipse.jface.viewers.StructuredViewer.fireOpen(Structur edViewer.java:843)
at org.eclipse.jface.viewers.StructuredViewer.handleOpen(Struct uredViewer.java:1131)
at org.eclipse.ui.navigator.CommonViewer.handleOpen(CommonViewe r.java:462)
at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(Stru cturedViewer.java:1235)
at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrate gy.java:264)
at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.ja va:258)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrate gy.java:298)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3776)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1367)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1390)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1 187)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja va:3622)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3277)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2629)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2593)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:24 27)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:670)
at org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:663)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:115)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
Session Data:
eclipse.buildId=I20100608-0911
java.version=1.6.0_20
java.vendor=Apple Inc.
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
Framework arguments: -keyring /Users/lita/.eclipse_keyring -showlocation
Command-line arguments: -os macosx -ws cocoa -arch x86_64 -keyring /Users/lita/.eclipse_keyring -showlocation
I just follow the source code as described in the following:
The Transformer file:
/*
* generated by Xtext
*/
package packagename.ui.outline;
import java.util.List;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.ui.editor.outline.ContentOutlineNode;
import org.eclipse.xtext.ui.editor.outline.transformer.AbstractDecl arativeSemanticModelTransformer;
import package.MySyntax.Application;
/**
* customization of the default outline structure
*
*/
public class MySyntaxTransformer extends AbstractDeclarativeSemanticModelTransformer {
public ContentOutlineNode createNode(
Application semanticNode, ContentOutlineNode parentNode) {
ContentOutlineNode node = super.newOutlineNode(semanticNode, parentNode);
node.setLabel("Application " + node.getLabel());
return node;
}
public List<EObject> getChildren(Application attribute) {
return attribute.eContents();
}
}
The NodeAdapter file is:
package packagename.ui.outline;
import java.util.Set;
import org.eclipse.xtext.Grammar;
import org.eclipse.xtext.GrammarUtil;
import org.eclipse.xtext.generator.AbstractGeneratorFragment;
import org.eclipse.xtext.generator.BindFactory;
import org.eclipse.xtext.generator.Binding;
import org.eclipse.xtext.generator.Naming;
/**
* An {@link IGeneratorFragment} to generate a adapter factory for outline nodes.
*
* @author Peter Friese - Initial contribution and API
*/
public class MySyntaxOutlineNodeAdapterFactory extends AbstractGeneratorFragment {
@Override
public Set<Binding> getGuiceBindingsUi(Grammar grammar) {
return new BindFactory()
.addTypeToType(" org.eclipse.xtext.ui.editor.outline.actions.IContentOutlineN odeAdapterFactory ",
getQualifiedName(grammar,getNaming()))
.getBindings();
}
public static String getQualifiedName(Grammar grammar, Naming n) {
return n.basePackageUi(grammar) + ".outline." + GrammarUtil.getName(grammar) + "OutlineNodeAdapterFactory";
}
@Override
public String[] getRequiredBundlesUi(Grammar grammar) {
return new String[]{
"org.eclipse.xtext.ui"
};
}
}
The UIModule file is:
package packagename.ui;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.eclipse.xtext.ui.editor.outline.transformer.ISemanticMod elTransformer;
import packagename.ui.outline.MySyntaxTransformer;
/**
* Use this class to register components to be used within the IDE.
*/
public class MySyntaxUiModule extends com.aosgrp.ui.AbstractMySyntaxUiModule {
public MySyntaxUiModule(AbstractUIPlugin plugin) {
super(plugin);
}
public Class<? extends ISemanticModelTransformer>
bindISemanticModelTransformer() {
return MySyntaxTransformer.class;
}
}
I tried to search the answer on Google and this forum but it seems that some people said it has been solved but they didn't say how to solve it. Any pointer for help is highly appreciated.
Thank you.
Best regards,
Lita
[Updated on: Tue, 14 December 2010 07:32] Report message to a moderator
|
|
|
Re: Outline view problem [message #644761 is a reply to message #644755] |
Tue, 14 December 2010 07:36 |
Sebastian Zarnekow Messages: 3118 Registered: July 2009 |
Senior Member |
|
|
Hi Lita,
please make sure that your generated adapter factory actually implements
the interface
org.eclipse.xtext.ui.editor.outline.actions.IContentOutlineN odeAdapterFactory
The javadoc of java.lang.reflect.Field#set() states that an
IllegalArgumentException is thrown if the value is not compatible to the
declared field.
Regards,
Sebastian
--
Need professional support for Eclipse Modeling?
Go visit: http://xtext.itemis.com
Am 14.12.10 08:28, schrieb Lita:
> When I tried to open the customised file, I get this error:
> An error has occurred. See error log for more details.
> Can not set org.eclipse.xtext.ui.editor.outline.actions.IContentOutlineN
> odeAdapterFactory field
> org.eclipse.xtext.ui.editor.outline.XtextContentOutlinePage.
> outlineNodeAdapterFactory to packagename.MySyntaxOutlineNodeAdapterFactory
>
>
> The error log contains:
>
> Message: Problems occurred when invoking code from plug-in:
> "org.eclipse.ui.workbench".
>
>
> Exception Stack Trace:
> java.lang.IllegalArgumentException: Can not set
> org.eclipse.xtext.ui.editor.outline.actions.IContentOutlineN
> odeAdapterFactory field
> org.eclipse.xtext.ui.editor.outline.XtextContentOutlinePage.
> outlineNodeAdapterFactory to packagename.MySyntaxOutlineNodeAdapterFactory
> at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentE
> xception(UnsafeFieldAccessorImpl.java:146)
> at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentE
> xception(UnsafeFieldAccessorImpl.java:150)
> at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFi
> eldAccessorImpl.java:63)
> at java.lang.reflect.Field.set(Field.java:657)
> at com.google.inject.SingleFieldInjector.inject(SingleFieldInje
> ctor.java:57)
> at com.google.inject.MembersInjectorImpl.injectMembers(MembersI
> njectorImpl.java:99)
> at com.google.inject.ConstructorInjector.construct(ConstructorI
> njector.java:94)
> at com.google.inject.ConstructorBindingImpl$Factory.get(Constru
> ctorBindingImpl.java:111)
> at com.google.inject.FactoryProxy.get(FactoryProxy.java:56)
> at com.google.inject.InjectorImpl$4$1.call(InjectorImpl.java:75 8)
> at com.google.inject.InjectorImpl.callInContext(InjectorImpl.ja va:804)
> at com.google.inject.InjectorImpl$4.get(InjectorImpl.java:754)
> at org.eclipse.xtext.ui.editor.XtextEditor.createOutlinePage(Xt
> extEditor.java:230)
> at org.eclipse.xtext.ui.editor.XtextEditor.getContentOutlinePag
> e(XtextEditor.java:221)
> at org.eclipse.xtext.ui.editor.XtextEditor.getAdapter(XtextEdit
> or.java:214)
> at org.eclipse.ui.internal.views.ViewsPlugin.getAdapter(ViewsPl
> ugin.java:103)
> at org.eclipse.ui.views.contentoutline.ContentOutline.doCreateP
> age(ContentOutline.java:131)
> at org.eclipse.ui.part.PageBookView.createPage(PageBookView.jav a:408)
> at org.eclipse.ui.part.PageBookView.partActivated(PageBookView. java:751)
> at org.eclipse.ui.views.contentoutline.ContentOutline.partBroug
> htToTop(ContentOutline.java:212)
> at org.eclipse.ui.part.PageBookView$4.partBroughtToTop(PageBook
> View.java:1014)
> at org.eclipse.ui.internal.PartListenerList2$2.run(PartListener
> List2.java:85)
> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> at org.eclipse.core.runtime.Platform.run(Platform.java:888)
> at org.eclipse.ui.internal.PartListenerList2.fireEvent(PartList
> enerList2.java:55)
> at org.eclipse.ui.internal.PartListenerList2.firePartBroughtToT
> op(PartListenerList2.java:83)
> at org.eclipse.ui.internal.PartService.firePartBroughtToTop(Par
> tService.java:212)
> at org.eclipse.ui.internal.WorkbenchPagePartList.firePartBrough
> tToTop(WorkbenchPagePartList.java:76)
> at org.eclipse.ui.internal.WorkbenchPagePartList.fireActiveEdit
> orChanged(WorkbenchPagePartList.java:52)
> at org.eclipse.ui.internal.PartList.setActiveEditor(PartList.ja va:162)
> at org.eclipse.ui.internal.WorkbenchPage.makeActiveEditor(Workb
> enchPage.java:1281)
> at org.eclipse.ui.internal.WorkbenchPage.setActivePart(Workbenc
> hPage.java:3530)
> at org.eclipse.ui.internal.WorkbenchPage.internalActivate(Workb
> enchPage.java:617)
> at org.eclipse.ui.internal.WorkbenchPage.activate(WorkbenchPage .java:589)
> at org.eclipse.ui.internal.WorkbenchPage.showEditor(WorkbenchPa
> ge.java:2949)
> at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(
> WorkbenchPage.java:2849)
> at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben
> chPage.java:2768)
> at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPag
> e.java:2760)
> at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.j ava:2711)
> at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
> at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa
> ge.java:2707)
> at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa
> ge.java:2691)
> at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa
> ge.java:2682)
> at org.eclipse.ui.ide.IDE.openEditor(IDE.java:651)
> at org.eclipse.ui.ide.IDE.openEditor(IDE.java:610)
> at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInE
> ditor(EditorUtility.java:365)
> at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInE
> ditor(EditorUtility.java:168)
> at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:22 9)
> at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:20 8)
> at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchR
> un(SelectionDispatchAction.java:274)
> at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(Selec
> tionDispatchAction.java:250)
> at org.eclipse.jdt.internal.ui.navigator.OpenAndExpand.run(Open
> AndExpand.java:49)
> at org.eclipse.ui.actions.RetargetAction.run(RetargetAction.jav a:221)
> at org.eclipse.ui.navigator.CommonNavigatorManager$3.open(Commo
> nNavigatorManager.java:185)
> at org.eclipse.ui.OpenAndLinkWithEditorHelper$InternalListener.
> open(OpenAndLinkWithEditorHelper.java:48)
> at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredV
> iewer.java:845)
> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
> at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:17 5)
> at org.eclipse.jface.viewers.StructuredViewer.fireOpen(Structur
> edViewer.java:843)
> at org.eclipse.jface.viewers.StructuredViewer.handleOpen(Struct
> uredViewer.java:1131)
> at org.eclipse.ui.navigator.CommonViewer.handleOpen(CommonViewe r.java:462)
> at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(Stru
> cturedViewer.java:1235)
> at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrate
> gy.java:264)
> at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.ja va:258)
> at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrate
> gy.java:298)
> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
> at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3776)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1367)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1390)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375)
> at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1 187)
> at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja va:3622)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3277)
> at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2629)
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2593)
> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:24 27)
> at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:670)
> at org.eclipse.core.databinding.observable.Realm.runWithDefault
> (Realm.java:332)
> at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work
> bench.java:663)
> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
> at org.eclipse.ui.internal.ide.application.IDEApplication.start
> (IDEApplication.java:115)
> at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips
> eAppHandle.java:196)
> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher
> .runApplication(EclipseAppLauncher.java:110)
> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher
> .start(EclipseAppLauncher.java:79)
> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS
> tarter.java:369)
> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS
> tarter.java:179)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
> ssorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
> thodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 619)
> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
> at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
>
>
> Session Data:
> eclipse.buildId=I20100608-0911
> java.version=1.6.0_20
> java.vendor=Apple Inc.
> BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
> Framework arguments: -keyring /Users/lita/.eclipse_keyring -showlocation
> Command-line arguments: -os macosx -ws cocoa -arch x86_64 -keyring
> /Users/lita/.eclipse_keyring -showlocation
>
> I just follow the source code as described in the following:
>
> The Transformer file:
>
> /*
> * generated by Xtext
> */
> package com.aosgrp.ui.outline;
>
> import java.util.List;
>
> import org.eclipse.emf.ecore.EObject;
> import org.eclipse.xtext.ui.editor.outline.ContentOutlineNode;
> import org.eclipse.xtext.ui.editor.outline.transformer.AbstractDecl
> arativeSemanticModelTransformer;
>
> import package.MySyntax.Application;
>
> /**
> * customization of the default outline structure
> * */
> public class MySyntaxTransformer extends
> AbstractDeclarativeSemanticModelTransformer {
> public ContentOutlineNode createNode(
> Application semanticNode, ContentOutlineNode parentNode) {
> ContentOutlineNode node = super.newOutlineNode(semanticNode, parentNode);
> node.setLabel("Application " + node.getLabel());
> return node;
> }
>
> public List<EObject> getChildren(Application attribute) {
> return attribute.eContents();
> }
> }
>
> The NodeAdapter file is:
>
> package packagename.ui.outline;
>
> import java.util.Set;
>
> import org.eclipse.xtext.Grammar;
> import org.eclipse.xtext.GrammarUtil;
> import org.eclipse.xtext.generator.AbstractGeneratorFragment;
> import org.eclipse.xtext.generator.BindFactory;
> import org.eclipse.xtext.generator.Binding;
> import org.eclipse.xtext.generator.Naming;
>
> /**
> * An {@link IGeneratorFragment} to generate a adapter factory for
> outline nodes.
> * * @author Peter Friese - Initial contribution and API
> */
> public class MySyntaxOutlineNodeAdapterFactory extends
> AbstractGeneratorFragment {
>
> @Override
> public Set<Binding> getGuiceBindingsUi(Grammar grammar) {
> return new BindFactory()
> .addTypeToType("
> org.eclipse.xtext.ui.editor.outline.actions.IContentOutlineN
> odeAdapterFactory ",
> getQualifiedName(grammar,getNaming()))
> .getBindings();
> }
>
> public static String getQualifiedName(Grammar grammar, Naming n) {
> return n.basePackageUi(grammar) + ".outline." +
> GrammarUtil.getName(grammar) + "OutlineNodeAdapterFactory";
> }
>
> @Override
> public String[] getRequiredBundlesUi(Grammar grammar) {
> return new String[]{
> "org.eclipse.xtext.ui"
> };
> }
> }
>
>
> The UIModule file is:
> package com.aosgrp.ui;
>
> import org.eclipse.ui.plugin.AbstractUIPlugin;
> import org.eclipse.xtext.ui.editor.outline.transformer.ISemanticMod
> elTransformer;
>
> import com.aosgrp.ui.outline.CbdiTransformer;
>
> /**
> * Use this class to register components to be used within the IDE.
> */
> public class CbdiUiModule extends com.aosgrp.ui.AbstractCbdiUiModule {
> public CbdiUiModule(AbstractUIPlugin plugin) {
> super(plugin);
> }
>
> public Class<? extends ISemanticModelTransformer>
> bindISemanticModelTransformer() {
> return CbdiTransformer.class;
> }
> }
>
>
> I tried to search the answer on Google and this forum but it seems that
> some people said it has been solved but they didn't say how to solve it.
> Any pointer for help is highly appreciated.
>
> Thank you.
>
> Best regards,
>
> Lita
|
|
|
|
Re: Outline view problem [message #644962 is a reply to message #644762] |
Wed, 15 December 2010 01:26 |
Lita Messages: 12 Registered: December 2010 |
Junior Member |
|
|
Sebastian Zarnekow wrote on Tue, 14 December 2010 02:43 | My bad ... Guice would tell you propably upfront if your configuration
is inconsistent. Do you have multiple versions of Xtext plugins in your
bundle dependencies? Are there any plugins like
org.eclipse.xtext.ui.core or ..ui.common besides the plain xtext.ui plugin?
|
Hi Sebastian,
Thank you for replying. I am not sure if there are multiple versions of Xtext plugins in the bundle dependencies. Below is the content of the manifest file:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: companyname.syntaxname
Bundle-Vendor: My Company
Bundle-Version: 1.0.0
Bundle-SymbolicName: companyname.syntaxname;singleton:=true
Bundle-ActivationPolicy: lazy
Require-Bundle: org.eclipse.xtext,
org.eclipse.xtext.generator;resolution:=optional,
org.apache.commons.logging;resolution:=optional,
org.eclipse.emf.codegen.ecore;resolution:=optional,
org.eclipse.emf.mwe.utils;resolution:=optional,
org.eclipse.emf.mwe2.launch;resolution:=optional,
com.ibm.icu;resolution:=optional,
org.eclipse.xtext.xtend;resolution:=optional,
org.eclipse.xtext.util,
org.eclipse.emf.ecore,
org.eclipse.emf.common,
org.antlr.runtime
Import-Package: org.apache.log4j,
org.eclipse.swt,
org.eclipse.swt.graphics,
org.eclipse.xtext.ui.editor.syntaxcoloring,
org.eclipse.xtext.ui.editor.syntaxcoloring.antlr,
org.eclipse.xtext.ui.editor.utils
Bundle-RequiredExecutionEnvironment: J2SE-1.5
I think it depends on different packages of "org.eclipse.xtext.ui.editor". Where else shall I check for bundle dependencies?
Here is the list of Xtext UI plugins the eclipse/plugins directory :
org.eclipse.xtext.ui.ecore.source_1.0.1.v201008251220.jar
org.eclipse.xtext.ui.ecore_1.0.1.v201008251220.jar
org.eclipse.xtext.ui.junit.source_1.0.1.v201008251220.jar
org.eclipse.xtext.ui.junit_1.0.1.v201008251220.jar
org.eclipse.xtext.ui.shared.source_1.0.1.v201008251220.jar
org.eclipse.xtext.ui.shared_1.0.1.v201008251220.jar
org.eclipse.xtext.ui.source_1.0.1.v201008251220.jar
org.eclipse.xtext.ui_1.0.1.v201008251220.jar
Does it matter even though I don't include them in the manifest file?
How about the deprecated IContentOutlineNodeFactory.java? It is said that we need to write our own GetAdapter class but there was not any example so I am not sure what to do about it.
Thank you.
Best regards,
Lita
|
|
|
|
Powered by
FUDForum. Page generated in 0.03364 seconds