Re: Use MultiView APIs

Nuwan Sameera <[email protected]>
Newsgroups gmane.comp.java.netbeans.modules.openide.devel
Message-ID <CAN=6b0g8T61MZoySkdi8PBGXM+_ncWBtyT-tYSEkA7u9NhmZ9Q@mail.gmail.com>
Hi,

Thank you for the support.

Yes problem occurred line 508. But problem is not DefaultMutableTreeNode.
Because without multiview it works fine.

We need to provide Lookup object with CloneableEditorSupport instance
instead Lookup.EMPTY. I this this is the problem.

Regards,
Nuwan Sameera.


On Fri, Jul 15, 2016 at 12:37 AM, geertjan wielenga <
[email protected]> wrote:

>
> 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
> <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]> 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]> 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]> 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.
>
>
>


-- 
Nuwan Sameera.
Undergraduate,
Electronic and Telecommunication Engineering,
University of Moratuwa.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.