Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse 4 » PartSashContainer as child of PartStack
PartSashContainer as child of PartStack [message #758942] Fri, 25 November 2011 11:12 Go to next message
Christian Eugster is currently offline Christian Eugster
Messages: 134
Registered: July 2009
Location: St. Gallen Switzerland
Senior Member
Hi, I am exploring e4 by building an application I did long ago in Visual Basic using the Eclipse e4.2m3. It seems to me, that it is not possible to add a PartSashContainer as child to a PartStack. If my assuming is wrong, how I manage it, if it is true: Why is the Inheritance not designed to allow PartSashContainer beeing a child of PartStack as PartStack can be a child of PartSashContainer? It would be really great to have this opportunity!
Re: PartSashContainer as child of PartStack [message #759247 is a reply to message #758942] Mon, 28 November 2011 03:57 Go to previous messageGo to next message
Brian de Alwis is currently offline Brian de Alwis
Messages: 242
Registered: July 2009
Senior Member
Perhaps you could describe your use case and interaction model a bit further? I'm not sure how a part stack, which which is a stack rather than a tiling, should behave if it contained an embedded part sash container. How is what you are describing different from embedding several part stacks within a part sash container?

You could also define your own model element type for this situation: extensibility was part of the reason for switching to an EMF-based model.
Re: PartSashContainer as child of PartStack [message #759386 is a reply to message #759247] Mon, 28 November 2011 14:11 Go to previous messageGo to next message
Christian Eugster is currently offline Christian Eugster
Messages: 134
Registered: July 2009
Location: St. Gallen Switzerland
Senior Member
@Brian

thank you for answering! Where do I find information about extending the model by elements? I found in a presentation by tom schindl a class diagram that shows, that both, MSashForm and MStack, inherit from MPart. But it is impossible to ad a sashcontainer to a stack in the current version of e4. Why?

I try to explain my question in english Rolling Eyes

My application is a hotline tool, where the parent sash contains on the left a component with filtered customers listed, while on the right a huge amount of detailed information about the selected customer ist shown. This information is organized hierarchically, the right part of the sash has several PartStacks, each of them has a sash, which shows a list in the right (or top) part and likely another partStack containing sashes for more detailed information.

The attached image shows an example: a sash with a partstack on the right containing several parts (Hotline, Kontakt, ComelivresNet, Software, Hardware, Benutzerdaten, Dokumente), showing currently the part Hardware, which in turn contains of a sash with a list (of Hardware) on the left and a partstack to the right with parts (Allgemein, Kundenspezifisch, Notizen, Details). Each of them could contain another sash AND SO ON...

I hope this is clear enough to understand. What do you thing about that?

Thank you!
  • Attachment: imshot.jpg
    (Size: 129.96KB, Downloaded 156 times)

[Updated on: Mon, 28 November 2011 14:26]

Report message to a moderator

Re: PartSashContainer as child of PartStack [message #759393 is a reply to message #759386] Mon, 28 November 2011 14:38 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas Schindl
Messages: 5423
Registered: July 2009
Senior Member
Hi,

Looks like the image didn't made it through. Just as a small side note
you can naturally use DI inside your part as well just like you used it
when the defining the Part-Class.

Which advantages do you think you would gain when a PartStack would
allow to be split into Sashes?

If we can find a usecase we could consider such a feature for Eclipse 4.3.

Tom

Am 28.11.11 15:11, schrieb Christian Eugster:
> Ok I try to explain it in english :roll:
> My application is a hotline tool, where the parent sash contains on the
> left a filtered customers ar listed while on the right a huge amount of
> detailed information about the selected customer ist shown. This
> information is organized hierarchically, the right part of the sash has
> several PartStacks, each of them has a sash, which shows a list in the
> right (or top) part and likely another partStack containing sashes for
> more detailed information.
>
> The attached image shows an example: a sash with a partstack on the
> right containing several parts (Hotline, Kontakt, ComelivresNet,
> Software, Hardware, Benutzerdaten, Dokumente), showing currently the
> part Hardware, which in turn contains of a sash with a list (of
> Hardware) on the left and a partstack to the right with parts
> (Allgemein, Kundenspezifisch, Notizen, Details). Each of them could
> contain another sash AND SO ON...
> I hope this is clear enough to understand. What do you thing about that?
>
> Thank you!
Re: PartSashContainer as child of PartStack [message #759409 is a reply to message #759393] Mon, 28 November 2011 15:22 Go to previous messageGo to next message
Christian Eugster is currently offline Christian Eugster
Messages: 134
Registered: July 2009
Location: St. Gallen Switzerland
Senior Member
Hi Tom,

maybe there is a misunderstanding? I would like to add PartSashContainers as child elements (Parts) to a PartStack. In the model editor it is possible to do that. But when I run the example, I get an exception saying "The added object 'org.eclipse.e4.ui.model.application.ui.basic.impl.PartSashContainerImpl@10aefdb is not assignable to 'org.eclipse.e4.ui.model.application.ui.basic.MStackElement' (see stacktrace below):

!SESSION 2011-11-28 16:17:02.908 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_22
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_CH
Framework arguments: -product ch.eugster.ims.core.product
Command-line arguments: -product ch.eugster.ims.core.product -data C:\Dokumente und Einstellungen\ceugster\Projekte\Ims\Workspace/../runtime-ch.eugster.ims.core.product -dev file:C:/Dokumente und Einstellungen/ceugster/Projekte/Ims/Workspace/.metadata/.plugins/org.eclipse.pde.core/ch.eugster.ims.core.product/dev.properties -os win32 -ws win32 -arch x86 -consoleLog -console

!ENTRY org.eclipse.e4.ui.workbench 4 0 2011-11-28 16:17:12.151
!MESSAGE
!STACK 0
java.lang.IllegalArgumentException: The added object 'org.eclipse.e4.ui.model.application.ui.basic.impl.PartSashContainerImpl@10aefdb (elementId: null, tags: null, contributorURI: null) (widget: null, renderer: null, toBeRendered: true, onTop: false, visible: true, containerData: null, accessibilityPhrase: null) (horizontal: true)' is not assignable to 'org.eclipse.e4.ui.model.application.ui.basic.MStackElement'
at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl$1.validate(ElementContainerImpl.java:114)
at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl$1.validate(ElementContainerImpl.java:1)
at org.eclipse.emf.common.util.BasicEList.addAllUnique(BasicEList.java:514)
at org.eclipse.emf.common.notify.impl.NotifyingListImpl.doAddAllUnique(NotifyingListImpl.java:506)
at org.eclipse.emf.common.notify.impl.NotifyingListImpl.addAllUnique(NotifyingListImpl.java:478)
at org.eclipse.emf.common.notify.impl.NotifyingListImpl.addAllUnique(NotifyingListImpl.java:406)
at org.eclipse.emf.common.util.AbstractEList.addAll(AbstractEList.java:374)
at org.eclipse.e4.ui.model.internal.ModelUtils.merge(ModelUtils.java:124)
at org.eclipse.e4.ui.model.fragment.impl.StringModelFragmentImpl.merge(StringModelFragmentImpl.java:288)
at org.eclipse.e4.ui.internal.workbench.ModelAssembler.processModel(ModelAssembler.java:163)
at org.eclipse.e4.ui.internal.workbench.ResourceHandler.loadMostRecentModel(ResourceHandler.java:246)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.loadApplicationModel(E4Application.java:353)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:217)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:132)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.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(EclipseStarter.java:352)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:624)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:579)
at org.eclipse.equinox.launcher.Main.run(Main.java:1431)
at org.eclipse.equinox.launcher.Main.main(Main.java:1407)

!ENTRY org.eclipse.osgi 4 0 2011-11-28 16:17:12.231
!MESSAGE Application error
!STACK 1
java.lang.NullPointerException
at org.eclipse.emf.ecore.util.EContentAdapter.addAdapter(EContentAdapter.java:352)
at org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:225)
at org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:188)
at org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:503)
at org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:1)
at org.eclipse.emf.common.util.ArrayDelegatingEList.addUnique(ArrayDelegatingEList.java:395)
at org.eclipse.emf.common.util.AbstractEList.add(AbstractEList.java:307)
at org.eclipse.emf.ecore.util.EContentAdapter.addAdapter(EContentAdapter.java:352)
at org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:225)
at org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:188)
at org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:503)
at org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:1)
at org.eclipse.emf.common.util.ArrayDelegatingEList.addUnique(ArrayDelegatingEList.java:395)
at org.eclipse.emf.common.util.AbstractEList.add(AbstractEList.java:307)
at org.eclipse.emf.ecore.util.EContentAdapter.addAdapter(EContentAdapter.java:352)
at org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:225)
at org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:188)
at org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:503)
at org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:1)
at org.eclipse.emf.common.util.ArrayDelegatingEList.addUnique(ArrayDelegatingEList.java:395)
at org.eclipse.emf.common.util.AbstractEList.add(AbstractEList.java:307)
at org.eclipse.emf.ecore.util.EContentAdapter.addAdapter(EContentAdapter.java:352)
at org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:225)
at org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:188)
at org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:503)
at org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:1)
at org.eclipse.emf.common.util.ArrayDelegatingEList.addUnique(ArrayDelegatingEList.java:395)
at org.eclipse.emf.common.util.AbstractEList.add(AbstractEList.java:307)
at org.eclipse.emf.ecore.util.EContentAdapter.addAdapter(EContentAdapter.java:352)
at org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:225)
at org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:188)
at org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:503)
at org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:1)
at org.eclipse.emf.common.util.ArrayDelegatingEList.addUnique(ArrayDelegatingEList.java:395)
at org.eclipse.emf.common.util.AbstractEList.add(AbstractEList.java:307)
at org.eclipse.emf.ecore.util.EContentAdapter.addAdapter(EContentAdapter.java:352)
at org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:225)
at org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:188)
at org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:503)
at org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:1)
at org.eclipse.emf.common.util.ArrayDelegatingEList.addUnique(ArrayDelegatingEList.java:395)
at org.eclipse.emf.common.util.AbstractEList.add(AbstractEList.java:307)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.<init>(E4Workbench.java:77)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:295)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:132)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.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(EclipseStarter.java:352)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:624)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:579)
at org.eclipse.equinox.launcher.Main.run(Main.java:1431)
at org.eclipse.equinox.launcher.Main.main(Main.java:1407)
Re: PartSashContainer as child of PartStack [message #759411 is a reply to message #759409] Mon, 28 November 2011 15:31 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas Schindl
Messages: 5423
Registered: July 2009
Senior Member
Which model editor allows that? If it is the Form-Based editor this
would be a bug because MPartStack from the Ecore-Model PoV this is
invalid but because of the type erasue in Java when it comes to generics
this is possible (though we once protected against this already).

Tom

Am 28.11.11 16:22, schrieb Christian Eugster:
> Hi Tom,
>
> maybe there is a misunderstanding? I would like to add
> PartSashContainers as child elements (Parts) to a PartStack. In the
> model editor it is possible to do that. But when I run the example, I
> get an exception saying "The added object
> mailto:'org.eclipse.e4.ui.model.application.ui.basic.impl.PartSashContainerImpl@10aefdb
> is not assignable to
> 'org.eclipse.e4.ui.model.application.ui.basic.MStackElement' (see
> stacktrace below):
>
> !SESSION 2011-11-28 16:17:02.908
> -----------------------------------------------
> eclipse.buildId=unknown
> java.version=1.6.0_22
> java.vendor=Sun Microsystems Inc.
> BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_CH
> Framework arguments: -product ch.eugster.ims.core.product
> Command-line arguments: -product ch.eugster.ims.core.product -data
> C:\Dokumente und
> Einstellungen\ceugster\Projekte\Ims\Workspace/../runtime-ch.eugster.ims.core.product
> -dev file:C:/Dokumente und
> Einstellungen/ceugster/Projekte/Ims/Workspace/.metadata/.plugins/org.eclipse.pde.core/ch.eugster.ims.core.product/dev.properties
> -os win32 -ws win32 -arch x86 -consoleLog -console
>
> !ENTRY org.eclipse.e4.ui.workbench 4 0 2011-11-28 16:17:12.151
> !MESSAGE !STACK 0
> java.lang.IllegalArgumentException: The added object
> mailto:'org.eclipse.e4.ui.model.application.ui.basic.impl.PartSashContainerImpl@10aefdb
> (elementId: null, tags: null, contributorURI: null) (widget: null,
> renderer: null, toBeRendered: true, onTop: false, visible: true,
> containerData: null, accessibilityPhrase: null) (horizontal: true)' is
> not assignable to
> 'org.eclipse.e4.ui.model.application.ui.basic.MStackElement'
> at
> org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl$1.validate(ElementContainerImpl.java:114)
>
> at
> org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl$1.validate(ElementContainerImpl.java:1)
>
> at
> org.eclipse.emf.common.util.BasicEList.addAllUnique(BasicEList.java:514)
> at
> org.eclipse.emf.common.notify.impl.NotifyingListImpl.doAddAllUnique(NotifyingListImpl.java:506)
>
> at
> org.eclipse.emf.common.notify.impl.NotifyingListImpl.addAllUnique(NotifyingListImpl.java:478)
>
> at
> org.eclipse.emf.common.notify.impl.NotifyingListImpl.addAllUnique(NotifyingListImpl.java:406)
>
> at
> org.eclipse.emf.common.util.AbstractEList.addAll(AbstractEList.java:374)
> at
> org.eclipse.e4.ui.model.internal.ModelUtils.merge(ModelUtils.java:124)
> at
> org.eclipse.e4.ui.model.fragment.impl.StringModelFragmentImpl.merge(StringModelFragmentImpl.java:288)
>
> at
> org.eclipse.e4.ui.internal.workbench.ModelAssembler.processModel(ModelAssembler.java:163)
>
> at
> org.eclipse.e4.ui.internal.workbench.ResourceHandler.loadMostRecentModel(ResourceHandler.java:246)
>
> at
> org.eclipse.e4.ui.internal.workbench.swt.E4Application.loadApplicationModel(E4Application.java:353)
>
> at
> org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:217)
>
> at
> org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:132)
>
> at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.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(EclipseStarter.java:352)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:624)
> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:579)
> at org.eclipse.equinox.launcher.Main.run(Main.java:1431)
> at org.eclipse.equinox.launcher.Main.main(Main.java:1407)
>
> !ENTRY org.eclipse.osgi 4 0 2011-11-28 16:17:12.231
> !MESSAGE Application error
> !STACK 1
> java.lang.NullPointerException
> at
> org.eclipse.emf.ecore.util.EContentAdapter.addAdapter(EContentAdapter.java:352)
>
> at
> org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:225)
>
> at
> org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:188)
>
> at
> org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:503)
>
> at
> org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:1)
>
> at
> org.eclipse.emf.common.util.ArrayDelegatingEList.addUnique(ArrayDelegatingEList.java:395)
>
> at
> org.eclipse.emf.common.util.AbstractEList.add(AbstractEList.java:307)
> at
> org.eclipse.emf.ecore.util.EContentAdapter.addAdapter(EContentAdapter.java:352)
>
> at
> org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:225)
>
> at
> org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:188)
>
> at
> org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:503)
>
> at
> org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:1)
>
> at
> org.eclipse.emf.common.util.ArrayDelegatingEList.addUnique(ArrayDelegatingEList.java:395)
>
> at
> org.eclipse.emf.common.util.AbstractEList.add(AbstractEList.java:307)
> at
> org.eclipse.emf.ecore.util.EContentAdapter.addAdapter(EContentAdapter.java:352)
>
> at
> org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:225)
>
> at
> org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:188)
>
> at
> org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:503)
>
> at
> org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:1)
>
> at
> org.eclipse.emf.common.util.ArrayDelegatingEList.addUnique(ArrayDelegatingEList.java:395)
>
> at
> org.eclipse.emf.common.util.AbstractEList.add(AbstractEList.java:307)
> at
> org.eclipse.emf.ecore.util.EContentAdapter.addAdapter(EContentAdapter.java:352)
>
> at
> org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:225)
>
> at
> org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:188)
>
> at
> org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:503)
>
> at
> org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:1)
>
> at
> org.eclipse.emf.common.util.ArrayDelegatingEList.addUnique(ArrayDelegatingEList.java:395)
>
> at
> org.eclipse.emf.common.util.AbstractEList.add(AbstractEList.java:307)
> at
> org.eclipse.emf.ecore.util.EContentAdapter.addAdapter(EContentAdapter.java:352)
>
> at
> org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:225)
>
> at
> org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:188)
>
> at
> org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:503)
>
> at
> org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:1)
>
> at
> org.eclipse.emf.common.util.ArrayDelegatingEList.addUnique(ArrayDelegatingEList.java:395)
>
> at
> org.eclipse.emf.common.util.AbstractEList.add(AbstractEList.java:307)
> at
> org.eclipse.emf.ecore.util.EContentAdapter.addAdapter(EContentAdapter.java:352)
>
> at
> org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:225)
>
> at
> org.eclipse.emf.ecore.util.EContentAdapter.setTarget(EContentAdapter.java:188)
>
> at
> org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:503)
>
> at
> org.eclipse.emf.ecore.impl.MinimalEObjectImpl$1ArrayDelegatingAdapterList.didAdd(MinimalEObjectImpl.java:1)
>
> at
> org.eclipse.emf.common.util.ArrayDelegatingEList.addUnique(ArrayDelegatingEList.java:395)
>
> at
> org.eclipse.emf.common.util.AbstractEList.add(AbstractEList.java:307)
> at
> org.eclipse.e4.ui.internal.workbench.E4Workbench.<init>(E4Workbench.java:77)
>
> at
> org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:295)
>
> at
> org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:132)
>
> at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.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(EclipseStarter.java:352)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:624)
> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:579)
> at org.eclipse.equinox.launcher.Main.run(Main.java:1431)
> at org.eclipse.equinox.launcher.Main.main(Main.java:1407)
>
Re: PartSashContainer as child of PartStack [message #759423 is a reply to message #759411] Mon, 28 November 2011 16:04 Go to previous messageGo to next message
Christian Eugster is currently offline Christian Eugster
Messages: 134
Registered: July 2009
Location: St. Gallen Switzerland
Senior Member
Hi Tom,

to be precisely:

I have an application.e4xmi which contains of a perspective with a partsashcontainer, which in turn contains a sashcontainer and a partstack with id "ch.eugster.ims.hotline.details".

In another plugin I have a fragment.e4xmi, where I added a "String Model Fragment" with the element id "ch.eugster.ims.hotline.details", Featurename "children" and an element PartSashContainer.

The whole I stuck together with the "e4 Workbenchmodel Editor".

Because my domain model has a somewhat deep hierarchy I would like to use PartSashContainers within PartStacks. The UI would be nicer and more userfriendly, than if I used e.g. master detail blocks.

Christian
Re: PartSashContainer as child of PartStack [message #759442 is a reply to message #759423] Mon, 28 November 2011 17:11 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas Schindl
Messages: 5423
Registered: July 2009
Senior Member
Ok - so you are stacking invalid elements into the PartStack there's no
way for the tooling to know that you are doing illegal things until the
complete model is assembled at application launch.

You are free to file an enhancement request but as said early I don't
expect this to happen for 4.2.

Tom

Am 28.11.11 17:04, schrieb Christian Eugster:
> Hi Tom,
>
> to be precisely:
> I have an application.e4xmi which contains of a perspective with a
> partsashcontainer, which in turn contains a sashcontainer and a
> partstack with id "ch.eugster.ims.hotline.details".
> In another plugin I have a fragment.e4xmi, where I added a "String Model
> Fragment" with the element id "ch.eugster.ims.hotline.details",
> Featurename "children" and an element PartSashContainer.
> The whole I stuck together with the "e4 Workbenchmodel Editor".
>
> Because my domain model has a somewhat deep hierarchy I would like to
> use PartSashContainers within PartStacks. The UI would be nicer and more
> userfriendly, than if I used e.g. master detail blocks.
>
> Christian
Re: PartSashContainer as child of PartStack [message #759491 is a reply to message #759442] Mon, 28 November 2011 19:41 Go to previous messageGo to next message
Christian Eugster is currently offline Christian Eugster
Messages: 134
Registered: July 2009
Location: St. Gallen Switzerland
Senior Member
Hi Tom,

no problem, if it will be implemented in 4.3. I am looking forward to this feature. In my opinion both, the PartStack AND the PartSashContainer are containers in a way and when a PartSashContainer can be child of PartStack, why should it not be possible in the inverse way. Thank you very much for taking my question seriously!

Christian
Re: PartSashContainer as child of PartStack [message #1264603 is a reply to message #758942] Wed, 05 March 2014 10:52 Go to previous messageGo to next message
Luis Fernando Robledano-Esteban is currently offline Luis Fernando Robledano-Esteban
Messages: 30
Registered: February 2013
Member
Completely agree that it is "necessary".
On the users perspective (the one which in the end matters Razz ):
-I have a set of Tabs (id. a PartStack), each of them containing a things that can be re-sized.

Example:
Imagine a MS-Project look a like tool: left side the tasks list (TreeView), right hand side the Gantt (Nebula).
Great, I did it with a PartSash Conatiner.
Now , I want to have more projects simultaneously, each of them in a separate Tab.
The easy solution: Put the Part Sash container, which I already did, in a Newly inserted PartStack and done.
Well it doesn't work like that because a Part Stack (or for that matter a Part) cannot contain a Part Sash Container.

What are the alternatives?

Thanks,
luis
(Im using Eclipse4.3 Kepler)


ArkosX
Re: PartSashContainer as child of PartStack [message #1264609 is a reply to message #1264603] Wed, 05 March 2014 10:57 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas Schindl
Messages: 5423
Registered: July 2009
Senior Member
This is possible in 4.4 milestones if you want that in 4.3 you have to
backport it yourself and contribute your own renderering.

Tom

On 05.03.14 11:52, Luis Fernando Robledano-Esteban wrote:
> Completely agree that it is "necessary".
> On the users perspective (the one which in the end matters :p ):
> -I have a set of Tabs (id. a PartStack), each of them containing a
> things that can be re-sized.
>
> Example:
> Imagine a MS-Project look a like tool: left side the tasks list
> (TreeView), right hand side the Gantt (Nebula).
> Great, I did it with a PartSash Conatiner.
> Now , I want to have more projects simultaneously, each of them in a
> separate Tab.
> The easy solution: Put the Part Sash container, which I already did, in
> a Newly inserted PartStack and done.
> Well it doesn't work like that because a Part Stack (or for that matter
> a Part) cannot contain a Part Sash Container.
>
> What are the alternatives?
>
> Thanks,
> luis
> (Im using Eclipse4.3 Kepler)
>
Re: PartSashContainer as child of PartStack [message #1264659 is a reply to message #1264609] Wed, 05 March 2014 11:49 Go to previous messageGo to next message
Luis Fernando Robledano-Esteban is currently offline Luis Fernando Robledano-Esteban
Messages: 30
Registered: February 2013
Member
Thanks!
I will check out with the M5 to see whether is what I mean Smile


ArkosX
Re: PartSashContainer as child of PartStack [message #1264664 is a reply to message #1264659] Wed, 05 March 2014 11:51 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas Schindl
Messages: 5423
Registered: July 2009
Senior Member
M6 is due this week and there are some bugfixes in this area IIRC.

Tom

On 05.03.14 12:49, Luis Fernando Robledano-Esteban wrote:
> Thanks!
> I will check out with the M5 to see whether is what I mean :)
Re: PartSashContainer as child of PartStack [message #1265591 is a reply to message #1264664] Thu, 06 March 2014 09:39 Go to previous messageGo to next message
Luis Fernando Robledano-Esteban is currently offline Luis Fernando Robledano-Esteban
Messages: 30
Registered: February 2013
Member
Thanks.
I've checked with M5 and it didn't work: with the E4 editor it isn't possible to put a Part Sash Container in a Part Stack (nor directly in a Part if that made sense) Sad
We will check then with the M6.


ArkosX
Re: PartSashContainer as child of PartStack [message #1265709 is a reply to message #1265591] Thu, 06 March 2014 13:02 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas Schindl
Messages: 5423
Registered: July 2009
Senior Member
Did you install the latest tooling?

Tom

On 06.03.14 10:39, Luis Fernando Robledano-Esteban wrote:
> Thanks.
> I've checked with M5 and it didn't work: with the E4 editor it isn't
> possible to put a Part Sash Container in a Part Stack (nor directly in a
> Part if that made sense) :(
> We will check then with the M6.
>
Re: PartSashContainer as child of PartStack [message #1265771 is a reply to message #1265709] Thu, 06 March 2014 14:33 Go to previous messageGo to next message
Luis Fernando Robledano-Esteban is currently offline Luis Fernando Robledano-Esteban
Messages: 30
Registered: February 2013
Member
Well, I had installed the E4Tools using the market-place from E4.4M5.
Application Model Editor 0.14.0
....
Now manually discovered that there exists an update URL:
http://download.eclipse.org/e4/updates/0.15/
....
I have updated using that site, but the problem is the same:
There is no option to create a PartSashContainer as child of PartStack nor I can drag and drop a PartStack into PartSash.

Maybe I didn't express correctly what I want?


ArkosX
Re: PartSashContainer as child of PartStack [message #1265799 is a reply to message #1265771] Thu, 06 March 2014 15:23 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas Schindl
Messages: 5423
Registered: July 2009
Senior Member
This would then certainly be a problem of the tool, the underlying
platform has this feature because split-editors are built on it!

Tom

On 06.03.14 15:33, Luis Fernando Robledano-Esteban wrote:
> Well, I had installed the E4Tools using the market-place from E4.4M5.
> Application Model Editor 0.14.0
> ...
> Now manually discovered that there exists an update URL:
> http://download.eclipse.org/e4/updates/0.15/
> ...
> I have updated using that site, but the problem is the same:
> There is no option to create a PartSashContainer as child of PartStack
> nor I can drag and drop a PartStack into PartSash.
>
> Maybe I didn't express correctly what I want?
Re: PartSashContainer as child of PartStack [message #1266605 is a reply to message #1265799] Fri, 07 March 2014 18:07 Go to previous messageGo to next message
Eric Moffatt is currently offline Eric Moffatt
Messages: 118
Registered: July 2009
Senior Member

You cannot add anything to MPartStacks except MStackElements. There is however a new model element MCompositePart which we used to implement the split editors in the IDE. Perhaps you could get farther along using one of these ?
Re: PartSashContainer as child of PartStack [message #1273188 is a reply to message #1266605] Wed, 19 March 2014 17:34 Go to previous messageGo to next message
Luis Fernando Robledano-Esteban is currently offline Luis Fernando Robledano-Esteban
Messages: 30
Registered: February 2013
Member
Thanks for the hint.
I'm completely newbie in this and all this idea of having to manage Parts (the whole Eclipse model framework .... for just to put to controls in another one...) scares me Razz. And even more if its something just fresh from the oven.
I will check it out.
Anyways is there any example I could use?
How I do it programmatically (the E4Tools didn't work for me in M6)? How to I put two parts that I have already created as member of a mother Part which I associate to a control (Composite)?
Thanks again


ArkosX
Re: PartSashContainer as child of PartStack [message #1282057 is a reply to message #1273188] Tue, 01 April 2014 20:18 Go to previous message
Eric Moffatt is currently offline Eric Moffatt
Messages: 118
Registered: July 2009
Senior Member
You add an MCompositePart (MCP) just as you would any other part (define the Label, Icon... as well as an implementation URI. You can then treat the new MCP as you would any top level container; add a MPartSashContainer to it and add the 'inner' parts to the sash.

If you want a look at the split editor work it's in 'org.eclipse.e4.ui.workbench.addons.swt' as the 'SplitterAddon'. For you the most interesting bit might be the implementation for the MCP "SplitHost" which deals with activations and forwarding of various injected method invocations...
Previous Topic:Activator not called if plugin created by JAR
Next Topic:How can I get ISharedImages?
Goto Forum:
  


Current Time: Sat Oct 25 21:26:41 GMT 2014

Powered by FUDForum. Page generated in 0.02773 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software