Re: Use MultiView APIs
Nuwan Sameera <[email protected]>
| Newsgroups | gmane.comp.java.netbeans.modules.openide.devel |
|---|---|
| Message-ID | <CAN=6b0iBa3LTLG7mi7xfVNuN1We5z-10DDiZ5X7N3TYcxmJrkQ@mail.gmail.com> |
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. > > > >