diff options
| author | gkessler | 2007-12-07 23:43:58 +0000 |
|---|---|---|
| committer | gkessler | 2007-12-07 23:43:58 +0000 |
| commit | a008ef81e907351a0e878aca8101ec48636c349c (patch) | |
| tree | 71c87d9c9ba14c3a74fbee4890aea11ca3392f0e | |
| parent | 50afcc1853fae94491c576a5100db654f869e8fa (diff) | |
| download | webtools.jsf-a008ef81e907351a0e878aca8101ec48636c349c.tar.gz webtools.jsf-a008ef81e907351a0e878aca8101ec48636c349c.tar.xz webtools.jsf-a008ef81e907351a0e878aca8101ec48636c349c.zip | |
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
34 files changed, 2445 insertions, 29 deletions
diff --git a/jsf/tests/org.eclipse.jst.jsf.facesconfig.tests/plugin.xml b/jsf/tests/org.eclipse.jst.jsf.facesconfig.tests/plugin.xml index 071b965dd..4d8a63167 100644 --- a/jsf/tests/org.eclipse.jst.jsf.facesconfig.tests/plugin.xml +++ b/jsf/tests/org.eclipse.jst.jsf.facesconfig.tests/plugin.xml @@ -1,11 +1,4 @@ <?xml version="1.0" encoding="UTF-8"?> <?eclipse version="3.0"?> <plugin> - <extension - point="org.eclipse.wst.common.tests.collector.suites"> - <suite - class="org.eclipse.jst.jsf.facesconfig.tests.AllFacesConfigTests" - name="org.eclipse.jst.jsf.facesconfig.tests"> - </suite> - </extension> </plugin> diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/META-INF/MANIFEST.MF b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/META-INF/MANIFEST.MF index 9ba326574..735fbae98 100644 --- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/META-INF/MANIFEST.MF +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/META-INF/MANIFEST.MF @@ -20,12 +20,13 @@ Require-Bundle: org.eclipse.jst.jsf.common;bundle-version="[1.0.0,1.1.0)", org.eclipse.wst.html.core;bundle-version="[1.1.0,1.2.0)", org.eclipse.wst.xml.core;bundle-version="[1.1.0,1.2.0)", org.eclipse.jface.text;bundle-version="[3.2.0,4.0.0)", - org.eclipse.jdt.core, - org.eclipse.wst.common.project.facet.core, - org.eclipse.jst.common.frameworks, + org.eclipse.jdt.core;bundle-version="[3.2.0,4.0.0)", + org.eclipse.wst.common.project.facet.core;bundle-version="[1.2.0,1.3.0)", + org.eclipse.jst.common.frameworks;bundle-version="[1.1.0,1.2.0)", org.eclipse.jst.jsf.core.tests, org.eclipse.wst.validation, - org.eclipse.jst.pagedesigner.jsf.ui + org.eclipse.jst.pagedesigner.jsf.ui, + org.eclipse.ui.views.properties.tabbed;bundle-version="[3.2.0,4.0.0)" Eclipse-LazyStart: true Export-Package: com.foobar;x-internal:=true, org.eclipse.jst.jsf.common.metadata.tests;x-internal:=true, diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/plugin.xml b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/plugin.xml index beb4a8cb8..49740c60a 100644 --- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/plugin.xml +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/plugin.xml @@ -40,7 +40,18 @@ location="/testfiles/metadata/traithelpertest.xml" locator="org.eclipse.jst.jsf.common.metadata.tests.MyMDLocator" uri="http://org.eclipse.jsf/traithelpertest"/> + <standardMetaDataFile + location="/testfiles/metadata/quickEditSectionTest.xml" + uri="http://org.eclipse.jsf/quickEditSectionTest"/> + <standardMetaDataFile + location="/testfiles/metadata/propertyDescriptorTest.xml" + uri="http://org.eclipse.jsf/propertyDescriptorTest"/> + </extension> + <extension point="org.eclipse.jst.pagedesigner.cmRegistry"> + <registry configFile="/testfiles/metadata/sybasejsfhtml.xml" + uri="http://SybaseMD.test.jsfhtml" /> + </extension> <extension point="org.eclipse.jst.jsf.core.AttributeValueRuntimeTypes"> <attributeValueRuntimeType diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/AllTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/AllTests.java index 9b5316bb3..63f6bb52c 100644 --- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/AllTests.java +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/AllTests.java @@ -35,11 +35,19 @@ import org.eclipse.jst.jsf.metadata.tests.metadataprocessing.AttributeValueRunti import org.eclipse.jst.jsf.metadata.tests.metadataprocessing.AttributeValueRuntimeTypeFactoryTests; import org.eclipse.jst.jsf.metadata.tests.metadataprocessing.AttributeValueRuntimeTypesRegistryTests; import org.eclipse.jst.jsf.metadata.tests.metadataprocessing.MetaDataProcessorsFactoryTests; +import org.eclipse.jst.jsf.metadata.tests.pagedesigner.PropertyDescriptorTests; +import org.eclipse.jst.jsf.metadata.tests.pagedesigner.QuickEditSectionsTests; +import org.eclipse.jst.jsf.metadata.tests.sybaseMDTranslations.SybaseCMTranslationTests; import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.ActionTypeTests; import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.BooleanTypeTest; +import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.CSSClassTypeTests; +import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.CSSStyleTypeTests; +import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.CharacterTypeTest; import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.ColorTypeTest; import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.ComponentBindingTypeTests; import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.ComponentIDTypeTests; +import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.ContentTypeTest; +import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.CurrencyCodeTypeTest; import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.DoubleTypeTest; import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.EnumeratedDoubleTypeTest; import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.EnumeratedIntegerTypeTest; @@ -49,10 +57,15 @@ import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.FacesConfigValidatorI import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.IntegerTypeTest; import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.JSFHTMLTestCase; import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.JavaClassTypeTest; +import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.LanguageCodeTypeTest; import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.LengthTypeTest; +import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.LinkTypeTest; +import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.LocaleTypeTest; import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.LongTypeTest; import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.MethodBindingTypeTests; +import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.NumberPatternTypeTest; import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.StringTypeTest; +import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.TimeZoneTypeTest; import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.ValueBindingTypeTests; import org.eclipse.jst.jsf.metadata.tests.taglibprocessing.ValueTypeTests; import org.eclipse.jst.jsf.metadata.tests.util.IJSFRuntimeRequiredV11; @@ -96,7 +109,15 @@ public class AllTests { addTestSuite(suite, AttributeValueRuntimeTypesRegistryTests.class); addTestSuite(suite, AttributeValueRuntimeTypeFactoryTests.class); + //Sybase config translation test + addTestSuite(suite, SybaseCMTranslationTests.class); + + //PageDesigner Metadata tests + addTestSuite(suite, PropertyDescriptorTests.class); + addTestSuite(suite, QuickEditSectionsTests.class); + // //taglib processing + //Tests NOT requiring JSF Implementation addTestSuite(suite, StringTypeTest.class); addTestSuite(suite, BooleanTypeTest.class); addTestSuite(suite, IntegerTypeTest.class); @@ -105,6 +126,23 @@ public class AllTests { addTestSuite(suite, EnumeratedLongTypeTest.class); addTestSuite(suite, DoubleTypeTest.class); addTestSuite(suite, EnumeratedDoubleTypeTest.class); + + addTestSuite(suite, ColorTypeTest.class); + addTestSuite(suite, LanguageCodeTypeTest.class); + addTestSuite(suite, LocaleTypeTest.class); + addTestSuite(suite, CurrencyCodeTypeTest.class); + addTestSuite(suite, TimeZoneTypeTest.class); + addTestSuite(suite, LengthTypeTest.class); + addTestSuite(suite, NumberPatternTypeTest.class); +// addTestSuite(suite, RelativePathTypeTest.class); +// addTestSuite(suite, WebPathTypeTest.class); + addTestSuite(suite, CharacterTypeTest.class); +// addTestSuite(suite, ScriptTypeTest.class); + addTestSuite(suite, LinkTypeTest.class); + addTestSuite(suite, ContentTypeTest.class); +// addTestSuite(suite, URITypeTest.class); + + //Tests requiring JSF Implementation addTestSuite(suite, JavaClassTypeTest.class); addTestSuite(suite, FacesConfigConverterIDTypeTests.class); addTestSuite(suite, FacesConfigValidatorIDTypeTests.class); @@ -114,11 +152,14 @@ public class AllTests { addTestSuite(suite, ValueBindingTypeTests.class); addTestSuite(suite, ValueTypeTests.class); addTestSuite(suite, ActionTypeTests.class); - addTestSuite(suite, LengthTypeTest.class); - addTestSuite(suite, ColorTypeTest.class); + + addTestSuite(suite, CSSClassTypeTests.class); + addTestSuite(suite, CSSStyleTypeTests.class); addTestSuite(suite, JSFHTMLTestCase.class); // addTestSuite(suite, JSFCoreTestCase.class); + + //$JUnit-END$ return suite; } diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/pagedesigner/PropertyDescriptorTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/pagedesigner/PropertyDescriptorTests.java new file mode 100644 index 000000000..a5aae2579 --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/pagedesigner/PropertyDescriptorTests.java @@ -0,0 +1,117 @@ +/******************************************************************************* + * Copyright (c) 2006 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.metadata.tests.pagedesigner; + +import java.util.List; + +import org.eclipse.core.runtime.QualifiedName; +import org.eclipse.jst.jsf.common.metadata.Entity; +import org.eclipse.jst.jsf.common.metadata.Model; +import org.eclipse.jst.jsf.common.metadata.query.ITaglibDomainMetaDataModelContext; +import org.eclipse.jst.jsf.common.metadata.query.TaglibDomainMetaDataQueryHelper; +import org.eclipse.jst.jsf.core.JSFVersion; +import org.eclipse.jst.jsf.metadata.tests.util.SingleJSPTestCase; +import org.eclipse.jst.jsf.metadataprocessors.IMetaDataEnabledFeature; +import org.eclipse.jst.jsf.metadataprocessors.MetaDataEnabledProcessingFactory; +import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor; +import org.eclipse.jst.pagedesigner.properties.ITabbedPropertiesConstants; + +//TODO: can use beefing up +public class PropertyDescriptorTests extends SingleJSPTestCase { + + private static QualifiedName qn = new QualifiedName("test","model"); + private String uri = "http://org.eclipse.jsf/propertyDescriptorTest"; + private Model _model; + private int _offset = 423; + + + public PropertyDescriptorTests() { + super("/testfiles/jsps/propertyDescTests.jsp", + "/propertyDescTests.jsp", + JSFVersion.V1_1, + "/testfiles/web/faces-config_1_1.xml.data"); + } + + public void setUp() throws Exception { + if (_model == null) { + super.setUp(); + getModel(); + } + } + + private Model getModel() { + if (_model == null) { + ITaglibDomainMetaDataModelContext modelContext = TaglibDomainMetaDataQueryHelper.createMetaDataModelContext(null, uri); + _model = TaglibDomainMetaDataQueryHelper.getModel(modelContext); + } + + return _model; + } + + public void testBasics(){ + assertNotNull(getModel()); + assertEquals(1, getModel().getChildEntities().size()); + + Entity tag = TaglibDomainMetaDataQueryHelper.getEntity(getModel(), "Tag"); + assertNotNull(tag); + assertTrue(tag.getChildEntities().size() == 3); + + testAttr1(tag); + testDefaultAttr(tag); + + } + + + private void testAttr1(Entity tag){ + Entity attr1 = TaglibDomainMetaDataQueryHelper.getEntity(tag, "Attr1"); + assertNotNull(attr1); + assertTrue(attr1.getTraits().size() > 2); + + List<IMetaDataEnabledFeature> pds = MetaDataEnabledProcessingFactory.getInstance().getAttributeValueRuntimeTypeFeatureProcessors(IPropertyPageDescriptor.class, getStructuredDocumentContext(_structuredDocument, _offset), attr1); + assertNotNull(pds); + IPropertyPageDescriptor pd = (IPropertyPageDescriptor)pds.get(0); + assertNotNull(pd); + assertEquals("CategoryName", pd.getCategory()); + assertEquals("This is a description.", pd.getDescription()); + assertTrue(pd.isRequired()); + assertEquals("MyAttr1", pd.getLabel()); + + } + + private void testDefaultAttr(Entity tag){ + Entity attr1 = TaglibDomainMetaDataQueryHelper.getEntity(tag, "DefaultAttr"); + assertNotNull(attr1); + + List<IMetaDataEnabledFeature> pds = MetaDataEnabledProcessingFactory.getInstance().getAttributeValueRuntimeTypeFeatureProcessors(IPropertyPageDescriptor.class, getStructuredDocumentContext(_structuredDocument, _offset), attr1); + assertNotNull(pds); + IPropertyPageDescriptor pd = (IPropertyPageDescriptor)pds.get(0); + assertNotNull(pd); + assertEquals(ITabbedPropertiesConstants.OTHER_CATEGORY, pd.getCategory()); + assertNull(pd.getDescription()); + assertFalse(pd.isRequired()); + assertEquals("DefaultAttr", pd.getLabel()); + + } + + + public void testLocatePropertyPageDescForBooleanTagAttr() { + Entity boolAttr = TaglibDomainMetaDataQueryHelper.getEntity(getModel(), "Tag/boolAttr"); + assertNotNull(boolAttr); + + List<IMetaDataEnabledFeature> pds = MetaDataEnabledProcessingFactory.getInstance().getAttributeValueRuntimeTypeFeatureProcessors(IPropertyPageDescriptor.class, getStructuredDocumentContext(_structuredDocument, _offset), boolAttr); + assertNotNull(pds); + IPropertyPageDescriptor pd = (IPropertyPageDescriptor)pds.get(0); + assertNotNull(pd); + + } + +} diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/pagedesigner/QuickEditSectionsTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/pagedesigner/QuickEditSectionsTests.java new file mode 100644 index 000000000..83faab63f --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/pagedesigner/QuickEditSectionsTests.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * Copyright (c) 2006 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.metadata.tests.pagedesigner; + +import org.eclipse.jst.jsf.common.metadata.Entity; +import org.eclipse.jst.jsf.common.metadata.Model; +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.core.JSFVersion; +import org.eclipse.jst.jsf.metadata.tests.util.JSPTestCase; +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; + +//TODO: can use beefing up +public class QuickEditSectionsTests extends JSPTestCase { + private String _uri; + private ITaglibDomainMetaDataModelContext _context; + + public QuickEditSectionsTests () { + super( JSFVersion.V1_1, + "/testfiles/web/faces-config_1_1.xml.data"); + + } + public void setUp() throws Exception{ + super.setUp(); + + _uri = "http://org.eclipse.jsf/quickEditSectionTest"; + _context = TaglibDomainMetaDataQueryHelper.createMetaDataModelContext(_testEnv.getTestProject(), _uri); + } + + public void testQuickEditTabSections(){ + Model model = TaglibDomainMetaDataQueryHelper.getModel(_context); + assertNotNull(model); + Entity entity = TaglibDomainMetaDataQueryHelper.getEntity(model, "A"); + assertNotNull(entity); + Trait trait = TaglibDomainMetaDataQueryHelper.getTrait(entity , QuickEditTabSections.TRAIT_ID); + assertNotNull(trait); + assertNotNull(trait.getValue()); + assertTrue(trait.getValue() instanceof QuickEditTabSections); + QuickEditTabSections sections = (QuickEditTabSections)trait.getValue(); + assertEquals(3, sections.getSections().size()); + + SectionInfo section = sections.getSections().get(0); + assertEquals("attr1", section.getId()); + assertEquals(SECTION_TYPE.ATTRIBUTE, section.getType()); + + section = sections.getSections().get(1); + assertEquals("attr2", section.getId()); + assertEquals(SECTION_TYPE.ATTRIBUTE, section.getType()); + + section = sections.getSections().get(2); + assertEquals("section1", section.getId()); + assertEquals(SECTION_TYPE.SECTION, section.getType()); + + } + +} diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/sybaseMDTranslations/SybaseCMTranslationTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/sybaseMDTranslations/SybaseCMTranslationTests.java new file mode 100644 index 000000000..11b152f7c --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/sybaseMDTranslations/SybaseCMTranslationTests.java @@ -0,0 +1,295 @@ +package org.eclipse.jst.jsf.metadata.tests.sybaseMDTranslations; + +import java.util.List; +import java.util.Locale; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.QualifiedName; +import org.eclipse.jst.jsf.common.metadata.Entity; +import org.eclipse.jst.jsf.common.metadata.Model; +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.ITaglibDomainMetaDataModelContext; +import org.eclipse.jst.jsf.common.metadata.query.TaglibDomainMetaDataQueryHelper; +import org.eclipse.jst.jsf.common.metadata.tests.AbstractBaseMetaDataTestCase; +import org.eclipse.jst.jsf.common.metadata.traittypes.traittypes.ListOfValues; +import org.eclipse.jst.jsf.metadata.tests.util.IJSFRuntimeRequiredV11; +import org.eclipse.jst.jsf.metadataprocessors.MetaDataEnabledProcessingFactory; +import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues; +import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor; +import org.eclipse.jst.pagedesigner.meta.IAttributeRuntimeValueType; + + +public class SybaseCMTranslationTests extends AbstractBaseMetaDataTestCase implements IJSFRuntimeRequiredV11 { + private static QualifiedName qn = new QualifiedName("test","model"); + private String uri = "http://SybaseMD.test.jsfhtml"; + private Model _model; + + public void setUp() throws Exception { + if (_model == null) { + super.setUp(); + getModel(); + } + } + + private Model getModel() { + try { + _model = (Model)project.getSessionProperty(qn); + if (_model == null) { + ITaglibDomainMetaDataModelContext modelContext = TaglibDomainMetaDataQueryHelper.createMetaDataModelContext(project, uri); + _model = TaglibDomainMetaDataQueryHelper.getModel(modelContext); + assertNotNull(_model); + try { + project.setSessionProperty(qn, _model); + } catch (CoreException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + } catch (CoreException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + return _model; + } + + public void testBasics(){ + assertNotNull(getModel()); + assertEquals(25, getModel().getChildEntities().size()); + + testSanity(getModel()); + testAttributeTraits(getModel()); + testPossibleValues(getModel()); + + + } + + private void testSanity(Model model){ + Entity form = TaglibDomainMetaDataQueryHelper.getEntity(model, "form"); + assertNotNull(form); + assertTrue(form.getChildEntities().size() >= 10); + + Entity dir = TaglibDomainMetaDataQueryHelper.getEntity(form, "dir"); + assertNotNull(dir); + assertTrue(dir.getTraits().size() > 2); + + Trait validValues = TaglibDomainMetaDataQueryHelper.getTrait(dir, "valid-values"); + assertNotNull(validValues); + + Entity nullEntity = TaglibDomainMetaDataQueryHelper.getEntity(model, "commandButton/converter");//converter should be excluded + assertNull("commandButton/converter should not be present", nullEntity); + } + + private void testAttributeTraits(Model model) { + if (Locale.getDefault().equals(Locale.US)) { + testProps(model, "message/for", "true", "For", null, null, "JSF", null); + testProps(model, "commandButton/action", "false", "Action", "action", null, "JSF", null); + testProps(model, "dataTable/frame", "false", "Frame", null, "No sides", "HTML", null); + } + } + + public void testEnumeratedValueTypeTranslation() { + assertEquals(IAttributeRuntimeValueType.STRING, getAttrValRuntimeType(getModel(), "selectManyCheckbox/layout")); + assertEquals(IAttributeRuntimeValueType.LANGUAGECODE, getAttrValRuntimeType(getModel(), "form/lang")); + } + + public void testBooleanValueTypeTranslation() { + assertEquals(IAttributeRuntimeValueType.BOOLEAN, getAttrValRuntimeType(getModel(), "inputText/immediate")); + Entity attr = TaglibDomainMetaDataQueryHelper.getEntity(getModel(), "commandButton/rendered"); + List list = MetaDataEnabledProcessingFactory.getInstance().getAttributeValueRuntimeTypeFeatureProcessors(IPropertyPageDescriptor.class, null , attr); + assertNotNull(list); + assertTrue(list.size() > 0); + } + + public void testJavaClassTypeTranslation() { + assertEquals(IAttributeRuntimeValueType.JAVACLASS, getAttrValRuntimeType(getModel(), "column/faketypeattr")); + Trait t = getTrait(getModel(), "column/faketypeattr", "valid-interfaces"); + assertNotNull(t); + assertEquals("javax.faces.event.ActionListener", TraitValueHelper.getValueAsString(t)); + } + + public void testClasspathResourceTypeTranslation() { + assertEquals(IAttributeRuntimeValueType.RESOURCEBUNDLE, getAttrValRuntimeType(getModel(), "column/fakeBasename")); + } + + public void testColorTypeTranslation() { + assertEquals(IAttributeRuntimeValueType.COLOR, getAttrValRuntimeType(getModel(), "column/fakeColor")); + } + + public void testCSSClassTypeTranslation() { + assertEquals(IAttributeRuntimeValueType.CSSCLASS, getAttrValRuntimeType(getModel(), "selectBooleanCheckbox/styleClass")); + } + public void testCSSIdTypeTranslation() { + assertEquals(IAttributeRuntimeValueType.CSSID, getAttrValRuntimeType(getModel(), "column/fakecssid")); + } + public void testCSSStyleTypeTranslation() { + assertEquals(IAttributeRuntimeValueType.CSSSTYLE, getAttrValRuntimeType(getModel(), "selectBooleanCheckbox/style")); + } + public void testCurrencyCodeTypeTranslation() { + assertEquals(IAttributeRuntimeValueType.CURRENCYCODE, getAttrValRuntimeType(getModel(), "column/fakeCurrencyCode")); + } + public void testJavaScriptTypeTypeTranslation() { + assertEquals(IAttributeRuntimeValueType.SCRIPT, getAttrValRuntimeType(getModel(), "commandButton/onfocus")); + } + public void testLinkTypeTranslation() { + // none known usages + } + public void testLocaleTypeTranslation() { + assertEquals(IAttributeRuntimeValueType.LOCALE, getAttrValRuntimeType(getModel(), "column/fakeLocale")); + } + + public void testMethodBindingTypeTranslation() { + //validator + assertEquals(IAttributeRuntimeValueType.METHODBINDING, getAttrValRuntimeType(getModel(), "inputText/validator")); + Trait t = getTrait(getModel(), "inputText/validator", "runtime-param-types"); + assertNotNull(t); + assertTrue(t.getValue() instanceof ListOfValues); + List vals = TraitValueHelper.getValueAsListOfStrings(t); + assertEquals(3, vals.size()); + assertEquals("java.lang.Object", vals.get(2)); + + t = getTrait(getModel(), "inputText/validator", "runtime-return-type"); + assertNotNull(t); + assertEquals("void", TraitValueHelper.getValueAsString(t)); + + //actionListener + assertEquals(IAttributeRuntimeValueType.METHODBINDING, getAttrValRuntimeType(getModel(), "commandButton/actionListener")); + t = getTrait(getModel(), "commandButton/actionListener", "runtime-param-types"); + assertNotNull(t); + assertEquals("javax.faces.event.ActionEvent", TraitValueHelper.getValueAsString(t)); + + assertEquals(IAttributeRuntimeValueType.METHODBINDING, getAttrValRuntimeType(getModel(), "inputText/valueChangeListener")); + t = getTrait(getModel(), "inputText/valueChangeListener", "runtime-param-types"); + assertNotNull(t); + assertEquals("javax.faces.event.ValueChangeEvent", TraitValueHelper.getValueAsString(t)); + } + + public void testMultiChoiceTypeTypeTranslation() { + //i believe that this is a comma-delim enumerated type... noop for now + assertEquals(IAttributeRuntimeValueType.STRING, getAttrValRuntimeType(getModel(), "column/fakeMultiChoice")); + } + public void testNamedBooleanTypeTranslation() { + assertEquals(IAttributeRuntimeValueType.BOOLEAN, getAttrValRuntimeType(getModel(), "graphicImage/ismap")); + } + + public void testPropertyBindingTypeTranslation() { + assertEquals(IAttributeRuntimeValueType.VALUEBINDING, getAttrValRuntimeType(getModel(), "message/binding")); + } + + public void testRelativePathValueTypeTranslation() { + assertEquals(IAttributeRuntimeValueType.RELATIVEPATH, getAttrValRuntimeType(getModel(), "outputLink/value")); + } + + public void testTimeZoneTypeTranslation() { + assertEquals(IAttributeRuntimeValueType.TIMEZONE, getAttrValRuntimeType(getModel(), "column/fakeTimeZone")); + } + + public void testJavaScriptTypeTranslation() { + assertEquals(IAttributeRuntimeValueType.SCRIPT, getAttrValRuntimeType(getModel(), "commandButton/onclick")); + } + public void testWebPathTypeTranslation() { + assertEquals(IAttributeRuntimeValueType.WEBPATH, getAttrValRuntimeType(getModel(), "graphicImage/value")); + Trait trait = getTrait(getModel(), "graphicImage/value", "file-extensions"); + assertNotNull(trait); + assertEquals(3, TraitValueHelper.getValueAsListOfStrings(trait).size()); + } + + private Trait getTrait(Model model, String entityKey, String traitKey) { + Entity attrEntity = TaglibDomainMetaDataQueryHelper.getEntity(model, entityKey); + assertNotNull(attrEntity); + + return TaglibDomainMetaDataQueryHelper.getTrait(attrEntity, traitKey); + } + + private String getAttrValRuntimeType(Model model, String entityKey) { + Trait t = getTrait(model, entityKey, MetaDataEnabledProcessingFactory.ATTRIBUTE_VALUE_RUNTIME_TYPE_PROP_NAME); + assertNotNull(t); + return TraitValueHelper.getValueAsString(t); + } + + private void testProps(Model model, String entityKey, String requiredVal, String displayLabel, String description, String defaultValue, String cateagoryValue, String typeParam) { + Entity attrEntity = TaglibDomainMetaDataQueryHelper.getEntity(model, entityKey); + assertNotNull(attrEntity); + assertTrue(attrEntity.getChildEntities().size() == 0); + + //required + Trait t = TaglibDomainMetaDataQueryHelper.getTrait(attrEntity, "required"); + if (requiredVal != null){ + assertNotNull(t); + assertEquals(requiredVal, TraitValueHelper.getValueAsString(t)); + } + else + assertNull(t); + + //display-label + t = TaglibDomainMetaDataQueryHelper.getTrait(attrEntity, "display-label"); + if (displayLabel != null){ + assertNotNull(t); + assertEquals(displayLabel, TraitValueHelper.getValueAsString(t)); + } + else + assertNull(t); + + //description + t = TaglibDomainMetaDataQueryHelper.getTrait(attrEntity, "description"); + if (description != null){ + assertNotNull(t); + assertEquals(description, TraitValueHelper.getValueAsString(t)); + } + else + assertNull(t); + + //description + t = TaglibDomainMetaDataQueryHelper.getTrait(attrEntity, "default-value"); + if (defaultValue != null){ + assertNotNull(t); + assertEquals(defaultValue, TraitValueHelper.getValueAsString(t)); + } + else + assertNull(t); + + //category + t = TaglibDomainMetaDataQueryHelper.getTrait(attrEntity, IPropertyPageDescriptor.PROP_DESC_CATEGORY); + if (cateagoryValue != null){ + assertNotNull(t); + assertEquals(cateagoryValue, TraitValueHelper.getValueAsString(t)); + } + else + assertNull(t); + + //type-param + t = TaglibDomainMetaDataQueryHelper.getTrait(attrEntity, "type-param"); + if (typeParam != null){ + assertNotNull(t); + assertEquals(typeParam, TraitValueHelper.getValueAsString(t)); + } + else + assertNull(t); + + } + + private void testPossibleValues(Model model){ + //form/dir + List pvsList = MetaDataEnabledProcessingFactory.getInstance().getAttributeValueRuntimeTypeFeatureProcessors(IPossibleValues.class, null, uri, "form", "dir"); + assertNotNull(pvsList); + assertEquals(1, pvsList.size()); + assertTrue(pvsList.get(0) instanceof IPossibleValues); + IPossibleValues pvs = (IPossibleValues)pvsList.get(0); + assertEquals(2, pvs.getPossibleValues().size()); + + //form/lang + pvsList = MetaDataEnabledProcessingFactory.getInstance().getAttributeValueRuntimeTypeFeatureProcessors(IPossibleValues.class, null, uri, "form", "lang"); + assertNotNull(pvsList); + assertEquals(1, pvsList.size()); + assertTrue(pvsList.get(0) instanceof IPossibleValues); + pvs = (IPossibleValues)pvsList.get(0); + assertEquals(58, pvs.getPossibleValues().size()); + } + + private List getProcessorAdapters(Class featureClass, String tag, String attrName) { + return MetaDataEnabledProcessingFactory.getInstance(). + getAttributeValueRuntimeTypeFeatureProcessors(featureClass, docContext, + uri, tag , attrName); + } +} diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/AllTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/AllTests.java index ad426c2a7..ff153f0ad 100644 --- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/AllTests.java +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/AllTests.java @@ -39,15 +39,22 @@ public class AllTests { addTestSuite(suite, DoubleTypeTest.class); addTestSuite(suite, EnumeratedDoubleTypeTest.class); + addTestSuite(suite, ColorTypeTest.class); + addTestSuite(suite, LanguageCodeTypeTest.class); + addTestSuite(suite, LocaleTypeTest.class); + addTestSuite(suite, CurrencyCodeTypeTest.class); + addTestSuite(suite, TimeZoneTypeTest.class); + addTestSuite(suite, LengthTypeTest.class); + addTestSuite(suite, NumberPatternTypeTest.class); +// addTestSuite(suite, RelativePathTypeTest.class); +// addTestSuite(suite, WebPathTypeTest.class); + addTestSuite(suite, CharacterTypeTest.class); +// addTestSuite(suite, ScriptTypeTest.class); + addTestSuite(suite, LinkTypeTest.class); + addTestSuite(suite, ContentTypeTest.class); +// addTestSuite(suite, URITypeTest.class); + //Tests requiring JSF Implementation - addTestSuite(suite, StringTypeTest.class); - addTestSuite(suite, BooleanTypeTest.class); - addTestSuite(suite, IntegerTypeTest.class); - addTestSuite(suite, EnumeratedIntegerTypeTest.class); - addTestSuite(suite, LongTypeTest.class); - addTestSuite(suite, EnumeratedLongTypeTest.class); - addTestSuite(suite, DoubleTypeTest.class); - addTestSuite(suite, EnumeratedDoubleTypeTest.class); addTestSuite(suite, JavaClassTypeTest.class); addTestSuite(suite, FacesConfigConverterIDTypeTests.class); addTestSuite(suite, FacesConfigValidatorIDTypeTests.class); @@ -58,6 +65,9 @@ public class AllTests { addTestSuite(suite, ValueTypeTests.class); addTestSuite(suite, ActionTypeTests.class); + addTestSuite(suite, CSSClassTypeTests.class); + addTestSuite(suite, CSSStyleTypeTests.class); + addTestSuite(suite,JSFHTMLTestCase.class); //$JUnit-END$ diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/CSSClassTypeTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/CSSClassTypeTests.java new file mode 100644 index 000000000..48dba3e50 --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/CSSClassTypeTests.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.jsf.metadata.tests.taglibprocessing; + +import org.eclipse.jst.jsf.core.JSFVersion; +import org.eclipse.jst.jsf.metadata.tests.util.SingleJSPTestCase; +import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues; +import org.eclipse.jst.jsf.metadataprocessors.features.IValidValues; + +public class CSSClassTypeTests extends SingleJSPTestCase { + private final String tagName = "commandButton"; + private final String attrName = "class"; + + public CSSClassTypeTests(){ + super( "/testfiles/jsps/cssTypesTest.jsp.data/", + "/cssTypesTest.jsp", + JSFVersion.V1_1, + "/testfiles/web/faces-config_1_1.xml.data"); + } + + public void testGetPossibleValues() { + IPossibleValues pv = (IPossibleValues)getProcessor(IPossibleValues.class, JSF_HTML_URI, tagName, attrName); + assertNotNull(pv); + + //TODO: fill me in + } + + public void testIsValidValue() { + IValidValues vv = (IValidValues)getProcessor(IValidValues.class, JSF_HTML_URI, tagName, attrName); + assertNull(vv); + + } + + + +} diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/CSSStyleTypeTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/CSSStyleTypeTests.java new file mode 100644 index 000000000..3458269af --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/CSSStyleTypeTests.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.jsf.metadata.tests.taglibprocessing; + +import org.eclipse.jst.jsf.core.JSFVersion; +import org.eclipse.jst.jsf.metadata.tests.util.SingleJSPTestCase; +import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues; +import org.eclipse.jst.jsf.metadataprocessors.features.IValidValues; + +public class CSSStyleTypeTests extends SingleJSPTestCase { + private final String tagName = "commandButton"; + private final String attrName = "class"; + + public CSSStyleTypeTests(){ + super( "/testfiles/jsps/cssTypesTest.jsp.data/", + "/cssTypesTest.jsp", + JSFVersion.V1_1, + "/testfiles/web/faces-config_1_1.xml.data"); + } + + public void testGetPossibleValues() { + IPossibleValues pv = (IPossibleValues)getProcessor(IPossibleValues.class, JSF_HTML_URI, tagName, attrName); + assertNotNull(pv); + +// TODO: fill me in + } + + public void testIsValidValue() { + IValidValues vv = (IValidValues)getProcessor(IValidValues.class, JSF_HTML_URI, tagName, attrName); + assertNull(vv); + + + } + + + +} diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/CharacterTypeTest.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/CharacterTypeTest.java new file mode 100644 index 000000000..d67c58e8e --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/CharacterTypeTest.java @@ -0,0 +1,43 @@ +/******************************************************************************* + * Copyright (c) 2006 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.metadata.tests.taglibprocessing; + +import junit.framework.Assert; + +import org.eclipse.jst.jsf.metadataprocessors.features.IValidValues; + +public class CharacterTypeTest extends TaglibProcessingTestCase { + public void testPossibleValues() { + Assert.assertNotNull(possibleValueAdapters); + Assert.assertTrue(possibleValueAdapters.isEmpty()); + + } + + public void testValidValuesValues() { + Assert.assertNotNull(validValuesAdapters); + Assert.assertFalse(validValuesAdapters.isEmpty()); + + IValidValues pvs = (IValidValues) validValuesAdapters.get(0); + Assert.assertTrue(pvs.isValidValue("a")); + + + //negative + Assert.assertFalse(pvs.isValidValue("ab")); + pvs.getValidationMessages().clear(); + Assert.assertFalse(pvs.isValidValue("_a")); + pvs.getValidationMessages().clear(); + Assert.assertFalse(pvs.isValidValue("")); + pvs.getValidationMessages().clear(); + Assert.assertFalse(pvs.isValidValue(" a ")); + pvs.getValidationMessages().clear(); + } +} diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ComponentIDTypeTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ComponentIDTypeTests.java index d49a87f1b..845e827f1 100644 --- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ComponentIDTypeTests.java +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ComponentIDTypeTests.java @@ -11,6 +11,8 @@ package org.eclipse.jst.jsf.metadata.tests.taglibprocessing; +import junit.framework.Assert; + import org.eclipse.jst.jsf.core.JSFVersion; import org.eclipse.jst.jsf.metadata.tests.util.SingleJSPTestCase; import org.eclipse.jst.jsf.metadataprocessors.features.ELIsNotValidException; @@ -19,7 +21,8 @@ import org.eclipse.jst.jsf.metadataprocessors.features.IValidELValues; import org.eclipse.jst.jsf.metadataprocessors.features.IValidValues; public class ComponentIDTypeTests extends SingleJSPTestCase { - private final String tagName = "inputText"; + + private final String tagName = "commandButton"; private final String attrName = "id"; public ComponentIDTypeTests() { @@ -55,12 +58,46 @@ public class ComponentIDTypeTests extends SingleJSPTestCase { public void testIsValidValue() { IValidValues vv = (IValidValues)getProcessor(IValidValues.class, JSF_HTML_URI, tagName, attrName); assertNotNull(vv); - - assertTrue(vv.isValidValue("every non zero length string is valid!")); - assertNotNull(vv.getValidationMessages()); - assertEquals(0, vv.getValidationMessages().size()); - assertFalse(vv.isValidValue("")); +// +// assertTrue(vv.isValidValue("every non zero length string is valid!")); +// assertNotNull(vv.getValidationMessages()); +// assertEquals(0, vv.getValidationMessages().size()); +// assertFalse(vv.isValidValue("")); + //positive tests + Assert.assertTrue(vv.isValidValue("A")); + Assert.assertTrue(vv.isValidValue("Aa")); + Assert.assertTrue(vv.isValidValue("z.abc")); + Assert.assertTrue(vv.isValidValue("A1")); + Assert.assertTrue(vv.isValidValue("A-1")); + Assert.assertTrue(vv.isValidValue("A_a")); + Assert.assertTrue(vv.isValidValue("A:a")); + Assert.assertTrue(vv.isValidValue("A_")); + Assert.assertTrue(vv.isValidValue("a.")); + Assert.assertTrue(vv.isValidValue("Aa.")); + Assert.assertTrue(vv.isValidValue("_Aa")); + + //negative tests + Assert.assertFalse(vv.isValidValue(" ")); + vv.getValidationMessages().clear(); + + //will fail when we have proper regex validation +// Assert.assertFalse(vv.isValidValue("1Aa")); +// vv.getValidationMessages().clear(); +// Assert.assertFalse(vv.isValidValue(":Aa")); +// vv.getValidationMessages().clear(); +// Assert.assertFalse(vv.isValidValue("-Aa")); +// vv.getValidationMessages().clear(); +// Assert.assertFalse(vv.isValidValue(".Aa")); +// vv.getValidationMessages().clear(); + + // FIXME the below is currently failing and is commented out. +// Assert.assertFalse(vv.isValidValue("A$!a")); +// vv.getValidationMessages().clear(); +// Assert.assertFalse(vv.isValidValue("A:!a")); +// vv.getValidationMessages().clear(); +// Assert.assertFalse(vv.isValidValue("A(a")); +// vv.getValidationMessages().clear(); } } diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ContentTypeTest.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ContentTypeTest.java new file mode 100644 index 000000000..0ff164b23 --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/ContentTypeTest.java @@ -0,0 +1,44 @@ +/******************************************************************************* + * Copyright (c) 2006 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.metadata.tests.taglibprocessing; + +import junit.framework.Assert; + +import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues; +import org.eclipse.jst.jsf.metadataprocessors.features.IValidValues; + +public class ContentTypeTest extends TaglibProcessingTestCase { + public void testPossibleValues() { + Assert.assertNotNull(possibleValueAdapters); + Assert.assertFalse(possibleValueAdapters.isEmpty()); + + IPossibleValues pvs = (IPossibleValues) possibleValueAdapters.get(0); + Assert.assertTrue(pvs.getPossibleValues().size() >= 8); + } + + public void testValidValuesValues() { + Assert.assertNotNull(validValuesAdapters); + Assert.assertFalse(validValuesAdapters.isEmpty()); + + IValidValues pvs = (IValidValues) validValuesAdapters.get(0); + Assert.assertTrue(pvs.isValidValue("a")); + Assert.assertTrue(pvs.isValidValue("foo_bar")); + + //negative + Assert.assertFalse(pvs.isValidValue("")); + pvs.getValidationMessages().clear(); + Assert.assertFalse(pvs.isValidValue(" ")); + pvs.getValidationMessages().clear(); + Assert.assertFalse(pvs.isValidValue(null)); + pvs.getValidationMessages().clear(); + } +} diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/CurrencyCodeTypeTest.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/CurrencyCodeTypeTest.java new file mode 100644 index 000000000..26baad88a --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/CurrencyCodeTypeTest.java @@ -0,0 +1,41 @@ +package org.eclipse.jst.jsf.metadata.tests.taglibprocessing; + +import junit.framework.Assert; + +import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues; +import org.eclipse.jst.jsf.metadataprocessors.features.IValidValues; +import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor; + +/** + * + * + */ +public class CurrencyCodeTypeTest extends TaglibProcessingTestCase { + public void testPossibleValues(){ + Assert.assertNotNull(possibleValueAdapters); + IPossibleValues pvs = (IPossibleValues)possibleValueAdapters.get(0); + Assert.assertEquals(173, pvs.getPossibleValues().size()); + } + + public void testValidValues(){ + Assert.assertNotNull(validValuesAdapters); + Assert.assertFalse(validValuesAdapters.isEmpty()); + + IValidValues vv =(IValidValues)validValuesAdapters.get(0); + //positive tests + assertTrue(vv.isValidValue("USD")); + assertTrue(vv.isValidValue("AOA")); + //negative tests + vv.getValidationMessages().clear(); + assertFalse(vv.isValidValue("XXX")); + } + + public void testPropertyPageDescriptor(){ + Assert.assertNotNull(propertyPageDescriptorAdapters); + Assert.assertFalse(propertyPageDescriptorAdapters.isEmpty()); + + IPropertyPageDescriptor ppd =(IPropertyPageDescriptor)propertyPageDescriptorAdapters.get(0); + assertEquals(false, ppd.isRequired()); + + } +} diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/LanguageCodeTypeTest.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/LanguageCodeTypeTest.java new file mode 100644 index 000000000..727f4f330 --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/LanguageCodeTypeTest.java @@ -0,0 +1,38 @@ +package org.eclipse.jst.jsf.metadata.tests.taglibprocessing; + +import junit.framework.Assert; + +import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues; +import org.eclipse.jst.jsf.metadataprocessors.features.IValidValues; +import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor; + +public class LanguageCodeTypeTest extends TaglibProcessingTestCase { + public void testPossibleValues(){ + Assert.assertNotNull(possibleValueAdapters); + IPossibleValues pvs = (IPossibleValues)possibleValueAdapters.get(0); + Assert.assertEquals(58, pvs.getPossibleValues().size()); + } + + public void testValidValues(){ + Assert.assertNotNull(validValuesAdapters); + Assert.assertFalse(validValuesAdapters.isEmpty()); + + IValidValues vv =(IValidValues)validValuesAdapters.get(0); + //positive tests + assertTrue(vv.isValidValue("en")); + //negative tests + vv.getValidationMessages().clear(); + assertFalse(vv.isValidValue("xxx")); + } + + public void testPropertyPageDescriptor(){ + Assert.assertNotNull(propertyPageDescriptorAdapters); + Assert.assertFalse(propertyPageDescriptorAdapters.isEmpty()); + + IPropertyPageDescriptor ppd =(IPropertyPageDescriptor)propertyPageDescriptorAdapters.get(0); + //positive tests + assertEquals("ACategory", ppd.getCategory()); + assertEquals(false, ppd.isRequired()); + + } +} diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/LinkTypeTest.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/LinkTypeTest.java new file mode 100644 index 000000000..e17a3bbf6 --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/LinkTypeTest.java @@ -0,0 +1,44 @@ +/******************************************************************************* + * Copyright (c) 2006 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.metadata.tests.taglibprocessing; + +import junit.framework.Assert; + +import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues; +import org.eclipse.jst.jsf.metadataprocessors.features.IValidValues; + +public class LinkTypeTest extends TaglibProcessingTestCase { + public void testPossibleValues() { + Assert.assertNotNull(possibleValueAdapters); + Assert.assertFalse(possibleValueAdapters.isEmpty()); + + IPossibleValues pvs = (IPossibleValues) possibleValueAdapters.get(0); + Assert.assertTrue(pvs.getPossibleValues().size() >= 8); + } + + public void testValidValuesValues() { + Assert.assertNotNull(validValuesAdapters); + Assert.assertFalse(validValuesAdapters.isEmpty()); + + IValidValues pvs = (IValidValues) validValuesAdapters.get(0); + Assert.assertTrue(pvs.isValidValue("a")); + Assert.assertTrue(pvs.isValidValue("Chapter")); + + //negative + Assert.assertFalse(pvs.isValidValue("")); + pvs.getValidationMessages().clear(); + Assert.assertFalse(pvs.isValidValue(" ")); + pvs.getValidationMessages().clear(); + Assert.assertFalse(pvs.isValidValue(null)); + pvs.getValidationMessages().clear(); + } +} diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/LocaleTypeTest.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/LocaleTypeTest.java new file mode 100644 index 000000000..c01711f43 --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/LocaleTypeTest.java @@ -0,0 +1,38 @@ +package org.eclipse.jst.jsf.metadata.tests.taglibprocessing; + +import junit.framework.Assert; + +import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues; +import org.eclipse.jst.jsf.metadataprocessors.features.IValidValues; +import org.eclipse.jst.pagedesigner.editors.properties.IPropertyPageDescriptor; + +public class LocaleTypeTest extends TaglibProcessingTestCase { + public void testPossibleValues(){ + Assert.assertNotNull(possibleValueAdapters); + IPossibleValues pvs = (IPossibleValues)possibleValueAdapters.get(0); + Assert.assertEquals(135, pvs.getPossibleValues().size()); + } + + public void testValidValues(){ + Assert.assertNotNull(validValuesAdapters); + Assert.assertFalse(validValuesAdapters.isEmpty()); + + IValidValues vv =(IValidValues)validValuesAdapters.get(0); + //positive tests + assertTrue(vv.isValidValue("en")); + //negative tests + vv.getValidationMessages().clear(); + assertFalse(vv.isValidValue("xxx")); + } + + public void testPropertyPageDescriptor(){ + Assert.assertNotNull(propertyPageDescriptorAdapters); + Assert.assertFalse(propertyPageDescriptorAdapters.isEmpty()); + + IPropertyPageDescriptor ppd =(IPropertyPageDescriptor)propertyPageDescriptorAdapters.get(0); + //positive tests + assertEquals("ACategory", ppd.getCategory()); + assertEquals(false, ppd.isRequired()); + + } +} diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/NumberPatternTypeTest.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/NumberPatternTypeTest.java new file mode 100644 index 000000000..5e852a9c0 --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/NumberPatternTypeTest.java @@ -0,0 +1,31 @@ +/******************************************************************************* + * Copyright (c) 2006 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.metadata.tests.taglibprocessing; + +import junit.framework.Assert; + +import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues; + +public class NumberPatternTypeTest extends TaglibProcessingTestCase { + public void testPossibleValues() { + Assert.assertNotNull(possibleValueAdapters); + Assert.assertFalse(possibleValueAdapters.isEmpty()); + + IPossibleValues pvs = (IPossibleValues) possibleValueAdapters.get(0); + Assert.assertTrue(pvs.getPossibleValues().size() >= 8); + } + + public void testValidValuesValues() { + Assert.assertNotNull(validValuesAdapters); + Assert.assertTrue(validValuesAdapters.isEmpty()); + } +} diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/TaglibProcessingTestCase.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/TaglibProcessingTestCase.java index c64d60a87..7bde25dbe 100644 --- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/TaglibProcessingTestCase.java +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/TaglibProcessingTestCase.java @@ -15,12 +15,14 @@ import java.util.List; import org.eclipse.jst.jsf.common.metadata.tests.AbstractBaseMetaDataTestCase; import org.eclipse.jst.jsf.metadata.tests.MetadataTestsPlugin; +import org.eclipse.jst.jsf.metadataprocessors.IMetaDataEnabledFeature; import org.eclipse.jst.jsf.metadataprocessors.MetaDataEnabledProcessingFactory; import org.eclipse.jst.jsf.metadataprocessors.features.ICreateValues; import org.eclipse.jst.jsf.metadataprocessors.features.IDefaultValue; 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.pagedesigner.editors.properties.IPropertyPageDescriptor; public abstract class TaglibProcessingTestCase extends AbstractBaseMetaDataTestCase { // protected IStructuredDocumentContext docContext; @@ -35,6 +37,7 @@ public abstract class TaglibProcessingTestCase extends AbstractBaseMetaDataTestC protected List<?> defaultValueAdapters; protected List<?> createValuesAdapters; protected List<?> validELValuesAdapters; + protected List<?> propertyPageDescriptorAdapters; public void setUp() throws Exception{ super.setUp(); @@ -44,6 +47,7 @@ public abstract class TaglibProcessingTestCase extends AbstractBaseMetaDataTestC defaultValueAdapters = getProcessorAdapters(IDefaultValue.class); createValuesAdapters = getProcessorAdapters(ICreateValues.class); validELValuesAdapters = getProcessorAdapters(IValidELValues.class); + propertyPageDescriptorAdapters = getProcessorAdapters(IPropertyPageDescriptor.class); } private String getAttributeNameFromTest(){ @@ -55,7 +59,7 @@ public abstract class TaglibProcessingTestCase extends AbstractBaseMetaDataTestC return attributeName; } - protected List<?> getProcessorAdapters(Class<?> featureClass) { + protected List<? extends IMetaDataEnabledFeature> getProcessorAdapters(Class<?> featureClass) { return MetaDataEnabledProcessingFactory.getInstance(). getAttributeValueRuntimeTypeFeatureProcessors(featureClass, docContext, uri, tag , getAttributeNameFromTest()); diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/TimeZoneTypeTest.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/TimeZoneTypeTest.java new file mode 100644 index 000000000..18afcb107 --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/metadata/tests/taglibprocessing/TimeZoneTypeTest.java @@ -0,0 +1,27 @@ +package org.eclipse.jst.jsf.metadata.tests.taglibprocessing; + +import junit.framework.Assert; + +import org.eclipse.jst.jsf.metadataprocessors.features.IPossibleValues; +import org.eclipse.jst.jsf.metadataprocessors.features.IValidValues; + +public class TimeZoneTypeTest extends TaglibProcessingTestCase { + public void testPossibleValues(){ + Assert.assertNotNull(possibleValueAdapters); + IPossibleValues pvs = (IPossibleValues)possibleValueAdapters.get(0); + Assert.assertEquals(585, pvs.getPossibleValues().size()); + } + + public void testValidValues(){ + Assert.assertNotNull(validValuesAdapters); + Assert.assertFalse(validValuesAdapters.isEmpty()); + + IValidValues vv =(IValidValues)validValuesAdapters.get(0); + //positive tests + assertTrue(vv.isValidValue("America/Edmonton")); + //negative tests + vv.getValidationMessages().clear(); + assertFalse(vv.isValidValue("xxx")); + } + +} diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/jsps/cssTypesTest.html b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/jsps/cssTypesTest.html new file mode 100644 index 000000000..76e48b9f3 --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/jsps/cssTypesTest.html @@ -0,0 +1,18 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<link rel="stylesheet" href="mystyle.css"> +<link rel="stylesheet" href="foo.css"> +<style type="text/css"> + body { + color: purple; + background-color: red; } + </style> +<title>Insert title here</title> +</head> +<body class="" style=""> + <b style="color: green;">Hello</b> + <a id="a" class="" style="color: HoneyDew " href="Foo" /></output> +</body> +</html>
\ No newline at end of file diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/jsps/cssTypesTest.jsp.data b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/jsps/cssTypesTest.jsp.data new file mode 100644 index 000000000..f2daed834 --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/jsps/cssTypesTest.jsp.data @@ -0,0 +1,14 @@ +<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@taglib
+ uri="http://java.sun.com/jsf/html" prefix="h"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<link rel="stylesheet" href="mystyle.css">
+<title>Insert title here</title>
+</head>
+<body>
+ <input id="a" class=""/>
+</body>
+</html>
\ No newline at end of file diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/jsps/foo.css b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/jsps/foo.css new file mode 100644 index 000000000..890fcd06b --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/jsps/foo.css @@ -0,0 +1,157 @@ +BODY, P, LI, UL, OL { + font-family: Arial, Helvetica, sans-serif; + font-size: 97%; + color:#000000; + list-style-position: outside; +} + +A:link { + font-family: Arial, Helvetica, sans-serif; + color:#663300; + +} + +A:active { + font-family: Arial, Helvetica, sans-serif; + color:#ff6600; + +} + +A:visited { + font-family: Arial, Helvetica, sans-serif; + color:#996633; + +} + +A.navigation:link +{ + font-family: Arial, Helvetica, sans-serif; + font-size:65%; + color:#996633; +} + +A.navigation:active +{ + font-family: Arial, Helvetica, sans-serif; + font-size:65%; + color:#996633; +} + +A.navigation:visited +{ + font-family: Arial, Helvetica, sans-serif; + font-size:65%; + color:#996633; +} + +p.listpara +{text-indent: 15%} + +H1 { + font-family: Arial, Helvetica, sans-serif; + font-size:170%; + color:#336699; + border : solid #CCCC99; + width : 100%; + border-width : 0px 0px 2px 0px; +} + +H2 { + font-family: Arial, Helvetica, sans-serif; + font-size:130%; + color:#336699; + border : solid #cccc99; + border-width : 0px 0px 2px 0px; + width : 100%; +} + +H3 { + font-family: Arial, Helvetica, sans-serif; + font-size:110%; + color:#336699; + width : 100%; +} + +H4 { + font-family: Arial, Helvetica, sans-serif; + font-size:92%; + color:#000000; + font-weight: bold; + width : 100%; +} + +.code_no_color { + color : #000000; + font-family : "Courier New", "Courier", "monospace"; +} + +code { + color : #336699; + font-family : "Courier New", "Courier", "monospace"; +} + +P.indent { + text-indent: 9%; +} + +table.borders { + border : 1% solid #BDB76B; +} + +TR { + text-align : left; + vertical-align : top; +} + +TH { + font-family: Arial, Helvetica, sans-serif; + font-size: 11pt; + color:#000000; + font-weight: bold; +} + +TD { + font-family: Arial, Helvetica, sans-serif; + font-size: 11pt%; + color:#000000; +} + +.smalltext { + font-size:80%; +} + +p.note { + display: block; + font-family: Arial, Helvetica, Geneva, sans-serif; + font-size: 95%; +} + +p.warning { + display: block; + font-family: Arial, Helvetica, Geneva, sans-serif; + font-size: 95%; +} + +pre { + font-family: "Courier New", Courier, mono; + font-size: 92%; + text-indent : 15%; +} + +.GUITag { + font-family: Arial, Helvetica, Geneva, sans-serif; + font-size: 95%; + font-weight: bold; + font-style: normal; +} + +.PropertyName { + font-family: "Courier New", Courier, mono; + font-style: normal; +} + +.GlossaryItem { + color : #008080; + font-family: Arial, Helvetica, sans-serif; + font-size : 95%; +} diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/jsps/mystyle.css b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/jsps/mystyle.css new file mode 100644 index 000000000..97b7c22aa --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/jsps/mystyle.css @@ -0,0 +1,31 @@ +body { + padding-left: 11em; + font-family: Georgia, "Times New Roman", + Times, serif; +} +ul.navbar { + list-style-type: none; + padding: 0; + margin: 0; + position: absolute; + top: 2em; + left: 1em; + width: 9em } +h1 { + font-family: Helvetica, Geneva, Arial, + SunSans-Regular, sans-serif } +ul.navbar li { + background: white; + margin: 0.5em 0; + padding: 0.3em; + border-right: 1em solid black } +ul.navbar a { + text-decoration: none } +a:link { + color: blue } +a:visited { + color: purple } +address { + margin-top: 1em; + padding-top: 1em; + border-top: thin dotted } diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/jsps/propertyDescTests.jsp b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/jsps/propertyDescTests.jsp new file mode 100644 index 000000000..2da57b688 --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/jsps/propertyDescTests.jsp @@ -0,0 +1,13 @@ +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1"%> + <%@ taglib prefix="x" uri="http://org.eclipse.jsf/propertyDescriptorTest" %> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Insert title here</title> +</head> +<body> + <x:Tag Attr1="y" boolAttr="true" DeafultAttr="x"/> +</body> +</html>
\ No newline at end of file diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/metadata/jsf_tagprocessing.xml b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/metadata/jsf_tagprocessing.xml index 0d0088f44..390c16e78 100644 --- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/metadata/jsf_tagprocessing.xml +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/metadata/jsf_tagprocessing.xml @@ -166,5 +166,86 @@ </trait> <trait id="default-value"><value>Black</value></trait> </entity> + <entity id="LanguageCodeType"> + <trait id="attribute-value-runtime-type"> + <value>org.eclipse.jst.jsf.core.attributevalues.LanguageCodeType</value> + </trait> + <trait id="category"> + <value>ACategory</value> + </trait> + </entity> + <entity id="LocaleType"> + <trait id="attribute-value-runtime-type"> + <value>org.eclipse.jst.jsf.core.attributevalues.LocaleType</value> + </trait> + <trait id="category"> + <value>ACategory</value> + </trait> + </entity> + <entity id="CurrencyCodeType"> + <trait id="attribute-value-runtime-type"> + <value>org.eclipse.jst.jsf.core.attributevalues.CurrencyCodeType</value> + </trait> + </entity> + <entity id="TimeZoneType"> + <trait id="attribute-value-runtime-type"> + <value>org.eclipse.jst.jsf.core.attributevalues.TimeZoneType</value> + </trait> + </entity> + <entity id="RelativePathType"> + <trait id="attribute-value-runtime-type"> + <value>org.eclipse.jst.jsf.core.attributevalues.RelativePathType</value> + </trait> + </entity> + <entity id="WebPathType"> + <trait id="attribute-value-runtime-type"> + <value>org.eclipse.jst.jsf.core.attributevalues.WebPathType</value> + </trait> + </entity> + <entity id="JavaScriptType"> + <trait id="attribute-value-runtime-type"> + <value>org.eclipse.jst.jsf.core.attributevalues.JavaScriptType</value> + </trait> + </entity> + <entity id="CSSClassType"> + <trait id="attribute-value-runtime-type"> + <value>org.eclipse.jst.pagedesigner.attributevalues.CSSClassType</value> + </trait> + </entity> + <entity id="CSSStyleType"> + <trait id="attribute-value-runtime-type"> + <value>org.eclipse.jst.pagedesigner.attributevalues.CSSStyleType</value> + </trait> + </entity> + <entity id="ComponentIDType"> + <trait id="attribute-value-runtime-type"> + <value>org.eclipse.jst.jsf.core.attributevalues.ComponentIDType</value> + </trait> + </entity> + <entity id="CharacterType"> + <trait id="attribute-value-runtime-type"> + <value>org.eclipse.jst.jsf.core.attributevalues.CharacterType</value> + </trait> + </entity> + <entity id="ScriptType"> + <trait id="attribute-value-runtime-type"> + <value>org.eclipse.jst.jsf.core.attributevalues.ScriptType</value> + </trait> + </entity> + <entity id="LinkType"> + <trait id="attribute-value-runtime-type"> + <value>org.eclipse.jst.jsf.core.attributevalues.LinkType</value> + </trait> + </entity> + <entity id="ContentType"> + <trait id="attribute-value-runtime-type"> + <value>org.eclipse.jst.jsf.core.attributevalues.ContentType</value> + </trait> + </entity> + <entity id="NumberPatternType"> + <trait id="attribute-value-runtime-type"> + <value>org.eclipse.jst.jsf.core.attributevalues.NumberPatternType</value> + </trait> + </entity> </entity> </md:metadatamodel> diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/metadata/propertyDescriptorTest.xml b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/metadata/propertyDescriptorTest.xml new file mode 100644 index 000000000..cb87f4ab3 --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/metadata/propertyDescriptorTest.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8"?> +<metadatamodel + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" + xmlns:mdt="http://org.eclipse.jst.jsf.common.metadata/metadataTraitTypes.ecore" + xmlns:qe="http://org.eclipse.jsf.pagedesigner/QuickEditTabSections.ecore" + id="http://org.eclipse.jsf/propertyDescriptorTest" + type="tagFile"> + + <entity id="Tag"> + <entity id="Attr1"> + <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>A</item> + <item>B</item> + <item>C</item> + <item>D</item> + </value> + </trait> + <trait id="displayed-values"> + <value xsi:type="mdt:ListOfValues"> + <item>A FirstVal</item> + <item>B SecondVal</item> + <item>C ThirdVal</item> + <item>D FourthVal</item> + </value> + </trait> + <trait id="display-label"> + <value>MyAttr1</value> + </trait> + <trait id="description"> + <value>This is a description.</value> + </trait> + <trait id="category"> + <value>CategoryName</value> + </trait> + <trait id="small-icon"> + <value>/testfiles/icons/attr_val.gif</value> + </trait> + <trait id="default-value"> + <value>A</value> + </trait> + <trait id="required"> + <value>true</value> + </trait> + </entity> + <entity id="DefaultAttr"> + <trait id="attribute-value-runtime-type"> + <value>org.eclipse.jst.jsf.core.attributevalues.StringType</value> + </trait> + <trait id="cell-editor"> + <value>org.eclipse.jface.viewers.TextCellEditor</value> + </trait> + </entity> + <entity id="boolAttr"> + <trait id="attribute-value-runtime-type"> + <value>org.eclipse.jst.jsf.core.attributevalues.BooleanType</value> + </trait> + </entity> + </entity> +</metadatamodel> diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/metadata/quickEditSectionTest.xml b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/metadata/quickEditSectionTest.xml new file mode 100644 index 000000000..9567ffda3 --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/metadata/quickEditSectionTest.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<metadatamodel + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" + xmlns:mdt="http://org.eclipse.jst.jsf.common.metadata/metadataTraitTypes.ecore" + xmlns:qe="http://org.eclipse.jsf.pagedesigner/QuickEditTabSections.ecore" + id="http://org.eclipse.jsf/quickEditSectionTest" + type="tagFile"> + + <entity id="A"> + <entity id="attr1"/> + <entity id="attr2"/> + <trait id="quick-edit-tab"> + <value xsi:type="qe:QuickEditTabSections"> + <section id="attr1" type="ATTRIBUTE" /> + <section id="attr2"/> <!-- ATTRIBUTE type is default --> + <section id="section1" type="SECTION"/> + </value> + </trait> + </entity> +</metadatamodel>
\ No newline at end of file diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/metadata/sybasejsfhtml.properties b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/metadata/sybasejsfhtml.properties new file mode 100644 index 000000000..9b68fcd37 --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/metadata/sybasejsfhtml.properties @@ -0,0 +1,112 @@ +############################################################################### +# 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.accept=Accept +Attribute.Label.acceptcharset=Accept Charset +Attribute.Label.accesskey=Access Key +Attribute.Label.action=Action +Attribute.Label.actionListener=ActionListener +Attribute.Label.alt=Alt +Attribute.Label.bgcolor=BG Color +Attribute.Label.binding=Binding +Attribute.Label.border=Border +Attribute.Label.cellpadding=Cell Padding +Attribute.Label.cellspacing=Cell Spacing +Attribute.Label.charset=Charset +Attribute.Label.cols=Cols +Attribute.Label.columnClasses=Column Classes +Attribute.Label.columns=Columns +Attribute.Label.converter=Converter +Attribute.Label.coords=Coords +Attribute.Label.dir=Dir +Attribute.Label.disabled=Disabled +Attribute.Label.disabledClass=Disabled Class +Attribute.Label.enabledClass=Enabled Class +Attribute.Label.enctype=Enctype +Attribute.Label.errorClass=Error Class +Attribute.Label.errorStyle=Error Style +Attribute.Label.escape=Escape +Attribute.Label.fatalClass=Fatal Class +Attribute.Label.fatalStyle=Fatal Style +Attribute.Label.first=First +Attribute.Label.footerClass=Footer Class +Attribute.Label.for=For +Attribute.Label.frame=Frame +Attribute.Label.globalOnly=Global Only +Attribute.Label.headerClass=Header Class +Attribute.Label.height=Height +Attribute.Label.hreflang=Hreflang +Attribute.Label.id=ID +Attribute.Label.image=Image +Attribute.Label.immediate=Immediate +Attribute.Label.infoClass=Info Class +Attribute.Label.infoStyle=Info Style +Attribute.Label.ismap=Ismap +Attribute.Label.lang=Lang +Attribute.Label.layout=Layout +Attribute.Label.link=Link +Attribute.Label.longdesc=Longdesc +Attribute.Label.maxlength=Max Length +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.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.readonly=Read Only +Attribute.Label.redisplay=Redisplay +Attribute.Label.rel=Rel +Attribute.Label.rendered=Rendered +Attribute.Label.required=Required +Attribute.Label.rev=Rev +Attribute.Label.rowClasses=Row Classes +Attribute.Label.rows=Rows +Attribute.Label.rules=Rules +Attribute.Label.shape=Shape +Attribute.Label.showDetail=Show Detail +Attribute.Label.showSummary=Show Summary +Attribute.Label.size=Size +Attribute.Label.style=Style +Attribute.Label.styleClass=Style Class +Attribute.Label.summary=Summary +Attribute.Label.tabindex=Tab Index +Attribute.Label.target=Target +Attribute.Label.title=Title +Attribute.Label.tooltip=Tooltip +Attribute.Label.type=Type +Attribute.Label.url=URL +Attribute.Label.usemap=Usemap +Attribute.Label.validator=Validator +Attribute.Label.value=Value +Attribute.Label.valueChangeListener=ValueChangeListener +Attribute.Label.var=Var +Attribute.Label.warnClass=Warn Class +Attribute.Label.warnStyle=Warn Style +Attribute.Label.width=Width +Category.Label.CSS=CSS +Category.Label.CSS2=CSS2 +Category.Label.CSS3=CSS3 +Category.Label.CSS4=CSS4 +Category.Label.Event=Event +Category.Label.HTML=HTML +Category.Label.JSF=JSF +Category.Label.Language=Language +Category.Label.Link=Link +Category.Label.Table=Table diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/metadata/sybasejsfhtml.xml b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/metadata/sybasejsfhtml.xml new file mode 100644 index 000000000..936a5b277 --- /dev/null +++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/metadata/sybasejsfhtml.xml @@ -0,0 +1,730 @@ +<?xml version="1.0" ?> +<taglib uri="http://SybaseMD.test.jsfhtml"> + <tag name="column"> + <category name="JSF" displaylabel="%Category.Label.JSF"> + <attribute name="id" displaylabel="%Attribute.Label.id" /> + <attribute name="binding" type="PROPERTYBINDING" + displaylabel="%Attribute.Label.binding" /> + <attribute name="rendered" type="BOOLEAN" + displaylabel="%Attribute.Label.rendered" /> + <attribute name="faketypeattr" type="CLASSNAME" required="required" + typeparam="superType=I:javax.faces.event.ActionListener" + displaylabel="faketypeattr" /> + <attribute name="fakeBasename" type="CLASSPATH_RESOURCE" required="required" + displaylabel="fakeBasename" /> + <attribute name="fakeColor" type="COLOR" + displaylabel="fakeColor" /> + <attribute name="fakecssid" type="CSSID" + displaylabel="fakecssid" /> + <attribute name="fakeCurrencyCode" + displaylabel="fakeCurrencyCode" type="CURRENCYCODE" /> + <attribute name="fakeLocale" + displaylabel="fakeLocale" type="LOCALE" /> + <attribute name="fakeTimeZone" + displaylabel="fakeTimeZone" type="TIMEZONE" /> + <attribute name="fakeMultiChoice" + displaylabel="fakeMultiChoice" type="MULTICHOICE" /> + </category> + </tag> + <tag name="commandButton"> + <referedcategory ref="JSF"> + <includeattrs> + <attribute name="action" + displaylabel="%Attribute.Label.action" description="action"/> + <attribute name="actionListener" type="METHODBINDING" + displaylabel="%Attribute.Label.actionListener" /> + </includeattrs> + <excludeattrs + refs="converter,validator,valueChangeListener,required" /> + </referedcategory> + <referedcategory ref="Language" /> + <referedcategory ref="CSS" /> + <referedcategory ref="Event" /> + <referedcategory ref="HTML"> + <includeattrs> + <attribute name="type" type="ENUMERATED" + displaylabel="%Attribute.Label.type"> + <option key="submit" value="submit" default="default"/> + <option key="reset" value="reset" /> + </attribute> + <attribute name="image" type="RELATIVEPATH" + typeparam="suffix=jpg;gif;png" + displaylabel="%Attribute.Label.image" /> + <attribute name="alt" + displaylabel="%Attribute.Label.alt" /> + </includeattrs> + </referedcategory> + </tag> + <tag name="commandLink"> + <referedcategory ref="JSF"> + <includeattrs> + <attribute name="action" + displaylabel="%Attribute.Label.action" /> + <attribute name="actionListener" type="METHODBINDING" + displaylabel="%Attribute.Label.actionListener" /> + </includeattrs> + <excludeattrs + refs="converter,validator,valueChangeListener,required" /> + </referedcategory> + <referedcategory ref="Language" /> + <referedcategory ref="CSS" /> + <referedcategory ref="Event"> + <excludeattrs refs="onchange,onclick,onselect" /> + </referedcategory> + <referedcategory ref="Link" displaylabel="%Category.Label.HTML" /> + </tag> + <tag name="dataTable"> + <category name="JSF" displaylabel="%Category.Label.JSF"> + <attribute name="id" displaylabel="%Attribute.Label.id" /> + <attribute name="value" + displaylabel="%Attribute.Label.value" /> + <attribute name="binding" type="PROPERTYBINDING" + displaylabel="%Attribute.Label.binding" /> + <attribute name="var" displaylabel="%Attribute.Label.var" /> + <attribute name="rendered" type="BOOLEAN" + displaylabel="%Attribute.Label.rendered" /> + <attribute name="rows" displaylabel="%Attribute.Label.rows" /> + <attribute name="first" + displaylabel="%Attribute.Label.first" /> + </category> + <referedcategory ref="Language" /> + <referedcategory ref="CSS3" displaylabel="%Category.Label.CSS" /> + <referedcategory ref="Event"> + <excludeattrs refs="onblur,onchange,onfocus,onselect" /> + </referedcategory> + <referedcategory ref="Table" + displaylabel="%Category.Label.HTML" /> + </tag> + <tag name="form"> + <category name="JSF" displaylabel="%Category.Label.JSF"> + <attribute name="id" displaylabel="%Attribute.Label.id" /> + <attribute name="binding" type="PROPERTYBINDING" + displaylabel="%Attribute.Label.binding" /> + <attribute name="rendered" type="BOOLEAN" + displaylabel="%Attribute.Label.rendered" /> + </category> + <referedcategory ref="Language" /> + <referedcategory ref="CSS" /> + <referedcategory ref="Event"> + <includeattrs> + <attribute name="onreset" + displaylabel="%Attribute.Label.onreset" /> + <attribute name="onsubmit" + displaylabel="%Attribute.Label.onsubmit" /> + </includeattrs> + <excludeattrs refs="onblur,onchange,onfocus,onselect" /> + </referedcategory> + <category name="HTML" displaylabel="%Category.Label.HTML"> + <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="accept" + displaylabel="%Attribute.Label.accept" /> + <attribute name="acceptcharset" + displaylabel="%Attribute.Label.acceptcharset" /> + <attribute name="enctype" + displaylabel="%Attribute.Label.enctype" type="ENUMERATED"> + <option key="application/x-www-form-urlencoded" + value="application/x-www-form-urlencoded" default="default"/> + </attribute> + <attribute name="title" + displaylabel="%Attribute.Label.title" /> + </category> + </tag> + <tag name="graphicImage"> + <category name="JSF" displaylabel="%Category.Label.JSF"> + <attribute name="value" type="WEBPATH" + typeparam="suffix=jpg;gif;png" + displaylabel="%Attribute.Label.value" /> + <attribute name="url" type="WEBPATH" + typeparam="suffix=jpg;gif;png" displaylabel="%Attribute.Label.url" /> + <attribute name="binding" type="PROPERTYBINDING" + displaylabel="%Attribute.Label.binding" /> + <attribute name="id" displaylabel="%Attribute.Label.id" /> + <attribute name="rendered" type="BOOLEAN" + displaylabel="%Attribute.Label.rendered" /> + </category> + <referedcategory ref="Language" /> + <referedcategory ref="CSS" /> + <referedcategory ref="Event"> + <excludeattrs refs="onblur,onchange,onfocus,onselect" /> + </referedcategory> + <category name="HTML" displaylabel="%Category.Label.HTML"> + <attribute name="ismap" type="NAMED-BOOLEAN" + displaylabel="%Attribute.Label.ismap" /> + <attribute name="longdesc" type="RELATIVEPATH" + displaylabel="%Attribute.Label.longdesc" /> + <attribute name="alt" displaylabel="%Attribute.Label.alt" /> + <attribute name="height" + displaylabel="%Attribute.Label.height" /> + <attribute name="title" + displaylabel="%Attribute.Label.title" /> + <attribute name="usemap" + displaylabel="%Attribute.Label.usemap" /> + <attribute name="width" + displaylabel="%Attribute.Label.width" /> + </category> + </tag> + <tag name="inputHidden"> + <referedcategory ref="JSF" /> + </tag> + <tag name="inputSecret"> + <referedcategory ref="JSF" /> + <referedcategory ref="Language" /> + <referedcategory ref="CSS" /> + <referedcategory ref="Event" /> + <referedcategory ref="HTML"> + <includeattrs> + <attribute name="maxlength" + displaylabel="%Attribute.Label.maxlength" /> + <attribute name="redisplay" type="BOOLEAN" + displaylabel="%Attribute.Label.redisplay" /> + <attribute name="alt" + displaylabel="%Attribute.Label.alt" /> + <attribute name="size" + displaylabel="%Attribute.Label.size" /> + </includeattrs> + </referedcategory> + </tag> + <tag name="inputText"> + <referedcategory ref="JSF" /> + <referedcategory ref="Language" /> + <referedcategory ref="CSS" /> + <referedcategory ref="Event" /> + <referedcategory ref="HTML"> + <includeattrs> + <attribute name="maxlength" + displaylabel="%Attribute.Label.maxlength" /> + <attribute name="alt" + displaylabel="%Attribute.Label.alt" /> + <attribute name="size" + displaylabel="%Attribute.Label.size" /> + </includeattrs> + </referedcategory> + </tag> + <tag name="inputTextarea"> + <referedcategory ref="JSF" /> + <referedcategory ref="Language" /> + <referedcategory ref="CSS" /> + <referedcategory ref="Event" /> + <referedcategory ref="HTML"> + <includeattrs> + <attribute name="cols" + displaylabel="%Attribute.Label.cols" /> + <attribute name="rows" + displaylabel="%Attribute.Label.rows" /> + </includeattrs> + </referedcategory> + </tag> + <tag name="message"> + <category name="JSF" displaylabel="%Category.Label.JSF"> + <attribute name="id" displaylabel="%Attribute.Label.id" /> + <attribute name="binding" type="PROPERTYBINDING" + displaylabel="%Attribute.Label.binding" /> + <attribute name="for" displaylabel="%Attribute.Label.for" required="required"/> + <attribute name="rendered" type="BOOLEAN" + displaylabel="%Attribute.Label.rendered" /> + <attribute name="showDetail" type="BOOLEAN" + typeparam="default=true" displaylabel="%Attribute.Label.showDetail" /> + <attribute name="showSummary" type="BOOLEAN" + typeparam="default=false" + displaylabel="%Attribute.Label.showSummary" /> + </category> + <referedcategory ref="CSS2" displaylabel="%Category.Label.CSS" /> + <category name="HTML" displaylabel="%Category.Label.HTML"> + <attribute name="tooltip" type="BOOLEAN" + displaylabel="%Attribute.Label.tooltip" /> + <attribute name="title" + displaylabel="%Attribute.Label.title" /> + </category> + </tag> + <tag name="messages"> + <category name="JSF" displaylabel="%Category.Label.JSF"> + <attribute name="id" displaylabel="%Attribute.Label.id" /> + <attribute name="binding" type="PROPERTYBINDING" + displaylabel="%Attribute.Label.binding" /> + <attribute name="globalOnly" type="BOOLEAN" + typeparam="default=false" + displaylabel="%Attribute.Label.globalOnly" /> + <attribute name="rendered" type="BOOLEAN" + displaylabel="%Attribute.Label.rendered" /> + <attribute name="showDetail" type="BOOLEAN" + typeparam="default=false" + displaylabel="%Attribute.Label.showDetail" /> + <attribute name="showSummary" type="BOOLEAN" + typeparam="default=true" + displaylabel="%Attribute.Label.showSummary" /> + </category> + <referedcategory ref="CSS2" displaylabel="%Category.Label.CSS" /> + <category name="HTML" displaylabel="%Category.Label.HTML"> + <attribute name="layout" type="ENUMERATED" + displaylabel="%Attribute.Label.layout"> + <option key="list" value="list" default="default"/> + <option key="table" value="table" /> + </attribute> + <attribute name="tooltip" type="BOOLEAN" + displaylabel="%Attribute.Label.tooltip" /> + <attribute name="title" + displaylabel="%Attribute.Label.title" /> + </category> + </tag> + <tag name="outputFormat"> + <referedcategory ref="JSF"> + <excludeattrs + refs="validator,valueChangeListener,immediate,required" /> + </referedcategory> + <referedcategory ref="CSS" /> + <category name="HTML" displaylabel="%Category.Label.HTML"> + <attribute name="escape" type="BOOLEAN" + typeparam="default=true" displaylabel="%Attribute.Label.escape" /> + <attribute name="title" + displaylabel="%Attribute.Label.title" /> + </category> + </tag> + <tag name="outputLabel"> + <referedcategory ref="JSF"> + <excludeattrs + refs="validator,valueChangeListener,immediate,required" /> + </referedcategory> + <referedcategory ref="Language" /> + <referedcategory ref="CSS" /> + <referedcategory ref="Event"> + <excludeattrs refs="onchange,onselect" /> + </referedcategory> + <referedcategory ref="HTML"> + <includeattrs> + <attribute name="for" + displaylabel="%Attribute.Label.for" /> + </includeattrs> + <excludeattrs refs="disabled,readonly" /> + </referedcategory> + </tag> + <tag name="outputLink"> + <referedcategory ref="JSF"> + <includeattrs> + <attribute name="value" type="RELATIVEPATH" + displaylabel="%Attribute.Label.value" /> + </includeattrs> + <excludeattrs + refs="validator,valueChangeListener,immediate,required" /> + </referedcategory> + <referedcategory ref="Language" /> + <referedcategory ref="CSS" /> + <referedcategory ref="Event"> + <excludeattrs refs="onchange,onselect" /> + </referedcategory> + <referedcategory ref="Link" displaylabel="%Category.Label.HTML" /> + </tag> + <tag name="outputText"> + <referedcategory ref="JSF"> + <excludeattrs + refs="validator,valueChangeListener,immediate,required" /> + </referedcategory> + <referedcategory ref="CSS" /> + <category name="HTML" displaylabel="%Category.Label.HTML"> + <attribute name="escape" type="BOOLEAN" + typeparam="default=true" displaylabel="%Attribute.Label.escape" /> + <attribute name="title" + displaylabel="%Attribute.Label.title" /> + </category> + </tag> + <tag name="panelGrid"> + <category name="JSF" displaylabel="%Category.Label.JSF"> + <attribute name="id" displaylabel="%Attribute.Label.id" /> + <attribute name="binding" type="PROPERTYBINDING" + displaylabel="%Attribute.Label.binding" /> + <attribute name="rendered" type="BOOLEAN" + displaylabel="%Attribute.Label.rendered" /> + </category> + <referedcategory ref="Language" /> + <referedcategory ref="CSS3" displaylabel="%Category.Label.CSS" /> + <referedcategory ref="Event"> + <excludeattrs refs="onblur,onchange,onfocus,onselect" /> + </referedcategory> + <referedcategory ref="Table" + displaylabel="%Category.Label.HTML"> + <includeattrs> + <attribute name="columns" + displaylabel="%Attribute.Label.columns" /> + </includeattrs> + </referedcategory> + </tag> + <tag name="panelGroup"> + <category name="JSF" displaylabel="%Category.Label.JSF"> + <attribute name="id" displaylabel="%Attribute.Label.id" /> + <attribute name="binding" type="PROPERTYBINDING" + displaylabel="%Attribute.Label.binding" /> + <attribute name="rendered" type="BOOLEAN" + displaylabel="%Attribute.Label.rendered" /> + </category> + <referedcategory ref="CSS" /> + </tag> + <tag name="selectBooleanCheckbox"> + <referedcategory ref="JSF" /> + <referedcategory ref="Language" /> + <referedcategory ref="CSS" /> + <referedcategory ref="Event" /> + <referedcategory ref="HTML" /> + </tag> + <tag name="selectManyCheckbox"> + <referedcategory ref="JSF" /> + <referedcategory ref="Language" /> + <referedcategory ref="CSS4" displaylabel="%Category.Label.CSS" /> + <referedcategory ref="Event" /> + <referedcategory ref="HTML"> + <includeattrs> + <attribute name="layout" type="ENUMERATED" + displaylabel="%Attribute.Label.layout"> + <option key="lineDirection" value="lineDirection" default="default" /> + <option key="pageDirection" value="pageDirection" /> + </attribute> + <attribute name="border" + displaylabel="%Attribute.Label.border" /> + </includeattrs> + </referedcategory> + </tag> + <tag name="selectManyListbox"> + <referedcategory ref="JSF" /> + <referedcategory ref="Language" /> + <referedcategory ref="CSS4" displaylabel="%Category.Label.CSS" /> + <referedcategory ref="Event" /> + <referedcategory ref="HTML"> + <includeattrs> + <attribute name="size" + displaylabel="%Attribute.Label.size" /> + </includeattrs> + </referedcategory> + </tag> + <tag name="selectManyMenu"> + <referedcategory ref="JSF" /> + <referedcategory ref="Language" /> + <referedcategory ref="CSS4" displaylabel="%Category.Label.CSS" /> + <referedcategory ref="Event" /> + <referedcategory ref="HTML" /> + </tag> + <tag name="selectOneListbox"> + <referedcategory ref="JSF" /> + <referedcategory ref="Language" /> + <referedcategory ref="CSS4" displaylabel="%Category.Label.CSS" /> + <referedcategory ref="Event" /> + <referedcategory ref="HTML"> + <includeattrs> + <attribute name="size" + displaylabel="%Attribute.Label.size" /> + </includeattrs> + </referedcategory> + </tag> + <tag name="selectOneMenu"> + <referedcategory ref="JSF" /> + <referedcategory ref="Language" /> + <referedcategory ref="CSS4" displaylabel="%Category.Label.CSS" /> + <referedcategory ref="Event" /> + <referedcategory ref="HTML" /> + </tag> + <tag name="selectOneRadio"> + <referedcategory ref="JSF" /> + <referedcategory ref="Language" /> + <referedcategory ref="CSS4" displaylabel="%Category.Label.CSS" /> + <referedcategory ref="Event" /> + <referedcategory ref="HTML"> + <includeattrs> + <attribute name="layout" type="ENUMERATED" + displaylabel="%Attribute.Label.layout"> + <option key="lineDirection" value="lineDirection" default="default" /> + <option key="pageDirection" value="pageDirection" /> + </attribute> + <attribute name="border" + displaylabel="%Attribute.Label.border" /> + </includeattrs> + </referedcategory> + </tag> + <definition> + <categories> + <category name="JSF" displaylabel="%Category.Label.JSF"> + <attribute name="id" displaylabel="%Attribute.Label.id" /> + <attribute name="value" + displaylabel="%Attribute.Label.value" /> + <attribute name="binding" type="PROPERTYBINDING" + displaylabel="%Attribute.Label.binding" /> + <attribute name="converter" + displaylabel="%Attribute.Label.converter" /> + <attribute name="validator" type="METHODBINDING" + displaylabel="%Attribute.Label.validator" /> + <attribute name="valueChangeListener" + type="METHODBINDING" + displaylabel="%Attribute.Label.valueChangeListener" /> + <attribute name="immediate" type="BOOLEAN" + displaylabel="%Attribute.Label.immediate" /> + <attribute name="rendered" type="BOOLEAN" + displaylabel="%Attribute.Label.rendered" /> + <attribute name="required" type="BOOLEAN" + displaylabel="%Attribute.Label.required" /> + </category> + <category name="Language" + displaylabel="%Category.Label.Language"> + <referedattribute ref="lang" /> + <attribute name="dir" type="ENUMERATED" + displaylabel="%Attribute.Label.dir"> + <option key="RTL" value="RTL" /> + <option key="LTR" value="LTR" /> + </attribute> + </category> + <category name="CSS" displaylabel="%Category.Label.CSS"> + <attribute name="style" type="CSSSTYLE" + typeparam="style=STYLE" displaylabel="%Attribute.Label.style" /> + <attribute name="styleClass" type="CSSCLASS" + typeparam=" " displaylabel="%Attribute.Label.styleClass" /> + </category> + <category name="Event" + displaylabel="%Category.Label.Event"> + <attribute name="onblur" type="JAVASCRIPT" + displaylabel="%Attribute.Label.onblur" /> + <attribute name="onchange" type="JAVASCRIPT" + displaylabel="%Attribute.Label.onchange" /> + <attribute name="onclick" type="JAVASCRIPT" + displaylabel="%Attribute.Label.onclick" /> + <attribute name="ondblclick" type="JAVASCRIPT" + displaylabel="%Attribute.Label.ondblclick" /> + <attribute name="onfocus" type="JAVASCRIPT" + displaylabel="%Attribute.Label.onfocus" /> + <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" /> + <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="onselect" type="JAVASCRIPT" + displaylabel="%Attribute.Label.onselect" /> + </category> + <category name="HTML" displaylabel="%Category.Label.HTML"> + <attribute name="accesskey" + displaylabel="%Attribute.Label.accesskey" /> + <attribute name="disabled" type="BOOLEAN" + displaylabel="%Attribute.Label.disabled" /> + <attribute name="readonly" type="BOOLEAN" + displaylabel="%Attribute.Label.readonly" /> + <attribute name="title" + displaylabel="%Attribute.Label.title" /> + <attribute name="tabindex" + displaylabel="%Attribute.Label.tabindex" /> + </category> + <category name="Link" displaylabel="%Category.Label.Link"> + <attribute name="accesskey" + displaylabel="%Attribute.Label.accesskey" /> + <attribute name="title" + displaylabel="%Attribute.Label.title" /> + <attribute name="tabindex" + displaylabel="%Attribute.Label.tabindex" /> + <attribute name="charset" + displaylabel="%Attribute.Label.charset" /> + <referedattribute ref="lang" overridename="hreflang" + displaylabel="%Attribute.Label.hreflang" /> + <referedattribute ref="link" overridename="rel" + displaylabel="%Attribute.Label.rel" /> + <attribute name="shape" type="ENUMERATED" + displaylabel="%Attribute.Label.shape"> + <option key="default" + value="Entire region" default="default"/> + <option key="circle" value="Circular region" /> + <option key="rect" value="Rectangular region" /> + <option key="poly" value="Polygonal region" /> + </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="coords" + displaylabel="%Attribute.Label.coords" /> + <referedattribute ref="link" overridename="rev" + displaylabel="%Attribute.Label.rev" /> + <attribute name="type" + displaylabel="%Attribute.Label.type" /> + </category> + <category name="CSS2" displaylabel="%Category.Label.CSS2"> + <attribute name="style" type="CSSSTYLE" + typeparam="style=STYLE" displaylabel="%Attribute.Label.style" /> + <attribute name="styleClass" type="CSSCLASS" + typeparam=" " displaylabel="%Attribute.Label.styleClass" /> + <attribute name="infoStyle" type="CSSSTYLE" + displaylabel="%Attribute.Label.infoStyle" /> + <attribute name="infoClass" type="CSSCLASS" + typeparam=" " displaylabel="%Attribute.Label.infoClass" /> + <attribute name="warnStyle" type="CSSSTYLE" + displaylabel="%Attribute.Label.warnStyle" /> + <attribute name="warnClass" type="CSSCLASS" + typeparam=" " displaylabel="%Attribute.Label.warnClass" /> + <attribute name="errorStyle" type="CSSSTYLE" + displaylabel="%Attribute.Label.errorStyle" /> + <attribute name="errorClass" type="CSSCLASS" + typeparam=" " displaylabel="%Attribute.Label.errorClass" /> + <attribute name="fatalStyle" type="CSSSTYLE" + displaylabel="%Attribute.Label.fatalStyle" /> + <attribute name="fatalClass" type="CSSCLASS" + typeparam=" " displaylabel="%Attribute.Label.fatalClass" /> + </category> + <category name="CSS3" displaylabel="%Category.Label.CSS3"> + <attribute name="style" type="CSSSTYLE" + typeparam="style=STYLE" displaylabel="%Attribute.Label.style" /> + <attribute name="styleClass" type="CSSCLASS" + typeparam=" " displaylabel="%Attribute.Label.styleClass" /> + <attribute name="columnClasses" type="CSSCLASS" + typeparam="," displaylabel="%Attribute.Label.columnClasses" /> + <attribute name="footerClass" type="CSSCLASS" + typeparam=" " displaylabel="%Attribute.Label.footerClass" /> + <attribute name="headerClass" type="CSSCLASS" + typeparam=" " displaylabel="%Attribute.Label.headerClass" /> + <attribute name="rowClasses" type="CSSCLASS" + typeparam="separator=," displaylabel="%Attribute.Label.rowClasses" /> + </category> + <category name="CSS4" displaylabel="%Category.Label.CSS4"> + <attribute name="style" type="CSSSTYLE" + typeparam="style=STYLE" displaylabel="%Attribute.Label.style" /> + <attribute name="styleClass" type="CSSCLASS" + typeparam=" " displaylabel="%Attribute.Label.styleClass" /> + <attribute name="disabledClass" type="CSSCLASS" + typeparam="" displaylabel="%Attribute.Label.disabledClass" /> + <attribute name="enabledClass" type="CSSCLASS" + typeparam="" displaylabel="%Attribute.Label.enabledClass" /> + </category> + <category name="Table" + displaylabel="%Category.Label.Table"> + <attribute name="bgcolor" type="COLOR" + displaylabel="%Attribute.Label.bgcolor" /> + <attribute name="border" + displaylabel="%Attribute.Label.border" /> + <attribute name="cellpadding" + displaylabel="%Attribute.Label.cellpadding" /> + <attribute name="cellspacing" + displaylabel="%Attribute.Label.cellspacing" /> + <attribute name="width" + displaylabel="%Attribute.Label.width" /> + <attribute name="frame" type="ENUMERATED" + displaylabel="%Attribute.Label.frame"> + <option key="lhs" value="Left hand side only" /> + <option key="above" value="Top side only" /> + <option key="none" value="No sides" default="default"/> + <option key="box" value="All four sides" /> + <option key="vsides" + value="Right and left sides only" /> + <option key="below" value="Bottom side only" /> + <option key="border" value="All four sides" /> + <option key="rhs" value="Right hand side only" /> + <option key="hsides" + value="Top and bottom sides only" /> + </attribute> + <attribute name="rules" type="ENUMERATED" + displaylabel="%Attribute.Label.rules"> + <option key="cols" value="Between columns only" /> + <option key="groups" value="Between row groups" /> + <option key="rows" value="Between rows only" /> + <option key="none" value="No rules" default="default"/> + <option key="all" + value="Between all rows and columns" /> + </attribute> + <attribute name="summary" + displaylabel="%Attribute.Label.summary" /> + <attribute name="title" + displaylabel="%Attribute.Label.title" /> + </category> + </categories> + <attributes> + <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="link" type="MULTICHOICE" typeparam=" " + displaylabel="%Attribute.Label.link"> + <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="glossary" value="glossary" /> + <option key="copyright" value="copyright" /> + </attribute> + </attributes> + </definition> + +</taglib> diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/META-INF/MANIFEST.MF b/jsf/tests/org.eclipse.jst.pagedesigner.tests/META-INF/MANIFEST.MF index ccb0f59ab..eab3da4fd 100644 --- a/jsf/tests/org.eclipse.jst.pagedesigner.tests/META-INF/MANIFEST.MF +++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/META-INF/MANIFEST.MF @@ -21,7 +21,10 @@ Require-Bundle: org.junit;bundle-version="[3.8.1,4.0.0)", org.eclipse.jface.text;bundle-version="[3.2.0,4.0.0)", org.eclipse.jst.pagedesigner;bundle-version="[1.0.0,1.1.0)", org.eclipse.emf.common;bundle-version="[2.2.0,3.0.0)", - org.eclipse.gef;bundle-version="[3.2.0,4.0.0)" + org.eclipse.gef;bundle-version="[3.2.0,4.0.0)", + org.eclipse.ui.views.properties.tabbed;bundle-version="[3.2.0,4.0.0)", + org.eclipse.jst.jsf.common.ui, + org.eclipse.jst.pagedesigner.jsf.ui Export-Package: org.eclipse.jst.pagedesigner.tests;x-internal:=true Bundle-ClassPath: pagedesignertests.jar Bundle-Activator: org.eclipse.jst.pagedesigner.tests.PageDesignerTestsPlugin diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/plugin.xml b/jsf/tests/org.eclipse.jst.pagedesigner.tests/plugin.xml index ce4218eea..c06337c76 100644 --- a/jsf/tests/org.eclipse.jst.pagedesigner.tests/plugin.xml +++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/plugin.xml @@ -13,5 +13,21 @@ <elementEditFactory class="org.eclipse.jst.pagedesigner.tests.tagcreatorPlugin.TestCreationFactory"></elementEditFactory> </extension> + <extension + point="org.eclipse.ui.views.properties.tabbed.propertySections"> + <propertySections + contributorId="org.eclipse.jst.pagedesigner.tabPropertyContributor"> + <propertySection + class="org.eclipse.jst.pagedesigner.tests.tabbed.properties.sections.FakePropertySection" + id="section.fake" + tab="sss"> + </propertySection> + <propertySection + class="org.eclipse.jst.pagedesigner.tests.tabbed.properties.sections.FakePropertySectionUsingDialogField" + id="section.fake.dialogfield" + tab="sss"> + </propertySection> + </propertySections> + </extension> </plugin> diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tabbed/properties/sections/FakePropertySection.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tabbed/properties/sections/FakePropertySection.java new file mode 100644 index 000000000..ece587eb3 --- /dev/null +++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tabbed/properties/sections/FakePropertySection.java @@ -0,0 +1,84 @@ +package org.eclipse.jst.pagedesigner.tests.tabbed.properties.sections; + +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jst.pagedesigner.properties.DesignerPropertyTool; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.CLabel; +import org.eclipse.swt.events.KeyEvent; +import org.eclipse.swt.events.KeyListener; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Text; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection; +import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage; +import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory; +import org.w3c.dom.Attr; +import org.w3c.dom.Element; + +/** + * Fake section for testing.... remove + * Binds to "type" attribute if present on an element + * + */ +public class FakePropertySection extends AbstractPropertySection { + + private Text txt; + private Attr typeAttr; + /** + * Constructor + */ + public FakePropertySection() { + // TODO Auto-generated constructor stub + } + + @Override + public void createControls(final Composite parent, + TabbedPropertySheetPage tabbedPropertySheetPage) { + + super.createControls(parent, tabbedPropertySheetPage); + TabbedPropertySheetWidgetFactory factory = tabbedPropertySheetPage.getWidgetFactory(); + + Composite outer = factory.createComposite(parent); + GridLayout gl = new GridLayout(); + gl.numColumns = 2; + gl.marginTop = 0; + gl.marginBottom = 0; + outer.setLayout(gl); + // + CLabel lbl = factory.createCLabel(outer, "TYPE:", SWT.NONE); + lbl.setLayoutData(new GridData()); + + txt = factory.createText(outer, ""); + GridData gd = new GridData(); + gd.verticalAlignment = SWT.TOP; + gd.grabExcessHorizontalSpace = true; + txt.setLayoutData(gd); + + } + + @Override + public void setInput(IWorkbenchPart part, ISelection selection) { + super.setInput(part, selection); + Element node = DesignerPropertyTool.getElement(part, selection); + if (node != null){ + typeAttr = node.getAttributeNode("type"); + if (typeAttr != null){ + txt.setText(typeAttr.getValue()); + txt.addKeyListener(new KeyListener(){ + + public void keyPressed(KeyEvent e) { + // + } + + public void keyReleased(KeyEvent e) { + typeAttr.setValue(typeAttr.getValue()+ new String(new char[]{e.character})); + } + + }); + } + } + } + +} diff --git a/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tabbed/properties/sections/FakePropertySectionUsingDialogField.java b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tabbed/properties/sections/FakePropertySectionUsingDialogField.java new file mode 100644 index 000000000..aa6cc94bf --- /dev/null +++ b/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tabbed/properties/sections/FakePropertySectionUsingDialogField.java @@ -0,0 +1,100 @@ +package org.eclipse.jst.pagedesigner.tests.tabbed.properties.sections; + +import org.eclipse.jface.viewers.ISelection; +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.IDialogFieldChangeListener; +import org.eclipse.jst.jsf.common.ui.internal.dialogfield.ISupportTextValue; +import org.eclipse.jst.jsf.common.ui.internal.dialogfield.StringDialogField; +import org.eclipse.jst.pagedesigner.jsf.ui.attributegroup.DialogFieldFactory; +import org.eclipse.jst.pagedesigner.properties.BaseCustomSection; +import org.eclipse.jst.pagedesigner.properties.DesignerPropertyTool; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.IWorkbenchPart; +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.w3c.dom.Attr; +import org.w3c.dom.Element; + +/** + * Fake section for testing.... remove + * Binds to "type" attribute if present on element + * + */ +public class FakePropertySectionUsingDialogField extends BaseCustomSection { +// +// private Text txt; + private Attr typeAttr; + private DialogField field; + private TabbedPropertySheetWidgetFactory factory; + private Composite outer; + /** + * Constructor + */ + public FakePropertySectionUsingDialogField() { + // TODO Auto-generated constructor stub + } + + @Override + public void createControls(final Composite parent, + TabbedPropertySheetPage tabbedPropertySheetPage) { + + super.createControls(parent, tabbedPropertySheetPage); + factory = tabbedPropertySheetPage.getWidgetFactory(); + + outer = factory.createComposite(parent, SWT.NONE); + GridLayout gl = new GridLayout(); + gl.numColumns = 3; + gl.marginTop = 0; + gl.marginBottom = 0; + outer.setLayout(gl); + + field = new StringDialogField(); + GridData gd = new GridData(); + gd.grabExcessHorizontalSpace = true; + gd.horizontalSpan = 2; + field.doFillIntoGrid(factory, outer, 3); + ((StringDialogField)field).getTextControl(factory, outer).setLayoutData(gd); + field.setLabelText("TYPETESTDIALOGFIELD:"); + + } + + @Override + public void setInput(IWorkbenchPart part, ISelection selection) { + super.setInput(part, selection); + Element node = DesignerPropertyTool.getElement(part, selection); + if (node != null){ + typeAttr = node.getAttributeNode("type"); + if (typeAttr != null){ + DialogFieldFactory.setDialogFieldValue(field, typeAttr.getValue()); + field.setDialogFieldApplyListener(new IDialogFieldApplyListener(){ + + public void dialogFieldApplied(DialogField field) { + typeAttr.setValue(((ISupportTextValue)field).getText()); + } + }); + field.setDialogFieldChangeListener(new IDialogFieldChangeListener(){ + + public void dialogFieldChanged(DialogField field) { + // + } + }); + + }; + } + } + + @Override + protected void notifyChanged(INodeNotifier notifier, int eventType, + Object changedFeature, Object oldValue, Object newValue, int pos) { + if (field != null && changedFeature.toString().equalsIgnoreCase("type") ){ + ((ISupportTextValue)field).setTextWithoutUpdate((String)newValue); + } + + } + +} |
