Bug 5765 New Class button in empty workspace should be more supportive
User feedback: "Confused how to create my first project" We should be more supportive in the UI for this special case since it is a first time experience with the UI. Therefore when the workbench is empty we should offer to create a new Java project. Minimal solution is to show an info dialog that explains that user should create a project first and offer a button to open the Java project wizard. The same is true for the new package and new interface buttons.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/NewGroup.java
fNewSnippetAction.setToolTipText(NewWizardMessages.getString("NewGroup.wizards_add_snippet.tooltip")); 
		fNewSnippetAction.setDescription(NewWizardMessages.getString("NewGroup.wizards_add_snippet.description")); 
		label= NewWizardMessages.getString("NewGroup.wizards_add_packageroot.label"); 
		acceptedTypes= new Class[] { IJavaProject.class };
		fNewPackageRootAction= 
			new AbstractOpenWizardAction(label, acceptedTypes, false) {
				protected Wizard createWizard() { return new NewSourceFolderCreationWizard(); }
				protected boolean shouldAcceptElement(Object obj) { return !isOnBuildPath(obj); }
			};
		fNewPackageRootAction.setImageDescriptor(JavaPluginImages.DESC_TOOL_NEWPACKROOT);	
		fNewPackageRootAction.setToolTipText(NewWizardMessages.getString("NewGroup.wizards_add_packageroot.tooltip")); 
		fNewPackageRootAction.setDescription(NewWizardMessages.getString("NewGroup.wizards_add_packageroot.description")); 
			
		label= NewWizardMessages.getString("NewGroup.wizards_add_project.label"); 
		acceptedTypes= new Class[] { IJavaModel.class };
		fNewProjectAction= new OpenProjectWizardAction(label, acceptedTypes);
		fNewProjectAction.setImageDescriptor(JavaPluginImages.DESC_TOOL_NEWPROJECT);
		fNewProjectAction.setToolTipText(NewWizardMessages.getString("NewGroup.wizards_add_project.tooltip")); 
		fNewProjectAction.setDescription(NewWizardMessages.getString("NewGroup.wizards_add_project.description")); 
		
		fNewWizardAction= new NewWizardAction();			
		fActionsCreated= true;	
	}
	
	static boolean isOnBuildPath(Object obj) {
		try {
			if (obj instanceof IJavaElement) {
				IJavaElement elem= (IJavaElement)obj;
				return JavaModelUtil.isOnBuildPath(elem.getJavaProject(), elem);
			}