Re: Use MultiView APIs
Dmitry Avtonomov <[email protected]>
| Newsgroups | gmane.comp.java.netbeans.modules.openide.devel |
|---|---|
| Message-ID | <CAMMjtf-tjeXd39f26fap4bewxRz2ynWtJLqVp=zRift8eJV4hQ@mail.gmail.com> |
yourDataObj.getLookup() On Jul 19, 2016 00:09, "Nuwan Sameera" <[email protected]> wrote: Hi, Please give me example to how I return the dataobject's lookup. Regards, On Tue, Jul 19, 2016 at 2:33 AM, Enrico Scantamburlo <[email protected] > wrote: > Instead of returning an empty lookup try to return the dataobject's lookup > > On 18 Jul 2016 11:12, "Nuwan Sameera" <[email protected]> wrote: > >> Hi, >> >> I asked from apache to developed described manner. But they need my >> aproach. >> I have problem with multiview. It describe on first 5 emails in this >> thread. So please support me to solve this issue. >> >> Regards, >> Nuwan Sameera. >> On 15 Jul 2016 03:44, "geertjan wielenga" <[email protected]> >> wrote: >> >>> >>> https://blogs.oracle.com/geertjan/entry/empty_node_populated_on_the >>> >>> The above would be how to do it. >>> >>> I've made a start here: >>> >>> >>> https://github.com/GeertjanWielenga/NetApacheSyncopeBeans/tree/master/NASB >>> >>> See attached screenshot. >>> >>> Doesn't work yet completely, though it's a start. >>> >>> Gj >>> >>> On 14-7-2016 23:34, geertjan wielenga wrote: >>> >>> >>> On 14-7-2016 22:05, Nuwan Sameera wrote: >>> >>> Hi, >>> >>> Now I understand what you say. :) Thank you very much to move me to >>> correct way. >>> >>> But, finally I can faced same problem with open multiview. How I open >>> separate tabs in same editor component ? >>> >>> >>> 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 >>> >>> Given Mail Templates and Report Templates have many types called HTML, >>> TEXT etc. I need open these types in tabs after double clicking given >>> element. >>> >>> How I do this? Please help me for this. Am I wrong way. Give me better >>> way to do this. >>> >>> Regards, >>> Nuwan Sameera. >>> >>> On Fri, Jul 15, 2016 at 1:16 AM, geertjan wielenga < >>> [email protected]> wrote: >>> >>>> >>>> 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]> 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. >>>>> >>>>> >>>>> >>>> >>> >>> >>> -- >>> Nuwan Sameera. >>> Undergraduate, >>> Electronic and Telecommunication Engineering, >>> University of Moratuwa. >>> >>> >>> >>> -- Nuwan Sameera. Undergraduate, Electronic and Telecommunication Engineering, University of Moratuwa.