IDEA requires the use of DefaultActionGroup over simple ActionGroup?

Hi,

I've created an action group which extends ActionGroup and not DefaultActionGroup. While loading,
intellij reported this error:
java.lang.Throwable
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:34)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.b(ActionManagerImpl.java:218)
at
com.intellij.openapi.actionSystem.impl.ActionManagerImpl.processActionsElement(ActionManagerImpl.java:379)
at com.intellij.idea.IdeaApplication.c(IdeaApplication.java:1)
at com.intellij.idea.IdeaApplication.access$200(IdeaApplication.java:22)
at com.intellij.idea.IdeaApplication$IdeStarter.main(IdeaApplication.java:1)
at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:58)
at com.intellij.idea.Main$3.run(Main.java:1)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:110)
at com.intellij.ide.IdeEventQueue.a(IdeEventQueue.java:171)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:143)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
ERROR - nSystem.impl.ActionManagerImpl - class with name
"org.mevenide.idea.synchronize.SynchronizeWithModuleActionGroup" should be instance of
com.intellij.openapi.actionSystem.DefaultActionGroup because there are children specified
ERROR - nSystem.impl.ActionManagerImpl - IntelliJ IDEA (Irida) #3397 Build #3397
ERROR - nSystem.impl.ActionManagerImpl - JDK: 1.5.0_03
ERROR - nSystem.impl.ActionManagerImpl - VM: Java HotSpot(TM) Client VM
ERROR - nSystem.impl.ActionManagerImpl - Vendor: Sun Microsystems Inc.
ERROR - nSystem.impl.ActionManagerImpl - OS: Windows XP
ERROR - nSystem.impl.ActionManagerImpl - Last Action:
ERROR - nSystem.impl.ActionManagerImpl - class with name
"org.mevenide.idea.synchronize.SynchronizeWithModuleActionGroup" should be instance of
com.intellij.openapi.actionSystem.DefaultActionGroup because there are children specified
java.lang.Throwable
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:34)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.b(ActionManagerImpl.java:218)
at
com.intellij.openapi.actionSystem.impl.ActionManagerImpl.processActionsElement(ActionManagerImpl.java:379)
at com.intellij.idea.IdeaApplication.c(IdeaApplication.java:1)
at com.intellij.idea.IdeaApplication.access$200(IdeaApplication.java:22)
at com.intellij.idea.IdeaApplication$IdeStarter.main(IdeaApplication.java:1)
at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:58)
at com.intellij.idea.Main$3.run(Main.java:1)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:110)
at com.intellij.ide.IdeEventQueue.a(IdeEventQueue.java:171)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:143)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Is the use of DefaultActionGroup mandated? I don't mind extending it, but I thought that
DefaultActionGroup is just a simple implementation of a generic ActionGroup. Since I wanted my group
to decide during runtime which actions it contains, I figured it would be best not to expose
action-manipulation methods such as the ones in DefaultActionGroup.

What is the recommended practice here?

5 comments
Comment actions Permalink

Hi,
if you register your action group in plugin.xml it should extends
DefaultActionGroup. Is it your case?

Thank you.

--
Anna Kozlova
JetBrains Inc.
http://www.intellij.com
"Develop with pleasure!"



"Arik Kfir" <arikkfir@gmail.com> wrote in message
news:dasp0t$mj0$1@is.intellij.net...

Hi,

>

I've created an action group which extends ActionGroup and not

DefaultActionGroup. While loading,

intellij reported this error:
java.lang.Throwable
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:34)
at

com.intellij.openapi.actionSystem.impl.ActionManagerImpl.b(ActionManagerImpl
.java:218)

at

>
com.intellij.openapi.actionSystem.impl.ActionManagerImpl.processActionsEleme
nt(ActionManagerImpl.java:379)

at com.intellij.idea.IdeaApplication.c(IdeaApplication.java:1)
at com.intellij.idea.IdeaApplication.access$200(IdeaApplication.java:22)
at

com.intellij.idea.IdeaApplication$IdeStarter.main(IdeaApplication.java:1)

at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:58)
at com.intellij.idea.Main$3.run(Main.java:1)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at

com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:110)

at com.intellij.ide.IdeEventQueue.a(IdeEventQueue.java:171)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:143)
at

java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:242)

at

java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:163)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
ERROR - nSystem.impl.ActionManagerImpl - class with name
"org.mevenide.idea.synchronize.SynchronizeWithModuleActionGroup" should be

instance of

com.intellij.openapi.actionSystem.DefaultActionGroup because there are

children specified

ERROR - nSystem.impl.ActionManagerImpl - IntelliJ IDEA (Irida)

#3397 Build #3397

ERROR - nSystem.impl.ActionManagerImpl - JDK: 1.5.0_03
ERROR - nSystem.impl.ActionManagerImpl - VM: Java HotSpot(TM)

