[jboss-cvs] jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/views ...

Marshall Culpepper mculpepper at jboss.com
Fri Mar 2 21:38:24 EST 2007


  User: mculpepper
  Date: 07/03/02 21:38:24

  Modified:    core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/views 
                        ProjectPackagesView.java
  Log:
  initial implementation of newPackageActions (single extension point that supports links and actions in the ProjectPackagesView)
  
  Revision  Changes    Path
  1.26      +79 -31    jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/views/ProjectPackagesView.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ProjectPackagesView.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/packages/ui/views/ProjectPackagesView.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -b -r1.25 -r1.26
  --- ProjectPackagesView.java	3 Mar 2007 01:28:46 -0000	1.25
  +++ ProjectPackagesView.java	3 Mar 2007 02:38:24 -0000	1.26
  @@ -8,7 +8,6 @@
   import org.eclipse.core.resources.IProject;
   import org.eclipse.core.runtime.NullProgressMonitor;
   import org.eclipse.jface.action.Action;
  -import org.eclipse.jface.action.GroupMarker;
   import org.eclipse.jface.action.IMenuListener;
   import org.eclipse.jface.action.IMenuManager;
   import org.eclipse.jface.action.IToolBarManager;
  @@ -25,8 +24,8 @@
   import org.eclipse.jface.wizard.ProgressMonitorPart;
   import org.eclipse.jface.wizard.WizardDialog;
   import org.eclipse.swt.SWT;
  -import org.eclipse.swt.events.SelectionAdapter;
   import org.eclipse.swt.events.SelectionEvent;
  +import org.eclipse.swt.events.SelectionListener;
   import org.eclipse.swt.layout.FillLayout;
   import org.eclipse.swt.layout.GridData;
   import org.eclipse.swt.layout.GridLayout;
  @@ -53,6 +52,7 @@
   import org.jboss.ide.eclipse.packages.ui.PackagesUIPlugin;
   import org.jboss.ide.eclipse.packages.ui.actions.BuildPackagesAction;
   import org.jboss.ide.eclipse.packages.ui.actions.NewJARAction;
  +import org.jboss.ide.eclipse.packages.ui.actions.NewPackageAction;
   import org.jboss.ide.eclipse.packages.ui.properties.NodeWithProperties;
   import org.jboss.ide.eclipse.packages.ui.providers.PackagesContentProvider;
   import org.jboss.ide.eclipse.packages.ui.providers.PackagesLabelProvider;
  @@ -69,6 +69,7 @@
   	private Composite noProjectSelectedComposite;
   	private Composite loadingPackagesComposite;
   	private Composite mainPage;
  +	private Composite createPackagesComposite;
   //	private Label projectLabel;
   	private TreeViewer packageTree;
   	private ProgressMonitorPart loadingProgress;
  @@ -76,12 +77,11 @@
   	private NewJARAction newJARAction;
   	private BuildPackagesAction buildAllAction, buildPackageAction;
   	private Action collapseAllAction;
  -	private GroupMarker newPackageContributions;
   	private MenuManager newPackageManager, contextMenuManager;
   	private IProject currentProject;
   	private boolean loading;
   	private PackagesContentProvider contentProvider;
  -	private ArrayList nodePopupMenuContributions;
  +	private ArrayList nodePopupMenuContributions, newPackageActions;
   	
   	public static final String VIEW_ID = "org.jboss.ide.eclipse.packages.ui.ProjectPackagesView";
   	
  @@ -93,6 +93,8 @@
   		NodeContribution[] menus = ExtensionManager.findNodePopupMenuContributions();
   		nodePopupMenuContributions = new ArrayList(Arrays.asList(menus));
   		Collections.sort(nodePopupMenuContributions);
  +		
  +		newPackageActions = new ArrayList(Arrays.asList(ExtensionManager.findNewPackageActions()));
   	}
   	
   	public static ProjectPackagesView instance()
  @@ -110,21 +112,16 @@
   		noProjectSelectedComposite.setLayout(new FillLayout());
   		new Label(noProjectSelectedComposite, SWT.NONE).setText(PackagesUIMessages.ProjectPackagesView_noProjectSelectedMessage);
   		
  -		createPackageLink = new Link(pageBook, SWT.NONE);
  -		createPackageLink.addSelectionListener(new SelectionAdapter () {
  -			public void widgetSelected(SelectionEvent e) {
  -				createPackagePressed();
  -			}
  -		});
  +		createPackagesComposite = new Composite(pageBook, SWT.NONE);
  +		createPackagesComposite.setLayout(new GridLayout(1, false));
  +		new Label(createPackagesComposite, SWT.NONE).setText(PackagesUIMessages.ProjectPackagesView_noPackagesDefinedMessage);
  +		new Label(createPackagesComposite, SWT.NONE).setText(PackagesUIMessages.ProjectPackagesView_createPackagesMessage);
  +		addNewPackageActions(createPackagesComposite);
   				
   		loadingPackagesComposite = new Composite(pageBook, SWT.NONE);
   		loadingPackagesComposite.setLayout(new RowLayout(SWT.HORIZONTAL));
   		loadingProgress = new ProgressMonitorPart(loadingPackagesComposite, null);
   		
  -		String message = PackagesUIMessages.ProjectPackagesView_noPackagesDefinedMessage;
  -		message += " " + PackagesUIMessages.ProjectPackagesView_createPackage_link;
  -		createPackageLink.setText(message);
  -		
   		mainPage = new Composite(pageBook, SWT.NONE);
   		mainPage.setLayout(createGridLayoutWithNoMargins(1));
   		mainPage.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
  @@ -172,14 +169,13 @@
   		return layout;
   	}
   	
  -	private void showCreatePackageLink ()
  +	private void showCreatePackages ()
   	{
  -		String message = 
  -			PackagesUIMessages.bind(PackagesUIMessages.ProjectPackagesView_noPackagesDefinedMessage, currentProject.getName());
  -		message += " " + PackagesUIMessages.ProjectPackagesView_createPackage_link;
  +//		String message = 
  +//			PackagesUIMessages.bind(PackagesUIMessages.ProjectPackagesView_noPackagesDefinedMessage, currentProject.getName());
  +//		message += " " + PackagesUIMessages.ProjectPackagesView_createPackage_link;
   		
  -		createPackageLink.setText(message);
  -		pageBook.showPage(createPackageLink);
  +		pageBook.showPage(createPackagesComposite);
   	}
   	
   	private void packageNodeSelected (IPackageNode node)
  @@ -233,8 +229,6 @@
   		
   		buildPackageAction = new BuildPackagesAction();
   		buildPackageAction.init(getViewSite().getWorkbenchWindow());
  -		
  -		newPackageContributions = new GroupMarker(NEW_PACKAGE_ADDITIONS);
   	}
   	
   	private void createToolbar ()
  @@ -249,11 +243,14 @@
   	private void createMenu ()
   	{
   		newPackageManager = new MenuManager(PackagesUIMessages.ProjectPackagesView_newPackageMenu_label, NEW_PACKAGE_MENU_ID);
  -		newPackageManager.add(newJARAction);
  -		newPackageManager.add(new Separator());
  -		newPackageManager.add(newPackageContributions);
  +//		newPackageManager.add(newJARAction);
  +//		newPackageManager.add(new Separator());
  +		
  +		addNewPackageActions(newPackageManager);
  +		
  +		IMenuManager manager = getViewSite().getActionBars().getMenuManager();
  +		addNewPackageActions(manager);
   		
  -//		IMenuManager manager = getViewSite().getActionBars().getMenuManager();
   //		manager.add(newPackageContributions);
   //		
   	}
  @@ -262,8 +259,6 @@
   	public static final String NODE_CONTEXT_MENU_ID = "org.jboss.ide.eclipse.packages.ui.nodeContextMenu";
   	public static final String NEW_PACKAGE_ADDITIONS = "newPackageAdditions";
   	
  -	private Link createPackageLink;
  -	
   	private void createContextMenu ()
   	{
   		contextMenuManager = new MenuManager(NODE_CONTEXT_MENU_ID); //$NON-NLS-1$
  @@ -377,6 +372,59 @@
   		}
   	}
   	
  +	private void addNewPackageActions (IMenuManager manager)
  +	{
  +		for (Iterator iter = newPackageActions.iterator(); iter.hasNext(); )
  +		{
  +			final NewPackageAction action = (NewPackageAction) iter.next();
  +			
  +			Action actionWrapper = new Action () {
  +				public String getId() {
  +					return action.getId();
  +				}
  +				
  +				public ImageDescriptor getImageDescriptor() {
  +					return action.getIconDescriptor();
  +				}
  +				
  +				public String getText() {
  +					return action.getLabel();
  +				}
  +				
  +				public void run() {
  +					action.getAction().run(this);
  +				}
  +			};
  +			
  +			manager.add(actionWrapper);
  +		}
  +	}
  +	
  +	private void addNewPackageActions (Composite composite)
  +	{
  +		for (Iterator iter = newPackageActions.iterator(); iter.hasNext();)
  +		{
  +			final NewPackageAction action = (NewPackageAction) iter.next();
  +			
  +			Composite linkComposite = new Composite(composite, SWT.NONE);
  +			linkComposite.setLayout(new GridLayout(2, false));
  +			linkComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
  +			
  +			new Label(linkComposite, SWT.NONE).setImage(action.getIcon());
  +			
  +			Link actionLink = new Link(linkComposite, SWT.NONE);
  +			actionLink.setText("<a href=\"create\">" + action.getLabel() + "</a>");
  +			actionLink.addSelectionListener(new SelectionListener () {
  +				public void widgetDefaultSelected(SelectionEvent e) {
  +					widgetSelected(e);
  +				}
  +				
  +				public void widgetSelected(SelectionEvent e) {
  +					action.getAction().run(null);
  +				}
  +			});
  +		}
  +	}
   	
   	public void projectSelected(final IProject project)
   	{
  @@ -397,7 +445,7 @@
   					IPackage packages[] = PackagesCore.getProjectPackages(project, loadingProgress);
   					
   					if (packages == null || packages.length == 0) {
  -						showCreatePackageLink();
  +						showCreatePackages();
   					}
   					
   					else {
  @@ -435,7 +483,7 @@
   			});
   		}
   		else {
  -			showCreatePackageLink();
  +			showCreatePackages();
   			collapseAllAction.setEnabled(false);
   		}
   		
  
  
  



More information about the jboss-cvs-commits mailing list