Re: Use MultiView APIs
geertjan wielenga <[email protected]>
| Newsgroups | gmane.comp.java.netbeans.modules.openide.devel |
|---|---|
| Organization | Oracle Corporation |
| Message-ID | <[email protected]> |
The stacktrace is much more detailed to what you provided:
java.lang.IllegalArgumentException: We expect CloneableEditorSupport in
org.openide.util.Lookup$Empty@cce1139
at
org.netbeans.core.spi.multiview.text.MultiViewEditorElement.<init>(MultiViewEditorElement.java:97)
at
org.apache.syncope.netbeans.plugin.view.ResourceExplorerTopComponent$7.createElement(ResourceExplorerTopComponent.java:508)
at
org.netbeans.core.multiview.MultiViewModel.getElementForDescription(MultiViewModel.java:222)
at
org.netbeans.core.multiview.MultiViewModel.getActiveElement(MultiViewModel.java:132)
at
org.netbeans.core.multiview.MultiViewModel.getActiveElement(MultiViewModel.java:128)
at
org.netbeans.core.multiview.MultiViewPeer.assignLookup(MultiViewPeer.java:261)
at
org.netbeans.core.multiview.MultiViewTopComponent.getLookup(MultiViewTopComponent.java:117)
at
org.netbeans.modules.localhistory.LocalHistory$OpenedFilesListener.handleTCFiles(LocalHistory.java:535)
at
org.netbeans.modules.localhistory.LocalHistory$OpenedFilesListener.propertyChange(LocalHistory.java:464)
at
java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:335)
at
java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:327)
at
java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:263)
at
org.netbeans.core.windows.RegistryImpl.doFirePropertyChange(RegistryImpl.java:329)
at
org.netbeans.core.windows.RegistryImpl.topComponentOpened(RegistryImpl.java:187)
at
org.netbeans.core.windows.WindowManagerImpl.notifyRegistryTopComponentOpened(WindowManagerImpl.java:1183)
at
org.netbeans.core.windows.WindowManagerImpl.notifyTopComponentOpened(WindowManagerImpl.java:1151)
at
org.netbeans.core.windows.Central.addModeOpenedTopComponent(Central.java:798)
at
org.netbeans.core.windows.ModeImpl.addOpenedTopComponent(ModeImpl.java:354)
at
org.netbeans.core.windows.WindowManagerImpl.topComponentOpenAtTabPosition(WindowManagerImpl.java:1261)
at
org.netbeans.core.windows.WindowManagerImpl.topComponentOpen(WindowManagerImpl.java:1226)
at org.openide.windows.TopComponent.open(TopComponent.java:497)
at org.openide.windows.TopComponent.open(TopComponent.java:477)
at
org.apache.syncope.netbeans.plugin.view.ResourceExplorerTopComponent.openMailEditor(ResourceExplorerTopComponent.java:580)
at
org.apache.syncope.netbeans.plugin.view.ResourceExplorerTopComponent.resourceExplorerTreeMouseClicked(ResourceExplorerTopComponent.java:170)
at
org.apache.syncope.netbeans.plugin.view.ResourceExplorerTopComponent.access$000(ResourceExplorerTopComponent.java:98)
at
org.apache.syncope.netbeans.plugin.view.ResourceExplorerTopComponent$1.mouseClicked(ResourceExplorerTopComponent.java:143)
at
java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
at java.awt.Component.processMouseEvent(Component.java:6528)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at
java.awt.LightweightDispatcher.processMouseEvent(Container.java:4542)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2739)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:719)
at java.awt.EventQueue$4.run(EventQueue.java:717)
at java.security.AccessController.doPrivileged(Native Method)
at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
at
org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
[catch] at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Here's what I see at line 508, which is the line shown above as being
problematic:
@Override
public MultiViewElement createElement() {
return new MultiViewEditorElement(Lookup.EMPTY);
}
That looks quite suspicious.
I'd suggest you start by rewriting your code to use Nodes instead of
DefaultMutableTreeNode, etc.
I.e., rewrite your JTree to use Nodes instead:
https://platform.netbeans.org/tutorials/nbm-nodesapi2.html
Gj
On 14-7-2016 20:55, Nuwan Sameera wrote:
> Hi,
>
> After run the project,
>
> Go *Window-> Apache Syncope
>
> *
> Enter following details,
>
> *Server URL - http://syncope-vm.apache.org:9080/syncope/rest
> User Name - admin
> Password - password*
>
> Then go to tree in left side called Apache Syncope and expand it.
>
> Expand *Mail Templates*.
>
> *Double click any element - Use First Element*.
>
> Then show different tabs saying "*Test 1 , Test 2, Test 3*". But
> nothing open editor pane and given runtime error.
>
> I think you can reproduce issue.
>
> Thanks and Regards,
> Nuwan Samaeera.
>
> On Fri, Jul 15, 2016 at 12:14 AM, geertjan wielenga
> <[email protected] <mailto:[email protected]>>
> wrote:
>
>
>
> Well, you're going to need to provide a lot of information --
> otherwise I can't help.
>
> What must I do to see the problem myself? When I open the window,
> I am asked for a user and password and various things -- I don't
> know what to fill in there, so I cannot reproduce the problem.
>
> Pretend you're me and provide the info I need, assuming that I
> know nothing at all about your problem, up to the point where I
> can actually see the problem myself.
>
> Gj
>
>
>
>
> On 14-7-2016 20:40, Nuwan Sameera wrote:
>> Hi,
>>
>> I tried with this change. But same error occurred. How I change
>> 505. Error given from that line.
>>
>> Thanks and Regards,
>> Nuwan Sameera
>>
>> On Thu, Jul 14, 2016 at 11:59 PM, geertjan wielenga
>> <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>>
>> Possibly this is all you need -- change the class signature
>> to this:
>>
>> public final class ResourceExplorerTopComponent extends
>> CloneableTopComponent
>>
>> Gj
>>
>>
>> On 14-7-2016 20:11, Nuwan Sameera wrote:
>>> Hi,
>>>
>>> Thank you. My source codes available in [1]
>>>
>>> [1]
>>> https://github.com/NuwanSameera/syncope/blob/master/netbeans-plugin/src/main/java/org/apache/syncope/netbeans/plugin/view/ResourceExplorerTopComponent.java
>>>
>>> Line 479 - 581
>>>
>>> Please check and support to solve issue.
>>>
>>> I need to open empty editor and editor with content.
>>>
>>> Regards,
>>> Nuwan Sameera.
>>>
>>>
>>> On Thu, Jul 14, 2016 at 11:27 PM, geertjan wielenga
>>> <[email protected]
>>> <mailto:[email protected]>> wrote:
>>>
>>>
>>> Is the source code on GitHub or somewhere like that?
>>> Would be happy to help you, but need more context than
>>> the below, i.e., ideally the full source code.
>>>
>>> Gj
>>>
>>>
>>> On 14-7-2016 19:30, Nuwan Sameera wrote:
>>>> Hi all,
>>>>
>>>> I am developing netbeans plugin for apache syncope. I
>>>> need to open editors in different tabs in same instance
>>>> like SOURCE and HISTORY. I am tried to using following
>>>> code.
>>>>
>>>> MultiViewDescription[] descriptionArray = new
>>>> MultiViewDescription[0];
>>>> descriptionArray[0] = new MultiViewDescription() {
>>>> @Override
>>>> public int getPersistenceType() {
>>>> return 0;
>>>> }
>>>>
>>>> @Override
>>>> public String getDisplayName() {
>>>> return "Test 1";
>>>> }
>>>>
>>>> @Override
>>>> public Image getIcon() {
>>>> return null;
>>>> }
>>>>
>>>> @Override
>>>> public HelpCtx getHelpCtx() {
>>>> return null;
>>>> }
>>>>
>>>> @Override
>>>> public String preferredID() {
>>>> return "A";
>>>> }
>>>>
>>>> @Override
>>>> public MultiViewElement createElement() {
>>>> return new MultiViewEditorElement(Lookup.EMPTY);
>>>> *//GIVEN RUNTIME ERROR
>>>> *
>>>> }
>>>> };
>>>>
>>>> TopComponent ctc =
>>>> MultiViewFactory.createMultiView(descriptionArray,
>>>> descriptionArray[0]);
>>>> ctc.open();
>>>> ctc.requestActive();
>>>>
>>>> *//GIVEN RUNTIME ERROR Line give
>>>> *|IllegalArgumentException
>>>> <http://download.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true>
>>>> saying |||CloneableEditorSupport|
>>>> <http://bits.netbeans.org/8.0/javadoc/org-openide-text/org/openide/text/CloneableEditorSupport.html?is-external=true>
>>>> is not present in provided |Lookup|
>>>> <http://bits.netbeans.org/8.0/javadoc/org-openide-util/org/openide/util/Lookup.html?is-external=true>.
>>>>
>>>> |
>>>> |I search method to create Lookup object with
>>>> ClonableEditorSupport. I don't found suitable solution.
>>>>
>>>> |
>>>> |Please help me.
>>>>
>>>> |
>>>> |Thanks and Regards. |
>>>> --
>>>> Nuwan Sameera.
>>>> Undergraduate,
>>>> Electronic and Telecommunication Engineering,
>>>> University of Moratuwa.
>>>
>>>
>>>
>>>
>>> --
>>> Nuwan Sameera.
>>> Undergraduate,
>>> Electronic and Telecommunication Engineering,
>>> University of Moratuwa.
>>
>>
>>
>>
>> --
>> Nuwan Sameera.
>> Undergraduate,
>> Electronic and Telecommunication Engineering,
>> University of Moratuwa.
>
>
>
>
> --
> Nuwan Sameera.
> Undergraduate,
> Electronic and Telecommunication Engineering,
> University of Moratuwa.