Large set of changes mostly related to: [206100] Enhancements to the WPE Property pages. This is the first checkin. Cleanup and other improvements to come.
- tabbed property page changes
- MDChanges
- temporary translation of old sybase MD to current form
- new AttrValueRuntimeTypes
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ComboDialogField.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ComboDialogField.java
index 1182816..582634e 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ComboDialogField.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/ComboDialogField.java
@@ -130,7 +130,7 @@
* @return the custom combo control
*/
public CCombo getComboControl(FormToolkit toolkit, Composite parent) {
- if (_comboControl == null) {
+ if (_comboControl == null || _comboControl.isDisposed()) {
assertCompositeNotNull(parent);
_modifyListener = new ModifyListener() {
public void modifyText(ModifyEvent e) {
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogField.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogField.java
index 379e0a7..0ff86f7 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogField.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogField.java
@@ -25,7 +25,7 @@
/**
* this method must be called directly after constructor, in this case,
* system will create a hyper link label, and when the hyper link is
- * clicked, the corresponding method on the listene will be called. A
+ * clicked, the corresponding method on the listener will be called. A
* RuntimeException will throw out if this method is called after the label
* has been created.
*
@@ -58,7 +58,7 @@
// ------- focus management
/**
* Tries to set the focus to the dialog field. Returns <code>true</code>
- * if the dialog field can take focus. To be reimplemented by dialog field
+ * if the dialog field can take focus. To be re-implemented by dialog field
* implementors.
* @return true if dialog field can take focus
*/
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldBase.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldBase.java
index f6e2de8..431dae4 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldBase.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldBase.java
@@ -282,7 +282,7 @@
*/
public Control getLabelControl(FormToolkit _formToolkit, Composite parent) {
Control control = null;
- if (_label == null && _hyperlink == null) {
+ if ((_label == null || _label.isDisposed()) && (_hyperlink == null || _hyperlink.isDisposed())) {
assertCompositeNotNull(parent);
String label = null;
@@ -330,7 +330,7 @@
*/
public Control getRequiredLabelControl(FormToolkit _formToolkit,
Composite parent) {
- if (_requiredLabel == null) {
+ if (_requiredLabel == null || _requiredLabel.isDisposed()) {
if (_formToolkit == null) {
_requiredLabel = new Label(parent, SWT.LEFT | SWT.WRAP);
} else {
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldGroup.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldGroup.java
index 2e4c5bc..0ed7b3a 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldGroup.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/DialogFieldGroup.java
@@ -103,4 +103,11 @@
* @return could return null. or an array containing null elements.
*/
public abstract IStatus[] validateDialogFields();
+
+ /**
+ * Intended to allow subclasses to recreate controls. Default implementation does nothing.
+ */
+ public void reset(){
+ //do nothing by default
+ }
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/RadiosDialogField.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/RadiosDialogField.java
index 1d2ef3e..3a6aa5c 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/RadiosDialogField.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/RadiosDialogField.java
@@ -121,7 +121,7 @@
* @return the group composite
*/
public Composite getGroup(FormToolkit toolkit, Composite parent) {
- if (_group == null) {
+ if (_group == null || _group.isDisposed()) {
assertCompositeNotNull(parent);
if (toolkit != null) {
_group = toolkit.createComposite(parent);
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/Separator.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/Separator.java
index caf5352..f54722a 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/Separator.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/Separator.java
@@ -106,7 +106,7 @@
* @return the separator
*/
private Control getSeparator(FormToolkit toolkit, Composite parent) {
- if (_separator == null) {
+ if (_separator == null || _separator.isDisposed()) {
assertCompositeNotNull(parent);
if (toolkit != null) {
_separator = toolkit.createSeparator(parent, _style);
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StringButtonDialogField.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StringButtonDialogField.java
index f750daf..4ff9eda 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StringButtonDialogField.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StringButtonDialogField.java
@@ -122,7 +122,7 @@
* @return the button
*/
public Button getChangeControl(FormToolkit toolkit, Composite parent) {
- if (_browseButton == null) {
+ if (_browseButton == null || _browseButton.isDisposed()) {
assertCompositeNotNull(parent);
if (toolkit != null) {
_browseButton = toolkit.createButton(parent,
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StringDialogField.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StringDialogField.java
index c38ddb7..c00f3c6 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StringDialogField.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StringDialogField.java
@@ -149,7 +149,7 @@
* @return the text control
*/
public Text getTextControl(FormToolkit toolkit, Composite parent) {
- if (_textControl == null) {
+ if (_textControl == null || _textControl.isDisposed()) {
assertCompositeNotNull(parent);
_modifyListener = new ModifyListener() {
public void modifyText(ModifyEvent e) {
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StyleComboDialogField.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StyleComboDialogField.java
index f549b71..93c9332 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StyleComboDialogField.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/StyleComboDialogField.java
@@ -68,6 +68,8 @@
*/
public void setDefaultValue(String defaultValue) {
this._defaultValue = defaultValue;
+ if (_comboControl != null && ! _comboControl.isDisposed())
+ _comboControl.setDefaultValue(_defaultValue);
}
/**
@@ -83,6 +85,7 @@
// ------- layout helpers
+
/*
* @see DialogField#doFillIntoGrid
*/
@@ -147,7 +150,7 @@
*/
public StyleCombo getComboControl(FormToolkit toolkit,
final Composite parent) {
- if (_comboControl == null) {
+ if (_comboControl == null || _comboControl.isDisposed()) {
assertCompositeNotNull(parent);
_modifyListener = new ModifyListener() {
public void modifyText(ModifyEvent e) {
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/AbstractTagLibDomainContentModelMetaDataTranslator.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/AbstractTagLibDomainContentModelMetaDataTranslator.java
index c1f2f9e..99a06bb 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/AbstractTagLibDomainContentModelMetaDataTranslator.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/AbstractTagLibDomainContentModelMetaDataTranslator.java
@@ -20,6 +20,7 @@
import org.eclipse.jst.jsf.common.metadata.MetadataPackage;
import org.eclipse.jst.jsf.common.metadata.Model;
import org.eclipse.jst.jsf.common.metadata.Trait;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
@@ -134,6 +135,19 @@
}
/**
+ * @param tag
+ * @param attributeName
+ * @return Attribute entity for supplied attribute name and given Tag entity. Will return null if not found.
+ */
+ protected Entity findAttributeEntityForTagEntity(final Entity tag, final String attributeName) {
+ for (Iterator it=tag.getChildEntities().iterator();it.hasNext();){
+ Entity attr = (Entity)it.next();
+ if (attributeName.equals(attr.getId()))
+ return attr;
+ }
+ return null;
+ }
+ /**
* Create entities for tags
* @param doc
*/
@@ -143,7 +157,7 @@
Entity entity = findTagEntity(tag.getNodeName());
if (entity == null){
entity = MetadataFactory.eINSTANCE.createEntity();
- entity.setId(tag.getNodeName());
+ entity.setId(getTagNodeName(tag));
entity.setType("tag");
getMergedModel().getChildEntities().add(entity);
}
@@ -153,6 +167,14 @@
}
/**
+ * @param tag
+ * @return tag node name
+ */
+ protected String getTagNodeName(CMElementDeclaration tag) {
+ return tag.getNodeName();
+ }
+
+ /**
* Sets the standard traits for a tag entity from the element declaration
* @param tag
* @param entity
@@ -165,10 +187,61 @@
createSimpleBooleanObjectEntityTraitIfNecessary(entity, "expert", getTagIsExpert(tag));
createSimpleBooleanObjectEntityTraitIfNecessary(entity, "hidden", getTagIsHidden(tag));
-// createRequiredAttrTraits(entity, tag);
+ createAttributeEntities(entity, tag);
}
/**
+ * @param tagEntity
+ * @param tag
+ */
+ protected void createAttributeEntities(Entity tagEntity,
+ CMElementDeclaration tag) {
+
+ for (Iterator it=tag.getAttributes().iterator();it.hasNext();){
+ CMAttributeDeclaration cmAttr = (CMAttributeDeclaration)it.next();
+ Entity attr = findAttributeEntityForTagEntity(tagEntity, cmAttr.getAttrName());
+ if (attr == null) {
+ attr = MetadataFactory.eINSTANCE.createEntity();
+ attr.setId(cmAttr.getAttrName());
+ tagEntity.getChildEntities().add(attr);
+ }
+ createAttributeTraits(attr, cmAttr);
+ }
+
+
+ }
+
+ /**
+ * @param attr
+ * @param cmAttr
+ */
+ protected void createAttributeTraits(Entity attr,
+ CMAttributeDeclaration cmAttr) {
+
+ createSimpleStringEntityTraitIfNecessary(attr, "description", getTagAttributeDescription(cmAttr));
+ createSimpleBooleanObjectEntityTraitIfNecessary(attr, "required", getTagAttributeIsRequired(cmAttr));
+ createSimpleStringEntityTraitIfNecessary(attr, "default-value", getTagAttributeDefaultValue(cmAttr));
+ }
+
+ /**
+ * @param cmAttr
+ * @return null. subclass should override if CMAttributeDeclaration has the metadata.
+ */
+ protected String getTagAttributeDescription(CMAttributeDeclaration cmAttr) {return null;}
+
+ /**
+ * @param cmAttr
+ * @return false. subclass should override if CMAttributeDeclaration has the metadata.
+ */
+ protected boolean getTagAttributeIsRequired(CMAttributeDeclaration cmAttr) {return cmAttr.getUsage() == CMAttributeDeclaration.REQUIRED;}
+
+ /**
+ * @param cmAttr
+ * @return null. subclass should override if CMAttributeDeclaration has the metadata.
+ */
+ protected String getTagAttributeDefaultValue(CMAttributeDeclaration cmAttr) {return null;}
+
+ /**
* @param tag
* @return false. subclass should override if CMElementDeclaration has the metadata.
*/
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/DomainLoadingStrategy.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/DomainLoadingStrategy.java
index ad81c3d..2e7f31e 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/DomainLoadingStrategy.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/DomainLoadingStrategy.java
@@ -75,13 +75,14 @@
protected void mergeModel(MetaDataModel model, List/*<IMetaDataSourceModelProvider>*/ sources) {
IMetaDataModelMergeAssistant assistant = createModelMergeAssistant(model);
for (Iterator/*<IMetaDataSourceModelProvider>*/ it = sources.iterator();it.hasNext();){
- IMetaDataSourceModelProvider mds = (IMetaDataSourceModelProvider)it.next();
-// assistant.setSourceModel(mds.getSourceModel());
- assistant.setSourceModelProvider(mds);
+ IMetaDataSourceModelProvider mds = (IMetaDataSourceModelProvider)it.next();
Iterator translators = mds.getLocator().getDomainSourceModelType().getTranslators().iterator();
while (translators.hasNext()){
IMetaDataTranslator translator = (IMetaDataTranslator)translators.next();
- translator.translate(assistant);
+ if (translator.canTranslate(mds)){
+ assistant.setSourceModelProvider(mds);
+ translator.translate(assistant);
+ }
}
}
assistant.setMergeComplete();
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/IMetaDataModelMergeAssistant.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/IMetaDataModelMergeAssistant.java
index d5744f4..d579a63 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/IMetaDataModelMergeAssistant.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/IMetaDataModelMergeAssistant.java
@@ -62,6 +62,12 @@
* @return {@link IMetaDataSourceModelProvider} for current operation
*/
public IMetaDataSourceModelProvider getSourceModelProvider();
-
+ /**
+ * @param queryRoot
+ * @param entityKey - key relative to queryRoot
+ * @return entity - will return null if not found
+ */
+ public Entity getMergedEntity(Entity queryRoot, String entityKey);
+
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/IMetaDataTranslator.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/IMetaDataTranslator.java
index eaa159b..b6a15a8 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/IMetaDataTranslator.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/IMetaDataTranslator.java
@@ -20,4 +20,9 @@
* @param assistant perform translation using the IMetaDataModelMergeAssistant
*/
public void translate(IMetaDataModelMergeAssistant assistant);
+ /**
+ * @param modelProvider
+ * @return true if this translator can translate this model source
+ */
+ public boolean canTranslate(IMetaDataSourceModelProvider modelProvider);
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelMergeAssistantImpl.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelMergeAssistantImpl.java
index df3c715..16577d3 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelMergeAssistantImpl.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/MetaDataModelMergeAssistantImpl.java
@@ -102,6 +102,18 @@
return false;
}
+ public Entity getMergedEntity(Entity queryRoot, String entityKey){
+ Entity ret = null;
+ SimpleResultSet rs = (SimpleResultSet)entityVisitor.findEntities(queryRoot, entityKey);
+ try {
+ if (! rs.getResults().isEmpty())
+ ret = (Entity)rs.getResults().get(0);
+ rs.close();
+ } catch (MetaDataException e) {
+ JSFCommonPlugin.log(IStatus.ERROR, "Error in getMergedEntity()", e);
+ }
+ return ret;
+ }
private void addIncludeGroupsAsNecessary(final Entity mmEntity, final Entity entity) {
for (Iterator it=entity.getIncludeGroups().iterator();it.hasNext();){
IncludeEntityGroup grp = (IncludeEntityGroup)it.next();
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/StandardMetaDataFileRegistry.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/StandardMetaDataFileRegistry.java
index e49ca1a..e20a2be 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/StandardMetaDataFileRegistry.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/StandardMetaDataFileRegistry.java
@@ -153,18 +153,22 @@
} catch (FileNotFoundException e){
JSFCommonPlugin.log(IStatus.ERROR, e.getLocalizedMessage());
} catch (IOException e) {
- JSFCommonPlugin.log(IStatus.ERROR,"IOException(1): StandardMetaDataFilesProvider.getSourceModel()", e); //$NON-NLS-1$
+ JSFCommonPlugin.log(IStatus.ERROR,"IOException(1): StandardMetaDataFilesProvider.getSourceModel():"+getModelName(), e); //$NON-NLS-1$
} finally {
if (inputStream != null){
try {
inputStream.close();
} catch (IOException e) {
- JSFCommonPlugin.log( IStatus.ERROR,"IOException (2): StandardMetaDataFilesProvider.getSourceModel()", e); //$NON-NLS-1$
+ JSFCommonPlugin.log( IStatus.ERROR,"IOException (2): StandardMetaDataFilesProvider.getSourceModel():"+getModelName(), e); //$NON-NLS-1$
}
}
}
return model;
}
+
+ private String getModelName() {
+ return info.toString();
+ }
/* (non-Javadoc)
* @see org.eclipse.jst.jsf.common.metadata.internal.IMetaDataSourceModelProvider#getLocator()
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/StandardMetaDataFilesTranslator.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/StandardMetaDataFilesTranslator.java
index 261f24e..92ae691 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/StandardMetaDataFilesTranslator.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/StandardMetaDataFilesTranslator.java
@@ -17,6 +17,7 @@
import org.eclipse.jst.jsf.common.metadata.EntityGroup;
import org.eclipse.jst.jsf.common.metadata.Model;
import org.eclipse.jst.jsf.common.metadata.Trait;
+import org.eclipse.jst.jsf.common.metadata.internal.StandardMetaDataFileRegistry.StandardMetaDataFilesProvider;
/**
@@ -25,6 +26,12 @@
*/
public class StandardMetaDataFilesTranslator implements IMetaDataTranslator {
+ public boolean canTranslate(IMetaDataSourceModelProvider modelProvider) {
+ if (modelProvider instanceof StandardMetaDataFilesProvider)
+ return true;
+ return false;
+ }
+
public void translate(IMetaDataModelMergeAssistant assistant) {//TODO: throw proper errors
//null translate - sourceModel object are already Entities and traits
//traverse the tree and add to model
@@ -70,4 +77,5 @@
}
}
+
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/query/TaglibDomainMetaDataQueryHelper.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/query/TaglibDomainMetaDataQueryHelper.java
index 582db6d..341e4c8 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/query/TaglibDomainMetaDataQueryHelper.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/query/TaglibDomainMetaDataQueryHelper.java
@@ -11,7 +11,10 @@
********************************************************************************/
package org.eclipse.jst.jsf.common.metadata.query;
+import javax.xml.namespace.QName;
+
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.jst.jsf.common.JSFCommonPlugin;
import org.eclipse.jst.jsf.common.metadata.Entity;
@@ -208,4 +211,13 @@
}
return t;
}
+
+ /**
+ * @param tagEntity
+ * @return QName for tag entity
+ */
+ public static QName getQNameForTagEntity(Entity tagEntity) {
+ Assert.isTrue(tagEntity != null);
+ return new QName(tagEntity.getModel().getCurrentModelContext().getUri(), tagEntity.getId());
+ }
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/query/internal/SimpleEntityQueryVisitorImpl.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/query/internal/SimpleEntityQueryVisitorImpl.java
index df909d9..3fbac5b 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/query/internal/SimpleEntityQueryVisitorImpl.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/query/internal/SimpleEntityQueryVisitorImpl.java
@@ -113,7 +113,9 @@
}
/**
- * Simple comparator that compares that an entity's id for with another
+ * Simple comparator that compares that an entity's id for with another.
+ * Case-insensitive compare
+ *
*/
private class EntityQueryComparator implements Comparable/*<Entity>*/{
@@ -125,13 +127,13 @@
* @param entityKey
*/
public EntityQueryComparator(String entityKey){
- this.entityKey = entityKey;
+ this.entityKey = entityKey.toUpperCase();
stack = new EntityStack();
}
public int compareTo(Object entity) {
stack.push(entity);
- return entityKey.compareTo(getRelativeId());
+ return entityKey.compareTo(getRelativeId().toUpperCase());
}
/**
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/plugin.xml b/jsf/plugins/org.eclipse.jst.jsf.core/plugin.xml
index 8fd3920..fd9b992 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/plugin.xml
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/plugin.xml
@@ -161,6 +161,9 @@
point="org.eclipse.jst.jsf.core.AttributeValueRuntimeTypes">
<attributeValueRuntimeType
+ class="org.eclipse.jst.jsf.metadataprocessors.AbstractRootTypeDescriptor"
+ id="attributevalues.BaseType"/>
+ <attributeValueRuntimeType
class="org.eclipse.jst.jsf.taglibprocessing.attributevalues.StringType"
id="attributevalues.StringType"/>
<attributeValueRuntimeType
@@ -214,6 +217,45 @@
<attributeValueRuntimeType
class="org.eclipse.jst.jsf.taglibprocessing.attributevalues.ResourceBundleType"
id="attributevalues.ResourceBundleType"/>
+ <attributeValueRuntimeType
+ class="org.eclipse.jst.jsf.taglibprocessing.attributevalues.LanguageCodeType"
+ id="attributevalues.LanguageCodeType"/>
+ <attributeValueRuntimeType
+ class="org.eclipse.jst.jsf.taglibprocessing.attributevalues.RelativePathType"
+ id="attributevalues.RelativePathType"/>
+ <attributeValueRuntimeType
+ class="org.eclipse.jst.jsf.taglibprocessing.attributevalues.WebPathType"
+ id="attributevalues.WebPathType"/>
+ <attributeValueRuntimeType
+ class="org.eclipse.jst.jsf.taglibprocessing.attributevalues.CurrencyCodeType"
+ id="attributevalues.CurrencyCodeType"/>
+ <attributeValueRuntimeType
+ class="org.eclipse.jst.jsf.taglibprocessing.attributevalues.LocaleType"
+ id="attributevalues.LocaleType"/>
+ <attributeValueRuntimeType
+ class="org.eclipse.jst.jsf.taglibprocessing.attributevalues.TimeZoneType"
+ id="attributevalues.TimeZoneType"/>
+ <attributeValueRuntimeType
+ class="org.eclipse.jst.jsf.taglibprocessing.attributevalues.DateTimePatternType"
+ id="attributevalues.DateTimePatternType"/>
+ <attributeValueRuntimeType
+ class="org.eclipse.jst.jsf.taglibprocessing.attributevalues.NumberPatternType"
+ id="attributevalues.NumberPatternType"/>
+ <attributeValueRuntimeType
+ class="org.eclipse.jst.jsf.taglibprocessing.attributevalues.ScriptType"
+ id="attributevalues.ScriptType"/>
+ <attributeValueRuntimeType
+ class="org.eclipse.jst.jsf.taglibprocessing.attributevalues.CharacterType"
+ id="attributevalues.CharacterType"/>
+ <attributeValueRuntimeType
+ class="org.eclipse.jst.jsf.taglibprocessing.attributevalues.LinkType"
+ id="attributevalues.LinkType"/>
+ <attributeValueRuntimeType
+ class="org.eclipse.jst.jsf.taglibprocessing.attributevalues.ContentType"
+ id="attributevalues.ContentType"/>
+ <attributeValueRuntimeType
+ class="org.eclipse.jst.jsf.taglibprocessing.attributevalues.URIType"
+ id="attributevalues.URIType"/>
</extension>
<extension
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/AbstractMetaDataEnabledFeature.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/AbstractMetaDataEnabledFeature.java
index e6f65ab..f87b0ba 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/AbstractMetaDataEnabledFeature.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/AbstractMetaDataEnabledFeature.java
@@ -12,7 +12,7 @@
package org.eclipse.jst.jsf.metadataprocessors;
-import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import org.eclipse.jface.resource.ImageDescriptor;
@@ -27,17 +27,13 @@
/**
* Simple abstract class that implementers of {@link IMetaDataEnabledFeature} can subclass in the <b>TagLibDomain</b> of metadata
- * <p><b>Provisional API - subject to change</b></p>
- * @author Gerry Kessler - Oracle
- *
- *
+ * <p><b>Provisional API - subject to change</b></p>*
*/
public abstract class AbstractMetaDataEnabledFeature implements IMetaDataEnabledFeature{
private MetaDataContext mdContext;
private IStructuredDocumentContext sdContext;
-
- private static final List EMPTY_LIST = new ArrayList(0);
+
/* (non-Javadoc)
* @see org.eclipse.jst.jsf.metadataprocessors.IMetaDataEnabledFeature#setMetaDataContext(org.eclipse.jst.jsf.metadataprocessors.MetaDataContext)
@@ -79,11 +75,6 @@
/**
* Return the single expected String value for a given property.
*
- * Since the MetaDataContext, where the type-id was found,
- * may have come from a wild card, or the property being looked up now is,
- * we should first look for the named property on the specific element and
- * only if not found, look for it on the * element.
- *
* @param traitName property name
* @return String value
*/
@@ -100,11 +91,6 @@
/**
* Return the List of values for a given property.
*
- * Since the MetaDataContext, where the type-id was found,
- * may have come from a wild card, or the property being looked up now is,
- * we should first look for the named property on the specific element and
- * only if not found, look for it on the * element.
- *
* @param traitName trait name
* @return List of String values
*/
@@ -114,9 +100,24 @@
return TraitValueHelper.getValueAsListOfStrings(t);
}
- return EMPTY_LIST;
+ return Collections.EMPTY_LIST;
}
+ /**
+ * Return a boolean value for the given named trait .
+ *
+ * @param traitName property name
+ * @return boolean value. Returns false if trait was not located.
+ */
+ protected boolean getTraitValueAsBoolean(final String traitName){
+ Trait t = getTraitForEntityUsingContext(traitName);
+ if (t != null){
+ return TraitValueHelper.getValueAsBoolean(t);
+ }
+
+ return false;
+
+ }
private Trait getTraitForEntityUsingContext(final String traitName) {
//look for trait on given entity
final Entity entity = ((TaglibMetadataContext)getMetaDataContext()).getEntity();
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/AbstractRootTypeDescriptor.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/AbstractRootTypeDescriptor.java
index 4a22c20..00b1ed8 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/AbstractRootTypeDescriptor.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/AbstractRootTypeDescriptor.java
@@ -13,7 +13,9 @@
package org.eclipse.jst.jsf.metadataprocessors;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.eclipse.core.runtime.Assert;
import org.eclipse.jst.jsf.metadataprocessors.internal.IMetaDataEnabledFeatureExtension;
@@ -65,8 +67,8 @@
* @param processingFeature
* @return list of <code>IMetaDataEnabledFeature</code>s
*/
- protected final List findMetaDataEnabledFeaturesForThisType(Class processingFeature) {
- List ret = new ArrayList(3);
+ protected final List<IMetaDataEnabledFeature> findMetaDataEnabledFeaturesForThisType(Class processingFeature) {
+ Map <String, IMetaDataEnabledFeature> mapOfFeatures = new HashMap<String, IMetaDataEnabledFeature>();
List extensions = MetaDataEnabledFeatureRegistry.getInstance()
.getFeatures(getTypeExtension().getTypeID());
@@ -74,10 +76,15 @@
for (int i=0;i<extensions.size();i++){
IMetaDataEnabledFeatureExtension aFeature = (IMetaDataEnabledFeatureExtension)extensions.get(i);
IMetaDataEnabledFeature feature = MetaDataEnabledFeatureAdapterFactory.getInstance().getFeatureAdapter(aFeature, processingFeature);
- if (feature != null && processingFeature.isInstance(feature)){
- ret.add(feature);
+ if (feature != null && processingFeature.isInstance(feature)
+ && ! mapOfFeatures.containsKey(aFeature.getClassName())){
+ mapOfFeatures.put(aFeature.getClassName(),feature);
}
}
+ }
+ List<IMetaDataEnabledFeature> ret = new ArrayList<IMetaDataEnabledFeature>(mapOfFeatures.size());
+ for (IMetaDataEnabledFeature feature: mapOfFeatures.values()){
+ ret.add(feature);
}
return ret;
}
@@ -89,13 +96,13 @@
return type;
}
+
/* (non-Javadoc)
* @see org.eclipse.jst.jsf.metadataprocessors.ITypeDescriptor#setRuntimeType(org.eclipse.jst.jsf.metadataprocessors.internal.AbstractMetaDataEnabledType)
*/
public void setTypeExtension(IType type) {
this.type = type;
}
-
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/ITypeDescriptor.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/ITypeDescriptor.java
index bbf8aa9..0031ebb 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/ITypeDescriptor.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/ITypeDescriptor.java
@@ -44,6 +44,6 @@
* @return List of <code>IMetaDataEnabledFeature</code>s that support the
* specified processingFeature interface.
*/
- public List getFeatureAdapters(Class processingFeature);
+ public List<IMetaDataEnabledFeature> getFeatureAdapters(Class processingFeature);
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/MetaDataEnabledProcessingFactory.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/MetaDataEnabledProcessingFactory.java
index fca3105..08cc067 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/MetaDataEnabledProcessingFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/MetaDataEnabledProcessingFactory.java
@@ -13,6 +13,7 @@
package org.eclipse.jst.jsf.metadataprocessors;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import org.eclipse.core.resources.IProject;
@@ -26,91 +27,130 @@
import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext;
import org.eclipse.jst.jsf.metadataprocessors.internal.AttributeValueRuntimeTypeFactory;
-
/**
- * Singleton class that will produce <code>IMetaDataEnabledFeature</code>s that the
- * caller can use for processing.
- * <p><b>Provisional API - subject to change</b></p>
+ * Singleton class that will produce <code>IMetaDataEnabledFeature</code>s
+ * that the caller can use for processing.
+ * <p>
+ * <b>Provisional API - subject to change</b>
+ * </p>
+ *
* @author Gerry Kessler - Oracle
- *
+ *
*/
public final class MetaDataEnabledProcessingFactory {
private static MetaDataEnabledProcessingFactory INSTANCE;
-
+
/**
- * Name of property in annotation file to use when applying a runtime type to an attribute value
+ * Name of property in annotation file to use when applying a runtime type
+ * to an attribute value
*/
public static final String ATTRIBUTE_VALUE_RUNTIME_TYPE_PROP_NAME = "attribute-value-runtime-type";
-
+
/**
* @return singleton instance
*/
- public static MetaDataEnabledProcessingFactory getInstance(){
- if (INSTANCE == null){
- INSTANCE = new MetaDataEnabledProcessingFactory();
+ public static MetaDataEnabledProcessingFactory getInstance() {
+ if (INSTANCE == null) {
+ INSTANCE = new MetaDataEnabledProcessingFactory();
}
return INSTANCE;
}
-
- private MetaDataEnabledProcessingFactory(){
+
+ private MetaDataEnabledProcessingFactory() {
super();
}
-
+
/**
- * Returns list of <code>IMetaDataEnabledFeature</code> adapters for the given Taglibrary attribute.
+ * Returns list of <code>IMetaDataEnabledFeature</code> adapters for the
+ * given Taglibrary attribute.
*
- * Adapters will be scanned for first by uri, element, attribute and if not found,
- * uri, "*", attribute and if still not found by "*", "*", attribute.
- * @param featureType feature type. eg. <code>IPossibleValues</code>, <code>IValidValues</code>, etc. Must be subclass of IMetaDataEnabledFeature.
- * @param sdContext
- * @param uri annotation file uri
+ * Adapters will be scanned for first by uri, element, attribute and if not
+ * found, uri, "*", attribute and if still not found by "*", "*", attribute.
+ *
+ * @param featureType
+ * feature type. eg. <code>IPossibleValues</code>,
+ * <code>IValidValues</code>, etc. Must be subclass of
+ * IMetaDataEnabledFeature.
+ * @param sdContext
+ * @param uri
+ * annotation file uri
* @param elementName
* @param attributeName
- * @return returns null - if the metadata was not found
- * <br>returns empty list - if not a <code>IMetaDataEnabledFeature</code> proccessor or is not valid or does not support the specified feature
+ * @return returns null - if the metadata was not found <br>
+ * returns empty list - if not a
+ * <code>IMetaDataEnabledFeature</code> proccessor or is not valid
+ * or does not support the specified feature
*
* @see MetaDataEnabledProcessingFactory#ATTRIBUTE_VALUE_RUNTIME_TYPE_PROP_NAME
*/
- public List getAttributeValueRuntimeTypeFeatureProcessors(Class featureType, IStructuredDocumentContext sdContext, String uri, String elementName, String attributeName){
- List retList = new ArrayList(2);
- //look up the attribute's runtime type from MD
- IProject _project = null;
- if (sdContext !=null){
- IWorkspaceContextResolver resolver = IStructuredDocumentContextResolverFactory.INSTANCE.getWorkspaceContextResolver(sdContext);
- _project = resolver != null ? resolver.getProject() : null;
+ public List<IMetaDataEnabledFeature> getAttributeValueRuntimeTypeFeatureProcessors(
+ Class featureType, IStructuredDocumentContext sdContext,
+ String uri, String elementName, String attributeName) {
+
+ // look up the attribute's runtime type from MD
+ IProject _project = null;
+ if (sdContext != null) {
+ IWorkspaceContextResolver resolver = IStructuredDocumentContextResolverFactory.INSTANCE
+ .getWorkspaceContextResolver(sdContext);
+ _project = resolver != null ? resolver.getProject() : null;
}
String _elem = elementName + "/" + attributeName;
String _uri = uri;
- ITaglibDomainMetaDataModelContext modelContext = TaglibDomainMetaDataQueryHelper.createMetaDataModelContext(_project, _uri);
- Entity entity = TaglibDomainMetaDataQueryHelper.getEntity(modelContext, _elem);
- Trait trait = null;
- if (entity != null){
- trait = TaglibDomainMetaDataQueryHelper.getTrait(entity, ATTRIBUTE_VALUE_RUNTIME_TYPE_PROP_NAME);
- }
+ ITaglibDomainMetaDataModelContext modelContext = TaglibDomainMetaDataQueryHelper
+ .createMetaDataModelContext(_project, _uri);
+ Entity attrEntity = TaglibDomainMetaDataQueryHelper.getEntity(modelContext,
+ _elem);
+
+ if (attrEntity != null)
+ return getAttributeValueRuntimeTypeFeatureProcessors(featureType, sdContext, attrEntity);
- if (trait==null){
+ return Collections.EMPTY_LIST;
+
+ }
+
+ /**
+ * @param featureType
+ * @param sdContext
+ * @param attrEntity
+ * @return returns null - if the metadata was not found <br>
+ * returns empty list - if not a
+ * <code>IMetaDataEnabledFeature</code> proccessor or is not valid
+ * or does not support the specified feature
+ */
+ public List<IMetaDataEnabledFeature> getAttributeValueRuntimeTypeFeatureProcessors(
+ Class featureType, IStructuredDocumentContext sdContext,
+ Entity attrEntity) {
+
+ List<IMetaDataEnabledFeature> retList = new ArrayList<IMetaDataEnabledFeature>(2);
+ Trait trait = TaglibDomainMetaDataQueryHelper.getTrait(attrEntity,
+ ATTRIBUTE_VALUE_RUNTIME_TYPE_PROP_NAME);
+
+ if (trait == null) {
return retList;
}
-
+
String typeId = TraitValueHelper.getValueAsString(trait);
-
- //get the implementing class for the type
- ITypeDescriptor type = AttributeValueRuntimeTypeFactory.getInstance().getType(typeId);
- if (type != null){
- TaglibMetadataContext context = new TaglibMetadataContext(uri, elementName, attributeName, entity, trait);
- //get all the feature adapters (IMetaDataEnabledFeature) for this type
- List aList = type.getFeatureAdapters(featureType);
- for (int j=0;j<aList.size();j++){
- //set the context in the feature
- ((IMetaDataEnabledFeature)aList.get(j)).setMetaDataContext(context);
- ((IMetaDataEnabledFeature)aList.get(j)).setStructuredDocumentContext(sdContext);
+
+ // get the implementing class for the type
+ ITypeDescriptor type = AttributeValueRuntimeTypeFactory.getInstance()
+ .getType(typeId);
+ if (type != null) {
+ TaglibMetadataContext context = new TaglibMetadataContext(attrEntity, trait);
+ // get all the feature adapters (IMetaDataEnabledFeature) for this
+ // type
+ List<IMetaDataEnabledFeature> aList = type.getFeatureAdapters(featureType);
+ for (int j = 0; j < aList.size(); j++) {
+ // set the context in the feature
+ ((IMetaDataEnabledFeature) aList.get(j))
+ .setMetaDataContext(context);
+ ((IMetaDataEnabledFeature) aList.get(j))
+ .setStructuredDocumentContext(sdContext);
retList.add(aList.get(j));
}
}
- //return list of IMetaDataEnabledFeatures for this type
+ // return list of IMetaDataEnabledFeatures for this type
return retList;
-
}
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/TaglibMetadataContext.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/TaglibMetadataContext.java
index 89978e6..cc91c5b 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/TaglibMetadataContext.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/TaglibMetadataContext.java
@@ -38,6 +38,19 @@
this.tagName = tagName;
this.attributeName = attributeName;
}
+
+ /**
+ * Constructor
+ *
+ * @param tagAttrEntity - must be tag attribute entity
+ * @param trait
+ */
+ public TaglibMetadataContext(Entity tagAttrEntity, Trait trait){
+ super(tagAttrEntity, trait);
+ this.uri = tagAttrEntity.getModel().getCurrentModelContext().getUri();
+ this.tagName = ((Entity)tagAttrEntity.eContainer()).getId();
+ this.attributeName = tagAttrEntity.getId();
+ }
/**
* @return URI
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/AbstractMetaDataEnabledTypeFactory.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/AbstractMetaDataEnabledTypeFactory.java
index b03b522..6e2d1f4 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/AbstractMetaDataEnabledTypeFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/AbstractMetaDataEnabledTypeFactory.java
@@ -50,7 +50,7 @@
/**
* @param type
- * @return list of instances identified by the type id
+ * @return instance of ITypeDescriptor identified by the type id
*/
public ITypeDescriptor getType(AbstractMetaDataEnabledType type){
@@ -59,6 +59,15 @@
}
/**
+ * @param type
+ * @return class identified by the type id
+ */
+ public Class getClassForType(IType type){
+ return createTypeClass(type);
+
+ }
+
+ /**
* Creates instances of <code>ITypeDescriptor</code>s from
* <code>AbstractMetaDataEnabledType</code>s
*
@@ -67,7 +76,7 @@
*/
protected ITypeDescriptor createType(IType atype){
if (atype != null){
- ITypeDescriptor desc = createDescriptor(atype);
+ ITypeDescriptor desc = createDescriptorInstance(atype);
if (desc != null){
desc.setTypeExtension(atype);
return desc;
@@ -77,7 +86,7 @@
}
- private ITypeDescriptor createDescriptor(IType type){
+ private Class createTypeClass(IType type){
String className = type.getClassName();
try {
Bundle bundle =Platform.getBundle(type.getBundleID());
@@ -90,12 +99,23 @@
//make sure the class can support the feature/extended interface
if (ITypeDescriptor.class.isAssignableFrom(klass))
{
- return (ITypeDescriptor)klass.newInstance();
+ return klass;
}
JSFCorePlugin.log(IStatus.INFO, className + " was not found in " + type.getBundleID() +" for " + type.getTypeID());
}
} catch (ClassNotFoundException e) {
JSFCorePlugin.log(IStatus.ERROR, className + " was not found in " + type.getBundleID() +" for " + type.getTypeID());
+ }
+ return null;
+ }
+
+ private ITypeDescriptor createDescriptorInstance(IType type){
+ String className = type.getClassName();
+ try {
+ Class klass = createTypeClass(type);
+ if (klass != null){
+ return (ITypeDescriptor)klass.newInstance();
+ }
} catch (InstantiationException e) {
JSFCorePlugin.log(IStatus.ERROR, "InstantiationException: " + className + " in " + type.getBundleID() +" for " + type.getTypeID());
} catch (IllegalAccessException e) {
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/MetaDataEnabledFeatureAdapterFactory.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/MetaDataEnabledFeatureAdapterFactory.java
index e821ec1..9cb0303 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/MetaDataEnabledFeatureAdapterFactory.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/MetaDataEnabledFeatureAdapterFactory.java
@@ -12,10 +12,15 @@
package org.eclipse.jst.jsf.metadataprocessors.internal;
+import java.util.HashMap;
+import java.util.Map;
+
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
import org.eclipse.jst.jsf.metadataprocessors.IMetaDataEnabledFeature;
+import org.eclipse.jst.jsf.metadataprocessors.IType;
+import org.eclipse.jst.jsf.metadataprocessors.ITypeDescriptor;
import org.osgi.framework.Bundle;
/**
@@ -27,7 +32,7 @@
*/
public final class MetaDataEnabledFeatureAdapterFactory {
private static MetaDataEnabledFeatureAdapterFactory INSTANCE;
-
+ private Map<String, Class> typesCache;
/**
* @return singleton instance
*/
@@ -40,8 +45,10 @@
private MetaDataEnabledFeatureAdapterFactory(){
super();
+ typesCache = new HashMap<String, Class>();
}
+
/**
* Given the feature extension, create and return the {@link IMetaDataEnabledFeature} for a given processing feature
* @param feature
@@ -55,25 +62,89 @@
return null;
}
+ /**
+ * Given the feature extension, create and return the {@link IMetaDataEnabledFeature} for a given processing feature if
+ * that the type that the feature is bound to is a subclass of the the type
+ * @param feature
+ * @param processingFeature class
+ * @param type
+ * @return IMetaDataEnabledFeature. <br>Will return null if the type that the feature extension is bound to,
+ * is not a subclass of the supplied type
+ */
+ public IMetaDataEnabledFeature getFeatureAdapterForSubclass(IMetaDataEnabledFeatureExtension feature, Class processingFeature, IType type){
+ if (feature != null ){
+ ITypeDescriptor aType = AttributeValueRuntimeTypeFactory.getInstance().getType(feature.getTypeID());
+ Class klass = aType.getTypeExtension().getClass();
+ if (klass.asSubclass(type.getClass()) != null)
+ return createFeature(feature, processingFeature);
+ }
+ return null;
+ }
+
+// private Class getOrCreateTypeClassFor(IMetaDataEnabledFeatureExtension featureExt){
+// Class klass = null;
+// String className;
+// ITypeDescriptor type = AttributeValueRuntimeTypeFactory.getInstance().getType(featureExt.getTypeID());
+// try {
+// if (! typesCache.containsKey(featureExt.getTypeID())){
+// Bundle bundle =Platform.getBundle(featureExt.getBundleID());
+// if (bundle == null){
+// JSFCorePlugin.log(IStatus.ERROR, featureExt.getBundleID() + " could not be created to load " + className);
+// return null;
+// }
+// klass = bundle.loadClass(className);
+// if (klass != null){
+// typesCache.put(featureExt.getTypeID(), klass);
+// }
+// }
+// else
+// klass = typesCache.get(featureExt.getTypeID());
+//
+// return klass;
+// if (!IMetaDataEnabledFeature.class.isAssignableFrom(klass)){
+// JSFCorePlugin.log(IStatus.INFO, className + " is not a IMetaDataEnabledFeature. " + featureExt.getBundleID() +" : " + featureExt.getTypeID());
+// }
+// else if (klass != null && processingFeature.isAssignableFrom(klass)){
+// IMetaDataEnabledFeature obj = (IMetaDataEnabledFeature)klass.newInstance();
+// return obj;
+// }
+//
+// } catch (ClassNotFoundException e) {
+// JSFCorePlugin.log(IStatus.ERROR, className + " was not found in " + featureExt.getBundleID() +" for " + featureExt.getTypeID());
+// } catch (InstantiationException e) {
+// JSFCorePlugin.log(IStatus.ERROR, "InstantiationException: " + className + " in " + featureExt.getBundleID() +" for " + featureExt.getTypeID());
+// } catch (IllegalAccessException e) {
+// JSFCorePlugin.log(IStatus.ERROR, "IllegalAccessException: " + className + " in " + featureExt.getBundleID() +" for " + featureExt.getTypeID());
+// }
+// return null;
+// }
+
private IMetaDataEnabledFeature createFeature(IMetaDataEnabledFeatureExtension featureExt, Class processingFeature){
String className = featureExt.getClassName();
+ Class klass = null;
try {
- Bundle bundle =Platform.getBundle(featureExt.getBundleID());
- if (bundle == null){
- JSFCorePlugin.log(IStatus.ERROR, featureExt.getBundleID() + " could not be created to load " + className);
- return null;
- }
- Class klass = bundle.loadClass(className);
- if (klass != null){
- if (!IMetaDataEnabledFeature.class.isAssignableFrom(klass)){
- JSFCorePlugin.log(IStatus.INFO, className + " is not a IMetaDataEnabledFeature. " + featureExt.getBundleID() +" : " + featureExt.getTypeID());
- }
- else if (processingFeature.isAssignableFrom(klass)){
- IMetaDataEnabledFeature obj = (IMetaDataEnabledFeature)klass.newInstance();
-// obj.setBundleID(featureExt.getBundleID());
- return obj;
+ if (! typesCache.containsKey(featureExt.getTypeID())){
+ Bundle bundle =Platform.getBundle(featureExt.getBundleID());
+ if (bundle == null){
+ JSFCorePlugin.log(IStatus.ERROR, featureExt.getBundleID() + " could not be created to load " + className);
+ return null;
+ }
+ klass = bundle.loadClass(className);
+ if (klass != null){
+ typesCache.put(featureExt.getTypeID(), klass);
}
}
+ else
+ klass = typesCache.get(featureExt.getTypeID());
+
+ if (!IMetaDataEnabledFeature.class.isAssignableFrom(klass)){
+ JSFCorePlugin.log(IStatus.INFO, className + " is not a IMetaDataEnabledFeature. " + featureExt.getBundleID() +" : " + featureExt.getTypeID());
+ }
+ else if (klass != null && processingFeature.isAssignableFrom(klass)){
+ IMetaDataEnabledFeature obj = (IMetaDataEnabledFeature)klass.newInstance();
+ return obj;
+ }
+
} catch (ClassNotFoundException e) {
JSFCorePlugin.log(IStatus.ERROR, className + " was not found in " + featureExt.getBundleID() +" for " + featureExt.getTypeID());
} catch (InstantiationException e) {
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/MetaDataEnabledFeatureRegistry.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/MetaDataEnabledFeatureRegistry.java
index 47bb44b..adf895d 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/MetaDataEnabledFeatureRegistry.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/metadataprocessors/internal/MetaDataEnabledFeatureRegistry.java
@@ -14,6 +14,7 @@
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -22,21 +23,19 @@
import org.eclipse.core.runtime.InvalidRegistryObjectException;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
+import org.eclipse.jst.jsf.metadataprocessors.IType;
/**
* Registry of <code>AbstractMetaDataEnabledType</code>s loaded from
* the <code>MetaDataEnabledFeatures</code> extension point
*
* A map of features keyed by type id
- *
- * @author Gerry Kessler - Oracle
*
*/
public class MetaDataEnabledFeatureRegistry{
private static final String EXTPTID = "MetaDataEnabledFeatures";
- private Map featuresMap;
- private List EMPTY_LIST = new ArrayList(0);
-
+ private Map<String, List<IMetaDataEnabledFeatureExtension>> featuresMap;
+ private Map<String, Class> typeCacheMap;
private static MetaDataEnabledFeatureRegistry INSTANCE;
/**
@@ -50,7 +49,8 @@
}
private MetaDataEnabledFeatureRegistry(){
- featuresMap = new HashMap();
+ featuresMap = new HashMap<String, List<IMetaDataEnabledFeatureExtension>>();
+ typeCacheMap = new HashMap<String, Class>();
readRegistry();
}
@@ -83,27 +83,91 @@
*/
protected void registerFeature(String bundleID, String typeId, String klass){
IMetaDataEnabledFeatureExtension aFeature = new MetaDataEnabledFeatureExtension(bundleID, typeId, klass);
- if (!featuresMap.containsKey(typeId)){
- List list = new ArrayList();
- list.add(aFeature);
- featuresMap.put(typeId, list);
+ if (canCreateTypeForFeatureExtension(aFeature)){
+ if (!featuresMap.containsKey(typeId)){
+ List list = new ArrayList();
+ list.add(aFeature);
+ featuresMap.put(typeId, list);
+ }
+ else {
+ List list = (List)featuresMap.get(typeId);
+ list.add(aFeature);
+ }
}
- else {
- List list = (List)featuresMap.get(typeId);
- list.add(aFeature);
+ }
+
+
+ private boolean canCreateTypeForFeatureExtension(IMetaDataEnabledFeatureExtension feature) {
+ if (! typeCacheMap.containsKey(feature.getTypeID())){
+ IType type = AttributeValueRuntimeTypeRegistry.getInstance().getType(feature.getTypeID());
+ Class typeClass = AttributeValueRuntimeTypeFactory.getInstance().getClassForType(type);
+ typeCacheMap.put(feature.getTypeID(), typeClass);
}
+ return typeCacheMap.get(feature.getTypeID()) != null;
}
/**
* @param typeId
* @return List of <code>AbstractMetaDataEnabledRuntimeTypeExtensions</code>
* for a given by type id
+ *
+ * TODO: make more efficient... no need to keep calculating features for subtypes.
*/
- public List getFeatures(String typeId) {
- if (featuresMap.containsKey(typeId))
- {
- return (List)featuresMap.get(typeId);
- }
- return EMPTY_LIST;
+ public List<IMetaDataEnabledFeatureExtension> getFeatures(String typeId) {
+
+ if (!featuresMap.containsKey(typeId))
+ featuresMap.put(typeId,new ArrayList());
+
+ //copy current featuresMapped to typeId into return list
+ List<IMetaDataEnabledFeatureExtension> srcList = featuresMap.get(typeId);
+ List<IMetaDataEnabledFeatureExtension> ret = new ArrayList<IMetaDataEnabledFeatureExtension>(srcList.size());
+ copy(ret, srcList);
+
+ List subs = getFeatureExtensionsForMatchingSubclass(typeId);
+ for (Iterator<IMetaDataEnabledFeatureExtension> it=subs.iterator();it.hasNext();){
+ IMetaDataEnabledFeatureExtension featureExt = it.next();
+ if (!ret.contains(featureExt))
+ ret.add(featureExt);
+ }
+ return ret;
+
}
+
+ private void copy(List<IMetaDataEnabledFeatureExtension> destList,
+ List<IMetaDataEnabledFeatureExtension> srcList) {
+ for (Iterator<IMetaDataEnabledFeatureExtension> it=srcList.iterator();it.hasNext();){
+ destList.add(it.next());
+ }
+ }
+
+ /**
+ * If the feature adapter is mapped to a type which is a superclass of the type of interest, then the feature adapter is an extension of that type
+ * @param typeId
+ * @return list of IMetaDataEnabledFeatureExtension
+ */
+ private List<IMetaDataEnabledFeatureExtension> getFeatureExtensionsForMatchingSubclass(String typeId) {
+ IType type = AttributeValueRuntimeTypeRegistry.getInstance().getType(typeId);
+ Class typeClass = AttributeValueRuntimeTypeFactory.getInstance().getClassForType(type);
+
+ List<IMetaDataEnabledFeatureExtension> ret = new ArrayList<IMetaDataEnabledFeatureExtension>();
+ // loop thru all of the type classes mapped to feature adapters that are subclasses of the type
+ for (Iterator it=typeCacheMap.keySet().iterator();it.hasNext();){
+ String featureTypeId = (String)it.next();
+ Class featureTypeClass = typeCacheMap.get(featureTypeId);
+ try {
+// if (featureTypeClass.equals(typeClass)){
+// ret.add(featureTypeClass);
+// }
+// else
+ if (typeClass.asSubclass(featureTypeClass) != null) {
+ ret.addAll(featuresMap.get(featureTypeId));
+ }
+ } catch (ClassCastException e) {//
+ }
+
+ }
+ return ret;
+ }
+
+
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ActionType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ActionType.java
index 7723b6d..08d7820 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ActionType.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ActionType.java
@@ -90,6 +90,9 @@
*/
public List getPossibleValues() {
List ret = new ArrayList();
+ if (getStructuredDocumentContext() == null)
+ return ret;
+
IWorkspaceContextResolver wr = IStructuredDocumentContextResolverFactory.INSTANCE.getWorkspaceContextResolver(getStructuredDocumentContext());
if (wr != null && JSFAppConfigManager.getInstance(wr.getProject()) != null) {//may not be JSF faceted project or know faces-config){
IFile jsp = (IFile)wr.getResource();
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/CharacterType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/CharacterType.java
new file mode 100644
index 0000000..d821c78
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/CharacterType.java
@@ -0,0 +1,41 @@
+package org.eclipse.jst.jsf.taglibprocessing.attributevalues;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jst.jsf.metadataprocessors.AbstractRootTypeDescriptor;
+import org.eclipse.jst.jsf.metadataprocessors.IMetaDataEnabledFeature;
+import org.eclipse.jst.jsf.metadataprocessors.features.IValidValues;
+import org.eclipse.jst.jsf.metadataprocessors.features.IValidationMessage;
+import org.eclipse.jst.jsf.metadataprocessors.features.ValidationMessage;
+
+/**
+ * Represents a single unicode character
+ */
+public class CharacterType extends AbstractRootTypeDescriptor implements
+ IMetaDataEnabledFeature, IValidValues{
+
+ private List _msgs;
+
+ /**
+ * Constructor
+ */
+ public CharacterType() {
+ super();
+ }
+
+ public List<IValidationMessage> getValidationMessages() {
+ if (_msgs == null){
+ _msgs = new ArrayList<IValidationMessage>(1);
+ }
+ return _msgs;
+ }
+
+ public boolean isValidValue(String value) {
+ if (value.length() != 1)
+ getValidationMessages().add(new ValidationMessage(Messages.CharacterType_0));
+
+ return getValidationMessages().size() == 0;
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ColorType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ColorType.java
index 916b277..897a399 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ColorType.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ColorType.java
@@ -36,8 +36,8 @@
* List of standard colors
* See http://www.w3.org/TR/html4/types.html#type-color
*/
- private final static String[] COLORS = {"Black", "Silver", "Gray", "White", "Maroon", "Red", "Purple",
- "Fuchsia", "Green", "Lime", "Olive", "Yellow", "Navy", "Blue", "Teal","Aqua"};
+ private final static String[] COLORS = {"Black", "Silver", "Gray", "White", "Maroon", "Red", "Purple", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
+ "Fuchsia", "Green", "Lime", "Olive", "Yellow", "Navy", "Blue", "Teal","Aqua"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
//if ordering changes, must change RGB[] ordering
private RGB[] _rgb;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ComponentIDType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ComponentIDType.java
index 016d21b..82c9957 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ComponentIDType.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ComponentIDType.java
@@ -1,12 +1,12 @@
/*******************************************************************************
- * Copyright (c) 2006 Oracle Corporation.
+ * Copyright (c) 2006, 2007 Oracle Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * Gerry Kessler/Oracle - initial API and implementation
+ * Oracle - initial API and implementation
*
********************************************************************************/
package org.eclipse.jst.jsf.taglibprocessing.attributevalues;
@@ -21,13 +21,22 @@
/**
* Meta-data processing type representing an "id" attribute
+ * Represents an ID or NAME HTML attribute type.
+ * <br>
+ * Attribute values of type ID and NAME must begin with a letter in the range A-Z or a-z or underscore ("_") and
+ * may be followed by letters (A-Z, a-z), digits (0-9), hyphens ("-"), underscores ("_"), colons (":"),
+ * and periods (".").
*
* <p><b>Provisional API - subject to change</b></p>
* @author Gerry Kessler - Oracle
+ * TODO: finish regex validation
*/
public class ComponentIDType extends ValueBindingType implements
IValidValues, IValidELValues {
+// private static Pattern idPattern1 = Pattern.compile("[A-Za-z_]");;
+// private static Pattern idPattern2 = Pattern.compile("^[:\\w\\.\\-]*");
+
/* (non-Javadoc)
* @see org.eclipse.jst.jsf.taglibprocessing.attributevalues.ValueBindingType#getExpectedRuntimeType()
*/
@@ -49,5 +58,23 @@
}
getValidationMessages().add(msg);
return false;
+
+// if (value != null && value.trim().length() == 0)
+// msg = new ValidationMessage(Messages.ComponentIDType_invalid_value);
+//
+//// else if (!idPattern.matcher(value.trim()).find())
+//// fail = true;
+// else if (!idPattern1.matcher(value.trim().substring(0, 1)).find())
+// msg = new ValidationMessage("id must begin with alpha character");
+// else if ((value.trim().length() > 1) && (!( idPattern2.matcher(value.trim().substring(1)).find())))
+// msg = new ValidationMessage("illegal characters in id: must be alphanum, period, colon, and hyphen only");
+// else {
+// //we could validate uniqueness, but will not for the time being. This would require a DT FacesContext.
+// //any other coercion rules apply here?
+// }
+// if (msg != null)
+// getValidationMessages().add(msg);
+//
+// return getValidationMessages().size() == 0;
}
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ContentType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ContentType.java
new file mode 100644
index 0000000..4fb9ec4
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ContentType.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation., and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Yury Kats/Oracle - initial API and implementation
+ *
+ ********************************************************************************/
+package org.eclipse.jst.jsf.taglibprocessing.attributevalues;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
+import org.eclipse.jst.jsf.metadataprocessors.features.PossibleValue;
+
+/**
+ * Meta-data processing type representing a content (MIME) type.
+ * A ContentType is defined as in 4.0 html spec http://www.w3.org/TR/html401/types.html#h-6.7
+ *
+ * <p><b>Provisional API - subject to change</b></p>
+ */
+
+public class ContentType extends EnumerationType implements IPossibleValues {
+
+ /**
+ * List of some of the more common content (MIME) types
+ * See http://www.w3.org/TR/html4/types.html#type-color
+ */
+ private final static String[] commontypes = {
+ "text/html", //$NON-NLS-1$
+ "text/css", //$NON-NLS-1$
+ "image/jpeg", //$NON-NLS-1$
+ "image/gif", //$NON-NLS-1$
+ "audio/mpeg", //$NON-NLS-1$
+ "video/mpeg", //$NON-NLS-1$
+ "video/quicktime", //$NON-NLS-1$
+ "text/javascript" //$NON-NLS-1$
+ };
+
+ protected String getReturnType(){ return "java.lang.String";} //$NON-NLS-1$
+
+ public boolean isValidValue(String value) {
+ boolean bValid = true;
+ if (value == null || value.trim().length() == 0)
+ bValid = false;
+
+ if(!bValid) {
+ addNewValidationMessage(Messages.ContentType_MIME_not_empty);
+ }
+
+ return getValidationMessages().isEmpty();
+ }
+
+ public List getPossibleValues() {
+ List ret = new ArrayList(commontypes.length);
+ for (int i=0;i < commontypes.length;i++){
+ PossibleValue pv = new PossibleValue(commontypes[i]);
+ ret.add(pv);
+ }
+ return ret;
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/CurrencyCodeType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/CurrencyCodeType.java
new file mode 100644
index 0000000..1dd639f
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/CurrencyCodeType.java
@@ -0,0 +1,229 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation., and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ *
+ ********************************************************************************/
+package org.eclipse.jst.jsf.taglibprocessing.attributevalues;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
+import org.eclipse.jst.jsf.metadataprocessors.features.PossibleValue;
+
+/**
+ * ISO-4217 Currency codes
+ */
+public class CurrencyCodeType extends EnumerationType implements IPossibleValues {
+ private static final CurrencyCodeMap _map = new CurrencyCodeMap();
+
+ @Override
+ protected String getReturnType() {
+ return "java.lang.String"; //$NON-NLS-1$
+ }
+
+ public List getPossibleValues() {
+ List ret = new ArrayList();
+ for(Iterator it = _map.keySet().iterator();it.hasNext();){
+ String key = (String)it.next();
+ String value = _map.get(key);
+ PossibleValue pv = new PossibleValue(key, value);
+ ret.add(pv);
+ }
+ return ret;
+ }
+
+ public boolean isValidValue(String value) {
+ if(!_map.containsKey(value.toUpperCase())) {
+ addNewValidationMessage(Messages.CurrencyCodeType_invalid);
+ }
+
+ return getValidationMessages().isEmpty();
+ }
+
+ private static class CurrencyCodeMap extends HashMap<String, String> {
+ CurrencyCodeMap(){
+ put("AED",Messages.CurrencyCodeType_2); //$NON-NLS-1$
+ put("AFA",Messages.CurrencyCodeType_3); //$NON-NLS-1$
+ put("ALL",Messages.CurrencyCodeType_4); //$NON-NLS-1$
+ put("AMD",Messages.CurrencyCodeType_5); //$NON-NLS-1$
+ put("ANG",Messages.CurrencyCodeType_6); //$NON-NLS-1$
+ put("AOA",Messages.CurrencyCodeType_7); //$NON-NLS-1$
+ put("ARS",Messages.CurrencyCodeType_8); //$NON-NLS-1$
+ put("AUD",Messages.CurrencyCodeType_9); //$NON-NLS-1$
+ put("AWG",Messages.CurrencyCodeType_10); //$NON-NLS-1$
+ put("AZM",Messages.CurrencyCodeType_11); //$NON-NLS-1$
+ put("BAM",Messages.CurrencyCodeType_12); //$NON-NLS-1$
+ put("BBD",Messages.CurrencyCodeType_13); //$NON-NLS-1$
+ put("BDT",Messages.CurrencyCodeType_14); //$NON-NLS-1$
+ put("BGN",Messages.CurrencyCodeType_15); //$NON-NLS-1$
+ put("BHD",Messages.CurrencyCodeType_16); //$NON-NLS-1$
+ put("BIF",Messages.CurrencyCodeType_17); //$NON-NLS-1$
+ put("BMD",Messages.CurrencyCodeType_18); //$NON-NLS-1$
+ put("BND",Messages.CurrencyCodeType_19); //$NON-NLS-1$
+ put("BOB",Messages.CurrencyCodeType_20); //$NON-NLS-1$
+ put("BRL",Messages.CurrencyCodeType_21); //$NON-NLS-1$
+ put("BSD",Messages.CurrencyCodeType_22); //$NON-NLS-1$
+ put("BTN",Messages.CurrencyCodeType_23); //$NON-NLS-1$
+ put("BWP",Messages.CurrencyCodeType_24); //$NON-NLS-1$
+ put("BYR",Messages.CurrencyCodeType_25); //$NON-NLS-1$
+ put("BZD",Messages.CurrencyCodeType_26); //$NON-NLS-1$
+ put("CAD",Messages.CurrencyCodeType_27); //$NON-NLS-1$
+ put("CDF",Messages.CurrencyCodeType_28); //$NON-NLS-1$
+ put("CHF",Messages.CurrencyCodeType_29); //$NON-NLS-1$
+ put("CLP",Messages.CurrencyCodeType_30); //$NON-NLS-1$
+ put("CNY",Messages.CurrencyCodeType_31); //$NON-NLS-1$
+ put("COP",Messages.CurrencyCodeType_32); //$NON-NLS-1$
+ put("CRC",Messages.CurrencyCodeType_33); //$NON-NLS-1$
+ put("CSD",Messages.CurrencyCodeType_34); //$NON-NLS-1$
+ put("CUP",Messages.CurrencyCodeType_35); //$NON-NLS-1$
+ put("CVE",Messages.CurrencyCodeType_36); //$NON-NLS-1$
+ put("CYP",Messages.CurrencyCodeType_37); //$NON-NLS-1$
+ put("CZK",Messages.CurrencyCodeType_38); //$NON-NLS-1$
+ put("DJF",Messages.CurrencyCodeType_39); //$NON-NLS-1$
+ put("DKK",Messages.CurrencyCodeType_40); //$NON-NLS-1$
+ put("DOP",Messages.CurrencyCodeType_41); //$NON-NLS-1$
+ put("DZD",Messages.CurrencyCodeType_42); //$NON-NLS-1$
+ put("EEK",Messages.CurrencyCodeType_43); //$NON-NLS-1$
+ put("EGP",Messages.CurrencyCodeType_44); //$NON-NLS-1$
+ put("ERN",Messages.CurrencyCodeType_45); //$NON-NLS-1$
+ put("ETB",Messages.CurrencyCodeType_46); //$NON-NLS-1$
+ put("EUR",Messages.CurrencyCodeType_47); //$NON-NLS-1$
+ put("FJD",Messages.CurrencyCodeType_48); //$NON-NLS-1$
+ put("FKP",Messages.CurrencyCodeType_49); //$NON-NLS-1$
+ put("GBP",Messages.CurrencyCodeType_50); //$NON-NLS-1$
+ put("GEL",Messages.CurrencyCodeType_51); //$NON-NLS-1$
+ put("GGP",Messages.CurrencyCodeType_52); //$NON-NLS-1$
+ put("GHC",Messages.CurrencyCodeType_53); //$NON-NLS-1$
+ put("GIP",Messages.CurrencyCodeType_54); //$NON-NLS-1$
+ put("GMD",Messages.CurrencyCodeType_55); //$NON-NLS-1$
+ put("GNF",Messages.CurrencyCodeType_56); //$NON-NLS-1$
+ put("GTQ",Messages.CurrencyCodeType_57); //$NON-NLS-1$
+ put("GYD",Messages.CurrencyCodeType_58); //$NON-NLS-1$
+ put("HKD",Messages.CurrencyCodeType_59); //$NON-NLS-1$
+ put("HNL",Messages.CurrencyCodeType_60); //$NON-NLS-1$
+ put("HRK",Messages.CurrencyCodeType_61); //$NON-NLS-1$
+ put("HTG",Messages.CurrencyCodeType_62); //$NON-NLS-1$
+ put("HUF",Messages.CurrencyCodeType_63); //$NON-NLS-1$
+ put("IDR",Messages.CurrencyCodeType_64); //$NON-NLS-1$
+ put("ILS",Messages.CurrencyCodeType_65); //$NON-NLS-1$
+ put("IMP",Messages.CurrencyCodeType_66); //$NON-NLS-1$
+ put("INR",Messages.CurrencyCodeType_67); //$NON-NLS-1$
+ put("IQD",Messages.CurrencyCodeType_68); //$NON-NLS-1$
+ put("IRR",Messages.CurrencyCodeType_69); //$NON-NLS-1$
+ put("ISK",Messages.CurrencyCodeType_70); //$NON-NLS-1$
+ put("JEP",Messages.CurrencyCodeType_71); //$NON-NLS-1$
+ put("JMD",Messages.CurrencyCodeType_72); //$NON-NLS-1$
+ put("JOD",Messages.CurrencyCodeType_73); //$NON-NLS-1$
+ put("JPY",Messages.CurrencyCodeType_74); //$NON-NLS-1$
+ put("KES",Messages.CurrencyCodeType_75); //$NON-NLS-1$
+ put("KGS",Messages.CurrencyCodeType_76); //$NON-NLS-1$
+ put("KHR",Messages.CurrencyCodeType_77); //$NON-NLS-1$
+ put("KMF",Messages.CurrencyCodeType_78); //$NON-NLS-1$
+ put("KPW",Messages.CurrencyCodeType_79); //$NON-NLS-1$
+ put("KRW",Messages.CurrencyCodeType_80); //$NON-NLS-1$
+ put("KWD",Messages.CurrencyCodeType_81); //$NON-NLS-1$
+ put("KYD",Messages.CurrencyCodeType_82); //$NON-NLS-1$
+ put("KZT",Messages.CurrencyCodeType_83); //$NON-NLS-1$
+ put("LAK",Messages.CurrencyCodeType_84); //$NON-NLS-1$
+ put("LBP",Messages.CurrencyCodeType_85); //$NON-NLS-1$
+ put("LKR",Messages.CurrencyCodeType_86); //$NON-NLS-1$
+ put("LRD",Messages.CurrencyCodeType_87); //$NON-NLS-1$
+ put("LSL",Messages.CurrencyCodeType_88); //$NON-NLS-1$
+ put("LTL",Messages.CurrencyCodeType_89); //$NON-NLS-1$
+ put("LVL",Messages.CurrencyCodeType_90); //$NON-NLS-1$
+ put("LYD",Messages.CurrencyCodeType_91); //$NON-NLS-1$
+ put("MAD",Messages.CurrencyCodeType_92); //$NON-NLS-1$
+ put("MDL",Messages.CurrencyCodeType_93); //$NON-NLS-1$
+ put("MGA",Messages.CurrencyCodeType_94); //$NON-NLS-1$
+ put("MKD",Messages.CurrencyCodeType_95); //$NON-NLS-1$
+ put("MMK",Messages.CurrencyCodeType_96); //$NON-NLS-1$
+ put("MNT",Messages.CurrencyCodeType_97); //$NON-NLS-1$
+ put("MOP",Messages.CurrencyCodeType_98); //$NON-NLS-1$
+ put("MRO",Messages.CurrencyCodeType_99); //$NON-NLS-1$
+ put("MTL",Messages.CurrencyCodeType_100); //$NON-NLS-1$
+ put("MUR",Messages.CurrencyCodeType_101); //$NON-NLS-1$
+ put("MVR",Messages.CurrencyCodeType_102); //$NON-NLS-1$
+ put("MWK",Messages.CurrencyCodeType_103); //$NON-NLS-1$
+ put("MXN",Messages.CurrencyCodeType_104); //$NON-NLS-1$
+ put("MYR",Messages.CurrencyCodeType_105); //$NON-NLS-1$
+ put("MZM",Messages.CurrencyCodeType_106); //$NON-NLS-1$
+ put("NAD",Messages.CurrencyCodeType_107); //$NON-NLS-1$
+ put("NGN",Messages.CurrencyCodeType_108); //$NON-NLS-1$
+ put("NIO",Messages.CurrencyCodeType_109); //$NON-NLS-1$
+ put("NOK",Messages.CurrencyCodeType_110); //$NON-NLS-1$
+ put("NPR",Messages.CurrencyCodeType_111); //$NON-NLS-1$
+ put("NZD",Messages.CurrencyCodeType_112); //$NON-NLS-1$
+ put("OMR",Messages.CurrencyCodeType_113); //$NON-NLS-1$
+ put("PAB",Messages.CurrencyCodeType_114); //$NON-NLS-1$
+ put("PEN",Messages.CurrencyCodeType_115); //$NON-NLS-1$
+ put("PGK",Messages.CurrencyCodeType_116); //$NON-NLS-1$
+ put("PHP",Messages.CurrencyCodeType_117); //$NON-NLS-1$
+ put("PKR",Messages.CurrencyCodeType_118); //$NON-NLS-1$
+ put("PLN",Messages.CurrencyCodeType_119); //$NON-NLS-1$
+ put("PYG",Messages.CurrencyCodeType_120); //$NON-NLS-1$
+ put("QAR",Messages.CurrencyCodeType_121); //$NON-NLS-1$
+ put("ROL",Messages.CurrencyCodeType_122); //$NON-NLS-1$
+ put("RUB",Messages.CurrencyCodeType_123); //$NON-NLS-1$
+ put("RWF",Messages.CurrencyCodeType_124); //$NON-NLS-1$
+ put("SAR",Messages.CurrencyCodeType_125); //$NON-NLS-1$
+ put("SBD",Messages.CurrencyCodeType_126); //$NON-NLS-1$
+ put("SCR",Messages.CurrencyCodeType_127); //$NON-NLS-1$
+ put("SDD",Messages.CurrencyCodeType_128); //$NON-NLS-1$
+ put("SEK",Messages.CurrencyCodeType_129); //$NON-NLS-1$
+ put("SGD",Messages.CurrencyCodeType_130); //$NON-NLS-1$
+ put("SHP",Messages.CurrencyCodeType_131); //$NON-NLS-1$
+ put("SIT",Messages.CurrencyCodeType_132); //$NON-NLS-1$
+ put("SKK",Messages.CurrencyCodeType_133); //$NON-NLS-1$
+ put("SLL",Messages.CurrencyCodeType_134); //$NON-NLS-1$
+ put("SOS",Messages.CurrencyCodeType_135); //$NON-NLS-1$
+ put("SPL",Messages.CurrencyCodeType_136); //$NON-NLS-1$
+ put("SRD",Messages.CurrencyCodeType_137); //$NON-NLS-1$
+ put("STD",Messages.CurrencyCodeType_138); //$NON-NLS-1$
+ put("SVC",Messages.CurrencyCodeType_139); //$NON-NLS-1$
+ put("SYP",Messages.CurrencyCodeType_140); //$NON-NLS-1$
+ put("SZL",Messages.CurrencyCodeType_141); //$NON-NLS-1$
+ put("THB",Messages.CurrencyCodeType_142); //$NON-NLS-1$
+ put("TJS",Messages.CurrencyCodeType_143); //$NON-NLS-1$
+ put("TMM",Messages.CurrencyCodeType_144); //$NON-NLS-1$
+ put("TND",Messages.CurrencyCodeType_145); //$NON-NLS-1$
+ put("TOP",Messages.CurrencyCodeType_146); //$NON-NLS-1$
+ put("TRL",Messages.CurrencyCodeType_147); //$NON-NLS-1$
+ put("TRY",Messages.CurrencyCodeType_148); //$NON-NLS-1$
+ put("TTD",Messages.CurrencyCodeType_149); //$NON-NLS-1$
+ put("TVD",Messages.CurrencyCodeType_150); //$NON-NLS-1$
+ put("TWD",Messages.CurrencyCodeType_151); //$NON-NLS-1$
+ put("TZS",Messages.CurrencyCodeType_152); //$NON-NLS-1$
+ put("UAH",Messages.CurrencyCodeType_153); //$NON-NLS-1$
+ put("UGX",Messages.CurrencyCodeType_154); //$NON-NLS-1$
+ put("USD",Messages.CurrencyCodeType_155); //$NON-NLS-1$
+ put("UYU",Messages.CurrencyCodeType_156); //$NON-NLS-1$
+ put("UZS",Messages.CurrencyCodeType_157); //$NON-NLS-1$
+ put("VEB",Messages.CurrencyCodeType_158); //$NON-NLS-1$
+ put("VND",Messages.CurrencyCodeType_159); //$NON-NLS-1$
+ put("VUV",Messages.CurrencyCodeType_160); //$NON-NLS-1$
+ put("WST",Messages.CurrencyCodeType_161); //$NON-NLS-1$
+ put("XAF",Messages.CurrencyCodeType_162); //$NON-NLS-1$
+ put("XAG",Messages.CurrencyCodeType_163); //$NON-NLS-1$
+ put("XAU",Messages.CurrencyCodeType_164); //$NON-NLS-1$
+ put("XCD",Messages.CurrencyCodeType_165); //$NON-NLS-1$
+ put("XDR",Messages.CurrencyCodeType_166); //$NON-NLS-1$
+ put("XOF",Messages.CurrencyCodeType_167); //$NON-NLS-1$
+ put("XPD",Messages.CurrencyCodeType_168); //$NON-NLS-1$
+ put("XPF",Messages.CurrencyCodeType_169); //$NON-NLS-1$
+ put("XPT",Messages.CurrencyCodeType_170); //$NON-NLS-1$
+ put("YER",Messages.CurrencyCodeType_171); //$NON-NLS-1$
+ put("ZAR",Messages.CurrencyCodeType_172); //$NON-NLS-1$
+ put("ZMK",Messages.CurrencyCodeType_173); //$NON-NLS-1$
+ put("ZWD",Messages.CurrencyCodeType_174); //$NON-NLS-1$
+ }
+ }
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/DateTimePatternType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/DateTimePatternType.java
new file mode 100644
index 0000000..42eaf82
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/DateTimePatternType.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation., and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ *
+ ********************************************************************************/
+package org.eclipse.jst.jsf.taglibprocessing.attributevalues;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jst.jsf.context.resolver.structureddocument.IDOMContextResolver;
+import org.eclipse.jst.jsf.context.resolver.structureddocument.IStructuredDocumentContextResolverFactory;
+import org.eclipse.jst.jsf.metadataprocessors.AbstractRootTypeDescriptor;
+import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
+import org.eclipse.jst.jsf.metadataprocessors.features.PossibleValue;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Node;
+
+/**
+ * Meta-data processing type representing a Date, Time and DateTime Pattern types.
+ *
+ * <p><b>Provisional API - subject to change</b></p>
+ *
+ */
+
+public class DateTimePatternType extends AbstractRootTypeDescriptor implements IPossibleValues{
+ //should we ever validate the patterns, extend EnumerationType
+ final private static String[] DATEPATTERNS = {"M/d/yy", "EEE, M/d/yy", "MM/dd/yyyy", "EEE, MM/dd/yyyy", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
+ "MMM d, yyyy", "EEE, MMM d, yyyy", "MMMM d, yyyy", "EEEE, MMMM d, yyyy", "MMMM yyyy" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ };
+ };
+
+ final private static String[] TIMEPATTERNS = {"hh:mm", "hh:mm z", "HH:mm z", "HH:mm:ss z" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
+ };
+
+ final private static String[] DATETIMEPATTERNS = {"M/d/yy hh:mm", "EEE, M/d/yy hh:mm", "MM/dd/yyyy HH:mm:ss z", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ "EEE, MM/dd/yyyy HH:mm:ss z", "MMM d, yyyy HH:mm z", "EEE, MMM d, yyyy HH:mm z", "MMMM d, yyyy HH:mm z", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ "EEEE, MMMM d, yyyy HH:mm z" //$NON-NLS-1$
+ };
+
+ public List getPossibleValues() {
+ List ret = new ArrayList();
+ String typeVal = getTypeValue();
+ if ("date".equalsIgnoreCase(typeVal)){ //$NON-NLS-1$
+ for (int i=0;i<DATEPATTERNS.length;i++){
+ ret.add(new PossibleValue(DATEPATTERNS[i]));
+ }
+ }
+ else if ("time".equalsIgnoreCase(typeVal)){ //$NON-NLS-1$
+ for (int i=0;i<TIMEPATTERNS.length;i++){
+ ret.add(new PossibleValue(TIMEPATTERNS[i]));
+ }
+ }
+ else {
+ for (int i=0;i<DATETIMEPATTERNS.length;i++){
+ ret.add(new PossibleValue(DATETIMEPATTERNS[i]));
+ }
+ }
+ return ret;
+ }
+
+ private String getTypeValue() {
+ if (getStructuredDocumentContext() != null){
+ IDOMContextResolver resolver = IStructuredDocumentContextResolverFactory.INSTANCE.getDOMContextResolver(getStructuredDocumentContext());
+ if (resolver != null){
+ Node tagNode = resolver.getNode();
+ Attr typeNode = (Attr)tagNode.getAttributes().getNamedItem("type"); //$NON-NLS-1$
+ if (typeNode != null)
+ return typeNode.getValue();
+
+ }
+ }
+ return ""; //$NON-NLS-1$
+ }
+
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/LanguageCodeType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/LanguageCodeType.java
new file mode 100644
index 0000000..5fd4cb5
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/LanguageCodeType.java
@@ -0,0 +1,125 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation., and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ *
+ ********************************************************************************/
+package org.eclipse.jst.jsf.taglibprocessing.attributevalues;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
+import org.eclipse.jst.jsf.metadataprocessors.features.PossibleValue;
+
+/**
+ * Meta-data processing type representing a Language Code type.
+ * A Language code is defined as in html spec http://www.w3.org/TR/html4/types.html#h-6.8
+ *
+ * <p><b>Provisional API - subject to change</b></p>
+ *
+ */
+
+public class LanguageCodeType extends EnumerationType implements IPossibleValues {
+ private static final LanguageCodeMap _map = new LanguageCodeMap();
+
+ @Override
+ protected String getReturnType() {
+ return "java.lang.String"; //$NON-NLS-1$
+ }
+
+ public List getPossibleValues() {
+ List ret = new ArrayList();
+ for(Iterator it = _map.keySet().iterator();it.hasNext();){
+ String key = (String)it.next();
+ String value = _map.get(key);
+ PossibleValue pv = new PossibleValue(key, value);
+ ret.add(pv);
+ }
+ return ret;
+ }
+
+ public boolean isValidValue(String value) {
+ if(!_map.containsKey(value)) {
+ addNewValidationMessage(Messages.LanguageCodeType_1);
+ }
+
+ return getValidationMessages().isEmpty();
+ }
+
+ /**
+ * Defines language code map
+ *
+ */
+ private static class LanguageCodeMap extends HashMap<String, String> {
+ LanguageCodeMap() {
+ put("af", Messages.LanguageCodeType_118); //$NON-NLS-1$
+ put("ar", Messages.LanguageCodeType_0); //$NON-NLS-1$
+ put("be", Messages.LanguageCodeType_7); //$NON-NLS-1$
+ put("bg", Messages.LanguageCodeType_9); //$NON-NLS-1$
+ put("br", Messages.LanguageCodeType_11); //$NON-NLS-1$
+ put("ca", Messages.LanguageCodeType_13); //$NON-NLS-1$
+ put("cs", Messages.LanguageCodeType_15); //$NON-NLS-1$
+ put("da", Messages.LanguageCodeType_17); //$NON-NLS-1$
+ put("de", Messages.LanguageCodeType_19); //$NON-NLS-1$
+ put("el", Messages.LanguageCodeType_21); //$NON-NLS-1$
+ put("en", Messages.LanguageCodeType_23); //$NON-NLS-1$
+ put("es", Messages.LanguageCodeType_25); //$NON-NLS-1$
+ put("et", Messages.LanguageCodeType_27); //$NON-NLS-1$
+ put("eu", Messages.LanguageCodeType_29); //$NON-NLS-1$
+ put("fa", Messages.LanguageCodeType_31); //$NON-NLS-1$
+ put("fi", Messages.LanguageCodeType_33); //$NON-NLS-1$
+ put("fo", Messages.LanguageCodeType_35); //$NON-NLS-1$
+ put("fr", Messages.LanguageCodeType_37); //$NON-NLS-1$
+ put("gd", Messages.LanguageCodeType_39); //$NON-NLS-1$
+ put("he", Messages.LanguageCodeType_41); //$NON-NLS-1$
+ put("hi", Messages.LanguageCodeType_43); //$NON-NLS-1$
+ put("hr", Messages.LanguageCodeType_45); //$NON-NLS-1$
+ put("hu", Messages.LanguageCodeType_47); //$NON-NLS-1$
+ put("id", Messages.LanguageCodeType_49); //$NON-NLS-1$
+ put("is", Messages.LanguageCodeType_51); //$NON-NLS-1$
+ put("it", Messages.LanguageCodeType_53); //$NON-NLS-1$
+ put("ja", Messages.LanguageCodeType_55); //$NON-NLS-1$
+ put("ko", Messages.LanguageCodeType_57); //$NON-NLS-1$
+ put("lt", Messages.LanguageCodeType_59); //$NON-NLS-1$
+ put("lv", Messages.LanguageCodeType_61); //$NON-NLS-1$
+ put("mk", Messages.LanguageCodeType_63); //$NON-NLS-1$
+ put("ms", Messages.LanguageCodeType_65); //$NON-NLS-1$
+ put("mt", Messages.LanguageCodeType_67); //$NON-NLS-1$
+ put("nl", Messages.LanguageCodeType_69); //$NON-NLS-1$
+ put("no", Messages.LanguageCodeType_71); //$NON-NLS-1$
+ put("pl", Messages.LanguageCodeType_73); //$NON-NLS-1$
+ put("pt", Messages.LanguageCodeType_75); //$NON-NLS-1$
+ put("rm", Messages.LanguageCodeType_77); //$NON-NLS-1$
+ put("ro", Messages.LanguageCodeType_79); //$NON-NLS-1$
+ put("ru", Messages.LanguageCodeType_81); //$NON-NLS-1$
+ put("sk", Messages.LanguageCodeType_83); //$NON-NLS-1$
+ put("sl", Messages.LanguageCodeType_85); //$NON-NLS-1$
+ put("sq", Messages.LanguageCodeType_87); //$NON-NLS-1$
+ put("sr", Messages.LanguageCodeType_89); //$NON-NLS-1$
+ put("sv", Messages.LanguageCodeType_91); //$NON-NLS-1$
+ put("sx", Messages.LanguageCodeType_93); //$NON-NLS-1$
+ put("sz", Messages.LanguageCodeType_95); //$NON-NLS-1$
+ put("th", Messages.LanguageCodeType_97); //$NON-NLS-1$
+ put("tn", Messages.LanguageCodeType_99); //$NON-NLS-1$
+ put("tr", Messages.LanguageCodeType_101); //$NON-NLS-1$
+ put("ts", Messages.LanguageCodeType_103); //$NON-NLS-1$
+ put("uk", Messages.LanguageCodeType_105); //$NON-NLS-1$
+ put("ur", Messages.LanguageCodeType_107); //$NON-NLS-1$
+ put("vi", Messages.LanguageCodeType_109); //$NON-NLS-1$
+ put("xh", Messages.LanguageCodeType_111); //$NON-NLS-1$
+ put("yi", Messages.LanguageCodeType_113); //$NON-NLS-1$
+ put("zh", Messages.LanguageCodeType_115); //$NON-NLS-1$
+ put("zu", Messages.LanguageCodeType_117); //$NON-NLS-1$
+ }
+
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/LengthType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/LengthType.java
index bad4083..70c5069 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/LengthType.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/LengthType.java
@@ -25,6 +25,8 @@
* @see org.eclipse.jst.jsf.metadataprocessors.features.IValidValues#isValidValue(java.lang.String)
**/
public boolean isValidValue(String value) {
+ //FIXME: this is not right... px, em, etc. are also valid... and spaces between # and units are not
+ //see http://www.w3.org/TR/html401/types.html#h-6.6
if (value == null) return true;
String aValue = stripPercentIfPresent(value);
try {
@@ -44,7 +46,7 @@
//"%" is allowed at end
if (value.length() > 0
&& value.lastIndexOf('%') == value.length() - 1)
- return value.replaceFirst("%","");
+ return value.replaceFirst("%",""); //$NON-NLS-1$ //$NON-NLS-2$
return value;
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/LinkType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/LinkType.java
new file mode 100644
index 0000000..ead9b79
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/LinkType.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation., and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ *
+ ********************************************************************************/
+package org.eclipse.jst.jsf.taglibprocessing.attributevalues;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
+import org.eclipse.jst.jsf.metadataprocessors.features.PossibleValue;
+
+/**
+ * Meta-data processing type representing a Link type.
+ *
+ * Possible values are only common types; not all
+ * Valid values just checks for a non-empty value, and not against known link types
+ *
+ * <p><b>Provisional API - subject to change</b></p>
+ *
+ */
+
+public class LinkType extends EnumerationType implements IPossibleValues{
+ //common link types
+ private String[] _linkTypes = new String[]{
+ "Alternate", //$NON-NLS-1$
+ "Stylesheet", //$NON-NLS-1$
+ "Start", //$NON-NLS-1$
+ "Next", //$NON-NLS-1$
+ "Prev", //$NON-NLS-1$
+ "Contents", //$NON-NLS-1$
+ "Index", //$NON-NLS-1$
+ "Glossary", //$NON-NLS-1$
+ "Copyright", //$NON-NLS-1$
+ "Chapter", //$NON-NLS-1$
+ "Section", //$NON-NLS-1$
+ "Subsection", //$NON-NLS-1$
+ "Appendix", //$NON-NLS-1$
+ "Help", //$NON-NLS-1$
+ "Bookmark" //$NON-NLS-1$
+ };
+
+
+ @Override
+ protected String getReturnType() {
+ return "java.lang.String"; //$NON-NLS-1$
+ }
+
+ public List getPossibleValues() {
+ List ret = new ArrayList();
+ for(int i=0;i<_linkTypes.length;i++){
+ PossibleValue pv = new PossibleValue(_linkTypes[i].toString(), _linkTypes[i].toString());
+ ret.add(pv);
+ }
+ return ret;
+ }
+
+ public boolean isValidValue(String value) {
+ if (value == null || value.trim().length() == 0){
+ addNewValidationMessage(Messages.LinkType_16);
+ return false;
+ }
+ return true;
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/LocaleType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/LocaleType.java
new file mode 100644
index 0000000..09ebaf0
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/LocaleType.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation., and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ *
+ ********************************************************************************/
+package org.eclipse.jst.jsf.taglibprocessing.attributevalues;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Locale;
+
+import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValue;
+import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
+import org.eclipse.jst.jsf.metadataprocessors.features.IValidELValues;
+import org.eclipse.jst.jsf.metadataprocessors.features.IValidValues;
+import org.eclipse.jst.jsf.metadataprocessors.features.PossibleValue;
+import org.eclipse.jst.jsf.metadataprocessors.features.ValidationMessage;
+
+/**
+ * Meta-data processing type representing a Locale Code type.
+ *
+ * <p><b>Provisional API - subject to change</b></p>
+ *
+ */
+
+public class LocaleType extends EnumerationType implements IPossibleValues, IValidValues, IValidELValues{
+ private List<IPossibleValue> _pvs;
+ @Override
+ protected String getReturnType() {
+ return "java.util.Locale"; //$NON-NLS-1$
+ }
+
+ public List getPossibleValues() {
+ if (_pvs == null){
+ _pvs = new ArrayList();
+ Locale[]_locales = getLocales();
+ for(int i=0;i<_locales.length;i++){
+ PossibleValue pv = new PossibleValue(_locales[i].toString(), _locales[i].getDisplayName());
+ _pvs.add(pv);
+ }
+ Collections.sort(_pvs, new Comparator(){
+ public int compare(Object o1, Object o2) {
+ PossibleValue pv1 = (PossibleValue)o1;
+ PossibleValue pv2 = (PossibleValue)o2;
+ return (pv1.getDisplayValue().compareTo(pv2.getDisplayValue()));
+ }
+
+ });
+ }
+ return _pvs;
+ }
+
+ private Locale[] getLocales() {
+ return Locale.getAvailableLocales();
+ }
+
+ public boolean isValidValue(String value) {
+ Locale[]_locales = getLocales();
+ for(int i=0;i<_locales.length;i++){
+ Locale local = getLocales()[i];
+ if (local.toString().equals(value))
+ return true;
+ }
+ getValidationMessages().add(new ValidationMessage(Messages.LocaleType_1));
+ return false;
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/Messages.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/Messages.java
index 9e58827..cdb4d53 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/Messages.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/Messages.java
@@ -39,6 +39,7 @@
* see messages.properties
*/
public static String BooleanType_invalid_values;
+ public static String ContentType_MIME_not_empty;
/**
* see messages.properties
*/
@@ -103,7 +104,245 @@
* see messages.properties
*/
public static String MethodBindingType_invalid_value;
- /**
+ public static String CurrencyCodeType_invalid;
+ public static String CurrencyCodeType_10;
+ public static String CurrencyCodeType_100;
+ public static String CurrencyCodeType_101;
+ public static String CurrencyCodeType_102;
+ public static String CurrencyCodeType_103;
+ public static String CurrencyCodeType_104;
+ public static String CurrencyCodeType_105;
+ public static String CurrencyCodeType_106;
+ public static String CurrencyCodeType_107;
+ public static String CurrencyCodeType_108;
+ public static String CurrencyCodeType_109;
+ public static String CurrencyCodeType_11;
+ public static String CurrencyCodeType_110;
+ public static String CurrencyCodeType_111;
+ public static String CurrencyCodeType_112;
+ public static String CurrencyCodeType_113;
+ public static String CurrencyCodeType_114;
+ public static String CurrencyCodeType_115;
+ public static String CurrencyCodeType_116;
+ public static String CurrencyCodeType_117;
+ public static String CurrencyCodeType_118;
+ public static String CurrencyCodeType_119;
+ public static String CurrencyCodeType_12;
+ public static String CurrencyCodeType_120;
+ public static String CurrencyCodeType_121;
+ public static String CurrencyCodeType_122;
+ public static String CurrencyCodeType_123;
+ public static String CurrencyCodeType_124;
+ public static String CurrencyCodeType_125;
+ public static String CurrencyCodeType_126;
+ public static String CurrencyCodeType_127;
+ public static String CurrencyCodeType_128;
+ public static String CurrencyCodeType_129;
+ public static String CurrencyCodeType_13;
+ public static String CurrencyCodeType_130;
+ public static String CurrencyCodeType_131;
+ public static String CurrencyCodeType_132;
+ public static String CurrencyCodeType_133;
+ public static String CurrencyCodeType_134;
+ public static String CurrencyCodeType_135;
+ public static String CurrencyCodeType_136;
+ public static String CurrencyCodeType_137;
+ public static String CurrencyCodeType_138;
+ public static String CurrencyCodeType_139;
+ public static String CurrencyCodeType_14;
+ public static String CurrencyCodeType_140;
+ public static String CurrencyCodeType_141;
+ public static String CurrencyCodeType_142;
+ public static String CurrencyCodeType_143;
+ public static String CurrencyCodeType_144;
+ public static String CurrencyCodeType_145;
+ public static String CurrencyCodeType_146;
+ public static String CurrencyCodeType_147;
+ public static String CurrencyCodeType_148;
+ public static String CurrencyCodeType_149;
+ public static String CurrencyCodeType_15;
+ public static String CurrencyCodeType_150;
+ public static String CurrencyCodeType_151;
+ public static String CurrencyCodeType_152;
+ public static String CurrencyCodeType_153;
+ public static String CurrencyCodeType_154;
+ public static String CurrencyCodeType_155;
+ public static String CurrencyCodeType_156;
+ public static String CurrencyCodeType_157;
+ public static String CurrencyCodeType_158;
+ public static String CurrencyCodeType_159;
+ public static String CurrencyCodeType_16;
+ public static String CurrencyCodeType_160;
+ public static String CurrencyCodeType_161;
+ public static String CurrencyCodeType_162;
+ public static String CurrencyCodeType_163;
+ public static String CurrencyCodeType_164;
+ public static String CurrencyCodeType_165;
+ public static String CurrencyCodeType_166;
+ public static String CurrencyCodeType_167;
+ public static String CurrencyCodeType_168;
+ public static String CurrencyCodeType_169;
+ public static String CurrencyCodeType_17;
+ public static String CurrencyCodeType_170;
+ public static String CurrencyCodeType_171;
+ public static String CurrencyCodeType_172;
+ public static String CurrencyCodeType_173;
+ public static String CurrencyCodeType_174;
+ public static String CurrencyCodeType_18;
+ public static String CurrencyCodeType_19;
+ public static String CharacterType_0;
+ public static String CurrencyCodeType_2;
+ public static String CurrencyCodeType_20;
+ public static String CurrencyCodeType_21;
+ public static String CurrencyCodeType_22;
+ public static String CurrencyCodeType_23;
+ public static String CurrencyCodeType_24;
+ public static String CurrencyCodeType_25;
+ public static String CurrencyCodeType_26;
+ public static String CurrencyCodeType_27;
+ public static String CurrencyCodeType_28;
+ public static String CurrencyCodeType_29;
+ public static String CurrencyCodeType_3;
+ public static String CurrencyCodeType_30;
+ public static String CurrencyCodeType_31;
+ public static String CurrencyCodeType_32;
+ public static String CurrencyCodeType_33;
+ public static String CurrencyCodeType_34;
+ public static String CurrencyCodeType_35;
+ public static String CurrencyCodeType_36;
+ public static String CurrencyCodeType_37;
+ public static String CurrencyCodeType_38;
+ public static String CurrencyCodeType_39;
+ public static String CurrencyCodeType_4;
+ public static String CurrencyCodeType_40;
+ public static String CurrencyCodeType_41;
+ public static String CurrencyCodeType_42;
+ public static String CurrencyCodeType_43;
+ public static String CurrencyCodeType_44;
+ public static String CurrencyCodeType_45;
+ public static String CurrencyCodeType_46;
+ public static String CurrencyCodeType_47;
+ public static String CurrencyCodeType_48;
+ public static String CurrencyCodeType_49;
+ public static String CurrencyCodeType_5;
+ public static String CurrencyCodeType_50;
+ public static String CurrencyCodeType_51;
+ public static String CurrencyCodeType_52;
+ public static String CurrencyCodeType_53;
+ public static String CurrencyCodeType_54;
+ public static String CurrencyCodeType_55;
+ public static String CurrencyCodeType_56;
+ public static String CurrencyCodeType_57;
+ public static String CurrencyCodeType_58;
+ public static String CurrencyCodeType_59;
+ public static String CurrencyCodeType_6;
+ public static String CurrencyCodeType_60;
+ public static String CurrencyCodeType_61;
+ public static String CurrencyCodeType_62;
+ public static String CurrencyCodeType_63;
+ public static String CurrencyCodeType_64;
+ public static String CurrencyCodeType_65;
+ public static String CurrencyCodeType_66;
+ public static String CurrencyCodeType_67;
+ public static String CurrencyCodeType_68;
+ public static String CurrencyCodeType_69;
+ public static String CurrencyCodeType_7;
+ public static String CurrencyCodeType_70;
+ public static String CurrencyCodeType_71;
+ public static String CurrencyCodeType_72;
+ public static String CurrencyCodeType_73;
+ public static String CurrencyCodeType_74;
+ public static String CurrencyCodeType_75;
+ public static String CurrencyCodeType_76;
+ public static String CurrencyCodeType_77;
+ public static String CurrencyCodeType_78;
+ public static String CurrencyCodeType_79;
+ public static String CurrencyCodeType_8;
+ public static String CurrencyCodeType_80;
+ public static String CurrencyCodeType_81;
+ public static String CurrencyCodeType_82;
+ public static String CurrencyCodeType_83;
+ public static String CurrencyCodeType_84;
+ public static String CurrencyCodeType_85;
+ public static String CurrencyCodeType_86;
+ public static String CurrencyCodeType_87;
+ public static String CurrencyCodeType_88;
+ public static String CurrencyCodeType_89;
+ public static String CurrencyCodeType_9;
+ public static String LanguageCodeType_0;
+ public static String LanguageCodeType_1;
+ public static String LanguageCodeType_7;
+ public static String LanguageCodeType_9;
+ public static String LinkType_16;
+ public static String LocaleType_1;
+ public static String WebPathType_1;
+ public static String WebPathType_2;
+ public static String LanguageCodeType_11;
+ public static String LanguageCodeType_13;
+ public static String LanguageCodeType_15;
+ public static String LanguageCodeType_17;
+ public static String LanguageCodeType_19;
+ public static String LanguageCodeType_21;
+ public static String LanguageCodeType_23;
+ public static String LanguageCodeType_25;
+ public static String LanguageCodeType_27;
+ public static String LanguageCodeType_29;
+ public static String LanguageCodeType_31;
+ public static String LanguageCodeType_33;
+ public static String LanguageCodeType_35;
+ public static String LanguageCodeType_37;
+ public static String LanguageCodeType_39;
+ public static String LanguageCodeType_41;
+ public static String LanguageCodeType_43;
+ public static String LanguageCodeType_45;
+ public static String LanguageCodeType_47;
+ public static String LanguageCodeType_49;
+ public static String LanguageCodeType_51;
+ public static String LanguageCodeType_53;
+ public static String LanguageCodeType_55;
+ public static String LanguageCodeType_57;
+ public static String LanguageCodeType_59;
+ public static String LanguageCodeType_61;
+ public static String LanguageCodeType_63;
+ public static String LanguageCodeType_65;
+ public static String LanguageCodeType_67;
+ public static String LanguageCodeType_69;
+ public static String LanguageCodeType_71;
+ public static String LanguageCodeType_73;
+ public static String LanguageCodeType_75;
+ public static String LanguageCodeType_77;
+ public static String LanguageCodeType_79;
+ public static String LanguageCodeType_81;
+ public static String LanguageCodeType_83;
+ public static String LanguageCodeType_85;
+ public static String LanguageCodeType_87;
+ public static String LanguageCodeType_89;
+ public static String LanguageCodeType_91;
+ public static String LanguageCodeType_93;
+ public static String LanguageCodeType_95;
+ public static String LanguageCodeType_97;
+ public static String LanguageCodeType_99;
+ public static String LanguageCodeType_101;
+ public static String LanguageCodeType_103;
+ public static String LanguageCodeType_105;
+ public static String LanguageCodeType_107;
+ public static String LanguageCodeType_109;
+ public static String LanguageCodeType_111;
+ public static String LanguageCodeType_113;
+ public static String LanguageCodeType_115;
+ public static String LanguageCodeType_117;
+ public static String LanguageCodeType_118;
+ public static String CurrencyCodeType_90;
+ public static String CurrencyCodeType_91;
+ public static String CurrencyCodeType_92;
+ public static String CurrencyCodeType_93;
+ public static String CurrencyCodeType_94;
+ public static String CurrencyCodeType_95;
+ public static String CurrencyCodeType_96;
+ public static String CurrencyCodeType_97;
+ public static String CurrencyCodeType_98;
+ public static String CurrencyCodeType_99;
+ /**
* see messages.properties
*/
public static String NumberType_max_val;
@@ -111,6 +350,7 @@
* see messages.properties
*/
public static String NumberType_min_val;
+ public static String RelativePathType_0;
/**
* see messages.properties
*/
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/NumberPatternType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/NumberPatternType.java
new file mode 100644
index 0000000..b5add42
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/NumberPatternType.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation., and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ *
+ ********************************************************************************/
+package org.eclipse.jst.jsf.taglibprocessing.attributevalues;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jst.jsf.metadataprocessors.AbstractRootTypeDescriptor;
+import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
+import org.eclipse.jst.jsf.metadataprocessors.features.PossibleValue;
+
+/**
+ * Meta-data processing type representing a numeric pattern type.
+ *
+ * <p><b>Provisional API - subject to change</b></p>
+ *
+ */
+
+public class NumberPatternType extends AbstractRootTypeDescriptor implements IPossibleValues{
+ //should we ever decide to validate the patterns, extend EnumerationType
+ final private static String[] PATTERNS = {
+ "0.00", //$NON-NLS-1$
+ "#,##0", //$NON-NLS-1$
+ "#,##0.00", //$NON-NLS-1$
+ "#,##0;(#,##0)", //$NON-NLS-1$
+ "#,##0.00;(#,##0.00)", //$NON-NLS-1$
+ "0.##E0", //$NON-NLS-1$
+ "0%", //$NON-NLS-1$
+ "0.00%" //$NON-NLS-1$
+ };
+
+ public List getPossibleValues() {
+ List ret = new ArrayList();
+ for (int i=0;i<PATTERNS.length;i++){
+ ret.add(new PossibleValue(PATTERNS[i]));
+ }
+ return ret;
+ }
+
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/PathType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/PathType.java
new file mode 100644
index 0000000..f686fcb
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/PathType.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ *
+ ********************************************************************************/
+package org.eclipse.jst.jsf.taglibprocessing.attributevalues;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jst.jsf.context.resolver.structureddocument.IStructuredDocumentContextResolverFactory;
+import org.eclipse.jst.jsf.context.resolver.structureddocument.IWorkspaceContextResolver;
+import org.eclipse.jst.jsf.metadataprocessors.AbstractRootTypeDescriptor;
+import org.eclipse.jst.jsf.metadataprocessors.features.IValidationMessage;
+
+/**
+ * EXPERIMENTAL - may change or dissappear
+ *
+ */
+public abstract class PathType extends AbstractRootTypeDescriptor {
+
+ private IProject _project = null;
+ private final List<IValidationMessage> _validationMsgs = new ArrayList<IValidationMessage>(1);
+
+ public PathType() {
+ super();
+ }
+
+ protected IProject getProject() {
+ if( _project == null )
+ {
+ final IWorkspaceContextResolver wkspaceResolver =
+ IStructuredDocumentContextResolverFactory.INSTANCE.getWorkspaceContextResolver( getStructuredDocumentContext() );
+ _project = wkspaceResolver.getProject();
+ }
+
+ return _project;
+ }
+
+ public List<IValidationMessage> getValidationMessages() {
+ return _validationMsgs;
+ }
+
+}
\ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/RelativePathType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/RelativePathType.java
new file mode 100644
index 0000000..82dd380
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/RelativePathType.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ *
+ ********************************************************************************/
+package org.eclipse.jst.jsf.taglibprocessing.attributevalues;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jst.jsf.metadataprocessors.IMetaDataEnabledFeature;
+import org.eclipse.jst.jsf.metadataprocessors.features.IValidValues;
+import org.eclipse.jst.jsf.metadataprocessors.features.ValidationMessage;
+
+/**
+ * Path is relative to project
+ * <b>EXPERIMENTAL</b> - may change or dissappear
+ *
+ */
+public class RelativePathType extends PathType implements
+ IMetaDataEnabledFeature, IValidValues{
+
+ public boolean isValidValue(String value) {
+ //is this a relative path, or absolute url?
+ try {
+ new URL(value);
+ //not much else we what to do for now
+ return true;
+ } catch (MalformedURLException e) {
+ //is this a valid path relative to the
+ IProject project = getProject();
+ IFile file= project.getFile(new Path(value));
+ if (! file.exists())
+ getValidationMessages().add(new ValidationMessage( value+Messages.RelativePathType_0));
+
+ return getValidationMessages().size() == 0;
+ }
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ResourceBundleType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ResourceBundleType.java
index 08ead16..65f2fc9 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ResourceBundleType.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ResourceBundleType.java
@@ -1,44 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vadim Dmitriev - initial API and implementation
+ *
+ ********************************************************************************/
package org.eclipse.jst.jsf.taglibprocessing.attributevalues;
import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IStorage;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jst.jsf.context.resolver.structureddocument.IStructuredDocumentContextResolverFactory;
-import org.eclipse.jst.jsf.context.resolver.structureddocument.IWorkspaceContextResolver;
import org.eclipse.jst.jsf.core.internal.tld.LoadBundleUtil;
-import org.eclipse.jst.jsf.metadataprocessors.AbstractRootTypeDescriptor;
import org.eclipse.jst.jsf.metadataprocessors.features.IValidValues;
-import org.eclipse.jst.jsf.metadataprocessors.features.IValidationMessage;
import org.eclipse.jst.jsf.metadataprocessors.features.ValidationMessage;
/**
* Meta-data processing type representing a path to resource bundle on classpath
* Patch by Vadim Dmitriev. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=203307.
*
+ * <p><b>Provisional API - subject to change</b></p>
+ *
* @author Vadim Dmitriev
+ *
+ *
*/
-public class ResourceBundleType extends AbstractRootTypeDescriptor implements IValidValues
+public class ResourceBundleType extends PathType implements IValidValues
{
- private IProject _project = null;
- private final List<IValidationMessage> _validationMsgs = new ArrayList<IValidationMessage>(1);
-
- private IProject getProject()
- {
- if( _project == null )
- {
- final IWorkspaceContextResolver wkspaceResolver =
- IStructuredDocumentContextResolverFactory.INSTANCE.getWorkspaceContextResolver( getStructuredDocumentContext() );
- _project = wkspaceResolver.getProject();
- }
-
- return _project;
- }
-
public boolean isValidValue( String value )
{
try
@@ -57,12 +51,7 @@
final String message =
MessageFormat.format(Messages.Bundle_not_found_rb, value);
- _validationMsgs.add(new ValidationMessage(message, "", IStatus.ERROR));
+ getValidationMessages().add(new ValidationMessage(message, "", IStatus.ERROR)); //$NON-NLS-1$
return false;
}
-
- public List getValidationMessages()
- {
- return _validationMsgs;
- }
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ScriptType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ScriptType.java
new file mode 100644
index 0000000..9df83d4
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/ScriptType.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ *
+ ********************************************************************************/
+package org.eclipse.jst.jsf.taglibprocessing.attributevalues;
+
+import org.eclipse.jst.jsf.metadataprocessors.AbstractRootTypeDescriptor;
+
+/**
+ * Represents script type
+ * <p><b>Provisional API - subject to change</b></p>
+ */
+public class ScriptType extends AbstractRootTypeDescriptor {
+//
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/StringType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/StringType.java
index 709497d..fa8f3af 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/StringType.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/StringType.java
@@ -44,7 +44,7 @@
return true;
//if the value is empty but there is a default value, consider it valid
- if (getDefaultValue() != null && (value == null || value.trim().equals("")))
+ if (getDefaultValue() != null && (value == null || value.trim().equals(""))) //$NON-NLS-1$
return true;
if(! vals.contains(value)){
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/TimeZoneType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/TimeZoneType.java
new file mode 100644
index 0000000..56af13d
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/TimeZoneType.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation., and others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ *
+ ********************************************************************************/
+package org.eclipse.jst.jsf.taglibprocessing.attributevalues;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.TimeZone;
+
+import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
+import org.eclipse.jst.jsf.metadataprocessors.features.IValidValues;
+import org.eclipse.jst.jsf.metadataprocessors.features.PossibleValue;
+
+/**
+ * Meta-data processing type representing a TimeZone Code type.
+ *
+ * <p><b>Provisional API - subject to change</b></p>
+ *
+ */
+
+public class TimeZoneType extends EnumerationType implements IPossibleValues, IValidValues{
+ private String[] _timezones;
+
+ @Override
+ protected String getReturnType() {
+ return "java.lang.String"; //$NON-NLS-1$
+ }
+
+ public List getPossibleValues() {
+ List ret = new ArrayList();
+ for(int i=0;i<getTimeZones().length;i++){
+ PossibleValue pv = new PossibleValue(_timezones[i], _timezones[i]);
+ ret.add(pv);
+ }
+ return ret;
+ }
+
+ private String[] getTimeZones() {
+ if (_timezones == null)
+ _timezones = TimeZone.getAvailableIDs();
+ return _timezones;
+ }
+
+ public boolean isValidValue(String value) {
+ for(int i=0;i<getTimeZones().length;i++){
+ if (getTimeZones()[i].equals(value))
+ return true;
+ }
+ return false;
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/URIType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/URIType.java
new file mode 100644
index 0000000..5a358df
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/URIType.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ *
+ ********************************************************************************/
+package org.eclipse.jst.jsf.taglibprocessing.attributevalues;
+
+import org.eclipse.jst.jsf.metadataprocessors.IMetaDataEnabledFeature;
+
+/**
+ * URI Type: attribute values are Uniform Resource Identifiers (URIs), as defined in RFC 2396.
+ * URI attribute values may include full URIs such as http://www.foobar.com/ as well as relative URIs such as foo.html and ../foo/.
+ * EXPERIMENTAL - will change or dissappear
+ */
+public class URIType extends PathType implements IMetaDataEnabledFeature{
+ //TODO: add validation... refactor or WebPath, RelativePath, etc.
+
+ public URIType() {
+ //
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/WebPathType.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/WebPathType.java
new file mode 100644
index 0000000..c1c8c0d
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/WebPathType.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ *
+ ********************************************************************************/
+package org.eclipse.jst.jsf.taglibprocessing.attributevalues;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jst.jsf.metadataprocessors.IMetaDataEnabledFeature;
+import org.eclipse.jst.jsf.metadataprocessors.features.IValidValues;
+import org.eclipse.jst.jsf.metadataprocessors.features.ValidationMessage;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.resources.IVirtualContainer;
+import org.eclipse.wst.common.componentcore.resources.IVirtualFile;
+
+/**
+ * Path relative to web root
+ * <b>EXPERIMENTAL</b> - may change or dissappear
+ *
+ */
+public class WebPathType extends PathType implements
+ IMetaDataEnabledFeature, IValidValues{
+
+ public boolean isValidValue(String value) {
+ //is this a relative path, or absolute url?
+ try {
+ URL url = new URL(value);
+ //if file protocol, see if it is valid? Otherwise assume ok.
+ if (url.getProtocol().equals("file")){ //$NON-NLS-1$
+ validateFileRelativeToWebRoot(url.getPath());
+ }
+ } catch (MalformedURLException e) {
+ //is this a valid path relative to the
+ validateFileRelativeToWebRoot(value);
+ }
+ return getValidationMessages().size() == 0;
+
+ }
+
+ private void validateFileRelativeToWebRoot(String value) {
+ IVirtualContainer webRoot = getWebRoot();
+ if (! webRoot.exists()){
+ getValidationMessages().add(new ValidationMessage( Messages.WebPathType_1));
+ }
+ else {
+ IVirtualFile file = webRoot.getFile(new Path(value));
+ if (!file.exists()) {
+ //was this a valid file path string, or bogus url?
+ getValidationMessages().add(new ValidationMessage(Messages.WebPathType_2));
+ }
+ //we could also validate the expected file-extensions from meta data
+ }
+
+ }
+
+ private IVirtualContainer getWebRoot()
+ {
+ IVirtualContainer webRoot =
+ ComponentCore.createComponent(getProject()).getRootFolder();
+
+ return webRoot;
+ }
+}
\ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/messages.properties b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/messages.properties
index 533eca5..22ddc87 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/messages.properties
+++ b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/taglibprocessing/attributevalues/messages.properties
@@ -14,8 +14,247 @@
LongType_invalid_long=Value is not a valid Long.
LongType_invalid_member=Value is not a member of the provided valid values
BooleanType_invalid_values=Valid values are "true" or "false"
+CurrencyCodeType_invalid=Invalid currency code
+CurrencyCodeType_10=Aruba, Guilders (also called Florins)
+CurrencyCodeType_100=Malta, Liri
+CurrencyCodeType_101=Mauritius, Rupees
+CurrencyCodeType_102=Maldives (Maldive Islands), Rufiyaa
+CurrencyCodeType_103=Malawi, Kwachas
+CurrencyCodeType_104=Mexico, Pesos
+CurrencyCodeType_105=Malaysia, Ringgits
+CurrencyCodeType_106=Mozambique, Meticais
+CurrencyCodeType_107=Namibia, Dollars
+CurrencyCodeType_108=Nigeria, Nairas
+CurrencyCodeType_109=Nicaragua, Cordobas
+CurrencyCodeType_11=Azerbaijan, Manats
+CurrencyCodeType_110=Norway, Krone
+CurrencyCodeType_111=Nepal, Nepal Rupees
+CurrencyCodeType_112=New Zealand, Dollars
+CurrencyCodeType_113=Oman, Rials
+CurrencyCodeType_114=Panama, Balboa
+CurrencyCodeType_115=Peru, Nuevos Soles
+CurrencyCodeType_116=Papua New Guinea, Kina
+CurrencyCodeType_117=Philippines, Pesos
+CurrencyCodeType_118=Pakistan, Rupees
+CurrencyCodeType_119=Poland, Zlotych
+CurrencyCodeType_12=Bosnia and Herzegovina, Convertible Marka
+CurrencyCodeType_120=Paraguay, Guarani
+CurrencyCodeType_121=Qatar, Rials
+CurrencyCodeType_122=Romania, Lei
+CurrencyCodeType_123=Russia, Rubles
+CurrencyCodeType_124=Rwanda, Rwanda Francs
+CurrencyCodeType_125=Saudi Arabia, Riyals
+CurrencyCodeType_126=Solomon Islands, Dollars
+CurrencyCodeType_127=Seychelles, Rupees
+CurrencyCodeType_128=Sudan, Dinars
+CurrencyCodeType_129=Sweden, Kronor
+CurrencyCodeType_13=Barbados, Dollars
+CurrencyCodeType_130=Singapore, Dollars
+CurrencyCodeType_131=Saint Helena, Pounds
+CurrencyCodeType_132=Slovenia, Tolars
+CurrencyCodeType_133=Slovakia, Koruny
+CurrencyCodeType_134=Sierra Leone, Leones
+CurrencyCodeType_135=Somalia, Shillings
+CurrencyCodeType_136=Seborga, Luigini
+CurrencyCodeType_137=Suriname, Dollars
+CurrencyCodeType_138=Principe and S\u00E3o Tome, Dobras
+CurrencyCodeType_139=El Salvador, Colones
+CurrencyCodeType_14=Bangladesh, Taka
+CurrencyCodeType_140=Syria, Pounds
+CurrencyCodeType_141=Swaziland, Emalangeni
+CurrencyCodeType_142=Thailand, Baht
+CurrencyCodeType_143=Tajikistan, Somoni
+CurrencyCodeType_144=Turkmenistan, Manats
+CurrencyCodeType_145=Tunisia, Dinars
+CurrencyCodeType_146=Tonga, Pa'anga
+CurrencyCodeType_147=Turkey, Liras [being phased out]
+CurrencyCodeType_148=Turkey, New Lira
+CurrencyCodeType_149=Trinidad and Tobago, Dollars
+CurrencyCodeType_15=Bulgaria, Leva
+CurrencyCodeType_150=Tuvalu, Tuvalu Dollars
+CurrencyCodeType_151=Taiwan, New Dollars
+CurrencyCodeType_152=Tanzania, Shillings
+CurrencyCodeType_153=Ukraine, Hryvnia
+CurrencyCodeType_154=Uganda, Shillings
+CurrencyCodeType_155=United States of America, Dollars
+CurrencyCodeType_156=Uruguay, Pesos
+CurrencyCodeType_157=Uzbekistan, Sums
+CurrencyCodeType_158=Venezuela, Bolivares
+CurrencyCodeType_159=Viet Nam, Dong
+CurrencyCodeType_16=Bahrain, Dinars
+CurrencyCodeType_160=Vanuatu, Vatu
+CurrencyCodeType_161=Samoa, Tala
+CurrencyCodeType_162=Communaut\u00E9 Financi\u00E8re Africaine BEAC Franc , Francs
+CurrencyCodeType_163=Silver, Ounces
+CurrencyCodeType_164=Gold, Ounces
+CurrencyCodeType_165=East Caribbean Dollars
+CurrencyCodeType_166=International Monetary Fund (IMF) Special Drawing Rights
+CurrencyCodeType_167=Communaut\u00E9 Financi\u00E8re Africaine BCEAO, Francs
+CurrencyCodeType_168=Palladium Ounces
+CurrencyCodeType_169=Comptoirs Francais du Pacifique, Francs
+CurrencyCodeType_17=Burundi, Francs
+CurrencyCodeType_170=Platinum, Ounces
+CurrencyCodeType_171=Yemen, Rials
+CurrencyCodeType_172=South Africa, Rand
+CurrencyCodeType_173=Zambia, Kwacha
+CurrencyCodeType_174=Zimbabwe, Zimbabwe Dollars
+CurrencyCodeType_18=Bermuda, Dollars
+CurrencyCodeType_19=Brunei Darussalam, Dollars
+CharacterType_0=Single unicode character is required
+CurrencyCodeType_2=United Arab Emirates, Dirhams
+CurrencyCodeType_20=Bolivia, Bolivianos
+CurrencyCodeType_21=Brazil, Brazil Real
+CurrencyCodeType_22=Bahamas, Dollars
+CurrencyCodeType_23=Bhutan, Ngultrum
+CurrencyCodeType_24=Botswana, Pulas
+CurrencyCodeType_25=Belarus, Rubles
+CurrencyCodeType_26=Belize, Dollars
+CurrencyCodeType_27=Canada, Dollars
+CurrencyCodeType_28=Congo/Kinshasa, Congolese Francs
+CurrencyCodeType_29=Switzerland, Francs
+CurrencyCodeType_3=Afghanistan, Afghanis
+CurrencyCodeType_30=Chile, Pesos
+CurrencyCodeType_31=China, Yuan Renminbi
+CurrencyCodeType_32=Colombia, Pesos
+CurrencyCodeType_33=Costa Rica, Colones
+CurrencyCodeType_34=Serbia, Dinars
+CurrencyCodeType_35=Cuba, Pesos
+CurrencyCodeType_36=Cape Verde, Escudos
+CurrencyCodeType_37=Cyprus, Pounds
+CurrencyCodeType_38=Czech Republic, Koruny
+CurrencyCodeType_39=Djibouti, Francs
+CurrencyCodeType_4=Albania, Leke
+CurrencyCodeType_40=Denmark, Kroner
+CurrencyCodeType_41=Dominican Republic, Pesos
+CurrencyCodeType_42=Algeria, Algeria Dinars
+CurrencyCodeType_43=Estonia, Krooni
+CurrencyCodeType_44=Egypt, Pounds
+CurrencyCodeType_45=Eritrea, Nakfa
+CurrencyCodeType_46=Ethiopia, Birr
+CurrencyCodeType_47=Euro Member Countries, Euro
+CurrencyCodeType_48=Fiji, Dollars
+CurrencyCodeType_49=Falkland Islands (Malvinas), Pounds
+CurrencyCodeType_5=Armenia, Drams
+CurrencyCodeType_50=United Kingdom, Pounds
+CurrencyCodeType_51=Georgia, Lari
+CurrencyCodeType_52=Guernsey, Pounds
+CurrencyCodeType_53=Ghana, Cedis
+CurrencyCodeType_54=Gibraltar, Pounds
+CurrencyCodeType_55=Gambia, Dalasi
+CurrencyCodeType_56=Guinea, Francs
+CurrencyCodeType_57=Guatemala, Quetzales
+CurrencyCodeType_58=Guyana, Dollars
+CurrencyCodeType_59=Hong Kong, Dollars
+CurrencyCodeType_6=Netherlands Antilles, Guilders (also called Florins)
+CurrencyCodeType_60=Honduras, Lempiras
+CurrencyCodeType_61=Croatia, Kuna
+CurrencyCodeType_62=Haiti, Gourdes
+CurrencyCodeType_63=Hungary, Forint
+CurrencyCodeType_64=Indonesia, Rupiahs
+CurrencyCodeType_65=Israel, New Shekels
+CurrencyCodeType_66=Isle of Man, Pounds
+CurrencyCodeType_67=India, Rupees
+CurrencyCodeType_68=Iraq, Dinars
+CurrencyCodeType_69=Iran, Rials
+CurrencyCodeType_7=Angola, Kwanza
+CurrencyCodeType_70=Iceland, Kronur
+CurrencyCodeType_71=Jersey, Pounds
+CurrencyCodeType_72=Jamaica, Dollars
+CurrencyCodeType_73=Jordan, Dinars
+CurrencyCodeType_74=Japan, Yen
+CurrencyCodeType_75=Kenya, Shillings
+CurrencyCodeType_76=Kyrgyzstan, Soms
+CurrencyCodeType_77=Cambodia, Riels
+CurrencyCodeType_78=Comoros, Francs
+CurrencyCodeType_79=Korea (North), Won
+CurrencyCodeType_8=Argentina, Pesos
+CurrencyCodeType_80=Korea (South), Won
+CurrencyCodeType_81=Kuwait, Dinars
+CurrencyCodeType_82=Cayman Islands, Dollars
+CurrencyCodeType_83=Kazakhstan, Tenge
+CurrencyCodeType_84=Laos, Kips
+CurrencyCodeType_85=Lebanon, Pounds
+CurrencyCodeType_86=Sri Lanka, Rupees
+CurrencyCodeType_87=Liberia, Dollars
+CurrencyCodeType_88=Lesotho, Maloti
+CurrencyCodeType_89=Lithuania, Litai
+CurrencyCodeType_9=Australia, Dollars
+LanguageCodeType_0=ar Arabic (needs subtype)
+LanguageCodeType_1=Invalid language code
+LanguageCodeType_101=tr Turkish
+LanguageCodeType_103=ts Tsonga
+LanguageCodeType_105=uk Ukrainian
+LanguageCodeType_107=ur Urdu
+LanguageCodeType_109=vi Vietnamese
+LanguageCodeType_11=br Breton
+LanguageCodeType_111=xh Xhosa
+LanguageCodeType_113=yi Yiddish
+LanguageCodeType_115=zh Chinese (needs subtype)
+LanguageCodeType_117=zu Zulu
+LanguageCodeType_118=af Afrikaans
+LanguageCodeType_13=ca Catalan
+LanguageCodeType_15=cs Czech
+LanguageCodeType_17=da Danish
+LanguageCodeType_19=de German (Standard)
+LanguageCodeType_21=el Greek
+LanguageCodeType_23=en English
+LanguageCodeType_25=es Spanish (Spain)
+LanguageCodeType_27=et Estonian
+LanguageCodeType_29=eu Basque
+LanguageCodeType_31=fa Farsi
+LanguageCodeType_33=fi Finnish
+LanguageCodeType_35=fo Faeroese
+LanguageCodeType_37=fr French (Standard)
+LanguageCodeType_39=gd Gaelic (Scotland)
+LanguageCodeType_41=he Hebrew
+LanguageCodeType_43=hi Hindi
+LanguageCodeType_45=hr Croatian
+LanguageCodeType_47=hu Hungarian
+LanguageCodeType_49=id Indonesian
+LanguageCodeType_51=is Icelandic
+LanguageCodeType_53=it Italian (Standard)
+LanguageCodeType_55=ja Japanese
+LanguageCodeType_57=ko Korean
+LanguageCodeType_59=lt Lithuanian
+LanguageCodeType_61=lv Latvian
+LanguageCodeType_63=mk Macedonian
+LanguageCodeType_65=ms Malaysian
+LanguageCodeType_67=mt Maltese
+LanguageCodeType_69=nl Dutch (Standard)
+LanguageCodeType_7=be Belarusian
+LanguageCodeType_71=no Norwegian (Bokmal/Nynorsk)
+LanguageCodeType_73=pl Polish
+LanguageCodeType_75=pt Portuguese (Standard)
+LanguageCodeType_77=rm Rhaeto-Romanic
+LanguageCodeType_79=ro Romanian
+LanguageCodeType_81=ru Russian
+LanguageCodeType_83=sk Slovak
+LanguageCodeType_85=sl Slovenian
+LanguageCodeType_87=sq Albanian
+LanguageCodeType_89=sr Serbian (Cyrillic/Latin)
+LanguageCodeType_9=bg Bulgarian
+LinkType_16=Link type value must not be empty
+LocaleType_1=Invalid locale value
+WebPathType_1=Web root path not found
+WebPathType_2=Invalid value
+LanguageCodeType_91=sv Swedish
+LanguageCodeType_93=sx Sutu
+LanguageCodeType_95=sz Sami (Lappish)
+LanguageCodeType_97=th Thai
+LanguageCodeType_99=tn Setswana
+CurrencyCodeType_90=Latvia, Lati
+CurrencyCodeType_91=Libya, Dinars
+CurrencyCodeType_92=Morocco, Dirhams
+CurrencyCodeType_93=Moldova, Lei
+CurrencyCodeType_94=Madagascar, Ariary
+CurrencyCodeType_95=Macedonia, Denars
+CurrencyCodeType_96=Myanmar (Burma), Kyats
+CurrencyCodeType_97=Mongolia, Tugriks
+CurrencyCodeType_98=Macau, Patacas
+CurrencyCodeType_99=Mauritania, Ouguiyas
NumberType_max_val=Value exceeds maximum of {0}
NumberType_min_val=Value is less than minimum of {0}
+RelativePathType_0=: path not found
DoubleType_invalid_double=Value is not a valid double.
DoubleType_invalid_member=Value is not a member of the provided valid values
StringType_invalid_value=Value is not valid.
@@ -31,6 +270,7 @@
ActionType_invalid_value=The action value does not match a navigation case outcome.
ActionType_invalid_empty_value=The action attribute must be a non-zero length String or a method binding matching a navigation case outcome.
ActionType_navcase_display={0}: goto {1}
+ContentType_MIME_not_empty=Content (MIME) type must not be empty
MethodBindingType_invalid_value=MethodBinding attribute values must be EL expressions.
JavaClassType_invalid_type=Value for type attribute must be valid Java class and not empty.
JavaClassType_not_found=Java type not found, not instantiable, or does implement correct interfaces or extend correct superclass.
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/META-INF/MANIFEST.MF b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/META-INF/MANIFEST.MF
index b5d5f6e..e8a1004 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/META-INF/MANIFEST.MF
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/META-INF/MANIFEST.MF
@@ -18,7 +18,6 @@
org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,3.0.0)",
org.eclipse.jst.jsp.core;bundle-version="[1.1.0,1.3.0)",
org.eclipse.wst.sse.ui;bundle-version="[1.0.101,1.2.0)",
- org.eclipse.wst.common.ui.properties;bundle-version="[1.0.101,1.2.0)",
org.eclipse.jface.text;bundle-version="[3.2.0,4.0.0)",
org.eclipse.wst.common.emf;bundle-version="[1.1.103,2.0.0)",
org.eclipse.jst.jsf.facesconfig;bundle-version="[1.0.0,1.1.0)",
@@ -28,7 +27,8 @@
org.eclipse.jdt.ui;bundle-version="[3.2.0,4.0.0)",
org.eclipse.jst.jsf.core;bundle-version="[1.0.0,1.1.0)",
org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.wst.common.modulecore;bundle-version="[1.1.0,1.2.0)"
+ org.eclipse.wst.common.modulecore;bundle-version="[1.1.0,1.2.0)",
+ org.eclipse.ui.views.properties.tabbed;bundle-version="[3.2.0,4.0.0)"
Eclipse-LazyStart: true
Export-Package: org.eclipse.jst.jsf.facesconfig.ui;x-internal:=true,
org.eclipse.jst.jsf.facesconfig.ui.dialog;x-internal:=true,
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/plugin.xml b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/plugin.xml
index 19845ce..7503515 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/plugin.xml
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/plugin.xml
@@ -54,8 +54,8 @@
</extension>
<!-- ********** End Introduction Page ************** -->
<!-- ************* properties view ************** -->
- <extension point="org.eclipse.wst.common.ui.properties.propertyTabs">
- <propertyTabs
+ <extension point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
+ <propertyTabs
contributorId="org.eclipse.jst.jsf.facesconfig.ui.FacesConfigEditor">
<propertyTab label="%propertyTab.attribute" category="attribute"
id="org.eclipse.jst.jsf.facesconfig.ui.pageflow.properties.attribute"/>
@@ -63,12 +63,12 @@
id="org.eclipse.jst.jsf.facesconfig.ui.pageflow.properties.general"/>
</propertyTabs>
</extension>
- <extension point="org.eclipse.wst.common.ui.properties.propertyContributor">
+ <extension point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
<propertyContributor
sectionDescriptorProvider="org.eclipse.jst.jsf.facesconfig.ui.pageflow.properties.PageflowSectionDescriptorProvider"
contributorId="org.eclipse.jst.jsf.facesconfig.ui.FacesConfigEditor"
labelProvider="org.eclipse.jst.jsf.facesconfig.ui.pageflow.properties.PageflowSectionLabelProvider">
- <propertyCategory category="attribute"/>
+ <propertyCategory category="attribute" />
<propertyCategory category="general"/>
</propertyContributor>
</extension>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/FacesConfigEditor.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/FacesConfigEditor.java
index 1fcdca0..3a80bdc 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/FacesConfigEditor.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/FacesConfigEditor.java
@@ -99,12 +99,12 @@
import org.eclipse.ui.part.FileEditorInput;
import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
import org.eclipse.wst.common.project.facet.core.IFacetedProject;
import org.eclipse.wst.common.project.facet.core.IProjectFacet;
import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySheetPageContributor;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
import org.eclipse.wst.sse.core.StructuredModelManager;
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/EditorSectionDescriptor.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/EditorSectionDescriptor.java
index f35da5a..6628690 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/EditorSectionDescriptor.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/EditorSectionDescriptor.java
@@ -13,14 +13,14 @@
import java.util.List;
+import org.eclipse.jface.viewers.IFilter;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowEditPart;
import org.eclipse.jst.jsf.facesconfig.ui.pageflow.properties.section.EditorSection;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ISection;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ITypeMapper;
+import org.eclipse.ui.views.properties.tabbed.ISection;
+import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor;
@@ -47,15 +47,6 @@
/*
* (non-Javadoc)
*
- * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getFilter()
- */
- public ITypeMapper getFilter() {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
* @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getInputTypes()
*/
public List getInputTypes() {
@@ -112,4 +103,8 @@
public int getEnablesFor() {
return ENABLES_FOR_ANY;
}
+
+ public IFilter getFilter() {
+ return null;
+ }
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/GeneralViewSection.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/GeneralViewSection.java
index 5bb5a15..85884e3 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/GeneralViewSection.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/GeneralViewSection.java
@@ -29,9 +29,9 @@
import org.eclipse.ui.part.PageBook;
import org.eclipse.ui.views.properties.IPropertySheetPage;
import org.eclipse.ui.views.properties.PropertySheetPage;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ISection;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertyConstants;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.ISection;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
import org.eclipse.wst.sse.ui.StructuredTextEditor;
/**
@@ -175,7 +175,9 @@
return rec;
}
-
+ /*
+ * (non-Javadoc) Method declared on PageBookView.
+ */
/**
* @param part
* @return PageRec for part
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/GeneralViewSectionDescriptor.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/GeneralViewSectionDescriptor.java
index 51e4253..dd4786f 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/GeneralViewSectionDescriptor.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/GeneralViewSectionDescriptor.java
@@ -15,6 +15,7 @@
import java.util.List;
import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.jface.viewers.IFilter;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowElementEditPart;
@@ -23,9 +24,8 @@
import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowLink;
import org.eclipse.jst.jsf.facesconfig.ui.pageflow.util.PageflowValidation;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ISection;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ITypeMapper;
+import org.eclipse.ui.views.properties.tabbed.ISection;
+import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor;
/**
* This class defines the section descriptor for pageflow attributes. Following
@@ -49,14 +49,6 @@
return ITabbedPropertiesConstants.GENERAL_TAB_ID;
}
- /*
- * (non-Javadoc)
- *
- * @see ISectionDescriptor#getFilter()
- */
- public ITypeMapper getFilter() {
- return null;
- }
/*
* (non-Javadoc)
@@ -131,4 +123,10 @@
public int getEnablesFor() {
return ENABLES_FOR_ANY;
}
+
+
+ public IFilter getFilter() {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/LinkSectionDescriptor.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/LinkSectionDescriptor.java
index 1886a69..d0cc430 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/LinkSectionDescriptor.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/LinkSectionDescriptor.java
@@ -13,6 +13,7 @@
import java.util.List;
+import org.eclipse.jface.viewers.IFilter;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowLinkEditPart;
@@ -20,9 +21,8 @@
import org.eclipse.jst.jsf.facesconfig.ui.pageflow.properties.section.LinkSection;
import org.eclipse.jst.jsf.facesconfig.ui.pageflow.util.PageflowValidation;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ISection;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ITypeMapper;
+import org.eclipse.ui.views.properties.tabbed.ISection;
+import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor;
/**
* @author jchoi
@@ -42,15 +42,6 @@
/*
* (non-Javadoc)
*
- * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getFilter()
- */
- public ITypeMapper getFilter() {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
* @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getInputTypes()
*/
public List getInputTypes() {
@@ -112,4 +103,9 @@
return ENABLES_FOR_ANY;
}
+ public IFilter getFilter() {
+ return null;
+ }
+
+
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageSectionDescriptor.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageSectionDescriptor.java
index 4426158..4e7fc80 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageSectionDescriptor.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageSectionDescriptor.java
@@ -13,15 +13,15 @@
import java.util.List;
+import org.eclipse.jface.viewers.IFilter;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jst.jsf.facesconfig.ui.pageflow.editpart.PageflowNodeEditPart;
import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowPageImpl;
import org.eclipse.jst.jsf.facesconfig.ui.pageflow.properties.section.PageSection;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ISection;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ITypeMapper;
+import org.eclipse.ui.views.properties.tabbed.ISection;
+import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor;
/**
* @author jchoi
@@ -41,15 +41,6 @@
/*
* (non-Javadoc)
*
- * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getFilter()
- */
- public ITypeMapper getFilter() {
- return null;
- }
-
- /*
- * (non-Javadoc)
- *
* @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getInputTypes()
*/
public List getInputTypes() {
@@ -109,4 +100,9 @@
return ENABLES_FOR_ANY;
}
+
+ public IFilter getFilter() {
+ return null;
+ }
+
}
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageflowSectionDescriptorProvider.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageflowSectionDescriptorProvider.java
index 54067cb..e36d282 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageflowSectionDescriptorProvider.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/PageflowSectionDescriptorProvider.java
@@ -12,8 +12,8 @@
package org.eclipse.jst.jsf.facesconfig.ui.pageflow.properties;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptorProvider;
+import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor;
+import org.eclipse.ui.views.properties.tabbed.ISectionDescriptorProvider;
/**
* this class defines all section descriptors for pageflow. Similar with
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/AbstractEditPartSection.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/AbstractEditPartSection.java
index e444135..00dcfca 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/AbstractEditPartSection.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/AbstractEditPartSection.java
@@ -29,7 +29,7 @@
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.IDialogFieldChangeListener;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.wst.common.ui.properties.internal.provisional.AbstractPropertySection;
+import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
/**
* This is base section, which support GEF command stack to redo/undo setting
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/EditorSection.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/EditorSection.java
index 5f1d9c4..1b9d62c 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/EditorSection.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/EditorSection.java
@@ -19,8 +19,8 @@
import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowPackageImpl;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
/**
* Edit section for Pagflow (EditPart)
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/LinkSection.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/LinkSection.java
index e223a74..c6b0dce 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/LinkSection.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/LinkSection.java
@@ -20,8 +20,8 @@
import org.eclipse.jst.jsf.facesconfig.ui.pageflow.util.PageflowValidation;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
/**
* Edit section for Pagflow Link element (EditPart)
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/PageSection.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/PageSection.java
index 6593174..00b214a 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/PageSection.java
+++ b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/properties/section/PageSection.java
@@ -21,8 +21,8 @@
import org.eclipse.jst.jsf.facesconfig.ui.pageflow.util.PageflowValidation;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
/**
* Edit section for Pagflow Page Element (EditPart)
diff --git a/jsf/plugins/org.eclipse.jst.jsf.standard.tagsupport/metadata/jsf_core.xml b/jsf/plugins/org.eclipse.jst.jsf.standard.tagsupport/metadata/jsf_core.xml
index 7f6eda8..ee85f8c 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.standard.tagsupport/metadata/jsf_core.xml
+++ b/jsf/plugins/org.eclipse.jst.jsf.standard.tagsupport/metadata/jsf_core.xml
@@ -4,11 +4,17 @@
xmlns:md="http://org.eclipse.jst.jsf.common.metadata/metadata.ecore"
xmlns:mdt="http://org.eclipse.jst.jsf.common.metadata/metadataTraitTypes.ecore"
xmlns:cnst="http://org.eclipse.jst.jsf.core/constraints.ecore"
+ xmlns:qe="http://org.eclipse.jsf.pagedesigner/QuickEditTabSections.ecore"
id="http://java.sun.com/jsf/core"
type="tagFile">
<entity id="actionListener" type="tag">
<include-entity-group id="common-core-attributes"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="type"/>
+ </value>
+ </trait>
<entity id="type">
<trait id="attribute-value-runtime-type">
<value>
@@ -22,9 +28,20 @@
</entity>
<entity id="attribute" type="tag">
<include-entity-group id="common-core-attributes"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="name"/>
+ <section id="value"/>
+ </value>
+ </trait>
</entity>
<entity id="convertDateTime" type="tag">
<include-entity-group id="common-core-attributes"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="section.general.convertDateTime" type="SECTION"/>
+ </value>
+ </trait>
<entity id="dateStyle">
<trait id="attribute-value-runtime-type">
<value>
@@ -80,9 +97,28 @@
<value>both</value>
</trait>
</entity>
+ <entity id="pattern">
+ <trait id="attribute-value-runtime-type">
+ <value>
+ org.eclipse.jst.jsf.core.attributevalues.DateTimePatternType
+ </value>
+ </trait>
+ </entity>
+ <entity id="locale">
+ <trait id="attribute-value-runtime-type">
+ <value>
+ org.eclipse.jst.jsf.core.attributevalues.LocaleType
+ </value>
+ </trait>
+ </entity>
</entity>
<entity id="convertNumber" type="tag">
<include-entity-group id="common-core-attributes"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="section.general.convertNumber" type="SECTION"/>
+ </value>
+ </trait>
<entity id="groupingUsed">
<trait id="attribute-value-runtime-type">
<value>
@@ -152,9 +188,35 @@
<value>number</value>
</trait>
</entity>
+ <entity id="locale">
+ <trait id="attribute-value-runtime-type">
+ <value>
+ org.eclipse.jst.jsf.core.attributevalues.LocaleType
+ </value>
+ </trait>
+ </entity>
+ <entity id="pattern">
+ <trait id="attribute-value-runtime-type">
+ <value>
+ org.eclipse.jst.jsf.core.attributevalues.NumberPatternType
+ </value>
+ </trait>
+ </entity>
+ <entity id="currencyCode">
+ <trait id="attribute-value-runtime-type">
+ <value>
+ org.eclipse.jst.jsf.core.attributevalues.CurrencyCodeType
+ </value>
+ </trait>
+ </entity>
</entity>
<entity id="converter" type="tag">
<include-entity-group id="common-core-attributes"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="converterId"/>
+ </value>
+ </trait>
<entity id="converterId">
<trait id="attribute-value-runtime-type">
<value>
@@ -166,7 +228,20 @@
</trait>
</entity>
</entity>
+ <entity id="facet" type="tag">
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="name"/>
+ </value>
+ </trait>
+ </entity>
<entity id="loadBundle" type="tag">
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="basename"/>
+ <section id="var"/>
+ </value>
+ </trait>
<trait id="containment-constraint">
<value xsi:type="cnst:ContainsTagConstraint">
<set-generator>
@@ -200,9 +275,26 @@
</trait>
</entity>
</entity>
- <entity id="param" type="tag"><include-entity-group id="common-core-attributes"/></entity>
+ <entity id="param" type="tag">
+ <include-entity-group id="common-core-attributes"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="name"/>
+ <section id="value"/>
+ <section id="binding"/>
+ </value>
+ </trait>
+ </entity>
<entity id="selectItem" type="tag">
<include-entity-group id="common-core-attributes"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="itemLabel"/>
+ <section id="itemValue"/>
+ </value>
+ </trait>
<entity id="itemDisabled">
<trait id="attribute-value-runtime-type">
<value>
@@ -212,7 +304,7 @@
<trait id="default-value">
<value>false</value>
</trait>
- </entity>
+ </entity>
<entity id="value">
<trait id="attribute-value-runtime-type">
<value>
@@ -226,9 +318,21 @@
</entity>
<entity id="selectItems" type="tag">
<include-entity-group id="common-core-attributes"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="binding"/>
+ </value>
+ </trait>
</entity>
<entity id="subview" type="tag">
<include-entity-group id="common-core-attributes"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ </value>
+ </trait>
<entity id="rendered">
<trait id="attribute-value-runtime-type">
<value>
@@ -239,6 +343,12 @@
</entity>
<entity id="validateDoubleRange" type="tag">
<include-entity-group id="common-core-attributes"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="minimum"/>
+ <section id="maximum"/>
+ </value>
+ </trait>
<entity id="maximum">
<trait id="attribute-value-runtime-type">
<value>
@@ -256,6 +366,12 @@
</entity>
<entity id="validateLength" type="tag">
<include-entity-group id="common-core-attributes"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="minimum"/>
+ <section id="maximum"/>
+ </value>
+ </trait>
<entity id="maximum">
<trait id="attribute-value-runtime-type">
<value>
@@ -275,6 +391,12 @@
</entity>
<entity id="validateLongRange" type="tag">
<include-entity-group id="common-core-attributes"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="minimum"/>
+ <section id="maximum"/>
+ </value>
+ </trait>
<entity id="maximum">
<trait id="attribute-value-runtime-type">
<value>
@@ -292,6 +414,11 @@
</entity>
<entity id="validator" type="tag">
<include-entity-group id="common-core-attributes"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="validatorId"/>
+ </value>
+ </trait>
<entity id="validatorId">
<trait id="attribute-value-runtime-type">
<value>
@@ -305,6 +432,11 @@
</entity>
<entity id="valueChangeListener" type="tag">
<include-entity-group id="common-core-attributes"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="type"/>
+ </value>
+ </trait>
<entity id="type">
<trait id="attribute-value-runtime-type">
<value>
@@ -318,6 +450,11 @@
</entity>
<entity id="verbatim" type="tag">
<include-entity-group id="common-core-attributes"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="escape"/>
+ </value>
+ </trait>
<entity id="escape">
<trait id="attribute-value-runtime-type">
<value>
@@ -329,7 +466,19 @@
</trait>
</entity>
</entity>
- <entity id="view" type="tag"><include-entity-group id="common-core-attributes"/></entity>
+ <entity id="view" type="tag">
+ <include-entity-group id="common-core-attributes"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="locale"/>
+ </value>
+ </trait>
+ <entity id="locale">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.LocaleType </value>
+ </trait>
+ </entity>
+ </entity>
<entityGroup id="common-core-attributes" type="tag">
<entity id="binding">
diff --git a/jsf/plugins/org.eclipse.jst.jsf.standard.tagsupport/metadata/jsf_html.properties b/jsf/plugins/org.eclipse.jst.jsf.standard.tagsupport/metadata/jsf_html.properties
index d96dce0..c06d783 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.standard.tagsupport/metadata/jsf_html.properties
+++ b/jsf/plugins/org.eclipse.jst.jsf.standard.tagsupport/metadata/jsf_html.properties
@@ -17,26 +17,18 @@
selectOneRadio.layout.displayed-values.pageDirection=pageDirection (list is laid out vertically)
selectOneRadio.layout.displayed-values.lineDirection=lineDirection (list is laid out horizontally)
-any.dir.displayed-values.ltr=ltr (left-to-right)
-any.dir.displayed-values.rtl=rtl (right-to-left)
-
-any.frame.displayed-values.none=none (no sides, default value)
-any.frame.displayed-values.above=above (top side only)
-any.frame.displayed-values.below=below (bottom side only)
-any.frame.displayed-values.hsides=hsides (top and bottom sides only)
-any.frame.displayed-values.vsides=vsides (right and left sides only)
-any.frame.displayed-values.lhs=lhs (left hand side only)
-any.frame.displayed-values.rhs=rhs (right hand side only)
-any.frame.displayed-values.box=box (all four sides)
-any.frame.displayed-values.border=border (all four sides)
-
-any.rules.displayed-values.none=none (no rules, default value)
-any.rules.displayed-values.groups=groups (between row groups)
-any.rules.displayed-values.rows=rows (between rows only)
-any.rules.displayed-values.cols=cols (between columns only)
-any.rules.displayed-values.all=all (between all rows and columns)
-
-any.shape.displayed-values.default=default (entire region)
-any.shape.displayed-values.rect=rect (rectangular region)
-any.shape.displayed-values.circle=circle (circular region)
-any.shape.displayed-values.poly=poly (polygonal region)
+property.category.event=Event
+property.category.language=Language
+property.category.html=HTML
+property.category.css=CSS
+property.category.jsf=JSF
+property.category.general=General
+property.category.accessibility=Accessibility
+property.category.visualProperty=VisualProperty
+property.category.browser.specific=Browser Specific
+property.category.core=Core
+property.category.content=Content
+property.category.data.binding=Data Binding
+property.category.dynamic=Dynamic
+property.category.file=File
+property.category.image=Image
diff --git a/jsf/plugins/org.eclipse.jst.jsf.standard.tagsupport/metadata/jsf_html.xml b/jsf/plugins/org.eclipse.jst.jsf.standard.tagsupport/metadata/jsf_html.xml
index e963c13..41a3b89 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.standard.tagsupport/metadata/jsf_html.xml
+++ b/jsf/plugins/org.eclipse.jst.jsf.standard.tagsupport/metadata/jsf_html.xml
@@ -5,11 +5,36 @@
xmlns:md="http://org.eclipse.jst.jsf.common.metadata/metadata.ecore"
xmlns:mdt="http://org.eclipse.jst.jsf.common.metadata/metadataTraitTypes.ecore"
xmlns:cnst="http://org.eclipse.jst.jsf.core/constraints.ecore"
+ xmlns:qe="http://org.eclipse.jsf.pagedesigner/QuickEditTabSections.ecore"
id="http://java.sun.com/jsf/html"
type="tagFile">
+ <entity id="column" type="tag">
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ </value>
+ </trait>
+ </entity>
<entity id="commandButton" type="tag">
- <include-entity-group id="common-attributes"/>
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="common-event-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="action"/>
+ <section id="actionListener"/>
+ <section id="type"/>
+ <section id="style"/>
+ <section id="section.general.commandButton.listener" type="SECTION"/>
+ </value>
+ </trait>
<trait id="containment-constraint">
<value xsi:type="cnst:ContainsTagConstraint">
<set-generator>
@@ -42,10 +67,36 @@
<trait id="default-value">
<value>submit</value>
</trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="image">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.WebPathType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
</entity>
</entity>
<entity id="commandLink" type="tag">
- <include-entity-group id="common-attributes"/>
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="common-event-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="action"/>
+ <section id="actionListener"/>
+ <section id="style"/>
+ <section id="section.general.commandLink.listener" type="SECTION"/>
+ </value>
+ </trait>
<trait id="containment-constraint">
<value xsi:type="cnst:ContainsTagConstraint">
<set-generator>
@@ -66,8 +117,34 @@
</trait>
</entity>
<entity id="dataTable" type="tag">
- <include-entity-group id="common-attributes"/>
- <entity id="var">
+ <include-entity-group id="jsf-table-attributes"/>
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="common-event-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="var"/>
+ <section id="width"/>
+ <section id="border"/>
+ <section id="bgcolor"/>
+ <section id="style"/>
+ <section id="section.general.dataTable.columns" type="SECTION"/>
+ </value>
+ </trait>
+ <entity id="bgcolor">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ColorType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="var">
<trait id="contributes-value-binding">
<value>true</value>
</trait>
@@ -77,15 +154,63 @@
<trait id="value-binding-symbol-factory">
<value>org.eclipse.jst.jsf.designtime.core.loadBundle</value>
</trait>
+ <trait id="category"><value>%property.category.jsf</value></trait>
</entity>
</entity>
- <entity id="form" type="tag"><include-entity-group id="common-attributes"/></entity>
+ <entity id="form" type="tag">
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="common-event-attributes" uri="HTML"/>
+ <include-entity-group id="form-event-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="style"/>
+ </value>
+ </trait>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="action"/>
+ <section id="actionListener"/>
+ <section id="style"/>
+ </value>
+ </trait>
+ </entity>
<entity id="graphicImage" type="tag">
- <include-entity-group id="common-attributes"/>
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="common-event-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="url"/>
+ <section id="binding"/>
+ <section id="style"/>
+ </value>
+ </trait>
</entity>
<entity id="inputHidden" type="tag">
- <include-entity-group id="common-attributes"/>
- <trait id="containment-constraint">
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="common-event-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <!-- <section id="section.general.inputHidden.type" type="SECTION"/> -->
+ </value>
+ </trait>
+ <trait id="containment-constraint">
<value xsi:type="cnst:ContainsTagConstraint">
<set-generator>
<algorithm>xpath</algorithm>
@@ -109,7 +234,21 @@
</entity>
</entity>
<entity id="inputSecret" type="tag">
- <include-entity-group id="common-attributes"/>
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="common-event-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="style"/>
+ <!-- <section id="section.general.inputSecret.type" type="SECTION"/> -->
+ <section id="section.general.inputText.others" type="SECTION"/>
+ </value>
+ </trait>
<entity id="value">
<trait id="attribute-value-runtime-type">
<value>org.eclipse.jst.jsf.core.attributevalues.ValueType</value>
@@ -120,7 +259,21 @@
</entity>
</entity>
<entity id="inputText" type="tag">
- <include-entity-group id="common-attributes"/>
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="common-event-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="style"/>
+ <!-- <section id="section.general.inputText.type" type="SECTION"/> -->
+ <section id="section.general.inputText.others" type="SECTION"/>
+ </value>
+ </trait>
<trait id="containment-constraint">
<value xsi:type="cnst:ContainsTagConstraint">
<set-generator>
@@ -145,7 +298,21 @@
</entity>
</entity>
<entity id="inputTextarea" type="tag">
- <include-entity-group id="common-attributes"/>
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="common-event-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="style"/>
+ <!-- <section id="section.general.inputTextarea.type" type="SECTION"/> -->
+ <section id="section.general.inputTextarea.others" type="SECTION"/>
+ </value>
+ </trait>
<entity id="value">
<trait id="attribute-value-runtime-type">
<value>org.eclipse.jst.jsf.core.attributevalues.ValueType</value>
@@ -155,9 +322,33 @@
</trait>
</entity>
</entity>
- <entity id="message" type="tag"><include-entity-group id="common-attributes"/></entity>
+ <entity id="message" type="tag">
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="for-entity"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="for"/>
+ </value>
+ </trait>
+ </entity>
<entity id="messages" type="tag">
- <include-entity-group id="common-attributes"/>
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="layout"/>
+ <section id="style"/>
+ </value>
+ </trait>
<entity id="layout">
<trait id="attribute-value-runtime-type">
<value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
@@ -179,14 +370,110 @@
</trait>
</entity>
</entity>
- <entity id="outputFormat" type="tag"><include-entity-group id="common-attributes"/></entity>
- <entity id="outputLabel" type="tag"><include-entity-group id="common-attributes"/></entity>
- <entity id="outputLink" type="tag"><include-entity-group id="common-attributes"/></entity>
- <entity id="outputText" type="tag"><include-entity-group id="common-attributes"/></entity>
- <entity id="panelGrid" type="tag"><include-entity-group id="common-attributes"/></entity>
- <entity id="panelGroup" type="tag"><include-entity-group id="common-attributes"/></entity>
+ <entity id="outputFormat" type="tag">
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="style"/>
+ <section id="section.general.outputFormat.params" type="SECTION"/>
+ </value>
+ </trait>
+ </entity>
+ <entity id="outputLabel" type="tag">
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="common-event-attributes" uri="HTML"/>
+ <include-entity-group id="for-entity"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="for"/>
+ <section id="style"/>
+ </value>
+ </trait>
+ </entity>
+ <entity id="outputLink" type="tag">
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="common-event-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="style"/>
+ </value>
+ </trait>
+ </entity>
+ <entity id="outputText" type="tag">
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="binding"/>
+ <section id="style"/>
+ <section id="section.general.outputText.converter" type="SECTION"/>
+ </value>
+ </trait>
+ </entity>
+ <entity id="panelGrid" type="tag">
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="jsf-table-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="common-event-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="columns"/>
+ <section id="border"/>
+ <section id="style"/>
+ </value>
+ </trait>
+ </entity>
+ <entity id="panelGroup" type="tag">
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="style"/>
+ </value>
+ </trait>
+ </entity>
<entity id="selectBooleanCheckbox" type="tag">
- <include-entity-group id="common-attributes"/>
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="common-event-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="style"/>
+ </value>
+ </trait>
<trait id="containment-constraint">
<value xsi:type="cnst:ContainsTagConstraint">
<set-generator>
@@ -211,7 +498,21 @@
</entity>
</entity>
<entity id="selectManyCheckbox" type="tag">
- <include-entity-group id="common-attributes"/>
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="common-event-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="layout"/>
+ <section id="style"/>
+ <section id="section.general.selectManyCheckbox.choices" type="SECTION"/>
+ </value>
+ </trait>
<trait id="containment-constraint">
<value xsi:type="cnst:ContainsTagConstraint">
<set-generator>
@@ -248,7 +549,21 @@
</entity>
</entity>
<entity id="selectManyListbox" type="tag">
- <include-entity-group id="common-attributes"/>
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="common-event-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="size"/>
+ <section id="style"/>
+ <section id="section.general.selectManyListbox.choices" type="SECTION"/>
+ </value>
+ </trait>
<trait id="containment-constraint">
<value xsi:type="cnst:ContainsTagConstraint">
<set-generator>
@@ -265,7 +580,20 @@
</trait>
</entity>
<entity id="selectManyMenu" type="tag">
- <include-entity-group id="common-attributes"/>
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="common-event-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="style"/>
+ <section id="section.general.selectManyMenu.choices" type="SECTION"/>
+ </value>
+ </trait>
<trait id="containment-constraint">
<value xsi:type="cnst:ContainsTagConstraint">
<set-generator>
@@ -282,7 +610,21 @@
</trait>
</entity>
<entity id="selectOneListbox" type="tag">
- <include-entity-group id="common-attributes"/>
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="common-event-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="size"/>
+ <section id="style"/>
+ <section id="section.general.selectOneListbox.choices" type="SECTION"/>
+ </value>
+ </trait>
<trait id="containment-constraint">
<value xsi:type="cnst:ContainsTagConstraint">
<set-generator>
@@ -307,7 +649,20 @@
</entity>
</entity>
<entity id="selectOneMenu" type="tag">
- <include-entity-group id="common-attributes"/>
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="common-event-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="style"/>
+ <section id="section.general.selectOneMenu.choices" type="SECTION"/>
+ </value>
+ </trait>
<trait id="containment-constraint">
<value xsi:type="cnst:ContainsTagConstraint">
<set-generator>
@@ -332,7 +687,21 @@
</entity>
</entity>
<entity id="selectOneRadio" type="tag">
- <include-entity-group id="common-attributes"/>
+ <include-entity-group id="basic-jsf-html-attributes"/>
+ <include-entity-group id="common-jsf-html-attributes"/>
+ <include-entity-group id="common-html-attributes" uri="HTML"/>
+ <include-entity-group id="common-language-attributes" uri="HTML"/>
+ <include-entity-group id="common-core-attributes" uri="HTML"/>
+ <include-entity-group id="common-event-attributes" uri="HTML"/>
+ <trait id="quick-edit-tab">
+ <value xsi:type="qe:QuickEditTabSections">
+ <section id="id"/>
+ <section id="value"/>
+ <section id="layout"/>
+ <section id="style"/>
+ <section id="section.general.selectOneRadio.choices" type="SECTION"/>
+ </value>
+ </trait>
<trait id="containment-constraint">
<value xsi:type="cnst:ContainsTagConstraint">
<set-generator>
@@ -377,8 +746,106 @@
</trait>
</entity>
</entity>
- <entity id="column" type="tag"><include-entity-group id="common-attributes"/></entity>
- <entityGroup id="common-attributes">
+ <entityGroup id="basic-jsf-html-attributes">
+ <entity id="id">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="binding">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ComponentBindingType</value>
+ </trait>
+ <trait id="runtime-return-type">
+ <value>javax.faces.component.UIComponent</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="converter">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.FacesConfigConverterIDType</value>
+ </trait>
+ <trait id="config-type">
+ <value>javax.faces.convert.Converter</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="rendered">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="required">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="styleClass">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.pagedesigner.attributevalues.CSSClassType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="value">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
+ </trait>
+ <trait id="runtime-return-type">
+ <value>java.lang.String</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="valueChangeListener">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+ </trait>
+ <trait id="runtime-return-type">
+ <value>void</value>
+ </trait>
+ <trait id="runtime-param-types">
+ <value>javax.faces.event.ValueChangeEvent</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="validator">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
+ </trait>
+ <trait id="runtime-return-type">
+ <value>void</value>
+ </trait>
+ <trait id="runtime-param-types">
+ <value xsi:type="mdt:ListOfValues">
+ <item>javax.faces.context.FacesContext</item>
+ <item>javax.faces.component.UIComponent</item>
+ <item>java.lang.Object</item>
+ </value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ </entityGroup>
+ <entityGroup id="common-jsf-html-attributes">
<!-- This group will be refactored -->
<entity id="action">
<trait id="attribute-value-runtime-type">
@@ -386,7 +853,10 @@
</trait>
<trait id="runtime-return-type">
<value>java.lang.String</value>
- </trait>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
</entity>
<entity id="actionListener">
<trait id="attribute-value-runtime-type">
@@ -397,47 +867,19 @@
</trait>
<trait id="runtime-param-types">
<value>javax.faces.event.ActionEvent</value>
- </trait>
- </entity>
- <entity id="binding">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.ComponentBindingType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
</trait>
- <trait id="runtime-return-type">
- <value>javax.faces.component.UIComponent</value>
- </trait>
- </entity>
- <entity id="border">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
- </trait>
- <trait id="valid-minimum"><value>0</value></trait>
- </entity>
- <entity id="cellpadding">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
- </trait>
- <trait id="valid-minimum"><value>0</value></trait>
- </entity>
- <entity id="cellspacing">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
- </trait>
- <trait id="valid-minimum"><value>0</value></trait>
</entity>
<entity id="cols">
<trait id="attribute-value-runtime-type">
<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
</trait>
<trait id="valid-minimum"><value>0</value></trait>
- </entity>
- <entity id="converter">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.FacesConfigConverterIDType</value>
+ <trait id="category">
+ <value>%property.category.jsf</value>
</trait>
- <trait id="config-type">
- <value>javax.faces.convert.Converter</value>
- </trait>
</entity>
<entity id="escape">
<trait id="attribute-value-runtime-type">
@@ -446,7 +888,214 @@
<trait id="default-value">
<value>true</value>
</trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
</entity>
+ <entity id="globalOnly">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+ </trait>
+ <trait id="default-value">
+ <value>false</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="immediate">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="readonly">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+ </trait>
+ <trait id="default-value">
+ <value>false</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="redisplay">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+
+ <entity id="showDetail">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+ </trait>
+ <trait id="default-value">
+ <value>true</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="dalign">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+ </trait>
+ <trait id="valid-values">
+ <value xsi:type="mdt:ListOfValues">
+ <item>right</item>
+ <item>left</item>
+ <item>center</item>
+ <item>justify</item>
+ </value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="ialign">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+ </trait>
+ <trait id="valid-values">
+ <value xsi:type="mdt:ListOfValues">
+ <item>bottom</item>
+ <item>middle</item>
+ <item>top</item>
+ <item>right</item>
+ <item>left</item>
+ </value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="linktype">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.LinkType</value>
+ </trait>
+ <trait id="valid-values">
+ <value xsi:type="mdt:ListOfValues">
+ <item>index</item>
+ <item>subsection</item>
+ <item>bookmark</item>
+ <item>start</item>
+ <item>next</item>
+ <item>stylesheet</item>
+ <item>chapter</item>
+ <item>help</item>
+ <item>alternate</item>
+ <item>appendix</item>
+ <item>contents</item>
+ <item>section</item>
+ <item>prev</item>
+ <item>previous</item>
+ <item>glossary</item>
+ <item>copyright</item>
+ </value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="media">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+ </trait>
+ <trait id="valid-values">
+ <value xsi:type="mdt:ListOfValues">
+ <item>tv</item>
+ <item>braille</item>
+ <item>tty</item>
+ <item>print</item>
+ <item>all</item>
+ <item>projection</item>
+ <item>handheld</item>
+ <item>screen</item>
+ <item>aural</item>
+ </value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="scope">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+ </trait>
+ <trait id="valid-values">
+ <value xsi:type="mdt:ListOfValues">
+ <item>row</item>
+ <item>col</item>
+ <item>rowgroup</item>
+ <item>colgroup</item>
+ </value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ </entityGroup>
+ <entityGroup id="jsf-table-attributes">
+ <entity id="bgcolor">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="border">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+ </trait>
+ <trait id="valid-minimum"><value>0</value></trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="cellpadding">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+ </trait>
+ <trait id="valid-minimum"><value>0</value></trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="cellspacing">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+ </trait>
+ <trait id="valid-minimum"><value>0</value></trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="columns">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+ </trait>
+ <trait id="valid-minimum">
+ <value>0</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
+ <entity id="columnClasses">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.pagedesigner.attributevalues.CSSClassType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
<entity id="first">
<trait id="attribute-value-runtime-type">
<value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
@@ -454,7 +1103,18 @@
<trait id="valid-minimum">
<value>0</value>
</trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
</entity>
+ <entity id="footerClass">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.pagedesigner.attributevalues.CSSClassType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
+ </entity>
<entity id="frame">
<trait id="attribute-value-runtime-type">
<value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
@@ -487,63 +1147,27 @@
</trait>
<trait id="default-value">
<value>none</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
</trait>
- </entity>
- <entity id="globalOnly">
+ </entity>
+ <entity id="headerClass">
<trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+ <value>org.eclipse.jst.pagedesigner.attributevalues.CSSClassType</value>
</trait>
- <trait id="default-value">
- <value>false</value>
- </trait>
- </entity>
- <entity id="height">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+ <trait id="category">
+ <value>%property.category.jsf</value>
</trait>
</entity>
- <entity id="id">
+ <entity id="rowClasses">
<trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value>
+ <value>org.eclipse.jst.pagedesigner.attributevalues.CSSClassType</value>
</trait>
- </entity>
- <entity id="immediate">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+ <trait id="category">
+ <value>%property.category.jsf</value>
</trait>
</entity>
- <entity id="ismap">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
- </trait>
- </entity>
- <entity id="maxlength">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
- </trait>
- <trait id="valid-minimum"><value>0</value></trait>
- </entity>
- <entity id="readonly">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
- </trait>
- </entity>
- <entity id="redisplay">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
- </trait>
- </entity>
- <entity id="rendered">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
- </trait>
- </entity>
- <entity id="rows">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
- </trait>
- <trait id="valid-minimum"><value>0</value></trait>
- </entity>
<entity id="rules">
<trait id="attribute-value-runtime-type">
<value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
@@ -568,39 +1192,10 @@
</trait>
<trait id="default-value">
<value>none</value>
- </trait>
- </entity>
- <entity id="shape">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
</trait>
- <trait id="valid-values">
- <value xsi:type="mdt:ListOfValues">
- <item>default</item>
- <item>rect</item>
- <item>circle</item>
- <item>poly</item>
- </value>
- </trait>
- <trait id="displayed-values">
- <value xsi:type="mdt:ListOfValues">
- <item>%any.shape.displayed-values.default</item>
- <item>%any.shape.displayed-values.rect</item>
- <item>%any.shape.displayed-values.circle</item>
- <item>%any.shape.displayed-values.poly</item>
- </value>
- </trait>
- <trait id="default-value">
- <value>default</value>
- </trait>
- </entity>
- <entity id="showDetail">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
- </trait>
- <trait id="default-value">
- <value>true</value>
- </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
+ </trait>
</entity>
<entity id="showSummary">
<trait id="attribute-value-runtime-type">
@@ -609,74 +1204,26 @@
<trait id="default-value">
<value>false</value>
</trait>
- </entity>
- <entity id="size">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+ <trait id="category">
+ <value>%property.category.jsf</value>
</trait>
- <trait id="valid-minimum"><value>0</value></trait>
</entity>
- <entity id="tabindex">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
- </trait>
- <trait id="valid-minimum"><value>0</value></trait>
- <trait id="valid-maximum"><value>32767</value></trait>
- </entity>
- <entity id="validator">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
- </trait>
- <trait id="runtime-return-type">
- <value>void</value>
- </trait>
- <trait id="runtime-param-types">
- <value xsi:type="mdt:ListOfValues">
- <item>javax.faces.context.FacesContext</item>
- <item>javax.faces.component.UIComponent</item>
- <item>java.lang.Object</item>
- </value>
- </trait>
- </entity>
- <entity id="value">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.ValueBindingType</value>
- </trait>
- <trait id="runtime-return-type">
- <value>java.lang.String</value>
- </trait>
- </entity>
- <entity id="valueChangeListener">
- <trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.MethodBindingType</value>
- </trait>
- <trait id="runtime-return-type">
- <value>void</value>
- </trait>
- <trait id="runtime-param-types">
- <value>javax.faces.event.ValueChangeEvent</value>
- </trait>
- </entity>
- <entity id="dir">
+ <entity id="summary">
<trait id="attribute-value-runtime-type">
<value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
</trait>
- <trait id="valid-values">
- <value xsi:type="mdt:ListOfValues">
- <item>ltr</item>
- <item>rtl</item>
- </value>
+ <trait id="category">
+ <value>%property.category.jsf</value>
</trait>
- <trait id="displayed-values">
- <value xsi:type="mdt:ListOfValues">
- <item>%any.dir.displayed-values.ltr</item>
- <item>%any.dir.displayed-values.rtl</item>
- </value>
- </trait>
</entity>
- <entity id="width">
+ </entityGroup>
+ <entityGroup id="for-entity">
+ <entity id="for">
<trait id="attribute-value-runtime-type">
- <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+ <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.jsf</value>
</trait>
</entity>
</entityGroup>
diff --git a/jsf/plugins/org.eclipse.jst.jsf.ui/META-INF/MANIFEST.MF b/jsf/plugins/org.eclipse.jst.jsf.ui/META-INF/MANIFEST.MF
index f953fb2..f9bd2ca 100644
--- a/jsf/plugins/org.eclipse.jst.jsf.ui/META-INF/MANIFEST.MF
+++ b/jsf/plugins/org.eclipse.jst.jsf.ui/META-INF/MANIFEST.MF
@@ -21,7 +21,7 @@
org.eclipse.wst.sse.ui;bundle-version="[1.0.101,1.2.0)",
org.eclipse.emf.ecore;bundle-version="[2.2.0,3.0.0)",
org.eclipse.jst.jsp.ui;bundle-version="[1.1.0,1.3.0)",
- org.eclipse.ui.forms
+ org.eclipse.ui.forms;bundle-version="[3.2.0,4.0.0)"
Eclipse-LazyStart: true
Export-Package: org.eclipse.jst.jsf.ui.internal;x-friends:="org.eclipse.jst.jsf.ui.tests",
org.eclipse.jst.jsf.ui.internal.classpath;x-friends:="org.eclipse.jst.jsf.ui.tests",
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/META-INF/MANIFEST.MF b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/META-INF/MANIFEST.MF
index e70dc37..1ee5378 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/META-INF/MANIFEST.MF
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/META-INF/MANIFEST.MF
@@ -9,7 +9,6 @@
org.eclipse.jst.pagedesigner;bundle-version="[1.0.0,1.1.0)",
org.eclipse.jst.pagedesigner.jsp.core;bundle-version="[1.0.0,1.1.0)",
org.eclipse.wst.common.modulecore;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.common.ui.properties;bundle-version="[1.0.101,1.2.0)",
org.eclipse.jst.jsf.common.ui;bundle-version="[1.0.0,1.1.0)",
org.eclipse.jst.jsf.core;bundle-version="[1.0.0,1.1.0)",
org.eclipse.jst.jsf.common;bundle-version="[1.0.0,1.1.0)",
@@ -19,7 +18,8 @@
org.eclipse.gef;bundle-version="[3.2.0,4.0.0)",
org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
org.eclipse.jdt.core;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)"
+ org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)",
+ org.eclipse.ui.views.properties.tabbed;bundle-version="[3.2.0,4.0.0)"
Eclipse-LazyStart: true
Bundle-ManifestVersion: 2
Export-Package: org.eclipse.jst.pagedesigner.jsf.core.dom;x-internal:=true,
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/plugin.xml b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/plugin.xml
index 6e9b378..d1294e6 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/plugin.xml
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/plugin.xml
@@ -1,693 +1,469 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>
- <extension
- point="org.eclipse.jst.pagedesigner.pageDesignerExtension">
- <tagConverterFactory class="org.eclipse.jst.pagedesigner.jsf.ui.converter.jsfcore.JSFCoreConverterFactory"/>
- <attributeCellEditorFactory class="org.eclipse.jst.pagedesigner.jsf.ui.celleditors.JSFAttributeCellEditorFactory"/>
- <tagConverterFactory class="org.eclipse.jst.pagedesigner.jsf.ui.converter.jsfhtml.JSFHTMLConverterFactory"/>
- <elementEditFactory class="org.eclipse.jst.pagedesigner.jsf.ui.elementedit.jsfhtml.JSFHTMLElementEditFactory"/>
- <elementEditFactory class="org.eclipse.jst.pagedesigner.jsf.ui.elementedit.jsfcore.JSFCoreElementEditFactory"/>
- <linkCreator
- class="org.eclipse.jst.pagedesigner.jsf.ui.actions.JSFCommandLinkCreator"
- linkIdentifier="JSF CommandLink"/>
- <linkCreator
- class="org.eclipse.jst.pagedesigner.jsf.ui.actions.JSFOutputLinkCreator"
- linkIdentifier="JSF OutputLink"/>
- </extension>
-
- <extension point="org.eclipse.jst.pagedesigner.popupMenuContributor">
- <menuItemContributor class="org.eclipse.jst.pagedesigner.jsf.ui.actions.PageFlowContributor"
- URI="http://java.sun.com/jsf/core"/>
- </extension>
-
- <!-- page variables -->
- <extension
- point="org.eclipse.jst.pagedesigner.jsp.core.pageVar">
- <taglib uri="http://java.sun.com/jsf/html">
-
- <tag
- varTypeStringIsAttr="true"
- varNameIsAttr="true"
- varTypeMode="EXPRESSION_COLLECTION_ITEM"
- varTypeString="value"
- varName="var"
- tagName="dataTable"/>
- </taglib>
- <taglib uri="http://java.sun.com/jsf/core">
- <tag
- varTypeStringIsAttr="true"
- varNameIsAttr="true"
- varTypeMode="BUNDLE"
- varTypeString="basename"
- varName="var"
- tagName="loadBundle"/>
- </taglib>
- </extension>
- <!-- element and attribute meta data -->
- <extension
- point="org.eclipse.jst.pagedesigner.cmRegistry">
- <registry
- configFile="configs/cm/jsfcore.xml"
- uri="http://java.sun.com/jsf/core"/>
- <registry
- configFile="configs/cm/jsfhtml.xml"
- uri="http://java.sun.com/jsf/html"/>
- </extension>
- <extension
- point="org.eclipse.jst.pagedesigner.propertySections">
- <propertySections>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreActionListenerSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.actionListener">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/core"
- tagName="actionListener"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreAttributeSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.attribute">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/core"
- tagName="attribute"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreConverterSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.converter">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/core"
- tagName="converter"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreFacetSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.facet">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/core"
- tagName="facet"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreLoadBundleSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.loadBundle">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/core"
- tagName="loadBundle"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreParamSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.param">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/core"
- tagName="param"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreSelectItemSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.selectItem">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/core"
- tagName="selectItem"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreSelectItemsSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.selectItems">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/core"
- tagName="selectItems"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreSubviewSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.subview">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/core"
- tagName="subview"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreValidateDoubleRangeSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.validateDoubleRange">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/core"
- tagName="validateDoubleRange"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreValidateLengthSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.validateLength">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/core"
- tagName="validateLength"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreValidateLongRangeSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.validateLongRange">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/core"
- tagName="validateLongRange"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreValidatorSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.validator">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/core"
- tagName="validator"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreValueChangeListenerSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.valueChangeListener">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/core"
- tagName="valueChangeListener"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreVerbatimSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.verbatim">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/core"
- tagName="verbatim"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreViewSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.view">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/core"
- tagName="view"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlColumnSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.column">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="column"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlCommandButtonSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.commandButton">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="commandButton"/>
- </propertySection>
- <propertySection
- afterSection="section.general.commandButton"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlActionListenerSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.commandButton.listener">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="commandButton"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlCommandLinkSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.commandLink">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="commandLink"/>
- </propertySection>
- <propertySection
- afterSection="section.general.commandLink"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlActionListenerSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.commandLink.listener">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="commandLink"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlDataTableSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.dataTable">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="dataTable"/>
- </propertySection>
- <propertySection
- afterSection="section.general.dataTable"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlDataTableColumnsSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.dataTable.columns">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="dataTable"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlFormSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.form">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="form"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlGraphicImageSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.graphicImage">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="graphicImage"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputHiddenSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.inputHidden">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="inputHidden"/>
- </propertySection>
- <propertySection
- afterSection="section.general.inputHidden"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputHiddenTypeSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.inputHidden.type">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="inputHidden"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputSecretSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.inputSecret">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="inputSecret"/>
- </propertySection>
- <propertySection
- afterSection="section.general.inputSecret"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputSecretTypeSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.inputSecret.type">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="inputSecret"/>
- </propertySection>
- <propertySection
- afterSection="section.general.inputSecret.type"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputOthersSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.inputText.others">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="inputSecret"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputTextSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.inputText">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="inputText"/>
- </propertySection>
- <propertySection
- afterSection="section.general.inputText"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputTextTypeSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.inputText.type">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="inputText"/>
- </propertySection>
- <propertySection
- afterSection="section.general.inputText.type"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputOthersSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.inputText.others">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="inputText"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputTextareaSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.inputTextarea">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="inputTextarea"/>
- </propertySection>
- <propertySection
- afterSection="section.general.inputTextarea"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputTextareaTypeSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.inputTextarea.type">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="inputTextarea"/>
- </propertySection>
- <propertySection
- afterSection="section.general.inputTextarea.type"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputOthersSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.inputTextarea.others">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="inputTextarea"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlMessageSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.message">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="message"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlMessagesSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.messages">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="messages"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlOutputFormatSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.outputFormat">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="outputFormat"/>
- </propertySection>
- <propertySection
- afterSection="section.general.outputFormat"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlOutputFormatParamsSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.outputFormat.params">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="outputFormat"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlOutputLabelSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.outputLabel">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="outputLabel"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlOutputLinkSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.outputLink">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="outputLink"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlOutputTextSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.outputText">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="outputText"/>
- </propertySection>
- <propertySection
- afterSection="section.general.outputText"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlOutputTextConverterSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.outputText.converter">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="outputText"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlPanelGridSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.panelGrid">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="panelGrid"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlPanelGroupSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.panelGroup">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="panelGroup"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectBooleanCheckboxSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.selectBooleanCheckbox">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="selectBooleanCheckbox"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectManyCheckboxSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.selectManyCheckbox">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="selectManyCheckbox"/>
- </propertySection>
- <propertySection
- afterSection="section.general.selectManyCheckbox"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectChoicesSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.selectManyCheckbox.choices">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="selectManyCheckbox"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectManyListboxSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.selectManyListbox">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="selectManyListbox"/>
- </propertySection>
- <propertySection
- afterSection="section.general.selectManyListbox"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectChoicesSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.selectManyListbox.choices">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="selectManyListbox"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectManyMenuSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.selectManyMenu">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="selectManyMenu"/>
- </propertySection>
- <propertySection
- afterSection="section.general.selectManyMenu"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectChoicesSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.selectManyMenu.choices">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="selectManyMenu"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectOneListboxSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.selectOneListbox">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="selectOneListbox"/>
- </propertySection>
- <propertySection
- afterSection="section.general.selectOneListbox"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectChoicesSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.selectOneListbox.choices">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="selectOneListbox"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectOneMenuSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.selectOneMenu">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="selectOneMenu"/>
- </propertySection>
- <propertySection
- afterSection="section.general.selectOneMenu"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectChoicesSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.selectOneMenu.choices">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="selectOneMenu"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectOneRadioSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.selectOneRadio">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="selectOneRadio"/>
- </propertySection>
- <propertySection
- afterSection="section.general.selectOneRadio"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectChoicesSection"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.selectOneRadio.choices">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/html"
- tagName="selectOneRadio"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreConvertDateTimeGroup"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.convertDateTime">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/core"
- tagName="convertDateTime"/>
- </propertySection>
- <propertySection
- afterSection="top"
- class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreConvertNumberGroup"
- tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
- id="section.general.convertNumber">
- <tagFilter
- caseSensitive="true"
- uri="http://java.sun.com/jsf/core"
- tagName="convertNumber"/>
- </propertySection>
- </propertySections>
- </extension>
-
- <extension
- point="org.eclipse.jst.jsf.common.standardMetaDataFiles">
- <standardMetaDataFile
- location="/metadata/jsf_html.xml"
- uri="http://java.sun.com/jsf/html">
- </standardMetaDataFile>
- <standardMetaDataFile
- location="/metadata/jsf_core.xml"
- uri="http://java.sun.com/jsf/core">
- </standardMetaDataFile>
- <standardMetaDataFile
- location="/metadata/jsf_core_dti.xml"
- uri="http://java.sun.com/jsf/core">
- </standardMetaDataFile>
- <standardMetaDataFile
- location="/metadata/jsf_html_dti.xml"
- uri="http://java.sun.com/jsf/html">
- </standardMetaDataFile>
- </extension>
+ <!-- page variables -->
+ <extension point="org.eclipse.jst.pagedesigner.jsp.core.pageVar">
+ <taglib uri="http://java.sun.com/jsf/html">
+
+ <tag varTypeStringIsAttr="true" varNameIsAttr="true"
+ varTypeMode="EXPRESSION_COLLECTION_ITEM" varTypeString="value"
+ varName="var" tagName="dataTable" />
+ </taglib>
+ <taglib uri="http://java.sun.com/jsf/core">
+ <tag varTypeStringIsAttr="true" varNameIsAttr="true"
+ varTypeMode="BUNDLE" varTypeString="basename" varName="var"
+ tagName="loadBundle" />
+ </taglib>
+ </extension>
+
+ <!-- element and attribute meta data -->
+ <!-- DISABLE CMREGISTRY ITEMS
+ <extension point="org.eclipse.jst.pagedesigner.cmRegistry">
+ <registry configFile="configs/cm/jsfcore.xml"
+ uri="http://java.sun.com/jsf/core" />
+ <registry configFile="configs/cm/jsfhtml.xml"
+ uri="http://java.sun.com/jsf/html" />
+ </extension>
+ -->
+
+ <extension point="org.eclipse.ui.views.properties.tabbed.propertySections">
+ <propertySections
+ contributorId="org.eclipse.jst.pagedesigner.tabPropertyContributor">
+ <!-- Disable sections /delete later
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreActionListenerSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.actionListener">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/core" tagName="actionListener" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreAttributeSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.attribute">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/core" tagName="attribute" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreConverterSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.converter">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/core" tagName="converter" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreFacetSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.facet">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/core" tagName="facet" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreLoadBundleSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.loadBundle">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/core" tagName="loadBundle" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreParamSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.param">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/core" tagName="param" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreSelectItemSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.selectItem">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/core" tagName="selectItem" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreSelectItemsSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.selectItems">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/core" tagName="selectItems" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreSubviewSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.subview">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/core" tagName="subview" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreValidateDoubleRangeSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.validateDoubleRange">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/core" tagName="validateDoubleRange" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreValidateLengthSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.validateLength">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/core" tagName="validateLength" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreValidateLongRangeSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.validateLongRange">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/core" tagName="validateLongRange" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreValidatorSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.validator">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/core" tagName="validator" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreValueChangeListenerSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.valueChangeListener">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/core" tagName="valueChangeListener" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreVerbatimSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.verbatim">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/core" tagName="verbatim" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreViewSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.view">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/core" tagName="view" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlColumnSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.column">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="column" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlCommandButtonSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.commandButton">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="commandButton" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlCommandLinkSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.commandLink">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="commandLink" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlDataTableSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.dataTable">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="dataTable" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlFormSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.form">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="form" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlGraphicImageSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.graphicImage">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="graphicImage" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputHiddenSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.inputHidden">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="inputHidden" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlMessageSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.message">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="message" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlMessagesSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.messages">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="messages" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlOutputFormatSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.outputFormat">
+ <input
+ type="org.eclipse.jst.pagedesigner.jsf.ui.Input1">
+ </input>
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="outputFormat" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputTextSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.inputText">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="inputText" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlOutputLabelSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.outputLabel">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="outputLabel" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlOutputLinkSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.outputLink">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="outputLink" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlOutputTextSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.outputText">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="outputText" />
+ </propertySection>
+ <propertySection
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputTextareaSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.inputTextarea">
+ </propertySection>
+
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlPanelGridSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.panelGrid">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="panelGrid" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlPanelGroupSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.panelGroup">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="panelGroup" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectBooleanCheckboxSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.selectBooleanCheckbox">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="selectBooleanCheckbox" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectManyCheckboxSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.selectManyCheckbox">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="selectManyCheckbox" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectManyListboxSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.selectManyListbox">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="selectManyListbox" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectManyMenuSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.selectManyMenu">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="selectManyMenu" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputSecretSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.inputSecret">
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectOneListboxSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.selectOneListbox">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="selectOneListbox" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectOneMenuSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.selectOneMenu">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="selectOneMenu" />
+ </propertySection>
+ <propertySection afterSection="top"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectOneRadioSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.selectOneRadio">
+ <tagFilter caseSensitive="true"
+ uri="http://java.sun.com/jsf/html" tagName="selectOneRadio" />
+ </propertySection>
+ -->
+ <propertySection
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreConvertDateTimeGroup"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.convertDateTime">
+ </propertySection>
+ <propertySection
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFCoreConvertNumberGroup"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.convertNumber">
+ </propertySection>
+ <propertySection
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlActionListenerSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.commandButton.listener">
+ </propertySection>
+ <propertySection
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlActionListenerSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.commandLink.listener">
+ </propertySection>
+ <propertySection
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlDataTableColumnsSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.dataTable.columns">
+ </propertySection>
+ <propertySection
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputHiddenTypeSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.inputHidden.type">
+ </propertySection>
+
+ <propertySection
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputSecretTypeSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.inputSecret.type">
+ </propertySection>
+ <propertySection
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputOthersSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.inputText.others">
+ </propertySection>
+ <propertySection
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputTextTypeSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.inputText.type">
+ </propertySection>
+ <propertySection
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputOthersSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.inputText.others">
+ </propertySection>
+ <propertySection
+ afterSection="section.general.inputTextarea"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputTextareaTypeSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.inputTextarea.type">
+ </propertySection>
+ <propertySection
+ afterSection="section.general.inputTextarea.type"
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlInputOthersSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.inputTextarea.others">
+ </propertySection>
+ <propertySection
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlOutputFormatParamsSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.outputFormat.params">
+ </propertySection>
+ <propertySection
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlOutputTextConverterSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.outputText.converter">
+ </propertySection>
+ <propertySection
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectChoicesSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.selectManyCheckbox.choices">
+ </propertySection>
+ <propertySection
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectChoicesSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.selectManyListbox.choices">
+ </propertySection>
+ <propertySection
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectChoicesSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.selectManyMenu.choices">
+ </propertySection>
+ <propertySection
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectChoicesSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.selectOneListbox.choices">
+ </propertySection>
+ <propertySection
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectChoicesSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.selectOneMenu.choices">
+ </propertySection>
+ <propertySection
+ class="org.eclipse.jst.pagedesigner.jsf.ui.sections.JSFHtmlSelectChoicesSection"
+ tab="org.eclipse.jst.pagedesigner.tabQuickEdit"
+ id="section.general.selectOneRadio.choices">
+ </propertySection>
+ </propertySections>
+ </extension>
+
+ <extension
+ point="org.eclipse.jst.jsf.common.standardMetaDataFiles">
+ <standardMetaDataFile location="/metadata/jsf_html.xml"
+ uri="http://java.sun.com/jsf/html">
+ </standardMetaDataFile>
+ <standardMetaDataFile location="/metadata/jsf_core.xml"
+ uri="http://java.sun.com/jsf/core">
+ </standardMetaDataFile>
+ <standardMetaDataFile location="/metadata/jsf_core_dti.xml"
+ uri="http://java.sun.com/jsf/core">
+ </standardMetaDataFile>
+ <standardMetaDataFile location="/metadata/jsf_html_dti.xml"
+ uri="http://java.sun.com/jsf/html">
+ </standardMetaDataFile>
+ </extension>
+ <extension
+ point="org.eclipse.jst.pagedesigner.pageDesignerExtension">
+ <tagConverterFactory
+ class="org.eclipse.jst.pagedesigner.jsf.ui.converter.jsfcore.JSFCoreConverterFactory" />
+ <attributeCellEditorFactory
+ class="org.eclipse.jst.pagedesigner.jsf.ui.celleditors.JSFAttributeCellEditorFactory" />
+ <tagConverterFactory
+ class="org.eclipse.jst.pagedesigner.jsf.ui.converter.jsfhtml.JSFHTMLConverterFactory" />
+ <elementEditFactory
+ class="org.eclipse.jst.pagedesigner.jsf.ui.elementedit.jsfhtml.JSFHTMLElementEditFactory" />
+ <elementEditFactory
+ class="org.eclipse.jst.pagedesigner.jsf.ui.elementedit.jsfcore.JSFCoreElementEditFactory" />
+ <linkCreator
+ class="org.eclipse.jst.pagedesigner.jsf.ui.actions.JSFCommandLinkCreator"
+ linkIdentifier="JSF CommandLink" />
+ <linkCreator
+ class="org.eclipse.jst.pagedesigner.jsf.ui.actions.JSFOutputLinkCreator"
+ linkIdentifier="JSF OutputLink" />
+ </extension>
+
+ <extension
+ point="org.eclipse.jst.pagedesigner.popupMenuContributor">
+ <menuItemContributor
+ class="org.eclipse.jst.pagedesigner.jsf.ui.actions.PageFlowContributor"
+ URI="http://java.sun.com/jsf/core" />
+ </extension>
</plugin>
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/attributegroup/AttributeData.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/attributegroup/AttributeData.java
index 9cdae9b..b13fa30 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/attributegroup/AttributeData.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/attributegroup/AttributeData.java
@@ -14,6 +14,7 @@
import java.util.HashMap;
/**
+ * Information and value about a tag attribute
* @author mengbo
* @version 1.5
*/
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/attributegroup/CommonDialogFieldGroup.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/attributegroup/CommonDialogFieldGroup.java
index 29ca67a..8065c7b 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/attributegroup/CommonDialogFieldGroup.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/attributegroup/CommonDialogFieldGroup.java
@@ -26,6 +26,7 @@
/**
* @author mengbo
* @version 1.5
+ * @TODO - unused now?
*/
public class CommonDialogFieldGroup extends DialogFieldGroup
{
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/attributegroup/DialogFieldFactory.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/attributegroup/DialogFieldFactory.java
index 0afbd8a..4aab15e 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/attributegroup/DialogFieldFactory.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/attributegroup/DialogFieldFactory.java
@@ -12,20 +12,22 @@
package org.eclipse.jst.pagedesigner.jsf.ui.attributegroup;
import org.eclipse.core.resources.IProject;
+import org.eclipse.jst.jsf.common.metadata.Entity;
+import org.eclipse.jst.jsf.common.metadata.Trait;
+import org.eclipse.jst.jsf.common.metadata.internal.TraitValueHelper;
+import org.eclipse.jst.jsf.common.metadata.query.TaglibDomainMetaDataQueryHelper;
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.ClassButtonDialogField;
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.ComboDialogField;
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField;
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.RadiosDialogField;
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.StringDialogField;
-import org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor;
-import org.eclipse.jst.pagedesigner.meta.ICMRegistry;
-import org.eclipse.jst.pagedesigner.meta.IElementDescriptor;
-import org.eclipse.jst.pagedesigner.meta.IValueType;
-import org.eclipse.jst.pagedesigner.meta.internal.CMRegistry;
+import org.eclipse.jst.jsf.metadataprocessors.MetaDataEnabledProcessingFactory;
+import org.eclipse.jst.pagedesigner.meta.IAttributeRuntimeValueType;
/**
* @author mengbo
* @version 1.5
+ * @TODO - unused now
*/
public class DialogFieldFactory
{
@@ -35,14 +37,21 @@
*/
public static DialogField getDialogField(AttributeData data)
{
- IAttributeDescriptor descriptor = getAttributeDescriptor(data.getUri(), data.getElementName(), data.getAttributeName());
- if(descriptor != null)
+ Object project = data.getParamMap().get(AttributeData.Project);
+ Entity attrEntity = null;
+ if (project != null && project instanceof IProject){
+ attrEntity = TaglibDomainMetaDataQueryHelper.getEntity(TaglibDomainMetaDataQueryHelper.createMetaDataModelContext((IProject)project, data.getUri()), data.getElementName()+"/"+data.getAttributeName());
+ }
+// IAttributeDescriptor descriptor = getAttributeDescriptor(data.getUri(), data.getElementName(), data.getAttributeName());
+ if(attrEntity != null)
{
- String type = descriptor.getValueType();
- if (IValueType.CLASSNAME.equalsIgnoreCase(type))
+ Trait t = TaglibDomainMetaDataQueryHelper.getTrait(attrEntity, MetaDataEnabledProcessingFactory.ATTRIBUTE_VALUE_RUNTIME_TYPE_PROP_NAME);
+ String type = TraitValueHelper.getValueAsString(t);
+ if (IAttributeRuntimeValueType.JAVACLASS.equals(type))
+ //if (OLDIValueType.CLASSNAME.equalsIgnoreCase(type))
{
ClassButtonDialogField field = new ClassButtonDialogField(null);
- Object project = data.getParamMap().get(AttributeData.Project);
+// Object project = data.getParamMap().get(AttributeData.Project);
if (project instanceof IProject)
{
field.setProject((IProject) project);
@@ -54,20 +63,22 @@
}
return new StringDialogField();
}
-
- private static IAttributeDescriptor getAttributeDescriptor(String uri, String elementName, String attributeName)
- {
- ICMRegistry registry = CMRegistry.getInstance();
- IElementDescriptor elementDescriptor = registry.getElementDescriptor(uri, elementName);
- return elementDescriptor.getAttributeDescriptor(attributeName);
- }
-
+
+
+// private static IAttributeDescriptor getAttributeDescriptor(String uri, String elementName, String attributeName)
+// {
+// ICMRegistry registry = CMRegistry.getInstance();
+// IElementDescriptor elementDescriptor = registry.getElementDescriptor(uri, elementName);
+// return elementDescriptor.getAttributeDescriptor(attributeName);
+// }
+
+
/**
+ * Sets the initial value of dialog field
* @param field
* @param value
*/
- public static void setDialogFiledValue(DialogField field, Object value)
- {
+ public static void setDialogFieldValue(DialogField field, Object value){
if (field instanceof StringDialogField)
{
((StringDialogField) field).setTextWithoutUpdate(value == null ? "" : value.toString());//$NON-NLS-1$
@@ -84,12 +95,23 @@
}
}
}
+
+ /**
+ * @param field
+ * @param value
+ * @deprecated - use setDialogField method
+ */
+ public static void setDialogFiledValue(DialogField field, Object value)
+ {
+ setDialogFieldValue(field, value);
+ }
/**
+ * Sets value of field into AttributeData if it was a StringDialogField
* @param field
* @param pair
*/
- public static void prepareDialogFiledValue(DialogField field, AttributeData pair)
+ public static void prepareDialogFieldValue(DialogField field, AttributeData pair)
{
if (field instanceof StringDialogField)
{
@@ -98,6 +120,15 @@
}
/**
+ * @param field
+ * @param pair
+ * @deprecated - use prepareDialogFieldValue
+ */
+ public static void prepareDialogFiledValue(DialogField field, AttributeData pair)
+ {
+ prepareDialogFieldValue(field, pair);
+ }
+ /**
* @param data
* @return the dialog field label for data
*/
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreActionListenerSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreActionListenerSection.java
index 0995808..f70e472 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreActionListenerSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreActionListenerSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFCoreActionListenerSection extends AttributeGroupSection
+public class JSFCoreActionListenerSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreAttributeSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreAttributeSection.java
index 2767db4..7a616d8 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreAttributeSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreAttributeSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFCoreAttributeSection extends AttributeGroupSection
+public class JSFCoreAttributeSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreConvertDateTimeGroup.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreConvertDateTimeGroup.java
index 891975f..2a2a389 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreConvertDateTimeGroup.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreConvertDateTimeGroup.java
@@ -20,9 +20,9 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
import org.eclipse.jst.pagedesigner.commands.single.ChangeAttributeCommand;
+import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
import org.eclipse.jst.pagedesigner.meta.EditorCreator;
-import org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroup;
+import org.eclipse.jst.pagedesigner.properties.internal.QuickEditAttributeGroup;
import org.eclipse.jst.pagedesigner.ui.dialogfields.DialogFieldWrapper;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
@@ -32,7 +32,7 @@
* @author mengbo
* @version 1.5
*/
-public class JSFCoreConvertDateTimeGroup extends AttributeGroup
+public class JSFCoreConvertDateTimeGroup extends QuickEditAttributeGroup//AttributeGroup
{
private StyleComboDialogField _typeField;
private StyleComboDialogField _dateStyleField;
@@ -65,48 +65,47 @@
IJSFConstants.ATTR_DATESTYLE, IJSFConstants.ATTR_TIMESTYLE, IJSFConstants.ATTR_PATTERN});
}
- protected DialogField createDialogField(String uri, String tag, IAttributeDescriptor attr)
- {
- EditorCreator creator = EditorCreator.getInstance();
- if (attr.getAttributeName().equals(IJSFConstants.ATTR_TYPE))
+ protected DialogField createDialogField(IPropertyPageDescriptor ppd) {
+ EditorCreator creator = EditorCreator.getInstance();
+ if (ppd.getAttributeName().equals(IJSFConstants.ATTR_TYPE))
{
DialogFieldWrapper wrapper = (DialogFieldWrapper) creator
- .createDialogFieldWithWrapper(uri, tag, attr, null);
+ .createDialogFieldWithWrapper(getURI(), getTagName(), ppd, null);
_typeField = (StyleComboDialogField) wrapper.getWrappedDialogField();
return wrapper;
}
- else if (attr.getAttributeName().equals(IJSFConstants.ATTR_DATESTYLE))
+ else if (ppd.getAttributeName().equals(IJSFConstants.ATTR_DATESTYLE))
{
DialogFieldWrapper wrapper = (DialogFieldWrapper) creator
- .createDialogFieldWithWrapper(uri, tag, attr, null);
+ .createDialogFieldWithWrapper(getURI(), getTagName(), ppd, null);
_dateStyleField = (StyleComboDialogField) wrapper.getWrappedDialogField();
_dateStyleField.setItems(DATESTYLES);
return wrapper;
}
- else if (attr.getAttributeName().equals(IJSFConstants.ATTR_TIMESTYLE))
+ else if (ppd.getAttributeName().equals(IJSFConstants.ATTR_TIMESTYLE))
{
DialogFieldWrapper wrapper = (DialogFieldWrapper) creator
- .createDialogFieldWithWrapper(uri, tag, attr, null);
+ .createDialogFieldWithWrapper(getURI(), getTagName(), ppd, null);
_timeStyleField = (StyleComboDialogField) wrapper.getWrappedDialogField();
_timeStyleField.setItems(TIMESTYLES);
return wrapper;
}
- else if (attr.getAttributeName().equals(IJSFConstants.ATTR_PATTERN))
+ else if (ppd.getAttributeName().equals(IJSFConstants.ATTR_PATTERN))
{
DialogFieldWrapper wrapper = (DialogFieldWrapper) creator
- .createDialogFieldWithWrapper(uri, tag, attr, null);
+ .createDialogFieldWithWrapper(getURI(), getTagName(), ppd, null);
_patternField = (StyleComboDialogField) wrapper.getWrappedDialogField();
return wrapper;
}
else
{
return null;
- }
+ }
}
-
- public IDialogFieldApplyListener getDialogFieldApplyListener(String uri, String tag, IAttributeDescriptor attr)
+
+ protected IDialogFieldApplyListener getDialogFieldApplyListener(IPropertyPageDescriptor ppd)
{
- String attribute = attr.getAttributeName();
+ String attribute = ppd.getAttributeName();
if (attribute.equals(IJSFConstants.ATTR_TYPE) || attribute.equals(IJSFConstants.ATTR_DATESTYLE)
|| attribute.equals(IJSFConstants.ATTR_TIMESTYLE))
{
@@ -162,7 +161,8 @@
_timeStyleField.setTextWithoutUpdate(timeStyle);
}
- String pattern = element.getAttribute(IJSFConstants.ATTR_PATTERN);
+ updatePatternItems();
+ String pattern = element.getAttribute(IJSFConstants.ATTR_PATTERN);
_patternField.setTextWithoutUpdate(pattern);
updateFieldStatus();
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreConvertNumberGroup.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreConvertNumberGroup.java
index 760847b..eb83cb3 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreConvertNumberGroup.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreConvertNumberGroup.java
@@ -14,7 +14,6 @@
import java.util.HashMap;
import java.util.Map;
-import org.eclipse.jst.jsf.common.ui.internal.dialogfield.ComboDialogField;
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField;
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.IDialogFieldApplyListener;
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.StringDialogField;
@@ -22,20 +21,20 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
import org.eclipse.jst.pagedesigner.commands.single.ChangeAttributeCommand;
+import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
import org.eclipse.jst.pagedesigner.meta.EditorCreator;
-import org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroup;
+import org.eclipse.jst.pagedesigner.properties.internal.QuickEditAttributeGroup;
import org.eclipse.jst.pagedesigner.ui.dialogfields.DialogFieldWrapper;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
/**
* @author mengbo
*/
-public class JSFCoreConvertNumberGroup extends AttributeGroup
+public class JSFCoreConvertNumberGroup extends QuickEditAttributeGroup
{
private StyleComboDialogField _typeField;
private StyleComboDialogField _patternField;
- private ComboDialogField _currencyCodeField;
+ private StyleComboDialogField _currencyCodeField;
private StringDialogField _currencySymbolField;
final private static String[] TYPES = { "number", "currency", "percentage", "custom" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
@@ -50,35 +49,35 @@
IJSFConstants.ATTR_CURRENCYCODE, IJSFConstants.ATTR_CURRENCYSYMBOL, IJSFConstants.ATTR_PATTERN});
}
- protected DialogField createDialogField(String uri, String tag, IAttributeDescriptor attr)
+ protected DialogField createDialogField(IPropertyPageDescriptor ppd)
{
- EditorCreator creator = EditorCreator.getInstance();
- if (attr.getAttributeName().equals(IJSFConstants.ATTR_TYPE))
+ EditorCreator creator = EditorCreator.getInstance();
+ if (ppd.getAttributeName().equals(IJSFConstants.ATTR_TYPE))
{
DialogFieldWrapper wrapper = (DialogFieldWrapper) creator
- .createDialogFieldWithWrapper(uri, tag, attr, null);
+ .createDialogFieldWithWrapper(getURI(), getTagName(), ppd, null);
_typeField = (StyleComboDialogField) wrapper.getWrappedDialogField();
_typeField.setItems(TYPES);
return wrapper;
}
- else if (attr.getAttributeName().equals(IJSFConstants.ATTR_CURRENCYCODE))
+ else if (ppd.getAttributeName().equals(IJSFConstants.ATTR_CURRENCYCODE))
{
DialogFieldWrapper wrapper = (DialogFieldWrapper) creator
- .createDialogFieldWithWrapper(uri, tag, attr, null);
- _currencyCodeField = (ComboDialogField) wrapper.getWrappedDialogField();
+ .createDialogFieldWithWrapper(getURI(), getTagName(), ppd, null);
+ _currencyCodeField = (StyleComboDialogField) wrapper.getWrappedDialogField();
return wrapper;
}
- else if (attr.getAttributeName().equals(IJSFConstants.ATTR_CURRENCYSYMBOL))
+ else if (ppd.getAttributeName().equals(IJSFConstants.ATTR_CURRENCYSYMBOL))
{
DialogFieldWrapper wrapper = (DialogFieldWrapper) creator
- .createDialogFieldWithWrapper(uri, tag, attr, null);
+ .createDialogFieldWithWrapper(getURI(), getTagName(), ppd, null);
_currencySymbolField = (StringDialogField) wrapper.getWrappedDialogField();
return wrapper;
}
- else if (attr.getAttributeName().equals(IJSFConstants.ATTR_PATTERN))
+ else if (ppd.getAttributeName().equals(IJSFConstants.ATTR_PATTERN))
{
DialogFieldWrapper wrapper = (DialogFieldWrapper) creator
- .createDialogFieldWithWrapper(uri, tag, attr, null);
+ .createDialogFieldWithWrapper(getURI(), getTagName(), ppd, null);
_patternField = (StyleComboDialogField) wrapper.getWrappedDialogField();
return wrapper;
}
@@ -88,9 +87,9 @@
}
}
- public IDialogFieldApplyListener getDialogFieldApplyListener(String uri, String tag, IAttributeDescriptor attr)
+ public IDialogFieldApplyListener getDialogFieldApplyListener(IPropertyPageDescriptor ppd)
{
- String attribute = attr.getAttributeName();
+ String attribute = ppd.getAttributeName();
if (attribute.equals(IJSFConstants.ATTR_CURRENCYCODE) || attribute.equals(IJSFConstants.ATTR_CURRENCYSYMBOL)
|| attribute.equals(IJSFConstants.ATTR_PATTERN))
{
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreConverterSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreConverterSection.java
index d4eac78..9cb32c8 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreConverterSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreConverterSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFCoreConverterSection extends AttributeGroupSection
+public class JSFCoreConverterSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreFacetSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreFacetSection.java
index cb840d1..b09c509 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreFacetSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreFacetSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFCoreFacetSection extends AttributeGroupSection
+public class JSFCoreFacetSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreLoadBundleSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreLoadBundleSection.java
index 769060c..9989861 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreLoadBundleSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreLoadBundleSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFCoreLoadBundleSection extends AttributeGroupSection
+public class JSFCoreLoadBundleSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreParamSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreParamSection.java
index 5794d92..d0b03c5 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreParamSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreParamSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFCoreParamSection extends AttributeGroupSection
+public class JSFCoreParamSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreSelectItemSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreSelectItemSection.java
index e5801c9..0e4fa4a 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreSelectItemSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreSelectItemSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFCoreSelectItemSection extends AttributeGroupSection
+public class JSFCoreSelectItemSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreSelectItemsSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreSelectItemsSection.java
index a2390c2..ee2ae9e 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreSelectItemsSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreSelectItemsSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ *
*/
-public class JSFCoreSelectItemsSection extends AttributeGroupSection
+public class JSFCoreSelectItemsSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreSubviewSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreSubviewSection.java
index af1880e..97bc6fc 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreSubviewSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreSubviewSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFCoreSubviewSection extends AttributeGroupSection
+public class JSFCoreSubviewSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValidateDoubleRangeSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValidateDoubleRangeSection.java
index 747a343..1573a9b 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValidateDoubleRangeSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValidateDoubleRangeSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFCoreValidateDoubleRangeSection extends AttributeGroupSection
+public class JSFCoreValidateDoubleRangeSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValidateLengthSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValidateLengthSection.java
index 6c60c9d..bec7d74 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValidateLengthSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValidateLengthSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFCoreValidateLengthSection extends AttributeGroupSection
+public class JSFCoreValidateLengthSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValidateLongRangeSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValidateLongRangeSection.java
index 7933d9c..10feb1c 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValidateLongRangeSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValidateLongRangeSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFCoreValidateLongRangeSection extends AttributeGroupSection
+public class JSFCoreValidateLongRangeSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValidatorSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValidatorSection.java
index aa9d9bf..c2c0897 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValidatorSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValidatorSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFCoreValidatorSection extends AttributeGroupSection
+public class JSFCoreValidatorSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValueChangeListenerSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValueChangeListenerSection.java
index 0db0344..28ca25a 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValueChangeListenerSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreValueChangeListenerSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFCoreValueChangeListenerSection extends AttributeGroupSection
+public class JSFCoreValueChangeListenerSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreVerbatimSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreVerbatimSection.java
index ec0eea5..7775e6e 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreVerbatimSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreVerbatimSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFCoreVerbatimSection extends AttributeGroupSection
+public class JSFCoreVerbatimSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreViewSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreViewSection.java
index d08a2f7..1be5f66 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreViewSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFCoreViewSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFCoreViewSection extends AttributeGroupSection
+public class JSFCoreViewSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlActionListenerSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlActionListenerSection.java
index 17b8281..3e3626c 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlActionListenerSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlActionListenerSection.java
@@ -45,8 +45,8 @@
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
import org.w3c.dom.Node;
@@ -66,7 +66,7 @@
private CCombo _listenTypeCombo;
private Button _listenAddButton, _listenRemoveButton;
- private class ListenerCotentLabelProvider implements IStructuredContentProvider, ITableLabelProvider
+ private class ListenerContentLabelProvider implements IStructuredContentProvider, ITableLabelProvider
{
/* (non-Javadoc)
@@ -111,10 +111,10 @@
public String getColumnText(Object element, int columnIndex)
{
String result = null;
- if (element instanceof IDOMElement)
+ if (element instanceof Node)
{
- IDOMElement node = (IDOMElement) element;
- String nodeName = node.getNodeName();
+ Node node = (Node) element;
+ String nodeName = getTableNodeName(node, "type");
switch (columnIndex)
{
case 0:
@@ -131,7 +131,17 @@
* @see org.eclipse.jface.viewers.IContentProvider#dispose()
*/
- public void dispose()
+ private String getTableNodeName(Node node, String ... attrNames) {
+ for (String attrName : attrNames) {
+ Node attr = node.getAttributes().getNamedItem(attrName);
+ if (attr != null && attr.getNodeValue()!= null &&
+ ! attr.getNodeValue().trim().equals(""))
+ return attr.getNodeValue().trim();
+ }
+ return node.getNodeName();
+ }
+
+ public void dispose()
{
// nothing to dispose
}
@@ -169,7 +179,7 @@
}
}
- /**
+ /**
* Default constructor
*/
public JSFHtmlActionListenerSection()
@@ -209,11 +219,11 @@
TableColumn listenColumn = new TableColumn(_listenersTable, SWT.NONE);
listenColumn.setText(SectionResources.getString("JSFHtmlCommandButtonSection.Listeners")); //$NON-NLS-1$
- listenColumn.setWidth(100);
+ listenColumn.setWidth(500);
_listenersViewer = new TableViewer(_listenersTable);
- _listenersViewer.setContentProvider(new ListenerCotentLabelProvider());
- _listenersViewer.setLabelProvider(new ListenerCotentLabelProvider());
+ _listenersViewer.setContentProvider(new ListenerContentLabelProvider());
+ _listenersViewer.setLabelProvider(new ListenerContentLabelProvider());
_listenersViewer.addDoubleClickListener(new IDoubleClickListener()
{
public void doubleClick(DoubleClickEvent event)
@@ -301,7 +311,8 @@
{
super.setInput(part, selection);
_element = (IDOMElement) DesignerPropertyTool.getElement(part, selection);
- _listenersViewer.setInput(_element);
+ if (_listenersViewer != null)
+ _listenersViewer.setInput(_element);
}
protected void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos)
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlColumnSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlColumnSection.java
index 6791f46..95ddc5b 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlColumnSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlColumnSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlColumnSection extends AttributeGroupSection
+public class JSFHtmlColumnSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlCommandButtonSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlCommandButtonSection.java
index 9abaf11..09187bd 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlCommandButtonSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlCommandButtonSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlCommandButtonSection extends AttributeGroupSection
+public class JSFHtmlCommandButtonSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlCommandLinkSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlCommandLinkSection.java
index 320c4bf..867c929 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlCommandLinkSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlCommandLinkSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlCommandLinkSection extends AttributeGroupSection
+public class JSFHtmlCommandLinkSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlDataTableColumnsSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlDataTableColumnsSection.java
index 1aad0e6..92bd788 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlDataTableColumnsSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlDataTableColumnsSection.java
@@ -45,8 +45,8 @@
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
import org.w3c.dom.Node;
@@ -334,7 +334,7 @@
}
);
}
-
+
/**
* Update the button status
*/
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlDataTableSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlDataTableSection.java
index 89bbeb3..1156666 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlDataTableSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlDataTableSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlDataTableSection extends AttributeGroupSection
+public class JSFHtmlDataTableSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlFormSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlFormSection.java
index 1fe391d..f8e69b0 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlFormSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlFormSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlFormSection extends AttributeGroupSection
+public class JSFHtmlFormSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlGraphicImageSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlGraphicImageSection.java
index 3475f7b..0a3c4b1 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlGraphicImageSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlGraphicImageSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlGraphicImageSection extends AttributeGroupSection
+public class JSFHtmlGraphicImageSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputHiddenSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputHiddenSection.java
index 04c47b2..e7d273a 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputHiddenSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputHiddenSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlInputHiddenSection extends AttributeGroupSection
+public class JSFHtmlInputHiddenSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputHiddenTypeSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputHiddenTypeSection.java
index e5bba5f..77c1be1 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputHiddenTypeSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputHiddenTypeSection.java
@@ -25,8 +25,8 @@
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
/**
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputOthersSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputOthersSection.java
index 55a7efa..2da1a53 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputOthersSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputOthersSection.java
@@ -51,8 +51,8 @@
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
import org.w3c.dom.Node;
@@ -80,7 +80,7 @@
final private static String[] VALIDATORS_COLUMN_NAMES = { IJSFConstants.TAG_VALIDATOR, IJSFConstants.ATTR_MINIMUM,
IJSFConstants.ATTR_MAXIMUM };
- private class ValidateCotentLabelProvider implements IStructuredContentProvider, ITableLabelProvider
+ private class ValidateContentLabelProvider implements IStructuredContentProvider, ITableLabelProvider
{
/* (non-Javadoc)
@@ -259,12 +259,13 @@
default:
break;
}
- _validatorsViewer.setInput(_element);
+ _validatorsViewer.refresh();
+// _validatorsViewer.setInput(_element);
updateValidateButtonStatus();
}
}
- private class ConvertCotentLabelProvider implements IStructuredContentProvider, ITableLabelProvider
+ private class ConvertContentLabelProvider implements IStructuredContentProvider, ITableLabelProvider
{
/* (non-Javadoc)
@@ -367,7 +368,7 @@
}
}
- private class ListenerCotentLabelProvider implements IStructuredContentProvider, ITableLabelProvider
+ private class ListenerContentLabelProvider implements IStructuredContentProvider, ITableLabelProvider
{
/* (non-Javadoc)
@@ -513,11 +514,11 @@
TableColumn convertColumn = new TableColumn(_convertorsTable, SWT.NONE);
convertColumn.setText(SectionResources.getString("JSFHtmlInputTextSection.Converter")); //$NON-NLS-1$
- convertColumn.setWidth(100);
+ convertColumn.setWidth(150);
_convertorsViewer = new TableViewer(_convertorsTable);
- _convertorsViewer.setContentProvider(new ConvertCotentLabelProvider());
- _convertorsViewer.setLabelProvider(new ConvertCotentLabelProvider());
+ _convertorsViewer.setContentProvider(new ConvertContentLabelProvider());
+ _convertorsViewer.setLabelProvider(new ConvertContentLabelProvider());
_convertorsViewer.addDoubleClickListener(new IDoubleClickListener()
{
public void doubleClick(DoubleClickEvent event)
@@ -604,11 +605,11 @@
TableColumn listenColumn = new TableColumn(_listenersTable, SWT.NONE);
listenColumn.setText(SectionResources.getString("JSFHtmlInputTextSection.Listeners")); //$NON-NLS-1$
- listenColumn.setWidth(100);
+ listenColumn.setWidth(150);
_listenersViewer = new TableViewer(_listenersTable);
- _listenersViewer.setContentProvider(new ListenerCotentLabelProvider());
- _listenersViewer.setLabelProvider(new ListenerCotentLabelProvider());
+ _listenersViewer.setContentProvider(new ListenerContentLabelProvider());
+ _listenersViewer.setLabelProvider(new ListenerContentLabelProvider());
_listenersViewer.addDoubleClickListener(new IDoubleClickListener()
{
public void doubleClick(DoubleClickEvent event)
@@ -696,15 +697,15 @@
TableColumn validateColumn = new TableColumn(_validatorsTable, SWT.NONE);
validateColumn.setText(SectionResources.getString("JSFHtmlInputTextSection.Validators")); //$NON-NLS-1$
- validateColumn.setWidth(50);
+ validateColumn.setWidth(150);
TableColumn minColumn = new TableColumn(_validatorsTable, SWT.NONE);
minColumn.setText(SectionResources.getString("JSFHtmlInputTextSection.Minimum")); //$NON-NLS-1$
- minColumn.setWidth(50);
+ minColumn.setWidth(100);
TableColumn maxColumn = new TableColumn(_validatorsTable, SWT.NONE);
maxColumn.setText(SectionResources.getString("JSFHtmlInputTextSection.Maximum")); //$NON-NLS-1$
- maxColumn.setWidth(50);
+ maxColumn.setWidth(100);
_validatorsViewer = new TableViewer(_validatorsTable);
_validatorsViewer.setColumnProperties(VALIDATORS_COLUMN_NAMES);
@@ -719,8 +720,8 @@
_validatorsViewer.setCellEditors(editors);
_validatorsViewer.setCellModifier(new ValidateCellModifier());
- _validatorsViewer.setContentProvider(new ValidateCotentLabelProvider());
- _validatorsViewer.setLabelProvider(new ValidateCotentLabelProvider());
+ _validatorsViewer.setContentProvider(new ValidateContentLabelProvider());
+ _validatorsViewer.setLabelProvider(new ValidateContentLabelProvider());
_validatorsViewer.addDoubleClickListener(new IDoubleClickListener()
{
public void doubleClick(DoubleClickEvent event)
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputSecretSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputSecretSection.java
index 7f7b212..9eb191e 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputSecretSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputSecretSection.java
@@ -13,12 +13,12 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
*/
-public class JSFHtmlInputSecretSection extends AttributeGroupSection
+public class JSFHtmlInputSecretSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputSecretTypeSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputSecretTypeSection.java
index e1eda9f..76b49ea 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputSecretTypeSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputSecretTypeSection.java
@@ -25,8 +25,8 @@
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
/**
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputTextSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputTextSection.java
index 2360ee2..3307655 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputTextSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputTextSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlInputTextSection extends AttributeGroupSection
+public class JSFHtmlInputTextSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputTextTypeSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputTextTypeSection.java
index d757e07..26befdf 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputTextTypeSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputTextTypeSection.java
@@ -25,8 +25,8 @@
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
/**
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputTextareaSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputTextareaSection.java
index bb4f5c9..ed104b6 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputTextareaSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputTextareaSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlInputTextareaSection extends AttributeGroupSection
+public class JSFHtmlInputTextareaSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputTextareaTypeSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputTextareaTypeSection.java
index dab7f97..8c70c1a 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputTextareaTypeSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlInputTextareaTypeSection.java
@@ -25,8 +25,8 @@
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
/**
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlMessageSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlMessageSection.java
index 8476673..bcc6b7b 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlMessageSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlMessageSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlMessageSection extends AttributeGroupSection
+public class JSFHtmlMessageSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlMessagesSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlMessagesSection.java
index 14cdabc..a45f690 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlMessagesSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlMessagesSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlMessagesSection extends AttributeGroupSection
+public class JSFHtmlMessagesSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputFormatParamsSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputFormatParamsSection.java
index ec1ad7c..1d307cf 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputFormatParamsSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputFormatParamsSection.java
@@ -51,8 +51,8 @@
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
import org.w3c.dom.Node;
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputFormatSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputFormatSection.java
index 5011d60..3320612 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputFormatSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputFormatSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlOutputFormatSection extends AttributeGroupSection
+public class JSFHtmlOutputFormatSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputLabelSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputLabelSection.java
index 17fb072..9a48e10 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputLabelSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputLabelSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlOutputLabelSection extends AttributeGroupSection
+public class JSFHtmlOutputLabelSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputLinkSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputLinkSection.java
index 338b7ad..6114101 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputLinkSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputLinkSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlOutputLinkSection extends AttributeGroupSection
+public class JSFHtmlOutputLinkSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputTextConverterSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputTextConverterSection.java
index 9a6a0fc..718dddc 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputTextConverterSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputTextConverterSection.java
@@ -44,8 +44,8 @@
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
import org.w3c.dom.Node;
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputTextSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputTextSection.java
index e46317c..5212234 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputTextSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlOutputTextSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlOutputTextSection extends AttributeGroupSection
+public class JSFHtmlOutputTextSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlPanelGridSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlPanelGridSection.java
index 1c92da3..2f493d6 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlPanelGridSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlPanelGridSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlPanelGridSection extends AttributeGroupSection
+public class JSFHtmlPanelGridSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlPanelGroupSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlPanelGroupSection.java
index a997931..71b29f4 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlPanelGroupSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlPanelGroupSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlPanelGroupSection extends AttributeGroupSection
+public class JSFHtmlPanelGroupSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectBooleanCheckboxSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectBooleanCheckboxSection.java
index 28c358d..e59c49d 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectBooleanCheckboxSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectBooleanCheckboxSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlSelectBooleanCheckboxSection extends AttributeGroupSection
+public class JSFHtmlSelectBooleanCheckboxSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectChoicesSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectChoicesSection.java
index a2940c8..0ec2a67 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectChoicesSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectChoicesSection.java
@@ -46,8 +46,8 @@
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
import org.w3c.dom.Node;
@@ -110,58 +110,54 @@
public String getColumnText(Object element, int columnIndex)
{
String result = null;
- if (element instanceof IDOMElement)
- {
- IDOMElement node = (IDOMElement) element;
- String nodeName = node.getNodeName();
+ if (element instanceof Node)
+ {
+ Node node = (Node) element;
+ Node attrNode = null;
+ String attrName = null;
+ if (columnIndex == 1)
+ attrName = "itemLabel";
+ else if (columnIndex == 2)
+ attrName = "itemValue";
+ else if (columnIndex == 3)
+ attrName = "id";
+
switch (columnIndex)
{
case 0:
- result = nodeName;
+ result = node.getNodeName();
break;
default:
- break;
- }
+ attrNode = node.getAttributes().getNamedItem(attrName);
+ if (attrNode != null)
+ result = attrNode.getNodeValue()!=null ? attrNode.getNodeValue() : " - ";
+ else
+ result = " - ";
+ }
}
return result != null ? result : ""; //$NON-NLS-1$
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.IContentProvider#dispose()
- */
-
public void dispose()
{
// do nothing
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
- */
public Image getColumnImage(Object element, int columnIndex)
{
return null;
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
- */
public void addListener(ILabelProviderListener listener)
{
// TODO: no support for listeners?
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
- */
public boolean isLabelProperty(Object element, String property)
{
return false;
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
- */
public void removeListener(ILabelProviderListener listener)
{
// TODO: no support for listeners?
@@ -208,6 +204,18 @@
TableColumn choiceColumn = new TableColumn(_choiceTable, SWT.NONE);
choiceColumn.setText(SectionResources.getString("JSFHtmlSelectManyCheckboxSection.Choices")); //$NON-NLS-1$
choiceColumn.setWidth(100);
+
+ TableColumn labelColumn = new TableColumn(_choiceTable, SWT.NONE);
+ labelColumn.setText("itemLabel");
+ labelColumn.setWidth(100);
+
+ TableColumn valueColumn = new TableColumn(_choiceTable, SWT.NONE);
+ valueColumn.setText("itemValue");
+ valueColumn.setWidth(100);
+
+ TableColumn idColumn = new TableColumn(_choiceTable, SWT.NONE);
+ idColumn.setText("id");
+ idColumn.setWidth(100);
_choiceViewer = new TableViewer(_choiceTable);
_choiceViewer.setContentProvider(new ChoiceCotentLabelProvider());
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectManyCheckboxSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectManyCheckboxSection.java
index add7c7e..a9891b2 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectManyCheckboxSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectManyCheckboxSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlSelectManyCheckboxSection extends AttributeGroupSection
+public class JSFHtmlSelectManyCheckboxSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectManyListboxSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectManyListboxSection.java
index 8ab6d1c..e173080 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectManyListboxSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectManyListboxSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlSelectManyListboxSection extends AttributeGroupSection
+public class JSFHtmlSelectManyListboxSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectManyMenuSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectManyMenuSection.java
index be99523..15fa17b 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectManyMenuSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectManyMenuSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlSelectManyMenuSection extends AttributeGroupSection
+public class JSFHtmlSelectManyMenuSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectOneListboxSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectOneListboxSection.java
index 47ae386..c8b9c4a 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectOneListboxSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectOneListboxSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlSelectOneListboxSection extends AttributeGroupSection
+public class JSFHtmlSelectOneListboxSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectOneMenuSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectOneMenuSection.java
index 1d4965e..0c2c911 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectOneMenuSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectOneMenuSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlSelectOneMenuSection extends AttributeGroupSection
+public class JSFHtmlSelectOneMenuSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectOneRadioSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectOneRadioSection.java
index d6b8362..02b7ea3 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectOneRadioSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsf.ui/src/org/eclipse/jst/pagedesigner/jsf/ui/sections/JSFHtmlSelectOneRadioSection.java
@@ -13,12 +13,13 @@
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.OLDAttributeGroupSection;
/**
* @author mengbo
+ * @deprecated
*/
-public class JSFHtmlSelectOneRadioSection extends AttributeGroupSection
+public class JSFHtmlSelectOneRadioSection extends OLDAttributeGroupSection
{
/**
* The default constructor
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsp.core/metadata/jsp11.xml b/jsf/plugins/org.eclipse.jst.pagedesigner.jsp.core/metadata/jsp11.xml
index 1cd7345..f39c7c9 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsp.core/metadata/jsp11.xml
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsp.core/metadata/jsp11.xml
@@ -2,29 +2,30 @@
<md:metadatamodel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
xmlns:md="http://org.eclipse.jst.jsf.common.metadata/metadata.ecore"
+ xmlns:mdt="http://org.eclipse.jst.jsf.common.metadata/metadataTraitTypes.ecore"
xmlns:pi="http://org.eclipse.jsf.pagedesigner/paletteInfos.ecore"
id="jsp11"
type="tagFile">
<trait id="paletteInfos">
<value xsi:type="pi:PaletteInfos">
- <item id="jsp:directive.include"/>
- <item id="jsp:directive.taglib"/>
- <item id="jsp:expression"/>
- <item id="jsp:declaration"/>
- <item id="jsp:useBean"/>
- <item id="jsp:getProperty"/>
- <item id="jsp:setProperty"/>
- <item id="jsp:include"/>
- <item id="jsp:text"/>
- <item id="jsp:root"/>
- <item id="jsp:forward"/>
- <item id="jsp:param"/>
- <item id="jsp:params"/>
- <item id="jsp:plugin"/>
- <item id="jsp:fallback"/>
- <item id="jsp:scriptlet"/>
- <item id="jsp:directive.page"/>
+ <item id="directive.include"/>
+ <item id="directive.taglib"/>
+ <item id="expression"/>
+ <item id="declaration"/>
+ <item id="useBean"/>
+ <item id="getProperty"/>
+ <item id="setProperty"/>
+ <item id="include"/>
+ <item id="text"/>
+ <item id="root"/>
+ <item id="forward"/>
+ <item id="param"/>
+ <item id="params"/>
+ <item id="plugin"/>
+ <item id="fallback"/>
+ <item id="scriptlet"/>
+ <item id="directive.page"/>
</value>
</trait>
@@ -36,7 +37,7 @@
<value>JSP</value>
</trait>
- <entity id="jsp:directive.include">
+ <entity id="directive.include">
<trait id="display-label">
<value>%directive.include.display-label</value>
</trait>
@@ -50,7 +51,7 @@
<value>large/JSP_DIRECTIVE.INCLUDE.gif</value>
</trait>
</entity>
- <entity id="jsp:directive.page">
+ <entity id="directive.page">
<trait id="display-label">
<value>%directive.page.display-label</value>
</trait>
@@ -65,7 +66,7 @@
</trait>
</entity>
- <entity id="jsp:directive.taglib">
+ <entity id="directive.taglib">
<trait id="display-label">
<value>%directive.taglib.display-label</value>
</trait>
@@ -79,7 +80,7 @@
<value>large/JSP_DIRECTIVE.TAGLIB.gif</value>
</trait>
</entity>
- <entity id="jsp:expression">
+ <entity id="expression">
<trait id="display-label">
<value>%expression.display-label</value>
</trait>
@@ -93,7 +94,7 @@
<value>large/JSP_EXPRESSION.gif</value>
</trait>
</entity>
- <entity id="jsp:declaration">
+ <entity id="declaration">
<trait id="display-label">
<value>%declaration.display-label</value>
</trait>
@@ -107,7 +108,7 @@
<value>large/JSP_DECLARATION.gif</value>
</trait>
</entity>
- <entity id="jsp:useBean">
+ <entity id="useBean">
<trait id="display-label">
<value>%useBean.display-label</value>
</trait>
@@ -122,7 +123,7 @@
</trait>
</entity>
- <entity id="jsp:getProperty">
+ <entity id="getProperty">
<trait id="display-label">
<value>%getProperty.display-label</value>
</trait>
@@ -137,7 +138,7 @@
</trait>
</entity>
- <entity id="jsp:setProperty">
+ <entity id="setProperty">
<trait id="display-label">
<value>%setProperty.display-label</value>
</trait>
@@ -151,7 +152,8 @@
<value>large/JSP_SETPROPERTY.gif</value>
</trait>
</entity>
- <entity id="jsp:include">
+ <entity id="include">
+ <include-entity-group id="page-attribute"/>
<trait id="display-label">
<value>%include.display-label</value>
</trait>
@@ -166,7 +168,7 @@
</trait>
</entity>
- <entity id="jsp:text">
+ <entity id="text">
<trait id="display-label">
<value>%text.display-label</value>
</trait>
@@ -180,7 +182,7 @@
<value>large/JSP_TEXT.gif</value>
</trait>
</entity>
- <entity id="jsp:root">
+ <entity id="root">
<trait id="display-label">
<value>%root.display-label</value>
</trait>
@@ -194,7 +196,8 @@
<value>large/JSP_ROOT.gif</value>
</trait>
</entity>
- <entity id="jsp:forward">
+ <entity id="forward">
+ <include-entity-group id="page-attribute"/>
<trait id="display-label">
<value>%forward.display-label</value>
</trait>
@@ -207,9 +210,8 @@
<trait id="large-icon">
<value>large/JSP_FORWARD.gif</value>
</trait>
- </entity>
-
- <entity id="jsp:param">
+ </entity>
+ <entity id="param">
<trait id="display-label">
<value>%param.display-label</value>
</trait>
@@ -223,7 +225,7 @@
<value>large/JSP_PARAM.gif</value>
</trait>
</entity>
- <entity id="jsp:params">
+ <entity id="params">
<trait id="display-label">
<value>%params.display-label</value>
</trait>
@@ -237,7 +239,7 @@
<value>large/JSP_PARAMS.gif</value>
</trait>
</entity>
- <entity id="jsp:plugin">
+ <entity id="plugin">
<trait id="display-label">
<value>%plugin.display-label</value>
</trait>
@@ -251,7 +253,7 @@
<value>large/JSP_PLUGIN.gif</value>
</trait>
</entity>
- <entity id="jsp:fallback">
+ <entity id="fallback">
<trait id="display-label">
<value>%fallback.display-label</value>
</trait>
@@ -265,7 +267,7 @@
<value>large/JSP_FALLBACK.gif</value>
</trait>
</entity>
- <entity id="jsp:scriptlet">
+ <entity id="scriptlet">
<trait id="display-label">
<value>%scriptlet.display-label</value>
</trait>
@@ -279,4 +281,19 @@
<value>large/JSP_SCRIPTLET.gif</value>
</trait>
</entity>
+ <entityGroup id="page-attribute">
+ <entity id="page">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.WebPathType</value>
+ </trait>
+ <trait id="file-extensions" >
+ <value xsi:type="mdt:ListOfValues">
+ <item>jsp</item>
+ <item>jspx</item>
+ <item>html</item>
+ <item>xhtml</item>
+ </value>
+ </trait>
+ </entity>
+ </entityGroup>
</md:metadatamodel>
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsp.core/src/org/eclipse/jst/pagedesigner/jsp/core/internal/metadata/JSPContentModelMetaDataTranslator.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsp.core/src/org/eclipse/jst/pagedesigner/jsp/core/internal/metadata/JSPContentModelMetaDataTranslator.java
index d3b9c8d..2db14e2 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsp.core/src/org/eclipse/jst/pagedesigner/jsp/core/internal/metadata/JSPContentModelMetaDataTranslator.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsp.core/src/org/eclipse/jst/pagedesigner/jsp/core/internal/metadata/JSPContentModelMetaDataTranslator.java
@@ -13,15 +13,24 @@
import org.eclipse.jst.jsf.common.metadata.internal.AbstractTagLibDomainContentModelMetaDataTranslator;
import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataModelMergeAssistant;
+import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataSourceModelProvider;
import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataTranslator;
import org.eclipse.wst.html.core.internal.contentmodel.JSPCMDocument;
import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
/**
* Translates the JSP CMDocument to standard metadata model entities and traits
*/
public class JSPContentModelMetaDataTranslator extends AbstractTagLibDomainContentModelMetaDataTranslator implements IMetaDataTranslator {
+ public boolean canTranslate(IMetaDataSourceModelProvider modelProvider) {
+ if (modelProvider.getSourceModel() != null &&
+ modelProvider.getSourceModel() instanceof JSPCMDocument)
+ return true;
+ return false;
+ }
+
public void translate(final IMetaDataModelMergeAssistant assistant) {
setAssistant(assistant);
CMDocument doc = getSourceModel();
@@ -37,11 +46,15 @@
return "JSP Tags";
}
- /* (non-Javadoc)
- * @see org.eclipse.jst.jsf.common.metadata.internal.AbstractTagLibDomainContentModelMetaDataTranslator#getURIDisplayLabel()
- */
+ @Override
protected String getURIDisplayLabel() {
return "JSP";
}
+ @Override
+ protected String getTagNodeName(CMElementDeclaration tag) {
+ //strip "jsp:"
+ return tag.getNodeName().substring(4);
+ }
+
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner.jsp.core/src/org/eclipse/jst/pagedesigner/jsp/core/internal/metadata/TaglibMetaDataTLDTranslator.java b/jsf/plugins/org.eclipse.jst.pagedesigner.jsp.core/src/org/eclipse/jst/pagedesigner/jsp/core/internal/metadata/TaglibMetaDataTLDTranslator.java
index a438b3e..5068d0a 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner.jsp.core/src/org/eclipse/jst/pagedesigner/jsp/core/internal/metadata/TaglibMetaDataTLDTranslator.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner.jsp.core/src/org/eclipse/jst/pagedesigner/jsp/core/internal/metadata/TaglibMetaDataTLDTranslator.java
@@ -13,9 +13,12 @@
import org.eclipse.jst.jsf.common.metadata.internal.AbstractTagLibDomainContentModelMetaDataTranslator;
import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataModelMergeAssistant;
+import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataSourceModelProvider;
import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataTranslator;
+import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDAttributeDeclaration;
import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDDocument;
import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDElementDeclaration;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
@@ -25,6 +28,13 @@
*/
public class TaglibMetaDataTLDTranslator extends AbstractTagLibDomainContentModelMetaDataTranslator implements IMetaDataTranslator {
+ public boolean canTranslate(IMetaDataSourceModelProvider modelProvider) {
+ if (modelProvider.getSourceModel() != null &&
+ modelProvider.getSourceModel() instanceof TLDDocument)
+ return true;
+ return false;
+ }
+
/* (non-Javadoc)
* @see org.eclipse.jst.jsf.common.metadata.internal.IMetaDataTranslator#translate(org.eclipse.jst.jsf.common.metadata.internal.IMetaDataModelMergeAssistant)
*/
@@ -109,4 +119,25 @@
return (TLDDocument)getSourceModel();
}
+ @Override
+ protected String getTagAttributeDescription(CMAttributeDeclaration cmAttr) {
+ String desc = ((TLDAttributeDeclaration)cmAttr).getDescription();
+ if (desc == null)
+ desc = super.getTagAttributeDescription(cmAttr);
+ return desc;
+ }
+
+ @Override
+ protected boolean getTagAttributeIsRequired(CMAttributeDeclaration cmAttr) {
+ // TODO Auto-generated method stub
+ return super.getTagAttributeIsRequired(cmAttr);
+ }
+
+ @Override
+ protected String getTagAttributeDefaultValue(CMAttributeDeclaration cmAttr) {
+ String val = ((TLDAttributeDeclaration)cmAttr).getAttrType().generateInstanceValue();
+ if (val == null)
+ val = super.getTagAttributeDefaultValue(cmAttr);
+ return val;
+ }
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/META-INF/MANIFEST.MF b/jsf/plugins/org.eclipse.jst.pagedesigner/META-INF/MANIFEST.MF
index 62ba1b1..1e879b8 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/META-INF/MANIFEST.MF
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/META-INF/MANIFEST.MF
@@ -19,7 +19,6 @@
org.eclipse.jst.jsp.ui;bundle-version="[1.1.0,1.3.0)",
org.eclipse.jst.j2ee.web;bundle-version="[1.1.0,1.2.0)",
org.eclipse.jst.pagedesigner.jsp.core;bundle-version="[1.0.0,1.1.0)",
- org.eclipse.wst.common.ui.properties;bundle-version="[1.0.101,1.2.0)",
org.eclipse.jst.jsf.common.ui;bundle-version="[1.0.0,1.1.0)",
org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)",
org.eclipse.jdt.ui;bundle-version="[3.2.0,4.0.0)",
@@ -34,7 +33,8 @@
org.eclipse.wst.sse.core;bundle-version="[1.1.0,1.2.0)",
javax.servlet;bundle-version="[2.4.0,3.0.0)",
org.apache.commons.el;bundle-version="[1.0.0,2.0.0)",
- javax.servlet.jsp;bundle-version="[2.0.0,3.0.0)"
+ javax.servlet.jsp;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.ui.views.properties.tabbed;bundle-version="[3.2.0,4.0.0)"
Eclipse-LazyStart: true
Bundle-ManifestVersion: 2
Export-Package: org.eclipse.jst.pagedesigner;x-internal:=true,
@@ -88,6 +88,11 @@
org.eclipse.jst.pagedesigner.editors.palette.paletteinfos;x-friends:="org.eclipse.jst.jsf.metadata.tests",
org.eclipse.jst.pagedesigner.editors.palette.paletteinfos.internal.impl;x-internal:=true,
org.eclipse.jst.pagedesigner.editors.palette.paletteinfos.internal.util;x-internal:=true,
+ org.eclipse.jst.pagedesigner.editors.properties,
+ org.eclipse.jst.pagedesigner.editors.properties.internal;x-internal:=true,
+ org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections,
+ org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl;x-internal:=true,
+ org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.util;x-internal:=true,
org.eclipse.jst.pagedesigner.editpolicies;x-internal:=true,
org.eclipse.jst.pagedesigner.elementedit;x-internal:=true,
org.eclipse.jst.pagedesigner.elementedit.html;x-internal:=true,
@@ -95,9 +100,9 @@
org.eclipse.jst.pagedesigner.extensionpoint;x-internal:=true,
org.eclipse.jst.pagedesigner.figurehandler;x-internal:=true,
org.eclipse.jst.pagedesigner.itemcreation;x-internal:=true,
- org.eclipse.jst.pagedesigner.itemcreation.internal;x-internal:=true,
org.eclipse.jst.pagedesigner.itemcreation.command;x-internal:=true,
org.eclipse.jst.pagedesigner.itemcreation.customizer;x-internal:=true,
+ org.eclipse.jst.pagedesigner.itemcreation.internal;x-internal:=true,
org.eclipse.jst.pagedesigner.meta;x-internal:=true,
org.eclipse.jst.pagedesigner.meta.internal;x-internal:=true,
org.eclipse.jst.pagedesigner.parts;x-internal:=true,
@@ -109,6 +114,7 @@
org.eclipse.jst.pagedesigner.range;x-internal:=true,
org.eclipse.jst.pagedesigner.requests;x-internal:=true,
org.eclipse.jst.pagedesigner.tableedit;x-internal:=true,
+ org.eclipse.jst.pagedesigner.taglibprocessing,
org.eclipse.jst.pagedesigner.tools;x-internal:=true,
org.eclipse.jst.pagedesigner.ui.common;x-internal:=true,
org.eclipse.jst.pagedesigner.ui.common.sash;x-internal:=true,
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/configs/cm/html.properties b/jsf/plugins/org.eclipse.jst.pagedesigner/configs/cm/html.properties
deleted file mode 100644
index c762a49..0000000
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/configs/cm/html.properties
+++ /dev/null
@@ -1,156 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2006 Oracle Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# Oracle Corporation - initial API and implementation
-###############################################################################
-Attribute.Label.abbr=Abbr
-Attribute.Label.accept=Accept
-Attribute.Label.accesskey=Accesskey
-Attribute.Label.action=Action
-Attribute.Label.align=Align
-Attribute.Label.alink=Alink
-Attribute.Label.alt=Alt
-Attribute.Label.archive=Archive
-Attribute.Label.autostart=Autostart
-Attribute.Label.axis=Axis
-Attribute.Label.background=Background
-Attribute.Label.balance=Balance
-Attribute.Label.bgcolor=Bgcolor
-Attribute.Label.border=Border
-Attribute.Label.bordercolor=Bordercolor
-Attribute.Label.bordercolordark=Bordercolordark
-Attribute.Label.bordercolorlight=Bordercolorlight
-Attribute.Label.bottommargin=Bottommargin
-Attribute.Label.cellpadding=Cellpadding
-Attribute.Label.cellspacing=Cellspacing
-Attribute.Label.checked=Checked
-Attribute.Label.cite=Cite
-Attribute.Label.class=Class
-Attribute.Label.classid=Classid
-Attribute.Label.clear=Clear
-Attribute.Label.code=Code
-Attribute.Label.codebase=Codebase
-Attribute.Label.codetype=Codetype
-Attribute.Label.color=Color
-Attribute.Label.cols=Cols
-Attribute.Label.colspan=Colspan
-Attribute.Label.compact=Compact
-Attribute.Label.content=Content
-Attribute.Label.controls=Controls
-Attribute.Label.coords=Coords
-Attribute.Label.data=Data
-Attribute.Label.datapagesize=Datapagesize
-Attribute.Label.datetime=Datetime
-Attribute.Label.declare=Declare
-Attribute.Label.defer=Defer
-Attribute.Label.delay=Delay
-Attribute.Label.dir=Dir
-Attribute.Label.disabled=Disabled
-Attribute.Label.dynsrc=Dynsrc
-Attribute.Label.enctype=Enctype
-Attribute.Label.face=Face
-Attribute.Label.for=For
-Attribute.Label.frame=Frame
-Attribute.Label.frameborder=Frameborder
-Attribute.Label.framespacing=Framespacing
-Attribute.Label.headers=Headers
-Attribute.Label.height=Height
-Attribute.Label.hidden=Hidden
-Attribute.Label.href=Href
-Attribute.Label.hreflang=Hreflang
-Attribute.Label.hspace=Hspace
-Attribute.Label.http-equiv=http-equiv
-Attribute.Label.id=ID
-Attribute.Label.ismap=Ismap
-Attribute.Label.label=Label
-Attribute.Label.lang=Lang
-Attribute.Label.language=Language
-Attribute.Label.leftmargin=Leftmargin
-Attribute.Label.link=Link
-Attribute.Label.longdesc=Longdesc
-Attribute.Label.loop=Loop
-Attribute.Label.lowsrc=Lowsrc
-Attribute.Label.marginheight=Marginheight
-Attribute.Label.marginwidth=Marginwidth
-Attribute.Label.maxlength=Maxlength
-Attribute.Label.mayscript=Mayscript
-Attribute.Label.media=Media
-Attribute.Label.method=Method
-Attribute.Label.multiple=Multiple
-Attribute.Label.name=Name
-Attribute.Label.noresize=Noresize
-Attribute.Label.noshade=Noshade
-Attribute.Label.nowrap=Nowrap
-Attribute.Label.onblur=Onblur
-Attribute.Label.onchange=Onchange
-Attribute.Label.onclick=Onclick
-Attribute.Label.ondblclick=Ondblclick
-Attribute.Label.onfocus=Onfocus
-Attribute.Label.onkeydown=Onkeydown
-Attribute.Label.onkeypress=Onkeypress
-Attribute.Label.onkeyup=Onkeyup
-Attribute.Label.onload=Onload
-Attribute.Label.onmousedown=Onmousedown
-Attribute.Label.onmousemove=Onmousemove
-Attribute.Label.onmouseout=Onmouseout
-Attribute.Label.onmouseover=Onmouseover
-Attribute.Label.onmouseup=Onmouseup
-Attribute.Label.onreset=Onreset
-Attribute.Label.onselect=Onselect
-Attribute.Label.onsubmit=Onsubmit
-Attribute.Label.onunload=Onunload
-Attribute.Label.prompt=Prompt
-Attribute.Label.readonly=Readonly
-Attribute.Label.rel=Rel
-Attribute.Label.rev=Rev
-Attribute.Label.rightmargin=Rightmargin
-Attribute.Label.rows=Rows
-Attribute.Label.rowspan=Rowspan
-Attribute.Label.rules=Rules
-Attribute.Label.scope=Scope
-Attribute.Label.scrolling=Scrolling
-Attribute.Label.selected=Selected
-Attribute.Label.shape=Shape
-Attribute.Label.size=Size
-Attribute.Label.span=Span
-Attribute.Label.src=Src
-Attribute.Label.standby=Standby
-Attribute.Label.start=Start
-Attribute.Label.style=Style
-Attribute.Label.summary=Summary
-Attribute.Label.tabindex=Tabindex
-Attribute.Label.target=Target
-Attribute.Label.text=Text
-Attribute.Label.title=Title
-Attribute.Label.topmargin=Topmargin
-Attribute.Label.type=Type
-Attribute.Label.usemap=Usemap
-Attribute.Label.valign=Valign
-Attribute.Label.value=Value
-Attribute.Label.valuetype=Valuetype
-Attribute.Label.vlink=Vlink
-Attribute.Label.volume=Volume
-Attribute.Label.vspace=Vspace
-Attribute.Label.width=Width
-Attribute.Label.wrap=Wrap
-Attribute.Label.xmlns=Xmlns
-Category.Label.Accessibility=Accessibility
-Category.Label.VisualProperty=VisualProperty
-Category.Label.Browser.Specific=Browser Specific
-Category.Label.CSS/Accessibility=CSS/Accessibility
-Category.Label.Content=Content
-Category.Label.Data.Binding=Data Binding
-Category.Label.Dynamic=Dynamic
-Category.Label.Event=Event
-Category.Label.File=File
-Category.Label.General=General
-Category.Label.HTML4.0=HTML 4.0
-Category.Label.Image=Image
-Category.Label.Language=Language
-Category.Label.Radio/Checkbox=Radio/Checkbox
-Category.Label.Text/Password=Text/Password
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/configs/cm/html.xml b/jsf/plugins/org.eclipse.jst.pagedesigner/configs/cm/html.xml
deleted file mode 100644
index c3a29a6..0000000
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/configs/cm/html.xml
+++ /dev/null
@@ -1,1559 +0,0 @@
-<?xml version="1.0" ?>
-<taglib uri="html">
- <tag name="a">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="href" type="RELATIVEPATH"
- displaylabel="%Attribute.Label.href" />
- <attribute name="name" displaylabel="%Attribute.Label.name" />
- <referedattribute ref="lang" overridename="hreflang"
- displaylabel="%Attribute.Label.hreflang" />
- <referedattribute ref="linktype" overridename="rel"
- displaylabel="%Attribute.Label.rel" />
- <referedattribute ref="linktype" overridename="rev"
- displaylabel="%Attribute.Label.rev" />
- <referedattribute ref="target" />
- <attribute name="shape" type="ENUMERATED"
- displaylabel="%Attribute.Label.shape">
- <option key="circle" value="circle" />
- <option key="default" value="default" />
- <option key="rect" value="rect" default="default" />
- <option key="poly" value="poly" />
- </attribute>
- </category>
- <referedcategory ref="CSS/Accessibility">
- <includeattrs>
- <attribute name="accesskey"
- displaylabel="%Attribute.Label.accesskey" />
- <attribute name="tabindex"
- displaylabel="%Attribute.Label.tabindex" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Event">
- <includeattrs>
- <attribute name="onblur"
- displaylabel="%Attribute.Label.onblur" />
- <attribute name="onfocus"
- displaylabel="%Attribute.Label.onfocus" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Language" />
- </tag>
- <tag name="abbr">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="acronym">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="address">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="applet">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="code" displaylabel="%Attribute.Label.code" />
- <attribute name="codebase"
- displaylabel="%Attribute.Label.codebase" />
- <attribute name="width" required="required"
- displaylabel="%Attribute.Label.width" />
- <attribute name="height" required="required"
- displaylabel="%Attribute.Label.height" />
- <attribute name="hspace"
- displaylabel="%Attribute.Label.hspace" />
- <attribute name="vspace"
- displaylabel="%Attribute.Label.vspace" />
- <referedattribute ref="ialign" overridename="align" />
- <attribute name="archive"
- displaylabel="%Attribute.Label.archive" />
- <attribute name="name" displaylabel="%Attribute.Label.name" />
- </category>
- <referedcategory ref="CSS/Accessibility">
- <includeattrs>
- <attribute name="alt"
- displaylabel="%Attribute.Label.alt" />
- </includeattrs>
- </referedcategory>
- </tag>
- <tag name="area">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="shape" type="ENUMERATED"
- displaylabel="%Attribute.Label.shape">
- <option key="circle" value="circle" />
- <option key="default" value="default" />
- <option key="rect" value="rect" default="default" />
- <option key="poly" value="poly" />
- </attribute>
- <attribute name="coords"
- displaylabel="%Attribute.Label.coords" />
- <attribute name="href" type="RELATIVEPATH"
- displaylabel="%Attribute.Label.href" />
- <referedattribute ref="target" />
- </category>
- <referedcategory ref="CSS/Accessibility">
- <includeattrs>
- <attribute name="alt" required="required"
- displaylabel="%Attribute.Label.alt" />
- <attribute name="accesskey"
- displaylabel="%Attribute.Label.accesskey" />
- <attribute name="tabindex"
- displaylabel="%Attribute.Label.tabindex" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Event">
- <includeattrs>
- <attribute name="onblur"
- displaylabel="%Attribute.Label.onblur" />
- <attribute name="onfocus"
- displaylabel="%Attribute.Label.onfocus" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Language" />
- </tag>
- <tag name="b">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="base">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="href" type="RELATIVEPATH"
- displaylabel="%Attribute.Label.href" />
- <referedattribute ref="target" />
- </category>
- </tag>
- <tag name="basefont">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="size" type="ENUMERATED" required="required"
- displaylabel="%Attribute.Label.size">
- <option key="1" value="1" />
- <option key="2" value="2" />
- <option key="3" value="3" />
- <option key="4" value="4" />
- <option key="5" value="5" />
- <option key="6" value="6" />
- <option key="7" value="7" />
- </attribute>
- <attribute name="face" displaylabel="%Attribute.Label.face" />
- <attribute name="color" type="COLOR"
- displaylabel="%Attribute.Label.color" />
- </category>
- <referedcategory ref="CSS/Accessibility">
- <excludeattrs refs="class,style,title" />
- </referedcategory>
- </tag>
- <tag name="bdo">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="big">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="blockquote">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="cite" type="RELATIVEPATH"
- displaylabel="%Attribute.Label.cite" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="body">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="bgcolor" type="COLOR"
- displaylabel="%Attribute.Label.bgcolor" />
- <attribute name="background" type="RELATIVEPATH"
- typeparam="suffix=jpg;gif;png"
- displaylabel="%Attribute.Label.background" />
- <attribute name="text" type="COLOR"
- displaylabel="%Attribute.Label.text" />
- <attribute name="link" type="COLOR"
- displaylabel="%Attribute.Label.link" />
- <attribute name="vlink" type="COLOR"
- displaylabel="%Attribute.Label.vlink" />
- <attribute name="alink" type="COLOR"
- displaylabel="%Attribute.Label.alink" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event">
- <includeattrs>
- <attribute name="onload"
- displaylabel="%Attribute.Label.onload" />
- <attribute name="onunload"
- displaylabel="%Attribute.Label.onunload" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Language" />
- </tag>
- <tag name="br">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="clear" type="ENUMERATED"
- displaylabel="%Attribute.Label.clear">
- <option key="right" value="right" />
- <option key="none" value="none" default="default" />
- <option key="left" value="left" />
- <option key="all" value="all" />
- </attribute>
- </category>
- <referedcategory ref="CSS/Accessibility" />
- </tag>
- <tag name="button">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="value"
- displaylabel="%Attribute.Label.value" />
- <attribute name="type" type="ENUMERATED"
- displaylabel="%Attribute.Label.type">
- <option key="submit" value="submit" default="default" />
- <option key="reset" value="reset" />
- <option key="button" value="button" />
- </attribute>
- <attribute name="disabled" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.disabled" />
- <attribute name="name" displaylabel="%Attribute.Label.name" />
- </category>
- <referedcategory ref="CSS/Accessibility">
- <includeattrs>
- <attribute name="accesskey"
- displaylabel="%Attribute.Label.accesskey" />
- <attribute name="tabindex"
- displaylabel="%Attribute.Label.tabindex" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Event">
- <includeattrs>
- <attribute name="onblur"
- displaylabel="%Attribute.Label.onblur" />
- <attribute name="onfocus"
- displaylabel="%Attribute.Label.onfocus" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Language" />
- </tag>
- <tag name="caption">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="align" type="ENUMERATED"
- displaylabel="%Attribute.Label.align">
- <option key="right" value="right" />
- <option key="top" value="top" />
- <option key="left" value="left" />
- <option key="bottom" value="bottom" />
- </attribute>
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="center">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="cite">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="code">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="col">
- <category name="General"
- displaylabel="%Category.Label.General">
- <referedattribute ref="align" />
- <attribute name="span" displaylabel="%Attribute.Label.span" />
- <referedattribute ref="valign" />
- <attribute name="width"
- displaylabel="%Attribute.Label.width" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="colgroup">
- <category name="General"
- displaylabel="%Category.Label.General">
- <referedattribute ref="align" />
- <attribute name="span" displaylabel="%Attribute.Label.span" />
- <referedattribute ref="valign" />
- <attribute name="width"
- displaylabel="%Attribute.Label.width" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="dd">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="del">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="cite" type="RELATIVEPATH"
- displaylabel="%Attribute.Label.cite" />
- <attribute name="datetime"
- displaylabel="%Attribute.Label.datetime" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="dfn">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="dir">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="compact" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.compact" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="div">
- <category name="General"
- displaylabel="%Category.Label.General">
- <referedattribute ref="dalign" overridename="align" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="dl">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="compact" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.compact" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="dt">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="em">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="fieldset">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="font">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="color" type="COLOR"
- displaylabel="%Attribute.Label.color" />
- <attribute name="size" type="ENUMERATED"
- displaylabel="%Attribute.Label.size">
- <option key="1" value="1" />
- <option key="2" value="2" />
- <option key="3" value="3" />
- <option key="4" value="4" />
- <option key="5" value="5" />
- <option key="6" value="6" />
- <option key="7" value="7" />
- <option key="-1" value="-1" />
- <option key="-2" value="-2" />
- <option key="-3" value="-3" />
- <option key="-4" value="-4" />
- <option key="-5" value="-5" />
- <option key="-6" value="-6" />
- <option key="-7" value="-7" />
- <option key="+1" value="+1" />
- <option key="+2" value="+2" />
- <option key="+3" value="+3" />
- <option key="+4" value="+4" />
- <option key="+5" value="+5" />
- <option key="+6" value="+6" />
- <option key="+7" value="+7" />
- </attribute>
- <attribute name="face" displaylabel="%Attribute.Label.face" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="form">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="action" required="required" type="RELATIVEPATH"
- displaylabel="%Attribute.Label.action" />
- <attribute name="method" type="ENUMERATED"
- displaylabel="%Attribute.Label.method">
- <option key="get" value="get" default="default" />
- <option key="post" value="post" />
- </attribute>
- <attribute name="enctype" type="ENUMERATED"
- displaylabel="%Attribute.Label.enctype">
- <option key="application/x-www-form-urlencoded"
- value="application/x-www-form-urlencoded" default="default" />
- <option key="text/plain" value="text/plain" />
- <option key="multipart/form-data"
- value="multipart/form-data" />
- </attribute>
- <attribute name="name" displaylabel="%Attribute.Label.name" />
- <referedattribute ref="target" />
- </category>
- <referedcategory ref="CSS/Accessibility"></referedcategory>
- <referedcategory ref="Language" />
- <referedcategory ref="Event">
- <includeattrs>
- <attribute name="onreset"
- displaylabel="%Attribute.Label.onreset" />
- <attribute name="onsubmit"
- displaylabel="%Attribute.Label.onsubmit" />
- </includeattrs>
- </referedcategory>
- </tag>
- <tag name="frame">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="src" type="RELATIVEPATH"
- displaylabel="%Attribute.Label.src" />
- <attribute name="frameborder" type="ENUMERATED"
- displaylabel="%Attribute.Label.frameborder">
- <option key="0" value="0" />
- <option key="1" value="1" default="default" />
- </attribute>
- <attribute name="scrolling" type="ENUMERATED"
- displaylabel="%Attribute.Label.scrolling">
- <option key="yes" value="Yes" />
- <option key="no" value="No" />
- <option key="auto" value="Auto" default="default" />
- </attribute>
- <attribute name="noresize" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.noresize" />
- <attribute name="marginwidth"
- displaylabel="%Attribute.Label.marginwidth" />
- <attribute name="marginheight"
- displaylabel="%Attribute.Label.marginheight" />
- <attribute name="name" displaylabel="%Attribute.Label.name" />
- </category>
- <referedcategory ref="CSS/Accessibility">
- <includeattrs>
- <attribute name="longdesc"
- displaylabel="%Attribute.Label.longdesc" />
- </includeattrs>
- </referedcategory>
- </tag>
- <tag name="frameset">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="rows" displaylabel="%Attribute.Label.rows" />
- <attribute name="cols" displaylabel="%Attribute.Label.cols" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <category name="Event" displaylabel="%Category.Label.Event">
- <attribute name="onload"
- displaylabel="%Attribute.Label.onload" />
- <attribute name="onunload"
- displaylabel="%Attribute.Label.onunload" />
- </category>
- </tag>
- <tag name="h1">
- <category name="General"
- displaylabel="%Category.Label.General">
- <referedattribute ref="dalign" overridename="align" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="h2">
- <category name="General"
- displaylabel="%Category.Label.General">
- <referedattribute ref="dalign" overridename="align" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="h3">
- <category name="General"
- displaylabel="%Category.Label.General">
- <referedattribute ref="dalign" overridename="align" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="h4">
- <category name="General"
- displaylabel="%Category.Label.General">
- <referedattribute ref="dalign" overridename="align" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="h5">
- <category name="General"
- displaylabel="%Category.Label.General">
- <referedattribute ref="dalign" overridename="align" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="h6">
- <category name="General"
- displaylabel="%Category.Label.General">
- <referedattribute ref="dalign" overridename="align" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="head">
- <referedcategory ref="Language" />
- </tag>
- <tag name="hr">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="align" type="ENUMERATED"
- displaylabel="%Attribute.Label.align">
- <option key="right" value="right" />
- <option key="left" value="left" />
- <option key="center" value="center" />
- </attribute>
- <attribute name="width"
- displaylabel="%Attribute.Label.width" />
- <attribute name="size" displaylabel="%Attribute.Label.size" />
- <attribute name="noshade" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.noshade" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="html">
- <referedcategory ref="Language" />
- </tag>
- <tag name="i">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="iframe">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="src" type="RELATIVEPATH"
- displaylabel="%Attribute.Label.src" />
- <attribute name="width"
- displaylabel="%Attribute.Label.width" />
- <attribute name="marginwidth"
- displaylabel="%Attribute.Label.marginwidth" />
- <attribute name="height"
- displaylabel="%Attribute.Label.height" />
- <attribute name="marginheight"
- displaylabel="%Attribute.Label.marginheight" />
- <referedattribute ref="ialign" overridename="align" />
- <attribute name="scrolling" type="ENUMERATED"
- displaylabel="%Attribute.Label.scrolling">
- <option key="Yes" value="Yes" />
- <option key="No" value="No" />
- <option key="Auto" value="Auto" />
- </attribute>
- <attribute name="frameborder" type="ENUMERATED"
- displaylabel="%Attribute.Label.frameborder">
- <option key="0" value="0" />
- <option key="1" value="1" default="default" />
- </attribute>
- <attribute name="name" displaylabel="%Attribute.Label.name" />
- </category>
- <referedcategory ref="CSS/Accessibility">
- <includeattrs>
- <attribute name="longdesc"
- displaylabel="%Attribute.Label.longdesc" />
- </includeattrs>
- </referedcategory>
- </tag>
- <tag name="img">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="src" type="RELATIVEPATH" required="required"
- typeparam="suffix=jpg;gif;png" displaylabel="%Attribute.Label.src" />
- <attribute name="width"
- displaylabel="%Attribute.Label.width" />
- <attribute name="height"
- displaylabel="%Attribute.Label.height" />
- <attribute name="hspace"
- displaylabel="%Attribute.Label.hspace" />
- <attribute name="vspace"
- displaylabel="%Attribute.Label.vspace" />
- <attribute name="border"
- displaylabel="%Attribute.Label.border" />
- <referedattribute ref="ialign" overridename="align" />
- <attribute name="usemap"
- displaylabel="%Attribute.Label.usemap" />
- <attribute name="ismap" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.ismap" />
- <attribute name="name" displaylabel="%Attribute.Label.name" />
- </category>
- <referedcategory ref="CSS/Accessibility">
- <includeattrs>
- <attribute name="alt" required="required"
- displaylabel="%Attribute.Label.alt" />
- <attribute name="longdesc" type="RELATIVEPATH"
- displaylabel="%Attribute.Label.longdesc" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="input">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="checked" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.checked" />
- <attribute name="maxlength"
- displaylabel="%Attribute.Label.maxlength" />
- <attribute name="readonly" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.readonly" />
- <attribute name="type" type="ENUMERATED"
- displaylabel="%Attribute.Label.type">
- <option key="password" value="Password" />
- <option key="checkbox" value="Checkbox" />
- <option key="text" value="Text" default="default" />
- <option key="submit" value="Submit" />
- <option key="hidden" value="Hidden" />
- <option key="file" value="File" />
- <option key="reset" value="Reset" />
- <option key="radio" value="Radio" />
- <option key="image" value="Image" />
- <option key="button" value="Button" />
- </attribute>
- <attribute name="disabled" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.disabled" />
- <attribute name="value"
- displaylabel="%Attribute.Label.value" />
- <attribute name="size" displaylabel="%Attribute.Label.size" />
- <attribute name="accept" type="ENUMERATED"
- displaylabel="%Attribute.Label.accept">
- <option key="application/msword"
- value="application/msword" />
- <option key="image/jpeg" value="image/jpeg" />
- <option key="image/x-MS-bmp" value="image/x-MS-bmp" />
- <option key="image/x-portable-greymap"
- value="image/x-portable-greymap" />
- <option key="video/x-msvideo" value="video/x-msvideo" />
- <option key="video/x-mpeg2" value="video/x-mpeg2" />
- <option key="audio/x-aiff" value="audio/x-aiff" />
- <option key="image/x-photo-cd" value="image/x-photo-cd" />
- <option key="audio/x-waw" value="audio/x-waw" />
- <option key="image/tiff" value="image/tiff" />
- <option key="audio/basic" value="audio/basic" />
- <option key="video/quicktime" value="video/quicktime" />
- <option key="application/msexcel"
- value="application/msexcel" />
- <option key="image/gif" value="image/gif" />
- <option key="audio/x-pn/realaudio"
- value="audio/x-pn/realaudio" />
- <option key="application/pdf" value="application/pdf" />
- <option key="image/x-portablebitmap"
- value="image/x-portablebitmap" />
- <option key="application/rtf" value="application/rtf" />
- <option key="text/html" value="text/html" />
- <option key="image/x-portable-pixmap"
- value="image/x-portable-pixmap" />
- <option key="text/plain" value="text/plain" />
- <option key="application/x-zip-compressed"
- value="application/x-zip-compressed" />
- <option key="audio/x-mpeg" value="audio/x-mpeg" />
- <option key="application/postscript"
- value="application/postscript" />
- <option key="image/x-png" value="image/x-png" />
- <option key="image/x-rgb" value="image/x-rgb" />
- </attribute>
- <attribute name="name" displaylabel="%Attribute.Label.name" />
- </category>
- <referedcategory ref="CSS/Accessibility">
- <includeattrs>
- <attribute name="accesskey"
- displaylabel="%Attribute.Label.accesskey" />
- <attribute name="alt"
- displaylabel="%Attribute.Label.alt" />
- <attribute name="tabindex"
- displaylabel="%Attribute.Label.tabindex" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Event">
- <includeattrs>
- <attribute name="onblur"
- displaylabel="%Attribute.Label.onblur" />
- <attribute name="onchange"
- displaylabel="%Attribute.Label.onchange" />
- <attribute name="onfocus"
- displaylabel="%Attribute.Label.onfocus" />
- <attribute name="onselect"
- displaylabel="%Attribute.Label.onselect" />
- </includeattrs>
- </referedcategory>
- <category name="Image" displaylabel="%Category.Label.Image">
- <attribute name="src" type="RELATIVEPATH"
- typeparam="suffix=jpg;gif;png" displaylabel="%Attribute.Label.src" />
- <referedattribute ref="ialign" overridename="align" />
- <attribute name="usemap"
- displaylabel="%Attribute.Label.usemap" />
- <attribute name="ismap" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.ismap" />
- </category>
- <referedcategory ref="Language" />
- </tag>
- <tag name="ins">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="cite" type="RELATIVEPATH"
- displaylabel="%Attribute.Label.cite" />
- <attribute name="datetime"
- displaylabel="%Attribute.Label.datetime" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="isindex">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="prompt"
- displaylabel="%Attribute.Label.prompt" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="kbd">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="label">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="for" displaylabel="%Attribute.Label.for" />
- </category>
- <referedcategory ref="CSS/Accessibility">
- <includeattrs>
- <attribute name="accesskey"
- displaylabel="%Attribute.Label.accesskey" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Event">
- <includeattrs>
- <attribute name="onblur"
- displaylabel="%Attribute.Label.onblur" />
- <attribute name="onfocus"
- displaylabel="%Attribute.Label.onfocus" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Language" />
- </tag>
- <tag name="legend">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="align" type="ENUMERATED"
- displaylabel="%Attribute.Label.align">
- <option key="right" value="right" />
- <option key="top" value="top - not supported by MSIE4" />
- <option key="left" value="left" />
- <option key="bottom" value="bottom" />
- </attribute>
- </category>
- <referedcategory ref="CSS/Accessibility">
- <includeattrs>
- <attribute name="accesskey"
- displaylabel="%Attribute.Label.accesskey" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="li">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="type" type="ENUMERATED"
- displaylabel="%Attribute.Label.type">
- <option key="i" value="i lower roman" />
- <option key="I" value="I upper roman" />
- <option key="a" value="a lower alpha" />
- <option key="A" value="A upper alpha" />
- <option key="1" value="1 arabic numbers" />
- <option key="square" value="square" />
- <option key="circle" value="circle" />
- <option key="disc" value="disc" />
- </attribute>
- <attribute name="value"
- displaylabel="%Attribute.Label.value" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="link">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="href" type="RELATIVEPATH"
- displaylabel="%Attribute.Label.href" />
- <referedattribute ref="linktype" overridename="rel"
- displaylabel="%Attribute.Label.rel" />
- <referedattribute ref="linktype" overridename="rev"
- displaylabel="%Attribute.Label.rev" />
- <referedattribute ref="lang" overridename="hreflang"
- displaylabel="%Attribute.Label.hreflang" />
- <referedattribute ref="media" />
- <referedattribute ref="target" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="map">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="name" displaylabel="%Attribute.Label.name" required="required" />
- </category>
- <referedcategory ref="CSS/Accessibility"></referedcategory>
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="menu">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="compact" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.compact" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="meta">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="http-equiv"
- displaylabel="%Attribute.Label.http-equiv" />
- <attribute name="content" required="required"
- displaylabel="%Attribute.Label.content" />
- <attribute name="name" displaylabel="%Attribute.Label.name" />
- </category>
- <category name="CSS/Accessibility"
- displaylabel="%Category.Label.CSS/Accessibility">
- </category>
- <referedcategory ref="Language" />
- </tag>
- <tag name="noframes">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="noscript">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="object">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="usemap"
- displaylabel="%Attribute.Label.usemap" />
- <attribute name="standby"
- displaylabel="%Attribute.Label.standby" />
- <attribute name="width"
- displaylabel="%Attribute.Label.width" />
- <attribute name="height"
- displaylabel="%Attribute.Label.height" />
- <attribute name="hspace"
- displaylabel="%Attribute.Label.hspace" />
- <attribute name="vspace"
- displaylabel="%Attribute.Label.vspace" />
- <referedattribute ref="ialign" overridename="align" />
- <attribute name="border"
- displaylabel="%Attribute.Label.border" />
- <attribute name="name" displaylabel="%Attribute.Label.name" />
- </category>
- <referedcategory ref="CSS/Accessibility">
- <includeattrs>
- <attribute name="tabindex"
- displaylabel="%Attribute.Label.tabindex" />
- </includeattrs>
- </referedcategory>
- <category name="Content"
- displaylabel="%Category.Label.Content">
- <attribute name="classid" type="RELATIVEPATH"
- displaylabel="%Attribute.Label.classid" />
- <attribute name="codebase" type="RELATIVEPATH"
- displaylabel="%Attribute.Label.codebase" />
- <attribute name="codetype"
- displaylabel="%Attribute.Label.codetype" />
- <attribute name="data" type="RELATIVEPATH"
- displaylabel="%Attribute.Label.data" />
- <attribute name="archive"
- displaylabel="%Attribute.Label.archive" />
- <attribute name="declare" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.declare" />
- </category>
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="ol">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="start"
- displaylabel="%Attribute.Label.start" />
- <attribute name="type" type="ENUMERATED"
- displaylabel="%Attribute.Label.type">
- <option key="i" value="i lower roman" />
- <option key="I" value="I upper roman" />
- <option key="a" value="a lower alpha" />
- <option key="A" value="A upper alpha" />
- <option key="1" value="1 arabic numbers" />
- </attribute>
- <attribute name="compact" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.compact" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="optgroup">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="disabled" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.disabled" />
- </category>
- <referedcategory ref="CSS/Accessibility">
- <includeattrs>
- <attribute name="label" required="required"
- displaylabel="%Attribute.Label.label" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Event">
- <includeattrs>
- <attribute name="onblur"
- displaylabel="%Attribute.Label.onblur" />
- <attribute name="onchange"
- displaylabel="%Attribute.Label.onchange" />
- <attribute name="onfocus"
- displaylabel="%Attribute.Label.onfocus" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Language" />
- </tag>
- <tag name="option">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="value"
- displaylabel="%Attribute.Label.value" />
- <attribute name="selected" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.selected" />
- <attribute name="disabled" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.disabled" />
- </category>
- <referedcategory ref="CSS/Accessibility">
- <includeattrs>
- <attribute name="label"
- displaylabel="%Attribute.Label.label" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Event">
- <includeattrs>
- <attribute name="onblur"
- displaylabel="%Attribute.Label.onblur" />
- <attribute name="onchange"
- displaylabel="%Attribute.Label.onchange" />
- <attribute name="onfocus"
- displaylabel="%Attribute.Label.onfocus" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Language" />
- </tag>
- <tag name="p">
- <category name="General"
- displaylabel="%Category.Label.General">
- <referedattribute ref="dalign" overridename="align" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Language" />
- <referedcategory ref="Event" />
- </tag>
- <tag name="param">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="value"
- displaylabel="%Attribute.Label.value" />
- <attribute name="valuetype" type="ENUMERATED"
- displaylabel="%Attribute.Label.valuetype">
- <option key="object" value="object" />
- <option key="ref" value="ref" />
- <option key="data" value="data" default="default" />
- </attribute>
- <attribute name="name" displaylabel="%Attribute.Label.name" required="required" />
- </category>
- <referedcategory ref="CSS/Accessibility">
- <excludeattrs refs="class,style,title" />
- </referedcategory>
- </tag>
- <tag name="pre">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="q">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="cite" type="RELATIVEPATH"
- displaylabel="%Attribute.Label.cite" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="s">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="samp">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="script">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="src" type="RELATIVEPATH"
- displaylabel="%Attribute.Label.src" />
- <attribute name="type" type="ENUMERATED" required="required"
- displaylabel="%Attribute.Label.type">
- <option key="text/php" value="text/php" />
- <option key="text/tcl" value="text/tcl" />
- <option key="text/livescript" value="text/livescript" />
- <option key="text/vbscript" value="text/vbscript" />
- <option key="text/jscript" value="text/jscript" />
- <option key="text/javascript" value="text/javascript" />
- </attribute>
- <attribute name="defer" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.defer" />
- </category>
- </tag>
- <tag name="select">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="size" displaylabel="%Attribute.Label.size" />
- <attribute name="multiple" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.multiple" />
- <attribute name="disabled" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.disabled" />
- <attribute name="name" displaylabel="%Attribute.Label.name" />
- </category>
- <referedcategory ref="CSS/Accessibility">
- <includeattrs>
- <attribute name="tabindex"
- displaylabel="%Attribute.Label.tabindex" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Event">
- <includeattrs>
- <attribute name="onblur"
- displaylabel="%Attribute.Label.onblur" />
- <attribute name="onchange"
- displaylabel="%Attribute.Label.onchange" />
- <attribute name="onfocus"
- displaylabel="%Attribute.Label.onfocus" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Language" />
- </tag>
- <tag name="small">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="span">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="strike">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="strong">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="style">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="type" type="ENUMERATED" required="required"
- displaylabel="%Attribute.Label.type">
- <option key="text/css" value="text/css" />
- <option key="text/javascript" value="text/javascript" />
- </attribute>
- <referedattribute ref="media" />
- </category>
- <category name="CSS/Accessibility"
- displaylabel="%Category.Label.CSS/Accessibility">
- <attribute name="title"
- displaylabel="%Attribute.Label.title" />
- </category>
- <referedcategory ref="Language" />
- </tag>
- <tag name="sub">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="sup">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="table">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="width"
- displaylabel="%Attribute.Label.width" />
- <attribute name="border"
- displaylabel="%Attribute.Label.border" />
- <attribute name="align" type="ENUMERATED"
- displaylabel="%Attribute.Label.align">
- <option key="right" value="right" />
- <option key="left" value="left" />
- <option key="center" value="center" />
- </attribute>
- <attribute name="cellpadding"
- displaylabel="%Attribute.Label.cellpadding" />
- <attribute name="cellspacing"
- displaylabel="%Attribute.Label.cellspacing" />
- <attribute name="bgcolor" type="COLOR"
- displaylabel="%Attribute.Label.bgcolor" />
- <attribute name="frame" type="ENUMERATED"
- displaylabel="%Attribute.Label.frame">
- <option key="lhs"
- value="Lhs - Border on the left-hand side of the table frame" />
- <option key="above"
- value="Above - Border on the top side of the table frame" />
- <option key="void"
- value="Void - Removes all outside table borders (default)" />
- <option key="box"
- value="Box - Border on all sides of the table frame" />
- <option key="vsides"
- value="Vsides - Border on the left and right sides of the table frame" />
- <option key="below"
- value="Below - Border on the bottom side of the table frame" />
- <option key="border"
- value="Border - Border on all sides of the table frame" />
- <option key="rhs"
- value="Rhs - Border on the right-hand side of the table frame" />
- <option key="hsides"
- value="Hsides - Border on the top and bottom sides of the table frame" />
- </attribute>
- <attribute name="rules" type="ENUMERATED"
- displaylabel="%Attribute.Label.rules">
- <option key="cols"
- value="Cols - Displays vertical borders between all table columns" />
- <option key="groups"
- value="Groups - Displays horizontal borders between all table groups" />
- <option key="rows"
- value="Rows - Displays horizontal borders between all table rows" />
- <option key="none"
- value="None - Removes all interior table borders (default)" />
- <option key="all"
- value="All - Displays a border on all rows and columns" />
- </attribute>
- </category>
- <referedcategory ref="CSS/Accessibility">
- <includeattrs>
- <attribute name="summary"
- displaylabel="%Attribute.Label.summary" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="tbody">
- <category name="General"
- displaylabel="%Category.Label.General">
- <referedattribute ref="align" />
- <referedattribute ref="valign" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="td">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="width"
- displaylabel="%Attribute.Label.width" />
- <attribute name="height"
- displaylabel="%Attribute.Label.height" />
- <attribute name="colspan"
- displaylabel="%Attribute.Label.colspan" />
- <attribute name="rowspan"
- displaylabel="%Attribute.Label.rowspan" />
- <referedattribute ref="align" />
- <attribute name="nowrap" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.nowrap" />
- <attribute name="bgcolor" type="COLOR"
- displaylabel="%Attribute.Label.bgcolor" />
- <referedattribute ref="scope" />
- <referedattribute ref="valign" />
- </category>
- <referedcategory ref="CSS/Accessibility">
- <includeattrs>
- <attribute name="abbr"
- displaylabel="%Attribute.Label.abbr" />
- <attribute name="axis"
- displaylabel="%Attribute.Label.axis" />
- <attribute name="headers"
- displaylabel="%Attribute.Label.headers" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="textarea">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="cols" required="required" displaylabel="%Attribute.Label.cols" />
- <attribute name="rows" required="required" displaylabel="%Attribute.Label.rows" />
- <attribute name="disabled" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.disabled" />
- <attribute name="readonly" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.readonly" />
- <attribute name="name" displaylabel="%Attribute.Label.name" />
- </category>
- <referedcategory ref="CSS/Accessibility">
- <includeattrs>
- <attribute name="accesskey"
- displaylabel="%Attribute.Label.accesskey" />
- <attribute name="tabindex"
- displaylabel="%Attribute.Label.tabindex" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Event">
- <includeattrs>
- <attribute name="onblur"
- displaylabel="%Attribute.Label.onblur" />
- <attribute name="onchange"
- displaylabel="%Attribute.Label.onchange" />
- <attribute name="onfocus"
- displaylabel="%Attribute.Label.onfocus" />
- <attribute name="onselect"
- displaylabel="%Attribute.Label.onselect" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Language" />
- </tag>
- <tag name="tfoot">
- <category name="General"
- displaylabel="%Category.Label.General">
- <referedattribute ref="align" />
- <referedattribute ref="valign" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="th">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="width"
- displaylabel="%Attribute.Label.width" />
- <attribute name="height"
- displaylabel="%Attribute.Label.height" />
- <attribute name="colspan"
- displaylabel="%Attribute.Label.colspan" />
- <attribute name="rowspan"
- displaylabel="%Attribute.Label.rowspan" />
- <referedattribute ref="align" />
- <attribute name="nowrap" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.nowrap" />
- <attribute name="bgcolor" type="COLOR"
- displaylabel="%Attribute.Label.bgcolor" />
- <referedattribute ref="scope" />
- <referedattribute ref="valign" />
- </category>
- <referedcategory ref="CSS/Accessibility">
- <includeattrs>
- <attribute name="abbr"
- displaylabel="%Attribute.Label.abbr" />
- <attribute name="axis"
- displaylabel="%Attribute.Label.axis" />
- <attribute name="headers"
- displaylabel="%Attribute.Label.headers" />
- </includeattrs>
- </referedcategory>
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="thead">
- <category name="General"
- displaylabel="%Category.Label.General">
- <referedattribute ref="align" />
- <referedattribute ref="valign" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="title">
- <referedcategory ref="Language" />
- </tag>
- <tag name="tr">
- <category name="General"
- displaylabel="%Category.Label.General">
- <referedattribute ref="align" />
- <referedattribute ref="valign" />
- <attribute name="bgcolor" type="COLOR"
- displaylabel="%Attribute.Label.bgcolor" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="tt">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="u">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="ul">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="type" type="ENUMERATED"
- displaylabel="%Attribute.Label.type">
- <option key="square" value="square" />
- <option key="circle" value="circle" />
- <option key="disc" value="disc" />
- </attribute>
- <attribute name="compact" type="NAMED-BOOLEAN"
- displaylabel="%Attribute.Label.compact" />
- </category>
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <tag name="var">
- <referedcategory ref="CSS/Accessibility" />
- <referedcategory ref="Event" />
- <referedcategory ref="Language" />
- </tag>
- <definition>
- <categories>
- <category name="CSS/Accessibility"
- displaylabel="%Category.Label.CSS/Accessibility">
- <attribute name="class" type="CSSCLASS"
- displaylabel="%Attribute.Label.class" />
- <attribute name="id" type="CSSID"
- displaylabel="%Attribute.Label.id" />
- <attribute name="style" type="CSSSTYLE"
- typeparam="style=STYLE" displaylabel="%Attribute.Label.style" />
- <attribute name="title"
- displaylabel="%Attribute.Label.title" />
- </category>
- <category name="Event"
- displaylabel="%Category.Label.Event">
- <attribute name="onclick" type="JAVASCRIPT"
- displaylabel="%Attribute.Label.onclick" />
- <attribute name="ondblclick" type="JAVASCRIPT"
- displaylabel="%Attribute.Label.ondblclick" />
- <attribute name="onmousedown" type="JAVASCRIPT"
- displaylabel="%Attribute.Label.onmousedown" />
- <attribute name="onmousemove" type="JAVASCRIPT"
- displaylabel="%Attribute.Label.onmousemove" />
- <attribute name="onmouseout" type="JAVASCRIPT"
- displaylabel="%Attribute.Label.onmouseout" />
- <attribute name="onmouseover" type="JAVASCRIPT"
- displaylabel="%Attribute.Label.onmouseover" />
- <attribute name="onmouseup" type="JAVASCRIPT"
- displaylabel="%Attribute.Label.onmouseup" />
- <attribute name="onkeydown" type="JAVASCRIPT"
- displaylabel="%Attribute.Label.onkeydown" />
- <attribute name="onkeypress" type="JAVASCRIPT"
- displaylabel="%Attribute.Label.onkeypress" />
- <attribute name="onkeyup" type="JAVASCRIPT"
- displaylabel="%Attribute.Label.onkeyup" />
- </category>
- <category name="Language"
- displaylabel="%Category.Label.Language">
- <attribute name="dir" type="ENUMERATED"
- displaylabel="%Attribute.Label.dir">
- <option key="ltr" value="left-to-right" />
- <option key="rtl" value="right-to-left" />
- </attribute>
- <referedattribute ref="lang" />
- </category>
- </categories>
- <attributes>
- <attribute name="align" type="ENUMERATED"
- displaylabel="%Attribute.Label.align">
- <option key="right" value="right" />
- <option key="char" value="char" />
- <option key="left" value="left" />
- <option key="center" value="center" />
- <option key="justify" value="justify" />
- </attribute>
- <attribute name="dalign" type="ENUMERATED"
- displaylabel="%Attribute.Label.align">
- <option key="right" value="right" />
- <option key="left" value="left" />
- <option key="center" value="center" />
- <option key="justify" value="justify" />
- </attribute>
- <attribute name="ialign" type="ENUMERATED"
- displaylabel="%Attribute.Label.align">
- <option key="bottom" value="bottom" />
- <option key="middle" value="middle" />
- <option key="top" value="top" />
- <option key="right" value="right" />
- <option key="left" value="left" />
- </attribute>
- <attribute name="lang" type="ENUMERATED"
- displaylabel="%Attribute.Label.lang">
- <option key="af" value="af Afrikaans" />
- <option key="ar" value="ar Arabic (needs subtype)" />
- <option key="be" value="be Belarusian" />
- <option key="bg" value="bg Bulgarian" />
- <option key="br" value="br Breton" />
- <option key="ca" value="ca Catalan" />
- <option key="cs" value="cs Czech" />
- <option key="da" value="da Danish" />
- <option key="de" value="de German (Standard)" />
- <option key="el" value="el Greek" />
- <option key="en" value="en English" />
- <option key="es" value="es Spanish (Spain)" />
- <option key="et" value="et Estonian" />
- <option key="eu" value="eu Basque" />
- <option key="fa" value="fa Farsi" />
- <option key="fi" value="fi Finnish" />
- <option key="fo" value="fo Faeroese" />
- <option key="fr" value="fr French (Standard)" />
- <option key="gd" value="gd Gaelic (Scotland)" />
- <option key="he" value="he Hebrew" />
- <option key="hi" value="hi Hindi" />
- <option key="hr" value="hr Croatian" />
- <option key="hu" value="hu Hungarian" />
- <option key="id" value="id Indonesian" />
- <option key="is" value="is Icelandic" />
- <option key="it" value="it Italian (Standard)" />
- <option key="ja" value="ja Japanese" />
- <option key="ko" value="ko Korean" />
- <option key="lt" value="lt Lithuanian" />
- <option key="lv" value="lv Latvian" />
- <option key="mk" value="mk Macedonian" />
- <option key="ms" value="ms Malaysian" />
- <option key="mt" value="mt Maltese" />
- <option key="nl" value="nl Dutch (Standard)" />
- <option key="no" value="no Norwegian (Bokmal/Nynorsk)" />
- <option key="pl" value="pl Polish" />
- <option key="pt" value="pt Portuguese (Standard)" />
- <option key="rm" value="rm Rhaeto-Romanic" />
- <option key="ro" value="ro Romanian" />
- <option key="ru" value="ru Russian" />
- <option key="sk" value="sk Slovak" />
- <option key="sl" value="sl Slovenian" />
- <option key="sq" value="sq Albanian" />
- <option key="sr" value="sr Serbian (Cyrillic/Latin)" />
- <option key="sv" value="sv Swedish" />
- <option key="sx" value="sx Sutu" />
- <option key="sz" value="sz Sami (Lappish)" />
- <option key="th" value="th Thai" />
- <option key="tn" value="tn Setswana" />
- <option key="tr" value="tr Turkish" />
- <option key="ts" value="ts Tsonga" />
- <option key="uk" value="uk Ukrainian" />
- <option key="ur" value="ur Urdu" />
- <option key="vi" value="vi Vietnamese" />
- <option key="xh" value="xh Xhosa" />
- <option key="yi" value="yi Yiddish" />
- <option key="zh" value="zh Chinese (needs subtype)" />
- <option key="zu" value="zu Zulu" />
- </attribute>
- <attribute name="linktype">
- <option key="index" value="index" />
- <option key="subsection" value="subsection" />
- <option key="bookmark" value="bookmark" />
- <option key="start" value="start" />
- <option key="next" value="next" />
- <option key="stylesheet" value="stylesheet" />
- <option key="chapter" value="chapter" />
- <option key="help" value="help" />
- <option key="alternate" value="alternate" />
- <option key="appendix" value="appendix" />
- <option key="contents" value="contents" />
- <option key="section" value="section" />
- <option key="prev" value="prev" />
- <option key="previous" value="previous" />
- <option key="glossary" value="glossary" />
- <option key="copyright" value="copyright" />
- </attribute>
- <attribute name="media" type="ENUMERATED"
- displaylabel="%Attribute.Label.media">
- <option key="tv" value="tv" />
- <option key="braille" value="braille" />
- <option key="tty" value="tty" />
- <option key="print" value="print" />
- <option key="all" value="all" />
- <option key="projection" value="projection" />
- <option key="handheld" value="handheld" />
- <option key="screen" value="screen" />
- <option key="aural" value="aural" />
- </attribute>
- <attribute name="scope" type="ENUMERATED"
- displaylabel="%Attribute.Label.scope">
- <option key="row" value="row" />
- <option key="col" value="col" />
- <option key="rowgroup" value="rowgroup" />
- <option key="colgroup" value="colgroup" />
- </attribute>
- <attribute name="target" type="ENUMERATED"
- displaylabel="%Attribute.Label.target">
- <option key="_self" value="_self" />
- <option key="_blank" value="_blank" />
- <option key="_parent" value="_parent" />
- <option key="_top" value="_top" />
- </attribute>
- <attribute name="valign" type="ENUMERATED"
- displaylabel="%Attribute.Label.valign">
- <option key="middle" value="middle" />
- <option key="top" value="top" />
- <option key="baseline" value="baseline" />
- <option key="bottom" value="bottom" />
- </attribute>
- </attributes>
- </definition>
-</taglib>
\ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/configs/cm/jsp.properties b/jsf/plugins/org.eclipse.jst.pagedesigner/configs/cm/jsp.properties
deleted file mode 100644
index f07afa0..0000000
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/configs/cm/jsp.properties
+++ /dev/null
@@ -1,37 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2006 Oracle Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# Oracle Corporation - initial API and implementation
-###############################################################################
-Attribute.Label.align=Align
-Attribute.Label.beanName=BeanName
-Attribute.Label.class=Class
-Attribute.Label.code=Code
-Attribute.Label.codebase=Codebase
-Attribute.Label.contentType=ContentType
-Attribute.Label.flush=Flush
-Attribute.Label.file=File
-Attribute.Label.height=Height
-Attribute.Label.hspace=Hspace
-Attribute.Label.id=ID
-Attribute.Label.iepluginurl=Eepluginurl
-Attribute.Label.import=Import
-Attribute.Label.jreversion=Jreversion
-Attribute.Label.name=Name
-Attribute.Label.nspluginurl=Nspluginurl
-Attribute.Label.page=Page
-Attribute.Label.param=Param
-Attribute.Label.property=Property
-Attribute.Label.scope=Scope
-Attribute.Label.type=Type
-Attribute.Label.value=Value
-Attribute.Label.version=Version
-Attribute.Label.vspace=Vspace
-Attribute.Label.width=Width
-Attribute.Label.xmlnsjsp=xmlns:jsp
-Category.Label.General=General
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/configs/cm/jsp.xml b/jsf/plugins/org.eclipse.jst.pagedesigner/configs/cm/jsp.xml
deleted file mode 100644
index 6736eef..0000000
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/configs/cm/jsp.xml
+++ /dev/null
@@ -1,119 +0,0 @@
-<?xml version="1.0" ?>
-<taglib uri="jsp">
- <tag name="declaration" />
- <tag name="expression" />
- <tag name="fallback" />
- <tag name="forward">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="page" type="RELATIVEPATH"
- typeparam="suffix=jsp;htm;html" displaylabel="%Attribute.Label.page" />
- </category>
- </tag>
- <tag name="getproperty">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="name" displaylabel="%Attribute.Label.name" />
- <attribute name="property"
- displaylabel="%Attribute.Label.property" />
- </category>
- </tag>
- <tag name="include">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="page" type="RELATIVEPATH"
- typeparam="suffix=jsp;htm;html" displaylabel="%Attribute.Label.page" />
- <attribute name="flush" type="BOOLEAN"
- displaylabel="%Attribute.Label.flush" />
- </category>
- </tag>
- <tag name="directive.include">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="file" type="RELATIVEPATH"
- typeparam="suffix=jsp;htm;html" displaylabel="%Attribute.Label.file" />
- </category>
- </tag>
- <tag name="directive.page">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="import"
- displaylabel="%Attribute.Label.import" />
- <attribute name="contentType"
- displaylabel="%Attribute.Label.contentType" />
- </category>
- </tag>
- <tag name="param">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="name" displaylabel="%Attribute.Label.name" />
- <attribute name="value"
- displaylabel="%Attribute.Label.value" />
- </category>
- </tag>
- <tag name="params" />
- <tag name="plugin">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="type" type="ENUMERATED"
- displaylabel="%Attribute.Label.type">
- <option key="applet" value="applet" />
- <option key="bean" value="bean" />
- </attribute>
- <attribute name="jreversion"
- displaylabel="%Attribute.Label.jreversion" type="ENUMERATED">
- <option key="1.2" value="1.2" />
- </attribute>
- <attribute name="nspluginurl"
- displaylabel="%Attribute.Label.nspluginurl" />
- <attribute name="iepluginurl"
- displaylabel="%Attribute.Label.iepluginurl" />
- </category>
- </tag>
- <tag name="root">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="version" type="ENUMERATED"
- displaylabel="%Attribute.Label.version">
- <option key="1.2" value="1.2" />
- <option key="2.0" value="2.0" />
- </attribute>
- <attribute name="xmlns:jsp" type="ENUMERATED"
- displaylabel="%Attribute.Label.xmlnsjsp">
- <option key="http://java.sun.com/JSP/Page" value="http://java.sun.com/JSP/Page" />
- </attribute>
- </category>
- </tag>
- <tag name="scriptlet" />
- <tag name="setproperty">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="name" displaylabel="%Attribute.Label.name" />
- <attribute name="property"
- displaylabel="%Attribute.Label.property" />
- <attribute name="param"
- displaylabel="%Attribute.Label.param" />
- <attribute name="value"
- displaylabel="%Attribute.Label.value" />
- </category>
- </tag>
- <tag name="directive.taglib" />
- <tag name="usebean">
- <category name="General"
- displaylabel="%Category.Label.General">
- <attribute name="id" displaylabel="%Attribute.Label.id" />
- <attribute name="scope" type="ENUMERATED"
- displaylabel="%Attribute.Label.scope">
- <option key="page" value="page" />
- <option key="session" value="session" />
- <option key="request" value="request" />
- <option key="application" value="application" />
- </attribute>
- <attribute name="class" type="CLASSNAME"
- displaylabel="%Attribute.Label.class" />
- <attribute name="type" displaylabel="%Attribute.Label.type" />
- <attribute name="beanName"
- displaylabel="%Attribute.Label.beanName" />
- </category>
- </tag>
-</taglib>
\ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/metadata/html.properties b/jsf/plugins/org.eclipse.jst.pagedesigner/metadata/html.properties
index 7f19286..c55c220 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/metadata/html.properties
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/metadata/html.properties
@@ -52,3 +52,45 @@
TEXTAREA.display-label=Text Area
TEXTAREA.description=The TEXTAREA element represents a multi-line text field
+
+
+any.dir.displayed-values.ltr=ltr (left-to-right)
+any.dir.displayed-values.rtl=rtl (right-to-left)
+
+any.frame.displayed-values.none=none (no sides, default value)
+any.frame.displayed-values.above=above (top side only)
+any.frame.displayed-values.below=below (bottom side only)
+any.frame.displayed-values.hsides=hsides (top and bottom sides only)
+any.frame.displayed-values.vsides=vsides (right and left sides only)
+any.frame.displayed-values.lhs=lhs (left hand side only)
+any.frame.displayed-values.rhs=rhs (right hand side only)
+any.frame.displayed-values.box=box (all four sides)
+any.frame.displayed-values.border=border (all four sides)
+
+any.rules.displayed-values.none=none (no rules, default value)
+any.rules.displayed-values.groups=groups (between row groups)
+any.rules.displayed-values.rows=rows (between rows only)
+any.rules.displayed-values.cols=cols (between columns only)
+any.rules.displayed-values.all=all (between all rows and columns)
+
+any.shape.displayed-values.default=default (entire region)
+any.shape.displayed-values.rect=rect (rectangular region)
+any.shape.displayed-values.circle=circle (circular region)
+any.shape.displayed-values.poly=poly (polygonal region)
+
+#categories
+property.category.event=Event
+property.category.language=Language
+property.category.html=HTML
+property.category.css=CSS
+property.category.general=General
+property.category.accessibility=Accessibility
+property.category.visualProperty=VisualProperty
+property.category.browser.specific=Browser Specific
+property.category.core=Core
+property.category.content=Content
+property.category.data.binding=Data Binding
+property.category.dynamic=Dynamic
+property.category.file=File
+property.category.image=Image
+
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/metadata/html.xml b/jsf/plugins/org.eclipse.jst.pagedesigner/metadata/html.xml
index 0266b15..e68391f 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/metadata/html.xml
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/metadata/html.xml
@@ -2,10 +2,11 @@
<md:metadatamodel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
xmlns:md="http://org.eclipse.jst.jsf.common.metadata/metadata.ecore"
+ xmlns:mdt="http://org.eclipse.jst.jsf.common.metadata/metadataTraitTypes.ecore"
xmlns:pi="http://org.eclipse.jsf.pagedesigner/paletteInfos.ecore"
+ xmlns:qe="http://org.eclipse.jsf.pagedesigner/quickEditTabSections.ecore"
id="HTML"
type="tagFile">
-
<trait id="paletteInfos" >
<value xsi:type="pi:PaletteInfos">
<item id="BR"/>
@@ -83,6 +84,9 @@
</trait>
<entity id="A">
+ <include-entity-group id="common-core-attributes"/>
+ <include-entity-group id="common-language-attributes"/>
+ <include-entity-group id="common-event-attributes"/>
<trait id="display-label">
<value>%A.display-label</value>
</trait>
@@ -96,7 +100,14 @@
<value>large/HTML_A.gif</value>
</trait>
</entity>
+ <entity id="BODY">
+ <include-entity-group id="common-core-attributes"/>
+ <include-entity-group id="common-language-attributes"/>
+ <include-entity-group id="common-event-attributes"/>
+ <include-entity-group id="common-html-attributes"/>
+ </entity>
<entity id="BR">
+ <include-entity-group id="common-core-attributes"/>
<trait id="display-label">
<value>%BR.display-label</value>
</trait>
@@ -114,6 +125,9 @@
</trait>
</entity>
<entity id="INPUT">
+ <include-entity-group id="common-core-attributes"/>
+ <include-entity-group id="common-language-attributes"/>
+ <include-entity-group id="common-event-attributes"/>
<trait id="display-label">
<value>%INPUT.TEXT.display-label</value>
</trait>
@@ -128,9 +142,13 @@
</trait>
<trait id="requires-html-form">
<value>true</value>
- </trait>
+ </trait>
</entity>
<entity id="FORM">
+ <include-entity-group id="common-core-attributes"/>
+ <include-entity-group id="common-language-attributes"/>
+ <include-entity-group id="common-event-attributes"/>
+ <include-entity-group id="form-event-attributes"/>
<trait id="display-label">
<value>%FORM.display-label</value>
</trait>
@@ -144,7 +162,11 @@
<value>large/HTML_FORM.gif</value>
</trait>
</entity>
+ <entity id="HEAD">
+ <include-entity-group id="common-language-attributes"/>
+ </entity>
<entity id="HR">
+ <include-entity-group id="common-core-attributes"/>
<trait id="display-label">
<value>%HR.display-label</value>
</trait>
@@ -158,7 +180,13 @@
<value>large/HTML_HR.gif</value>
</trait>
</entity>
+ <entity id="HTML">
+ <include-entity-group id="common-language-attributes"/>
+ </entity>
<entity id="IMG">
+ <include-entity-group id="common-core-attributes"/>
+ <include-entity-group id="common-language-attributes"/>
+ <include-entity-group id="common-event-attributes"/>
<trait id="display-label">
<value>%IMG.display-label</value>
</trait>
@@ -172,7 +200,28 @@
<value>large/HTML_IMG.gif</value>
</trait>
</entity>
+ <entity id="LINK">
+ <include-entity-group id="common-core-attributes"/>
+ <include-entity-group id="common-language-attributes"/>
+ <include-entity-group id="common-event-attributes"/>
+ <entity id="type">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.LinkType</value>
+ </trait>
+ </entity>
+ </entity>
+ <entity id="META">
+ <include-entity-group id="common-language-attributes"/>
+ <entity id="content">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ContentType</value>
+ </trait>
+ </entity>
+ </entity>
<entity id="SELECT">
+ <include-entity-group id="common-core-attributes"/>
+ <include-entity-group id="common-language-attributes"/>
+ <include-entity-group id="common-event-attributes"/>
<trait id="display-label">
<value>%SELECT.display-label</value>
</trait>
@@ -190,6 +239,9 @@
</trait>
</entity>
<entity id="TABLE">
+ <include-entity-group id="common-core-attributes"/>
+ <include-entity-group id="common-language-attributes"/>
+ <include-entity-group id="common-event-attributes"/>
<trait id="display-label">
<value>%TABLE.display-label</value>
</trait>
@@ -204,6 +256,9 @@
</trait>
</entity>
<entity id="TEXTAREA">
+ <include-entity-group id="common-core-attributes"/>
+ <include-entity-group id="common-language-attributes"/>
+ <include-entity-group id="common-event-attributes"/>
<trait id="display-label">
<value>%TEXTAREA.display-label</value>
</trait>
@@ -219,5 +274,448 @@
<trait id="requires-html-form">
<value>true</value>
</trait>
+ </entity>
+ <entity id="TITLE">
+ <include-entity-group id="common-language-attributes"/>
</entity>
+ <entityGroup id="common-html-attributes">
+ <entity id="align">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+ </trait>
+ <trait id="valid-values">
+ <value xsi:type="mdt:ListOfValues">
+ <item>right</item>
+ <item>char</item>
+ <item>left</item>
+ <item>center</item>
+ <item>justify</item>
+ </value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+
+ <entity id="alt">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="src">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="accesskey">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.CharacterType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="accept">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="accept-charset">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="border">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+ </trait>
+ <trait id="valid-minimum"><value>0</value></trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="disabled">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="height">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="ismap">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="longdesc">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.URIType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="maxlength">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+ </trait>
+ <trait id="valid-minimum"><value>0</value></trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="readonly">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+ </trait>
+ </entity>
+ <entity id="rel">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.LinkType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="rev">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.LinkType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="rows">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+ </trait>
+ <trait id="valid-minimum"><value>0</value></trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="shape">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+ </trait>
+ <trait id="valid-values">
+ <value xsi:type="mdt:ListOfValues">
+ <item>default</item>
+ <item>rect</item>
+ <item>circle</item>
+ <item>poly</item>
+ </value>
+ </trait>
+ <trait id="displayed-values">
+ <value xsi:type="mdt:ListOfValues">
+ <item>%any.shape.displayed-values.default</item>
+ <item>%any.shape.displayed-values.rect</item>
+ <item>%any.shape.displayed-values.circle</item>
+ <item>%any.shape.displayed-values.poly</item>
+ </value>
+ </trait>
+ <trait id="default-value">
+ <value>default</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="size">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+ </trait>
+ <trait id="valid-minimum"><value>0</value></trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="tabindex">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.IntegerType</value>
+ </trait>
+ <trait id="valid-minimum"><value>0</value></trait>
+ <trait id="valid-maximum"><value>32767</value></trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="target">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+ </trait>
+ <trait id="valid-values">
+ <value xsi:type="mdt:ListOfValues">
+ <item>_self</item>
+ <item>_blank</item>
+ <item>_parent</item>
+ <item>_top</item>
+ </value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="type">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="usemap">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="valign">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+ </trait>
+ <trait id="valid-values">
+ <value xsi:type="mdt:ListOfValues">
+ <item>middle</item>
+ <item>top</item>
+ <item>baseline</item>
+ <item>bottom</item>
+ </value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+ <entity id="width">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.LengthType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.html</value>
+ </trait>
+ </entity>
+
+ </entityGroup>
+ <entityGroup id="common-core-attributes">
+ <entity id="id">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.core</value>
+ </trait>
+ </entity>
+ <entity id="class">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.pagedesigner.attributevalues.CSSClassType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.core</value>
+ </trait>
+ </entity>
+ <entity id="style">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.core</value>
+ </trait>
+ </entity>
+ <entity id="title">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.core</value>
+ </trait>
+ </entity>
+ </entityGroup>
+ <entityGroup id="common-event-attributes">
+ <entity id="onclick">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.event</value>
+ </trait>
+ </entity>
+ <entity id="ondblclick">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.event</value>
+ </trait>
+ </entity>
+ <entity id="onmousedown">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.event</value>
+ </trait>
+ </entity>
+ <entity id="onmouseup">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.event</value>
+ </trait>
+ </entity>
+ <entity id="onmouseover">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.event</value>
+ </trait>
+ </entity>
+ <entity id="onmousemove">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.event</value>
+ </trait>
+ </entity>
+ <entity id="onmouseout">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.event</value>
+ </trait>
+ </entity>
+ <entity id="onkeypress">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.event</value>
+ </trait>
+ </entity>
+ <entity id="onkeydown">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.event</value>
+ </trait>
+ </entity>
+ <entity id="onkeyup">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.event</value>
+ </trait>
+ </entity>
+ <!--almost common events - should be refactored-->
+ <entity id="onblur">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.event</value>
+ </trait>
+ </entity>
+ <entity id="onchange">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.event</value>
+ </trait>
+ </entity>
+ <entity id="onfocus">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.event</value>
+ </trait>
+ </entity>
+ <entity id="onselect">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.event</value>
+ </trait>
+ </entity>
+ </entityGroup>
+ <entityGroup id="form-event-attributes">
+ <entity id="onsubmit">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.event</value>
+ </trait>
+ </entity>
+ <entity id="onreset">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.event</value>
+ </trait>
+ </entity>
+ </entityGroup>
+ <entityGroup id="common-language-attributes" >
+ <entity id="dir">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value>
+ </trait>
+ <trait id="valid-values">
+ <value xsi:type="mdt:ListOfValues">
+ <item>ltr</item>
+ <item>rtl</item>
+ </value>
+ </trait>
+ <trait id="displayed-values">
+ <value xsi:type="mdt:ListOfValues">
+ <item>%any.dir.displayed-values.ltr</item>
+ <item>%any.dir.displayed-values.rtl</item>
+ </value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.language</value>
+ </trait>
+ </entity>
+ <entity id="lang">
+ <trait id="attribute-value-runtime-type">
+ <value>org.eclipse.jst.jsf.core.attributevalues.LanguageCodeType</value>
+ </trait>
+ <trait id="category">
+ <value>%property.category.language</value>
+ </trait>
+ </entity>
+ </entityGroup>
</md:metadatamodel>
\ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/metadata/jsp11.properties b/jsf/plugins/org.eclipse.jst.pagedesigner/metadata/jsp11.properties
deleted file mode 100644
index 747235a..0000000
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/metadata/jsp11.properties
+++ /dev/null
@@ -1,60 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2007 Oracle Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# Oracle Corporation - initial API and implementation
-###############################################################################
-plugin.display-label=Plugin
-plugin.description=Causes the execution of an applet or bean. The applet or bean executes in the specified plugin. If the plugin is not available, displays a dialog to initiate the download of the plugin software
-
-fallback.display-label=Fallback
-fallback.description=The element provides a message for the user if the plugin does not start
-
-root.display-label=Root
-root.description=Defines standard elements and namespace attributes of tag libraries
-
-text.display-label=Text
-text.description=Encloses template data
-
-expression.display-label=Expression
-expression.description=Contains an expression valid in the scripting language used in the page
-
-scriptlet.display-label=Scriptlet
-scriptlet.description=Contains a code fragment valid in the scripting language used in the page
-
-declaration.display-label=Declaration
-declaration.description=Declares a variable or method valid in the scripting language used in the page
-
-forward.display-label=Forward
-forward.description=Forwards a request to an HTML file, JSP page, or servlet
-
-param.display-label=Param
-param.description=The element passes the name and value of a parameter to the resource
-
-params.display-label=Params
-params.description=The element sends parameter names and values to an applet or Bean at startup
-
-include.display-label=Include
-include.description=Includes a static resource or the result from another web component
-
-useBean.display-label=UseBean
-useBean.description=Instantiates or references a bean with a specific name and scope
-
-getProperty.display-label=GetProperty
-getProperty.description=Inserts the value of a bean property into the response
-
-setProperty.display-label=SetProperty
-setProperty.description=Sets a bean property value or values
-
-directive.include.display-label=Directive.Include
-directive.include.description=Includes a resource of text or code when the JSP page is translated
-
-directive.page.display-label=Directive.Page
-directive.page.description=Defines attributes that apply to an entire JSP page
-
-directive.taglib.display-label=Directive.Taglib
-directive.taglib.description=Defines a tag library and prefix for the custom tags used in the JSP page
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/metadata/jsp11.xml b/jsf/plugins/org.eclipse.jst.pagedesigner/metadata/jsp11.xml
deleted file mode 100644
index df0690e..0000000
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/metadata/jsp11.xml
+++ /dev/null
@@ -1,282 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<md:metadatamodel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
- xmlns:md="http://org.eclipse.jst.jsf.common.metadata/metadata.ecore"
- xmlns:pi="http://org.eclipse.jsf.pagedesigner/paletteInfos.ecore"
- id="jsp11"
- type="tagFile">
-
- <trait id="paletteInfos">
- <value xsi:type="pi:PaletteInfos">
- <item id="jsp:directive.include"/>
- <item id="jsp:directive.taglib"/>
- <item id="jsp:expression"/>
- <item id="jsp:declaration"/>
- <item id="jsp:useBean"/>
- <item id="jsp:getProperty"/>
- <item id="jsp:setProperty"/>
- <item id="jsp:include"/>
- <item id="jsp:text"/>
- <item id="jsp:root"/>
- <item id="jsp:forward"/>
- <item id="jsp:param"/>
- <item id="jsp:params"/>
- <item id="jsp:plugin"/>
- <item id="jsp:fallback"/>
- <item id="jsp:scriptlet"/>
- <item id="jsp:directive.page"/>
- </value>
- </trait>
-
- <trait id="images-base-path">
- <value>icons/palette/JSP</value>
- </trait>
-
- <trait id="display-label">
- <value>JSP</value>
- </trait>
-
- <entity id="jsp:directive.include">
- <trait id="display-label">
- <value>%directive.include.display-label</value>
- </trait>
- <trait id="description">
- <value>%directive.include.description</value>
- </trait>
- <trait id="small-icon">
- <value>small/JSP_DIRECTIVE.INCLUDE.gif</value>
- </trait>
- <trait id="large-icon">
- <value>large/JSP_DIRECTIVE.INCLUDE.gif</value>
- </trait>
- </entity>
- <entity id="jsp:directive.page">
- <trait id="display-label">
- <value>%directive.page.display-label</value>
- </trait>
- <trait id="description">
- <value>%directive.page.description</value>
- </trait>
- <trait id="small-icon">
- <value>small/JSP_DIRECTIVE.PAGE.gif</value>
- </trait>
- <trait id="large-icon">
- <value>large/JSP_DIRECTIVE.PAGE.gif</value>
- </trait>
- </entity>
-
- <entity id="jsp:directive.taglib">
- <trait id="display-label">
- <value>%directive.taglib.display-label</value>
- </trait>
- <trait id="description">
- <value>%directive.taglib.description</value>
- </trait>
- <trait id="small-icon">
- <value>small/JSP_DIRECTIVE.TAGLIB.gif</value>
- </trait>
- <trait id="large-icon">
- <value>large/JSP_DIRECTIVE.TAGLIB.gif</value>
- </trait>
- </entity>
- <entity id="jsp:expression">
- <trait id="display-label">
- <value>%expression.display-label</value>
- </trait>
- <trait id="description">
- <value>%expression.description</value>
- </trait>
- <trait id="small-icon">
- <value>small/JSP_EXPRESSION.gif</value>
- </trait>
- <trait id="large-icon">
- <value>large/JSP_EXPRESSION.gif</value>
- </trait>
- </entity>
- <entity id="jsp:declaration">
- <trait id="display-label">
- <value>%declaration.display-label</value>
- </trait>
- <trait id="description">
- <value>%declaration.description</value>
- </trait>
- <trait id="small-icon">
- <value>small/JSP_DECLARATION.gif</value>
- </trait>
- <trait id="large-icon">
- <value>large/JSP_DECLARATION.gif</value>
- </trait>
- </entity>
- <entity id="jsp:useBean">
- <trait id="display-label">
- <value>%useBean.display-label</value>
- </trait>
- <trait id="description">
- <value>%useBean.description</value>
- </trait>
- <trait id="small-icon">
- <value>small/JSP_USEBEAN.gif</value>
- </trait>
- <trait id="large-icon">
- <value>large/JSP_USEBEAN.gif</value>
- </trait>
- </entity>
-
- <entity id="jsp:getProperty">
- <trait id="display-label">
- <value>%getProperty.display-label</value>
- </trait>
- <trait id="description">
- <value>%getProperty.description</value>
- </trait>
- <trait id="small-icon">
- <value>small/JSP_GETPROPERTY.gif</value>
- </trait>
- <trait id="large-icon">
- <value>large/JSP_GETPROPERTY.gif</value>
- </trait>
- </entity>
-
- <entity id="jsp:setProperty">
- <trait id="display-label">
- <value>%setProperty.display-label</value>
- </trait>
- <trait id="description">
- <value>%setProperty.description</value>
- </trait>
- <trait id="small-icon">
- <value>small/JSP_SETPROPERTY.gif</value>
- </trait>
- <trait id="large-icon">
- <value>large/JSP_SETPROPERTY.gif</value>
- </trait>
- </entity>
- <entity id="jsp:include">
- <trait id="display-label">
- <value>%include.display-label</value>
- </trait>
- <trait id="description">
- <value>%include.description</value>
- </trait>
- <trait id="small-icon">
- <value>small/JSP_INCLUDE.gif</value>
- </trait>
- <trait id="large-icon">
- <value>large/JSP_INCLUDE.gif</value>
- </trait>
- </entity>
-
- <entity id="jsp:text">
- <trait id="display-label">
- <value>%text.display-label</value>
- </trait>
- <trait id="description">
- <value>%text.description</value>
- </trait>
- <trait id="small-icon">
- <value>small/JSP_TEXT.gif</value>
- </trait>
- <trait id="large-icon">
- <value>large/JSP_TEXT.gif</value>
- </trait>
- </entity>
- <entity id="jsp:root">
- <trait id="display-label">
- <value>%root.display-label</value>
- </trait>
- <trait id="description">
- <value>%root.description</value>
- </trait>
- <trait id="small-icon">
- <value>small/JSP_ROOT.gif</value>
- </trait>
- <trait id="large-icon">
- <value>large/JSP_ROOT.gif</value>
- </trait>
- </entity>
- <entity id="jsp:forward">
- <trait id="display-label">
- <value>%forward.display-label</value>
- </trait>
- <trait id="description">
- <value>%forward.description</value>
- </trait>
- <trait id="small-icon">
- <value>small/JSP_FORWARD.gif</value>
- </trait>
- <trait id="large-icon">
- <value>large/JSP_FORWARD.gif</value>
- </trait>
- </entity>
-
- <entity id="jsp:param">
- <trait id="display-label">
- <value>%param.display-label</value>
- </trait>
- <trait id="description">
- <value>%param.description</value>
- </trait>
- <trait id="small-icon">
- <value>small/JSP_PARAM.gif</value>
- </trait>
- <trait id="large-icon">
- <value>large/JSP_PARAM.gif</value>
- </trait>
- </entity>
- <entity id="jsp:params">
- <trait id="display-label">
- <value>%params.display-label</value>
- </trait>
- <trait id="description">
- <value>%params.description</value>
- </trait>
- <trait id="small-icon">
- <value>small/JSP_PARAMS.gif</value>
- </trait>
- <trait id="large-icon">
- <value>large/JSP_PARAMS.gif</value>
- </trait>
- </entity>
- <entity id="jsp:plugin">
- <trait id="display-label">
- <value>%plugin.display-label</value>
- </trait>
- <trait id="description">
- <value>%plugin.description</value>
- </trait>
- <trait id="small-icon">
- <value>small/JSP_PLUGIN.gif</value>
- </trait>
- <trait id="large-icon">
- <value>large/JSP_PLUGIN.gif</value>
- </trait>
- </entity>
- <entity id="jsp:fallback">
- <trait id="display-label">
- <value>%fallback.display-label</value>
- </trait>
- <trait id="description">
- <value>%fallback.description</value>
- </trait>
- <trait id="small-icon">
- <value>small/JSP_FALLBACK.gif</value>
- </trait>
- <trait id="large-icon">
- <value>large/JSP_FALLBACK.gif</value>
- </trait>
- </entity>
- <entity id="jsp:scriptlet">
- <trait id="display-label">
- <value>%scriptlet.display-label</value>
- </trait>
- <trait id="description">
- <value>%scriptlet.description</value>
- </trait>
- <trait id="small-icon">
- <value>small/JSP_SCRIPTLET.gif</value>
- </trait>
- <trait id="large-icon">
- <value>large/JSP_SCRIPTLET.gif</value>
- </trait>
- </entity>
-</md:metadatamodel>
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/model/QuickEditTabSections.ecore b/jsf/plugins/org.eclipse.jst.pagedesigner/model/QuickEditTabSections.ecore
new file mode 100644
index 0000000..5b3c237
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/model/QuickEditTabSections.ecore
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="quickedittabsections"
+ nsURI="http://org.eclipse.jsf.pagedesigner/QuickEditTabSections.ecore" nsPrefix="qe">
+ <eClassifiers xsi:type="ecore:EClass" name="QuickEditTabSections">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sections" upperBound="-1"
+ eType="#//SectionInfo" containment="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="section"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SectionInfo">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" unique="false" eType="#//SECTION_TYPE"
+ defaultValueLiteral="ATTRIBUTE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="SECTION_TYPE">
+ <eLiterals name="ATTRIBUTE"/>
+ <eLiterals name="SECTION" value="1"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/model/QuickEditTabSections.genmodel b/jsf/plugins/org.eclipse.jst.pagedesigner/model/QuickEditTabSections.genmodel
new file mode 100644
index 0000000..4aed6be
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/model/QuickEditTabSections.genmodel
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2007 Oracle Corporation"
+ modelDirectory="/org.eclipse.jst.pagedesigner/src" editDirectory="/org.eclipse.jst.pagedesigner/src"
+ editorDirectory="/org.eclipse.jst.pagedesigner/src" modelPluginID="org.eclipse.jst.pagedesigner"
+ modelName="QuickEditTabSections" editPluginClass="org.eclipse.jst.pagedesigner.PDPlugin"
+ editorPluginClass="/org.eclipse.jst.pagedesigner.PDPlugin" importerID="org.eclipse.emf.importer.ecore"
+ complianceLevel="5.0" providerRootExtendsClass="">
+ <foreignModel>QuickEditTabSections.ecore</foreignModel>
+ <genPackages prefix="QuickEditTabSections" basePackage="org.eclipse.jst.pagedesigner.editors.properties"
+ disposableProviderFactory="true" classPackageSuffix="internal.impl" utilityPackageSuffix="internal.util"
+ providerPackageSuffix="internal.provider" presentationPackageSuffix="internal.presentation"
+ testsPackageSuffix="internal.tests" generateExampleClass="false" multipleEditorPages="false"
+ generateModelWizard="false" ecorePackage="QuickEditTabSections.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="QuickEditTabSections.ecore#//SECTION_TYPE">
+ <genEnumLiterals ecoreEnumLiteral="QuickEditTabSections.ecore#//SECTION_TYPE/ATTRIBUTE"/>
+ <genEnumLiterals ecoreEnumLiteral="QuickEditTabSections.ecore#//SECTION_TYPE/GROUP"/>
+ </genEnums>
+ <genClasses ecoreClass="QuickEditTabSections.ecore#//QuickEditTabSections">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QuickEditTabSections.ecore#//QuickEditTabSections/sections"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="QuickEditTabSections.ecore#//Section">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute QuickEditTabSections.ecore#//Section/id"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute QuickEditTabSections.ecore#//Section/type"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/plugin.properties b/jsf/plugins/org.eclipse.jst.pagedesigner/plugin.properties
index 8329c1c..06eb37f 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/plugin.properties
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/plugin.properties
@@ -24,4 +24,4 @@
command.name.0 = vertical Layout
command.name.1 = horizontal Layout
command.name.2 = graphical designer
-command.name.3 = source code
\ No newline at end of file
+command.name.3 = source code
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/plugin.xml b/jsf/plugins/org.eclipse.jst.pagedesigner/plugin.xml
index 40e2e83..4e79871 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/plugin.xml
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/plugin.xml
@@ -11,7 +11,7 @@
<editor class="org.eclipse.jst.pagedesigner.editors.HTMLEditor"
contributorClass="org.eclipse.jst.pagedesigner.editors.actions.PageDesignerActionBarContributor2"
default="false"
- extensions="jsp,jsf,html,htm,xhtml"
+ extensions="jsp,jspx,jsf,html,htm,xhtml"
icon="icons/PD_Plugin.gif"
id="org.eclipse.jst.pagedesigner.PageDesignerEditor"
name="%editor.name.0">
@@ -32,34 +32,28 @@
</factory>
</extension>
- <extension point="org.eclipse.wst.common.ui.properties.propertyTabs">
+ <extension
+ point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
<propertyTabs
- contributorId="org.eclipse.jst.pagedesigner.pageDesigner.tabPropertyContributor">
+ contributorId="org.eclipse.jst.pagedesigner.tabPropertyContributor">
<propertyTab label="Quick Edit" category="Quick Edit" id="org.eclipse.jst.pagedesigner.tabQuickEdit" />
<propertyTab label="Attributes" category="Attributes" id="org.eclipse.jst.pagedesigner.tabAttributes" />
</propertyTabs>
- </extension>
-
- <extension
- point="org.eclipse.wst.common.ui.properties.propertyContributor">
- <propertyContributor
- sectionDescriptorProvider="org.eclipse.jst.pagedesigner.properties.internal.DesignerTabPropertySectionDescriptorProvider"
- contributorId="org.eclipse.jst.pagedesigner.pageDesigner.tabPropertyContributor">
- <propertyCategory category="Quick Edit" />
- <propertyCategory category="Attributes" />
- </propertyContributor>
- </extension>
-
- <extension
- point="org.eclipse.jst.pagedesigner.propertySections">
- <propertySections>
- <propertySection afterSection="top"
- class="org.eclipse.jst.pagedesigner.properties.AllPropertySection"
- tab="org.eclipse.jst.pagedesigner.tabAttributes"
- id="section.allproperty" />
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.views.properties.tabbed.propertySections">
+ <propertySections
+ contributorId="org.eclipse.jst.pagedesigner.tabPropertyContributor">
+ <propertySection
+ afterSection="top"
+ class="org.eclipse.jst.pagedesigner.properties.AllPropertySection"
+ id="section.allproperty"
+ tab="org.eclipse.jst.pagedesigner.tabAttributes">
+ </propertySection>
</propertySections>
</extension>
-
+
<extension point="org.eclipse.jst.pagedesigner.pageDesignerExtension">
<linkCreator class="org.eclipse.jst.pagedesigner.actions.link.HtmlLinkCreator" linkIdentifier="Html Link"/>
</extension>
@@ -115,6 +109,11 @@
genModel="model/DTInfo.genmodel"
uri="http://org.eclipse.jsf.pagedesigner/dtinfo.ecore">
</package>
+ <package
+ class="org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSectionsPackage"
+ genModel="model/QuickEditTabSections.genmodel"
+ uri="http://org.eclipse.jsf.pagedesigner/QuickEditTabSections.ecore">
+ </package>
</extension>
<extension
point="org.eclipse.jst.jsf.common.standardMetaDataFiles">
@@ -131,6 +130,22 @@
</domainSourceModelTypeTranslator>
</extension>
<extension
+ point="org.eclipse.jst.jsf.common.domainSourceModelTypes">
+ <domainSourceModelTypes
+ domainId="TagLibraryDomain"
+ domainSourceModelTypeId="SybaseCMConfigContentModelHandler"
+ locator="org.eclipse.jst.pagedesigner.internal.metadata.SybaseCMConfigMetaDataLocator"
+ ordinal="0">
+ </domainSourceModelTypes>
+ </extension>
+ <extension
+ point="org.eclipse.jst.jsf.common.domainSourceModelTypeTranslators">
+ <domainSourceModelTypeTranslator
+ domainSourceModelTypeId="SybaseCMConfigContentModelHandler"
+ translatorClass="org.eclipse.jst.pagedesigner.internal.metadata.SybaseCMConfigMetaDataTranslator">
+ </domainSourceModelTypeTranslator>
+ </extension>
+ <extension
point="org.eclipse.ui.contexts">
<context
description="%editor.binding.context.description"
@@ -139,4 +154,31 @@
parentId="org.eclipse.ui.textEditorScope">
</context>
</extension>
+ <extension
+ point="org.eclipse.jst.jsf.core.MetaDataEnabledFeatures">
+ <MetaDataEnabledFeature
+ class="org.eclipse.jst.pagedesigner.editors.properties.internal.PropertyDescriptor"
+ typeid="org.eclipse.jst.jsf.core.attributevalues.BaseType">
+ </MetaDataEnabledFeature>
+ </extension>
+ <extension
+ point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
+ <propertyContributor
+ contributorId="org.eclipse.jst.pagedesigner.tabPropertyContributor"
+ tabDescriptorProvider="org.eclipse.jst.pagedesigner.properties.internal.WPETabDescriptorProvider">
+ <propertyCategory></propertyCategory>
+ </propertyContributor>
+ </extension>
+ <extension
+ point="org.eclipse.jst.jsf.core.AttributeValueRuntimeTypes">
+ <attributeValueRuntimeType
+ class="org.eclipse.jst.pagedesigner.taglibprocessing.CSSClassType"
+ id="attributevalues.CSSClassType"/>
+ <attributeValueRuntimeType
+ class="org.eclipse.jst.pagedesigner.taglibprocessing.CSSIdType"
+ id="attributevalues.CSSIdType"/>
+ <attributeValueRuntimeType
+ class="org.eclipse.jst.pagedesigner.taglibprocessing.CSSStyleType"
+ id="attributevalues.CSSStyleType"/>
+ </extension>
</plugin>
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/schema/pageDesignerExtension.exsd b/jsf/plugins/org.eclipse.jst.pagedesigner/schema/pageDesignerExtension.exsd
index 9b45509..4a5b2e9 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/schema/pageDesignerExtension.exsd
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/schema/pageDesignerExtension.exsd
@@ -59,6 +59,11 @@
</element>
<element name="attributeCellEditorFactory">
+ <annotation>
+ <documentation>
+ deprecated - use tagAttributeCellEditorFactory
+ </documentation>
+ </annotation>
<complexType>
<attribute name="class" type="string">
<annotation>
@@ -66,7 +71,27 @@
</documentation>
<appInfo>
- <meta.attribute kind="java"/>
+ <meta.attribute kind="java" deprecated="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="tagAttributeCellEditorFactory">
+ <annotation>
+ <documentation>
+ provides ability for 3rd parties to supply their own cell and dialog field editors for MD enabled tag library attributes in the WPE tabbed property sheets
+ </documentation>
+ </annotation>
+ <complexType>
+ <attribute name="class" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.jst.pagedesigner.meta.ITagAttributeCellEditorFactory"/>
</appInfo>
</annotation>
</attribute>
@@ -134,6 +159,9 @@
</documentation>
</annotation>
+
+
+
<annotation>
<appInfo>
<meta.section type="copyright"/>
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/IJMTConstants.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/IJMTConstants.java
index 595df0a..2cce71e 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/IJMTConstants.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/IJMTConstants.java
@@ -69,11 +69,16 @@
public static final String TAG_CONVERTER_FACTORY = "tagConverterFactory"; //$NON-NLS-1$
/**
- * local name of attribute celleditor factory extension
+ * local name of attribute cell editor factory extension
+ * @deprecated and unused
*/
public static final String ATTRIBUTE_CELLEDITOR_FACTORY = "attributeCellEditorFactory"; //$NON-NLS-1$
/**
+ * local name of tag attribute cell editor factory extension
+ */
+ public static final String TAG_ATTRIBUTE_CELLEDITOR_FACTORY = "tagAttributeCellEditorFactory"; //$NON-NLS-1$
+ /**
* local name of element edit factory extension
*/
public static final String ELEMENT_EDIT_FACTORY = "elementEditFactory"; //$NON-NLS-1$
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/JMTResources.properties b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/JMTResources.properties
index fdf992d..697eafb 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/JMTResources.properties
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/JMTResources.properties
@@ -238,4 +238,7 @@
Error.TagCreatorMustBeOfType=ITagCreator instances must be of type {0}.
Error.ProblemLoadingExtensionPoint=Problem loading ITagCreatorFactory extension Point
Error.ProblemLoadingTagCreatorFactory=Problem loading tag creator factory: {0}
-Error.ProblemLoadingExecutingTagCreator=Problem executing tag creator: {0}
\ No newline at end of file
+Error.ProblemLoadingExecutingTagCreator=Problem executing tag creator: {0}
+
+#Property Sheet
+QuickEditTab.no_quick_edit_md=No quick edit properties are available for the current selection
\ No newline at end of file
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/HTMLEditor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/HTMLEditor.java
index e517d3a..264a745 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/HTMLEditor.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/HTMLEditor.java
@@ -29,6 +29,7 @@
import org.eclipse.gef.ui.palette.PaletteViewerProvider;
import org.eclipse.gef.ui.views.palette.PalettePage;
import org.eclipse.gef.ui.views.palette.PaletteViewerPage;
+import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.TextSelection;
import org.eclipse.jface.viewers.IPostSelectionProvider;
import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -68,7 +69,7 @@
import org.eclipse.ui.part.MultiPageSelectionProvider;
import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySheetPageContributor;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
import org.eclipse.wst.common.ui.provisional.editors.PostMultiPageEditorSite;
import org.eclipse.wst.common.ui.provisional.editors.PostMultiPageSelectionProvider;
import org.eclipse.wst.common.ui.provisional.editors.PostSelectionMultiPageEditorPart;
@@ -89,11 +90,11 @@
IPropertyListener, ITabbedPropertySheetPageContributor {
// private static final String PAGE_NAME_DESIGN = "Design"; //$NON-NLS-1$
// private static final String PAGE_NAME_SOURCE = "Source"; //$NON-NLS-1$
- private final static String CONTRIBUTOR_ID = "org.eclipse.jst.pagedesigner.pageDesigner.tabPropertyContributor"; //$NON-NLS-1$
+ public final static String TABBED_PROPERTIES_CONTRIBUTOR_ID = "org.eclipse.jst.pagedesigner.tabPropertyContributor"; //$NON-NLS-1$
// four different modes for the designer when displayed in a sash editor.
/**
- * editor split is veritical
+ * editor split is vertical
*/
public static final int MODE_SASH_VERTICAL = 0;
@@ -172,7 +173,7 @@
* @see com.ibm.xtools.common.ui.properties.ITabbedPropertySheetPageContributor#getContributorId()
*/
public String getContributorId() {
- return CONTRIBUTOR_ID;
+ return TABBED_PROPERTIES_CONTRIBUTOR_ID;
}
private void connectSashPage() {
@@ -581,6 +582,22 @@
/**
+ * IExtendedSimpleEditor method
+ */
+ public IDocument getDocument() {
+ if (getTextEditor() == null) {
+ return null;
+ }
+
+ Object apapter = _textEditor.getAdapter(ISourceEditingTextTools.class);
+ if (apapter != null) {
+ return ((ISourceEditingTextTools) apapter).getDocument();
+ }
+
+ return null;
+ }
+
+ /**
* IExtendedMarkupEditor method
* @return the dom document
*/
@@ -814,7 +831,7 @@
}
private IPropertySheetPage getPropertySheetPage() {
- return new org.eclipse.jst.pagedesigner.properties.DesignerTabbedPropertySheetPage(
+ return new org.eclipse.jst.pagedesigner.properties.WPETabbedPropertySheetPage(
this, this);
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/internal/metadata/HTMLContentModelMetaDataTranslator.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/internal/metadata/HTMLContentModelMetaDataTranslator.java
index 2c24cec..de78365 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/internal/metadata/HTMLContentModelMetaDataTranslator.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/internal/metadata/HTMLContentModelMetaDataTranslator.java
@@ -13,6 +13,7 @@
import org.eclipse.jst.jsf.common.metadata.internal.AbstractTagLibDomainContentModelMetaDataTranslator;
import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataModelMergeAssistant;
+import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataSourceModelProvider;
import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataTranslator;
import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDocument;
import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
@@ -22,6 +23,13 @@
*/
public class HTMLContentModelMetaDataTranslator extends AbstractTagLibDomainContentModelMetaDataTranslator implements IMetaDataTranslator {
+ public boolean canTranslate(IMetaDataSourceModelProvider modelProvider) {
+ if (modelProvider.getSourceModel() != null &&
+ modelProvider.getSourceModel() instanceof HTMLCMDocument)
+ return true;
+ return false;
+ }
+
/* (non-Javadoc)
* @see org.eclipse.jst.jsf.common.metadata.internal.IMetaDataTranslator#translate(org.eclipse.jst.jsf.common.metadata.internal.IMetaDataModelMergeAssistant)
*/
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/IPropertyPageDescriptor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/IPropertyPageDescriptor.java
new file mode 100644
index 0000000..3000893
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/IPropertyPageDescriptor.java
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.editors.properties;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField;
+import org.eclipse.jst.jsf.metadataprocessors.IMetaDataEnabledFeature;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * Property descriptor for metadata enabled tag attributes in the WPE property pages
+ */
+public interface IPropertyPageDescriptor extends IMetaDataEnabledFeature, IAdaptable{
+ /**
+ * Trait id for defining quick edit tab sections. Value must be of type qe:QuickEditTabSections
+ * eg. <value xsi:type="qe:QuickEditTabSections">
+ */
+ public static final String QUICK_EDIT_TAB = "quick-edit-tab";
+ /**
+ * Trait id for category name value
+ */
+ public static final String PROP_DESC_CATEGORY = "category";
+
+// /**
+// * Trait id for fully qualified cell editor class name
+// */
+// public static final String PROP_DESC_CELL_EDITOR = "cell-editor";
+// /**
+// * Trait id for fully qualified dialog field editor name
+// */
+// public static final String PROP_DESC_DIALOG_FIELD_EDITOR = "dialog-field-editor";
+
+ /**
+ * @return name of attribute. Must not be null.
+ */
+ public String getAttributeName();
+ /**
+ * @return category name. Must not be null.
+ */
+ public String getCategory();
+ /**
+ * @return label to use. Must not be null.
+ */
+ public String getLabel();
+ /**
+ * @return description. May return null.
+ */
+ public String getDescription();
+ /**
+ * @return whether this is a required property. Default false.
+ */
+ public boolean isRequired();
+ /**
+ * @param parent
+ * @return cell editor to use. May be null.
+ */
+ public CellEditor getCellEditor(Composite parent);
+ /**
+ * @return dialog field editor to use. May be null.
+ */
+ public DialogField getDialogFieldEditor();
+ /**
+ * @return uri. Must not be null.
+ */
+ public String getUri();
+ /**
+ * @return tag name. Must not be null.
+ */
+ public String getTagName();
+ /**
+ * @return fully qualified attribute-value-runtime-type as String
+ */
+ public String getValueType();
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/internal/EditorValidatorAdapter.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/internal/EditorValidatorAdapter.java
new file mode 100644
index 0000000..a2f6304
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/internal/EditorValidatorAdapter.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.editors.properties.internal;
+
+import org.eclipse.jface.dialogs.IInputValidator;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.jst.jsf.metadataprocessors.features.IValidValues;
+import org.eclipse.jst.jsf.metadataprocessors.features.IValidationMessage;
+
+/**
+ * Adapts IValidValues to ICellEditorValidator
+ *
+ */
+public class EditorValidatorAdapter implements ICellEditorValidator, IInputValidator {
+
+ private IValidValues _vvs;
+
+ /**
+ * Constructor
+ * @param vvs
+ */
+ public EditorValidatorAdapter(IValidValues vvs) {
+ _vvs = vvs;
+ }
+
+ public String isValid(Object value) {
+ //for now, if value is not a string, return true
+ if (value instanceof String)
+ return isValid((String)value);
+ return null;
+ }
+
+ public String isValid(String value) {
+ _vvs.getValidationMessages().clear();
+ if (_vvs.isValidValue(value))
+ return null;//is valid
+
+ return ((IValidationMessage)_vvs.getValidationMessages().get(0)).getMessage();
+
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/internal/PropertyDescriptor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/internal/PropertyDescriptor.java
new file mode 100644
index 0000000..e01d91d
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/internal/PropertyDescriptor.java
@@ -0,0 +1,195 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.editors.properties.internal;
+
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.jface.dialogs.IInputValidator;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.jst.jsf.common.metadata.Entity;
+import org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField;
+import org.eclipse.jst.jsf.context.resolver.structureddocument.IStructuredDocumentContextResolverFactory;
+import org.eclipse.jst.jsf.metadataprocessors.AbstractMetaDataEnabledFeature;
+import org.eclipse.jst.jsf.metadataprocessors.IMetaDataEnabledFeature;
+import org.eclipse.jst.jsf.metadataprocessors.MetaDataEnabledProcessingFactory;
+import org.eclipse.jst.jsf.metadataprocessors.TaglibMetadataContext;
+import org.eclipse.jst.jsf.metadataprocessors.features.IDefaultValue;
+import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
+import org.eclipse.jst.jsf.metadataprocessors.features.IValidValues;
+import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
+import org.eclipse.jst.pagedesigner.meta.EditorCreator;
+import org.eclipse.jst.pagedesigner.meta.internal.CellEditorFactoryRegistry;
+import org.eclipse.jst.pagedesigner.properties.ITabbedPropertiesConstants;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.views.properties.IPropertyDescriptor;
+import org.w3c.dom.Element;
+
+/**
+ * MD enabled feature of an attribute value runtime type allowing for the tabbed property
+ * page to work
+ *
+ */
+public class PropertyDescriptor extends AbstractMetaDataEnabledFeature
+ implements IMetaDataEnabledFeature, IPropertyPageDescriptor, IAdaptable {
+
+ /**
+ * Constructor
+ */
+ public PropertyDescriptor() {
+ // TODO Auto-generated constructor stub
+ }
+
+ //IPropertyPageDescriptor
+ public String getCategory() {
+ String cat = getTraitValueAsString(IPropertyPageDescriptor.PROP_DESC_CATEGORY);
+ return cat != null ? cat : ITabbedPropertiesConstants.OTHER_CATEGORY;
+ }
+
+ public CellEditor getCellEditor(Composite parent) {
+// TODO: allow for override of the factory by using MD
+// Trait trait = TaglibDomainMetaDataQueryHelper.getTrait(
+// getMetaDataContext().getEntity(),
+// IPropertyPageDescriptor.PROP_DESC_CELL_EDITOR);
+//
+// if (trait != null) {
+// String classname = TraitValueHelper.getValueAsString(trait);
+// if (classname != null && ! classname.equals("")){
+// try {
+// Class klass = PDPlugin.getDefault().getBundle().loadClass(classname);
+// if (klass != null){
+// //
+// }
+// } catch (ClassNotFoundException e) {//
+// String msg = "Unable to locate cell editor:"+classname+ " for "+toString();
+// PDPlugin.getDefault().getLog().log(new Status(IStatus.ERROR, PDPlugin.getPluginId(), msg));
+// }
+// }
+// }
+ //otherwise use factory
+ Element element = (Element)IStructuredDocumentContextResolverFactory.INSTANCE.getDOMContextResolver(getStructuredDocumentContext()).getNode();
+ return CellEditorFactoryRegistry.getInstance().createCellEditor(parent, this, element);
+ }
+
+ public String getDescription() {
+ return getTraitValueAsString("description");
+ }
+
+ public String getLabel() {
+ String label = getTraitValueAsString("display-label");
+ if (label == null) {
+ label = getMetaDataContext().getEntity().getId();
+ }
+ return label;
+ }
+
+ public boolean isRequired() {
+ return getTraitValueAsBoolean("required");
+ }
+
+ public DialogField getDialogFieldEditor() {
+ //TODO: allow for override of the factory by using MD
+// Trait trait = TaglibDomainMetaDataQueryHelper.getTrait(
+// getMetaDataContext().getEntity(),
+// IPropertyPageDescriptor.PROP_DESC_DIALOG_FIELD_EDITOR);
+//
+// if (trait != null) {
+// String classname = TraitValueHelper.getValueAsString(trait);
+// if (classname != null && ! classname.equals("")){
+// try {
+// Class klass = PDPlugin.getDefault().getBundle().loadClass(classname);
+// if (klass != null){
+// //
+// }
+// } catch (ClassNotFoundException e) {//
+// String msg = "Unable to locate cell editor:"+classname+ " for "+toString();
+// PDPlugin.getDefault().getLog().log(new Status(IStatus.ERROR, PDPlugin.getPluginId(), msg));
+// }
+// }
+// }
+ //otherwise use factory
+ EditorCreator creator = EditorCreator.getInstance();
+ return creator.createDialogFieldWithWrapper(getUri(),
+ getTagName(),this, null);
+ }
+
+ public String getTagName() {
+ return getTagEntity().getId();
+ }
+
+ public String getUri() {
+ return ((TaglibMetadataContext)getMetaDataContext()).getUri();
+ }
+
+ public String getValueType() {
+ return getTraitValueAsString(MetaDataEnabledProcessingFactory.ATTRIBUTE_VALUE_RUNTIME_TYPE_PROP_NAME);
+ }
+
+ public String getAttributeName() {
+ return ((TaglibMetadataContext)getMetaDataContext()).getAttributeName();
+ }
+
+ public Object getAdapter(Class adapter) {
+ if (IPropertyDescriptor.class == adapter) {
+ return new PropertyDescriptorAdapter(this);
+ }
+ else if (IPossibleValues.class == adapter) {
+ List pvs = MetaDataEnabledProcessingFactory.getInstance().getAttributeValueRuntimeTypeFeatureProcessors(
+ IPossibleValues.class,
+ getStructuredDocumentContext(),
+ getAttributeEntity());
+ if (!pvs.isEmpty())
+ return pvs.get(0);
+ }
+ else if (IDefaultValue.class == adapter) {
+ List dvs = MetaDataEnabledProcessingFactory.getInstance().getAttributeValueRuntimeTypeFeatureProcessors(
+ IDefaultValue.class,
+ getStructuredDocumentContext(),
+ getAttributeEntity());
+ if (!dvs.isEmpty())
+ return dvs.get(0);
+ }
+ else if (ICellEditorValidator.class == adapter) {
+ IValidValues vvs = (IValidValues)getAdapter(IValidValues.class);
+ if (vvs != null)
+ return new EditorValidatorAdapter(vvs);
+
+ }
+ else if (IInputValidator.class == adapter) {
+ IValidValues vvs = (IValidValues)getAdapter(IValidValues.class);
+ if (vvs != null)
+ return new EditorValidatorAdapter(vvs);
+ }
+ else if (IValidValues.class == adapter) {
+ List vvs = MetaDataEnabledProcessingFactory.getInstance().getAttributeValueRuntimeTypeFeatureProcessors(
+ IValidValues.class,
+ getStructuredDocumentContext(),
+ getAttributeEntity());
+ if (!vvs.isEmpty())
+ return vvs.get(0);
+ }
+ return null;
+ }
+
+ private Entity getTagEntity() {
+ return (Entity)getAttributeEntity().eContainer();
+ }
+
+ private Entity getAttributeEntity() {
+ return getMetaDataContext().getEntity();
+ }
+
+ public String toString() {
+ return getUri()+"/"+getTagName()+"/"+getAttributeName();
+ }
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/internal/PropertyDescriptorAdapter.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/internal/PropertyDescriptorAdapter.java
new file mode 100644
index 0000000..a946b29
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/internal/PropertyDescriptorAdapter.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.editors.properties.internal;
+
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.views.properties.IPropertyDescriptor;
+
+/**
+ * Adapts the MetadataEnabledFeature <code>org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor</code>, to a <code>org.eclipse.ui.views.properties.IPropertyDescriptor</code>
+ *
+ */
+public class PropertyDescriptorAdapter implements IPropertyDescriptor{
+
+ private IPropertyPageDescriptor _ppd;
+
+ /**
+ * Constructor
+ * @param propertyPageDescriptor
+ */
+ public PropertyDescriptorAdapter(IPropertyPageDescriptor propertyPageDescriptor) {
+ _ppd = propertyPageDescriptor;
+ }
+
+ public CellEditor createPropertyEditor(Composite parent) {
+ return _ppd.getCellEditor(parent);
+ }
+
+ public String getCategory() {
+ return _ppd.getCategory();
+ }
+
+ public String getDescription() {
+ return _ppd.getDescription();
+ }
+
+ public String getDisplayName() {
+ return _ppd.getAttributeName();
+ }
+
+ public String[] getFilterFlags() {
+ return null;
+ }
+
+ public Object getHelpContextIds() {
+ return null;//FIXME
+ }
+
+ public Object getId() {
+ return _ppd.getAttributeName();
+ }
+
+ public ILabelProvider getLabelProvider() {
+ return null;//FIXME: do better? Used to supply labels for attribute property sheet (not quick edit)
+ }
+
+ public boolean isCompatibleWith(IPropertyDescriptor anotherProperty) {
+ return false;
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/QuickEditTabSections.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/QuickEditTabSections.java
new file mode 100644
index 0000000..f0cfad4
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/QuickEditTabSections.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2007 Oracle Corporation
+ *
+ * $Id: QuickEditTabSections.java,v 1.1 2007/12/07 23:43:40 gkessler Exp $
+ */
+package org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Quick Edit Tab Sections</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSections#getSections <em>Sections</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSectionsPackage#getQuickEditTabSections()
+ * @model
+ * @generated
+ */
+public interface QuickEditTabSections extends EObject {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String copyright = "Copyright (c) 2007 Oracle Corporation";
+
+ /**
+ * trait id to use
+ * @generated NOT
+ */
+ String TRAIT_ID = "quick-edit-tab";
+
+ /**
+ * Returns the value of the '<em><b>Sections</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SectionInfo}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sections</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sections</em>' containment reference list.
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSectionsPackage#getQuickEditTabSections_Sections()
+ * @model containment="true"
+ * extendedMetaData="kind='element' name='section'"
+ * @generated
+ */
+ EList<SectionInfo> getSections();
+
+} // QuickEditTabSections
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/QuickEditTabSectionsFactory.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/QuickEditTabSectionsFactory.java
new file mode 100644
index 0000000..3484b03
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/QuickEditTabSectionsFactory.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2007 Oracle Corporation
+ *
+ * $Id: QuickEditTabSectionsFactory.java,v 1.1 2007/12/07 23:43:40 gkessler Exp $
+ */
+package org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSectionsPackage
+ * @generated
+ */
+public interface QuickEditTabSectionsFactory extends EFactory {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String copyright = "Copyright (c) 2007 Oracle Corporation";
+
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ QuickEditTabSectionsFactory eINSTANCE = org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl.QuickEditTabSectionsFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Quick Edit Tab Sections</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Quick Edit Tab Sections</em>'.
+ * @generated
+ */
+ QuickEditTabSections createQuickEditTabSections();
+
+ /**
+ * Returns a new object of class '<em>Section Info</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Section Info</em>'.
+ * @generated
+ */
+ SectionInfo createSectionInfo();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ QuickEditTabSectionsPackage getQuickEditTabSectionsPackage();
+
+} //QuickEditTabSectionsFactory
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/QuickEditTabSectionsPackage.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/QuickEditTabSectionsPackage.java
new file mode 100644
index 0000000..b153bd4
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/QuickEditTabSectionsPackage.java
@@ -0,0 +1,286 @@
+/**
+ * Copyright (c) 2007 Oracle Corporation
+ *
+ * $Id: QuickEditTabSectionsPackage.java,v 1.1 2007/12/07 23:43:40 gkessler Exp $
+ */
+package org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSectionsFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface QuickEditTabSectionsPackage extends EPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String copyright = "Copyright (c) 2007 Oracle Corporation";
+
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "quickedittabsections";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://org.eclipse.jsf.pagedesigner/QuickEditTabSections.ecore";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "qe";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ QuickEditTabSectionsPackage eINSTANCE = org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl.QuickEditTabSectionsPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl.QuickEditTabSectionsImpl <em>Quick Edit Tab Sections</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl.QuickEditTabSectionsImpl
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl.QuickEditTabSectionsPackageImpl#getQuickEditTabSections()
+ * @generated
+ */
+ int QUICK_EDIT_TAB_SECTIONS = 0;
+
+ /**
+ * The feature id for the '<em><b>Sections</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int QUICK_EDIT_TAB_SECTIONS__SECTIONS = 0;
+
+ /**
+ * The number of structural features of the '<em>Quick Edit Tab Sections</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int QUICK_EDIT_TAB_SECTIONS_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl.SectionInfoImpl <em>Section Info</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl.SectionInfoImpl
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl.QuickEditTabSectionsPackageImpl#getSectionInfo()
+ * @generated
+ */
+ int SECTION_INFO = 1;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SECTION_INFO__ID = 0;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SECTION_INFO__TYPE = 1;
+
+ /**
+ * The number of structural features of the '<em>Section Info</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SECTION_INFO_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SECTION_TYPE <em>SECTION TYPE</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SECTION_TYPE
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl.QuickEditTabSectionsPackageImpl#getSECTION_TYPE()
+ * @generated
+ */
+ int SECTION_TYPE = 2;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSections <em>Quick Edit Tab Sections</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Quick Edit Tab Sections</em>'.
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSections
+ * @generated
+ */
+ EClass getQuickEditTabSections();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSections#getSections <em>Sections</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Sections</em>'.
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSections#getSections()
+ * @see #getQuickEditTabSections()
+ * @generated
+ */
+ EReference getQuickEditTabSections_Sections();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SectionInfo <em>Section Info</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Section Info</em>'.
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SectionInfo
+ * @generated
+ */
+ EClass getSectionInfo();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SectionInfo#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SectionInfo#getId()
+ * @see #getSectionInfo()
+ * @generated
+ */
+ EAttribute getSectionInfo_Id();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SectionInfo#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SectionInfo#getType()
+ * @see #getSectionInfo()
+ * @generated
+ */
+ EAttribute getSectionInfo_Type();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SECTION_TYPE <em>SECTION TYPE</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>SECTION TYPE</em>'.
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SECTION_TYPE
+ * @generated
+ */
+ EEnum getSECTION_TYPE();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ QuickEditTabSectionsFactory getQuickEditTabSectionsFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl.QuickEditTabSectionsImpl <em>Quick Edit Tab Sections</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl.QuickEditTabSectionsImpl
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl.QuickEditTabSectionsPackageImpl#getQuickEditTabSections()
+ * @generated
+ */
+ EClass QUICK_EDIT_TAB_SECTIONS = eINSTANCE.getQuickEditTabSections();
+
+ /**
+ * The meta object literal for the '<em><b>Sections</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference QUICK_EDIT_TAB_SECTIONS__SECTIONS = eINSTANCE.getQuickEditTabSections_Sections();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl.SectionInfoImpl <em>Section Info</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl.SectionInfoImpl
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl.QuickEditTabSectionsPackageImpl#getSectionInfo()
+ * @generated
+ */
+ EClass SECTION_INFO = eINSTANCE.getSectionInfo();
+
+ /**
+ * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SECTION_INFO__ID = eINSTANCE.getSectionInfo_Id();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SECTION_INFO__TYPE = eINSTANCE.getSectionInfo_Type();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SECTION_TYPE <em>SECTION TYPE</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SECTION_TYPE
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl.QuickEditTabSectionsPackageImpl#getSECTION_TYPE()
+ * @generated
+ */
+ EEnum SECTION_TYPE = eINSTANCE.getSECTION_TYPE();
+
+ }
+
+} //QuickEditTabSectionsPackage
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/SECTION_TYPE.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/SECTION_TYPE.java
new file mode 100644
index 0000000..396e578
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/SECTION_TYPE.java
@@ -0,0 +1,218 @@
+/**
+ * Copyright (c) 2007 Oracle Corporation
+ *
+ * $Id: SECTION_TYPE.java,v 1.1 2007/12/07 23:43:40 gkessler Exp $
+ */
+package org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>SECTION TYPE</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSectionsPackage#getSECTION_TYPE()
+ * @model
+ * @generated
+ */
+public enum SECTION_TYPE implements Enumerator {
+ /**
+ * The '<em><b>ATTRIBUTE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ATTRIBUTE_VALUE
+ * @generated
+ * @ordered
+ */
+ ATTRIBUTE(0, "ATTRIBUTE", "ATTRIBUTE"),
+
+ /**
+ * The '<em><b>SECTION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SECTION_VALUE
+ * @generated
+ * @ordered
+ */
+ SECTION(1, "SECTION", "SECTION");
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String copyright = "Copyright (c) 2007 Oracle Corporation";
+
+ /**
+ * The '<em><b>ATTRIBUTE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ATTRIBUTE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ATTRIBUTE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ATTRIBUTE_VALUE = 0;
+
+ /**
+ * The '<em><b>SECTION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SECTION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SECTION
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SECTION_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>SECTION TYPE</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final SECTION_TYPE[] VALUES_ARRAY =
+ new SECTION_TYPE[] {
+ ATTRIBUTE,
+ SECTION,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>SECTION TYPE</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<SECTION_TYPE> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>SECTION TYPE</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SECTION_TYPE get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ SECTION_TYPE result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>SECTION TYPE</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SECTION_TYPE getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ SECTION_TYPE result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>SECTION TYPE</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SECTION_TYPE get(int value) {
+ switch (value) {
+ case ATTRIBUTE_VALUE: return ATTRIBUTE;
+ case SECTION_VALUE: return SECTION;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private SECTION_TYPE(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //SECTION_TYPE
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/SectionInfo.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/SectionInfo.java
new file mode 100644
index 0000000..fcb9161
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/SectionInfo.java
@@ -0,0 +1,91 @@
+/**
+ * Copyright (c) 2007 Oracle Corporation
+ *
+ * $Id: SectionInfo.java,v 1.1 2007/12/07 23:43:40 gkessler Exp $
+ */
+package org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Section Info</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SectionInfo#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SectionInfo#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSectionsPackage#getSectionInfo()
+ * @model
+ * @generated
+ */
+public interface SectionInfo extends EObject {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String copyright = "Copyright (c) 2007 Oracle Corporation";
+
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(String)
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSectionsPackage#getSectionInfo_Id()
+ * @model required="true"
+ * @generated
+ */
+ String getId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SectionInfo#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id</em>' attribute.
+ * @see #getId()
+ * @generated
+ */
+ void setId(String value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * The default value is <code>"ATTRIBUTE"</code>.
+ * The literals are from the enumeration {@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SECTION_TYPE}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SECTION_TYPE
+ * @see #setType(SECTION_TYPE)
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSectionsPackage#getSectionInfo_Type()
+ * @model default="ATTRIBUTE" unique="false"
+ * @generated
+ */
+ SECTION_TYPE getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SectionInfo#getType <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' attribute.
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SECTION_TYPE
+ * @see #getType()
+ * @generated
+ */
+ void setType(SECTION_TYPE value);
+
+} // SectionInfo
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/internal/impl/QuickEditTabSectionsFactoryImpl.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/internal/impl/QuickEditTabSectionsFactoryImpl.java
new file mode 100644
index 0000000..c70c7c6
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/internal/impl/QuickEditTabSectionsFactoryImpl.java
@@ -0,0 +1,168 @@
+/**
+ * Copyright (c) 2007 Oracle Corporation
+ *
+ * $Id: QuickEditTabSectionsFactoryImpl.java,v 1.1 2007/12/07 23:43:47 gkessler Exp $
+ */
+package org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSections;
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSectionsFactory;
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSectionsPackage;
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SECTION_TYPE;
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SectionInfo;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QuickEditTabSectionsFactoryImpl extends EFactoryImpl implements QuickEditTabSectionsFactory {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String copyright = "Copyright (c) 2007 Oracle Corporation";
+
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static QuickEditTabSectionsFactory init() {
+ try {
+ QuickEditTabSectionsFactory theQuickEditTabSectionsFactory = (QuickEditTabSectionsFactory)EPackage.Registry.INSTANCE.getEFactory("http://org.eclipse.jsf.pagedesigner/QuickEditTabSections.ecore");
+ if (theQuickEditTabSectionsFactory != null) {
+ return theQuickEditTabSectionsFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new QuickEditTabSectionsFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QuickEditTabSectionsFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case QuickEditTabSectionsPackage.QUICK_EDIT_TAB_SECTIONS: return createQuickEditTabSections();
+ case QuickEditTabSectionsPackage.SECTION_INFO: return createSectionInfo();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case QuickEditTabSectionsPackage.SECTION_TYPE:
+ return createSECTION_TYPEFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case QuickEditTabSectionsPackage.SECTION_TYPE:
+ return convertSECTION_TYPEToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QuickEditTabSections createQuickEditTabSections() {
+ QuickEditTabSectionsImpl quickEditTabSections = new QuickEditTabSectionsImpl();
+ return quickEditTabSections;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SectionInfo createSectionInfo() {
+ SectionInfoImpl sectionInfo = new SectionInfoImpl();
+ return sectionInfo;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SECTION_TYPE createSECTION_TYPEFromString(EDataType eDataType, String initialValue) {
+ SECTION_TYPE result = SECTION_TYPE.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertSECTION_TYPEToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QuickEditTabSectionsPackage getQuickEditTabSectionsPackage() {
+ return (QuickEditTabSectionsPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static QuickEditTabSectionsPackage getPackage() {
+ return QuickEditTabSectionsPackage.eINSTANCE;
+ }
+
+} //QuickEditTabSectionsFactoryImpl
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/internal/impl/QuickEditTabSectionsImpl.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/internal/impl/QuickEditTabSectionsImpl.java
new file mode 100644
index 0000000..b433d65
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/internal/impl/QuickEditTabSectionsImpl.java
@@ -0,0 +1,157 @@
+/**
+ * Copyright (c) 2007 Oracle Corporation
+ *
+ * $Id: QuickEditTabSectionsImpl.java,v 1.1 2007/12/07 23:43:47 gkessler Exp $
+ */
+package org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSections;
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSectionsPackage;
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SectionInfo;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Quick Edit Tab Sections</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl.QuickEditTabSectionsImpl#getSections <em>Sections</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class QuickEditTabSectionsImpl extends EObjectImpl implements QuickEditTabSections {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String copyright = "Copyright (c) 2007 Oracle Corporation";
+
+ /**
+ * The cached value of the '{@link #getSections() <em>Sections</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSections()
+ * @generated
+ * @ordered
+ */
+ protected EList<SectionInfo> sections;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected QuickEditTabSectionsImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return QuickEditTabSectionsPackage.Literals.QUICK_EDIT_TAB_SECTIONS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<SectionInfo> getSections() {
+ if (sections == null) {
+ sections = new EObjectContainmentEList<SectionInfo>(SectionInfo.class, this, QuickEditTabSectionsPackage.QUICK_EDIT_TAB_SECTIONS__SECTIONS);
+ }
+ return sections;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case QuickEditTabSectionsPackage.QUICK_EDIT_TAB_SECTIONS__SECTIONS:
+ return ((InternalEList<?>)getSections()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case QuickEditTabSectionsPackage.QUICK_EDIT_TAB_SECTIONS__SECTIONS:
+ return getSections();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case QuickEditTabSectionsPackage.QUICK_EDIT_TAB_SECTIONS__SECTIONS:
+ getSections().clear();
+ getSections().addAll((Collection<? extends SectionInfo>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case QuickEditTabSectionsPackage.QUICK_EDIT_TAB_SECTIONS__SECTIONS:
+ getSections().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case QuickEditTabSectionsPackage.QUICK_EDIT_TAB_SECTIONS__SECTIONS:
+ return sections != null && !sections.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //QuickEditTabSectionsImpl
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/internal/impl/QuickEditTabSectionsPackageImpl.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/internal/impl/QuickEditTabSectionsPackageImpl.java
new file mode 100644
index 0000000..6605341
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/internal/impl/QuickEditTabSectionsPackageImpl.java
@@ -0,0 +1,282 @@
+/**
+ * Copyright (c) 2007 Oracle Corporation
+ *
+ * $Id: QuickEditTabSectionsPackageImpl.java,v 1.1 2007/12/07 23:43:47 gkessler Exp $
+ */
+package org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSections;
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSectionsFactory;
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSectionsPackage;
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SectionInfo;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QuickEditTabSectionsPackageImpl extends EPackageImpl implements QuickEditTabSectionsPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String copyright = "Copyright (c) 2007 Oracle Corporation";
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass quickEditTabSectionsEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sectionInfoEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum sectioN_TYPEEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSectionsPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private QuickEditTabSectionsPackageImpl() {
+ super(eNS_URI, QuickEditTabSectionsFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this
+ * model, and for any others upon which it depends. Simple
+ * dependencies are satisfied by calling this method on all
+ * dependent packages before doing anything else. This method drives
+ * initialization for interdependent packages directly, in parallel
+ * with this package, itself.
+ * <p>Of this package and its interdependencies, all packages which
+ * have not yet been registered by their URI values are first created
+ * and registered. The packages are then initialized in two steps:
+ * meta-model objects for all of the packages are created before any
+ * are initialized, since one package's meta-model objects may refer to
+ * those of another.
+ * <p>Invocation of this method will not affect any packages that have
+ * already been initialized.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static QuickEditTabSectionsPackage init() {
+ if (isInited) return (QuickEditTabSectionsPackage)EPackage.Registry.INSTANCE.getEPackage(QuickEditTabSectionsPackage.eNS_URI);
+
+ // Obtain or create and register package
+ QuickEditTabSectionsPackageImpl theQuickEditTabSectionsPackage = (QuickEditTabSectionsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof QuickEditTabSectionsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new QuickEditTabSectionsPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theQuickEditTabSectionsPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theQuickEditTabSectionsPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theQuickEditTabSectionsPackage.freeze();
+
+ return theQuickEditTabSectionsPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getQuickEditTabSections() {
+ return quickEditTabSectionsEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getQuickEditTabSections_Sections() {
+ return (EReference)quickEditTabSectionsEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSectionInfo() {
+ return sectionInfoEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSectionInfo_Id() {
+ return (EAttribute)sectionInfoEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSectionInfo_Type() {
+ return (EAttribute)sectionInfoEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getSECTION_TYPE() {
+ return sectioN_TYPEEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QuickEditTabSectionsFactory getQuickEditTabSectionsFactory() {
+ return (QuickEditTabSectionsFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ quickEditTabSectionsEClass = createEClass(QUICK_EDIT_TAB_SECTIONS);
+ createEReference(quickEditTabSectionsEClass, QUICK_EDIT_TAB_SECTIONS__SECTIONS);
+
+ sectionInfoEClass = createEClass(SECTION_INFO);
+ createEAttribute(sectionInfoEClass, SECTION_INFO__ID);
+ createEAttribute(sectionInfoEClass, SECTION_INFO__TYPE);
+
+ // Create enums
+ sectioN_TYPEEEnum = createEEnum(SECTION_TYPE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(quickEditTabSectionsEClass, QuickEditTabSections.class, "QuickEditTabSections", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getQuickEditTabSections_Sections(), this.getSectionInfo(), null, "sections", null, 0, -1, QuickEditTabSections.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(sectionInfoEClass, SectionInfo.class, "SectionInfo", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getSectionInfo_Id(), ecorePackage.getEString(), "id", null, 1, 1, SectionInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getSectionInfo_Type(), this.getSECTION_TYPE(), "type", "ATTRIBUTE", 0, 1, SectionInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(sectioN_TYPEEEnum, org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SECTION_TYPE.class, "SECTION_TYPE");
+ addEEnumLiteral(sectioN_TYPEEEnum, org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SECTION_TYPE.ATTRIBUTE);
+ addEEnumLiteral(sectioN_TYPEEEnum, org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SECTION_TYPE.SECTION);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http:///org/eclipse/emf/ecore/util/ExtendedMetaData
+ createExtendedMetaDataAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/emf/ecore/util/ExtendedMetaData</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createExtendedMetaDataAnnotations() {
+ String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData";
+ addAnnotation
+ (getQuickEditTabSections_Sections(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "section"
+ });
+ }
+
+} //QuickEditTabSectionsPackageImpl
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/internal/impl/SectionInfoImpl.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/internal/impl/SectionInfoImpl.java
new file mode 100644
index 0000000..b3c7298
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/internal/impl/SectionInfoImpl.java
@@ -0,0 +1,225 @@
+/**
+ * Copyright (c) 2007 Oracle Corporation
+ *
+ * $Id: SectionInfoImpl.java,v 1.1 2007/12/07 23:43:47 gkessler Exp $
+ */
+package org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSectionsPackage;
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SECTION_TYPE;
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SectionInfo;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Section Info</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl.SectionInfoImpl#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.impl.SectionInfoImpl#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SectionInfoImpl extends EObjectImpl implements SectionInfo {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String copyright = "Copyright (c) 2007 Oracle Corporation";
+
+ /**
+ * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected static final String ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected String id = ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final SECTION_TYPE TYPE_EDEFAULT = SECTION_TYPE.ATTRIBUTE;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected SECTION_TYPE type = TYPE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SectionInfoImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return QuickEditTabSectionsPackage.Literals.SECTION_INFO;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setId(String newId) {
+ String oldId = id;
+ id = newId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QuickEditTabSectionsPackage.SECTION_INFO__ID, oldId, id));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SECTION_TYPE getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(SECTION_TYPE newType) {
+ SECTION_TYPE oldType = type;
+ type = newType == null ? TYPE_EDEFAULT : newType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QuickEditTabSectionsPackage.SECTION_INFO__TYPE, oldType, type));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case QuickEditTabSectionsPackage.SECTION_INFO__ID:
+ return getId();
+ case QuickEditTabSectionsPackage.SECTION_INFO__TYPE:
+ return getType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case QuickEditTabSectionsPackage.SECTION_INFO__ID:
+ setId((String)newValue);
+ return;
+ case QuickEditTabSectionsPackage.SECTION_INFO__TYPE:
+ setType((SECTION_TYPE)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case QuickEditTabSectionsPackage.SECTION_INFO__ID:
+ setId(ID_EDEFAULT);
+ return;
+ case QuickEditTabSectionsPackage.SECTION_INFO__TYPE:
+ setType(TYPE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case QuickEditTabSectionsPackage.SECTION_INFO__ID:
+ return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+ case QuickEditTabSectionsPackage.SECTION_INFO__TYPE:
+ return type != TYPE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (id: ");
+ result.append(id);
+ result.append(", type: ");
+ result.append(type);
+ result.append(')');
+ return result.toString();
+ }
+
+} //SectionInfoImpl
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/internal/util/QuickEditTabSectionsAdapterFactory.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/internal/util/QuickEditTabSectionsAdapterFactory.java
new file mode 100644
index 0000000..59994fd
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/internal/util/QuickEditTabSectionsAdapterFactory.java
@@ -0,0 +1,148 @@
+/**
+ * Copyright (c) 2007 Oracle Corporation
+ *
+ * $Id: QuickEditTabSectionsAdapterFactory.java,v 1.1 2007/12/07 23:43:50 gkessler Exp $
+ */
+package org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSectionsPackage
+ * @generated
+ */
+public class QuickEditTabSectionsAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String copyright = "Copyright (c) 2007 Oracle Corporation";
+
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static QuickEditTabSectionsPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QuickEditTabSectionsAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = QuickEditTabSectionsPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch the delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected QuickEditTabSectionsSwitch<Adapter> modelSwitch =
+ new QuickEditTabSectionsSwitch<Adapter>() {
+ @Override
+ public Adapter caseQuickEditTabSections(QuickEditTabSections object) {
+ return createQuickEditTabSectionsAdapter();
+ }
+ @Override
+ public Adapter caseSectionInfo(SectionInfo object) {
+ return createSectionInfoAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSections <em>Quick Edit Tab Sections</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSections
+ * @generated
+ */
+ public Adapter createQuickEditTabSectionsAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SectionInfo <em>Section Info</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SectionInfo
+ * @generated
+ */
+ public Adapter createSectionInfoAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //QuickEditTabSectionsAdapterFactory
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/internal/util/QuickEditTabSectionsSwitch.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/internal/util/QuickEditTabSectionsSwitch.java
new file mode 100644
index 0000000..615e346
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/properties/quickedittabsections/internal/util/QuickEditTabSectionsSwitch.java
@@ -0,0 +1,157 @@
+/**
+ * Copyright (c) 2007 Oracle Corporation
+ *
+ * $Id: QuickEditTabSectionsSwitch.java,v 1.1 2007/12/07 23:43:50 gkessler Exp $
+ */
+package org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.internal.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSectionsPackage
+ * @generated
+ */
+public class QuickEditTabSectionsSwitch<T> {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String copyright = "Copyright (c) 2007 Oracle Corporation";
+
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static QuickEditTabSectionsPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QuickEditTabSectionsSwitch() {
+ if (modelPackage == null) {
+ modelPackage = QuickEditTabSectionsPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ public T doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List<EClass> eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch(eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case QuickEditTabSectionsPackage.QUICK_EDIT_TAB_SECTIONS: {
+ QuickEditTabSections quickEditTabSections = (QuickEditTabSections)theEObject;
+ T result = caseQuickEditTabSections(quickEditTabSections);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case QuickEditTabSectionsPackage.SECTION_INFO: {
+ SectionInfo sectionInfo = (SectionInfo)theEObject;
+ T result = caseSectionInfo(sectionInfo);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Quick Edit Tab Sections</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Quick Edit Tab Sections</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseQuickEditTabSections(QuickEditTabSections object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Section Info</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Section Info</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSectionInfo(SectionInfo object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //QuickEditTabSectionsSwitch
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/figurehandler/FigureFactory.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/figurehandler/FigureFactory.java
index 0b68f67..eb38068 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/figurehandler/FigureFactory.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/figurehandler/FigureFactory.java
@@ -194,10 +194,12 @@
private static Image getSharedHTMLImage(String tag) {
Image image = PDPlugin.getDefault().getImage(
"palette/HTML/small/HTML_" + tag.toUpperCase() + ".gif");
- ImageData imageData = image.getImageData();
- if (imageData.width < 16 || imageData.height < 16) {
- return PDPlugin.getDefault().getImage(
- "palette/GENERIC/small/PD_Palette_Default.gif");
+ if (image != null){
+ ImageData imageData = image.getImageData();
+ if (imageData.width < 16 || imageData.height < 16) {
+ return PDPlugin.getDefault().getImage(
+ "palette/GENERIC/small/PD_Palette_Default.gif");
+ }
}
return image;
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/internal/metadata/SybaseCMConfigMetaDataLocator.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/internal/metadata/SybaseCMConfigMetaDataLocator.java
new file mode 100644
index 0000000..6c259f5
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/internal/metadata/SybaseCMConfigMetaDataLocator.java
@@ -0,0 +1,169 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.internal.metadata;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.parsers.FactoryConfigurationError;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jst.jsf.common.metadata.internal.AbstractMetaDataLocator;
+import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataLocator;
+import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataSourceModelProvider;
+import org.eclipse.jst.pagedesigner.IJMTConstants;
+import org.eclipse.jst.pagedesigner.PDPlugin;
+import org.eclipse.jst.pagedesigner.meta.ICMRegistry;
+import org.eclipse.jst.pagedesigner.meta.internal.SimpleCMRegistry;
+import org.osgi.framework.Bundle;
+import org.xml.sax.SAXException;
+
+/**
+ * Locates Sybase CM config metadata files.
+ *
+ * Supplied to ease migration to JSF Common meta data by allowing current MD into JSF common md format.
+ *
+ * @deprecated this will be disappearing along with all of the Sybase meta data
+ * and supporting classes before Ganymede release
+ *
+ */
+public class SybaseCMConfigMetaDataLocator extends AbstractMetaDataLocator {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.jsf.common.metadata.internal.IMetaDataLocator#locateMetaDataModelProviders(java.lang.String)
+ */
+ public List locateMetaDataModelProviders(String uri) {
+// if (1==1)
+// return null; //temp... turn off translation!
+
+ List <ICMRegistry> registries = findCMRegistries(uri);
+ if (! registries.isEmpty()) {
+ List <IMetaDataSourceModelProvider> providers = new ArrayList<IMetaDataSourceModelProvider>(registries.size());
+ for (ICMRegistry reg : registries) {
+ if (reg.getSupportedURI().equals(uri)) {
+ providers.add(createMetaDataSourceProvider(reg));
+ }
+ }
+ return providers;
+ }
+ return null;
+ }
+
+ private List<ICMRegistry> findCMRegistries(String uri) {
+ List<ICMRegistry> contributedRegistries = new ArrayList<ICMRegistry>();
+ IExtensionPoint extensionPoint = Platform.getExtensionRegistry()
+ .getExtensionPoint(PDPlugin.getPluginId(),
+ IJMTConstants.EXTENSION_POINT_CMREGISTRY);
+ IConfigurationElement[] eles = extensionPoint
+ .getConfigurationElements();
+
+ for (int i = 0; i < eles.length; i++) {
+ if (eles[i].getName().equals("registry")) {
+ String cmUri = eles[i].getAttribute("uri");
+ if (cmUri != null && cmUri.equals(uri)) {
+ String configFile = eles[i].getAttribute("configFile");
+ if (configFile != null && configFile.length() > 0) {
+ String bundleName = eles[i].getDeclaringExtension()
+ .getContributor().getName();
+ try {
+ Bundle bundle = Platform.getBundle(bundleName);
+ URL cmFileUrl = bundle.getEntry(configFile);
+ SimpleCMRegistry reg = new SimpleCMRegistry(uri,
+ cmFileUrl);
+ contributedRegistries.add(reg);
+ } catch (ParserConfigurationException e) {
+ PDPlugin.getLogger(getClass()).error(new Throwable(e));
+ } catch (FactoryConfigurationError e) {
+ PDPlugin.getLogger(getClass()).error(new Throwable(e));
+ } catch (SAXException e) {
+ PDPlugin.getLogger(getClass()).error(new Throwable(e));
+ } catch (IOException e) {
+ PDPlugin.getLogger(getClass()).error(new Throwable(e));
+ }
+ }
+ String className = eles[i].getAttribute("class");
+ if (className != null && className.length() > 0) {
+ try {
+ Object obj = eles[i].createExecutableExtension("class");
+
+ if (obj instanceof ICMRegistry) {
+ contributedRegistries.add((ICMRegistry)obj);
+ }
+ } catch (CoreException e) {
+ PDPlugin.getLogger(getClass()).error(new Throwable(e));
+ }
+ }
+ }
+ }
+ }
+ return contributedRegistries;
+ }
+
+ private IMetaDataSourceModelProvider createMetaDataSourceProvider(ICMRegistry reg) {
+ IMetaDataSourceModelProvider provider = new SybaseCMConfigMetadataProvider(reg);
+ provider.setLocator(this);
+ return provider;
+ }
+
+ /*
+ * Does nothing.
+ */
+ public void startLocating() {
+ //do nothing
+ }
+
+ /*
+ * Does nothing.
+ */
+ public void stopLocating() {
+ //do nothing
+ }
+
+ /**
+ *
+ */
+ public class SybaseCMConfigMetadataProvider implements IMetaDataSourceModelProvider {
+ private IMetaDataLocator _locator;
+ private ICMRegistry _reg;
+ /**
+ * Construct from ICMRegsistry
+ * @param reg
+ */
+ public SybaseCMConfigMetadataProvider(ICMRegistry reg) {
+ _reg = reg;
+ }
+
+ public Object getSourceModel() {
+ return _reg;
+ }
+
+ public IMetaDataLocator getLocator() {
+ return _locator;
+ }
+
+ public void setLocator(IMetaDataLocator locator) {
+ _locator = locator;
+ }
+
+ public Object getAdapter(Class adapter) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ }
+}
+
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/internal/metadata/SybaseCMConfigMetaDataTranslator.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/internal/metadata/SybaseCMConfigMetaDataTranslator.java
new file mode 100644
index 0000000..4ff0a8a
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/internal/metadata/SybaseCMConfigMetaDataTranslator.java
@@ -0,0 +1,376 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.internal.metadata;
+
+import java.util.Iterator;
+import java.util.Map;
+import java.util.StringTokenizer;
+
+import org.eclipse.emf.ecore.xml.type.SimpleAnyType;
+import org.eclipse.emf.ecore.xml.type.XMLTypeFactory;
+import org.eclipse.jst.jsf.common.metadata.Entity;
+import org.eclipse.jst.jsf.common.metadata.MetadataFactory;
+import org.eclipse.jst.jsf.common.metadata.Model;
+import org.eclipse.jst.jsf.common.metadata.Trait;
+import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataModelMergeAssistant;
+import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataSourceModelProvider;
+import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataTranslator;
+import org.eclipse.jst.jsf.common.metadata.traittypes.traittypes.ListOfValues;
+import org.eclipse.jst.jsf.common.metadata.traittypes.traittypes.TraitTypesFactory;
+import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
+import org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor;
+import org.eclipse.jst.pagedesigner.meta.IAttributeRuntimeValueType;
+import org.eclipse.jst.pagedesigner.meta.IElementDescriptor;
+import org.eclipse.jst.pagedesigner.meta.OLDIValueType;
+import org.eclipse.jst.pagedesigner.meta.internal.SimpleCMRegistry;
+
+/**
+ * Translates Sybase MD into JSF common MD and attribute value type system.
+ *
+ * Supplied to ease migration to JSF Common meta data by allowing current MD into JSF common md format.
+ *
+ * @deprecated this will be disappearing along with all of the Sybase meta data
+ * and supporting classes before Ganymede release
+ *
+ */
+public class SybaseCMConfigMetaDataTranslator implements IMetaDataTranslator {
+ private static final String ATTR_VAL_RUNTIME_TYPE = "attribute-value-runtime-type";
+ private IMetaDataModelMergeAssistant _assistant;
+
+ public boolean canTranslate(IMetaDataSourceModelProvider modelProvider) {
+ if (modelProvider.getSourceModel() != null &&
+ modelProvider.getSourceModel() instanceof SimpleCMRegistry)
+ return true;
+ return false;
+ }
+
+ public void translate(IMetaDataModelMergeAssistant assistant) {
+ _assistant = assistant;
+ SimpleCMRegistry reg = (SimpleCMRegistry)assistant.getSourceModelProvider().getSourceModel();
+ traverseCMRegistryModel(reg);
+ }
+
+ private void traverseCMRegistryModel(SimpleCMRegistry reg){
+ for (Iterator it=reg.getMap().entrySet().iterator(); it.hasNext();){
+ Map.Entry entry = (Map.Entry)it.next();
+ IElementDescriptor tagElem = (IElementDescriptor)entry.getValue();
+ findOrCreateTag(tagElem);
+ }
+ }
+
+ private void findOrCreateTag(IElementDescriptor tagElem) {
+ Entity tag =_assistant.getMergedEntity(getMergedModel(), tagElem.getTagName());
+ if (tag == null){
+ tag = internalCreateTagEntity(tagElem);
+ getMergedModel().getChildEntities().add(tag);
+ }
+ createTagTraits(tag, tagElem);
+ createAttributeEntities(tag, tagElem);
+ }
+
+ private void createAttributeEntities(Entity tag, IElementDescriptor tagElem) {
+ for (IAttributeDescriptor attrDesc : tagElem.getAttributeDescriptors()){
+ Entity attr =_assistant.getMergedEntity(tag, attrDesc.getAttributeName());
+ if (attr == null) {
+ attr = internalCreateAttributeEntity(attrDesc);
+ tag.getChildEntities().add(attr);
+ }
+ createAttributeTraits(attr, attrDesc);
+ }
+ if (tagElem.getReference() != null) {
+ //create attributes from referenced tag
+ createAttributeEntities(tag,tagElem.getReference());
+ }
+ }
+
+ private void createAttributeTraits(Entity attr,
+ IAttributeDescriptor attrDesc) {
+
+ //convert ValueType to runtime-attrib-values
+ convertValueType(attr, attrDesc);
+
+ createTraitAndSimpleAnyTypeValue(attr, "display-label", attrDesc.getLabelString());
+ createTraitAndSimpleAnyTypeValue(attr, "description", attrDesc.getDescription());
+ createTraitAndSimpleAnyTypeValue(attr, "default-value", attrDesc.getDefaultValue());
+ createTraitAndSimpleAnyTypeValue(attr, IPropertyPageDescriptor.PROP_DESC_CATEGORY, attrDesc.getCategory());
+ createTraitAndSimpleAnyTypeValue(attr, "required", String.valueOf(attrDesc.isRequired()));
+
+
+
+ }
+
+ private void createTraitAndSimpleAnyTypeValue(Entity attr, String traitKey,
+ String traitValue) {
+
+ if (traitValue != null && traitValue.trim().length() > 0) {
+ Trait trait = createTrait(attr, traitKey);
+ setTraitValueUsingSimpleAnyType(trait, traitValue);
+ attr.getTraits().add(trait);
+ }
+ }
+
+ private void convertValueType(Entity attr, IAttributeDescriptor attrDesc) {
+ if (hasTrait(attr, ATTR_VAL_RUNTIME_TYPE)){
+ return;
+ }
+ String rtType = null;
+ String valType = attrDesc.getValueType();
+ Trait trait = createTrait(attr, ATTR_VAL_RUNTIME_TYPE);
+ if (OLDIValueType.ENUMERATED.equals(valType)){
+ if ("lang".equalsIgnoreCase(attrDesc.getAttributeName()))
+ rtType = IAttributeRuntimeValueType.LANGUAGECODE;
+// else if ()
+ else {
+ rtType = IAttributeRuntimeValueType.STRING;
+ createPossibleValuesAndValidValueTraits(attr, attrDesc);
+ }
+ }
+ else if (OLDIValueType.BOOLEAN.equals(valType)) {
+ rtType = IAttributeRuntimeValueType.BOOLEAN;
+ }
+ else if (OLDIValueType.CLASSNAME.equals(valType)) {
+ rtType = IAttributeRuntimeValueType.JAVACLASS;
+ //"superType=I:javax.faces.event.ActionListener"
+ int colonIndex = attrDesc.getTypeParameter().lastIndexOf(":");
+ String superTypeValue= attrDesc.getTypeParameter().substring(colonIndex+1);
+ String superTypeType= attrDesc.getTypeParameter().substring(colonIndex-1,colonIndex);
+ if (superTypeType.equalsIgnoreCase("I"))
+ createTraitAndSimpleAnyTypeValue(attr, "valid-interfaces", superTypeValue);
+ else
+ createTraitAndSimpleAnyTypeValue(attr, "valid-superclass", superTypeValue);
+ }
+ else if (OLDIValueType.CLASSPATH_RESOURCE.equals(valType)) {
+ rtType = IAttributeRuntimeValueType.RESOURCEBUNDLE;
+ }
+ else if (OLDIValueType.COLOR.equals(valType)) {
+ rtType = IAttributeRuntimeValueType.COLOR;
+ }
+ else if (OLDIValueType.CSSCLASS.equals(valType)) {
+ rtType = IAttributeRuntimeValueType.CSSCLASS;
+ }
+ else if (OLDIValueType.CSSID.equals(valType)) {
+ rtType = IAttributeRuntimeValueType.CSSID;
+ }
+ else if (OLDIValueType.CSSSTYLE.equals(valType)) {
+ rtType = IAttributeRuntimeValueType.CSSSTYLE;
+ }
+ else if (OLDIValueType.CURRENCYCODE.equals(valType)) {
+ rtType = IAttributeRuntimeValueType.CURRENCYCODE;
+ }
+ else if (OLDIValueType.JAVASCRIPT.equals(valType)) {
+ rtType = IAttributeRuntimeValueType.SCRIPT;
+ }
+ else if (OLDIValueType.LINK.equals(valType)) {
+ rtType = IAttributeRuntimeValueType.LINK;
+ }
+ else if (OLDIValueType.LOCALE.equals(valType)) {
+ rtType = IAttributeRuntimeValueType.LOCALE;
+ }
+ else if (OLDIValueType.METHODBINDING.equals(valType)) {
+ rtType = IAttributeRuntimeValueType.METHODBINDING;
+ if (attr.getId().equals("validator"))
+ createValidatorParams(attr);
+ else if (attr.getId().equals("actionListener")){
+ Trait t = createTrait(attr, "runtime-param-types");
+ t.setValue(createAndSetSimpleAnyTypeValue("javax.faces.event.ActionEvent"));
+ attr.getTraits().add(t);
+ }
+ else if (attr.getId().equals("valueChangeListener")){
+ Trait t = createTrait(attr, "runtime-param-types");
+ t.setValue(createAndSetSimpleAnyTypeValue("javax.faces.event.ValueChangeEvent"));
+ attr.getTraits().add(t);
+ }
+ Trait t2 = createTrait(attr, "runtime-return-type");
+ t2.setValue(createAndSetSimpleAnyTypeValue("void"));
+ attr.getTraits().add(t2);
+ }
+ else if (OLDIValueType.MULTICHOICE.equals(valType)) {
+ rtType = IAttributeRuntimeValueType.STRING;
+ }
+ else if (OLDIValueType.NAMED_BOOLEAN.equals(valType)) {
+ rtType = IAttributeRuntimeValueType.BOOLEAN;
+ }
+ else if (OLDIValueType.PROPERTYBINDING.equals(valType)) {
+ rtType = IAttributeRuntimeValueType.VALUEBINDING;
+ }
+ else if (OLDIValueType.RELATIVEPATH.equals(valType)) {
+ rtType = IAttributeRuntimeValueType.RELATIVEPATH;
+ }
+ else if (OLDIValueType.TIMEZONE.equals(valType)) {
+ rtType = IAttributeRuntimeValueType.TIMEZONE;
+ }
+ else if (OLDIValueType.WEBPATH.equals(valType)) {
+ rtType = IAttributeRuntimeValueType.WEBPATH;
+// createWebPathValidExtensionsTrait(attr, attrDesc);
+ }
+ else
+ rtType = IAttributeRuntimeValueType.STRING;
+
+ setTraitValueUsingSimpleAnyType(trait, rtType.toString());
+ setTypeParamsIfAny(attr, attrDesc);
+ attr.getTraits().add(trait);
+ }
+
+ private void setTypeParamsIfAny(Entity attr, IAttributeDescriptor attrDesc) {
+ //this method is relying on the fact that only one typeParam is being set. this is all that was ever done by the Sybase config
+ if (attrDesc.getTypeParameter()!= null){
+ String typeParam = attrDesc.getTypeParameter();
+ if (typeParam.indexOf(IAttributeDescriptor.PARAMETER_SUFFIX) > -1){
+ int i = typeParam.indexOf(IAttributeDescriptor.PARAMETER_SUFFIX);
+ String suffixes = typeParam.substring(i+IAttributeDescriptor.PARAMETER_SUFFIX.length()+1);
+ Trait trait = createTrait(attr, "file-extensions");
+ StringTokenizer st = new StringTokenizer(suffixes, ";");
+ ListOfValues exts = TraitTypesFactory.eINSTANCE.createListOfValues();
+ while (st.hasMoreElements()){
+ String ext = st.nextToken();
+ exts.getEntries().add(createAndSetSimpleAnyTypeValue(ext));
+ }
+ trait.setValue(exts);
+ attr.getTraits().add(trait);
+ }
+ else if (typeParam.indexOf(IAttributeDescriptor.PARAMETER_DEFAULT) > -1){
+ int i = typeParam.indexOf(IAttributeDescriptor.PARAMETER_DEFAULT);
+ String defaultVal = typeParam.substring(i+IAttributeDescriptor.PARAMETER_DEFAULT.length()+1);
+ createTraitAndSimpleAnyTypeValue(attr, "default-value", defaultVal);
+ }
+ else if (typeParam.indexOf(IAttributeDescriptor.PARAMETER_SEPARATOR) > -1){
+ int i = typeParam.indexOf(IAttributeDescriptor.PARAMETER_SEPARATOR);
+ String sep = typeParam.substring(i+IAttributeDescriptor.PARAMETER_SEPARATOR.length()+1);
+ createTraitAndSimpleAnyTypeValue(attr, "multi-choice-seperator", sep);
+ }
+ else if (typeParam.indexOf(IAttributeDescriptor.PARAMETER_STYLE) > -1){
+ int i = typeParam.indexOf(IAttributeDescriptor.PARAMETER_STYLE);
+ String style = typeParam.substring(i+IAttributeDescriptor.PARAMETER_STYLE.length()+1);
+ createTraitAndSimpleAnyTypeValue(attr, "style", style);
+ }
+ else if (typeParam.indexOf(IAttributeDescriptor.PARAMETER_SUPER_TYPE) > -1){
+ //do nothing; handled by JavaClassType translation
+ }
+ else if (typeParam.length() > 0){
+ //what to do? CSSClass seems to require 'empty' type param
+ System.out.println(typeParam);
+ }
+ }
+ }
+
+// private void createWebPathValidExtensionsTrait(Entity attr, IAttributeDescriptor attrDesc) {
+// List<String> exts = new ArrayList<String>();
+// if (attrDesc.getTypeParameter().indexOf("=") > 0){
+// String extS = attrDesc.getTypeParameter().substring(attrDesc.getTypeParameter().indexOf("=")+1);//remove "suffix="
+// StringTokenizer st = new StringTokenizer(extS, ";");
+// while (st.hasMoreElements()){
+// exts.add((String)st.nextElement());
+// }
+// Trait trait = createTrait(attr, "file-extension-filters");
+// ListOfValues list = TraitTypesFactory.eINSTANCE.createListOfValues();
+// for (String ext : exts){
+// list.getEntries().add(createAndSetSimpleAnyTypeValue(ext));
+// }
+// trait.setValue(list);
+// attr.getTraits().add(trait);
+// }
+// }
+
+ private void createValidatorParams(Entity attr) {
+ Trait t = createTrait(attr, "runtime-param-types");
+ ListOfValues list = TraitTypesFactory.eINSTANCE.createListOfValues();
+ list.getEntries().add(createAndSetSimpleAnyTypeValue("javax.faces.context.FacesContext"));
+ list.getEntries().add(createAndSetSimpleAnyTypeValue("javax.faces.component.UIComponent"));
+ list.getEntries().add(createAndSetSimpleAnyTypeValue("java.lang.Object"));
+
+ t.setValue(list);
+ attr.getTraits().add(t);
+ }
+
+ private SimpleAnyType createAndSetSimpleAnyTypeValue(String rawVal){
+ SimpleAnyType item = XMLTypeFactory.eINSTANCE.createSimpleAnyType();
+ item.setRawValue(rawVal);
+ return item;
+ }
+
+ private void createPossibleValuesAndValidValueTraits(Entity attr,
+ IAttributeDescriptor attrDesc) {
+ if (attrDesc.getOptions() != null){
+ Trait validVals = MetadataFactory.eINSTANCE.createTrait();
+ validVals.setId("valid-values");
+ validVals.setSourceModelProvider(_assistant.getSourceModelProvider());
+
+ Trait displayVals = MetadataFactory.eINSTANCE.createTrait();
+ displayVals.setId("displayed-values");
+ displayVals.setSourceModelProvider(_assistant.getSourceModelProvider());
+
+ Map options = attrDesc.getOptions();
+ ListOfValues validVs = TraitTypesFactory.eINSTANCE.createListOfValues();
+ ListOfValues displayVs = TraitTypesFactory.eINSTANCE.createListOfValues();
+ for (Iterator it=options.entrySet().iterator();it.hasNext();){
+ Map.Entry entry = (Map.Entry)it.next();
+ validVs.getEntries().add(createAndSetSimpleAnyTypeValue((String)entry.getKey()));
+ displayVs.getEntries().add(createAndSetSimpleAnyTypeValue((String)entry.getValue()));
+ }
+ if (validVs.getEntries().size() > 0) {
+ validVals.setValue(validVs);
+ displayVals.setValue(displayVs);
+ attr.getTraits().add(validVals);
+ attr.getTraits().add(displayVals);
+ }
+ }
+ }
+
+ private void setTraitValueUsingSimpleAnyType(Trait trait, String type) {
+ SimpleAnyType value = XMLTypeFactory.eINSTANCE.createSimpleAnyType();
+ value.setRawValue(type);
+ trait.setValue(value);
+ }
+
+ private Trait createTrait(Entity entity, String id){
+ Trait trait = MetadataFactory.eINSTANCE.createTrait();
+ trait.setId(id);
+ trait.setSourceModelProvider(_assistant.getSourceModelProvider());
+ return trait;
+ }
+
+ private boolean hasTrait(Entity attr, String traitKey) {
+
+ return false;
+ }
+
+ private void createTagTraits(Entity tag, IElementDescriptor tagElem) {
+ if (tagElem.getHelpContextID() != null && !tagElem.getHelpContextID().equals("")){
+ //create help-topic-id trait...
+ //not bothering at the moment as we are not providing tooling at the moment
+ }
+ }
+
+ private Entity internalCreateTagEntity(IElementDescriptor tagElem) {
+ Entity tag = MetadataFactory.eINSTANCE.createEntity();
+ tag.setId(tagElem.getTagName());
+ return tag;
+ }
+
+ private Entity internalCreateAttributeEntity(IAttributeDescriptor attrDesc) {
+ Entity attr = MetadataFactory.eINSTANCE.createEntity();
+ attr.setId(attrDesc.getAttributeName());
+ return attr;
+ }
+
+ private Model getMergedModel(){
+ if ((Model)_assistant.getMergedModel().getRoot() != null)
+ return (Model)_assistant.getMergedModel().getRoot();
+
+ Model model = MetadataFactory.eINSTANCE.createModel();
+ model.setId(_assistant.getMergedModel().getModelKey().getUri());
+ model.setSourceModelProvider(_assistant.getSourceModelProvider());
+ _assistant.getMergedModel().setRoot(model);
+ return model;
+
+ }
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/AttributeDescriptor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/AttributeDescriptor.java
index ecfa642..c05f6f1 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/AttributeDescriptor.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/AttributeDescriptor.java
@@ -19,6 +19,7 @@
/**
* @author mengbo
+ * @deprecated
*/
public class AttributeDescriptor implements IAttributeDescriptor {
private String _attributeName;
@@ -226,4 +227,10 @@
public void setRequired(boolean required) {
this._required = required;
}
+
+ public String toString(){
+ StringBuffer buf = new StringBuffer("AttributeDescriptor: ");
+ buf.append(this.getAttributeName());
+ return buf.toString();
+ }
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/BindingHandlerDelegate.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/BindingHandlerDelegate.java
index ec88bcf..9a75e8d 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/BindingHandlerDelegate.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/BindingHandlerDelegate.java
@@ -23,6 +23,7 @@
/**
* @author mengbo
* @version 1.5
+ * @deprecated
*/
public class BindingHandlerDelegate implements IBindingHandler {
/*
@@ -69,6 +70,14 @@
uri, tagName, attr);
}
+// public boolean isEnabled(IDOMNode ancester, IDOMElement element,
+// IPropertyPageDescriptor attr) {
+// IBindingHandler handler = getDelegatedHandler(ancester, element);
+// return (handler == null) ? false : handler.isEnabled(ancester, element,
+// attr);
+// }
+
+
/*
* (non-Javadoc)
*
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/DefaultEditorCreator.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/DefaultEditorCreator.java
new file mode 100644
index 0000000..b952354
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/DefaultEditorCreator.java
@@ -0,0 +1,252 @@
+/*******************************************************************************
+ * Copyright (c) 2006 Sybase, Inc. and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.meta;
+
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField;
+import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
+import org.eclipse.jst.pagedesigner.meta.internal.CellEditorFactoryRegistry;
+import org.eclipse.jst.pagedesigner.ui.dialogfields.DialogFieldWrapper;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+
+/**
+ * @author mengbo
+ * @version 1.5
+ */
+public class DefaultEditorCreator extends EditorCreator {
+ static IPropertyPageDescriptor _staticAttr;
+
+ static IDOMElement _staticElement;
+
+ static IBindingHandler _staticHandler;
+
+ static CellEditorHolder _staticHolder;
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jst.pagedesigner.meta.EditorCreator#createCellEditor(org.eclipse.swt.widgets.Composite,
+ * org.eclipse.jst.pagedesigner.meta.IPropertyPageDescriptor,
+ * org.w3c.dom.Element)
+ */
+ public CellEditor createCellEditor(Composite parent,
+ IPropertyPageDescriptor attr, IDOMElement element) {
+ return CellEditorFactoryRegistry.getInstance().createCellEditor(parent,
+ attr, element);
+ }
+
+// /*
+// * (non-Javadoc)
+// *
+// * @see org.eclipse.jst.pagedesigner.meta.EditorCreator#createDialogField(org.eclipse.jst.pagedesigner.meta.IPropertyPageDescriptor)
+// */
+// public DialogField createDialogField(IPropertyPageDescriptor attr) {
+// return CellEditorFactoryRegistry.getInstance().createDialogField(attr);
+// }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jst.pagedesigner.meta.EditorCreator#createCellEditorWithWrapper(org.eclipse.swt.widgets.Composite,
+ * org.eclipse.jst.pagedesigner.meta.IPropertyPageDescriptor,
+ * org.w3c.dom.Element,
+ * org.eclipse.jst.pagedesigner.meta.IBindingHandler,
+ * org.eclipse.swt.graphics.Image)
+ */
+ public CellEditor createCellEditorWithWrapper(Composite parent,
+ IPropertyPageDescriptor attr, final IDOMElement element,
+ IBindingHandler handler1) {
+// final IBindingHandler handler = (handler1 == null ? getSystemDefaultBindingHandler()
+// : handler1);
+// String uri = CMUtil.getElementNamespaceURI(element);
+// String tagName = element.getLocalName();
+
+ return createCellEditor(parent, attr, element);
+//
+// if (!handler.isEnabled(element, element, uri, tagName, attr)) {
+// // should not enabled, so directly return original cell editor
+// return createCellEditor(parent, attr, element);
+// }
+// try {
+// // since "createWrappedCellEditor()" and "getBindingImage()" is
+// // called from the constructor of CellEditorWrapper, at that time,
+// // can't reference this DefaultEditorCreator and final fields yet,
+// // so use static variable for it.
+// _staticAttr = attr;
+// _staticElement = element;
+// _staticHandler = handler;
+//
+// return new CellEditorWrapper(parent) {
+// /*
+// * (non-Javadoc)
+// *
+// * @see org.eclipse.jst.pagedesigner.properties.celleditors.CellEditorWrapper#createWrappedCellEditor(org.eclipse.swt.widgets.Composite)
+// */
+// protected CellEditor createWrappedCellEditor(Composite cell) {
+// return EditorCreator.getInstance().createCellEditor(cell,
+// _staticAttr, _staticElement);
+// }
+//
+// /*
+// * (non-Javadoc)
+// *
+// * @see org.eclipse.jst.pagedesigner.properties.celleditors.CellEditorWrapper#openDialogBox(org.eclipse.swt.widgets.Control)
+// */
+// protected Object openDialogBox(Control cellEditorWindow) {
+// return handler.handleBinding(cellEditorWindow.getShell(),
+// element, element, convertToString(this.getValue()));
+// }
+//
+// /*
+// * (non-Javadoc)
+// *
+// * @see org.eclipse.jst.pagedesigner.properties.celleditors.CellEditorWrapper#getBindingImage()
+// */
+// protected Image getBindingImage() {
+// return _staticHandler.getImage();
+// }
+// };
+// } finally {
+// _staticAttr = null;
+// _staticElement = null;
+// _staticHandler = null;
+// _staticHolder = null;
+// }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jst.pagedesigner.meta.EditorCreator#createCellEditorWithWrapper(org.eclipse.swt.widgets.Composite,
+ * org.eclipse.jst.pagedesigner.meta.IPropertyPageDescriptor,
+ * org.eclipse.jst.pagedesigner.meta.EditorCreator.CellEditorHolder,
+ * org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement,
+ * org.eclipse.jst.pagedesigner.meta.IBindingHandler)
+ */
+ public CellEditor createCellEditorWithWrapper(Composite parent,
+ IPropertyPageDescriptor attr, CellEditorHolder holder,
+ final IDOMElement element, IBindingHandler handler1) {
+// final IBindingHandler handler = (handler1 == null ? getSystemDefaultBindingHandler()
+// : handler1);
+// String uri = CMUtil.getElementNamespaceURI(element);
+// String tagName = element.getLocalName();
+
+ return holder.createCellEditor(parent);
+
+// if (!handler.isEnabled(element, element, uri, tagName, attr)) {
+// // should not enabled, so directly return original cell editor
+// return holder.createCellEditor(parent);
+// }
+// try {
+// // since "createWrappedCellEditor()" and "getBindingImage()" is
+// // called from the constructor of CellEditorWrapper, at that time,
+// // can't reference this DefaultEditorCreator and final fields yet,
+// // so use static variable for it.
+// _staticElement = element;
+// _staticHandler = handler;
+// _staticHolder = holder;
+//
+// return new CellEditorWrapper(parent) {
+// /*
+// * (non-Javadoc)
+// *
+// * @see org.eclipse.jst.pagedesigner.properties.celleditors.CellEditorWrapper#createWrappedCellEditor(org.eclipse.swt.widgets.Composite)
+// */
+// protected CellEditor createWrappedCellEditor(Composite cell) {
+// return _staticHolder.createCellEditor(cell);
+// }
+//
+// /*
+// * (non-Javadoc)
+// *
+// * @see org.eclipse.jst.pagedesigner.properties.celleditors.CellEditorWrapper#openDialogBox(org.eclipse.swt.widgets.Control)
+// */
+// protected Object openDialogBox(Control cellEditorWindow) {
+// return handler.handleBinding(cellEditorWindow.getShell(),
+// element, element, convertToString(this.getValue()));
+// }
+//
+// /*
+// * (non-Javadoc)
+// *
+// * @see org.eclipse.jst.pagedesigner.properties.celleditors.CellEditorWrapper#getBindingImage()
+// */
+// protected Image getBindingImage() {
+// return _staticHandler.getImage();
+// }
+// };
+// } finally {
+// _staticAttr = null;
+// _staticElement = null;
+// _staticHandler = null;
+// _staticHolder = null;
+// }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jst.pagedesigner.meta.EditorCreator#createDialogFieldWithWrapper(java.lang.String,
+ * java.lang.String,
+ * org.eclipse.jst.pagedesigner.meta.IPropertyPageDescriptor,
+ * org.eclipse.jst.pagedesigner.meta.IBindingHandler)
+ */
+ public DialogField createDialogFieldWithWrapper(String uri, String tagName,
+ IPropertyPageDescriptor attr, IBindingHandler handler1) {
+ final IBindingHandler handler = (handler1 == null ? getSystemDefaultBindingHandler()
+ : handler1);
+ DialogField field = createDialogField(attr);
+ // if (field instanceof StringButtonDialogField)
+ // {
+ // ((StringButtonDialogField) field).setButtonLabel("...");
+ // }
+ DialogFieldWrapper wrapper = new DialogFieldWrapper(field, handler
+ .getImage(), handler.getDisabledImage(), uri, tagName, attr,
+ handler);
+ wrapper.setDatabindingEnabled(true);
+
+ return wrapper;
+ }
+
+
+// private String convertToString(Object value) {
+// if (value == null) {
+// return null;
+// }
+// return value.toString();
+// }
+
+ @Override
+ public DialogField createDialogFieldWithWrapper(
+ IPropertyPageDescriptor attr, IBindingHandler handler1) {
+ final IBindingHandler handler = (handler1 == null ? getSystemDefaultBindingHandler()
+ : handler1);
+ DialogField field = createDialogField(attr);
+ // if (field instanceof StringButtonDialogField)
+ // {
+ // ((StringButtonDialogField) field).setButtonLabel("...");
+ // }
+ DialogFieldWrapper wrapper = new DialogFieldWrapper(field, handler
+ .getImage(), handler.getDisabledImage(), attr.getUri(), attr.getTagName(), attr,
+ handler);
+ wrapper.setDatabindingEnabled(true);
+
+ return wrapper;
+ }
+
+ @Override
+ public DialogField createDialogField(IPropertyPageDescriptor attr) {
+ return CellEditorFactoryRegistry.getInstance().createDialogField(attr);
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/EditorCreator.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/EditorCreator.java
index df21a0e..91d2dc3 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/EditorCreator.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/EditorCreator.java
@@ -13,7 +13,7 @@
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField;
-import org.eclipse.jst.pagedesigner.meta.internal.DefaultEditorCreator;
+import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
@@ -28,13 +28,8 @@
/**
*
- *
*/
- public interface CellEditorHolder {
- /**
- * @param parent
- * @return the new cell editor
- */
+ public static interface CellEditorHolder {
public CellEditor createCellEditor(Composite parent);
}
@@ -43,9 +38,9 @@
* descriptor.
*
* @param attr
- * @return the dialog field
+ * @return DialogField
*/
- public abstract DialogField createDialogField(IAttributeDescriptor attr);
+ public abstract DialogField createDialogField(IPropertyPageDescriptor attr);
/**
* Create a dialog field that will have databinding support. Basically, this
@@ -59,21 +54,40 @@
* @param attr
* @param handler
* if null, system default mechanism will be used.
- * @return the dialog field
+ * @return DialogField
*/
public abstract DialogField createDialogFieldWithWrapper(String uri,
- String tagName, IAttributeDescriptor attr, IBindingHandler handler);
+ String tagName, IPropertyPageDescriptor attr, IBindingHandler handler);
+
+ public abstract DialogField createDialogFieldWithWrapper(IPropertyPageDescriptor descriptor, IBindingHandler handler);
+//
+// /**
+// * Create a dialog field that will have databinding support. Basically, this
+// * method will create a normal dialog field using the attribute descriptor,
+// * then make a wrapper on it.
+// *
+// * @param uri
+// * the namespace uri
+// * @param tagName
+// * the local tag name
+// * @param attrName
+// * @param handler
+// * if null, system default mechanism will be used.
+// * @return DialogField
+// */
+// public abstract DialogField createDialogFieldWithWrapper(String uri,
+// String tagName, String attrName, IBindingHandler handler);
/**
* Create a cell editor.
*
* @param parent
* @param attr
* @param element
- * @return the cell editor
+ * @return CellEditor
*/
public abstract CellEditor createCellEditor(Composite parent,
- IAttributeDescriptor attr, IDOMElement element);
+ IPropertyPageDescriptor attr, IDOMElement element);
/**
* Create a cell editor that will have databinding support.
@@ -83,10 +97,10 @@
* @param element
* @param handler
* if null, system default mechanism will be used.
- * @return the cell editor
+ * @return CellEditor
*/
public abstract CellEditor createCellEditorWithWrapper(Composite parent,
- IAttributeDescriptor attr, IDOMElement element,
+ IPropertyPageDescriptor attr, IDOMElement element,
IBindingHandler handler);
/**
@@ -101,15 +115,12 @@
* @param element
* @param handler
* if null, system default mechanism will be used.
- * @return the cell editor
+ * @return CellEditor
*/
public abstract CellEditor createCellEditorWithWrapper(Composite parent,
- IAttributeDescriptor attr, CellEditorHolder holder,
+ IPropertyPageDescriptor attr, CellEditorHolder holder,
IDOMElement element, IBindingHandler handler);
- /**
- * @return the singleton instance
- */
public static EditorCreator getInstance() {
if (_instance == null) {
_instance = new DefaultEditorCreator();
@@ -117,9 +128,6 @@
return _instance;
}
- /**
- * @return the binding handler
- */
public IBindingHandler getSystemDefaultBindingHandler() {
return _defaultHandler;
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IAttributeCellEditorFactory.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IAttributeCellEditorFactory.java
index 105395a..f3d53c1 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IAttributeCellEditorFactory.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IAttributeCellEditorFactory.java
@@ -20,6 +20,7 @@
* Factory for creating CellEditors to edit element attributes.
*
* @author mengbo
+ * @deprecated - not to be used. use ITagAttributeCellEditorFactory
*/
public interface IAttributeCellEditorFactory {
/**
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IAttributeDescriptor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IAttributeDescriptor.java
index b0991c9..2953efe 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IAttributeDescriptor.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IAttributeDescriptor.java
@@ -16,6 +16,7 @@
/**
*
* @author mengbo
+ * @deprecated
*/
public interface IAttributeDescriptor {
/**
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IAttributeRuntimeValueType.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IAttributeRuntimeValueType.java
new file mode 100644
index 0000000..6ef312b
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IAttributeRuntimeValueType.java
@@ -0,0 +1,189 @@
+/*******************************************************************************
+ * Copyright (c) 2006 Sybase, Inc. and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.meta;
+
+/**
+ * Enumeration of core attribute-value-runtime-types.
+ * Not to be implemented by clients.
+ */
+public interface IAttributeRuntimeValueType {
+ // shared for html and jsf
+ /**
+ *
+ */
+ static final String prefix1 = "org.eclipse.jst.jsf.core.attributevalues.";
+ /**
+ *
+ */
+ static final String prefix2 = "org.eclipse.jst.pagedesigner.attributevalues.";
+
+ /**
+ *
+ */
+ public static final String BASE = prefix1+"BaseType";
+
+ /**
+ *
+ */
+ public static final String CSSSTYLE = prefix2+"CSSStyleType";
+
+ /**
+ *
+ */
+ public static final String CSSCLASS = prefix2+"CSSClassType";
+
+ /**
+ *
+ */
+ public static final String CSSID = prefix2+"CSSIdType";
+
+ /**
+ *
+ */
+ public static final String STRING = prefix1+"StringType";
+
+ /**
+ *
+ */
+ public static final String BOOLEAN = prefix1+"BooleanType";
+
+ /**
+ *
+ */
+ public static final String RELATIVEPATH = prefix1+"RelativePathType";
+
+ /**
+ *
+ */
+ public static final String WEBPATH = prefix1+"WebPathType"; //FIXME
+
+ /**
+ *
+ */
+ public static final String COLOR = prefix1+"ColorType";
+
+// public static final String NAMED_BOOLEAN = prefix1+"NAMED-BOOLEAN";
+
+ /**
+ *
+ */
+ public static final String LONG = prefix1+"LongType";
+
+ /**
+ *
+ */
+ public static final String INTEGER = prefix1+"IntegerType";
+
+ /**
+ *
+ */
+ public static final String DOUBLE = prefix1+"DoubleType";
+
+ /**
+ *
+ */
+ public static final String METHODBINDING = prefix1+"MethodBindingType";
+
+ /**
+ *
+ */
+ public static final String JAVACLASS = prefix1+"JavaClassType";
+
+ /**
+ *
+ */
+ public static final String SCRIPT = prefix1+"ScriptType";
+
+// public static final String PROPERTYBINDING = prefix1+"PROPERTYBINDING";
+
+ /**
+ *
+ */
+ public static final String VALUE = prefix1+"ValueType";
+
+ /**
+ *
+ */
+ public static final String VALUEBINDING = prefix1+"ValueBindingType";
+
+ /**
+ *
+ */
+ public static final String TIMEZONE = prefix1+"TimeZoneType";
+
+ /**
+ *
+ */
+ public static final String ACTION = prefix1+"ActionType";
+
+ /**
+ *
+ */
+ public static final String CLASSPATH_RESOURCE = prefix1+"CLASSPATH_RESOURCE";
+
+ /**
+ *
+ */
+ public static final String CURRENCYCODE = prefix1+"CurrencyCodeType";
+
+ /**
+ *
+ */
+ public static final String LINK = prefix1+"LinkType";
+
+ /**
+ *
+ */
+ public static final String LOCALE = prefix1+"LocaleType";
+
+// public static final String MULTICHOICE = prefix1+"MULTICHOICE";
+
+ /**
+ *
+ */
+ public static final String FACESCONFIGIDENTIFIER = prefix1+"FacesConfigIdentifierType";
+
+ /**
+ *
+ */
+ public static final String FACESCONFIGVALIDATOR = prefix1+"FacesConfigValidatorType";
+
+ /**
+ *
+ */
+ public static final String FACESCONFIGCONVERTER = prefix1+"FacesConfigConverterType";
+
+ /**
+ *
+ */
+ public static final String COMPONENTBINDING = prefix1+"ComponentBindingType";
+
+ /**
+ *
+ */
+ public static final String COMPONENTID = prefix1+"ComponentIDType";
+
+ /**
+ *
+ */
+ public static final String LENGTH = prefix1+"LengthType";
+
+ /**
+ *
+ */
+ public static final String RESOURCEBUNDLE = prefix1+"ResourceBundleType";
+
+ /**
+ *
+ */
+ public static final String LANGUAGECODE = prefix1+"LanguageCodeType";
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IBindingHandler.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IBindingHandler.java
index 5b8bae5..514cb41 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IBindingHandler.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IBindingHandler.java
@@ -19,6 +19,7 @@
/**
* @author mengbo
* @version 1.5
+ * @deprecated
*/
public interface IBindingHandler {
/**
@@ -48,6 +49,10 @@
public boolean isEnabled(IDOMNode ancester, IDOMElement element,
String uri, String tagName, IAttributeDescriptor attr);
+
+// public boolean isEnabled(IDOMNode ancester, IDOMElement element,
+// IPropertyPageDescriptor attr);
+
/**
* given the meta data of an attribute, to see whether should enable binding
* handler for it.
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/ICMRegistry.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/ICMRegistry.java
index 6816561..5c047fe 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/ICMRegistry.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/ICMRegistry.java
@@ -14,6 +14,7 @@
/**
*
* @author mengbo
+ * @deprecated
*/
public interface ICMRegistry {
/**
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IElementDescriptor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IElementDescriptor.java
index 6285ae7..e16246c 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IElementDescriptor.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IElementDescriptor.java
@@ -14,6 +14,7 @@
/**
*
* @author mengbo
+ * * @deprecated
*/
public interface IElementDescriptor {
/**
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/ITagAttributeCellEditorFactory.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/ITagAttributeCellEditorFactory.java
new file mode 100644
index 0000000..cacb1fc
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/ITagAttributeCellEditorFactory.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.meta;
+
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField;
+import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
+import org.eclipse.swt.widgets.Composite;
+import org.w3c.dom.Element;
+
+/**
+ * Factory for creating CellEditors to edit element attributes.
+ */
+public interface ITagAttributeCellEditorFactory {
+ /**
+ * create cell editor
+ *
+ * @param parent
+ * @param attr
+ * @param ele
+ * @return null means failed to create cell editor
+ */
+ public CellEditor createCellEditor(Composite parent,
+ IPropertyPageDescriptor attr, Element ele);
+
+ /**
+ * Normally, the DialogField for an attribute may appear in the following
+ * places.
+ * <ol>
+ * <li>In the Quick Editor properties view, used to edit an element.
+ * <li>In a dialog to edit an element
+ * <li>In a dialog, to create an element
+ * </ol>
+ *
+ * It is the caller's responsibility to add valueChanged listener to the
+ * dialog field to decide how to apply the value.
+ *
+ * It is also the caller's responsibility to set the initial value of the
+ * field.
+ *
+ * The field should always be an instanceof <code>ISupportTextValue</code>,
+ * it could also optionally implement <code>IElementContextable</code>
+ *
+ * @param attr
+ * the attribute descriptor, meta data
+ * @return A dialog field. null means this factory can't create one.
+ *
+ * @see org.eclipse.jst.jsf.common.ui.internal.dialogfield.ISupportTextValue
+ */
+ public DialogField createDialogField(IPropertyPageDescriptor attr);
+
+ /**
+ * The value types supported by this factory.
+ *
+ * @return null means this factory can behave as default factory.
+ */
+ public String[] getSupportedValueTypes();
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IValueType.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/OLDIValueType.java
similarity index 97%
rename from jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IValueType.java
rename to jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/OLDIValueType.java
index cfa4e1e..e702a15 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/IValueType.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/OLDIValueType.java
@@ -15,8 +15,9 @@
* All value types will be upcased.
*
* @author mengbo
+ * @deprecated
*/
-public interface IValueType {
+public interface OLDIValueType {
// shared for html and jsf
/**
*
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/XXXEditorCreator.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/XXXEditorCreator.java
new file mode 100644
index 0000000..627652f
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/XXXEditorCreator.java
@@ -0,0 +1,133 @@
+/*******************************************************************************
+ * Copyright (c) 2006 Sybase, Inc. and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.meta;
+
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField;
+import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
+import org.eclipse.jst.pagedesigner.meta.internal.XXXDefaultEditorCreator;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+
+/**
+ * @author mengbo
+ * @version 1.5
+ * @deprecated
+ * will be deleted (was EditorCreator)
+ */
+public abstract class XXXEditorCreator {
+ static XXXEditorCreator _instance;
+
+ static IBindingHandler _defaultHandler = new BindingHandlerDelegate();
+
+ public static interface CellEditorHolder {
+ public CellEditor createCellEditor(Composite parent);
+ }
+
+ /**
+ * Create a dialog field without databinding using the specified attribute
+ * descriptor.
+ *
+ * @param attr
+ * @return DialogField
+ */
+ public abstract DialogField createDialogField(IAttributeDescriptor attr);
+
+ /**
+ * Create a dialog field that will have databinding support. Basically, this
+ * method will create a normal dialog field using the attribute descriptor,
+ * then make a wrapper on it.
+ *
+ * @param uri
+ * the namespace uri
+ * @param tagName
+ * the local tag name
+ * @param attr
+ * @param handler
+ * if null, system default mechanism will be used.
+ * @return DialogField
+ */
+ public abstract DialogField createDialogFieldWithWrapper(String uri,
+ String tagName, IAttributeDescriptor attr, IBindingHandler handler);
+
+ public abstract DialogField createDialogFieldWithWrapper(IPropertyPageDescriptor descriptor, IBindingHandler handler);
+//
+// /**
+// * Create a dialog field that will have databinding support. Basically, this
+// * method will create a normal dialog field using the attribute descriptor,
+// * then make a wrapper on it.
+// *
+// * @param uri
+// * the namespace uri
+// * @param tagName
+// * the local tag name
+// * @param attrName
+// * @param handler
+// * if null, system default mechanism will be used.
+// * @return DialogField
+// */
+// public abstract DialogField createDialogFieldWithWrapper(String uri,
+// String tagName, String attrName, IBindingHandler handler);
+ /**
+ * Create a cell editor.
+ *
+ * @param parent
+ * @param attr
+ * @param element
+ * @return CellEditor
+ */
+ public abstract CellEditor createCellEditor(Composite parent,
+ IAttributeDescriptor attr, IDOMElement element);
+
+ /**
+ * Create a cell editor that will have databinding support.
+ *
+ * @param parent
+ * @param attr
+ * @param element
+ * @param handler
+ * if null, system default mechanism will be used.
+ * @return CellEditor
+ */
+ public abstract CellEditor createCellEditorWithWrapper(Composite parent,
+ IAttributeDescriptor attr, IDOMElement element,
+ IBindingHandler handler);
+
+ /**
+ * Create a cell edtior that will have databinding support. This method
+ * don't provide an attribute descriptor, but it provide a CellEditorHolder
+ * to create whatever normal cell editor it wants.
+ *
+ * @param parent
+ * @param attr
+ * could be null
+ * @param holder
+ * @param element
+ * @param handler
+ * if null, system default mechanism will be used.
+ * @return CellEditor
+ */
+ public abstract CellEditor createCellEditorWithWrapper(Composite parent,
+ IAttributeDescriptor attr, CellEditorHolder holder,
+ IDOMElement element, IBindingHandler handler);
+
+ public static XXXEditorCreator getInstance() {
+ if (_instance == null) {
+ _instance = new XXXDefaultEditorCreator();
+ }
+ return _instance;
+ }
+
+ public IBindingHandler getSystemDefaultBindingHandler() {
+ return _defaultHandler;
+ }
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/CMRegistry.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/CMRegistry.java
index d886133..caf4725 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/CMRegistry.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/CMRegistry.java
@@ -43,6 +43,7 @@
* other plugins to contribute things.
*
* @author mengbo
+ * @deprecated
*/
public class CMRegistry implements ICMRegistry {
static Logger _log = PDPlugin.getLogger(CMRegistry.class);
@@ -58,7 +59,7 @@
/**
* @return the singleton instance
*/
- public static ICMRegistry getInstance() {
+ public static CMRegistry getInstance() {
if (_instance == null) {
_instance = new CMRegistry();
}
@@ -172,7 +173,7 @@
ElementDescReader reader = new ElementDescReader(url);
reader.readElements(map);
} catch (Exception e) {
- _log.error("Error loading: "+fileName, e);
+ _log.error("Error loading " + fileName + ": " + e.getMessage());
}
}
@@ -215,4 +216,17 @@
private IElementDescriptor getJSPElementDescriptor(String tagname) {
return (IElementDescriptor) _jspMap.get(tagname.toLowerCase());
}
+
+ public List<ICMRegistry> getRegistries() {
+ List<ICMRegistry> ret = new ArrayList<ICMRegistry>(_contributedRegistries);
+ ret.add(this);
+ return ret;
+ }
+
+ /**
+ * call to free up memory used
+ */
+ public void unloadRegistry(){
+ _instance = null;
+ }
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/CategoryNameComparator.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/CategoryNameComparator.java
index 58599e9..87db9cf 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/CategoryNameComparator.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/CategoryNameComparator.java
@@ -17,6 +17,7 @@
import org.eclipse.jst.pagedesigner.properties.ITabbedPropertiesConstants;
/**
+ * Sorts categories and ensures that @see{ITabbedPropertiesConstants.OTHER_CATEGORY} comes last
* @author mengbo
*/
public class CategoryNameComparator implements Comparator {
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/CellEditorFacRegistryReader.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/CellEditorFacRegistryReader.java
index ed7d2d6..5349752 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/CellEditorFacRegistryReader.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/CellEditorFacRegistryReader.java
@@ -21,7 +21,7 @@
import org.eclipse.core.runtime.Platform;
import org.eclipse.jst.pagedesigner.IJMTConstants;
import org.eclipse.jst.pagedesigner.PDPlugin;
-import org.eclipse.jst.pagedesigner.meta.IAttributeCellEditorFactory;
+import org.eclipse.jst.pagedesigner.meta.ITagAttributeCellEditorFactory;
/**
* Read the registry to find out all the CellEditorFactory.
@@ -29,12 +29,9 @@
* @author mengbo
*/
public class CellEditorFacRegistryReader {
- static IAttributeCellEditorFactory[] _factories = null;
+ static ITagAttributeCellEditorFactory[] _factories = null;
- /**
- * @return the factories
- */
- public static synchronized IAttributeCellEditorFactory[] getAllFactories() {
+ public static synchronized ITagAttributeCellEditorFactory[] getAllFactories() {
if (_factories == null) {
_factories = readAllFactories();
}
@@ -42,7 +39,7 @@
}
- private static IAttributeCellEditorFactory[] readAllFactories() {
+ private static ITagAttributeCellEditorFactory[] readAllFactories() {
List result = new ArrayList();
IExtensionPoint extensionPoint = Platform.getExtensionRegistry()
.getExtensionPoint(PDPlugin.getPluginId(),
@@ -55,13 +52,12 @@
for (int j = 0; j < facs.length; j++) {
if (facs[j].getName().equals(
- IJMTConstants.ATTRIBUTE_CELLEDITOR_FACTORY)) {
- facs[j].getAttribute("class");
+ IJMTConstants.TAG_ATTRIBUTE_CELLEDITOR_FACTORY)) {
Object obj;
try {
obj = facs[j].createExecutableExtension("class");
- if (obj instanceof IAttributeCellEditorFactory) {
+ if (obj instanceof ITagAttributeCellEditorFactory) {
result.add(obj);
}
} catch (CoreException e) {
@@ -71,7 +67,7 @@
}
}
}
- IAttributeCellEditorFactory[] ret = new IAttributeCellEditorFactory[result
+ ITagAttributeCellEditorFactory[] ret = new ITagAttributeCellEditorFactory[result
.size()];
result.toArray(ret);
return ret;
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/CellEditorFactoryRegistry.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/CellEditorFactoryRegistry.java
index dc80d03..eb235bc 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/CellEditorFactoryRegistry.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/CellEditorFactoryRegistry.java
@@ -27,9 +27,9 @@
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.StringDialogField;
import org.eclipse.jst.jsf.common.ui.internal.logging.Logger;
import org.eclipse.jst.pagedesigner.PDPlugin;
-import org.eclipse.jst.pagedesigner.meta.IAttributeCellEditorFactory;
-import org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor;
-import org.eclipse.jst.pagedesigner.meta.IValueType;
+import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
+import org.eclipse.jst.pagedesigner.meta.OLDIValueType;
+import org.eclipse.jst.pagedesigner.meta.ITagAttributeCellEditorFactory;
import org.eclipse.jst.pagedesigner.properties.celleditors.CellEditorFactory;
import org.eclipse.swt.widgets.Composite;
import org.w3c.dom.Element;
@@ -38,7 +38,6 @@
* CellEditorFactoryRegistry also read information from plugin.xml extension to
* allow other plugins to contribute new kinds of cell editors.
*
- * @author mengbo
*/
public class CellEditorFactoryRegistry {
private static final Logger _log = PDPlugin
@@ -50,9 +49,6 @@
private List _defaultFactories = new ArrayList();
- /**
- * @return the singleton factory instance
- */
public static CellEditorFactoryRegistry getInstance() {
if (_instance == null) {
_instance = new CellEditorFactoryRegistry();
@@ -61,7 +57,7 @@
}
private CellEditorFactoryRegistry() {
- IAttributeCellEditorFactory[] facs = CellEditorFacRegistryReader
+ ITagAttributeCellEditorFactory[] facs = CellEditorFacRegistryReader
.getAllFactories();
if (facs != null) {
for (int i = 0; i < facs.length; i++) {
@@ -74,7 +70,7 @@
/**
* @param fac
*/
- public void addCellEditorFactory(IAttributeCellEditorFactory fac) {
+ public void addCellEditorFactory(ITagAttributeCellEditorFactory fac) {
String[] types = fac.getSupportedValueTypes();
if (types == null || types.length == 0) {
_defaultFactories.add(fac);
@@ -85,28 +81,22 @@
}
}
- /**
- * @param parent
- * @param attr
- * @param element
- * @return the cell editor
- */
public CellEditor createCellEditor(Composite parent,
- IAttributeDescriptor attr, Element element) {
+ IPropertyPageDescriptor attr, Element element) {
String type = attr.getValueType();
if (type == null || type.length() == 0)
return null;
- type = type.toUpperCase();
+// type = type.toUpperCase();
CellEditor result = null;
- IAttributeCellEditorFactory fac = (IAttributeCellEditorFactory) _factoryMap
+ ITagAttributeCellEditorFactory fac = (ITagAttributeCellEditorFactory) _factoryMap
.get(type);
if (fac != null) {
result = fac.createCellEditor(parent, attr, element);
}
if (result == null) {
for (int i = 0, size = _defaultFactories.size(); i < size; i++) {
- result = ((IAttributeCellEditorFactory) _defaultFactories
+ result = ((ITagAttributeCellEditorFactory) _defaultFactories
.get(i)).createCellEditor(parent, attr, element);
if (result != null)
break;
@@ -116,28 +106,27 @@
}
/**
- *
* @param attr
- * @return will never be null
+ * @return DialogField
*/
- public DialogField createDialogField(IAttributeDescriptor attr) {
+ public DialogField createDialogField(IPropertyPageDescriptor attr) {
String type = attr.getValueType();
if (type == null || type.length() == 0) {
DialogField result = createTextDialogField(attr);
- result.setLabelText(attr.getLabelString() + ":"); //$NON-NLS-1$
+ result.setLabelText(attr.getLabel()); //labelProvider???
return result;
}
- type = type.toUpperCase();
+// type = type.toUpperCase();
DialogField result = null;
- IAttributeCellEditorFactory fac = (IAttributeCellEditorFactory) _factoryMap
+ ITagAttributeCellEditorFactory fac = (ITagAttributeCellEditorFactory) _factoryMap
.get(type);
if (fac != null) {
result = fac.createDialogField(attr);
}
if (result == null) {
for (int i = 0, size = _defaultFactories.size(); i < size; i++) {
- result = ((IAttributeCellEditorFactory) _defaultFactories
+ result = ((ITagAttributeCellEditorFactory) _defaultFactories
.get(i)).createDialogField(attr);
if (result != null) {
break;
@@ -150,31 +139,31 @@
if (!(result instanceof ISupportTextValue)) {
result = createTextDialogField(attr);
}
- result.setLabelText(attr.getLabelString() + ":"); //$NON-NLS-1$
+// result.setLabelText(attr.getLabel() + ":"); //$NON-NLS-1$
return result;
}
/**
* @param attr
- * @return the dialog field
+ * @return DialogField
*/
- public DialogField createTextDialogField(IAttributeDescriptor attr) {
+ public DialogField createTextDialogField(IPropertyPageDescriptor attr) {
StringDialogField field = new StringDialogField();
- field.setLabelText(attr.getLabelString());
+ field.setLabelText(attr.getLabel());
field.setRequired(attr.isRequired());
field.setToolTip(attr.getDescription());
return field;
}
-
/**
* This is NOT a product method. It should only be used by testing code.
*
- * @return the list of all value types
+ * @return String[] of value types
*/
public String[] getAllValueTypes() {
+ //FIXME
Set valueTypes = new HashSet();
for (Iterator iter = _factoryMap.values().iterator(); iter.hasNext();) {
- IAttributeCellEditorFactory fac = (IAttributeCellEditorFactory) iter
+ ITagAttributeCellEditorFactory fac = (ITagAttributeCellEditorFactory) iter
.next();
String[] supportedTypes = fac.getSupportedValueTypes();
@@ -185,7 +174,7 @@
}
}
// add those default ones.
- Field[] fields = IValueType.class.getFields();
+ Field[] fields = OLDIValueType.class.getFields();
for (int i = 0; i < fields.length; i++) {
int modifiers = fields[i].getModifiers();
if (Modifier.isStatic(modifiers) && Modifier.isFinal(modifiers)) {
@@ -206,4 +195,6 @@
valueTypes.toArray(ret);
return ret;
}
+
+
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/ElementDescReader.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/ElementDescReader.java
index 800b3a8..b0c970a 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/ElementDescReader.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/ElementDescReader.java
@@ -42,7 +42,9 @@
import org.xml.sax.SAXException;
/**
+ * Used by Sybase CMConfig model loader
* @author mengbo
+ * @deprecated
*/
public class ElementDescReader {
private static Logger _log = PDPlugin.getLogger(ElementDescReader.class);
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/ElementDescriptor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/ElementDescriptor.java
index 8f4afb4..91dd59c 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/ElementDescriptor.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/ElementDescriptor.java
@@ -18,6 +18,7 @@
/**
* @author mengbo
+ * @deprecated
*/
public class ElementDescriptor implements IElementDescriptor {
String _tagName;
@@ -131,4 +132,10 @@
public void setHelpContextID(String contextid) {
_helpContextID = contextid;
}
+
+ public String toString(){
+ StringBuffer buf = new StringBuffer("ElementDescriptor: ");
+ buf.append(this.getTagName()).append("(").append(this.getNamespaceURI()).append(")");
+ return buf.toString();
+ }
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/LocaleFallback.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/LocaleFallback.java
index 7e16317..d99b6d5 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/LocaleFallback.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/LocaleFallback.java
@@ -20,6 +20,7 @@
/**
* @author mengbo
* @version 1.5
+ * @deprecated
*/
public class LocaleFallback {
private static Map map = new HashMap();
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/SimpleCMRegistry.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/SimpleCMRegistry.java
index 44df1bb..d1b22ec 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/SimpleCMRegistry.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/SimpleCMRegistry.java
@@ -70,5 +70,9 @@
}
return null;
}
+
+ public Map getMap(){
+ return _map;
+ }
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/XXXCellEditorFacRegistryReader.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/XXXCellEditorFacRegistryReader.java
new file mode 100644
index 0000000..e2e82dc
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/XXXCellEditorFacRegistryReader.java
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * Copyright (c) 2006 Sybase, Inc. and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.meta.internal;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jst.pagedesigner.IJMTConstants;
+import org.eclipse.jst.pagedesigner.PDPlugin;
+import org.eclipse.jst.pagedesigner.meta.IAttributeCellEditorFactory;
+
+/**
+ * Read the registry to find out all the CellEditorFactory.
+ *
+ * @author mengbo
+ * will be deleted
+ */
+public class XXXCellEditorFacRegistryReader {
+ static IAttributeCellEditorFactory[] _factories = null;
+
+ /**
+ * @return the factories
+ */
+ public static synchronized IAttributeCellEditorFactory[] getAllFactories() {
+ if (_factories == null) {
+ _factories = readAllFactories();
+ }
+ return _factories;
+
+ }
+
+ private static IAttributeCellEditorFactory[] readAllFactories() {
+ List result = new ArrayList();
+ IExtensionPoint extensionPoint = Platform.getExtensionRegistry()
+ .getExtensionPoint(PDPlugin.getPluginId(),
+ IJMTConstants.EXTENSION_POINT_PAGEDESIGNER);
+ IExtension[] extensions = extensionPoint.getExtensions();
+
+ for (int i = 0; i < extensions.length; i++) {
+ IExtension ext = extensions[i];
+ IConfigurationElement[] facs = ext.getConfigurationElements();
+
+ for (int j = 0; j < facs.length; j++) {
+ if (facs[j].getName().equals(
+ IJMTConstants.ATTRIBUTE_CELLEDITOR_FACTORY)) {
+// facs[j].getAttribute("class");
+ Object obj;
+ try {
+ obj = facs[j].createExecutableExtension("class");
+
+ if (obj instanceof IAttributeCellEditorFactory) {
+ result.add(obj);
+ }
+ } catch (CoreException e) {
+ // ignore the exception
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+ IAttributeCellEditorFactory[] ret = new IAttributeCellEditorFactory[result
+ .size()];
+ result.toArray(ret);
+ return ret;
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/XXXCellEditorFactoryRegistry.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/XXXCellEditorFactoryRegistry.java
new file mode 100644
index 0000000..393c65f
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/XXXCellEditorFactoryRegistry.java
@@ -0,0 +1,273 @@
+/*******************************************************************************
+ * Copyright (c) 2006 Sybase, Inc. and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.meta.internal;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.TextCellEditor;
+import org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField;
+import org.eclipse.jst.jsf.common.ui.internal.dialogfield.ISupportTextValue;
+import org.eclipse.jst.jsf.common.ui.internal.dialogfield.StringDialogField;
+import org.eclipse.jst.jsf.common.ui.internal.logging.Logger;
+import org.eclipse.jst.pagedesigner.PDPlugin;
+import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
+import org.eclipse.jst.pagedesigner.meta.IAttributeCellEditorFactory;
+import org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor;
+import org.eclipse.jst.pagedesigner.meta.OLDIValueType;
+import org.eclipse.jst.pagedesigner.properties.celleditors.OLDCellEditorFactory;
+import org.eclipse.swt.widgets.Composite;
+import org.w3c.dom.Element;
+
+/**
+ * CellEditorFactoryRegistry also read information from plugin.xml extension to
+ * allow other plugins to contribute new kinds of cell editors.
+ *
+ * @author mengbo
+ * will be deleted
+ */
+public class XXXCellEditorFactoryRegistry {
+ private static final Logger _log = PDPlugin
+ .getLogger(XXXCellEditorFactoryRegistry.class);
+
+ private static XXXCellEditorFactoryRegistry _instance;
+
+ private Map _factoryMap = new HashMap();
+
+ private List _defaultFactories = new ArrayList();
+
+ public static XXXCellEditorFactoryRegistry getInstance() {
+ if (_instance == null) {
+ _instance = new XXXCellEditorFactoryRegistry();
+ }
+ return _instance;
+ }
+
+ private XXXCellEditorFactoryRegistry() {
+ IAttributeCellEditorFactory[] facs = XXXCellEditorFacRegistryReader
+ .getAllFactories();
+ if (facs != null) {
+ for (int i = 0; i < facs.length; i++) {
+ addCellEditorFactory(facs[i]);
+ }
+ }
+ addCellEditorFactory(new OLDCellEditorFactory());
+ }
+
+ /**
+ * @param fac
+ */
+ public void addCellEditorFactory(IAttributeCellEditorFactory fac) {
+ String[] types = fac.getSupportedValueTypes();
+ if (types == null || types.length == 0) {
+ _defaultFactories.add(fac);
+ } else {
+ for (int i = 0; i < types.length; i++) {
+ _factoryMap.put(types[i].toUpperCase(), fac);
+ }
+ }
+ }
+
+ public CellEditor createCellEditor(Composite parent,
+ IAttributeDescriptor attr, Element element) {
+ String type = attr.getValueType();
+ if (type == null || type.length() == 0)
+ return null;
+ type = type.toUpperCase();
+
+ CellEditor result = null;
+ IAttributeCellEditorFactory fac = (IAttributeCellEditorFactory) _factoryMap
+ .get(type);
+ if (fac != null) {
+ result = fac.createCellEditor(parent, attr, element);
+ }
+ if (result == null) {
+ for (int i = 0, size = _defaultFactories.size(); i < size; i++) {
+ result = ((IAttributeCellEditorFactory) _defaultFactories
+ .get(i)).createCellEditor(parent, attr, element);
+ if (result != null)
+ break;
+ }
+ }
+ return result;
+ }
+
+ public CellEditor createCellEditor(Composite parent,
+ IPropertyPageDescriptor attr, Element element) {
+// String type = attr.getValueType();
+// if (type == null || type.length() == 0)
+// return null;
+// type = type.toUpperCase();
+
+ CellEditor result = null;
+ result = new TextCellEditor(parent);
+// IAttributeCellEditorFactory fac = (IAttributeCellEditorFactory) _factoryMap
+// .get(type);
+// if (fac != null) {
+// result = fac.createCellEditor(parent, attr, element);
+// }
+// if (result == null) {
+// for (int i = 0, size = _defaultFactories.size(); i < size; i++) {
+// result = ((IAttributeCellEditorFactory) _defaultFactories
+// .get(i)).createCellEditor(parent, attr, element);
+// if (result != null)
+// break;
+// }
+// }
+ return result;
+ }
+
+ /**
+ * @param attr
+ * @return DialogField
+ */
+ public DialogField createDialogField(IAttributeDescriptor attr) {
+ String type = attr.getValueType();
+ if (type == null || type.length() == 0) {
+ DialogField result = createTextDialogField(attr);
+ result.setLabelText(attr.getLabelString() + ":"); //$NON-NLS-1$
+ return result;
+ }
+ type = type.toUpperCase();
+
+ DialogField result = null;
+ IAttributeCellEditorFactory fac = (IAttributeCellEditorFactory) _factoryMap
+ .get(type);
+ if (fac != null) {
+ result = fac.createDialogField(attr);
+ }
+ if (result == null) {
+ for (int i = 0, size = _defaultFactories.size(); i < size; i++) {
+ result = ((IAttributeCellEditorFactory) _defaultFactories
+ .get(i)).createDialogField(attr);
+ if (result != null) {
+ break;
+ }
+ }
+ }
+ if (result == null) {
+ result = createTextDialogField(attr);
+ }
+ if (!(result instanceof ISupportTextValue)) {
+ result = createTextDialogField(attr);
+ }
+ result.setLabelText(attr.getLabelString() + ":"); //$NON-NLS-1$
+ return result;
+ }
+
+ public DialogField createDialogField(IPropertyPageDescriptor attr) {
+ String type = attr.getValueType();
+ if (type == null || type.length() == 0) {
+ DialogField result = createTextDialogField(attr);
+ result.setLabelText(attr.getLabel()); //labelProvider???
+ return result;
+ }
+ type = type.toUpperCase();
+
+ DialogField result = null;
+// IAttributeCellEditorFactory fac = (IAttributeCellEditorFactory) _factoryMap
+// .get(type);
+// if (fac != null) {
+// result = fac.createDialogField(attr);
+// }
+// if (result == null) {
+// for (int i = 0, size = _defaultFactories.size(); i < size; i++) {
+// result = ((IAttributeCellEditorFactory) _defaultFactories
+// .get(i)).createDialogField(attr);
+// if (result != null) {
+// break;
+// }
+// }
+// }
+// if (result == null) {
+ result = createTextDialogField(attr);
+// }
+ if (!(result instanceof ISupportTextValue)) {
+ result = createTextDialogField(attr);
+ }
+// result.setLabelText(attr.getLabel() + ":"); //$NON-NLS-1$
+ return result;
+ }
+ /**
+ * @param attr
+ * @return DialogField
+ */
+ public DialogField createTextDialogField(IAttributeDescriptor attr) {
+ StringDialogField field = new StringDialogField();
+ field.setLabelText(attr.getLabelString());
+ field.setRequired(attr.isRequired());
+ field.setToolTip(attr.getDescription());
+ return field;
+ }
+
+ /**
+ * @param attr
+ * @return DialogField
+ */
+ public DialogField createTextDialogField(IPropertyPageDescriptor attr) {
+ StringDialogField field = new StringDialogField();
+ field.setLabelText(attr.getLabel());
+ field.setRequired(attr.isRequired());
+ field.setToolTip(attr.getDescription());
+ return field;
+ }
+ /**
+ * This is NOT a product method. It should only be used by testing code.
+ *
+ * @return String[] of value types
+ */
+ public String[] getAllValueTypes() {
+ Set valueTypes = new HashSet();
+ for (Iterator iter = _factoryMap.values().iterator(); iter.hasNext();) {
+ IAttributeCellEditorFactory fac = (IAttributeCellEditorFactory) iter
+ .next();
+ String[] supportedTypes = fac.getSupportedValueTypes();
+
+ if (supportedTypes != null) {
+ for (int i = 0; i < supportedTypes.length; i++) {
+ valueTypes.add(supportedTypes[i]);
+ }
+ }
+ }
+ // add those default ones.
+ Field[] fields = OLDIValueType.class.getFields();
+ for (int i = 0; i < fields.length; i++) {
+ int modifiers = fields[i].getModifiers();
+ if (Modifier.isStatic(modifiers) && Modifier.isFinal(modifiers)) {
+ if (fields[i].getType() == String.class) {
+ try {
+ valueTypes.add(fields[i].get(null));
+ } catch (IllegalArgumentException ex) {
+ // "Error in fields retrieving:"
+ _log.info("CellEditorFactoryRegistry.Info.2", ex); //$NON-NLS-1$
+ } catch (IllegalAccessException ex) {
+ // "Error in fields retrieving:"
+ _log.info("CellEditorFactoryRegistry.Info.3", ex); //$NON-NLS-1$
+ }
+ }
+ }
+ }
+ String[] ret = new String[valueTypes.size()];
+ valueTypes.toArray(ret);
+ return ret;
+ }
+
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/DefaultEditorCreator.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/XXXDefaultEditorCreator.java
similarity index 81%
rename from jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/DefaultEditorCreator.java
rename to jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/XXXDefaultEditorCreator.java
index 71fbc24..930f961 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/DefaultEditorCreator.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/meta/internal/XXXDefaultEditorCreator.java
@@ -14,9 +14,10 @@
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField;
import org.eclipse.jst.jsf.core.internal.tld.CMUtil;
-import org.eclipse.jst.pagedesigner.meta.EditorCreator;
+import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
import org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor;
import org.eclipse.jst.pagedesigner.meta.IBindingHandler;
+import org.eclipse.jst.pagedesigner.meta.XXXEditorCreator;
import org.eclipse.jst.pagedesigner.properties.celleditors.CellEditorWrapper;
import org.eclipse.jst.pagedesigner.ui.dialogfields.DialogFieldWrapper;
import org.eclipse.swt.graphics.Image;
@@ -27,8 +28,9 @@
/**
* @author mengbo
* @version 1.5
+ * will be deleted
*/
-public class DefaultEditorCreator extends EditorCreator {
+public class XXXDefaultEditorCreator extends XXXEditorCreator {
static IAttributeDescriptor _staticAttr;
static IDOMElement _staticElement;
@@ -46,7 +48,7 @@
*/
public CellEditor createCellEditor(Composite parent,
IAttributeDescriptor attr, IDOMElement element) {
- return CellEditorFactoryRegistry.getInstance().createCellEditor(parent,
+ return XXXCellEditorFactoryRegistry.getInstance().createCellEditor(parent,
attr, element);
}
@@ -56,8 +58,23 @@
* @see org.eclipse.jst.pagedesigner.meta.EditorCreator#createDialogField(org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor)
*/
public DialogField createDialogField(IAttributeDescriptor attr) {
- return CellEditorFactoryRegistry.getInstance().createDialogField(attr);
+ return XXXCellEditorFactoryRegistry.getInstance().createDialogField(attr);
}
+
+ public DialogField createDialogField(IPropertyPageDescriptor attr) {
+ return XXXCellEditorFactoryRegistry.getInstance().createDialogField(attr);
+ }
+
+
+
+// /*
+// * (non-Javadoc)
+// *
+// * @see org.eclipse.jst.pagedesigner.meta.EditorCreator#createDialogField(org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor)
+// */
+// public DialogField createDialogField(IAttributeDescriptor attr) {
+// return XXXCellEditorFactoryRegistry.getInstance().createDialogField(attr);
+// }
/*
* (non-Javadoc)
@@ -82,7 +99,7 @@
try {
// since "createWrappedCellEditor()" and "getBindingImage()" is
// called from the constructor of CellEditorWrapper, at that time,
- // can't reference this DefaultEditorCreator and final fields yet,
+ // can't reference this XXXDefaultEditorCreator and final fields yet,
// so use static variable for it.
_staticAttr = attr;
_staticElement = element;
@@ -95,7 +112,7 @@
* @see org.eclipse.jst.pagedesigner.properties.celleditors.CellEditorWrapper#createWrappedCellEditor(org.eclipse.swt.widgets.Composite)
*/
protected CellEditor createWrappedCellEditor(Composite cell) {
- return EditorCreator.getInstance().createCellEditor(cell,
+ return XXXEditorCreator.getInstance().createCellEditor(cell,
_staticAttr, _staticElement);
}
@@ -149,7 +166,7 @@
try {
// since "createWrappedCellEditor()" and "getBindingImage()" is
// called from the constructor of CellEditorWrapper, at that time,
- // can't reference this DefaultEditorCreator and final fields yet,
+ // can't reference this XXXDefaultEditorCreator and final fields yet,
// so use static variable for it.
_staticElement = element;
_staticHandler = handler;
@@ -217,10 +234,29 @@
return wrapper;
}
+
private String convertToString(Object value) {
if (value == null) {
return null;
}
return value.toString();
}
+
+ @Override
+ public DialogField createDialogFieldWithWrapper(
+ IPropertyPageDescriptor attr, IBindingHandler handler1) {
+ final IBindingHandler handler = (handler1 == null ? getSystemDefaultBindingHandler()
+ : handler1);
+ DialogField field = createDialogField(attr);
+ // if (field instanceof StringButtonDialogField)
+ // {
+ // ((StringButtonDialogField) field).setButtonLabel("...");
+ // }
+ DialogFieldWrapper wrapper = new DialogFieldWrapper(field, handler
+ .getImage(), handler.getDisabledImage(), attr.getUri(), attr.getTagName(), attr,
+ handler);
+ wrapper.setDatabindingEnabled(true);
+
+ return wrapper;
+ }
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/AllPropertySection.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/AllPropertySection.java
index f2b76b5..de3441a 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/AllPropertySection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/AllPropertySection.java
@@ -17,14 +17,14 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.views.properties.IPropertySourceProvider;
-import org.eclipse.wst.common.ui.properties.internal.provisional.AbstractPropertySection;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
/**
- * mainly copied from AdvancedPropertySection. But extend it to allow setting
+ * Mainly copied from AdvancedPropertySection. But extend it to allow setting
* PropertySourceProvider.
*
* @author mengbo
@@ -32,14 +32,20 @@
public class AllPropertySection extends AbstractPropertySection {
// FIXME: workaround the eclipse properties view limitation of sorting
// category.
- private MyPropertySheetPage page;
-
- private IPropertySourceProvider _provider;
-
- private IDOMElement _element;
+ private AttributePropertySheetPage page;
/**
- * the adapter
+ * IPropertySourceProvider for this section
+ */
+ protected IPropertySourceProvider _provider;
+
+ /**
+ * selected tag IDOMElement
+ */
+ protected IDOMElement _element;
+
+ /**
+ * The INodeAdapter to use for notification of model change
*/
protected INodeAdapter _adapter = new INodeAdapter() {
public boolean isAdapterForType(Object type) {
@@ -53,22 +59,21 @@
};
/**
- *
+ * Constructor
*/
public AllPropertySection() {
this.setPropertySourceProvider(new AttributePropertySourceProvider());
}
- /**
- * see org.eclipse.wst.common.ui.properties.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite,
- * org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage)
- */
+ @Override
public void createControls(Composite parent,
TabbedPropertySheetPage tabbedPropertySheetPage) {
super.createControls(parent, tabbedPropertySheetPage);
+
+
Composite composite = getWidgetFactory()
.createFlatFormComposite(parent);
- page = new MyPropertySheetPage();
+ page = new AttributePropertySheetPage();
page.init(tabbedPropertySheetPage.getSite());
if (_provider != null) {
@@ -86,17 +91,14 @@
page.getControl().setLayoutData(data);
}
- /**
- * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#setInput(org.eclipse.ui.IWorkbenchPart,
- * org.eclipse.jface.viewers.ISelection)
- */
+ @Override
public void setInput(IWorkbenchPart part, ISelection selection) {
- super.setInput(part, selection);
- page.selectionChanged(part, selection);
-
IDOMElement newEle = (IDOMElement) DesignerPropertyTool.getElement(
part, selection);
+
if (_element != newEle) {
+ super.setInput(part, selection);
+ page.selectionChanged(part, selection);
if (_element != null) {
_element.removeAdapter(_adapter);
}
@@ -107,9 +109,7 @@
}
}
- /**
- * see org.eclipse.wst.common.ui.properties.view.ISection#dispose()
- */
+ @Override
public void dispose() {
super.dispose();
@@ -122,27 +122,26 @@
}
}
- /**
- * see org.eclipse.wst.common.ui.properties.view.ISection#refresh()
- */
+ @Override
public void refresh() {
page.refresh();
}
- /**
- * see org.eclipse.wst.common.ui.properties.view.ISection#shouldUseExtraSpace()
- */
+ @Override
public boolean shouldUseExtraSpace() {
return true;
}
/**
+ * Set provider into tabbedPropertiesPage
* @param provider
*/
public void setPropertySourceProvider(IPropertySourceProvider provider) {
_provider = provider;
- if (page != null)
+ if (page != null){
page.setPropertySourceProvider(_provider);
+
+ }
}
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/MyPropertySheetPage.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/AttributePropertySheetPage.java
similarity index 67%
rename from jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/MyPropertySheetPage.java
rename to jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/AttributePropertySheetPage.java
index 7e1f290..9b236f9 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/MyPropertySheetPage.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/AttributePropertySheetPage.java
@@ -11,10 +11,7 @@
*******************************************************************************/
package org.eclipse.jst.pagedesigner.properties;
-import org.eclipse.jst.pagedesigner.PDPlugin;
import org.eclipse.jst.pagedesigner.meta.internal.CategoryNameComparator;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.views.properties.PropertySheetPage;
import org.eclipse.ui.views.properties.PropertySheetSorter;
@@ -25,7 +22,17 @@
* @author mengbo
* @version 1.5
*/
-public class MyPropertySheetPage extends PropertySheetPage {
+public class AttributePropertySheetPage extends PropertySheetPage {
+// TODO: add actions
+// public void makeContributions(IMenuManager menuManager,
+// IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
+// super.makeContributions(menuManager, toolBarManager, statusLineManager);
+// //add actions here
+// hide/show all categories
+// collapse
+// remove
+// }
+
/**
* Use my sorter to sort the category name. Only override the
* compareCategories method.
@@ -41,16 +48,16 @@
}
/**
- * Default constructor
+ * Constructor
*/
- public MyPropertySheetPage() {
+ public AttributePropertySheetPage() {
super();
setSorter(new MySorter());
}
- public void createControl(Composite parent) {
- super.createControl(parent);
- PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
- PDPlugin.getResourceString("MyPropertySheetPage.help.id"));
- }
+// public void createControl(Composite parent) {
+// super.createControl(parent);
+//// PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
+//// PDPlugin.getResourceString("MyPropertySheetPage.help.id"));
+// }
}
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 2137d98..4d92d51 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
@@ -12,21 +12,24 @@
package org.eclipse.jst.pagedesigner.properties;
import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import org.eclipse.gef.commands.Command;
-import org.eclipse.jst.jsf.core.internal.tld.CMUtil;
+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.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.structureddocument.IStructuredDocumentContext;
+import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContextFactory;
+import org.eclipse.jst.jsf.metadataprocessors.MetaDataEnabledProcessingFactory;
import org.eclipse.jst.pagedesigner.PDPlugin;
import org.eclipse.jst.pagedesigner.commands.single.ChangeAttributeCommand;
-import org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor;
-import org.eclipse.jst.pagedesigner.meta.ICMRegistry;
-import org.eclipse.jst.pagedesigner.meta.IElementDescriptor;
-import org.eclipse.jst.pagedesigner.meta.internal.CMRegistry;
+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.wst.xml.core.internal.provisional.document.IDOMElement;
import org.w3c.dom.Element;
@@ -39,13 +42,50 @@
private IPropertySource _innerSource;
+ private Entity _tagEntity;
+
+ private IStructuredDocumentContext _context;
+
+ private IPropertyDescriptor[] _descriptors;
+
/**
+ * Constructor
* @param ele
* @param source
*/
public AttributePropertySource(Element ele, IPropertySource source) {
_element = (IDOMElement) ele;
_innerSource = source;
+ _tagEntity = getTagEntity();
+ }
+
+ private Entity getTagEntity() {
+ _context =
+ IStructuredDocumentContextFactory.INSTANCE.getContext(_element.getStructuredDocument(), _element);
+ if (_context == null)
+ return null;
+
+ IWorkspaceContextResolver wsresolver =
+ IStructuredDocumentContextResolverFactory.INSTANCE.getWorkspaceContextResolver(_context);
+ if (wsresolver == null)
+ return null;
+
+ ITaglibContextResolver resolver =
+ IStructuredDocumentContextResolverFactory.INSTANCE.getTaglibContextResolver(_context);
+ if (resolver == null) return null;
+
+ String uri = resolver.getTagURIForNodeName(_element);
+
+ //TODO: make below better
+ if (uri == null){
+ if (_element.getNamespaceURI() != null && _element.getNamespaceURI().equals("http://java.sun.com/JSP/Page"))
+ uri = "JSP11";
+ else
+ uri = "HTML";
+ }
+ ITaglibDomainMetaDataModelContext domainContext =
+ TaglibDomainMetaDataQueryHelper.createMetaDataModelContext(wsresolver.getProject(), uri);
+ return TaglibDomainMetaDataQueryHelper.getEntity(domainContext, _element.getLocalName());
}
/*
@@ -120,66 +160,59 @@
* the major job of this wrapper is to provide
*/
public IPropertyDescriptor[] getPropertyDescriptors() {
- IElementDescriptor elementDescriptor = getElementDescriptor();
- List result = new ArrayList();
-
- if (elementDescriptor == null) {
- IPropertyDescriptor[] original = _innerSource
- .getPropertyDescriptors();
- for (int i = 0; i < original.length; i++) {
- result
- .add(new PropertyDescriptorWrapper(_element,
- original[i]));
- }
- } else {
- // put the inner property descriptors into a map.
- Map map = new HashMap();
- IPropertyDescriptor[] descs = _innerSource.getPropertyDescriptors();
- if (descs != null) {
- for (int i = 0; i < descs.length; i++) {
- map.put(descs[i].getId(), descs[i]);
+ 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());
+ 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()));
+ }
+
+ }
}
- }
-
- IAttributeDescriptor[] attrs = elementDescriptor
- .getAttributeDescriptors();
- if (attrs != null) {
- for (int i = 0; i < attrs.length; i++) {
- IPropertyDescriptor desc = (IPropertyDescriptor) map
- .remove(attrs[i].getAttributeName());
- result.add(new AttributePropertyDescriptor(_element,
- attrs[i], desc));
- }
- }
- // ok, we have handled all attributes declared in ElementDescriptor,
- // let's see the remaining
- for (Iterator iter = map.values().iterator(); iter.hasNext();) {
- IPropertyDescriptor desc = (IPropertyDescriptor) iter.next();
- IAttributeDescriptor attr = findReferencedAttribute(
- elementDescriptor, desc);
- if (attr != null) {
- result.add(new AttributePropertyDescriptor(_element, attr,
- desc));
- } else {
- result.add(new PropertyDescriptorWrapper(
- _element, desc));
- }
- }
+
+ _descriptors = new IPropertyDescriptor[result.size()];
+ result.toArray(_descriptors);
+
}
- IPropertyDescriptor[] ret = new IPropertyDescriptor[result.size()];
- result.toArray(ret);
- return ret;
+ return _descriptors;
}
- private IAttributeDescriptor findReferencedAttribute(
- IElementDescriptor elementDescriptor, IPropertyDescriptor desc) {
+// private IAttributeDescriptor findReferencedAttribute(
+// IElementDescriptor elementDescriptor, IPropertyDescriptor desc) {
+// return null;
+// }
+
+// private IElementDescriptor getElementDescriptor() {
+// ICMRegistry registry = CMRegistry.getInstance();
+// String uri = CMUtil.getElementNamespaceURI(_element);
+// return registry.getElementDescriptor(uri, _element.getLocalName());
+// }
+
+ private IPropertyDescriptor getAttrPropertyDescriptor(String attrName){
+ Entity attrEntity = TaglibDomainMetaDataQueryHelper.getEntity(_tagEntity, attrName);
+ List ppds = MetaDataEnabledProcessingFactory.getInstance().getAttributeValueRuntimeTypeFeatureProcessors(IPropertyPageDescriptor.class, _context, attrEntity);
+ if (ppds.size() > 0)
+ return (IPropertyDescriptor)((IPropertyPageDescriptor)ppds.get(0)).getAdapter(IPropertyDescriptor.class);
+
return null;
+
}
-
- private IElementDescriptor getElementDescriptor() {
- ICMRegistry registry = CMRegistry.getInstance();
- String uri = CMUtil.getElementNamespaceURI(_element);
- return registry.getElementDescriptor(uri, _element.getLocalName());
- }
-
+
+// private IStatusLineManager getStatusLineManager() {
+// _page.getSite().getActionBars().getStatusLineManager();
+// }
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/AttributePropertySourceProvider.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/AttributePropertySourceProvider.java
index d86af28..086072b 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/AttributePropertySourceProvider.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/AttributePropertySourceProvider.java
@@ -21,18 +21,14 @@
* @author mengbo
*/
public class AttributePropertySourceProvider implements IPropertySourceProvider {
+
/**
- * Default constructor
+ * Constructor
*/
public AttributePropertySourceProvider() {
- // do nothing?
+ //
}
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ui.views.properties.IPropertySourceProvider#getPropertySource(java.lang.Object)
- */
public IPropertySource getPropertySource(Object object) {
Element model = null;
IPropertySource source = null;
@@ -45,7 +41,7 @@
}
}
if (source != null) {
- return new AttributePropertySource(model, source);
+ return new AttributePropertySource( model, source);
}
return source;
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/BaseCustomSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/BaseCustomSection.java
index 57e8908..c5d94de 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/BaseCustomSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/BaseCustomSection.java
@@ -24,8 +24,8 @@
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.AbstractPropertySection;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
@@ -37,22 +37,22 @@
public abstract class BaseCustomSection extends AbstractPropertySection {
/**
- * A ok status instance
+ * Status that all is OK
*/
- public static final Status OKSTATUS = new Status(IStatus.OK, PDPlugin
+ protected static final Status OKSTATUS = new Status(IStatus.OK, PDPlugin
.getPluginId(), 0, "", null);
- private DesignerTabbedPropertySheetPage _propertySheetPage;
+ private WPETabbedPropertySheetPage _propertySheetPage;
private boolean _visible = false;
/**
- * the dom element
+ * the tag IDOMElement
*/
protected IDOMElement _element;
/**
- * the adapter
+ * the INodeAdapter used to receive notifications of model updates
*/
protected INodeAdapter _adapter = new INodeAdapter() {
public boolean isAdapterForType(Object type) {
@@ -82,6 +82,8 @@
}
/**
+ * Method adapter will call when element has changed
+ *
* @param notifier
* @param eventType
* @param changedFeature
@@ -96,7 +98,7 @@
public void createControls(Composite parent,
TabbedPropertySheetPage aTabbedPropertySheetPage) {
super.createControls(parent, aTabbedPropertySheetPage);
- _propertySheetPage = (DesignerTabbedPropertySheetPage) aTabbedPropertySheetPage;
+ _propertySheetPage = (WPETabbedPropertySheetPage) aTabbedPropertySheetPage;
}
/**
@@ -105,7 +107,7 @@
* case, we need do a total refresh.
*
*/
- public void refreshPropertySheetPage() {
+ protected void refreshPropertySheetPage() {
if (_propertySheetPage != null) {
IWorkbenchPart part = getPart();
if (part != null) {
@@ -120,16 +122,17 @@
}
/**
+ * Change selection
* @param node
*/
- public void gotoNode(Node node) {
+ protected void gotoNode(Node node) {
_propertySheetPage.internalChangeSelection(node, node);
}
/**
- * @return the status line manager
+ * @return IStatusLineManager to use for the property sheet page
*/
- public IStatusLineManager getStatusLineManager() {
+ protected IStatusLineManager getStatusLineManager() {
if (_propertySheetPage != null) {
IActionBars bar = _propertySheetPage.getSite().getActionBars();
if (bar != null) {
@@ -140,9 +143,9 @@
}
/**
- * @param status
+ * @param status to display on status line
*/
- public void applyStatus(IStatus[] status) {
+ protected void applyStatus(IStatus[] status) {
if (!_visible) {
return;
}
@@ -169,7 +172,7 @@
/**
* @param message
*/
- public void setErrorMessage(String message) {
+ protected void setErrorMessage(String message) {
IStatusLineManager s = getStatusLineManager();
if (s != null) {
s.setErrorMessage(message);
@@ -178,9 +181,9 @@
/**
* @param message
- * @return the error status
+ * @return Status
*/
- public Status createErrorStatus(String message) {
+ protected Status createErrorStatus(String message) {
return new Status(IStatus.ERROR, PDPlugin.getPluginId(), 0, message,
null);
}
@@ -188,18 +191,40 @@
public void aboutToBeHidden() {
applyStatus(null);
_visible = false;
+// IDOMElement newEle = (IDOMElement) DesignerPropertyTool.getElement(
+// part, selection);
+// if (_element != newEle) {
+ if (_element != null) {
+ _element.removeAdapter(_adapter);
+ }
+// _element = newEle;
+// if (_element != null) {
+// _element.addAdapter(_adapter);
+// }
+// }
super.aboutToBeHidden();
}
public void aboutToBeShown() {
super.aboutToBeShown();
+// IDOMElement newEle = (IDOMElement) DesignerPropertyTool.getElement(
+// part, selection);
+// if (_element != newEle) {
+// if (_element != null) {
+// _element.removeAdapter(_adapter);
+// }
+// _element = newEle;
+ if (_element != null) {
+ _element.addAdapter(_adapter);
+ }
+// }
_visible = true;
}
/**
- * @return the project
+ * @return IProject for the WPE editing instance
*/
- public IProject getProject() {
+ protected IProject getProject() {
if (_propertySheetPage != null) {
IEditorInput input = _propertySheetPage.getEditor()
.getEditorInput();
@@ -218,9 +243,9 @@
}
/**
- * @return the file
+ * @return IFile for WPE editing instance
*/
- public IFile getFile() {
+ protected IFile getFile() {
if (_propertySheetPage != null) {
IEditorInput input = _propertySheetPage.getEditor()
.getEditorInput();
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/DesignerPropertyTool.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/DesignerPropertyTool.java
index 2d8898e..d32d534 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/DesignerPropertyTool.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/DesignerPropertyTool.java
@@ -40,7 +40,6 @@
import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.document.ElementImpl;
import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
import org.w3c.dom.Attr;
@@ -56,10 +55,11 @@
* @author mengbo
*/
public class DesignerPropertyTool {
+
/**
* @param fNode
* @param attributeDesc
- * @return the attribute values
+ * @return attribute value
*/
public static String getAttributeValue(Element fNode, CMNode attributeDesc) {
if (attributeDesc == null) {
@@ -80,27 +80,28 @@
return returnedValue;
}
- /**
- * @param fNode
- * @param filter
- * @return the attributes
- */
- public static Object[] getElementReferedAttributes(Element fNode,
- String[] filter) {
- List result = new ArrayList();
- CMNamedNodeMap cmnnm = getElementDeclaredAttributes(fNode);
- for (int i = 0, n = cmnnm.getLength(); i < n; i++) {
- String name = cmnnm.item(i).getNodeName();
- if (Arrays.asList(filter).contains(name)) {
- result.add(cmnnm.item(i));
- }
- }
- return result.toArray(new CMNode[result.size()]);
- }
+// /**
+// * @param fNode
+// * @param filter
+// * @return array of attributes as objects
+// * (unused)
+// */
+// public static Object[] getElementReferedAttributes(Element fNode,
+// String[] filter) {
+// List result = new ArrayList();
+// CMNamedNodeMap cmnnm = getElementDeclaredAttributes(fNode);
+// for (int i = 0, n = cmnnm.getLength(); i < n; i++) {
+// String name = cmnnm.item(i).getNodeName();
+// if (Arrays.asList(filter).contains(name)) {
+// result.add(cmnnm.item(i));
+// }
+// }
+// return result.toArray(new CMNode[result.size()]);
+// }
/**
* @param fNode
- * @return the declared attributes
+ * @return CMNamedNodeMap
*/
public static CMNamedNodeMap getElementDeclaredAttributes(Node fNode) {
IStructuredModel structModel = null;
@@ -131,15 +132,16 @@
* ITextSelection 2. IStructuredSelection (Node) 3. IStructuredSelection
* (EditPart) 4. DesignRange we want to normalize it to only #2. If the node
* is ATTR or TEXT/CDATA_SECTION, will use it's parent node.
- * @param selectingPart
*
+ * @param selectingPart
* @param selection
- * @param _htmlEditor
+ * @param htmlEditor
* @return null if can't normalize.
*/
public static Node normalizeSelectionToElement(
IWorkbenchPart selectingPart, ISelection selection,
- HTMLEditor _htmlEditor) {
+ HTMLEditor htmlEditor) {
+
Node node = null;
if (selectingPart instanceof HTMLEditor) {
IEditorPart part = ((HTMLEditor) selectingPart).getActiveEditor();
@@ -170,7 +172,7 @@
.getControl().isFocusControl()) {
node = SelectionHelper.toNode((IStructuredSelection) selection);
if (node == null) {
- node = _htmlEditor.getDOMDocument();
+ node = htmlEditor.getDOMDocument();
}
}
}
@@ -178,107 +180,9 @@
return node;
}
- // /**
- // * the selection could be different kinds of selection, including:
- // * 1. ITextSelection
- // * 2. IStructuredSelection (Node)
- // * 3. IStructuredSelection (EditPart)
- // * 4. DesignRange
- // * we want to normalize it to only #2 and #4.
- // *
- // * @param part
- // * @param selection
- // * @return null if can't normalize.
- // */
- // public static ISelection normalizeSelection(IWorkbenchPart selectingPart,
- // ISelection selection)
- // {
- // // On Attr nodes, select the owner Element. On Text nodes, select the
- // parent Element.
- // ISelection preferredSelection = null;
- // if (selection instanceof ITextSelection)
- // {
- // // FIXME: currently always normalize to a single node. should also
- // consider change into DesignRange
- // // on text selection, find the appropriate Node
- // ITextSelection textSel = (ITextSelection) selection;
- // IStructuredModel model = null;
- // if (selectingPart instanceof HTMLEditor)
- // {
- // model = ((HTMLEditor) selectingPart).getModel();
- //
- // Object inode = model.getIndexedRegion(textSel.getOffset());
- // if (inode instanceof Node)
- // {
- // Node node = (Node) inode;
- // // replace Attribute Node with its owner
- // if (node.getNodeType() == Node.ATTRIBUTE_NODE)
- // inode = ((Attr) node).getOwnerElement();
- // // replace Text Node with its parent
- // else if ((node.getNodeType() == Node.TEXT_NODE || (node.getNodeType() ==
- // Node.CDATA_SECTION_NODE)) && node.getParentNode() != null)
- // {
- // inode = node.getParentNode();
- // }
- // }
- // if (inode != null)
- // {
- // return new StructuredSelection(inode);
- // }
- // else
- // {
- // return null;
- // }
- // }
- // else
- // {
- // return null;
- // }
- // }
- // else if (selection instanceof IStructuredSelection)
- // {
- // if (((IStructuredSelection) selection).isEmpty())
- // {
- // return null;
- // }
- //
- // IStructuredSelection structuredSel = (IStructuredSelection) selection;
- // List inputList = new ArrayList(structuredSel.size());
- // for (Iterator iter = structuredSel.iterator(); iter.hasNext();)
- // {
- // Object inode = iter.next();
- // if (inode instanceof NodeEditPart)
- // {
- // inode = ((NodeEditPart) inode).getModel();
- // }
- //
- // if (inode instanceof Node)
- // {
- // inputList.add(inode);
- // }
- // }
- // if (inputList.isEmpty())
- // {
- // return null;
- // }
- // else
- // {
- // return new StructuredSelection(inputList);
- // }
- // }
- // else if (selection instanceof DesignRange)
- // {
- // return selection;
- // }
- // else
- // {
- // return null;
- // }
- // }
-
/**
- * @param node
- * @return the element node
+ * @param node as Object
+ * @return element
*/
public static Element getElementNode(Object node) {
Object model;
@@ -303,7 +207,7 @@
/**
* @param element
* @param filter
- * @return the name list
+ * @return list of attribute names
*/
public static List getNameList(Element element, String[] filter) {
List result = new ArrayList();
@@ -321,7 +225,7 @@
/**
* @param selection
* should be a normalized selection
- * @return the common parent of selection
+ * @return node
*/
public static Node getCommonParent(ISelection selection) {
if (selection instanceof IStructuredSelection) {
@@ -343,7 +247,7 @@
*
* @param selectingPart
* @param selection
- * @return the element
+ * @return element
*/
public static Element getElement(IWorkbenchPart selectingPart,
ISelection selection) {
@@ -381,7 +285,8 @@
/**
* @param element
- * @return true if element is a multi selection
+ * @return bool
+ * (unused)
*/
public static boolean isMultiSelection(Element element) {
if (element.getNodeName().equalsIgnoreCase(IHTMLConstants.TAG_OPTION)) {
@@ -390,23 +295,24 @@
return false;
}
- /**
- * @param element
- * @return the text source
- */
- public static String getElementTextSource(Element element) {
- if (element == null) {
- return null;
- }
- if (element instanceof ElementImpl) {
- return ((ElementImpl) element).getSource();
- }
- return null;
- }
+// /**
+// * @param element
+// * @return if elementImpl, return source, else null
+// * (unused)
+// */
+// public static String getElementTextSource(Element element) {
+// if (element == null) {
+// return null;
+// }
+// if (element instanceof ElementImpl) {
+// return ((ElementImpl) element).getSource();
+// }
+// return null;
+// }
/**
* @param project
- * @return the java project for project
+ * @return IJavaProject
*/
public static IJavaProject getJavaProject(Object project) {
if (project == null) {
@@ -433,18 +339,18 @@
}
return null;
}
-
- /**
- * @param project
- * @return the project
- */
- public static IProject getProject(Object project) {
- if (project instanceof IProject) {
- return (IProject) project;
- } else if (project instanceof IJavaProject) {
- return ((IJavaProject) project).getProject();
- }
- return null;
- }
+//
+// /**
+// * @param project as Object
+// * @return IProject or null
+// */
+// public static IProject getProject(Object project) {
+// if (project instanceof IProject) {
+// return (IProject) project;
+// } else if (project instanceof IJavaProject) {
+// return ((IJavaProject) project).getProject();
+// }
+// return null;
+// }
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/ISectionFilter.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/ISectionFilter.java
index 99f10b4..95591e8 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/ISectionFilter.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/ISectionFilter.java
@@ -16,12 +16,13 @@
/**
* @author mengbo
* @version 1.5
+ * @deprecated unused
*/
public interface ISectionFilter {
/**
* @param node
- * @return true if the filter applies to node
+ * @return true if node applies
*/
boolean appliesTo(Element node);
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/ITabbedPropertiesConstants.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/ITabbedPropertiesConstants.java
index 690b0fc..c33c421 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/ITabbedPropertiesConstants.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/ITabbedPropertiesConstants.java
@@ -17,12 +17,12 @@
*/
public interface ITabbedPropertiesConstants {
- // FIXME: when return null, will in fact using "Misc". This may not garantee
+ // FIXME: when return null, will in fact using "Misc". This may not guarantee
// it be the
// last category, since is sorted by string order.
/**
* the other category
*/
- static final String OTHER_CATEGORY = "Other";
+ static final String OTHER_CATEGORY = "Attributes";
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/NavigationHiearchyAction.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/NavigationHiearchyAction.java
index 567156f..e7d25ab 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/NavigationHiearchyAction.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/NavigationHiearchyAction.java
@@ -39,7 +39,7 @@
private Node _currentNode;
- private DesignerTabbedPropertySheetPage _propertyPage;
+ private WPETabbedPropertySheetPage _propertyPage;
private class MenuCreator implements IMenuCreator {
public void dispose() {
@@ -94,7 +94,7 @@
/**
* @param propertyPage
*/
- public NavigationHiearchyAction(DesignerTabbedPropertySheetPage propertyPage) {
+ public NavigationHiearchyAction(WPETabbedPropertySheetPage propertyPage) {
super("");
setEnabled(true);
setMenuCreator(new MenuCreator());
@@ -129,9 +129,7 @@
}
}
- /*
- * (non-Javadoc) Method declared on IAction.
- */
+ @Override
public void run() {
this._propertyPage.internalChangeSelection(_currentNode, _startNode);
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/AttributePropertyDescriptor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/OLDAttributePropertyDescriptor.java
similarity index 90%
rename from jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/AttributePropertyDescriptor.java
rename to jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/OLDAttributePropertyDescriptor.java
index 8a5f9c2..75f7ec6 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/AttributePropertyDescriptor.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/OLDAttributePropertyDescriptor.java
@@ -14,8 +14,8 @@
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jst.pagedesigner.meta.EditorCreator;
import org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor;
+import org.eclipse.jst.pagedesigner.meta.XXXEditorCreator;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
@@ -26,8 +26,9 @@
* IAttributeDescriptor and an IPropertyDescriptor.
*
* @author mengbo
+ * @deprecated
*/
-public class AttributePropertyDescriptor implements IPropertyDescriptor {
+public class OLDAttributePropertyDescriptor implements IPropertyDescriptor {
private IAttributeDescriptor _attr;
private IPropertyDescriptor _inner; // this could be null
@@ -42,7 +43,7 @@
* @param desc
* could be null
*/
- public AttributePropertyDescriptor(Element element,
+ public OLDAttributePropertyDescriptor(Element element,
IAttributeDescriptor descriptor, IPropertyDescriptor desc) {
_element = element;
_attr = descriptor;
@@ -56,13 +57,13 @@
*/
public CellEditor createPropertyEditor(Composite parent) {
CellEditor editor;
- editor = EditorCreator.getInstance().createCellEditorWithWrapper(
+ editor = XXXEditorCreator.getInstance().createCellEditorWithWrapper(
parent, _attr, (IDOMElement) _element, null);
if (editor != null) {
return editor;
}
- EditorCreator.CellEditorHolder holder = new EditorCreator.CellEditorHolder() {
+ XXXEditorCreator.CellEditorHolder holder = new XXXEditorCreator.CellEditorHolder() {
/*
* (non-Javadoc)
*
@@ -75,7 +76,7 @@
return new TextCellEditor(parent1);
}
};
- return EditorCreator.getInstance().createCellEditorWithWrapper(
+ return XXXEditorCreator.getInstance().createCellEditorWithWrapper(
parent, _attr, holder, (IDOMElement) _element, null);
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/PropertyDescriptorWrapper.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/PropertyDescriptorWrapper.java
index 8aae951..6503bf1 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/PropertyDescriptorWrapper.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/PropertyDescriptorWrapper.java
@@ -11,7 +11,9 @@
*******************************************************************************/
package org.eclipse.jst.pagedesigner.properties;
+import org.eclipse.jface.action.IStatusLineManager;
import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.ICellEditorListener;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.jst.pagedesigner.meta.EditorCreator;
@@ -32,16 +34,32 @@
private IDOMElement _element;
+ private IStatusLineManager _statusLineManager;
+
+// /**
+// * Constructor
+// * @param element
+// * @param innerDescriptor
+// * @param statusLineManager
+// *
+// */
+// public PropertyDescriptorWrapper(IDOMElement element,
+// IPropertyDescriptor innerDescriptor, IStatusLineManager statusLineManager) {
+// this._element = element;
+// this._inner = innerDescriptor;
+// this._statusLineManager = statusLineManager;
+// }
+
/**
- * @param element
- * @param innerDescriptor
+ * Constructor
+ * @param element
+ * @param innerDescriptor
*/
public PropertyDescriptorWrapper(IDOMElement element,
IPropertyDescriptor innerDescriptor) {
this._element = element;
this._inner = innerDescriptor;
}
-
/*
* (non-Javadoc)
*
@@ -55,10 +73,15 @@
* @see org.eclipse.jst.pagedesigner.meta.EditorCreator.CellEditorHolder#createCellEditor(org.eclipse.swt.widgets.Composite)
*/
public CellEditor createCellEditor(Composite parent1) {
- if (_inner != null) {
- return _inner.createPropertyEditor(parent1);
- }
- return new TextCellEditor(parent1);
+ CellEditor ed = null;
+ if (_inner != null)
+ ed = _inner.createPropertyEditor(parent1);
+ else
+ ed = new TextCellEditor(parent1);
+
+ if (_statusLineManager != null)
+ ed.addListener(new StatusBarUpdater(ed));
+ return ed;
}
};
return EditorCreator.getInstance().createCellEditorWithWrapper(parent,
@@ -71,7 +94,8 @@
* @see org.eclipse.ui.views.properties.IPropertyDescriptor#getCategory()
*/
public String getCategory() {
- return ITabbedPropertiesConstants.OTHER_CATEGORY;
+ String cat = _inner.getCategory();
+ return cat != null ? cat : ITabbedPropertiesConstants.OTHER_CATEGORY;
}
/*
@@ -143,10 +167,31 @@
}
/**
- * @return the inner property descriptor
+ * @return IPropertyDescriptor
*/
public IPropertyDescriptor getInner() {
return _inner;
}
+ private class StatusBarUpdater implements ICellEditorListener {
+ private CellEditor ed;
+
+ StatusBarUpdater(CellEditor ed) {
+ this.ed = ed;
+ }
+ public void applyEditorValue() {//
+ }
+ public void cancelEditor() {//
+ }
+
+ public void editorValueChanged(boolean oldValidState,
+ boolean newValidState) {
+ if (!newValidState)
+ _statusLineManager.setErrorMessage(ed.getErrorMessage());
+ else
+ _statusLineManager.setErrorMessage(null);
+
+ }
+
+ }
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/DesignerTabbedPropertySheetPage.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/WPETabbedPropertySheetPage.java
similarity index 80%
rename from jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/DesignerTabbedPropertySheetPage.java
rename to jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/WPETabbedPropertySheetPage.java
index d70ce38..71b7360 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/DesignerTabbedPropertySheetPage.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/WPETabbedPropertySheetPage.java
@@ -18,6 +18,7 @@
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jst.pagedesigner.PDPlugin;
import org.eclipse.jst.pagedesigner.editors.HTMLEditor;
+import org.eclipse.jst.pagedesigner.properties.internal.QuickEditTabManager;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.ISelectionListener;
import org.eclipse.ui.IWorkbenchPart;
@@ -25,39 +26,36 @@
import org.eclipse.ui.part.EditorPart;
import org.eclipse.ui.part.IPageSite;
import org.eclipse.ui.views.contentoutline.ContentOutline;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySheetPageContributor;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
import org.w3c.dom.Node;
/**
* @author mengbo
- * @author mengbo
*/
-public class DesignerTabbedPropertySheetPage extends TabbedPropertySheetPage {
+public class WPETabbedPropertySheetPage extends TabbedPropertySheetPage {
+
// TODO: when we want to extend this page, HTMLEditor would not be the sole
// type of editor part.
private HTMLEditor _htmlEditor;
private NavigationHiearchyAction _hiearchAction = new NavigationHiearchyAction(
this);
+
+ private QuickEditTabManager manager;
/**
+ * Constructor
* @param tabbedPropertySheetPageContributor
* @param editor
*/
- public DesignerTabbedPropertySheetPage(
+ public WPETabbedPropertySheetPage(
ITabbedPropertySheetPageContributor tabbedPropertySheetPageContributor,
HTMLEditor editor) {
super(tabbedPropertySheetPageContributor);
_htmlEditor = editor;
}
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart,
- * org.eclipse.jface.viewers.ISelection)
- */
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
if (part == null) {
part = _htmlEditor;
@@ -70,6 +68,7 @@
_hiearchAction.refresh(node, node);
this.getSite().getActionBars().getToolBarManager().update(
true);
+ //setInput(part, node);
super.selectionChanged(part, new StructuredSelection(node));
} catch (Exception e) {
// Some synchronization would cause this, it does not damage
@@ -78,7 +77,7 @@
}
}
}
-
+
/**
* This method should be called from internal of the property page. Normally
* means user did some action inside the property sheet to change current
@@ -95,23 +94,18 @@
}
/**
- * @return the editor part
+ * @return EditorPart instance that this property sheet is for. Will return instance of WPE (htmlEditor)
*/
public EditorPart getEditor() {
return this._htmlEditor;
}
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ui.part.Page#init(org.eclipse.ui.part.IPageSite)
- */
public void init(IPageSite pageSite) {
super.init(pageSite);
setSelectionProvider();
setSelectionListener();
IToolBarManager toolbar = pageSite.getActionBars().getToolBarManager();
- toolbar.add(_hiearchAction);
+ toolbar.add(_hiearchAction);
_hiearchAction.refresh(null, null);
}
@@ -120,7 +114,8 @@
.addPostSelectionListener(new ISelectionListener() {
public void selectionChanged(IWorkbenchPart part,
ISelection selection) {
- DesignerTabbedPropertySheetPage.this.selectionChanged(
+ if (getEditor() == part)//only fire if the selection applies to this tabbed prop sheet instance
+ WPETabbedPropertySheetPage.this.selectionChanged(
part, selection);
}
});
@@ -178,6 +173,25 @@
.setHelp(
getControl(),
PDPlugin
- .getResourceString("DesignerTabbedPropertySheetPage.help.id"));
+ .getResourceString("WPETabbedPropertySheetPage.help.id"));
}
+
+ /**
+ * @return acquires an instance of QuickEditTabManager
+ */
+ public QuickEditTabManager getTabManager() {
+ if (manager == null) {
+ manager = QuickEditTabManager.acquireInstance(this);
+ }
+ return manager;
+ }
+
+ @Override
+ public void dispose() {
+ manager.releaseInstance();
+ manager = null;
+ super.dispose();
+ }
+
+
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/attrgroup/DialogUtil.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/attrgroup/DialogUtil.java
index a4dfb6c..c797148 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/attrgroup/DialogUtil.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/attrgroup/DialogUtil.java
@@ -45,7 +45,7 @@
* @return true if success, false if user canceled.
*/
public static boolean createSubElement(Shell shell,
- final IDOMElement parent, final AttributeGroup group) {
+ final IDOMElement parent, final OLDAttributeGroup group) {
group.setElementContext(parent, null);
final DialogFieldGroupPage page = new DialogFieldGroupPage("", group); //$NON-NLS-1$
page.setTitle(AttributeGroupMessages.getString(
@@ -114,7 +114,7 @@
public static boolean createSubElement(Shell shell,
final IDOMElement parent, final String uri, final String tagName,
final String[] attributes) {
- final AttributeGroup group = new AttributeGroup(uri, tagName,
+ final OLDAttributeGroup group = new OLDAttributeGroup(uri, tagName,
attributes);
return createSubElement(shell, parent, group);
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/attrgroup/AttributeGroup.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/attrgroup/OLDAttributeGroup.java
similarity index 95%
rename from jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/attrgroup/AttributeGroup.java
rename to jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/attrgroup/OLDAttributeGroup.java
index d165136..8322e1f 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/attrgroup/AttributeGroup.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/attrgroup/OLDAttributeGroup.java
@@ -21,12 +21,11 @@
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.IDialogFieldChangeListener;
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.ISupportTextValue;
import org.eclipse.jst.pagedesigner.meta.AttributeDescriptor;
-import org.eclipse.jst.pagedesigner.meta.EditorCreator;
import org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor;
import org.eclipse.jst.pagedesigner.meta.IElementDescriptor;
+import org.eclipse.jst.pagedesigner.meta.XXXEditorCreator;
import org.eclipse.jst.pagedesigner.meta.internal.CMRegistry;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.PlatformUI;
@@ -37,8 +36,12 @@
/**
* @author mengbo
* @version 1.5
+ *
+ * TODO: no longer used????
+ * @deprecated
+ *
*/
-public class AttributeGroup extends DialogFieldGroup {
+public class OLDAttributeGroup extends DialogFieldGroup {
private static final Object KEY_ATTR = "KEY_ATTR"; //$NON-NLS-1$
private String _uri;
@@ -58,7 +61,7 @@
* @param tagName
* @param attrNames
*/
- public AttributeGroup(String uri, String tagName, String[] attrNames) {
+ public OLDAttributeGroup(String uri, String tagName, String[] attrNames) {
this._uri = uri;
this._tagName = tagName;
this._attrs = prepareAttributeDescriptors(uri, tagName, attrNames);
@@ -156,7 +159,7 @@
field = createDialogField(this._uri, this._tagName,
descriptors[i]);
if (field == null) {
- EditorCreator creator = EditorCreator.getInstance();
+ XXXEditorCreator creator = XXXEditorCreator.getInstance();
field = creator.createDialogFieldWithWrapper(this._uri,
this._tagName, descriptors[i], null);
}
@@ -268,8 +271,8 @@
} else {
top = toolkit.createComposite(parent);
}
- FillLayout fillLayout = new FillLayout(SWT.VERTICAL);
- parent.setLayout(fillLayout);
+// FillLayout fillLayout = new FillLayout(SWT.VERTICAL);
+// parent.setLayout(fillLayout);
if (this._helpContextId != null && this._helpContextId.length() > 0) {
PlatformUI.getWorkbench().getHelpSystem().setHelp(top,
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/attrgroup/AttributeGroupSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/attrgroup/OLDAttributeGroupSection.java
similarity index 85%
rename from jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/attrgroup/AttributeGroupSection.java
rename to jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/attrgroup/OLDAttributeGroupSection.java
index 2d93aa4..b41a1ed 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/attrgroup/AttributeGroupSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/attrgroup/OLDAttributeGroupSection.java
@@ -20,8 +20,8 @@
import org.eclipse.jst.pagedesigner.properties.BaseCustomSection;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
/**
@@ -29,8 +29,10 @@
*
* @author mengbo
* @version 1.5
+ * @deprecated
+ *
*/
-public class AttributeGroupSection extends BaseCustomSection {
+public class OLDAttributeGroupSection extends BaseCustomSection {
private static final Object KEY_ATTR = "KEY_ATTR"; //$NON-NLS-1$
private IDialogFieldApplyListener _fieldApplyListener = new IDialogFieldApplyListener() {
@@ -45,7 +47,7 @@
ISupportTextValue textValue = (ISupportTextValue) field;
ChangeAttributeCommand c = new ChangeAttributeCommand(
AttributeGroupMessages
- .getString("AttributeGroupSection.changeAttribute"), _element, ((IAttributeDescriptor) attr).getAttributeName(), textValue.getText()); //$NON-NLS-1$
+ .getString("OLDAttributeGroupSection.changeAttribute"), _element, ((IAttributeDescriptor) attr).getAttributeName(), textValue.getText()); //$NON-NLS-1$
c.execute();
}
}
@@ -54,7 +56,7 @@
/**
* the attribute group
*/
- protected AttributeGroup _group;
+ protected OLDAttributeGroup _group;
/**
* create the section with a default AttributeGroup. In default
@@ -64,8 +66,8 @@
* @param tagName
* @param attrNames
*/
- public AttributeGroupSection(String uri, String tagName, String[] attrNames) {
- this(new AttributeGroup(uri, tagName, attrNames));
+ public OLDAttributeGroupSection(String uri, String tagName, String[] attrNames) {
+ this(new OLDAttributeGroup(uri, tagName, attrNames));
}
/**
@@ -74,7 +76,7 @@
*
* @param group
*/
- public AttributeGroupSection(AttributeGroup group) {
+ public OLDAttributeGroupSection(OLDAttributeGroup group) {
_group = group;
_group.setDefaultApplyListener(_fieldApplyListener);
_group.initialize();
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/CellEditorFactory.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/CellEditorFactory.java
index 0546447..60159e3 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/CellEditorFactory.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/CellEditorFactory.java
@@ -1,33 +1,32 @@
/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. and others.
- *
+ * Copyright (c) 2007 Oracle Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
+ * Oracle - initial API and implementation
+ *
+ ********************************************************************************/
package org.eclipse.jst.pagedesigner.properties.celleditors;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-import java.util.TimeZone;
-import java.util.TreeMap;
+import java.util.List;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jst.jsf.common.ui.internal.dialogfield.ComboDialogField;
+import org.eclipse.jface.viewers.TextCellEditor;
+import org.eclipse.jst.jsf.common.metadata.Trait;
+import org.eclipse.jst.jsf.common.metadata.internal.TraitValueHelper;
+import org.eclipse.jst.jsf.common.metadata.query.TaglibDomainMetaDataQueryHelper;
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField;
-import org.eclipse.jst.jsf.common.ui.internal.dialogfield.StyleComboDialogField;
-import org.eclipse.jst.pagedesigner.css2.CSSUtil;
+import org.eclipse.jst.jsf.metadataprocessors.features.IDefaultValue;
+import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
+import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
import org.eclipse.jst.pagedesigner.jsp.core.IJSPCoreConstants;
-import org.eclipse.jst.pagedesigner.meta.IAttributeCellEditorFactory;
-import org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor;
-import org.eclipse.jst.pagedesigner.meta.IValueType;
+import org.eclipse.jst.pagedesigner.meta.ITagAttributeCellEditorFactory;
+import org.eclipse.jst.pagedesigner.meta.IAttributeRuntimeValueType;
import org.eclipse.jst.pagedesigner.ui.dialogfields.ClasspathResourceButtonDialogField;
import org.eclipse.jst.pagedesigner.ui.dialogfields.ContextableResourceButtonDialogField;
import org.eclipse.jst.pagedesigner.ui.dialogfields.StyleButtonDialogField;
@@ -42,235 +41,43 @@
*
* @author mengbo
*/
-public class CellEditorFactory implements IAttributeCellEditorFactory {
- private static String[] CURRENCYCODES = { "AED", // United Arab Emirates,
- // Dirhams //$NON-NLS-1$
- "AFA", // Afghanistan, Afghanis //$NON-NLS-1$
- "ALL", // Albania, Leke //$NON-NLS-1$
- "AMD", // Armenia, Drams //$NON-NLS-1$
- "ANG", // Netherlands Antilles, Guilders (also called Florins)
- // //$NON-NLS-1$
- "AOA", // Angola, Kwanza //$NON-NLS-1$
- "ARS", // Argentina, Pesos //$NON-NLS-1$
- "AUD", // Australia, Dollars //$NON-NLS-1$
- "AWG", // Aruba, Guilders (also called Florins) //$NON-NLS-1$
- "AZM", // Azerbaijan, Manats //$NON-NLS-1$
- "BAM", // Bosnia and Herzegovina, Convertible Marka //$NON-NLS-1$
- "BBD", // Barbados, Dollars //$NON-NLS-1$
- "BDT", // Bangladesh, Taka //$NON-NLS-1$
- "BGN", // Bulgaria, Leva //$NON-NLS-1$
- "BHD", // Bahrain, Dinars //$NON-NLS-1$
- "BIF", // Burundi, Francs //$NON-NLS-1$
- "BMD", // Bermuda, Dollars //$NON-NLS-1$
- "BND", // Brunei Darussalam, Dollars //$NON-NLS-1$
- "BOB", // Bolivia, Bolivianos //$NON-NLS-1$
- "BRL", // Brazil, Brazil Real //$NON-NLS-1$
- "BSD", // Bahamas, Dollars //$NON-NLS-1$
- "BTN", // Bhutan, Ngultrum //$NON-NLS-1$
- "BWP", // Botswana, Pulas //$NON-NLS-1$
- "BYR", // Belarus, Rubles //$NON-NLS-1$
- "BZD", // Belize, Dollars //$NON-NLS-1$
- "CAD", // Canada, Dollars //$NON-NLS-1$
- "CDF", // Congo/Kinshasa, Congolese Francs //$NON-NLS-1$
- "CHF", // Switzerland, Francs //$NON-NLS-1$
- "CLP", // Chile, Pesos //$NON-NLS-1$
- "CNY", // China, Yuan Renminbi //$NON-NLS-1$
- "COP", // Colombia, Pesos //$NON-NLS-1$
- "CRC", // Costa Rica, Colones //$NON-NLS-1$
- "CSD", // Serbia, Dinars //$NON-NLS-1$
- "CUP", // Cuba, Pesos //$NON-NLS-1$
- "CVE", // Cape Verde, Escudos //$NON-NLS-1$
- "CYP", // Cyprus, Pounds //$NON-NLS-1$
- "CZK", // Czech Republic, Koruny //$NON-NLS-1$
- "DJF", // Djibouti, Francs //$NON-NLS-1$
- "DKK", // Denmark, Kroner //$NON-NLS-1$
- "DOP", // Dominican Republic, Pesos //$NON-NLS-1$
- "DZD", // Algeria, Algeria Dinars //$NON-NLS-1$
- "EEK", // Estonia, Krooni //$NON-NLS-1$
- "EGP", // Egypt, Pounds //$NON-NLS-1$
- "ERN", // Eritrea, Nakfa //$NON-NLS-1$
- "ETB", // Ethiopia, Birr //$NON-NLS-1$
- "EUR", // Euro Member Countries, Euro //$NON-NLS-1$
- "FJD", // Fiji, Dollars //$NON-NLS-1$
- "FKP", // Falkland Islands (Malvinas), Pounds //$NON-NLS-1$
- "GBP", // United Kingdom, Pounds //$NON-NLS-1$
- "GEL", // Georgia, Lari //$NON-NLS-1$
- "GGP", // Guernsey, Pounds //$NON-NLS-1$
- "GHC", // Ghana, Cedis //$NON-NLS-1$
- "GIP", // Gibraltar, Pounds //$NON-NLS-1$
- "GMD", // Gambia, Dalasi //$NON-NLS-1$
- "GNF", // Guinea, Francs //$NON-NLS-1$
- "GTQ", // Guatemala, Quetzales //$NON-NLS-1$
- "GYD", // Guyana, Dollars //$NON-NLS-1$
- "HKD", // Hong Kong, Dollars //$NON-NLS-1$
- "HNL", // Honduras, Lempiras //$NON-NLS-1$
- "HRK", // Croatia, Kuna //$NON-NLS-1$
- "HTG", // Haiti, Gourdes //$NON-NLS-1$
- "HUF", // Hungary, Forint //$NON-NLS-1$
- "IDR", // Indonesia, Rupiahs //$NON-NLS-1$
- "ILS", // Israel, New Shekels //$NON-NLS-1$
- "IMP", // Isle of Man, Pounds //$NON-NLS-1$
- "INR", // India, Rupees //$NON-NLS-1$
- "IQD", // Iraq, Dinars //$NON-NLS-1$
- "IRR", // Iran, Rials //$NON-NLS-1$
- "ISK", // Iceland, Kronur //$NON-NLS-1$
- "JEP", // Jersey, Pounds //$NON-NLS-1$
- "JMD", // Jamaica, Dollars //$NON-NLS-1$
- "JOD", // Jordan, Dinars //$NON-NLS-1$
- "JPY", // Japan, Yen //$NON-NLS-1$
- "KES", // Kenya, Shillings //$NON-NLS-1$
- "KGS", // Kyrgyzstan, Soms //$NON-NLS-1$
- "KHR", // Cambodia, Riels //$NON-NLS-1$
- "KMF", // Comoros, Francs //$NON-NLS-1$
- "KPW", // Korea (North), Won //$NON-NLS-1$
- "KRW", // Korea (South), Won //$NON-NLS-1$
- "KWD", // Kuwait, Dinars //$NON-NLS-1$
- "KYD", // Cayman Islands, Dollars //$NON-NLS-1$
- "KZT", // Kazakhstan, Tenge //$NON-NLS-1$
- "LAK", // Laos, Kips //$NON-NLS-1$
- "LBP", // Lebanon, Pounds //$NON-NLS-1$
- "LKR", // Sri Lanka, Rupees //$NON-NLS-1$
- "LRD", // Liberia, Dollars //$NON-NLS-1$
- "LSL", // Lesotho, Maloti //$NON-NLS-1$
- "LTL", // Lithuania, Litai //$NON-NLS-1$
- "LVL", // Latvia, Lati //$NON-NLS-1$
- "LYD", // Libya, Dinars //$NON-NLS-1$
- "MAD", // Morocco, Dirhams //$NON-NLS-1$
- "MDL", // Moldova, Lei //$NON-NLS-1$
- "MGA", // Madagascar, Ariary //$NON-NLS-1$
- "MKD", // Macedonia, Denars //$NON-NLS-1$
- "MMK", // Myanmar (Burma), Kyats //$NON-NLS-1$
- "MNT", // Mongolia, Tugriks //$NON-NLS-1$
- "MOP", // Macau, Patacas //$NON-NLS-1$
- "MRO", // Mauritania, Ouguiyas //$NON-NLS-1$
- "MTL", // Malta, Liri //$NON-NLS-1$
- "MUR", // Mauritius, Rupees //$NON-NLS-1$
- "MVR", // Maldives (Maldive Islands), Rufiyaa //$NON-NLS-1$
- "MWK", // Malawi, Kwachas //$NON-NLS-1$
- "MXN", // Mexico, Pesos //$NON-NLS-1$
- "MYR", // Malaysia, Ringgits //$NON-NLS-1$
- "MZM", // Mozambique, Meticais //$NON-NLS-1$
- "NAD", // Namibia, Dollars //$NON-NLS-1$
- "NGN", // Nigeria, Nairas //$NON-NLS-1$
- "NIO", // Nicaragua, Cordobas //$NON-NLS-1$
- "NOK", // Norway, Krone //$NON-NLS-1$
- "NPR", // Nepal, Nepal Rupees //$NON-NLS-1$
- "NZD", // New Zealand, Dollars //$NON-NLS-1$
- "OMR", // Oman, Rials //$NON-NLS-1$
- "PAB", // Panama, Balboa //$NON-NLS-1$
- "PEN", // Peru, Nuevos Soles //$NON-NLS-1$
- "PGK", // Papua New Guinea, Kina //$NON-NLS-1$
- "PHP", // Philippines, Pesos //$NON-NLS-1$
- "PKR", // Pakistan, Rupees //$NON-NLS-1$
- "PLN", // Poland, Zlotych //$NON-NLS-1$
- "PYG", // Paraguay, Guarani //$NON-NLS-1$
- "QAR", // Qatar, Rials //$NON-NLS-1$
- "ROL", // Romania, Lei //$NON-NLS-1$
- "RUB", // Russia, Rubles //$NON-NLS-1$
- "RWF", // Rwanda, Rwanda Francs //$NON-NLS-1$
- "SAR", // Saudi Arabia, Riyals //$NON-NLS-1$
- "SBD", // Solomon Islands, Dollars //$NON-NLS-1$
- "SCR", // Seychelles, Rupees //$NON-NLS-1$
- "SDD", // Sudan, Dinars //$NON-NLS-1$
- "SEK", // Sweden, Kronor //$NON-NLS-1$
- "SGD", // Singapore, Dollars //$NON-NLS-1$
- "SHP", // Saint Helena, Pounds //$NON-NLS-1$
- "SIT", // Slovenia, Tolars //$NON-NLS-1$
- "SKK", // Slovakia, Koruny //$NON-NLS-1$
- "SLL", // Sierra Leone, Leones //$NON-NLS-1$
- "SOS", // Somalia, Shillings //$NON-NLS-1$
- "SPL", // Seborga, Luigini //$NON-NLS-1$
- "SRD", // Suriname, Dollars //$NON-NLS-1$
- "STD", // S?o Tome and Principe, Dobras //$NON-NLS-1$
- "SVC", // El Salvador, Colones //$NON-NLS-1$
- "SYP", // Syria, Pounds //$NON-NLS-1$
- "SZL", // Swaziland, Emalangeni //$NON-NLS-1$
- "THB", // Thailand, Baht //$NON-NLS-1$
- "TJS", // Tajikistan, Somoni //$NON-NLS-1$
- "TMM", // Turkmenistan, Manats //$NON-NLS-1$
- "TND", // Tunisia, Dinars //$NON-NLS-1$
- "TOP", // Tonga, Pa'anga //$NON-NLS-1$
- "TRL", // Turkey, Liras [being phased out] //$NON-NLS-1$
- "TRY", // Turkey, New Lira //$NON-NLS-1$
- "TTD", // Trinidad and Tobago, Dollars //$NON-NLS-1$
- "TVD", // Tuvalu, Tuvalu Dollars //$NON-NLS-1$
- "TWD", // Taiwan, New Dollars //$NON-NLS-1$
- "TZS", // Tanzania, Shillings //$NON-NLS-1$
- "UAH", // Ukraine, Hryvnia //$NON-NLS-1$
- "UGX", // Uganda, Shillings //$NON-NLS-1$
- "USD", // United States of America, Dollars //$NON-NLS-1$
- "UYU", // Uruguay, Pesos //$NON-NLS-1$
- "UZS", // Uzbekistan, Sums //$NON-NLS-1$
- "VEB", // Venezuela, Bolivares //$NON-NLS-1$
- "VND", // Viet Nam, Dong //$NON-NLS-1$
- "VUV", // Vanuatu, Vatu //$NON-NLS-1$
- "WST", // Samoa, Tala //$NON-NLS-1$
- "XAF", // Communaut�� Financi��re Africaine BEAC, Francs
- // //$NON-NLS-1$
- "XAG", // Silver, Ounces //$NON-NLS-1$
- "XAU", // Gold, Ounces //$NON-NLS-1$
- "XCD", // East Caribbean Dollars //$NON-NLS-1$
- "XDR", // International Monetary Fund (IMF) Special Drawing Rights
- // //$NON-NLS-1$
- "XOF", // Communaut�� Financi��re Africaine BCEAO, Francs
- // //$NON-NLS-1$
- "XPD", // Palladium Ounces //$NON-NLS-1$
- "XPF", // Comptoirs Fran?ais du Pacifique Francs //$NON-NLS-1$
- "XPT", // Platinum, Ounces //$NON-NLS-1$
- "YER", // Yemen, Rials //$NON-NLS-1$
- "ZAR", // South Africa, Rand //$NON-NLS-1$
- "ZMK", // Zambia, Kwacha //$NON-NLS-1$
- "ZWD" // Zimbabwe, Zimbabwe Dollars //$NON-NLS-1$
- };
-
+public class CellEditorFactory implements ITagAttributeCellEditorFactory {
public CellEditor createCellEditor(Composite parent,
- IAttributeDescriptor attr, Element element) {
+ IPropertyPageDescriptor attr, Element element) {
+
String type = attr.getValueType();
-
- if (IValueType.ENUMERATED.equalsIgnoreCase(type)) {
- Map map = new HashMap(attr.getOptions());
- String defaultValue = attr.getDefaultValue();
- if (defaultValue == null) {
- return LabeledComboBoxCellEditor.newInstance(parent, map,
- SWT.NONE);
- }
- return LabeledStyleComboCellEditor.newInstance(parent, map,
- defaultValue, SWT.NONE);
- } else if (IValueType.LOCALE.equalsIgnoreCase(type)) {
- Map map = new HashMap();
- Locale[] locales = Locale.getAvailableLocales();
- for (int i = 0, size = locales.length; i < size; i++) {
- map.put(locales[i].toString(), locales[i].toString());
- }
- return LabeledComboBoxCellEditor.newInstance(parent, map, SWT.NONE);
- } else if (IValueType.TIMEZONE.equalsIgnoreCase(type)) {
- Map map = new HashMap();
- String[] ids = TimeZone.getAvailableIDs();
- for (int i = 0, size = ids.length; i < size; i++) {
- map.put(ids[i], ids[i]);
- }
- return LabeledComboBoxCellEditor.newInstance(parent, map, SWT.NONE);
- } else if (IValueType.RELATIVEPATH.equalsIgnoreCase(type)
- || IValueType.WEBPATH.equalsIgnoreCase(type)) {
+
+ IPossibleValues pvs = (IPossibleValues)attr.getAdapter(IPossibleValues.class);
+ IDefaultValue defaultValue = (IDefaultValue)attr.getAdapter(IDefaultValue.class);
+// ICellEditorValidator validator = (ICellEditorValidator)attr.getAdapter(ICellEditorValidator.class);
+ CellEditor ed = null;
+ if (IAttributeRuntimeValueType.RELATIVEPATH.equalsIgnoreCase(type)|| IAttributeRuntimeValueType.WEBPATH.equalsIgnoreCase(type)) {
IProject project = getProject(element);
if (project != null) {
+// String typeParam = TraitValueHelper.getValueAsString(TaglibDomainMetaDataQueryHelper.getTrait(attr.getMetaDataContext().getEntity(),"type-param"));
ResourceDialogCellEditor cellEditor = new ResourceDialogCellEditor(
parent);
- cellEditor.setSuffixs(attr.getParameterByName(
- IAttributeDescriptor.PARAMETER_SUFFIX).split(";"));
- cellEditor
- .setSeparator(attr
- .getParameterByName(IAttributeDescriptor.PARAMETER_SEPARATOR));
+ Trait fileExt = TaglibDomainMetaDataQueryHelper.getTrait(attr.getMetaDataContext().getEntity(), "file-extensions");
+ Trait separator = TaglibDomainMetaDataQueryHelper.getTrait(attr.getMetaDataContext().getEntity(), "separator");
+ String[] fileExts = null;
+ if (fileExt != null){
+ List exts = TraitValueHelper.getValueAsListOfStrings(fileExt);
+ fileExts = (String[])exts.toArray(new String[exts.size()]);
+ }
+
+ String sep = null;
+ if (separator != null)
+ sep = TraitValueHelper.getValueAsString(separator);
+
+ if (fileExts != null)
+ cellEditor.setSuffixs(fileExts);
+ if (sep != null)
+ cellEditor.setSeparator(sep);
+
cellEditor.setProject(project);
cellEditor.setReferredFile(getFile(element));
- if ("".equalsIgnoreCase(cellEditor.getSeparator())) {
- cellEditor.setResourceDescription(ResourceBoundle
- .getString("FileCellEditor.Msg"));
- } else {
- cellEditor.setResourceDescription(ResourceBoundle
- .getString("FileCellEditor.Msg1"));
- }
- if (IValueType.WEBPATH.equalsIgnoreCase(type)) {
+
+ if (IAttributeRuntimeValueType.WEBPATH.equalsIgnoreCase(type)) {
cellEditor.setWebPath(true);
}
@@ -280,128 +87,97 @@
.getLocalName())) {
cellEditor.setTransformJSPURL(false);
}
- return cellEditor;
+ ed = cellEditor;
}
- } else if (IValueType.CLASSPATH_RESOURCE.equalsIgnoreCase(type)) {
- return new LoadbundleSelectionCellEditor(parent,
+ }
+ else if (IAttributeRuntimeValueType.RESOURCEBUNDLE.equals(type)) {
+ ed = new LoadbundleSelectionCellEditor(parent,
getProject(element));
- } else if (IValueType.CSSID.equalsIgnoreCase(type)) {
- // TODO: missing case?
- } else if (IValueType.CSSCLASS.equalsIgnoreCase(type)) {
- String cssclasses[] = CSSUtil.getCSSClasses(element
- .getOwnerDocument());
- Map map = new HashMap();
- if (cssclasses != null) {
- for (int i = 0; i < cssclasses.length; i++) {
- map.put(cssclasses[i], cssclasses[i]);
- }
- }
- return LabeledComboBoxCellEditor.newInstance(parent, map, SWT.NONE);
- } else if (IValueType.BOOLEAN.equalsIgnoreCase(type)) {
- String defaultValue = attr
- .getParameterByName(IAttributeDescriptor.PARAMETER_DEFAULT);
- Map booleanMap = new HashMap();
- booleanMap.put(Boolean.TRUE.toString(), Boolean.TRUE.toString());
- booleanMap.put(Boolean.FALSE.toString(), Boolean.FALSE.toString());
- if (defaultValue == null) {
- return LabeledComboBoxCellEditor.newInstance(parent,
- booleanMap, SWT.NONE);
- }
- return LabeledStyleComboCellEditor.newInstance(parent,
- booleanMap, defaultValue, SWT.NONE);
- } else if (IValueType.CSSSTYLE.equalsIgnoreCase(type)) {
- String param = attr
- .getParameterByName(IAttributeDescriptor.PARAMETER_STYLE);
- if (!param.equalsIgnoreCase("STYLE")) {
- return null;
- }
- CSSDialogCellEditor cellEditor = new CSSDialogCellEditor(parent,
- (IDOMElement) element);
- return cellEditor;
- } else if (IValueType.NAMED_BOOLEAN.equalsIgnoreCase(type)) {
- return NamedBooleanCellEditor.newInstance(parent, SWT.NONE,
- (IDOMElement) element, attr);
- } else if (IValueType.CURRENCYCODE.equalsIgnoreCase(type)) {
- Map map = new HashMap();
- for (int i = 0, n = CURRENCYCODES.length; i < n; i++) {
- map.put(CURRENCYCODES[i], CURRENCYCODES[i]);
- }
-
- return LabeledComboBoxCellEditor.newInstance(parent, map, SWT.NONE);
}
+ else if (IAttributeRuntimeValueType.CSSSTYLE.equalsIgnoreCase(type)) {
+// String param = getParamterValue(attr, "style");
+//// .getParameterByName(IAttributeDescriptor.PARAMETER_STYLE);
+// if (!param.equalsIgnoreCase("STYLE")) {
+// return null;
+// }
+ CSSDialogCellEditor cellEditor = new CSSDialogCellEditor(parent,
+ (IDOMElement) element);
+ ed = cellEditor;
+ }
+ else if (pvs != null && pvs.getPossibleValues().size() > 0) {
+// if (validator != null)
+// ed = LabeledStyleComboCellEditor.newInstance(parent, pvs,
+// defaultValue, SWT.DROP_DOWN | SWT.READ_ONLY);
+// else
+ ed = LabeledStyleComboCellEditor.newInstance(parent, pvs,
+ defaultValue, SWT.NONE);
+
+ }
+
+// } else if (IAttributeRuntimeValueType.CSSID.equalsIgnoreCase(type)) {
+// // TODO: missing case?
- // if there is no type or type unknonw, then we just return null. and
- // system will
- // create default (text cell editor).
- return null;
+ else {
+ ed = new TextCellEditor(parent);
+ }
+// if (validator != null){
+// ed.setValidator(validator);
+// }
+
+ return ed;
}
+
+// private String getParamterValue(IPropertyPageDescriptor attr, String traitKey) {
+// Trait trait = TaglibDomainMetaDataQueryHelper.getTrait(attr.getMetaDataContext().getEntity(), traitKey);
+// if (trait != null){
+// return TraitValueHelper.getValueAsString(trait);
+// }
+// return null;
+// }
+
+
/*
* (non-Javadoc)
*
- * @see org.eclipse.jst.pagedesigner.meta.IAttributeCellEditorFactory#createDialogField(org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor,
+ * @see org.eclipse.jst.pagedesigner.meta.NEWMDIAttributeCellEditorFactory#createDialogField(org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor,
* org.w3c.dom.Element, org.w3c.dom.Element)
*/
- public DialogField createDialogField(IAttributeDescriptor attr) {
- String type = attr.getValueType();
+ public DialogField createDialogField(IPropertyPageDescriptor attr) {
- if (IValueType.ENUMERATED.equalsIgnoreCase(type)
- || IValueType.LOCALE.equalsIgnoreCase(type)
- || IValueType.TIMEZONE.equalsIgnoreCase(type)) {
- Map map = new HashMap();
- if (IValueType.ENUMERATED.equalsIgnoreCase(type)) {
- map = attr.getOptions();
- } else if (IValueType.LOCALE.equalsIgnoreCase(type)) {
- Locale[] locales = Locale.getAvailableLocales();
- for (int i = 0, size = locales.length; i < size; i++) {
- map.put(locales[i].toString(), locales[i].toString());
- }
- } else {
- String[] ids = TimeZone.getAvailableIDs();
- for (int i = 0, size = ids.length; i < size; i++) {
- map.put(ids[i], ids[i]);
- }
- }
- if (map != null && !map.isEmpty()) {
- String defaultValue = attr.getDefaultValue();
- if (defaultValue == null || "".equals(defaultValue)) {
- attr
- .getParameterByName(IAttributeDescriptor.PARAMETER_DEFAULT);
- }
- StyleComboDialogField field = new StyleComboDialogField(
- SWT.NONE);
- field.setDefaultValue(defaultValue);
- field.setLabelText(attr.getLabelString());
- field.setEntryMap(new TreeMap(map));
- field.setRequired(attr.isRequired());
- field.setToolTip(attr.getDescription());
- return field;
- }
- // eles the config is incorrect. fall through, will return null.
- } else if (IValueType.RELATIVEPATH.equalsIgnoreCase(type)) {
- String param = attr.getTypeParameter();
+ String type = attr.getValueType();
+
+ IPossibleValues pvs = (IPossibleValues)attr.getAdapter(IPossibleValues.class);
+// IDefaultValue defaultValue = (IDefaultValue)attr.getAdapter(IDefaultValue.class);
+// ICellEditorValidator validator = (ICellEditorValidator)attr.getAdapter(ICellEditorValidator.class);
+
+
+
+ if (IAttributeRuntimeValueType.RELATIVEPATH.equals(type) ||
+ IAttributeRuntimeValueType.WEBPATH.equals(type)) {
+ Trait fileExt = TaglibDomainMetaDataQueryHelper.getTrait(attr.getMetaDataContext().getEntity(), "file-extensions");
+ Trait seperator = TaglibDomainMetaDataQueryHelper.getTrait(attr.getMetaDataContext().getEntity(), "separator");
+
+ String[] fileExts = null;
+ if (fileExt != null){
+ List exts = TraitValueHelper.getValueAsListOfStrings(fileExt);
+ fileExts = (String[])exts.toArray(new String[exts.size()]);
+ }
+
+ String sep = null;
+ if (seperator != null)
+ sep = TraitValueHelper.getValueAsString(seperator);
+
ContextableResourceButtonDialogField field = new ContextableResourceButtonDialogField();
- field.setLabelText(attr.getLabelString());
- if (param != null) {
- field.setSuffixs(attr.getParameterByName(
- IAttributeDescriptor.PARAMETER_SUFFIX).split(";"));
+ field.setLabelText(attr.getLabel());
+ if (fileExts != null) {
+ field.setSuffixs(fileExts);
}
- field.setResourceDescription(ResourceBoundle
- .getString("FileCellEditor.Msg"));
- field.setRequired(attr.isRequired());
- field.setToolTip(attr.getDescription());
- return field;
- } else if (IValueType.WEBPATH.equalsIgnoreCase(type)) {
- String param = attr.getTypeParameter();
- ContextableResourceButtonDialogField field = new ContextableResourceButtonDialogField();
- field.setLabelText(attr.getLabelString());
- if (param != null) {
- field.setSuffixs(attr.getParameterByName(
- IAttributeDescriptor.PARAMETER_SUFFIX).split(";"));
- field
- .setSeparator(attr
- .getParameterByName(IAttributeDescriptor.PARAMETER_SEPARATOR));
+
+ if (sep != null) {
+ field.setSeparator(sep);
}
+
if ("".equalsIgnoreCase(field.getSeparator())) {
field.setResourceDescription(ResourceBoundle
.getString("FileCellEditor.Msg"));
@@ -409,51 +185,37 @@
field.setResourceDescription(ResourceBoundle
.getString("FileCellEditor.Msg1"));
}
- field.setWebPath(true);
+ field.setWebPath(IAttributeRuntimeValueType.WEBPATH.equals(type));
field.setRequired(attr.isRequired());
field.setToolTip(attr.getDescription());
return field;
- } else if (IValueType.CLASSPATH_RESOURCE.equals(type)) {
+
+ } else if (IAttributeRuntimeValueType.CLASSPATH_RESOURCE.equals(type)) {
ClasspathResourceButtonDialogField field = new ClasspathResourceButtonDialogField();
field.setRequired(attr.isRequired());
field.setToolTip(attr.getDescription());
return field;
- } else if (IValueType.BOOLEAN.equalsIgnoreCase(type)) {
- String defaultValue = attr
- .getParameterByName(IAttributeDescriptor.PARAMETER_DEFAULT);
- StyleComboDialogField field = new StyleComboDialogField(SWT.NONE);
- TreeMap map = new TreeMap();
- map.put("", "");
- map.put(Boolean.FALSE.toString(), Boolean.FALSE.toString());
- map.put(Boolean.TRUE.toString(), Boolean.TRUE.toString());
- field.setEntryMap(map);
- field.setDefaultValue(defaultValue);
- field.setLabelText(attr.getLabelString());
- field.setRequired(attr.isRequired());
- field.setToolTip(attr.getDescription());
- return field;
- } else if (IValueType.CSSSTYLE.equalsIgnoreCase(type)) {
- String param = attr
- .getParameterByName(IAttributeDescriptor.PARAMETER_STYLE);
- if (!"STYLE".equalsIgnoreCase(param)) {
- return null;
- }
+ } else if (IAttributeRuntimeValueType.CSSSTYLE.equalsIgnoreCase(type)) {
+// String param = getParamterValue(attr, "style");
+// if (!"STYLE".equalsIgnoreCase(param)) {
+// return null;
+// }
StyleButtonDialogField field = new StyleButtonDialogField();
field.setRequired(attr.isRequired());
field.setToolTip(attr.getDescription());
+ field.setLabelText(attr.getLabel());
return field;
- } else if (IValueType.CURRENCYCODE.equalsIgnoreCase(type)) {
- ComboDialogField field = new ComboDialogField(SWT.NONE);
- field.setLabelText(attr.getLabelString());
- field.setItems(CURRENCYCODES);
- field.setRequired(attr.isRequired());
+
+// // if there is no type or type unknown, then we just return null. and
+// // system will
+// // create default (text cell editor).
+ } else if (pvs != null) {
+ MDEnabledComboDialogField field = new MDEnabledComboDialogField(SWT.None);
+ field.setLabelText(attr.getLabel());
field.setToolTip(attr.getDescription());
+ field.setRequired(attr.isRequired());
return field;
}
-
- // if there is no type or type unknonw, then we just return null. and
- // system will
- // create default (text cell editor).
return null;
}
@@ -469,7 +231,7 @@
}
public String[] getSupportedValueTypes() {
- return null;
+ return null;//default - all!
}
private IFile getFile(Element element) {
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/CellEditorWrapper.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/CellEditorWrapper.java
index 90f9589..011ff99 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/CellEditorWrapper.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/CellEditorWrapper.java
@@ -157,7 +157,7 @@
* class override this method to provide image. Rather than setting as
* property.
*
- * @return the binding image
+ * @return image
*/
protected abstract Image getBindingImage();
@@ -168,13 +168,13 @@
* widget, using the same font and background color as the parent control.
* </p>
* <p>
- * Subclasses may reimplement. If you reimplement this method, you should
- * also reimplement <code>updateContents</code>.
+ * Subclasses may re-implement. If you re-implement this method, you should
+ * also re-implement <code>updateContents</code>.
* </p>
*
* @param cell
* the control for this cell editor
- * @return the control
+ * @return control
*/
protected Control createContents(Composite cell) {
_wrapped = createWrappedCellEditor(cell);
@@ -222,7 +222,7 @@
/**
* @param cell
- * @return the cell editor
+ * @return CellEditor
*/
protected abstract CellEditor createWrappedCellEditor(Composite cell);
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/LabeledComboBoxCellEditor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/LabeledComboBoxCellEditor.java
index 6d8d335..efd1df0 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/LabeledComboBoxCellEditor.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/LabeledComboBoxCellEditor.java
@@ -36,10 +36,11 @@
private Object[] _values;
/**
+ * Create LabeledComboBoxCellEditor
* @param parent
* @param valueLabelMap
* @param style
- * @return the new instance
+ * @return LabeledComboBoxCellEditor
*/
public static LabeledComboBoxCellEditor newInstance(Composite parent,
Map valueLabelMap, int style) {
@@ -68,9 +69,11 @@
}
/**
+ * Constructor
+ *
* @param parent
- * @param values
- * @param labels
+ * @param values
+ * @param labels
*/
public LabeledComboBoxCellEditor(Composite parent, Object[] values,
String[] labels) {
@@ -78,9 +81,11 @@
}
/**
+ * Constructor
+ *
* @param parent
- * @param values
- * @param labels
+ * @param values
+ * @param labels
* @param style
*/
public LabeledComboBoxCellEditor(Composite parent, Object[] values,
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/LabeledStyleComboCellEditor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/LabeledStyleComboCellEditor.java
index 04da086..e8a47d5 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/LabeledStyleComboCellEditor.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/LabeledStyleComboCellEditor.java
@@ -14,11 +14,16 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jst.jsf.common.ui.internal.utils.StyleCombo;
+import org.eclipse.jst.jsf.metadataprocessors.features.IDefaultValue;
+import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValue;
+import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.wst.sse.ui.internal.Logger;
@@ -66,9 +71,11 @@
}
/**
+ * Constructor
+ *
* @param parent
- * @param values
- * @param labels
+ * @param values
+ * @param labels
* @param defaultValue
* @param style
*/
@@ -76,7 +83,8 @@
String[] labels, String defaultValue, int style) {
super(parent, labels, style);
StyleCombo combo = (StyleCombo) getControl();
- combo.setDefaultValue(defaultValue);
+ if (defaultValue != null)
+ combo.setDefaultValue(defaultValue);
_values = values;
}
@@ -145,4 +153,33 @@
}
}
}
+
+ /**
+ * Create CellEditor
+ * @param parent
+ * @param pvs
+ * @param defaultValue
+ * @param style
+ * @return CellEditor
+ */
+ public static CellEditor newInstance(Composite parent, IPossibleValues pvs,
+ IDefaultValue defaultValue, int style) {
+
+ CellEditor ed = null;
+ if (pvs != null) {
+ Map map = getPossibleValueMap(pvs);
+ ed = newInstance(parent, map, defaultValue != null ? defaultValue.getDefaultValue() : null, style);
+ }
+
+ return ed;
+ }
+
+ private static Map getPossibleValueMap(IPossibleValues pvs) {
+ Map<String, String> map = new HashMap<String, String>(pvs.getPossibleValues().size());
+ for (Iterator it = pvs.getPossibleValues().iterator();it.hasNext();){
+ IPossibleValue pv = (IPossibleValue)it.next();
+ map.put(pv.getValue(), pv.getDisplayValue());
+ }
+ return map;
+ }
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/MDEnabledComboDialogField.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/MDEnabledComboDialogField.java
new file mode 100644
index 0000000..a7f7d8d
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/MDEnabledComboDialogField.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ *
+ ********************************************************************************/
+package org.eclipse.jst.pagedesigner.properties.celleditors;
+
+import java.util.Iterator;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.eclipse.jst.jsf.common.ui.internal.dialogfield.StyleComboDialogField;
+import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext;
+import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContextFactory;
+import org.eclipse.jst.jsf.metadataprocessors.features.IDefaultValue;
+import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValue;
+import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
+import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.IElementContextable;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+
+/**
+ * This combo dialog field defers loading the combos until the element context has been set
+ *
+ */
+public class MDEnabledComboDialogField extends StyleComboDialogField implements IElementContextable {
+
+ /**
+ * Constructor
+ * @param flags
+ */
+ public MDEnabledComboDialogField(int flags) {
+ super(flags);
+ }
+
+ public void setElementContext(IDOMNode ancester, IDOMElement element) {
+ IStructuredDocumentContext sdContext =IStructuredDocumentContextFactory.INSTANCE.getContext(element.getStructuredDocument(), element);
+ IPropertyPageDescriptor ppd = (IPropertyPageDescriptor)getAttachedData("KEY_ATTR");//FIXME use constant
+ ppd.setStructuredDocumentContext(sdContext);
+ IPossibleValues pvs = (IPossibleValues)ppd.getAdapter(IPossibleValues.class);
+ IDefaultValue def = (IDefaultValue)ppd.getAdapter(IDefaultValue.class);
+ if (def != null)
+ setDefaultValue(def.getDefaultValue());
+ if (pvs.getPossibleValues() != null)
+ setEntryMap(getMapOfPossibleValues(pvs));
+ }
+
+ private Map getMapOfPossibleValues(IPossibleValues pvs) {
+ Map map = new TreeMap<String, String>();
+ for (Iterator<IPossibleValue> it=pvs.getPossibleValues().iterator();it.hasNext();){
+ IPossibleValue pv = it.next();
+ map.put(pv.getValue(), pv.getDisplayValue());
+ }
+ return map;
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/NamedBooleanCellEditor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/NamedBooleanCellEditor.java
index 23929eb..d2cd08d 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/NamedBooleanCellEditor.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/NamedBooleanCellEditor.java
@@ -18,6 +18,7 @@
/**
* @author mengbo
* @version 1.5
+ * Unused???
*/
public class NamedBooleanCellEditor extends LabeledComboBoxCellEditor {
/**
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/OLDCellEditorFactory.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/OLDCellEditorFactory.java
new file mode 100644
index 0000000..3c5bf72
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/OLDCellEditorFactory.java
@@ -0,0 +1,483 @@
+/*******************************************************************************
+ * Copyright (c) 2006 Sybase, Inc. and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.properties.celleditors;
+
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+import java.util.TimeZone;
+import java.util.TreeMap;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jst.jsf.common.ui.internal.dialogfield.ComboDialogField;
+import org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField;
+import org.eclipse.jst.jsf.common.ui.internal.dialogfield.StyleComboDialogField;
+import org.eclipse.jst.pagedesigner.css2.CSSUtil;
+import org.eclipse.jst.pagedesigner.jsp.core.IJSPCoreConstants;
+import org.eclipse.jst.pagedesigner.meta.IAttributeCellEditorFactory;
+import org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor;
+import org.eclipse.jst.pagedesigner.meta.OLDIValueType;
+import org.eclipse.jst.pagedesigner.ui.dialogfields.ClasspathResourceButtonDialogField;
+import org.eclipse.jst.pagedesigner.ui.dialogfields.ContextableResourceButtonDialogField;
+import org.eclipse.jst.pagedesigner.ui.dialogfields.StyleButtonDialogField;
+import org.eclipse.jst.pagedesigner.utils.StructuredModelUtil;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.w3c.dom.Element;
+
+/**
+ *
+ * @author mengbo
+ * @deprecated
+ */
+public class OLDCellEditorFactory implements IAttributeCellEditorFactory {
+ private static String[] CURRENCYCODES = { "AED", // United Arab Emirates,
+ // Dirhams //$NON-NLS-1$
+ "AFA", // Afghanistan, Afghanis //$NON-NLS-1$
+ "ALL", // Albania, Leke //$NON-NLS-1$
+ "AMD", // Armenia, Drams //$NON-NLS-1$
+ "ANG", // Netherlands Antilles, Guilders (also called Florins)//$NON-NLS-1$
+ "AOA", // Angola, Kwanza //$NON-NLS-1$
+ "ARS", // Argentina, Pesos //$NON-NLS-1$
+ "AUD", // Australia, Dollars //$NON-NLS-1$
+ "AWG", // Aruba, Guilders (also called Florins) //$NON-NLS-1$
+ "AZM", // Azerbaijan, Manats //$NON-NLS-1$
+ "BAM", // Bosnia and Herzegovina, Convertible Marka //$NON-NLS-1$
+ "BBD", // Barbados, Dollars //$NON-NLS-1$
+ "BDT", // Bangladesh, Taka //$NON-NLS-1$
+ "BGN", // Bulgaria, Leva //$NON-NLS-1$
+ "BHD", // Bahrain, Dinars //$NON-NLS-1$
+ "BIF", // Burundi, Francs //$NON-NLS-1$
+ "BMD", // Bermuda, Dollars //$NON-NLS-1$
+ "BND", // Brunei Darussalam, Dollars //$NON-NLS-1$
+ "BOB", // Bolivia, Bolivianos //$NON-NLS-1$
+ "BRL", // Brazil, Brazil Real //$NON-NLS-1$
+ "BSD", // Bahamas, Dollars //$NON-NLS-1$
+ "BTN", // Bhutan, Ngultrum //$NON-NLS-1$
+ "BWP", // Botswana, Pulas //$NON-NLS-1$
+ "BYR", // Belarus, Rubles //$NON-NLS-1$
+ "BZD", // Belize, Dollars //$NON-NLS-1$
+ "CAD", // Canada, Dollars //$NON-NLS-1$
+ "CDF", // Congo/Kinshasa, Congolese Francs //$NON-NLS-1$
+ "CHF", // Switzerland, Francs //$NON-NLS-1$
+ "CLP", // Chile, Pesos //$NON-NLS-1$
+ "CNY", // China, Yuan Renminbi //$NON-NLS-1$
+ "COP", // Colombia, Pesos //$NON-NLS-1$
+ "CRC", // Costa Rica, Colones //$NON-NLS-1$
+ "CSD", // Serbia, Dinars //$NON-NLS-1$
+ "CUP", // Cuba, Pesos //$NON-NLS-1$
+ "CVE", // Cape Verde, Escudos //$NON-NLS-1$
+ "CYP", // Cyprus, Pounds //$NON-NLS-1$
+ "CZK", // Czech Republic, Koruny //$NON-NLS-1$
+ "DJF", // Djibouti, Francs //$NON-NLS-1$
+ "DKK", // Denmark, Kroner //$NON-NLS-1$
+ "DOP", // Dominican Republic, Pesos //$NON-NLS-1$
+ "DZD", // Algeria, Algeria Dinars //$NON-NLS-1$
+ "EEK", // Estonia, Krooni //$NON-NLS-1$
+ "EGP", // Egypt, Pounds //$NON-NLS-1$
+ "ERN", // Eritrea, Nakfa //$NON-NLS-1$
+ "ETB", // Ethiopia, Birr //$NON-NLS-1$
+ "EUR", // Euro Member Countries, Euro //$NON-NLS-1$
+ "FJD", // Fiji, Dollars //$NON-NLS-1$
+ "FKP", // Falkland Islands (Malvinas), Pounds //$NON-NLS-1$
+ "GBP", // United Kingdom, Pounds //$NON-NLS-1$
+ "GEL", // Georgia, Lari //$NON-NLS-1$
+ "GGP", // Guernsey, Pounds //$NON-NLS-1$
+ "GHC", // Ghana, Cedis //$NON-NLS-1$
+ "GIP", // Gibraltar, Pounds //$NON-NLS-1$
+ "GMD", // Gambia, Dalasi //$NON-NLS-1$
+ "GNF", // Guinea, Francs //$NON-NLS-1$
+ "GTQ", // Guatemala, Quetzales //$NON-NLS-1$
+ "GYD", // Guyana, Dollars //$NON-NLS-1$
+ "HKD", // Hong Kong, Dollars //$NON-NLS-1$
+ "HNL", // Honduras, Lempiras //$NON-NLS-1$
+ "HRK", // Croatia, Kuna //$NON-NLS-1$
+ "HTG", // Haiti, Gourdes //$NON-NLS-1$
+ "HUF", // Hungary, Forint //$NON-NLS-1$
+ "IDR", // Indonesia, Rupiahs //$NON-NLS-1$
+ "ILS", // Israel, New Shekels //$NON-NLS-1$
+ "IMP", // Isle of Man, Pounds //$NON-NLS-1$
+ "INR", // India, Rupees //$NON-NLS-1$
+ "IQD", // Iraq, Dinars //$NON-NLS-1$
+ "IRR", // Iran, Rials //$NON-NLS-1$
+ "ISK", // Iceland, Kronur //$NON-NLS-1$
+ "JEP", // Jersey, Pounds //$NON-NLS-1$
+ "JMD", // Jamaica, Dollars //$NON-NLS-1$
+ "JOD", // Jordan, Dinars //$NON-NLS-1$
+ "JPY", // Japan, Yen //$NON-NLS-1$
+ "KES", // Kenya, Shillings //$NON-NLS-1$
+ "KGS", // Kyrgyzstan, Soms //$NON-NLS-1$
+ "KHR", // Cambodia, Riels //$NON-NLS-1$
+ "KMF", // Comoros, Francs //$NON-NLS-1$
+ "KPW", // Korea (North), Won //$NON-NLS-1$
+ "KRW", // Korea (South), Won //$NON-NLS-1$
+ "KWD", // Kuwait, Dinars //$NON-NLS-1$
+ "KYD", // Cayman Islands, Dollars //$NON-NLS-1$
+ "KZT", // Kazakhstan, Tenge //$NON-NLS-1$
+ "LAK", // Laos, Kips //$NON-NLS-1$
+ "LBP", // Lebanon, Pounds //$NON-NLS-1$
+ "LKR", // Sri Lanka, Rupees //$NON-NLS-1$
+ "LRD", // Liberia, Dollars //$NON-NLS-1$
+ "LSL", // Lesotho, Maloti //$NON-NLS-1$
+ "LTL", // Lithuania, Litai //$NON-NLS-1$
+ "LVL", // Latvia, Lati //$NON-NLS-1$
+ "LYD", // Libya, Dinars //$NON-NLS-1$
+ "MAD", // Morocco, Dirhams //$NON-NLS-1$
+ "MDL", // Moldova, Lei //$NON-NLS-1$
+ "MGA", // Madagascar, Ariary //$NON-NLS-1$
+ "MKD", // Macedonia, Denars //$NON-NLS-1$
+ "MMK", // Myanmar (Burma), Kyats //$NON-NLS-1$
+ "MNT", // Mongolia, Tugriks //$NON-NLS-1$
+ "MOP", // Macau, Patacas //$NON-NLS-1$
+ "MRO", // Mauritania, Ouguiyas //$NON-NLS-1$
+ "MTL", // Malta, Liri //$NON-NLS-1$
+ "MUR", // Mauritius, Rupees //$NON-NLS-1$
+ "MVR", // Maldives (Maldive Islands), Rufiyaa //$NON-NLS-1$
+ "MWK", // Malawi, Kwachas //$NON-NLS-1$
+ "MXN", // Mexico, Pesos //$NON-NLS-1$
+ "MYR", // Malaysia, Ringgits //$NON-NLS-1$
+ "MZM", // Mozambique, Meticais //$NON-NLS-1$
+ "NAD", // Namibia, Dollars //$NON-NLS-1$
+ "NGN", // Nigeria, Nairas //$NON-NLS-1$
+ "NIO", // Nicaragua, Cordobas //$NON-NLS-1$
+ "NOK", // Norway, Krone //$NON-NLS-1$
+ "NPR", // Nepal, Nepal Rupees //$NON-NLS-1$
+ "NZD", // New Zealand, Dollars //$NON-NLS-1$
+ "OMR", // Oman, Rials //$NON-NLS-1$
+ "PAB", // Panama, Balboa //$NON-NLS-1$
+ "PEN", // Peru, Nuevos Soles //$NON-NLS-1$
+ "PGK", // Papua New Guinea, Kina //$NON-NLS-1$
+ "PHP", // Philippines, Pesos //$NON-NLS-1$
+ "PKR", // Pakistan, Rupees //$NON-NLS-1$
+ "PLN", // Poland, Zlotych //$NON-NLS-1$
+ "PYG", // Paraguay, Guarani //$NON-NLS-1$
+ "QAR", // Qatar, Rials //$NON-NLS-1$
+ "ROL", // Romania, Lei //$NON-NLS-1$
+ "RUB", // Russia, Rubles //$NON-NLS-1$
+ "RWF", // Rwanda, Rwanda Francs //$NON-NLS-1$
+ "SAR", // Saudi Arabia, Riyals //$NON-NLS-1$
+ "SBD", // Solomon Islands, Dollars //$NON-NLS-1$
+ "SCR", // Seychelles, Rupees //$NON-NLS-1$
+ "SDD", // Sudan, Dinars //$NON-NLS-1$
+ "SEK", // Sweden, Kronor //$NON-NLS-1$
+ "SGD", // Singapore, Dollars //$NON-NLS-1$
+ "SHP", // Saint Helena, Pounds //$NON-NLS-1$
+ "SIT", // Slovenia, Tolars //$NON-NLS-1$
+ "SKK", // Slovakia, Koruny //$NON-NLS-1$
+ "SLL", // Sierra Leone, Leones //$NON-NLS-1$
+ "SOS", // Somalia, Shillings //$NON-NLS-1$
+ "SPL", // Seborga, Luigini //$NON-NLS-1$
+ "SRD", // Suriname, Dollars //$NON-NLS-1$
+ "STD", // S?o Tome and Principe, Dobras //$NON-NLS-1$
+ "SVC", // El Salvador, Colones //$NON-NLS-1$
+ "SYP", // Syria, Pounds //$NON-NLS-1$
+ "SZL", // Swaziland, Emalangeni //$NON-NLS-1$
+ "THB", // Thailand, Baht //$NON-NLS-1$
+ "TJS", // Tajikistan, Somoni //$NON-NLS-1$
+ "TMM", // Turkmenistan, Manats //$NON-NLS-1$
+ "TND", // Tunisia, Dinars //$NON-NLS-1$
+ "TOP", // Tonga, Pa'anga //$NON-NLS-1$
+ "TRL", // Turkey, Liras [being phased out] //$NON-NLS-1$
+ "TRY", // Turkey, New Lira //$NON-NLS-1$
+ "TTD", // Trinidad and Tobago, Dollars //$NON-NLS-1$
+ "TVD", // Tuvalu, Tuvalu Dollars //$NON-NLS-1$
+ "TWD", // Taiwan, New Dollars //$NON-NLS-1$
+ "TZS", // Tanzania, Shillings //$NON-NLS-1$
+ "UAH", // Ukraine, Hryvnia //$NON-NLS-1$
+ "UGX", // Uganda, Shillings //$NON-NLS-1$
+ "USD", // United States of America, Dollars //$NON-NLS-1$
+ "UYU", // Uruguay, Pesos //$NON-NLS-1$
+ "UZS", // Uzbekistan, Sums //$NON-NLS-1$
+ "VEB", // Venezuela, Bolivares //$NON-NLS-1$
+ "VND", // Viet Nam, Dong //$NON-NLS-1$
+ "VUV", // Vanuatu, Vatu //$NON-NLS-1$
+ "WST", // Samoa, Tala //$NON-NLS-1$
+ "XAF", // Communaut�� Financi��re Africaine BEAC, Francs
+ // //$NON-NLS-1$
+ "XAG", // Silver, Ounces //$NON-NLS-1$
+ "XAU", // Gold, Ounces //$NON-NLS-1$
+ "XCD", // East Caribbean Dollars //$NON-NLS-1$
+ "XDR", // International Monetary Fund (IMF) Special Drawing Rights
+ // //$NON-NLS-1$
+ "XOF", // Communaut�� Financi��re Africaine BCEAO, Francs
+ // //$NON-NLS-1$
+ "XPD", // Palladium Ounces //$NON-NLS-1$
+ "XPF", // Comptoirs Fran?ais du Pacifique Francs //$NON-NLS-1$
+ "XPT", // Platinum, Ounces //$NON-NLS-1$
+ "YER", // Yemen, Rials //$NON-NLS-1$
+ "ZAR", // South Africa, Rand //$NON-NLS-1$
+ "ZMK", // Zambia, Kwacha //$NON-NLS-1$
+ "ZWD" // Zimbabwe, Zimbabwe Dollars //$NON-NLS-1$
+ };
+
+ public CellEditor createCellEditor(Composite parent,
+ IAttributeDescriptor attr, Element element) {
+ String type = attr.getValueType();
+
+ if (OLDIValueType.ENUMERATED.equalsIgnoreCase(type)) {
+ Map map = new HashMap(attr.getOptions());
+ String defaultValue = attr.getDefaultValue();
+ if (defaultValue == null) {
+ return LabeledComboBoxCellEditor.newInstance(parent, map,
+ SWT.NONE);
+ }
+ return LabeledStyleComboCellEditor.newInstance(parent, map,
+ defaultValue, SWT.NONE);
+ } else if (OLDIValueType.LOCALE.equalsIgnoreCase(type)) {
+ Map map = new HashMap();
+ Locale[] locales = Locale.getAvailableLocales();
+ for (int i = 0, size = locales.length; i < size; i++) {
+ map.put(locales[i].toString(), locales[i].toString());
+ }
+ return LabeledComboBoxCellEditor.newInstance(parent, map, SWT.NONE);
+ } else if (OLDIValueType.TIMEZONE.equalsIgnoreCase(type)) {
+ Map map = new HashMap();
+ String[] ids = TimeZone.getAvailableIDs();
+ for (int i = 0, size = ids.length; i < size; i++) {
+ map.put(ids[i], ids[i]);
+ }
+ return LabeledComboBoxCellEditor.newInstance(parent, map, SWT.NONE);
+ } else if (OLDIValueType.RELATIVEPATH.equalsIgnoreCase(type)
+ || OLDIValueType.WEBPATH.equalsIgnoreCase(type)) {
+ IProject project = getProject(element);
+ if (project != null) {
+ ResourceDialogCellEditor cellEditor = new ResourceDialogCellEditor(
+ parent);
+ cellEditor.setSuffixs(attr.getParameterByName(
+ IAttributeDescriptor.PARAMETER_SUFFIX).split(";"));
+ cellEditor
+ .setSeparator(attr
+ .getParameterByName(IAttributeDescriptor.PARAMETER_SEPARATOR));
+ cellEditor.setProject(project);
+ cellEditor.setReferredFile(getFile(element));
+ if ("".equalsIgnoreCase(cellEditor.getSeparator())) {
+ cellEditor.setResourceDescription(ResourceBoundle
+ .getString("FileCellEditor.Msg"));
+ } else {
+ cellEditor.setResourceDescription(ResourceBoundle
+ .getString("FileCellEditor.Msg1"));
+ }
+ if (OLDIValueType.WEBPATH.equalsIgnoreCase(type)) {
+ cellEditor.setWebPath(true);
+ }
+
+ if (IJSPCoreConstants.TAG_DIRECTIVE_INCLUDE.equals(element
+ .getLocalName())
+ || IJSPCoreConstants.TAG_INCLUDE.equals(element
+ .getLocalName())) {
+ cellEditor.setTransformJSPURL(false);
+ }
+ return cellEditor;
+ }
+ } else if (OLDIValueType.CLASSPATH_RESOURCE.equalsIgnoreCase(type)) {
+ return new LoadbundleSelectionCellEditor(parent,
+ getProject(element));
+ } else if (OLDIValueType.CSSID.equalsIgnoreCase(type)) {
+ // TODO: missing case?
+ } else if (OLDIValueType.CSSCLASS.equalsIgnoreCase(type)) {
+ String cssclasses[] = CSSUtil.getCSSClasses(element
+ .getOwnerDocument());
+ Map map = new HashMap();
+ if (cssclasses != null) {
+ for (int i = 0; i < cssclasses.length; i++) {
+ map.put(cssclasses[i], cssclasses[i]);
+ }
+ }
+ return LabeledComboBoxCellEditor.newInstance(parent, map, SWT.NONE);
+ } else if (OLDIValueType.BOOLEAN.equalsIgnoreCase(type)) {
+ String defaultValue = attr
+ .getParameterByName(IAttributeDescriptor.PARAMETER_DEFAULT);
+ Map booleanMap = new HashMap();
+ booleanMap.put(Boolean.TRUE.toString(), Boolean.TRUE.toString());
+ booleanMap.put(Boolean.FALSE.toString(), Boolean.FALSE.toString());
+ if (defaultValue == null) {
+ return LabeledComboBoxCellEditor.newInstance(parent,
+ booleanMap, SWT.NONE);
+ }
+ return LabeledStyleComboCellEditor.newInstance(parent,
+ booleanMap, defaultValue, SWT.NONE);
+ } else if (OLDIValueType.CSSSTYLE.equalsIgnoreCase(type)) {
+ String param = attr
+ .getParameterByName(IAttributeDescriptor.PARAMETER_STYLE);
+ if (!param.equalsIgnoreCase("STYLE")) {
+ return null;
+ }
+ CSSDialogCellEditor cellEditor = new CSSDialogCellEditor(parent,
+ (IDOMElement) element);
+ return cellEditor;
+ } else if (OLDIValueType.NAMED_BOOLEAN.equalsIgnoreCase(type)) {
+ return NamedBooleanCellEditor.newInstance(parent, SWT.NONE,
+ (IDOMElement) element, attr);
+ } else if (OLDIValueType.CURRENCYCODE.equalsIgnoreCase(type)) {
+ Map map = new HashMap();
+ for (int i = 0, n = CURRENCYCODES.length; i < n; i++) {
+ map.put(CURRENCYCODES[i], CURRENCYCODES[i]);
+ }
+
+ return LabeledComboBoxCellEditor.newInstance(parent, map, SWT.NONE);
+ }
+
+ // if there is no type or type unknonw, then we just return null. and
+ // system will
+ // create default (text cell editor).
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jst.pagedesigner.meta.IAttributeCellEditorFactory#createDialogField(org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor,
+ * org.w3c.dom.Element, org.w3c.dom.Element)
+ */
+ public DialogField createDialogField(IAttributeDescriptor attr) {
+ String type = attr.getValueType();
+
+ if (OLDIValueType.ENUMERATED.equalsIgnoreCase(type)
+ || OLDIValueType.LOCALE.equalsIgnoreCase(type)
+ || OLDIValueType.TIMEZONE.equalsIgnoreCase(type)) {
+ Map map = new HashMap();
+ if (OLDIValueType.ENUMERATED.equalsIgnoreCase(type)) {
+ map = attr.getOptions();
+ } else if (OLDIValueType.LOCALE.equalsIgnoreCase(type)) {
+ Locale[] locales = Locale.getAvailableLocales();
+ for (int i = 0, size = locales.length; i < size; i++) {
+ map.put(locales[i].toString(), locales[i].toString());
+ }
+ } else {
+ String[] ids = TimeZone.getAvailableIDs();
+ for (int i = 0, size = ids.length; i < size; i++) {
+ map.put(ids[i], ids[i]);
+ }
+ }
+ if (map != null && !map.isEmpty()) {
+ String defaultValue = attr.getDefaultValue();
+ if (defaultValue == null || "".equals(defaultValue)) {
+ attr
+ .getParameterByName(IAttributeDescriptor.PARAMETER_DEFAULT);
+ }
+ StyleComboDialogField field = new StyleComboDialogField(
+ SWT.NONE);
+ field.setDefaultValue(defaultValue);
+ field.setLabelText(attr.getLabelString());
+ field.setEntryMap(new TreeMap(map));
+ field.setRequired(attr.isRequired());
+ field.setToolTip(attr.getDescription());
+ return field;
+ }
+ // eles the config is incorrect. fall through, will return null.
+ } else if (OLDIValueType.RELATIVEPATH.equalsIgnoreCase(type)) {
+ String param = attr.getTypeParameter();
+ ContextableResourceButtonDialogField field = new ContextableResourceButtonDialogField();
+ field.setLabelText(attr.getLabelString());
+ if (param != null) {
+ field.setSuffixs(attr.getParameterByName(
+ IAttributeDescriptor.PARAMETER_SUFFIX).split(";"));
+ }
+ field.setResourceDescription(ResourceBoundle
+ .getString("FileCellEditor.Msg"));
+ field.setRequired(attr.isRequired());
+ field.setToolTip(attr.getDescription());
+ return field;
+ } else if (OLDIValueType.WEBPATH.equalsIgnoreCase(type)) {
+ String param = attr.getTypeParameter();
+ ContextableResourceButtonDialogField field = new ContextableResourceButtonDialogField();
+ field.setLabelText(attr.getLabelString());
+ if (param != null) {
+ field.setSuffixs(attr.getParameterByName(
+ IAttributeDescriptor.PARAMETER_SUFFIX).split(";"));
+ field
+ .setSeparator(attr
+ .getParameterByName(IAttributeDescriptor.PARAMETER_SEPARATOR));
+ }
+ if ("".equalsIgnoreCase(field.getSeparator())) {
+ field.setResourceDescription(ResourceBoundle
+ .getString("FileCellEditor.Msg"));
+ } else {
+ field.setResourceDescription(ResourceBoundle
+ .getString("FileCellEditor.Msg1"));
+ }
+ field.setWebPath(true);
+ field.setRequired(attr.isRequired());
+ field.setToolTip(attr.getDescription());
+ return field;
+ } else if (OLDIValueType.CLASSPATH_RESOURCE.equals(type)) {
+ ClasspathResourceButtonDialogField field = new ClasspathResourceButtonDialogField();
+ field.setRequired(attr.isRequired());
+ field.setToolTip(attr.getDescription());
+ return field;
+ } else if (OLDIValueType.BOOLEAN.equalsIgnoreCase(type)) {
+ String defaultValue = attr
+ .getParameterByName(IAttributeDescriptor.PARAMETER_DEFAULT);
+ StyleComboDialogField field = new StyleComboDialogField(SWT.NONE);
+ TreeMap map = new TreeMap();
+ map.put("", "");
+ map.put(Boolean.FALSE.toString(), Boolean.FALSE.toString());
+ map.put(Boolean.TRUE.toString(), Boolean.TRUE.toString());
+ field.setEntryMap(map);
+ field.setDefaultValue(defaultValue);
+ field.setLabelText(attr.getLabelString());
+ field.setRequired(attr.isRequired());
+ field.setToolTip(attr.getDescription());
+ return field;
+ } else if (OLDIValueType.CSSSTYLE.equalsIgnoreCase(type)) {
+ String param = attr
+ .getParameterByName(IAttributeDescriptor.PARAMETER_STYLE);
+ if (!"STYLE".equalsIgnoreCase(param)) {
+ return null;
+ }
+ StyleButtonDialogField field = new StyleButtonDialogField();
+ field.setRequired(attr.isRequired());
+ field.setToolTip(attr.getDescription());
+ return field;
+ } else if (OLDIValueType.CURRENCYCODE.equalsIgnoreCase(type)) {
+ ComboDialogField field = new ComboDialogField(SWT.NONE);
+ field.setLabelText(attr.getLabelString());
+ field.setItems(CURRENCYCODES);
+ field.setRequired(attr.isRequired());
+ field.setToolTip(attr.getDescription());
+ return field;
+ }
+
+ // if there is no type or type unknonw, then we just return null. and
+ // system will
+ // create default (text cell editor).
+ return null;
+ }
+
+ private IProject getProject(Element element) {
+ if (element instanceof IDOMElement) {
+ IDOMModel model = ((IDOMElement) element).getModel();
+ IFile file = StructuredModelUtil.getFileFor(model);
+ if (file != null) {
+ return file.getProject();
+ }
+ }
+ return null;
+ }
+
+ public String[] getSupportedValueTypes() {
+ return null;
+ }
+
+ private IFile getFile(Element element) {
+ if (element instanceof IDOMElement) {
+ IDOMModel model = ((IDOMElement) element).getModel();
+ IFile file = StructuredModelUtil.getFileFor(model);
+ return file;
+ }
+ return null;
+ }
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/ResourceDialogCellEditor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/ResourceDialogCellEditor.java
index 32ad7b6..47f2864 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/ResourceDialogCellEditor.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/celleditors/ResourceDialogCellEditor.java
@@ -44,32 +44,29 @@
/**
- *
+ * Constructor
*/
public ResourceDialogCellEditor() {
super();
}
-
- /**
- * @param parent
- */
- public ResourceDialogCellEditor(Composite parent) {
+
+ /**
+ * Constructor
+ * @param parent
+ */
+ public ResourceDialogCellEditor(Composite parent) {
super(parent);
}
-
+
/**
- * @param parent
- * @param style
+ * Constructor
+ * @param parent
+ * @param style
*/
public ResourceDialogCellEditor(Composite parent, int style) {
super(parent, style);
}
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
- */
protected Object openDialogBox(Control cellEditorWindow) {
Shell shell = cellEditorWindow.getShell();
int style = "".equals(_separator) ? SWT.NONE : SWT.MULTI | SWT.H_SCROLL
@@ -149,6 +146,15 @@
* @return Returns the resourceDescription.
*/
public String getResourceDescription() {
+ if (_resourceDescription == null) {
+ if ("".equalsIgnoreCase(getSeparator())) {
+ _resourceDescription = ResourceBoundle
+ .getString("FileCellEditor.Msg");
+ } else {
+ _resourceDescription = ResourceBoundle
+ .getString("FileCellEditor.Msg1");
+ }
+ }
return _resourceDescription;
}
@@ -161,7 +167,7 @@
}
/**
- * @return Returns the suffixs.
+ * @return Returns the suffixes.
*/
public String[] getSuffixs() {
return _suffixs;
@@ -169,7 +175,7 @@
/**
* @param suffixs
- * The suffixs to set.
+ * The suffixes to set.
*/
public void setSuffixs(String[] suffixs) {
this._suffixs = suffixs;
@@ -192,14 +198,14 @@
}
/**
- * @return the separator
+ * @return separator to use for between values
*/
public String getSeparator() {
return _separator;
}
/**
- * @param separator
+ * @param separator to use for between values
*/
public void setSeparator(String separator) {
this._separator = separator;
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/AllPropertySectionDescriptor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/AllPropertySectionDescriptor.java
new file mode 100644
index 0000000..c6dcced
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/AllPropertySectionDescriptor.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.properties.internal;
+
+import org.eclipse.jst.pagedesigner.properties.AllPropertySection;
+import org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor;
+import org.eclipse.ui.views.properties.tabbed.ISection;
+
+/**
+ * SectionDescriptor for the WPE Attributes tab
+ */
+public class AllPropertySectionDescriptor extends AbstractSectionDescriptor {
+ /**
+ * Id for the WPE AllPropertySectionDescriptor
+ */
+ public static final String ID = "AllPropertySectionDescriptor";
+
+ private ISection section;
+
+ public String getId() {
+ return ID;
+ }
+
+ public ISection getSectionClass() {
+ if (section == null){
+ section = new AllPropertySection();
+ }
+ return section;
+ }
+
+ public String getTargetTab() {
+ return AttributesTabDescriptor.TAB_ID;
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/AttributesTabDescriptor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/AttributesTabDescriptor.java
new file mode 100644
index 0000000..ea13c77
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/AttributesTabDescriptor.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.properties.internal;
+
+import java.util.List;
+import java.util.Vector;
+
+import org.eclipse.ui.views.properties.tabbed.AbstractTabDescriptor;
+import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor;
+
+/**
+ * Attributes tab descriptor
+ *
+ */
+public class AttributesTabDescriptor extends AbstractTabDescriptor {
+
+ /**
+ * Attributes tab id
+ */
+ public static final String TAB_ID = "jst.pagedesigner.tabbed.properties.attributes";
+
+ private Vector<ISectionDescriptor> descriptors;
+
+ /**
+ * Constructor
+ */
+ public AttributesTabDescriptor(){
+ super();
+ descriptors = new Vector<ISectionDescriptor>(1);
+ descriptors.add(new AllPropertySectionDescriptor());
+ }
+
+ @Override
+ public List getSectionDescriptors() {
+ return descriptors;
+ }
+
+ public String getCategory() {
+ return "attributes";
+ }
+
+ public String getId() {
+ return TAB_ID;
+ }
+
+ public String getLabel() {
+ return "Attributes";
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/DefaultPropertyPageDescriptor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/DefaultPropertyPageDescriptor.java
new file mode 100644
index 0000000..227da3d
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/DefaultPropertyPageDescriptor.java
@@ -0,0 +1,117 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.properties.internal;
+
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jst.jsf.common.metadata.Entity;
+import org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField;
+import org.eclipse.jst.jsf.context.resolver.structureddocument.IStructuredDocumentContextResolverFactory;
+import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext;
+import org.eclipse.jst.jsf.metadataprocessors.MetaDataContext;
+import org.eclipse.jst.jsf.taglibprocessing.attributevalues.StringType;
+import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
+import org.eclipse.jst.pagedesigner.meta.EditorCreator;
+import org.eclipse.jst.pagedesigner.meta.IAttributeRuntimeValueType;
+import org.eclipse.jst.pagedesigner.meta.internal.CellEditorFactoryRegistry;
+import org.eclipse.jst.pagedesigner.properties.ITabbedPropertiesConstants;
+import org.eclipse.swt.widgets.Composite;
+import org.w3c.dom.Element;
+
+/**
+ * Property descriptor implementation for when meta data is available,
+ * but the meta data type is not adaptable to a {@link IPropertyPageDescriptor}.
+ *
+ * It is assumed that the value type is {@link StringType}.
+ */
+public class DefaultPropertyPageDescriptor implements IPropertyPageDescriptor {
+ private Entity _tagEntity;
+ private Entity _attrEntity;
+
+ private IStructuredDocumentContext _sdContext;
+ private MetaDataContext _mdContext;
+
+ /**
+ * Constructor
+ * @param tagEntity
+ * @param attrEntity
+ */
+ public DefaultPropertyPageDescriptor(Entity tagEntity, Entity attrEntity) {
+ _tagEntity = tagEntity;
+ _attrEntity = attrEntity;
+ }
+
+ public String getAttributeName() {
+ return _attrEntity.getId();
+ }
+
+ public String getCategory() {
+ return ITabbedPropertiesConstants.OTHER_CATEGORY;
+ }
+
+ public CellEditor getCellEditor(Composite parent) {
+ Element element = (Element)IStructuredDocumentContextResolverFactory.INSTANCE.getDOMContextResolver(getStructuredDocumentContext()).getNode();
+ return CellEditorFactoryRegistry.getInstance().createCellEditor(parent, this, element);
+ }
+
+ public String getDescription() {
+ return null;
+ }
+
+ public DialogField getDialogFieldEditor() {
+ EditorCreator creator = EditorCreator.getInstance();
+ return creator.createDialogFieldWithWrapper(getUri(),
+ getTagName(),this, null);
+ }
+
+ public String getLabel() {
+ return getAttributeName();
+ }
+
+ public String getTagName() {
+ return _tagEntity.getId();
+ }
+
+ public String getUri() {
+ return _tagEntity.getModel().getCurrentModelContext().getUri();
+ }
+
+ public String getValueType() {
+ return IAttributeRuntimeValueType.STRING;
+ }
+
+ public boolean isRequired() {
+ return false;
+ }
+
+ public MetaDataContext getMetaDataContext() {
+ return _mdContext;
+ }
+
+ public IStructuredDocumentContext getStructuredDocumentContext() {
+ return _sdContext;
+ }
+
+ public void setMetaDataContext(MetaDataContext context) {
+ _mdContext = context;
+ }
+
+ public void setStructuredDocumentContext(IStructuredDocumentContext context) {
+ _sdContext = context;
+ }
+
+ public Object getAdapter(Class adapter) {
+ return null;
+ }
+
+ public String toString() {
+ return getUri()+"/"+getTagName()+"/"+getAttributeName()+" (Default Descriptor)";
+ }
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/DesignerSectionDescriptor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/DesignerSectionDescriptor.java
deleted file mode 100644
index 1c2d730..0000000
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/DesignerSectionDescriptor.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. and others.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.pagedesigner.properties.internal;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jst.jsf.common.ui.internal.utils.StringUtil;
-import org.eclipse.jst.jsf.core.internal.tld.CMUtil;
-import org.eclipse.jst.pagedesigner.PDPlugin;
-import org.eclipse.jst.pagedesigner.properties.DesignerPropertyTool;
-import org.eclipse.jst.pagedesigner.properties.ISectionFilter;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroup;
-import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupSection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ISection;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ITypeMapper;
-import org.w3c.dom.Element;
-
-/**
- * @author mengbo
- * @version 1.5
- */
-public class DesignerSectionDescriptor implements ISectionDescriptor {
- private static final String ATT_ID = "id"; //$NON-NLS-1$
-
- private static final String ATT_TARGET_TAB = "tab"; //$NON-NLS-1$
-
- private static final String ATT_AFTER_SECTION = "afterSection"; //$NON-NLS-1$
-
- private static final String ATT_CLASS = "class"; //$NON-NLS-1$
-
- private static final String ATT_FILTER = "filter"; //$NON-NLS-1$
-
- private static final String TOP = "top"; //$NON-NLS-1$
-
- private static final String TAGFILTER = "tagFilter";
-
- private static final String CASESENSITIVE = "caseSensitive";
-
- private static final String TAGNAME = "tagName";
-
- private static final String URI = "uri";
-
- private String _id;
-
- private String _targetTab;
-
- private String _afterSection;
-
- private ISectionFilter _sectionFilter;
-
- private IConfigurationElement _configurationElement;
-
- private TagFilter[] _tagFilters;
-
- private static class TagFilter {
- private String uri;
-
- private String tag;
-
- private boolean caseSensitive = false;
- }
-
- /**
- * Constructor for the section descriptor.
- *
- * @param configurationElement
- * the configuration element for the section descriptor.
- */
- public DesignerSectionDescriptor(IConfigurationElement configurationElement) {
- _configurationElement = configurationElement;
-
- _id = getConfigurationElement().getAttribute(ATT_ID);
- _targetTab = getConfigurationElement().getAttribute(ATT_TARGET_TAB);
- _afterSection = getConfigurationElement().getAttribute(
- ATT_AFTER_SECTION);
-
- if (_id == null || _targetTab == null) {
- // the section id and tab are mandatory - log error
- handleSectionError(null);
- }
- if (getAfterSection() == null) {
- _afterSection = TOP;
- }
-
- String filterClass = getConfigurationElement().getAttribute(ATT_FILTER);
- if (filterClass != null) {
- try {
- Object obj = getConfigurationElement()
- .createExecutableExtension(ATT_FILTER);
- if (obj instanceof ISectionFilter) {
- _sectionFilter = (ISectionFilter) obj;
- }
- } catch (CoreException ex) {
- handleSectionError(ex);
- }
- }
-
- IConfigurationElement[] elements = getConfigurationElement()
- .getChildren(TAGFILTER);
- if (elements != null && elements.length > 0) {
- _tagFilters = new TagFilter[elements.length];
- for (int i = 0; i < _tagFilters.length; i++) {
- _tagFilters[i] = new TagFilter();
- _tagFilters[i].uri = elements[i].getAttribute(URI);
- _tagFilters[i].tag = elements[i].getAttribute(TAGNAME);
- _tagFilters[i].caseSensitive = Boolean.TRUE.toString()
- .equalsIgnoreCase(
- elements[i].getAttribute(CASESENSITIVE));
- }
- }
- }
-
- /**
- * Handle the section error when an issue is found loading from the
- * configuration element.
- *
- * @param _configurationElement
- * the configuration element
- * @param exception
- * an optional CoreException
- */
- private void handleSectionError(CoreException exception) {
- PDPlugin.getLogger(DesignerSectionDescriptor.class).error("error",
- exception);
- exception.printStackTrace();
- // String pluginId = PDPlugin.getPluginId();
- // String message = MessageFormat.format(SECTION_ERROR, new Object[] {
- // pluginId});
- // IStatus status = new Status(IStatus.ERROR, pluginId,
- // CommonUIPropertiesStatusCodes.GENERAL_UI_FAILURE, message,
- // exception);
- // CommonUIPropertiesPlugin.getPlugin().getLog().log(status);
- }
-
- /**
- * see org.eclipse.wst.common.ui.properties.ITabbedPropertySectionDescriptor#getId()
- */
- public String getId() {
- return _id;
- }
-
- /**
- * see org.eclipse.wst.common.ui.properties.ITabbedPropertySectionDescriptor#getTargetTab()
- */
- public String getTargetTab() {
- return _targetTab;
- }
-
- /**
- * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart,
- * org.eclipse.jface.viewers.ISelection)
- */
- public boolean appliesTo(IWorkbenchPart part, ISelection selection) {
- Element node = DesignerPropertyTool.getElement(part, selection);
- if (node == null) {
- return false;
- }
- if (_tagFilters != null) {
- String uri = CMUtil.getElementNamespaceURI(node);
- String tag = node.getLocalName();
- for (int i = 0; i < _tagFilters.length; i++) {
- if (!match(uri, tag, _tagFilters[i])) {
- return false;
- }
- }
- }
- if (_sectionFilter != null) {
- if (!_sectionFilter.appliesTo(node)) {
- return false;
- }
- }
- return true;
- }
-
- /**
- * @param uri2
- * @param tag
- * @param filter
- * @return
- */
- private boolean match(String uri, String tag, TagFilter filter) {
- if (!StringUtil.isSameString(uri, filter.uri)) {
- return false;
- }
- if (uri != null && filter.uri != null && !uri.equals(filter.uri)) {
- return false;
- }
- if (filter.caseSensitive) {
- return tag.equals(filter.tag);
- }
- return tag.equalsIgnoreCase(filter.tag);
- }
-
- /**
- * see org.eclipse.wst.common.ui.properties.ITabbedPropertySectionDescriptor#getAfterSection()
- */
- public String getAfterSection() {
- return _afterSection;
- }
-
- /**
- * Creates an instance of a section described by this descriptor
- *
- * see org.eclipse.wst.common.ui.properties.ITabbedPropertySectionDescriptor#getSectionClass()
- */
- public ISection getSectionClass() {
- ISection section = null;
- try {
- Object secOrGroup = getConfigurationElement()
- .createExecutableExtension(ATT_CLASS);
- if (secOrGroup instanceof ISection) {
- section = (ISection) secOrGroup;
- } else if (secOrGroup instanceof AttributeGroup) {
- section = new AttributeGroupSection((AttributeGroup) secOrGroup);
- }
- } catch (CoreException exception) {
- handleSectionError(exception);
- }
-
- return section;
- }
-
- /**
- * Gets the input types that are valid for this section.
- *
- * see org.eclipse.wst.common.ui.properties.ITabbedPropertySectionDescriptor#getInputTypes()
- */
- public List getInputTypes() {
- return Collections.EMPTY_LIST;
- }
-
- /**
- * @see java.lang.Object#toString()
- */
- public String toString() {
- return getId();
- }
-
- /**
- * @return Returns the configurationElement.
- */
- private IConfigurationElement getConfigurationElement() {
- return _configurationElement;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getFilter()
- */
- public ITypeMapper getFilter() {
- return null;
- }
-
- public int getEnablesFor() {
- return 1;
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/DesignerTabPropertySectionDescriptorProvider.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/DesignerTabPropertySectionDescriptorProvider.java
deleted file mode 100644
index dbbec78..0000000
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/DesignerTabPropertySectionDescriptorProvider.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Sybase, Inc. and others.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Sybase, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.pagedesigner.properties.internal;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jst.pagedesigner.PDPlugin;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor;
-import org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptorProvider;
-
-/**
- * The DesignerTagPropertySectionDescriptorProvider will provide the section
- * descriptiors. Now section descriptor come from two sources.
- *
- * One is reading from the "org.eclipse.jst.pagedesigner.propertyContributor"
- * extension point. This extension point will contribute additional section
- * providers, which provides a set of sections.
- *
- * One is reading from the "org.eclipse.jst.pagedesigner.propertySections"
- * extension point. This extension provide a single section.
- *
- * @author mengbo
- * @version 1.5
- */
-public class DesignerTabPropertySectionDescriptorProvider implements
- ISectionDescriptorProvider {
- private static final String EXTPT_SECTIONS = "propertySections"; //$NON-NLS-1$
-
- private static final String ELEMENT_SECTION = "propertySection"; //$NON-NLS-1$
-
- private static final String EXTPT_SECTIONDESCRIPTORPROVIDER = "propertyContributor";
-
- private static final String ELEMENT_PROPERTYCONTRIBUTOR = "propertyContributor";
-
- private static final String ATTR_SECTIONDESCRIPTORPROVIDER = "sectionDescriptorProvider";
-
- ISectionDescriptor[] _descriptors = null;
-
- /**
- *
- */
- public DesignerTabPropertySectionDescriptorProvider() {
- super();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptorProvider#getSectionDescriptors()
- */
- public ISectionDescriptor[] getSectionDescriptors() {
- if (_descriptors == null) {
- List result = new ArrayList();
- List contributedSections = readSectionDescriptors();
- result.addAll(contributedSections);
-
- List providers = readAdditionalSectionDescriptorProviders();
- for (int i = 0, size = providers.size(); i < size; i++) {
- try {
- ISectionDescriptorProvider provider = (ISectionDescriptorProvider) providers
- .get(i);
- ISectionDescriptor[] sections = provider
- .getSectionDescriptors();
- if (sections != null) {
- result.addAll(Arrays.asList(sections));
- }
- } catch (Exception ex) {
- // ignore
- ex.printStackTrace();
- }
- }
- _descriptors = new ISectionDescriptor[result.size()];
- result.toArray(_descriptors);
- }
- return _descriptors;
- }
-
- /**
- * @return the providers
- */
- protected List readAdditionalSectionDescriptorProviders() {
- List result = new ArrayList();
- IConfigurationElement[] extensions = getConfigurationElements(EXTPT_SECTIONDESCRIPTORPROVIDER);
- for (int i = 0; i < extensions.length; i++) {
- IConfigurationElement extension = extensions[i];
- if (ELEMENT_PROPERTYCONTRIBUTOR.equals(extension.getName())) {
- IConfigurationElement contributor = extension;
- try {
- Object obj = contributor
- .createExecutableExtension(ATTR_SECTIONDESCRIPTORPROVIDER);
- if (obj instanceof ISectionDescriptorProvider) {
- result.add(obj);
- }
- } catch (CoreException ex) {
- ex.printStackTrace();
- }
- }
- }
- return result;
- }
-
- /**
- * @return the descriptors
- */
- protected List readSectionDescriptors() {
- List result = new ArrayList();
- IConfigurationElement[] extensions = getConfigurationElements(EXTPT_SECTIONS);
- for (int i = 0; i < extensions.length; i++) {
- IConfigurationElement extension = extensions[i];
- IConfigurationElement[] sections = extension
- .getChildren(ELEMENT_SECTION);
- for (int j = 0; j < sections.length; j++) {
- IConfigurationElement section = sections[j];
- ISectionDescriptor descriptor = new DesignerSectionDescriptor(
- section);
- result.add(descriptor);
- }
- }
- return result;
- }
-
- /**
- * @param extensionPointId
- * @return the configuration element
- */
- public static IConfigurationElement[] getConfigurationElements(
- String extensionPointId) {
- IExtensionPoint extensionPoint = Platform.getExtensionRegistry()
- .getExtensionPoint(PDPlugin.getPluginId(), extensionPointId);
-
- if (extensionPoint == null) {
- return null;
- }
- return extensionPoint.getConfigurationElements();
- }
-}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/MDQuickEditTabSectionDescriptor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/MDQuickEditTabSectionDescriptor.java
new file mode 100644
index 0000000..c4fa9b2
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/MDQuickEditTabSectionDescriptor.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.properties.internal;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor;
+import org.eclipse.ui.views.properties.tabbed.ISection;
+
+/**
+ * Quick Edit section descriptor that uses the quickEditSection trait meta data for the tag entity of the selection
+ * to determine the sections to display
+ *
+ */
+public class MDQuickEditTabSectionDescriptor extends AbstractSectionDescriptor {
+
+ /**
+ * Default constructor
+ */
+ public MDQuickEditTabSectionDescriptor() {
+ super();
+ }
+
+ @Override
+ public boolean appliesTo(IWorkbenchPart part, ISelection selection) {
+ return true;// we will always display tab, but will show text that no quick edit properties are available when they aren't
+ }
+
+ public ISection getSectionClass() {
+ return new QuickEditTabSection();
+ }
+
+ public String getTargetTab() {
+ return QuickEditTabDescriptor.TAB_ID;
+ }
+
+ public String getId() {
+ return "mdQuickEditTabSections";
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/NullQuickEditTabGroupDescriptor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/NullQuickEditTabGroupDescriptor.java
new file mode 100644
index 0000000..893b6ab
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/NullQuickEditTabGroupDescriptor.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.properties.internal;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.ui.views.properties.tabbed.ISection;
+
+/**
+ * QuickEdit Tab section when quick edit section info is not available.
+ *
+ * Ideally we should not be displaying the tab in the absence of MD, but due to current
+ * issues with the tabbed-properties framework, it is easier to simply display a "null"
+ * section.
+ *
+ */
+public class NullQuickEditTabGroupDescriptor extends
+ QuickEditTabSectionsDescriptor {
+
+ private List<ISection> nullQuickEditSection;
+
+ /**
+ * Constructor
+ */
+ public NullQuickEditTabGroupDescriptor() {
+ super();
+ }
+
+ @Override
+ public List<ISection> getSections() {
+ return nullQuickEditSection;
+ }
+
+ @Override
+ public void calculateSections() {
+ nullQuickEditSection = new ArrayList<ISection>(1);
+ nullQuickEditSection.add(new NullQuickEditTabSection());
+ }
+
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/NullQuickEditTabSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/NullQuickEditTabSection.java
new file mode 100644
index 0000000..11712bf
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/NullQuickEditTabSection.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.properties.internal;
+
+import org.eclipse.jst.pagedesigner.PDPlugin;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
+
+/**
+ * Section that displays text that no quick edit properties are available for the input
+ */
+public class NullQuickEditTabSection extends AbstractPropertySection {
+
+ @Override
+ public void createControls(Composite parent,
+ TabbedPropertySheetPage tabbedPropertySheetPage) {
+ super.createControls(parent, tabbedPropertySheetPage);
+ TabbedPropertySheetWidgetFactory factory = tabbedPropertySheetPage.getWidgetFactory();
+
+ Composite cont = factory.createComposite(parent, SWT.NO_FOCUS);
+ GridLayout layout = new GridLayout(1, false);
+ cont.setLayout(layout);
+
+ CLabel lbl =
+ factory.createCLabel(cont, PDPlugin.getResourceString("QuickEditTab.no_quick_edit_md"));//$NON-NLS-1$
+ lbl.setLayoutData(new GridData());
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditAttributeGroup.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditAttributeGroup.java
new file mode 100644
index 0000000..88bd899
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditAttributeGroup.java
@@ -0,0 +1,417 @@
+/*******************************************************************************
+ * Copyright (c) 2006 Sybase, Inc. and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.properties.internal;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jst.jsf.common.metadata.Entity;
+import org.eclipse.jst.jsf.common.metadata.query.TaglibDomainMetaDataQueryHelper;
+import org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField;
+import org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogFieldGroup;
+import org.eclipse.jst.jsf.common.ui.internal.dialogfield.IDialogFieldApplyListener;
+import org.eclipse.jst.jsf.common.ui.internal.dialogfield.IDialogFieldChangeListener;
+import org.eclipse.jst.jsf.common.ui.internal.dialogfield.ISupportTextValue;
+import org.eclipse.jst.jsf.context.resolver.structureddocument.IStructuredDocumentContextResolverFactory;
+import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext;
+import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContextFactory;
+import org.eclipse.jst.jsf.metadataprocessors.MetaDataEnabledProcessingFactory;
+import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.IElementContextable;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+
+/**
+ * @author mengbo
+ * @version 1.5
+ *
+ * TODO: cleanup up constructors
+ */
+public class QuickEditAttributeGroup extends DialogFieldGroup {
+ private static final Object KEY_ATTR = "KEY_ATTR"; //$NON-NLS-1$
+
+// private String _helpContextId;
+
+ private List<DialogField> _dialogFields = null; //consider using Map
+ private IDOMElement _ownerElement;
+ private Entity _tagEntity;
+ private List<String> _attrNames;
+ private List<IPropertyPageDescriptor> _attrPDs;
+
+ private String _uri;
+ private String _tagName;
+
+ /**
+ * Constructor
+ * @param tagEntity - may not be null
+ * @param attrNames - may not be null. Attribute names must be valid for the tag, and have attribute-value-runtime-type trait info
+ */
+ public QuickEditAttributeGroup(Entity tagEntity, List<String> attrNames) {
+ _tagEntity = tagEntity;
+ _attrNames = attrNames;
+ }
+
+ /**
+ * Constructor where tagEntity is determined later or set later
+ * @param uri - may be null
+ * @param tagName - may be null
+ * @param attributeNames - may not be null. Attribute names must be valid for the tag, and have attribute-value-runtime-type trait info
+ */
+ public QuickEditAttributeGroup(String uri,
+ String tagName, String[] attributeNames) {
+ _uri = uri;
+ _tagName = tagName;
+ _attrNames = Arrays.asList(attributeNames);
+ }
+
+ private List<IPropertyPageDescriptor> prepareDescriptors(Entity tagEntity,
+ List<String> names) {
+
+ List pds = new ArrayList();
+ for (String attrName : names) {
+ IPropertyPageDescriptor pd = getPD(tagEntity, attrName);
+ if (pd != null)
+ pds.add(pd);
+ }
+ return pds;
+ }
+
+ private IPropertyPageDescriptor getPD(Entity tagEntity, String attrName) {
+ IPropertyPageDescriptor pd = null;
+ Entity attrEntity = TaglibDomainMetaDataQueryHelper.getEntity(tagEntity, attrName);
+ if (attrEntity != null){
+ List pds = MetaDataEnabledProcessingFactory.getInstance().getAttributeValueRuntimeTypeFeatureProcessors(
+ IPropertyPageDescriptor.class, null/* can we get this null info? do we need/want it? */, attrEntity);
+ if (pds != null && !pds.isEmpty())
+ pd = (IPropertyPageDescriptor)pds.get(0);
+ else
+ pd = new DefaultPropertyPageDescriptor(tagEntity, attrEntity);
+ }
+ return pd;
+ }
+
+// /**
+// * Constructor
+// */
+// public QuickEditAttributeGroup() {
+// //
+// }
+
+
+ /**
+ * @return tag entity for this attribute group
+ */
+ protected Entity getTagEntity() {
+ if (_tagEntity == null) {
+ if (_ownerElement != null){
+ IStructuredDocumentContext context = IStructuredDocumentContextFactory.INSTANCE.getContext(_ownerElement.getStructuredDocument(), 0);
+ if (context != null){
+ String uri = _uri != null ? _uri : IStructuredDocumentContextResolverFactory.INSTANCE.getDOMContextResolver(context).getNode().getBaseURI();
+ String tagName = _tagName != null ? _tagName : IStructuredDocumentContextResolverFactory.INSTANCE.getDOMContextResolver(context).getNode().getNodeName();
+ if (uri != null){
+ IProject project = IStructuredDocumentContextResolverFactory.INSTANCE.getWorkspaceContextResolver(context).getProject();
+ _tagEntity = TaglibDomainMetaDataQueryHelper.getEntity(TaglibDomainMetaDataQueryHelper.createMetaDataModelContext(project, uri), tagName);
+ }
+ }
+ }
+ }
+ return _tagEntity;
+ }
+ /**
+ * @return tag name
+ */
+ public String getTagName() {
+ if (getTagEntity() == null)
+ return _tagName;
+ return getTagEntity().getId();
+ }
+
+ /**
+ * @return tag URI
+ */
+ public String getURI() {
+ if (getTagEntity() == null)
+ return _uri;
+ return getTagEntity().getModel().getCurrentModelContext().getUri();
+ }
+
+
+ /**
+ * Empty implementation. Subclasses should override to override default dialogField creation
+ * @param ppd
+ * @return DialogField
+ */
+ protected DialogField createDialogField(IPropertyPageDescriptor ppd) {
+ return null;
+ }
+
+// protected DialogField createDialogField(String uri, String tag,
+// String attr) {
+//
+// return null;
+// }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogFieldGroup#initialize()
+ */
+ public void initialize() {
+ if (_dialogFields == null) {
+ _dialogFields = new ArrayList();
+
+ for (IPropertyPageDescriptor pd : getAttributePDs()) {
+ DialogField field;
+ field = createDialogField(pd);
+
+ if (field == null) {
+ field = pd.getDialogFieldEditor();
+ }
+
+ field.putAttachedData(KEY_ATTR, pd);//descriptors[i]);
+
+ IDialogFieldApplyListener applyListener = getDialogFieldApplyListener(pd);
+// getURI(), getTagName(), pd.getAttributeName());//descriptors[i]);
+ if (applyListener == null) {
+ applyListener = getDefaultApplyListener();
+ }
+ field.setDialogFieldApplyListener(applyListener);
+
+ IDialogFieldChangeListener changeListener = getDialogFieldChangeListener(pd);
+// getURI(), getTagName(), pd.getAttributeName());//descriptors[i]);
+ if (changeListener == null) {
+ changeListener = getDefaultChangeListener();
+ }
+ field.setDialogFieldChangeListener(changeListener);
+ _dialogFields.add(field);
+ }
+ }
+ }
+
+ private List<IPropertyPageDescriptor> getAttributePDs() {
+ if (_attrPDs == null){
+ _attrPDs = prepareDescriptors(getTagEntity(), _attrNames);
+ }
+ return _attrPDs;
+ }
+
+ /**
+ * Child class can override the method to provide listener implementation
+ *
+ * @param ppd
+ * @return IDialogFieldApplyListener
+ */
+ protected IDialogFieldApplyListener getDialogFieldApplyListener(IPropertyPageDescriptor ppd) {
+ return null;
+ }
+
+ /**
+ * Child class can override the method to provide listener implementation
+ *
+ * @param ppd
+ * @return IDialogFieldChangeListener
+ */
+ protected IDialogFieldChangeListener getDialogFieldChangeListener(IPropertyPageDescriptor ppd){
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogFieldGroup#refreshData()
+ */
+ public void refreshData() {
+ if (_ownerElement == null) {
+ return;
+ }
+ initialize();
+ for (int i = 0, size = _dialogFields.size(); i < size; i++) {
+ DialogField field = _dialogFields.get(i);
+
+ ISupportTextValue textValue = (ISupportTextValue) field;
+ IPropertyPageDescriptor attr = (IPropertyPageDescriptor) field
+ .getAttachedData(KEY_ATTR);
+ String attrName = attr.getAttributeName();
+ String attrValue = _ownerElement.getAttribute(attrName);
+ textValue.setTextWithoutUpdate(attrValue);
+ }
+ }
+
+ /**
+ * @return IDOMElement
+ */
+ public IDOMElement getElement() {
+ return _ownerElement;
+ }
+
+ /**
+ * Sets the context in each of the dialogFields in the Group
+ * @param context
+ * @param owner
+ */
+ public void setElementContext(IDOMNode context, IDOMElement owner) {
+ this._ownerElement = owner;
+ initialize();
+ if (context != null) {
+ for (int i = 0, size = _dialogFields.size(); i < size; i++) {
+ DialogField field = _dialogFields.get(i);
+ if (field instanceof IElementContextable) {
+ ((IElementContextable) field).setElementContext(context,
+ owner);
+ }
+ }
+ }
+ refreshData();
+ }
+
+ public void layoutDialogFields(FormToolkit toolkit, Composite parent) {
+ Composite top;
+ if (toolkit == null) {
+ top = new Composite(parent, SWT.NONE);
+ } else {
+ top = toolkit.createComposite(parent, SWT.NONE);
+ }
+// FillLayout fillLayout = new FillLayout(SWT.VERTICAL);
+// parent.setLayout(fillLayout);
+
+// if (this._helpContextId != null && this._helpContextId.length() > 0) {
+// PlatformUI.getWorkbench().getHelpSystem().setHelp(top,
+// _helpContextId);
+// }
+
+ GridLayout layout = new GridLayout();
+ int numColumns = getNumColumns();
+ layout.numColumns = numColumns;
+ top.setLayout(layout);
+// top.setLayoutData(new RowData());
+
+ initialize();
+ for (int i = 0, size = _dialogFields.size(); i < size; i++) {
+ DialogField field = _dialogFields.get(i);
+ field.doFillIntoGrid(toolkit, top, numColumns);
+ }
+
+ DialogField maxColumnField = null;
+ int maxColumn = 0;
+ for (int i = 0, size = _dialogFields.size(); i < size; i++) {
+ DialogField field = _dialogFields.get(i);
+ int c = field.getNumberOfControls();
+ if (c > maxColumn) {
+ maxColumn = c;
+ maxColumnField = field;
+ }
+ }
+ if (maxColumnField != null) {
+ maxColumnField.handleGrabHorizontal();
+ }
+ }
+
+ /**
+ * @return number of columns in for composite grid layout
+ */
+ public int getNumColumns() {
+ int columns = 1;
+ initialize();
+ for (int i = 0, size = _dialogFields.size(); i < size; i++) {
+ DialogField field = _dialogFields.get(i);
+ columns = Math.max(columns, field.getNumberOfControls());
+ }
+ return columns;
+ }
+
+ @Override
+ public IStatus[] validateDialogFields() {
+ return null;
+ }
+
+ /**
+ * @return DialogField[]
+ */
+ public DialogField[] getDialogFields() {
+ initialize();
+ DialogField[] ret = new DialogField[_dialogFields.size()];
+ _dialogFields.toArray(ret);
+ return ret;
+ }
+
+ /**
+ * get the dialogfield for the corresponding attribute.
+ *
+ * @param attrName
+ * case sensitive attribute name.
+ * @return null if fail to find.
+ */
+ public DialogField getDialogField(String attrName) {
+ initialize();
+ for (int i = 0, size = _dialogFields.size(); i < size; i++) {
+ DialogField field = _dialogFields.get(i);
+ IPropertyPageDescriptor attr = this.getPropertyDescriptor(field);
+ if (attr != null && attr.getAttributeName().equals(attrName)) {
+ return field;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @param field
+ * @return IPropertyPageDescriptor
+ */
+ public IPropertyPageDescriptor getPropertyDescriptor(DialogField field) {
+ Object obj = field.getAttachedData(KEY_ATTR);
+ if (obj instanceof IPropertyPageDescriptor) {
+ return (IPropertyPageDescriptor) obj;
+ }
+ return null;
+ }
+
+ @Override
+ public void reset(){
+ if (_dialogFields != null){
+ for (DialogField field : _dialogFields){
+ field.setDialogFieldApplyListener(null);
+ field.setDialogFieldChangeListener(null);
+ }
+ _dialogFields = null;
+ }
+ }
+
+ /**
+ * Set the tag entity
+ * @param tagEntity
+ */
+ /*package*/ void setTagEntity(Entity tagEntity) {
+ _tagEntity = tagEntity;
+ }
+
+ public String toString(){
+ StringBuffer buf = new StringBuffer("QuickEditAttributeGroup: uri=");
+ buf.append("\r\r").append(getURI()).append("\r\rtag=").append(getTagName());
+ buf.append("\r\rAttrs: ");
+ for (int i=0;i<_attrNames.size();i++) {
+ String attr = _attrNames.get(i);
+ buf.append(attr);
+ if (i<_attrNames.size())
+ buf.append(", ");
+ }
+ return buf.toString();
+ }
+
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/attrgroup/AttributeGroupSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditAttributeGroupSection.java
similarity index 66%
copy from jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/attrgroup/AttributeGroupSection.java
copy to jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditAttributeGroupSection.java
index 2d93aa4..b647635 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/attrgroup/AttributeGroupSection.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditAttributeGroupSection.java
@@ -9,19 +9,23 @@
* Contributors:
* Sybase, Inc. - initial API and implementation
*******************************************************************************/
-package org.eclipse.jst.pagedesigner.properties.attrgroup;
+package org.eclipse.jst.pagedesigner.properties.internal;
+
+import java.util.List;
import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jst.jsf.common.metadata.Entity;
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField;
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.IDialogFieldApplyListener;
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.ISupportTextValue;
import org.eclipse.jst.pagedesigner.commands.single.ChangeAttributeCommand;
-import org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor;
+import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
import org.eclipse.jst.pagedesigner.properties.BaseCustomSection;
+import org.eclipse.jst.pagedesigner.properties.attrgroup.AttributeGroupMessages;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage;
-import org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
/**
@@ -30,7 +34,7 @@
* @author mengbo
* @version 1.5
*/
-public class AttributeGroupSection extends BaseCustomSection {
+public class QuickEditAttributeGroupSection extends BaseCustomSection {
private static final Object KEY_ATTR = "KEY_ATTR"; //$NON-NLS-1$
private IDialogFieldApplyListener _fieldApplyListener = new IDialogFieldApplyListener() {
@@ -41,62 +45,46 @@
*/
public void dialogFieldApplied(DialogField field) {
Object attr = field.getAttachedData(KEY_ATTR);
- if (attr instanceof IAttributeDescriptor && _element != null) {
+ if (attr instanceof IPropertyPageDescriptor && _element != null) {
ISupportTextValue textValue = (ISupportTextValue) field;
ChangeAttributeCommand c = new ChangeAttributeCommand(
AttributeGroupMessages
- .getString("AttributeGroupSection.changeAttribute"), _element, ((IAttributeDescriptor) attr).getAttributeName(), textValue.getText()); //$NON-NLS-1$
+ .getString("AttributeGroupSection.changeAttribute"), _element, ((IPropertyPageDescriptor) attr).getAttributeName(), textValue.getText()); //$NON-NLS-1$
c.execute();
}
}
};
- /**
- * the attribute group
- */
- protected AttributeGroup _group;
+ private QuickEditAttributeGroup _group;
/**
- * create the section with a default AttributeGroup. In default
+ * Constructor. Create the section with a default AttributeGroup. In default
* AttributeGroup, there is no relationship between fields.
*
- * @param uri
- * @param tagName
+ * @param tagEntity
* @param attrNames
*/
- public AttributeGroupSection(String uri, String tagName, String[] attrNames) {
- this(new AttributeGroup(uri, tagName, attrNames));
+ public QuickEditAttributeGroupSection(Entity tagEntity, List<String> attrNames) {
+ this(new QuickEditAttributeGroup(tagEntity, attrNames));
}
/**
- * In case the group is not a default group (e.g. you may add some
+ * Constructor. In case the group is not a default group (e.g. you may add some
* customized relationship between the fields).
*
* @param group
*/
- public AttributeGroupSection(AttributeGroup group) {
+ public QuickEditAttributeGroupSection(QuickEditAttributeGroup group) {
_group = group;
_group.setDefaultApplyListener(_fieldApplyListener);
- _group.initialize();
+// _group.initialize();
}
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.wst.common.ui.properties.internal.provisional.AbstractPropertySection#setInput(org.eclipse.ui.IWorkbenchPart,
- * org.eclipse.jface.viewers.ISelection)
- */
public void setInput(IWorkbenchPart part, ISelection selection) {
super.setInput(part, selection);
_group.setElementContext(_element, _element);
}
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jst.pagedesigner.integration.properties.section.AbstractCustomSection#createControls(org.eclipse.swt.widgets.Composite,
- * org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetPage)
- */
public void createControls(Composite parent,
TabbedPropertySheetPage aTabbedPropertySheetPage) {
super.createControls(parent, aTabbedPropertySheetPage);
@@ -111,4 +99,10 @@
_group.refreshData();
}
}
+
+ @Override
+ public void dispose() {
+ super.dispose();
+ _group.reset();
+ }
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditTabDescriptor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditTabDescriptor.java
new file mode 100644
index 0000000..d74b006
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditTabDescriptor.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.properties.internal;
+
+import org.eclipse.ui.views.properties.tabbed.AbstractTabDescriptor;
+
+/**
+ * Quick Edit Tab Descriptor
+ */
+public class QuickEditTabDescriptor extends AbstractTabDescriptor {
+
+ /**
+ * Quick Edit tab id
+ */
+ public static final String TAB_ID = "jst.pagedesigner.tabbed.properties.quickedit";
+
+ /**
+ * Constructor
+ */
+ public QuickEditTabDescriptor(){
+ super();
+ getSectionDescriptors().add(new MDQuickEditTabSectionDescriptor());
+ }
+
+ public String getCategory() {
+ return "quickedit";
+ }
+
+ public String getId() {
+ return TAB_ID;
+ }
+
+ public String getLabel() {
+ return "Quick Edit";
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditTabManager.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditTabManager.java
new file mode 100644
index 0000000..594bd66
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditTabManager.java
@@ -0,0 +1,207 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.properties.internal;
+
+import javax.xml.namespace.QName;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jst.jsf.common.metadata.Entity;
+import org.eclipse.jst.jsf.common.metadata.Trait;
+import org.eclipse.jst.jsf.common.metadata.query.ITaglibDomainMetaDataModelContext;
+import org.eclipse.jst.jsf.common.metadata.query.TaglibDomainMetaDataQueryHelper;
+import org.eclipse.jst.jsf.context.resolver.structureddocument.IStructuredDocumentContextResolverFactory;
+import org.eclipse.jst.jsf.context.resolver.structureddocument.ITaglibContextResolver;
+import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext;
+import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContextFactory;
+import org.eclipse.jst.pagedesigner.editors.HTMLEditor;
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSections;
+import org.eclipse.jst.pagedesigner.properties.DesignerPropertyTool;
+import org.eclipse.jst.pagedesigner.properties.WPETabbedPropertySheetPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.part.FileEditorInput;
+import org.w3c.dom.Element;
+
+/**
+ * One-to-one with {@link WPETabbedPropertySheetPage} that manages the current sections for the current selection.
+ * <br>
+ * The QuickEditTabManager has a shared instance of a {@link QuickEditTabSectionsManager} for the project.
+ * <br>
+ * When a WPETabbedPropertySheetPage is created, it must acquire a QuickEditTabManager using the static acquireInstance method,
+ * and then release the instance when it is disposed. This ensures that the QuickEditTabSectionsManager shared instance (per project) is released appropriately.
+ *
+ * selectionChanged must be called prior to calling createControls on the sections for this tab group call
+ */
+public class QuickEditTabManager {
+ private QuickEditTabSectionsManager _groupsManager;
+ private QuickEditTabSections _quickEditTabSections;
+ private Entity _tagEntity;
+ private QName _lastTagID;
+ private QuickEditTabSectionsDescriptor _lastQuickEditTabGroup;
+ private QuickEditTabSectionsDescriptor _nullQuickEditTabGroup;
+ private Element _lastElement;
+
+ private QuickEditTabSectionsManager getRegistry() {
+ return _groupsManager;
+ }
+
+ /**
+ * Must only be called once per tabbed property sheet as ref count is kept.
+ * Callers must call releaseInstance when the page is disposed
+ * @param page
+ * @return instance for this property sheet
+ */
+ public static synchronized QuickEditTabManager acquireInstance(WPETabbedPropertySheetPage page) {
+ IProject project = getProject(page);
+ QuickEditTabManager instance = new QuickEditTabManager();
+ instance._groupsManager = QuickEditTabSectionsManager.acquireInstance(project);
+ return instance;
+ }
+
+ /**
+ * Releases this instance, but does not dispose. Ensures that the {@link QuickEditTabSectionsManager} is released.
+ */
+ public void releaseInstance() {
+ this._groupsManager.releaseInstance();
+ }
+
+ /**
+ * Private constructor
+ */
+ private QuickEditTabManager(){
+ //
+ }
+
+ private static IProject getProject(WPETabbedPropertySheetPage page) {
+ IProject proj = null;
+ IDocument doc = ((HTMLEditor)page.getEditor()).getDocument();
+ IStructuredDocumentContext context = IStructuredDocumentContextFactory.INSTANCE.getContext(doc, 0);
+ if (context != null){
+ proj = IStructuredDocumentContextResolverFactory.INSTANCE.getWorkspaceContextResolver(context).getProject();
+ }
+ return proj;
+
+ }
+ /**
+ * Must be called so that the sections for the input can be calculated.
+ *
+ * @param part
+ * @param selection
+ * @return true if current selection is different than during the last call
+ */
+ public boolean selectionChanged(IWorkbenchPart part, ISelection selection) {
+ boolean hasChanged = false;
+ QuickEditTabSections qets = getQuickTabSectionsMetaData(part, selection);
+ if (qets == null) {//use null quick edit tab
+ hasChanged = (_quickEditTabSections != null);
+ _quickEditTabSections = qets;
+ _lastQuickEditTabGroup = getNullQuickEditTab();
+ _lastTagID = null;
+ }
+ else {
+ QName tagId = getTagId();
+ if (_lastTagID == null || !_lastTagID.equals(tagId)){
+ _quickEditTabSections = qets;
+ QuickEditTabSectionsDescriptor group = getRegistry().getQuickEditTabSectionsFor(tagId);
+ if (group == null){
+ group = createQuickEditTabGroup(tagId, _quickEditTabSections);
+ if (group != null){
+ group.calculateSections();
+ getRegistry().addQuickEditTabGroupDescriptor(group);
+ }
+ }
+ _lastQuickEditTabGroup = group;
+ _lastTagID = tagId;
+ }
+ }
+
+ return hasChanged;
+ }
+
+ /**
+ * @return current QuickEditTabSectionsDescriptor
+ */
+ public QuickEditTabSectionsDescriptor getCurrentTabGroupDescriptor() {
+ return _lastQuickEditTabGroup;
+ }
+
+ private QuickEditTabSections getQuickTabSectionsMetaData(IWorkbenchPart part,
+ ISelection selection) {
+
+ Element node = DesignerPropertyTool.getElement(part, selection);
+ if (node == null) {
+ return null;
+ }
+ if (_lastElement != node){
+ _lastElement = node;
+ _quickEditTabSections = null;
+ _tagEntity = getTagEntity(part, selection, node);
+ if (_tagEntity != null) {
+ Trait pds = TaglibDomainMetaDataQueryHelper.getTrait(_tagEntity, QuickEditTabSections.TRAIT_ID);
+ if (pds != null){
+ _quickEditTabSections = (QuickEditTabSections)pds.getValue();
+ }
+ }
+ }
+ return _quickEditTabSections;
+ }
+
+ private QuickEditTabSectionsDescriptor createQuickEditTabGroup(QName tagId,
+ QuickEditTabSections tabSections) {
+ return new QuickEditTabSectionsDescriptor(_tagEntity, tagId, tabSections);
+ }
+
+ private QName getTagId() {
+ return TaglibDomainMetaDataQueryHelper.getQNameForTagEntity(_tagEntity);
+ }
+
+ /**
+ * Dispose
+ */
+ public void dispose() {
+ _lastQuickEditTabGroup= null;
+ _lastElement = null;
+ _lastTagID = null;
+ _nullQuickEditTabGroup = null;
+ _quickEditTabSections = null;
+ _groupsManager = null;
+ }
+
+ private Entity getTagEntity(IWorkbenchPart part, ISelection selection, Element node){
+ HTMLEditor ed = null;
+ if (part instanceof HTMLEditor)
+ ed = (HTMLEditor)part;
+ if (ed == null)
+ return null;
+
+ FileEditorInput input = (FileEditorInput)ed.getEditorInput();
+ IStructuredDocumentContext context = IStructuredDocumentContextFactory.INSTANCE.getContext(ed.getDocument(), node);
+ if (context != null){
+ ITaglibContextResolver resolver = IStructuredDocumentContextResolverFactory.INSTANCE.getTaglibContextResolver(context);
+ if (resolver != null){
+ ITaglibDomainMetaDataModelContext mdContext = TaglibDomainMetaDataQueryHelper.createMetaDataModelContext(input.getFile().getProject(),resolver.getTagURIForNodeName(node));
+ return TaglibDomainMetaDataQueryHelper.getEntity(mdContext, node.getLocalName());
+ }
+ }
+ return null;
+ }
+
+ private QuickEditTabSectionsDescriptor getNullQuickEditTab() {
+ if (_nullQuickEditTabGroup == null) {
+ _nullQuickEditTabGroup = new NullQuickEditTabGroupDescriptor();
+ _nullQuickEditTabGroup.calculateSections();
+ }
+ return _nullQuickEditTabGroup;
+ }
+
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditTabSection.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditTabSection.java
new file mode 100644
index 0000000..172626c
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditTabSection.java
@@ -0,0 +1,209 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.properties.internal;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jst.pagedesigner.properties.WPETabbedPropertySheetPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Layout;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
+import org.eclipse.ui.views.properties.tabbed.ISection;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+
+/**
+ * Using the tag entity's QuickEditTabSections meta-data, this section reacts to changes in selection,
+ * and will dynamically create a QuickEditTabGroup. The QuickEditTabGroup is cached and reused.
+ * <br><br>
+ * This section delegates construction to the sections discovered thru meta data.
+ * Because this section is not disposed of until the tab is disposed, this section will enforce the expected section lifecycle
+ * on the sections loaded from meta data. This occurs during setInput. But will pass on all section lifecycle events as
+ * this section receives them.
+ * <br><br>
+ * The lifecycle that this section enforces on it's child sections in the setInput call on this section are (in order):
+ * <li>createControls
+ * <li>setInput
+ * <li>aboutToBeShown
+ * <li>refresh
+ *
+ * When tab section lifecycle events occur to this section, they are passed on to all child sections also.
+ *
+ */
+public class QuickEditTabSection extends AbstractPropertySection {
+
+ private QuickEditTabManager manager;
+ private Composite _composite;
+ private Composite _qeGroupComposite;
+ private WPETabbedPropertySheetPage _tabbedPropertySheetPage;
+
+ private QuickEditTabManager getTabManager() {
+ if (manager == null) {
+ manager = _tabbedPropertySheetPage.getTabManager();
+ }
+ return manager;
+ }
+
+ @Override
+ public void createControls(Composite parent,
+ TabbedPropertySheetPage tabbedPropertySheetPage) {
+ super.createControls(parent, tabbedPropertySheetPage);
+ _composite = parent;
+ _tabbedPropertySheetPage = (WPETabbedPropertySheetPage)tabbedPropertySheetPage;
+ }
+
+ @Override
+ public void setInput(IWorkbenchPart part, ISelection selection) {
+ super.setInput(part, selection);
+ if (getTabManager() != null){
+ aboutToBeHidden();
+ createOrResetQuickEditGroupComposite();//disposes of old and recreates new topComp
+ getTabManager().selectionChanged(part, selection);
+ for (ISection section : getSections()){
+ section.createControls(_qeGroupComposite, _tabbedPropertySheetPage);
+ section.setInput(part, selection);
+ }
+ _composite.getParent().layout(true, true);
+
+ aboutToBeShown();
+ refresh();
+ }
+ }
+
+ @Override
+ public void aboutToBeHidden() {
+ super.aboutToBeHidden();
+ for (ISection section : getSections()){
+ section.aboutToBeHidden();
+ }
+ }
+
+ @Override
+ public void aboutToBeShown() {
+ super.aboutToBeShown();
+ for (ISection section : getSections()){
+ section.aboutToBeShown();
+ }
+ }
+
+ @Override
+ public void refresh() {
+ super.refresh();
+ for (ISection section : getSections()){
+ section.refresh();
+ }
+ }
+
+ private void createOrResetQuickEditGroupComposite() {
+ if (_qeGroupComposite != null && !_qeGroupComposite.isDisposed()){
+ //dispose of current sections
+ disposeCurrentQuickEditTabSections();
+ _qeGroupComposite.dispose();
+ }
+
+ _qeGroupComposite = _tabbedPropertySheetPage.getWidgetFactory().createComposite(_composite, SWT.NO_FOCUS);
+ QuickEditTabLayout layout = new QuickEditTabLayout();
+ _qeGroupComposite.setLayout(layout);
+
+ }
+
+ private void disposeCurrentQuickEditTabSections() {
+ for (ISection section : getSections()){
+ section.dispose();
+ }
+ }
+
+ private List<ISection> getSections(){
+ if (getTabManager().getCurrentTabGroupDescriptor() != null)
+ return getTabManager().getCurrentTabGroupDescriptor().getSections();
+
+ return Collections.EMPTY_LIST;
+ }
+
+ public void dispose() {
+ super.dispose();
+ disposeCurrentQuickEditTabSections();
+ manager.dispose();
+ manager = null;
+ _composite = null;
+ _qeGroupComposite = null;
+ _tabbedPropertySheetPage = null;
+ }
+
+ public boolean shouldUseExtraSpace() {
+ return false;
+ }
+
+ private class QuickEditTabLayout extends Layout {
+
+ // allow for adjustments
+ private static final int MARGIN = 0;
+ private static final int SPACING = 0;
+
+ // cache
+ Point[] sizes;
+ int maxWidth, totalHeight;
+
+ protected Point computeSize(Composite composite, int wHint, int hHint,
+ boolean flushCache) {
+
+ Control children[] = composite.getChildren();
+ if (flushCache || sizes == null || sizes.length != children.length) {
+ initialize(children);
+ }
+
+ int width = wHint, height = hHint;
+ if (wHint == SWT.DEFAULT)
+ width = maxWidth;
+
+ if (hHint == SWT.DEFAULT)
+ height = totalHeight;
+
+ return new Point(width + 2 * MARGIN, height + 2 * MARGIN);
+ }
+
+ protected void layout(Composite composite, boolean flushCache) {
+ Control children[] = composite.getChildren();
+ if (flushCache || sizes == null || sizes.length != children.length) {
+ initialize(children);
+ }
+ Rectangle rect = composite.getClientArea();
+ int x = MARGIN, y = MARGIN;
+ int width = Math.max(rect.width - 2 * MARGIN, maxWidth);
+// System.out.println("--- Comp id: "+composite.toString()+ "[#Children: "+ composite.getChildren().length +"] -------");
+ for (int i = 0; i < children.length; i++) {
+ int height = sizes[i].y;
+ children[i].setBounds(x, y, width, height);
+ y += height + SPACING;
+// System.out.println("h="+height+", y="+y);
+ }
+ composite.setRedraw(true);
+ }
+
+ void initialize(Control children[]) {
+ maxWidth = 0;
+ totalHeight = 0;
+ sizes = new Point[children.length];
+ for (int i = 0; i < children.length; i++) {
+ sizes[i] = children[i].computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
+ maxWidth = Math.max(maxWidth, sizes[i].x);
+ totalHeight += sizes[i].y;
+ }
+ totalHeight += (children.length - 1) * SPACING;
+ }
+ }
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditTabSectionDescriptor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditTabSectionDescriptor.java
new file mode 100644
index 0000000..3f2748b
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditTabSectionDescriptor.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * Copyright (c) 2006 Sybase, Inc. and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.properties.internal;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jst.jsf.common.metadata.Entity;
+import org.eclipse.jst.pagedesigner.PDPlugin;
+import org.eclipse.jst.pagedesigner.properties.DesignerPropertyTool;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.internal.views.properties.tabbed.view.SectionDescriptor;
+import org.eclipse.ui.views.properties.tabbed.ISection;
+import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
+import org.w3c.dom.Element;
+
+/**
+ * A SectionDescriptor from org.eclipse.ui.views.properties.tabbed.propertySections extension-point
+ * for use by the QuickEdit tab in the Web Page Editor.
+ */
+public class QuickEditTabSectionDescriptor extends SectionDescriptor {
+
+ private static final String ATT_CLASS = "class"; //$NON-NLS-1$
+ private IConfigurationElement _configurationElement;
+ private Entity _tagEntity;
+
+ /**
+ * Constructor for the section descriptor.
+ *
+ * @param configurationElement
+ * the configuration element for the section descriptor.
+ * @param typeMapper
+ */
+ public QuickEditTabSectionDescriptor(IConfigurationElement configurationElement, ITypeMapper typeMapper) {
+ super(configurationElement, typeMapper);
+ _configurationElement = configurationElement;
+ }
+
+ @Override
+ public boolean appliesTo(IWorkbenchPart part, ISelection selection) {
+ Element node = DesignerPropertyTool.getElement(part, selection);
+ if (node == null) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public ISection getSectionClass() {
+ ISection section = null;
+ try {
+ Object secOrGroup = _configurationElement
+ .createExecutableExtension(ATT_CLASS);
+ if (secOrGroup instanceof ISection) {
+ section = (ISection) secOrGroup;
+ } else if (secOrGroup instanceof QuickEditAttributeGroup) {
+ ((QuickEditAttributeGroup) secOrGroup).setTagEntity(_tagEntity);
+ section = new QuickEditAttributeGroupSection((QuickEditAttributeGroup) secOrGroup);
+ }
+ } catch (CoreException exception) {
+ handleSectionError(exception);
+ }
+ return section;
+ }
+
+ /**
+ * Handle the section error when an issue is found loading from the
+ * configuration element.
+ *
+ * @param _configurationElement
+ * the configuration element
+ * @param exception
+ * an optional CoreException
+ */
+ private void handleSectionError(CoreException exception) {
+ PDPlugin.getLogger(QuickEditTabSectionDescriptor.class).error("error",
+ exception);
+ exception.printStackTrace();
+ }
+
+ /**
+ * @param tagEntity
+ * @return ISection for the tagEntity
+ */
+ /*package*/ ISection getSectionClass(Entity tagEntity) {
+ _tagEntity = tagEntity;
+ return getSectionClass();
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditTabSectionsDescriptor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditTabSectionsDescriptor.java
new file mode 100644
index 0000000..098e006
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditTabSectionsDescriptor.java
@@ -0,0 +1,112 @@
+package org.eclipse.jst.pagedesigner.properties.internal;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.eclipse.jst.jsf.common.metadata.Entity;
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.QuickEditTabSections;
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SECTION_TYPE;
+import org.eclipse.jst.pagedesigner.editors.properties.quickedittabsections.SectionInfo;
+import org.eclipse.ui.views.properties.tabbed.ISection;
+
+/**
+ * Represents all of the section classes that make up the Quick Edit tab for a given tag input.
+ * Uses QuickEditTabSections meta data from tag entity
+ */
+public class QuickEditTabSectionsDescriptor {
+
+ private QuickEditTabSections _sections;
+ private QName _tagId;
+ private List<ISection> _sectionClasses;
+ private Entity _tagEntity;
+ private WPETabPropertySectionDescriptorProvider sectionProvider;
+
+ /**
+ * Constructor
+ * @param tagEntity
+ * @param tagId
+ * @param sections
+ */
+ public QuickEditTabSectionsDescriptor (Entity tagEntity, QName tagId, QuickEditTabSections sections) {
+ _tagEntity = tagEntity;
+ _tagId = tagId;
+ _sections = sections;
+ }
+
+ /*package*/ QuickEditTabSectionsDescriptor () {
+ _tagEntity = null;
+ _tagId = null;
+ _sections = null;
+ }
+
+ /**
+ * Determines section classes for the group from the available meta data
+ */
+ public void calculateSections() {
+ if (_sectionClasses == null || _sectionClasses.isEmpty()) {
+ _sectionClasses = new ArrayList();
+ List<String> attrIds = new ArrayList();
+ for (SectionInfo secInfo : _sections.getSections()) {
+ if (secInfo.getType() == SECTION_TYPE.ATTRIBUTE){
+ //collect attrSecs and process as a group so that layout will be best
+ if (secInfo.getId() != null)
+ attrIds.add(secInfo.getId());
+ }
+ else if (secInfo.getType() == SECTION_TYPE.SECTION) {
+ //if there are any attribute sections not processed, do that now
+ if (attrIds.size() > 0){
+ createAttributeGroup(attrIds);
+ attrIds = new ArrayList();
+ }
+ createSectionGroup(secInfo);
+ }
+ }
+ if (attrIds.size() > 0){
+ createAttributeGroup(attrIds);
+ }
+ }
+ }
+
+ private void createSectionGroup(SectionInfo secInfo) {
+ QuickEditTabSectionDescriptor sd = getSectionProvider().getNamedSectionDescriptor(secInfo.getId());
+ if (sd != null) {
+ ISection section = sd.getSectionClass(_tagEntity);
+ if (section != null){
+ _sectionClasses.add(section);
+ }
+ }
+
+ }
+
+ private void createAttributeGroup(List<String> attrNames) {
+ ISection section = new QuickEditAttributeGroupSection(_tagEntity, attrNames);
+ if (section != null){
+ _sectionClasses.add(section);
+ }
+ }
+
+ /**
+ * @return QName of tag that this tab descriptor is for
+ */
+ public QName getTagId() {
+ return _tagId;
+ }
+
+ /**
+ * @return List of current ISection classes set after calculateSections() has been called
+ */
+ public List<ISection> getSections() {
+ return _sectionClasses;
+ }
+
+ private WPETabPropertySectionDescriptorProvider getSectionProvider() {
+ if (sectionProvider == null){
+ sectionProvider = new WPETabPropertySectionDescriptorProvider();
+ }
+ return sectionProvider;
+ }
+
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditTabSectionsManager.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditTabSectionsManager.java
new file mode 100644
index 0000000..59d91b0
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/QuickEditTabSectionsManager.java
@@ -0,0 +1,125 @@
+package org.eclipse.jst.pagedesigner.properties.internal;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import org.eclipse.core.resources.IProject;
+
+/**
+ * Cache of quickEditTabGroupDescriptors keyed by tagID as QName.
+ */
+public class QuickEditTabSectionsManager {
+
+ private static QuickEditTabSectionsManagerMgr _mgrInstance = new QuickEditTabSectionsManagerMgr();
+ private Map<QName, QuickEditTabSectionsDescriptor> map = new HashMap<QName, QuickEditTabSectionsDescriptor>(5);
+ private IProject _project;
+ private int clientCount = 0;
+
+ /**
+ * Returns instance of QuickEditTabSectionsManager for the given project. Caller must release the instance when caller is being disposed.
+ * @param project
+ * @return instance of QuickEditTabSectionsManager
+ */
+ public static QuickEditTabSectionsManager acquireInstance(IProject project){
+ QuickEditTabSectionsManager instance = _mgrInstance.getSectionsManager(project);
+ instance.clientCount++;
+ instance._project = project;
+ return instance;
+ }
+
+ /**
+ * Releases instance of QuickEditTabSectionsManager and removes from the QuickEditSectionGroupsManagerMgr if it is the last reference
+ */
+ public void releaseInstance(){
+ int refCount = --clientCount;
+ if (refCount == 0){
+ _mgrInstance.removeSectionsManager(_project);
+ }
+ }
+
+ /**
+ * private constructor
+ */
+ private QuickEditTabSectionsManager(){
+ //
+ }
+
+ /**
+ * @return IProject that this section manager applies to
+ */
+ public IProject getProject(){
+ return _project;
+ }
+
+ /**
+ * Get QuickEditTabSectionsDescriptor for passed tag
+ *
+ * @param tagId
+ * @return QuickEditTabSectionsDescriptor
+ */
+ public QuickEditTabSectionsDescriptor getQuickEditTabSectionsFor(QName tagId) {
+ return map.get(tagId);
+ }
+
+ /**
+ * Adds QuickEditTabSectionsDescriptor to managed registry keyed by the tagId
+ * QName
+ *
+ * @param group
+ */
+ public void addQuickEditTabGroupDescriptor(QuickEditTabSectionsDescriptor group) {
+ map.put(group.getTagId(), group);
+ }
+
+ /**
+ * Removes and disposes a cached {@link QuickEditTabSectionsDescriptor}
+ *
+ * @param tagId
+ */
+ public void removeQuickEditTabGroup(QName tagId) {
+ QuickEditTabSectionsDescriptor grp = map.get(tagId);
+ if (grp != null) {
+ map.remove(tagId);
+ }
+ }
+
+ /**
+ * Dispose of manager
+ */
+ public void dispose() {
+ map.clear();
+ map = null;
+ }
+
+ /**
+ * Manages the QuickEditTabSectionsManager instances. Ensures one per project. *
+ */
+ @SuppressWarnings("serial")
+ private static class QuickEditTabSectionsManagerMgr {
+ private Map <IProject,QuickEditTabSectionsManager>_map = new HashMap<IProject,QuickEditTabSectionsManager>();
+ /**
+ * @param project - may be null
+ * @return QuickEditTabManager for project
+ */
+ public QuickEditTabSectionsManager getSectionsManager(IProject project){
+ if (_map.containsKey(project))
+ return _map.get(project);
+
+ QuickEditTabSectionsManager instance = new QuickEditTabSectionsManager();
+ _map.put(project, instance);
+ return instance;
+ }
+
+ /**
+ * Removes QuickEditTabManager from mgr for given project
+ * @param project
+ */
+ public void removeSectionsManager(IProject project){
+ if (_map.containsKey(project))
+ _map.remove(project);
+ }
+
+ }
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/WPETabDescriptorProvider.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/WPETabDescriptorProvider.java
new file mode 100644
index 0000000..5003d40
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/WPETabDescriptorProvider.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.properties.internal;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.views.properties.tabbed.ITabDescriptor;
+import org.eclipse.ui.views.properties.tabbed.ITabDescriptorProvider;
+
+/**
+ * Class that provides the default tabs for the Web Page Editor
+ */
+public class WPETabDescriptorProvider implements ITabDescriptorProvider {
+
+ private AttributesTabDescriptor _attributesTabDescriptor;
+ private QuickEditTabDescriptor _quickTabDescriptor;
+
+ /**
+ * Constructor
+ */
+ public WPETabDescriptorProvider() {
+ _quickTabDescriptor = new QuickEditTabDescriptor();
+ _attributesTabDescriptor = new AttributesTabDescriptor();
+ }
+
+ /**
+ * Provides a QuickTabDescriptor and the AttributesTabDescriptor
+ */
+ public ITabDescriptor[] getTabDescriptors(IWorkbenchPart part,
+ ISelection selection) {
+
+ return new ITabDescriptor[]{_quickTabDescriptor,
+ _attributesTabDescriptor};
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/WPETabPropertySectionDescriptorProvider.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/WPETabPropertySectionDescriptorProvider.java
new file mode 100644
index 0000000..258eb46
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/properties/internal/WPETabPropertySectionDescriptorProvider.java
@@ -0,0 +1,127 @@
+/*******************************************************************************
+ * Copyright (c) 2006 Sybase, Inc. and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Sybase, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.properties.internal;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jst.pagedesigner.editors.HTMLEditor;
+import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor;
+import org.eclipse.ui.views.properties.tabbed.ISectionDescriptorProvider;
+
+/**
+ * Provides sections registered for the Web Page Editor whose contributor ID is,
+ * "org.eclipse.jst.pagedesigner.tabPropertyContributor" using the
+ * org.eclipse.ui.views.properties.tabbed.propertyTabs extension-points.
+ *
+ * The sections declared using the org.eclipse.ui.views.properties.tabbed.propertySections extension-point
+ * for the WPE will only be displayed by the Quick Edit tab is the selected tag has metadata to choose
+ * the section. TypeMappers/filters, etc. are ignored by this sectionDescriptorProvider.
+ *
+ * See jsf_html.xml in the org.eclipse.jst.jsf.standard.tagsupport plugin for examples on how to use.
+ */
+public class WPETabPropertySectionDescriptorProvider implements
+ ISectionDescriptorProvider {
+
+ private static final String EXTPT_SECTIONS = "propertySections"; //$NON-NLS-1$
+ private static final String ELEMENT_SECTION = "propertySection"; //$NON-NLS-1$
+ private ISectionDescriptor[] _descriptors = null;
+
+ /**
+ * Constructor
+ */
+ public WPETabPropertySectionDescriptorProvider() {
+ super();
+ }
+
+ public ISectionDescriptor[] getSectionDescriptors() {
+ if (_descriptors == null) {
+ List result = new ArrayList();
+ List contributedSections = readSectionDescriptors();
+ result.addAll(contributedSections);
+
+// if (1 == 0){ //disabled for now... do we want to allow other mechanisms to add sections?
+// List providers = readAdditionalSectionDescriptorProviders();
+// for (int i = 0, size = providers.size(); i < size; i++) {
+// try {
+// ISectionDescriptorProvider provider = (ISectionDescriptorProvider) providers
+// .get(i);
+// ISectionDescriptor[] sections = provider
+// .getSectionDescriptors();
+// if (sections != null) {
+// result.addAll(Arrays.asList(sections));
+// }
+// } catch (Exception ex) {
+// // ignore
+// ex.printStackTrace();
+// }
+// }
+// }
+ _descriptors = new ISectionDescriptor[result.size()];
+ result.toArray(_descriptors);
+ }
+ return _descriptors;
+ }
+
+ /**
+ * @return registered section descriptors for the WPE QuickEdit tab
+ */
+ protected List<QuickEditTabSectionDescriptor> readSectionDescriptors() {
+ List result = new ArrayList();
+
+ IConfigurationElement[] extensions = getConfigurationElements(EXTPT_SECTIONS);
+ for (int i = 0; i < extensions.length; i++) {
+ IConfigurationElement extension = extensions[i];
+ if (extension.getAttribute("contributorId").equals(HTMLEditor.TABBED_PROPERTIES_CONTRIBUTOR_ID)){
+ IConfigurationElement[] sections = extension
+ .getChildren(ELEMENT_SECTION);
+ for (int j = 0; j < sections.length; j++) {
+ IConfigurationElement section = sections[j];
+ ISectionDescriptor descriptor = new QuickEditTabSectionDescriptor(
+ section, null);//ITypeMapper set to null
+ result.add(descriptor);
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @param extensionPointId
+ * @return IConfigurationElement[]
+ */
+ private static IConfigurationElement[] getConfigurationElements(
+ String extensionPointId) {
+ IExtensionPoint extensionPoint = Platform.getExtensionRegistry()
+ .getExtensionPoint("org.eclipse.ui.views.properties.tabbed", extensionPointId);
+ if (extensionPoint == null) {
+ return null;
+ }
+ return extensionPoint.getConfigurationElements();
+ }
+
+ /**
+ * @param name of section
+ * @return {@link QuickEditTabSectionDescriptor} or null if not located
+ */
+ public QuickEditTabSectionDescriptor getNamedSectionDescriptor(String name) {
+ for (int i=0;i<getSectionDescriptors().length;i++){
+ QuickEditTabSectionDescriptor sd = (QuickEditTabSectionDescriptor)getSectionDescriptors()[i];
+ if (name.equals(sd.getId()))
+ return sd;
+ }
+ return null;
+ }
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/taglibprocessing/CSSClassType.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/taglibprocessing/CSSClassType.java
new file mode 100644
index 0000000..df7b36c
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/taglibprocessing/CSSClassType.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.taglibprocessing;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jst.jsf.context.resolver.structureddocument.IDOMContextResolver;
+import org.eclipse.jst.jsf.context.resolver.structureddocument.internal.impl.StructuredDocumentContextResolverFactory;
+import org.eclipse.jst.jsf.metadataprocessors.AbstractRootTypeDescriptor;
+import org.eclipse.jst.jsf.metadataprocessors.IMetaDataEnabledFeature;
+import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValue;
+import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues;
+import org.eclipse.jst.jsf.metadataprocessors.features.PossibleValue;
+import org.eclipse.jst.pagedesigner.css2.CSSUtil;
+import org.w3c.dom.Document;
+
+/**
+ * Represents a style class attribute type
+ *
+ */
+public class CSSClassType extends AbstractRootTypeDescriptor implements
+ IMetaDataEnabledFeature, IPossibleValues {
+
+ private List<IPossibleValue> _pvs;
+
+ public List<IPossibleValue> getPossibleValues() {
+ if (_pvs == null){
+ IDOMContextResolver resolver = StructuredDocumentContextResolverFactory.getInstance().getDOMContextResolver(getStructuredDocumentContext());
+ _pvs = getCSSClasses(resolver.getDOMDocument());
+ }
+ return _pvs;
+ }
+
+ private List<IPossibleValue> getCSSClasses(Document doc) {
+ List result = new ArrayList();
+ String [] names = CSSUtil.getCSSClasses(doc);
+ for (int i=0;i<names.length;i++){
+ IPossibleValue pv = new PossibleValue(names[i]);
+ result.add(pv);
+ }
+ return result;
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/taglibprocessing/CSSIdType.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/taglibprocessing/CSSIdType.java
new file mode 100644
index 0000000..bf6c760
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/taglibprocessing/CSSIdType.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.taglibprocessing;
+
+import org.eclipse.jst.jsf.metadataprocessors.AbstractRootTypeDescriptor;
+import org.eclipse.jst.jsf.metadataprocessors.IMetaDataEnabledFeature;
+
+/**
+ * Represents CSS id attribute type
+ * EXPERIMENTAL - may change or disappear
+ *
+ */
+public class CSSIdType extends AbstractRootTypeDescriptor implements
+ IMetaDataEnabledFeature {
+
+ /**
+ * Constructor
+ */
+ public CSSIdType() {
+ // TODO Auto-generated constructor stub
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/taglibprocessing/CSSStyleType.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/taglibprocessing/CSSStyleType.java
new file mode 100644
index 0000000..614f988
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/taglibprocessing/CSSStyleType.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Oracle Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.taglibprocessing;
+
+import org.eclipse.jst.jsf.metadataprocessors.AbstractRootTypeDescriptor;
+import org.eclipse.jst.jsf.metadataprocessors.IMetaDataEnabledFeature;
+
+/**
+ * Represents CSS style attribute
+ *
+ */
+public class CSSStyleType extends AbstractRootTypeDescriptor implements
+ IMetaDataEnabledFeature {
+
+ /**
+ * Constructor
+ */
+ public CSSStyleType() {
+ // TODO Auto-generated constructor stub
+ }
+
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/ui/dialogfields/DialogFieldWrapper.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/ui/dialogfields/DialogFieldWrapper.java
index 1bb72f7..9812c4e 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/ui/dialogfields/DialogFieldWrapper.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/ui/dialogfields/DialogFieldWrapper.java
@@ -17,6 +17,7 @@
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.IDialogFieldChangeListener;
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.IStringButtonAdapter;
import org.eclipse.jst.jsf.common.ui.internal.dialogfield.ISupportTextValue;
+import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor;
import org.eclipse.jst.pagedesigner.meta.IAttributeDescriptor;
import org.eclipse.jst.pagedesigner.meta.IBindingHandler;
import org.eclipse.jst.pagedesigner.properties.attrgroup.IElementContextable;
@@ -75,6 +76,8 @@
private IBindingHandler _handler;
+ private IPropertyPageDescriptor _pdattr;
+
/**
* @param field
* @param image
@@ -119,6 +122,51 @@
}
});
}
+
+ /**
+ * @param field
+ * @param image
+ * @param disabledImage
+ * @param uri
+ * @param tagName
+ * @param attr
+ * @param handler
+ *
+ */
+ public DialogFieldWrapper(DialogField field, Image image,
+ Image disabledImage, String uri, String tagName,
+ IPropertyPageDescriptor attr, IBindingHandler handler) {
+ super();
+ if (!(field instanceof ISupportTextValue)) {
+ throw new IllegalArgumentException(
+ "Field must be ISupportTextValue");
+ }
+ _wrapped = field;
+ this._image = image;
+ this._disabledImage = disabledImage;
+ this._uri = uri;
+ this._tagName = tagName;
+ this._pdattr = attr;
+ this._handler = handler;
+
+ setDatabindingPressedHandler(new IStringButtonAdapter() {
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jst.jsf.common.ui.internal.dialogfield.IStringButtonAdapter#changeControlPressed(org.eclipse.jst.jsf.common.ui.internal.dialogfield.DialogField)
+ */
+ public void changeControlPressed(DialogField field1) {
+ Shell shell = field1.getLabelControl(null, null).getShell();
+ DialogFieldWrapper wrapper = (DialogFieldWrapper) field1;
+ String result = _handler
+ .handleBinding(shell, wrapper.getAncester(), wrapper
+ .getElement(), wrapper.getText());
+ if (result != null) {
+ wrapper.setText(result);
+ }
+ }
+ });
+ }
private void setDatabindingPressedHandler(IStringButtonAdapter adapter) {
this._adapter = adapter;
@@ -166,8 +214,14 @@
this._ancester = ancester;
this._element = element;
- boolean bindingEnabled = _handler.isEnabled(_ancester, _element, _uri,
+ boolean bindingEnabled = false;
+
+ if (_attr != null)
+ bindingEnabled = _handler.isEnabled(_ancester, _element, _uri,
_tagName, _attr);
+ else if (_pdattr != null)
+ bindingEnabled = false;//_handler.isEnabled(_ancester, _element, _pdattr);
+
this.setDatabindingEnabled(bindingEnabled);
}
@@ -211,7 +265,7 @@
* @return
*/
private Control getDatabingingButton(FormToolkit toolkit, Composite parent) {
- if (_databindingButton == null) {
+ if (_databindingButton == null || _databindingButton.isDisposed()) {
Assert.isNotNull(parent,
"uncreated control requested with composite null"); //$NON-NLS-1$
if (toolkit != null) {