Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgkessler2010-03-29 17:15:01 +0000
committergkessler2010-03-29 17:15:01 +0000
commit2ce14b462a4dacc8ba9ffecbda1de03ba9d69fff (patch)
tree82a46fb050d773a2e24bcf2cfcebc5ea6f377954
parent8483d55be80f2143c5909eee1e777c84f9f65ee9 (diff)
downloadwebtools.jsf-2ce14b462a4dacc8ba9ffecbda1de03ba9d69fff.tar.gz
webtools.jsf-2ce14b462a4dacc8ba9ffecbda1de03ba9d69fff.tar.xz
webtools.jsf-2ce14b462a4dacc8ba9ffecbda1de03ba9d69fff.zip
[306308] WPE-Properties View-Attributes tab should show all attributes of a tag in an XHTML page
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/AttributePropertySource.java73
1 files changed, 53 insertions, 20 deletions
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/AttributePropertySource.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/AttributePropertySource.java
index 2f128d16e..6ed998f58 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/AttributePropertySource.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/AttributePropertySource.java
@@ -18,11 +18,15 @@ import org.eclipse.gef.commands.Command;
import org.eclipse.jst.jsf.common.metadata.Entity;
import org.eclipse.jst.jsf.common.metadata.query.ITaglibDomainMetaDataModelContext;
import org.eclipse.jst.jsf.common.metadata.query.TaglibDomainMetaDataQueryHelper;
+import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.ITagAttribute;
+import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.ITagElement;
import org.eclipse.jst.jsf.context.resolver.structureddocument.IStructuredDocumentContextResolverFactory;
import org.eclipse.jst.jsf.context.resolver.structureddocument.ITaglibContextResolver;
import org.eclipse.jst.jsf.context.resolver.structureddocument.IWorkspaceContextResolver;
+import org.eclipse.jst.jsf.context.resolver.structureddocument.internal.IStructuredDocumentContextResolverFactory2;
import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext;
import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContextFactory;
+import org.eclipse.jst.jsf.designtime.internal.resolver.ITagElementResolver;
import org.eclipse.jst.jsf.metadataprocessors.MetaDataEnabledProcessingFactory;
import org.eclipse.jst.pagedesigner.PDPlugin;
import org.eclipse.jst.pagedesigner.commands.single.ChangeAttributeCommand;
@@ -30,6 +34,7 @@ import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertySource;
import org.eclipse.ui.views.properties.PropertyDescriptor;
+import org.eclipse.ui.views.properties.TextPropertyDescriptor;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
import org.w3c.dom.Element;
@@ -157,36 +162,64 @@ public class AttributePropertySource implements IPropertySource {
}
/**
- * the major job of this wrapper is to provide
+ * the major job of this wrapper is to provide tag attribute property descriptors
*/
public IPropertyDescriptor[] getPropertyDescriptors() {
if (_descriptors == null) {
- List result = new ArrayList();
-
- IPropertyDescriptor[] descs = _innerSource.getPropertyDescriptors();
- if (descs != null) {
- for (int i = 0; i < descs.length; i++) {
- IPropertyDescriptor pd = getAttrPropertyDescriptor((String)descs[i].getId());
+ final List result = new ArrayList();
+
+ final ITagElementResolver tagregResolver = IStructuredDocumentContextResolverFactory2.INSTANCE
+ .getResolver(_context, ITagElementResolver.class);
+
+ if (tagregResolver != null) { //relies on getTagEntity() having been called to have setup the _element
+ final ITagElement tag = tagregResolver.getTagElement(_element);
+ if (tag != null) {
+ for (final ITagAttribute attr : tag.getAttributes().values()) {
+ final IPropertyDescriptor pd = getAttrPropertyDescriptor(attr
+ .getName());
if (pd != null)
- result.add(new PropertyDescriptorWrapper(
- _element,
- pd));//,
- //getStatusLineManager()));
+ result.add(new PropertyDescriptorWrapper(_element,
+ pd));// ,
+ // getStatusLineManager()));
else {
- if (descs[i] instanceof PropertyDescriptor)
- ((PropertyDescriptor)descs[i]).setCategory(ITabbedPropertiesConstants.OTHER_CATEGORY);
- result.add(new PropertyDescriptorWrapper(
- _element,
- descs[i]));//,
- //getStatusLineManager()));
+ final PropertyDescriptor pd1 = new TextPropertyDescriptor(
+ attr.getName(), attr.getName());
+ pd1.setDescription(attr.getDescription());
+ pd1.setCategory(ITabbedPropertiesConstants.OTHER_CATEGORY);
+ result.add(new PropertyDescriptorWrapper(_element,
+ pd1));// ,
+ // getStatusLineManager()));
}
-
+
}
}
-
+ }
+
+ if (result.size() == 0) {// for JSP and HTML cases
+ // this is still
+ // necessary
+ final IPropertyDescriptor[] descs = _innerSource.getPropertyDescriptors();
+ for (int i = 0; i < descs.length; i++) {
+ final IPropertyDescriptor pd = getAttrPropertyDescriptor((String) descs[i]
+ .getId());
+ if (pd != null)
+ result.add(new PropertyDescriptorWrapper(_element, pd));// ,
+ // getStatusLineManager()));
+ else {
+ if (descs[i] instanceof PropertyDescriptor)
+ ((PropertyDescriptor) descs[i])
+ .setCategory(ITabbedPropertiesConstants.OTHER_CATEGORY);
+ result.add(new PropertyDescriptorWrapper(_element,
+ descs[i]));// ,
+ // getStatusLineManager()));
+ }
+
+ }
+ }
+
_descriptors = new IPropertyDescriptor[result.size()];
result.toArray(_descriptors);
-
+
}
return _descriptors;
}

Back to the top