Re: Use MultiView APIs
Nuwan Sameera <[email protected]>
| Newsgroups | gmane.comp.java.netbeans.modules.openide.devel |
|---|---|
| Message-ID | <CAN=6b0hnXYXzF9iCd8sX4Ko27h+ZiDHRwLmVWnnqD07FpkcJrA@mail.gmail.com> |
Hi, Thank you. I undeatand about useage about Nodes. I will use it. But I don't undestand "don't use seperate TopCompinent,instead ectend the Services window" Also how I resolve my issue. How I open multi view with text editor. Regards, Nuwan Sameera. On 15 Jul 2016 12:58 a.m., "geertjan wielenga" <[email protected]> wrote: > > > Please, move to the Nodes API from your JTree. Once you have Nodes, you'll > have many other useful features too. Plus, I recommend that you don't use a > separate TopComponent, instead extend the Services window: > > > http://bits.netbeans.org/dev/javadoc/org-netbeans-core-ide/org/netbeans/api/core/ide/ServicesTabNodeRegistration.html > > Example: > > https://blogs.oracle.com/geertjan/entry/servicestabnoderegistration > > Gj > > > On 14-7-2016 21:22, Nuwan Sameera wrote: > > 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. > > >