Re: Use MultiView APIs
geertjan wielenga <[email protected]>
| Newsgroups | gmane.comp.java.netbeans.modules.openide.devel |
|---|---|
| Organization | Oracle Corporation |
| Message-ID | <[email protected]> |
You're not going to be able to do what you want while you have a JTree. You can write back and forth but the answer will be the same. Take a look at the Services window (Ctrl-5). What you should be trying to create is actually a new top level node in the Services window, not a new TopComponent from the Window menu. Gj On 14-7-2016 21:44, Nuwan Sameera wrote: > > 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] <mailto:[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] >> <mailto:[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 >>> 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. >> >> >> >> >> -- >> Nuwan Sameera. >> Undergraduate, >> Electronic and Telecommunication Engineering, >> University of Moratuwa. >