Client VM

ERROR - nSystem.impl.ActionManagerImpl - Vendor: Sun

Microsystems Inc.

ERROR - nSystem.impl.ActionManagerImpl - OS: Windows XP
ERROR - nSystem.impl.ActionManagerImpl - Last Action:
ERROR - nSystem.impl.ActionManagerImpl - class with name
"org.mevenide.idea.synchronize.SynchronizeWithModuleActionGroup" should be

instance of

com.intellij.openapi.actionSystem.DefaultActionGroup because there are

children specified

java.lang.Throwable
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:34)
at

com.intellij.openapi.actionSystem.impl.ActionManagerImpl.b(ActionManagerImpl
.java:218)

at

>
com.intellij.openapi.actionSystem.impl.ActionManagerImpl.processActionsEleme
nt(ActionManagerImpl.java:379)

at com.intellij.idea.IdeaApplication.c(IdeaApplication.java:1)
at com.intellij.idea.IdeaApplication.access$200(IdeaApplication.java:22)
at

com.intellij.idea.IdeaApplication$IdeStarter.main(IdeaApplication.java:1)

at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:58)
at com.intellij.idea.Main$3.run(Main.java:1)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at

com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:110)

at com.intellij.ide.IdeEventQueue.a(IdeEventQueue.java:171)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:143)
at

java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:242)

at

java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:163)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

>

Is the use of DefaultActionGroup mandated? I don't mind extending it, but

I thought that

DefaultActionGroup is just a simple implementation of a generic

ActionGroup. Since I wanted my group

to decide during runtime which actions it contains, I figured it would be

best not to expose

action-manipulation methods such as the ones in DefaultActionGroup.

>

What is the recommended practice here?




0
Comment actions Permalink

Hi

Yes I know - my question was why? I assumed you simply call 'getChildren' on the group, so extending
ActionGroup would be sufficient.

I got around the problem by indeed extending DefaultActionGroup, but I wanted to decide on the
group's children dynamically (in the getChildren method) and in DefaultActionGroup it is final...

Now, I need to register listeners and update the group...it's not too much, but I'd rather it was
dynamic...

Anna Kozlova (JetBrains) wrote:

Hi,
if you register your action group in plugin.xml it should extends
DefaultActionGroup. Is it your case?

Thank you.

0
Comment actions Permalink

Hi,
sorry, i was wrong - you can define group which extends ActionGroup (and not
DefaultActionGroup). One constraint here - do not define its children in
pligin.xml because it's not obvious what to do with them. So your "group
element" in xml must be empty.

--
Anna Kozlova
JetBrains Inc.
http://www.intellij.com
"Develop with pleasure!"



"Arik Kfir" <arikkfir@gmail.com> wrote in message
news:db11h3$mc8$1@is.intellij.net...

Hi

>

Yes I know - my question was why? I assumed you simply call 'getChildren'

on the group, so extending

ActionGroup would be sufficient.

>

I got around the problem by indeed extending DefaultActionGroup, but I

wanted to decide on the

group's children dynamically (in the getChildren method) and in

DefaultActionGroup it is final...
>

Now, I need to register listeners and update the group...it's not too

much, but I'd rather it was

dynamic...

>

Anna Kozlova (JetBrains) wrote:

Hi,
if you register your action group in plugin.xml it should extends
DefaultActionGroup. Is it your case?

>

Thank you.

>



0
Comment actions Permalink

Hi,

thanks. Does it have to be completely empty? because I had "<add-to-group>" elements in it (and got
the error...).

I can add the group manually via ActionMAnager, but then we'd miss the whole point of defining
action (groups) in plugin.xml...

What do you think?

Anna Kozlova (JetBrains) wrote:

Hi,
sorry, i was wrong - you can define group which extends ActionGroup (and not
DefaultActionGroup). One constraint here - do not define its children in
pligin.xml because it's not obvious what to do with them. So your "group
element" in xml must be empty.

0
Comment actions Permalink

You are right - it should be empty only from "action elements".
--
Anna Kozlova
JetBrains Inc.
http://www.intellij.com
"Develop with pleasure!"


"Arik Kfir" <arikkfir@gmail.com> wrote in message
news:db3gac$e7h$1@is.intellij.net...

Hi,

>

thanks. Does it have to be completely empty? because I had

"<add-to-group>" elements in it (and got

the error...).

>

I can add the group manually via ActionMAnager, but then we'd miss the

whole point of defining

action (groups) in plugin.xml...

>

What do you think?

>

Anna Kozlova (JetBrains) wrote:

Hi,
sorry, i was wrong - you can define group which extends ActionGroup (and

not

DefaultActionGroup). One constraint here - do not define its children in
pligin.xml because it's not obvious what to do with them. So your "group
element" in xml must be empty.

>



0

Please sign in to leave a comment.