From: SourceForge.net <no...@so...> - 2003-03-31 20:24:28
|
Bugs item #708575, was opened at 2003-03-24 00:26 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100588&aid=708575&group_id=588 Category: plugins Group: None Status: Closed Resolution: Invalid Priority: 5 Submitted By: Sergey V. Udaltsov (svu) Assigned to: Nobody/Anonymous (nobody) Summary: PViewer does not return proper VPTNode for ProjectViewer Initial Comment: There is a valid View with some loaded project (just a second ago I got ProjectViewerEvent). I get the ProjectViewer using ProjectViewer.getViewer( view ). Then I do pv.getSelectedNode() and get null as result (instead of correct VPTProject) ---------------------------------------------------------------------- >Comment By: Sergey V. Udaltsov (svu) Date: 2003-03-31 21:38 Message: Logged In: YES user_id=681 I hope you don't mind me creating another bug report regarding the parser issue - I just have a couple of words more to say about it. ---------------------------------------------------------------------- Comment By: Sergey V. Udaltsov (svu) Date: 2003-03-30 22:15 Message: Logged In: YES user_id=681 Sometimes it is null for me - at jedit startup I got sometimes NullPointerExceptions from getCurrentProject() method - which was cured by checking getRoot() for null (I modified PV locally). So if you could please add it.. - anyway it does not create any significant burden... About XML. Even this dependancy (xml plugin) does not cure the problem with xerces.jar for me. Only addind the mentioned line to ProjectPlugin.start helped against ClassNotFound exceptions. The same story was with SQL plugin - sometimes I got exceptions, sometimes I did not. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2003-03-30 03:48 Message: Logged In: NO No need to check for null: the root is never going to be null. :-) About the XML issue, after creating a dependency on the XML plugin I'm not having any problems anymore. If someone gets any error they should be reporting it here. :-) Thanks for the tip, though. ---------------------------------------------------------------------- Comment By: Sergey V. Udaltsov (svu) Date: 2003-03-30 02:38 Message: Logged In: YES user_id=681 Really. The idea about PVActions.getCurrentProject() is great. Just 0.02: check viewer.getRoot() for null BEFORE checking whether is is project. The line if ( viewer != null ) should be if ( viewer != null && viewer.getRoot() != null ) This way it works better. Also, another 0.02. About the XML plugin, unresolved classes etc (looking at the noted about removing xerces.jar). The line in ProjectPlugin.start(): Thread.currentThread().setContextClassLoader(ProjectPlugin.class.getClassLoader() ); helps perfectly. I had same problem in SQL plugin... ---------------------------------------------------------------------- Comment By: Marcelo Vanzin (vanza) Date: 2003-03-29 00:44 Message: Logged In: YES user_id=75113 You may use getSelectedNode(), but it's not guaranteed to return something. To check the project, you could use the getRoot() method of the viewer (see below). You may use the projectviewer.PVActions.getCurrentProject() method for that - but it still can return null, if the user is currently using the "All Projects" view. Also, it has the advantage of not needing the PV dockable to be instantiated in the view to work - it would get the "last" project in that case. ---------------------------------------------------------------------- Comment By: Sergey V. Udaltsov (svu) Date: 2003-03-29 00:25 Message: Logged In: YES user_id=681 Sorry, I could not reply earier (busy at work). In order to reproduce, could you please take the latest SQL plugin from CVS and look at the method sql.SqlUtils.getProject( View view ). There is commented code in it - it reproduces the situation. (Just comment the existing method body). ---------------------------------------------------------------------- Comment By: Marcelo Vanzin (vanza) Date: 2003-03-25 23:25 Message: Logged In: YES user_id=75113 Sorry, I really can't reproduce this. Right after switching projects (when the event fires) nothing in the tree is selected - thus "getSelectedNode()" returns null. Only after selecting something it returns a node - and selecting the Project node makes the project be returned. Try evalutating this in a buffer: projetviewer.ProjectViewer.getViewer(view).getSelectedNode(); To see. ---------------------------------------------------------------------- Comment By: Sergey V. Udaltsov (svu) Date: 2003-03-24 13:42 Message: Logged In: YES user_id=681 Sure there is selected project:) ---------------------------------------------------------------------- Comment By: Marcelo Vanzin (vanza) Date: 2003-03-24 02:11 Message: Logged In: YES user_id=75113 Dumb question: is there anything selected in the tree? If you want to get the project, you should try "getRoot()" (returns the root of the tree - may not be a project always, so be careful!). ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100588&aid=708575&group_id=588 |