Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-ui-dev] How to open a view programmatically

Rishi,

Please post questions on how to use the Eclipse APIs in the eclipse.tools 
newsgroup rather than the developer mailing lists.

The main problem is that you are constructing your own instance of 
PackageView, after it has already been created using 
showView("test.PackageView").
The workbench does not recognize the second instance. 
showView will instantiate your PackageView and call createPartControl. You 
do not have to call activate yourself in this situation -- showView 
already activates the view.

I suggest adding a setInput method to PackageView so your code can do 
something like:

PackageView packageView = (PackageView) page.showView("test.PackageView");
packageView.setInput(htableListFile)

In setInput, you would refresh to view's widgets to show the new input.

Also, be aware that getActiveWorkbenchWindow and getActivePage may return 
null.

Nick






Rishi.Sahni@xxxxxxxxxxx
Sent by: platform-ui-dev-admin@xxxxxxxxxxx
01/10/03 12:01 AM
Please respond to platform-ui-dev

 
        To:     platform-ui-dev@xxxxxxxxxxx
        cc: 
        Subject:        [platform-ui-dev] How to open a view programmatically



Can any body tell me how to open a view programmatically?
I have already used showView()
written following lines of code to open a view

IWorkbenchWindow dw = 
PlatformUI.getWorkbench().getActiveWorkbenchWindow();
IWorkbenchPage page = dw.getActivePage();
try{
      page.showView("test.PackageView");
}catch (PartInitException e){
      DialogUtil.openError(dw.getShell(), ResourceMessages.getString(
"DataFileResource.errorMessage"),e.getMessage(),e);
}

now in Package View i want to populate a tree the information of tree
Elements is passed in the constructor as shown below

if (page != null){
      PackageView pv = new PackageView(htableListFile);
      pv.createPartControl(parent);
      IViewPart part =(IViewPart) pv.getViewSite() ;
      page.activate(part) ;
}





and in createPartControl method of PackageView am populating the Tree View
as




if(table != null){
      Enumeration enum= table.keys();
      while(enum.hasMoreElements()){
            String Key = enum.nextElement().toString();
            TreeParent p31 = new TreeParent(Key);
            ArrayList tempalist =(ArrayList) table.get(Key);
            for(int i = 0;i<tempalist.size();i++){
                  System.out.println("Key--"+Key+" >> "
+tempalist.get(i).toString());
            }
            root.addChild(p31);
      }
}else{
      System.out.println("table is Null");
}






the above Code is adding Childs in tree but its not showing up Childs ,may
be its not updating the view

Help required

Thanks in advance



Rishi Sahni








_______________________________________________
platform-ui-dev mailing list
platform-ui-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/platform-ui-dev





Back to the top