diff options
author | itrimble | 2011-11-01 18:20:00 +0000 |
---|---|---|
committer | itrimble | 2011-11-01 18:20:00 +0000 |
commit | f8e914291b33a3039e3c0faa22ac19a315b42909 (patch) | |
tree | 108ccc3f6dc5bc90ae67ce2a39f1e1be8daf1059 | |
parent | ef8d93fdbde0bf6357aa9135bedcc987cc1d0d5c (diff) | |
download | webtools.jsf-f8e914291b33a3039e3c0faa22ac19a315b42909.tar.gz webtools.jsf-f8e914291b33a3039e3c0faa22ac19a315b42909.tar.xz webtools.jsf-f8e914291b33a3039e3c0faa22ac19a315b42909.zip |
Bug 312727 - [JSF2.0] Add view scope to FacesConfigEditor for Managed Beans
7 files changed, 81 insertions, 10 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/Scope_View.gif b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/Scope_View.gif Binary files differnew file mode 100644 index 000000000..7cd449f62 --- /dev/null +++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/icons/Scope_View.gif diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/IFacesConfigConstants.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/IFacesConfigConstants.java index c13cff1c3..a1bbdab0b 100644 --- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/IFacesConfigConstants.java +++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/IFacesConfigConstants.java @@ -155,6 +155,11 @@ public interface IFacesConfigConstants { /** * */ + public static final String MANAGED_BEAN_SCOPE_VIEW = "view"; //$NON-NLS-1$ + + /** + * + */ public static final String MANAGED_BEAN_SCOPE_NONE = "none"; //$NON-NLS-1$ } diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/provider/ManagedBeanContentProvider.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/provider/ManagedBeanContentProvider.java index 45d15b4c3..0e1886c65 100644 --- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/provider/ManagedBeanContentProvider.java +++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/provider/ManagedBeanContentProvider.java @@ -15,8 +15,11 @@ package org.eclipse.jst.jsf.facesconfig.ui.provider; import java.util.ArrayList; import java.util.List; +import org.eclipse.core.resources.IProject; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; +import org.eclipse.jst.jsf.core.IJSFCoreConstants; +import org.eclipse.jst.jsf.core.jsfappconfig.JSFAppConfigUtils; import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigType; import org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanType; import org.eclipse.jst.jsf.facesconfig.ui.section.ManagedBeanScopeTreeItem; @@ -32,8 +35,24 @@ import org.eclipse.jst.jsf.facesconfig.ui.section.ManagedBeanScopeTreeItem; */ public class ManagedBeanContentProvider implements ITreeContentProvider { + private IProject project; private List scopeItemList = null; + /** + * Creates an instance. + */ + public ManagedBeanContentProvider() { + this(null); + } + + /** + * Creates an instance. + * @param project Current project instance. + */ + public ManagedBeanContentProvider(IProject project) { + this.project = project; + } + /* * (non-Javadoc) * @@ -45,9 +64,16 @@ public class ManagedBeanContentProvider implements ITreeContentProvider { if (parent instanceof FacesConfigType) { if (scopeItemList == null) { scopeItemList = new ArrayList(); - for (int i = 0; i < ManagedBeanScopeTreeItem.scopeItems.length; i++) { + //Bug 312727 - [JSF2.0] Add view scope to FacesConfigEditor for Managed Beans + String[] scopeItems = ManagedBeanScopeTreeItem.scopeItems; + if (project != null) { + if (!JSFAppConfigUtils.isValidJSFProject(project, IJSFCoreConstants.FACET_VERSION_2_0)) { + scopeItems = ManagedBeanScopeTreeItem.scopeItemsPreJSF2; + } + } + for (int i = 0; i < scopeItems.length; i++) { ManagedBeanScopeTreeItem scopeTreeItem = new ManagedBeanScopeTreeItem( - ManagedBeanScopeTreeItem.scopeItems[i], + scopeItems[i], (FacesConfigType) parent); scopeItemList.add(scopeTreeItem); } diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/provider/ManagedBeanLabelProvider.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/provider/ManagedBeanLabelProvider.java index 8a51f088e..193b235d3 100644 --- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/provider/ManagedBeanLabelProvider.java +++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/provider/ManagedBeanLabelProvider.java @@ -37,6 +37,7 @@ public class ManagedBeanLabelProvider extends LabelProvider { private static final String SCOPE_APPLICATION_IMAGE_FILE = "Scope_Application.gif"; //$NON-NLS-1$ private static final String SCOPE_REQUEST_IMAGE_FILE = "Scope_Request.gif"; //$NON-NLS-1$ private static final String SCOPE_SESSION_IMAGE_FILE = "Scope_Session.gif"; //$NON-NLS-1$ + private static final String SCOPE_VIEW_IMAGE_FILE = "Scope_View.gif"; //$NON-NLS-1$ private static final String MANAGED_BEAN_IMAGE_FILE = "facesconfig/FacesConfig_ManagedBean.gif"; //$NON-NLS-1$ /** Cache of images that have been dispensed by this provider */ @@ -97,6 +98,10 @@ public class ManagedBeanLabelProvider extends LabelProvider { .equals(scopeTreeItem.getScope())) { imageDesc = EditorPlugin.getDefault().getImageDescriptor( SCOPE_NONE_IMAGE_FILE); + } else if (IFacesConfigConstants.MANAGED_BEAN_SCOPE_VIEW + .equals(scopeTreeItem.getScope())) { + imageDesc = EditorPlugin.getDefault().getImageDescriptor( + SCOPE_VIEW_IMAGE_FILE); } else { imageDesc = EditorPlugin.getDefault().getImageDescriptor( SCOPE_IMAGE_FILE); diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/ManagedBeanMasterSection.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/ManagedBeanMasterSection.java index 5d67eb7f8..6305240e9 100644 --- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/ManagedBeanMasterSection.java +++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/ManagedBeanMasterSection.java @@ -14,6 +14,7 @@ package org.eclipse.jst.jsf.facesconfig.ui.section; import java.util.Iterator; import java.util.List; +import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.emf.common.command.Command; import org.eclipse.emf.common.notify.Notification; @@ -22,6 +23,7 @@ import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.edit.command.AddCommand; import org.eclipse.emf.edit.command.RemoveCommand; +import org.eclipse.jface.viewers.IContentProvider; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.SelectionChangedEvent; @@ -41,6 +43,7 @@ import org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanType; import org.eclipse.jst.jsf.facesconfig.ui.EditorMessages; import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin; import org.eclipse.jst.jsf.facesconfig.ui.page.FacesConfigMasterDetailPage; +import org.eclipse.jst.jsf.facesconfig.ui.page.IFacesConfigPage; import org.eclipse.jst.jsf.facesconfig.ui.provider.ManagedBeanContentProvider; import org.eclipse.jst.jsf.facesconfig.ui.provider.ManagedBeanLabelProvider; import org.eclipse.jst.jsf.facesconfig.ui.wizard.NewManagedBeanWizard; @@ -50,9 +53,11 @@ import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IEditorInput; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.widgets.FormToolkit; +import org.eclipse.ui.part.FileEditorInput; /** * @author sfshi @@ -91,7 +96,23 @@ public class ManagedBeanMasterSection extends FacesConfigMasterSection { gd = new GridData(GridData.FILL_BOTH); treeViewer.getControl().setLayoutData(gd); - treeViewer.setContentProvider(new ManagedBeanContentProvider()); + //Bug 312727 - [JSF2.0] Add view scope to FacesConfigEditor for Managed Beans + IContentProvider contentProvider = new ManagedBeanContentProvider(); + final IFacesConfigPage page = getPage(); + if (page != null) { + final IEditorInput input = page.getEditorInput(); + if (input instanceof FileEditorInput) { + final IFile file = ((FileEditorInput)input).getFile(); + if (file != null) { + final IProject project = file.getProject(); + if (project != null) { + contentProvider = new ManagedBeanContentProvider(project); + } + } + } + } + treeViewer.setContentProvider(contentProvider); + treeViewer.setLabelProvider(new ManagedBeanLabelProvider()); treeViewer.addSelectionChangedListener(this); diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/ManagedBeanScopeTreeItem.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/ManagedBeanScopeTreeItem.java index 4101d9e1c..89a339b19 100644 --- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/ManagedBeanScopeTreeItem.java +++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/section/ManagedBeanScopeTreeItem.java @@ -29,10 +29,20 @@ public class ManagedBeanScopeTreeItem { * Possible values for bean scope */ public static final String[] scopeItems = { + IFacesConfigConstants.MANAGED_BEAN_SCOPE_APPLICATION, IFacesConfigConstants.MANAGED_BEAN_SCOPE_SESSION, IFacesConfigConstants.MANAGED_BEAN_SCOPE_REQUEST, + IFacesConfigConstants.MANAGED_BEAN_SCOPE_VIEW, + IFacesConfigConstants.MANAGED_BEAN_SCOPE_NONE}; + + /** + * Possible values for bean scope if we can determine that we are in a pre-JSF 2.0 context + */ + public static final String[] scopeItemsPreJSF2 = { IFacesConfigConstants.MANAGED_BEAN_SCOPE_APPLICATION, - IFacesConfigConstants.MANAGED_BEAN_SCOPE_NONE }; + IFacesConfigConstants.MANAGED_BEAN_SCOPE_SESSION, + IFacesConfigConstants.MANAGED_BEAN_SCOPE_REQUEST, + IFacesConfigConstants.MANAGED_BEAN_SCOPE_NONE}; private String scope; diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/wizard/ManagedBeanPropertyPage.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/wizard/ManagedBeanPropertyPage.java index cf221a05f..446e935e8 100644 --- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/wizard/ManagedBeanPropertyPage.java +++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/wizard/ManagedBeanPropertyPage.java @@ -15,8 +15,10 @@ import org.eclipse.core.resources.IProject; import org.eclipse.jface.wizard.IWizardPage; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.jst.jsf.common.ui.internal.guiutils.SWTUtils; +import org.eclipse.jst.jsf.core.IJSFCoreConstants; +import org.eclipse.jst.jsf.core.jsfappconfig.JSFAppConfigUtils; import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin; -import org.eclipse.jst.jsf.facesconfig.ui.IFacesConfigConstants; +import org.eclipse.jst.jsf.facesconfig.ui.section.ManagedBeanScopeTreeItem; import org.eclipse.jst.jsf.facesconfig.ui.util.JavaClassUtils; import org.eclipse.jst.jsf.facesconfig.ui.util.ManagedBeanUtil; import org.eclipse.swt.SWT; @@ -147,11 +149,13 @@ public class ManagedBeanPropertyPage extends WizardPage implements ISummaryDataS WizardMessages.ManagedBeanPropertyWizardPage_ManagedBeanScope, 1); - String[] items = { - IFacesConfigConstants.MANAGED_BEAN_SCOPE_APPLICATION, - IFacesConfigConstants.MANAGED_BEAN_SCOPE_SESSION, - IFacesConfigConstants.MANAGED_BEAN_SCOPE_REQUEST, - IFacesConfigConstants.MANAGED_BEAN_SCOPE_NONE }; + //Bug 312727 - [JSF2.0] Add view scope to FacesConfigEditor for Managed Beans + String[] items = ManagedBeanScopeTreeItem.scopeItems; + if (currentProject != null) { + if (!JSFAppConfigUtils.isValidJSFProject(currentProject, IJSFCoreConstants.FACET_VERSION_2_0)) { + items = ManagedBeanScopeTreeItem.scopeItemsPreJSF2; + } + } scopeCombo = SWTUtils.createCombo(generalSection, items, 1); gd = new GridData(GridData.FILL_HORIZONTAL); |