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