Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 134034 Details for
Bug 267962
API - Tag drop needs to be decoupled from the palette entry
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Decouples TagToolPaletteEntry from everything except the palette itself.
patch.txt (text/plain), 141.55 KB, created by
Cameron Bateman
on 2009-04-30 21:25:32 EDT
(
hide
)
Description:
Decouples TagToolPaletteEntry from everything except the palette itself.
Filename:
MIME Type:
Creator:
Cameron Bateman
Created:
2009-04-30 21:25:32 EDT
Size:
141.55 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jst.pagedesigner.tests >Index: src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorJSP.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorJSP.java,v >retrieving revision 1.4 >diff -u -r1.4 TestDefaultTagCreatorJSP.java >--- src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorJSP.java 27 Mar 2009 19:38:30 -0000 1.4 >+++ src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorJSP.java 1 May 2009 01:25:36 -0000 >@@ -11,7 +11,6 @@ > package org.eclipse.jst.pagedesigner.tests.tagcreator; > > import org.eclipse.jst.jsf.core.internal.tld.TagIdentifierFactory; >-import org.eclipse.jst.pagedesigner.tests.tagcreator.base.BaseTagCreatorTestCase; > > public class TestDefaultTagCreatorJSP extends BaseDefaultTagCreatorTestCase > { >@@ -34,7 +33,7 @@ > > public void testIncludeDirective() throws Exception > { >- doCreateTest(TagIdentifierFactory.createJSPTagWrapper("jsp11", "jsp:directive.include"), "jsp", "jsp", 349,false); >- doCreateTest(TagIdentifierFactory.createJSPTagWrapper("jsp11", "jsp:directive.include"), "jspx", "jspx", 492,false); >+ doCreateTest(TagIdentifierFactory.createJSPTagWrapper("jsp11", "jsp:directive.include"), "jsp", "jsp", 349,false, null); >+ doCreateTest(TagIdentifierFactory.createJSPTagWrapper("jsp11", "jsp:directive.include"), "jspx", "jspx", 492,false, null); > } > } >Index: src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestUserCustomizedTagCreatorForJSFHTML_ParentCustomization.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestUserCustomizedTagCreatorForJSFHTML_ParentCustomization.java,v >retrieving revision 1.2 >diff -u -r1.2 TestUserCustomizedTagCreatorForJSFHTML_ParentCustomization.java >--- src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestUserCustomizedTagCreatorForJSFHTML_ParentCustomization.java 28 Apr 2009 22:38:26 -0000 1.2 >+++ src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestUserCustomizedTagCreatorForJSFHTML_ParentCustomization.java 1 May 2009 01:25:37 -0000 >@@ -1,8 +1,8 @@ > package org.eclipse.jst.pagedesigner.tests.tagcreator; > >-import org.eclipse.core.runtime.IAdaptable; > import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants; > import org.eclipse.jst.pagedesigner.itemcreation.customizer.CustomizationDataImpl; >+import org.eclipse.jst.pagedesigner.itemcreation.customizer.ICustomizationData; > import org.eclipse.jst.pagedesigner.itemcreation.customizer.IWritableCustomizationData; > import org.eclipse.jst.pagedesigner.tests.tagcreatorPlugin.UserCustomizedElementEditFactory; > >@@ -24,14 +24,12 @@ > > public void testParentTagInsertion() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jsp", "jsp", 358, false); >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jspx", "jspx", 495, false); >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "xhtml", "xhtml", 350, false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jsp", "jsp", 358, false, getCustomizationData()); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jspx", "jspx", 495, false, getCustomizationData()); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "xhtml", "xhtml", 350, false, getCustomizationData()); > } > >- >- @Override >- protected IAdaptable getCustomizationData() >+ protected ICustomizationData getCustomizationData() > { > // Setup tag > IWritableCustomizationData data = new CustomizationDataImpl(getTagIdentifier()); >@@ -63,7 +61,7 @@ > IWritableCustomizationData parent2 = new CustomizationDataImpl(UserCustomizedElementEditFactory.TAG3); > data.addParentData(parent2); > >- return (IAdaptable) data; >+ return data; > } > > >Index: src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestUserCustomizedTagCreatorForJSFHTML_GeneralCustomization.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestUserCustomizedTagCreatorForJSFHTML_GeneralCustomization.java,v >retrieving revision 1.2 >diff -u -r1.2 TestUserCustomizedTagCreatorForJSFHTML_GeneralCustomization.java >--- src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestUserCustomizedTagCreatorForJSFHTML_GeneralCustomization.java 27 Apr 2009 23:40:06 -0000 1.2 >+++ src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestUserCustomizedTagCreatorForJSFHTML_GeneralCustomization.java 1 May 2009 01:25:37 -0000 >@@ -1,8 +1,8 @@ > package org.eclipse.jst.pagedesigner.tests.tagcreator; > >-import org.eclipse.core.runtime.IAdaptable; > import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants; > import org.eclipse.jst.pagedesigner.itemcreation.customizer.CustomizationDataImpl; >+import org.eclipse.jst.pagedesigner.itemcreation.customizer.ICustomizationData; > import org.eclipse.jst.pagedesigner.itemcreation.customizer.IWritableCustomizationData; > import org.eclipse.jst.pagedesigner.tests.tagcreatorPlugin.UserCustomizedElementEditFactory; > >@@ -25,14 +25,13 @@ > > public void testGeneralCustomization() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jsp", "jsp", 358, false); >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jspx", "jspx", 495, false); >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "xhtml", "xhtml", 350, false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jsp", "jsp", 358, false, getCustomizationData()); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jspx", "jspx", 495, false, getCustomizationData()); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "xhtml", "xhtml", 350, false, getCustomizationData()); > } > > >- @Override >- protected IAdaptable getCustomizationData() >+ protected ICustomizationData getCustomizationData() > { > IWritableCustomizationData tagDropped = new CustomizationDataImpl(UserCustomizedElementEditFactory.TAG1); > tagDropped.addAttribute("attr1", "value1"); >Index: src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestTagCreationFactory.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestTagCreationFactory.java,v >retrieving revision 1.4 >diff -u -r1.4 TestTagCreationFactory.java >--- src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestTagCreationFactory.java 2 May 2008 19:49:06 -0000 1.4 >+++ src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestTagCreationFactory.java 1 May 2009 01:25:37 -0000 >@@ -4,7 +4,7 @@ > * 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 > *******************************************************************************/ >@@ -38,14 +38,14 @@ > * @author cbateman > * > */ >-public class TestTagCreationFactory extends BaseTestClass >+public class TestTagCreationFactory extends BaseTestClass > { > public TestTagCreationFactory() { > super("jsf"); > } > > @Override >- protected void setUp() throws Exception >+ protected void setUp() throws Exception > { > super.setUp(); > >@@ -58,7 +58,7 @@ > } > > @Override >- protected void tearDown() throws Exception >+ protected void tearDown() throws Exception > { > super.tearDown(); > } >@@ -72,8 +72,8 @@ > > CreationData creationData = > getCreationData(TestCreationFactory.TAGCREATOR_URI_1 >- , "tagWithRequiredAttr", "test", jspFile, 501); >- Element element = CommandUtil.excuteInsertion(creationData.getTagEntry() >+ , "tagWithRequiredAttr", "test", jspFile, 501, null); >+ Element element = CommandUtil.executeInsertion(creationData.getTagCreationProvider() > , creationData.getModel() > , creationData.getDomPosition() > , creationData.getDropCustomizationData()); >@@ -96,18 +96,18 @@ > ,"/testEnsureRequiredAttributes2.jsp"); > creationData = > getCreationData(TestCreationFactory.TAGCREATOR_URI_1 >- , "tagWithRequiredAttr2", "test", jspFile, 501); >- element = CommandUtil.excuteInsertion(creationData.getTagEntry() >+ , "tagWithRequiredAttr2", "test", jspFile, 501, null); >+ element = CommandUtil.executeInsertion(creationData.getTagCreationProvider() > , creationData.getModel() > , creationData.getDomPosition() > , creationData.getDropCustomizationData()); >- >+ > // on this tag, the first required attr is set by metadata > assertEquals("foobar", element.getAttribute(TestCreationFactory.REQUIRED_ATTR_1)); > // the second one is not set by meta-data, but is required and ensure is called > // by the custom advisor, so it should be set to empty > assertEquals("", element.getAttribute(TestCreationFactory.REQUIRED_ATTR_2)); >- >+ > // the optional attribute is not set by meta-data and since it's not required, > // the ensure method should not touch it either. > assertNull(element.getAttribute("notRequiredAttr1")); >@@ -115,15 +115,16 @@ > > public void testTagCreationMetadata() throws Exception > { >- IFile jspFile = (IFile) _webProjectTestEnv.loadResourceInWebRoot( >+ final IFile jspFile = (IFile) _webProjectTestEnv.loadResourceInWebRoot( > PageDesignerTestsPlugin.getDefault().getBundle() > ,"/testdata/tagcreator/testTagCreation.jsp.data" > ,"/testTagCreationMetadata.jsp"); > >- CreationData creationData = >+ final CreationData creationData = > getCreationData(TestCreationFactory.TAGCREATOR_URI_1 >- , "tagWithMetadata", "test", jspFile, 501); >- Element element = CommandUtil.excuteInsertion(creationData.getTagEntry() >+ , "tagWithMetadata", "test", jspFile, 501, null); >+ final Element element = CommandUtil.executeInsertion( >+ creationData.getTagCreationProvider() > , creationData.getModel() > , creationData.getDomPosition() > , creationData.getDropCustomizationData()); >@@ -155,26 +156,26 @@ > */ > public void testBug197042() throws Exception > { >- IFile jspFile = (IFile) _webProjectTestEnv.loadResourceInWebRoot( >+ final IFile jspFile = (IFile) _webProjectTestEnv.loadResourceInWebRoot( > PageDesignerTestsPlugin.getDefault().getBundle() > ,"/testdata/tagcreator/tagCreator.jspx.data" > ,"/testTagCreationMetadata.jsp"); > >- final String uri = >+ final String uri = > IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON.getUri(); >- final String tagName = >+ final String tagName = > IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON.getTagName(); >- CreationData creationData = >- getCreationData(uri,tagName,"h", jspFile, 495); >+ final CreationData creationData = >+ getCreationData(uri,tagName,"h", jspFile, 495, null); > >- ITagCreator tagCreator = TagCreationFactory.getInstance() >+ final ITagCreator tagCreator = TagCreationFactory.getInstance() > .createTagCreator(creationData.getTagId()); > >- Element element = tagCreator.createTag(creationData); >+ final Element element = tagCreator.createTag(creationData); > > System.out.println(element.toString()); > >- ByteArrayOutputStream resultStream = new ByteArrayOutputStream(); >+ final ByteArrayOutputStream resultStream = new ByteArrayOutputStream(); > getDocumentContext(0, jspFile).getModel().save(resultStream); > > final IPath expectedPath = JSFTestUtil.getAbsolutePath( >@@ -188,14 +189,14 @@ > > public void testDropCustomizerThatCancels() throws Exception > { >- IFile jspFile = (IFile) _webProjectTestEnv.loadResourceInWebRoot( >+ final IFile jspFile = (IFile) _webProjectTestEnv.loadResourceInWebRoot( > PageDesignerTestsPlugin.getDefault().getBundle() > ,"/testdata/tagcreator/tagCreator.jsp.data" > ,"/testCustomizerCancel.jsp"); > > TestCreationFactory.setTestParametersForDropCustomer(Status.CANCEL_STATUS, null); > >- MockItemCreationTool tool = >+ final MockItemCreationTool tool = > createMockItemCreationTool(jspFile, 358, TestCreationFactory.TAG_WITH_REQUIRED_ATTR, IStatus.CANCEL); > > tool.customizeDropAndMaybeExecute(0); >@@ -206,17 +207,17 @@ > @SuppressWarnings("unchecked") > public void testDropCustomizationDataAcquistion() throws Exception > { >- IFile jspFile = (IFile) _webProjectTestEnv.loadResourceInWebRoot( >+ final IFile jspFile = (IFile) _webProjectTestEnv.loadResourceInWebRoot( > PageDesignerTestsPlugin.getDefault().getBundle() > ,"/testdata/tagcreator/tagCreator.jsp.data" > ,"/testCustomizerCancel.jsp"); > >- IAdaptable adaptable = new IAdaptable() >+ final IAdaptable adaptable = new IAdaptable() > { >- public Object getAdapter(Class adapter) { >+ public Object getAdapter(final Class adapter) { > if (Map.class == adapter) > { >- HashMap<String, String> map = new HashMap<String, String>(); >+ final HashMap<String, String> map = new HashMap<String, String>(); > map.put("color", "red"); > return map; > } >@@ -226,27 +227,27 @@ > > TestCreationFactory.setTestParametersForDropCustomer(Status.OK_STATUS, adaptable); > >- MockItemCreationTool tool = >+ final MockItemCreationTool tool = > createMockItemCreationTool(jspFile, 358, TestCreationFactory.TAG_WITH_REQUIRED_ATTR, IStatus.CANCEL); > > tool.customizeDropAndMaybeExecute(0); >- Object[] commands = tool.getDomain().getCommandStack().getCommands(); >+ final Object[] commands = tool.getDomain().getCommandStack().getCommands(); > assertEquals(1, commands.length); > assertTrue(commands[0] instanceof MockCreateItemCommand); >- >- IAdaptable value = ((MockCreateItemCommand)commands[0]).getCustomizationDataTesting(); >+ >+ final IAdaptable value = ((MockCreateItemCommand)commands[0]).getCustomizationDataTesting(); > assertEquals(adaptable, value); >- Map map = (Map) value.getAdapter(Map.class); >+ final Map map = (Map) value.getAdapter(Map.class); > assertNotNull(map); > assertEquals("red", map.get("color")); > } >- >- private void assertExpectedResult(IFile file, String outExt) throws Exception >+ >+ private void assertExpectedResult(final IFile file, final String outExt) throws Exception > { > final ByteArrayOutputStream resultStream = new ByteArrayOutputStream(); > getDocumentContext(0, file).getModel().save(resultStream); > >- final String expected = >+ final String expected = > getExpectedResult("/testdata/tagcreator/tagCreator."+outExt+".data").trim(); > final String result = resultStream.toString("ISO-8859-1").trim(); > >Index: src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorHTML.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorHTML.java,v >retrieving revision 1.4 >diff -u -r1.4 TestDefaultTagCreatorHTML.java >--- src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorHTML.java 27 Mar 2009 19:38:30 -0000 1.4 >+++ src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorHTML.java 1 May 2009 01:25:36 -0000 >@@ -11,7 +11,6 @@ > package org.eclipse.jst.pagedesigner.tests.tagcreator; > > import org.eclipse.jst.jsf.core.internal.tld.TagIdentifierFactory; >-import org.eclipse.jst.pagedesigner.tests.tagcreator.base.BaseTagCreatorTestCase; > import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocType; > > /** >@@ -40,7 +39,7 @@ > > public void testCreateButton() throws Exception > { >- doCreateTest(TagIdentifierFactory.createJSPTagWrapper(CMDocType.HTML_DOC_TYPE, "INPUT.BUTTON"), "html", "html", 358,false); >- doCreateTest(TagIdentifierFactory.createJSPTagWrapper(CMDocType.HTML_DOC_TYPE, "INPUT.BUTTON"), "xhtml", "xhtml", 350,false); >+ doCreateTest(TagIdentifierFactory.createJSPTagWrapper(CMDocType.HTML_DOC_TYPE, "INPUT.BUTTON"), "html", "html", 358,false, null); >+ doCreateTest(TagIdentifierFactory.createJSPTagWrapper(CMDocType.HTML_DOC_TYPE, "INPUT.BUTTON"), "xhtml", "xhtml", 350,false, null); > } > } >Index: src/org/eclipse/jst/pagedesigner/tests/tagcreator/BaseUserCustomizedTagCreatorTestCase.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/BaseUserCustomizedTagCreatorTestCase.java,v >retrieving revision 1.1 >diff -u -r1.1 BaseUserCustomizedTagCreatorTestCase.java >--- src/org/eclipse/jst/pagedesigner/tests/tagcreator/BaseUserCustomizedTagCreatorTestCase.java 27 Mar 2009 19:38:30 -0000 1.1 >+++ src/org/eclipse/jst/pagedesigner/tests/tagcreator/BaseUserCustomizedTagCreatorTestCase.java 1 May 2009 01:25:36 -0000 >@@ -1,6 +1,8 @@ > package org.eclipse.jst.pagedesigner.tests.tagcreator; > > import org.eclipse.jst.jsf.common.dom.TagIdentifier; >+import org.eclipse.jst.pagedesigner.editors.palette.ITagDropSourceData; >+import org.eclipse.jst.pagedesigner.editors.palette.TagToolCreationAdapter; > import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry; > import org.eclipse.jst.pagedesigner.editors.palette.impl.PaletteItemManager; > import org.eclipse.jst.pagedesigner.editors.palette.impl.TaglibPaletteDrawer; >@@ -63,20 +65,26 @@ > return new UserCustomizedTagCreator(); > } > >- >- /** >- * Adds a tag to a section in the tool palette. >- * >- * @param tagId >- * TagIdentifier of tag to add >- * @param category >- * Category in the tool palette >- * >- */ >- private final void addTagToPaletteCategory(final TagIdentifier tagId, final TaglibPaletteDrawer category) >- { >- final TagToolPaletteEntry paletteItem = new TagToolPaletteEntry(tagId.getTagName(), TAG_LABEL, TAG_DESCRIPTION_SHORT, null, null); >- category.getChildren().add(paletteItem); >- paletteItem.setParent(category); >- } >+ >+ /** >+ * Adds a tag to a section in the tool palette. >+ * >+ * @param tagId >+ * TagIdentifier of tag to add >+ * @param category >+ * Category in the tool palette >+ * >+ */ >+ @SuppressWarnings("unchecked") >+ private final void addTagToPaletteCategory(final TagIdentifier tagId, >+ final TaglibPaletteDrawer category) >+ { >+ final ITagDropSourceData tagDropSourceData = new TagToolCreationAdapter( >+ tagId.getUri(), tagId.getTagName(), >+ category.getDefaultPrefix(), tagId.getTagName()); >+ final TagToolPaletteEntry paletteItem = new TagToolPaletteEntry( >+ tagDropSourceData, TAG_LABEL, TAG_DESCRIPTION_SHORT, null, null); >+ category.getChildren().add(paletteItem); >+ paletteItem.setParent(category); >+ } > } >Index: src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorForJSFHTML.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorForJSFHTML.java,v >retrieving revision 1.4 >diff -u -r1.4 TestDefaultTagCreatorForJSFHTML.java >--- src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorForJSFHTML.java 27 Mar 2009 19:38:30 -0000 1.4 >+++ src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorForJSFHTML.java 1 May 2009 01:25:36 -0000 >@@ -33,119 +33,119 @@ > > public void testCreateButton() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jsp", "jsp", 358,false); >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jspx", "jspx", 495,false); >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "xhtml", "xhtml", 350,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jsp", "jsp", 358,false, null); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jspx", "jspx", 495,false, null); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "xhtml", "xhtml", 350,false, null); > } > > public void testCreateCommandLink() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDLINK, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDLINK, "jsp", "jsp", 358,false, null); > } > > public void testCreatePanelGrid() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_PANEL_GRID, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_PANEL_GRID, "jsp", "jsp", 358,false, null); > } > > public void testCreateDataTable() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_DATA_TABLE, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_DATA_TABLE, "jsp", "jsp", 358,false, null); > } > > public void testCreateForm() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_FORM, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_FORM, "jsp", "jsp", 358,false, null); > } > > public void testCreateGraphicImage() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_GRAPHICIMAGE, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_GRAPHICIMAGE, "jsp", "jsp", 358,false, null); > } > > public void testCreateInputHidden() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_INPUTHIDDEN, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_INPUTHIDDEN, "jsp", "jsp", 358,false, null); > } > > public void testCreateMessage() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_MESSAGE, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_MESSAGE, "jsp", "jsp", 358,false, null); > } > > public void testCreateMessages() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_MESSAGES, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_MESSAGES, "jsp", "jsp", 358,false, null); > } > > public void testCreateOutputFormat() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_OUTPUTFORMAT, "jsp", "jsp", 358,true); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_OUTPUTFORMAT, "jsp", "jsp", 358,true, null); > } > > public void testCreateOutputLabel() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_OUTPUTLABEL, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_OUTPUTLABEL, "jsp", "jsp", 358,false, null); > } > > public void testCreateOutputText() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_OUTPUTTEXT, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_OUTPUTTEXT, "jsp", "jsp", 358,false, null); > } > > public void testCreatePanelGroup() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_PANEL_GROUP, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_PANEL_GROUP, "jsp", "jsp", 358,false, null); > } > > public void testCreateInputSecret() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_INPUTSECRET, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_INPUTSECRET, "jsp", "jsp", 358,false, null); > } > > public void testCreateSelectBooleanCheckbox() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTBOOLEANCHECKBOX, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTBOOLEANCHECKBOX, "jsp", "jsp", 358,false, null); > } > > public void testCreateSelectManyCheckbox() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTMANYCHECKBOX, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTMANYCHECKBOX, "jsp", "jsp", 358,false, null); > } > > public void testCreateSelectManyListbox() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTMANYLISTBOX, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTMANYLISTBOX, "jsp", "jsp", 358,false, null); > } > > public void testCreateSelectManyMenu() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTMANYMENU, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTMANYMENU, "jsp", "jsp", 358,false, null); > } > > public void testCreateSelectOneListbox() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTONELISTBOX, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTONELISTBOX, "jsp", "jsp", 358,false, null); > } > > public void testCreateSelectOneMenu() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTONEMENU, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTONEMENU, "jsp", "jsp", 358,false, null); > } > > public void testCreateSelectOneRadio() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTONERADIO, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTONERADIO, "jsp", "jsp", 358,false, null); > } > > public void testCreateInputText() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_INPUTTEXT, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_INPUTTEXT, "jsp", "jsp", 358,false, null); > } > > public void testCreateInputTextArea() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_INPUTTEXTAREA, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_INPUTTEXTAREA, "jsp", "jsp", 358,false, null); > } > > } >\ No newline at end of file >Index: src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestUserCustomizedTagCreatorForJSFHTML_AttributeCustomization.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestUserCustomizedTagCreatorForJSFHTML_AttributeCustomization.java,v >retrieving revision 1.2 >diff -u -r1.2 TestUserCustomizedTagCreatorForJSFHTML_AttributeCustomization.java >--- src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestUserCustomizedTagCreatorForJSFHTML_AttributeCustomization.java 27 Apr 2009 23:40:06 -0000 1.2 >+++ src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestUserCustomizedTagCreatorForJSFHTML_AttributeCustomization.java 1 May 2009 01:25:37 -0000 >@@ -1,8 +1,8 @@ > package org.eclipse.jst.pagedesigner.tests.tagcreator; > >-import org.eclipse.core.runtime.IAdaptable; > import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants; > import org.eclipse.jst.pagedesigner.itemcreation.customizer.CustomizationDataImpl; >+import org.eclipse.jst.pagedesigner.itemcreation.customizer.ICustomizationData; > import org.eclipse.jst.pagedesigner.itemcreation.customizer.IWritableCustomizationData; > > /** >@@ -23,20 +23,19 @@ > > public void testAttributeInsertion() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jsp", "jsp", 358, false); >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jspx", "jspx", 495, false); >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "xhtml", "xhtml", 350, false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jsp", "jsp", 358, false, getCustomizationData()); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jspx", "jspx", 495, false, getCustomizationData()); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "xhtml", "xhtml", 350, false, getCustomizationData()); > } > > >- @Override >- protected IAdaptable getCustomizationData() >+ protected ICustomizationData getCustomizationData() > { > // Setup tag > IWritableCustomizationData data = new CustomizationDataImpl(getTagIdentifier()); > data.addAttribute("attr1", "value1"); > >- return (IAdaptable) data; >+ return data; > } > > >Index: src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestUserCustomizedTagCreatorForJSFHTML_ChildCustomization.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestUserCustomizedTagCreatorForJSFHTML_ChildCustomization.java,v >retrieving revision 1.2 >diff -u -r1.2 TestUserCustomizedTagCreatorForJSFHTML_ChildCustomization.java >--- src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestUserCustomizedTagCreatorForJSFHTML_ChildCustomization.java 27 Apr 2009 23:40:06 -0000 1.2 >+++ src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestUserCustomizedTagCreatorForJSFHTML_ChildCustomization.java 1 May 2009 01:25:37 -0000 >@@ -1,8 +1,8 @@ > package org.eclipse.jst.pagedesigner.tests.tagcreator; > >-import org.eclipse.core.runtime.IAdaptable; > import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants; > import org.eclipse.jst.pagedesigner.itemcreation.customizer.CustomizationDataImpl; >+import org.eclipse.jst.pagedesigner.itemcreation.customizer.ICustomizationData; > import org.eclipse.jst.pagedesigner.itemcreation.customizer.IWritableCustomizationData; > import org.eclipse.jst.pagedesigner.tests.tagcreatorPlugin.UserCustomizedElementEditFactory; > >@@ -24,14 +24,13 @@ > > public void testChildTagInsertion() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jsp", "jsp", 358, false); >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jspx", "jspx", 495, false); >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "xhtml", "xhtml", 350, false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jsp", "jsp", 358, false, getCustomizationData()); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "jspx", "jspx", 495, false, getCustomizationData()); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_COMMANDBUTTON, "xhtml", "xhtml", 350, false, getCustomizationData()); > } > > >- @Override >- protected IAdaptable getCustomizationData() >+ protected ICustomizationData getCustomizationData() > { > // Setup tag > IWritableCustomizationData tagDropped = new CustomizationDataImpl(getTagIdentifier()); >Index: src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorForJSFCore.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorForJSFCore.java,v >retrieving revision 1.4 >diff -u -r1.4 TestDefaultTagCreatorForJSFCore.java >--- src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorForJSFCore.java 27 Mar 2009 19:38:30 -0000 1.4 >+++ src/org/eclipse/jst/pagedesigner/tests/tagcreator/TestDefaultTagCreatorForJSFCore.java 1 May 2009 01:25:36 -0000 >@@ -33,21 +33,21 @@ > > public void testCreateActionListener() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_ACTIONLISTENER, "jsp", "jsp", 358, false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_ACTIONLISTENER, "jsp", "jsp", 358, false, null); > } > > public void testCreateAttribute() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_ATTRIBUTE, "jsp", "jsp", 358, false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_ATTRIBUTE, "jsp", "jsp", 358, false, null); > } > > public void testCreateConvertDateTime() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_CONVERTDATETIME, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_CONVERTDATETIME, "jsp", "jsp", 358,false, null); > } > public void testCreateConvertNumber() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_CONVERTNUMBER, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_CONVERTNUMBER, "jsp", "jsp", 358,false, null); > } > > /** >@@ -55,7 +55,7 @@ > */ > public void testCreateConverter() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_CONVERTER, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_CONVERTER, "jsp", "jsp", 358,false, null); > } > > /** >@@ -63,7 +63,7 @@ > */ > public void testCreateFacet() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_FACET, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_FACET, "jsp", "jsp", 358,false, null); > } > > /** >@@ -71,7 +71,7 @@ > */ > public void testCreateLoadBundle() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_LOADBUNDLE, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_LOADBUNDLE, "jsp", "jsp", 358,false, null); > } > > /** >@@ -79,7 +79,7 @@ > */ > public void testCreateParam() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_PARAM, "jsp", "jsp", 358,true); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_PARAM, "jsp", "jsp", 358,true, null); > } > > /** >@@ -87,7 +87,7 @@ > */ > public void testCreateSelectItem() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTITEM, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTITEM, "jsp", "jsp", 358,false, null); > } > > /** >@@ -95,7 +95,7 @@ > */ > public void testCreateSelectItems() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTITEMS, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_SELECTITEMS, "jsp", "jsp", 358,false, null); > } > > /** >@@ -103,7 +103,7 @@ > */ > public void testCreateSubview() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_SUBVIEW, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_SUBVIEW, "jsp", "jsp", 358,false, null); > } > > /** >@@ -111,7 +111,7 @@ > */ > public void testCreateValidateDoubleRange() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALIDATEDOUBLERANGE, "jsp", "jsp", 358,true); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALIDATEDOUBLERANGE, "jsp", "jsp", 358,true, null); > } > > /** >@@ -119,7 +119,7 @@ > */ > public void testCreateValidateLength() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALIDATELENGTH, "jsp", "jsp", 358,true); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALIDATELENGTH, "jsp", "jsp", 358,true, null); > } > > /** >@@ -127,7 +127,7 @@ > */ > public void testCreateValidateLongRange() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALIDATELONGRANGE, "jsp", "jsp", 358,true); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALIDATELONGRANGE, "jsp", "jsp", 358,true, null); > } > > /** >@@ -135,7 +135,7 @@ > */ > public void testCreateValidator() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALIDATOR, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALIDATOR, "jsp", "jsp", 358,false, null); > } > > /** >@@ -143,7 +143,7 @@ > */ > public void testCreateValueChangeListener() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALUECHANGELISTENER, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_VALUECHANGELISTENER, "jsp", "jsp", 358,false, null); > } > > /** >@@ -151,7 +151,7 @@ > */ > public void testCreateVerbatim() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_VERBATIM, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_VERBATIM, "jsp", "jsp", 358,false, null); > } > > /** >@@ -159,7 +159,7 @@ > */ > public void testCreateView() throws Exception > { >- doCreateTest(IJSFConstants.TAG_IDENTIFIER_VIEW, "jsp", "jsp", 358,false); >+ doCreateTest(IJSFConstants.TAG_IDENTIFIER_VIEW, "jsp", "jsp", 358,false, null); > } > > } >Index: src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/BaseTestClass.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/BaseTestClass.java,v >retrieving revision 1.7 >diff -u -r1.7 BaseTestClass.java >--- src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/BaseTestClass.java 27 Mar 2009 19:38:30 -0000 1.7 >+++ src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/BaseTestClass.java 1 May 2009 01:25:37 -0000 >@@ -18,7 +18,6 @@ > > import org.eclipse.core.resources.IFile; > import org.eclipse.core.resources.IFolder; >-import org.eclipse.core.runtime.IAdaptable; > import org.eclipse.core.runtime.IPath; > import org.eclipse.core.runtime.IStatus; > import org.eclipse.gef.EditDomain; >@@ -41,6 +40,7 @@ > import org.eclipse.jst.pagedesigner.editors.palette.impl.PaletteItemManager; > import org.eclipse.jst.pagedesigner.editors.palette.impl.TaglibPaletteDrawer; > import org.eclipse.jst.pagedesigner.itemcreation.CreationData; >+import org.eclipse.jst.pagedesigner.itemcreation.customizer.ICustomizationData; > import org.eclipse.jst.pagedesigner.tests.PageDesignerTestsPlugin; > import org.eclipse.wst.html.core.internal.document.DOMStyleModelImpl; > import org.eclipse.wst.html.core.internal.format.HTMLFormatProcessorImpl; >@@ -49,8 +49,6 @@ > import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; > import org.eclipse.wst.xml.core.internal.document.ElementImpl; > import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; >-import org.w3c.dom.Element; >-import org.w3c.dom.NamedNodeMap; > import org.w3c.dom.Node; > > public class BaseTestClass extends TestCase >@@ -90,16 +88,9 @@ > .getTestProject()); > } > >- >- protected IAdaptable getCustomizationData() >- { >- return null; >- } >- >- > protected CreationData getCreationData(final String uri, > final String tagName, final String defaultPrefix, final IFile file, >- final int offset) throws Exception >+ final int offset, final ICustomizationData customizationData) throws Exception > { > final ITaglibDomainMetaDataModelContext modelContext = TaglibDomainMetaDataQueryHelper > .createMetaDataModelContext( >@@ -116,12 +107,12 @@ > assertEquals(Node.TEXT_NODE, node.getNodeType()); > > final DOMPosition domPosition = new DOMPosition(node, 0); >- >- return new CreationData(entry, (IDOMModel) context.getModel(), >- domPosition, modelContext, getCustomizationData()); >+ final IDOMModel model =(IDOMModel) context.getModel(); >+ return new CreationData(entry.getTemplate(), model, >+ domPosition, modelContext, customizationData); > } > >- protected TagToolPaletteEntry createPaletteEntry(final String uri, >+ private TagToolPaletteEntry createPaletteEntry(final String uri, > final String tagName) > { > final TaglibPaletteDrawer drawer = _manager >@@ -140,7 +131,7 @@ > return entry; > } > >- protected TagToolPaletteEntry createNonNullPaletteEntry(final String uri, >+ private TagToolPaletteEntry createNonNullPaletteEntry(final String uri, > final String tagName) > { > final TagToolPaletteEntry entry = createPaletteEntry(uri, tagName); >@@ -284,10 +275,10 @@ > final int offset, final TagIdentifier tagId, > final int expectedResult) throws Exception > { >+ > final TagToolPaletteEntry toolEntry = createNonNullPaletteEntry(tagId > .getUri(), tagId.getTagName()); >- >- final MockItemCreationTool tool = new MockItemCreationTool(toolEntry); >+ final MockItemCreationTool tool = new MockItemCreationTool(toolEntry.getTemplate()); > > final ContextWrapper wrapper = getDocumentContext(offset, file); > final IDOMContextResolver resolver = IStructuredDocumentContextResolverFactory.INSTANCE >@@ -297,7 +288,7 @@ > final DOMPosition domPosition = new DOMPosition(resolver.getNode(), 0); > > final MockCreateItemCommand command = new MockCreateItemCommand( >- "Test Command", (IDOMModel) model, domPosition, toolEntry); >+ "Test Command", (IDOMModel) model, domPosition, toolEntry.getTemplate()); > > tool.setEditDomain(new EditDomain()); > tool.setCurrentCommand(command); >@@ -323,25 +314,6 @@ > (element).setEmptyTag(true); > (element).removeChildNodes(); > final Node copy = (element).cloneNode(false); >- >- /* >- * ElementImpl.cloneNode(...) seems to have started creating >- * attributes that display differently than the cloned Node's >- * (attr='' rather than attr=""), breaking textual comparisons. >- * By overwriting the existing attributes after cloning, we get the >- * expected form (double quotes instead of single quotes). >- * >- * - Ian Trimble, 20090305 >- */ >- if (element.hasAttributes() && copy instanceof Element) { >- NamedNodeMap attrMap = element.getAttributes(); >- for (int i = 0; i < attrMap.getLength(); i++) { >- Node attrNode = attrMap.item(i); >- ((Element)copy).setAttribute( >- attrNode.getNodeName(), attrNode.getNodeValue()); >- } >- } >- > element.getParentNode().replaceChild(copy, element); > } > } >Index: src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/MockCreateItemCommand.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/MockCreateItemCommand.java,v >retrieving revision 1.3 >diff -u -r1.3 MockCreateItemCommand.java >--- src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/MockCreateItemCommand.java 2 May 2008 19:49:06 -0000 1.3 >+++ src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/MockCreateItemCommand.java 1 May 2009 01:25:37 -0000 >@@ -16,7 +16,7 @@ > import org.eclipse.core.runtime.IAdaptable; > import org.eclipse.jst.pagedesigner.commands.CreateItemCommand; > import org.eclipse.jst.pagedesigner.dom.IDOMPosition; >-import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry; >+import org.eclipse.jst.pagedesigner.editors.palette.ITagDropSourceData; > import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; > import org.w3c.dom.Element; > import org.w3c.dom.Node; >@@ -24,8 +24,8 @@ > public class MockCreateItemCommand extends CreateItemCommand > { > public MockCreateItemCommand(String label, IDOMModel model, >- IDOMPosition position, TagToolPaletteEntry tagItem) { >- super(label, model, position, tagItem); >+ IDOMPosition position, ITagDropSourceData tagDropSourceData) { >+ super(label, model, position, tagDropSourceData); > } > > @Override >Index: src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/BaseTagCreatorTestCase.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/BaseTagCreatorTestCase.java,v >retrieving revision 1.4 >diff -u -r1.4 BaseTagCreatorTestCase.java >--- src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/BaseTagCreatorTestCase.java 27 Mar 2009 19:38:30 -0000 1.4 >+++ src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/BaseTagCreatorTestCase.java 1 May 2009 01:25:37 -0000 >@@ -13,6 +13,7 @@ > import org.eclipse.core.resources.IFile; > import org.eclipse.jst.jsf.common.dom.TagIdentifier; > import org.eclipse.jst.pagedesigner.itemcreation.ITagCreator; >+import org.eclipse.jst.pagedesigner.itemcreation.customizer.ICustomizationData; > import org.eclipse.jst.pagedesigner.tests.PageDesignerTestsPlugin; > import org.eclipse.wst.xml.core.internal.document.ElementImpl; > import org.w3c.dom.Element; >@@ -50,16 +51,17 @@ > > /** > * @param tagId >- * @param inExt >- * @param outExt >- * @param offset >- * @param forceResultTagEmpty this is a workaround flag due to the fact that some >+ * @param inExt >+ * @param outExt >+ * @param offset >+ * @param forceResultTagEmpty this is a workaround flag due to the fact that some > * TLD body definitions differ between RI and MyFaces, causing some tags to be > * generated as <tag></tag> in RI and <tag/> in MyFaces. NEVER SET TO TRUE ON A TAG ID > * whose instances may have child elements. >+ * @param customizationData TODO > * @throws Exception > */ >- protected final void doCreateTest(final TagIdentifier tagId, final String inExt, final String outExt, int offset, boolean forceResultTagEmpty) throws Exception >+ protected final void doCreateTest(final TagIdentifier tagId, final String inExt, final String outExt, int offset, boolean forceResultTagEmpty, ICustomizationData customizationData) throws Exception > { > final String uri = tagId.getUri(); > final String tagName = tagId.getTagName(); >@@ -69,12 +71,12 @@ > "/testdata/tagcreator/tagCreator."+inExt+".data", "/tagCreator_"+tagName+"."+inExt); > > setTagIdentifier(tagId); >- >+ > ITagCreator tagCreator = getTagCreator(getTagIdentifier()); >- >+ > Element element = tagCreator.createTag(getCreationData(uri, tagName, >- _defaultPrefix, file, offset)); >- >+ _defaultPrefix, file, offset, customizationData)); >+ > // this is a hack that is required because we do a literal comparison > // between the modified source file and test data file on a character > // by character basis. However, the MyFaces and RI (and possibly other) >Index: src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/MockItemCreationTool.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/MockItemCreationTool.java,v >retrieving revision 1.3 >diff -u -r1.3 MockItemCreationTool.java >--- src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/MockItemCreationTool.java 2 May 2008 19:49:06 -0000 1.3 >+++ src/org/eclipse/jst/pagedesigner/tests/tagcreator/base/MockItemCreationTool.java 1 May 2009 01:25:37 -0000 >@@ -16,15 +16,15 @@ > import org.eclipse.gef.EditDomain; > import org.eclipse.gef.commands.Command; > import org.eclipse.jst.pagedesigner.commands.CreateItemCommand; >-import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry; >+import org.eclipse.jst.pagedesigner.editors.palette.ITagDropSourceData; > import org.eclipse.jst.pagedesigner.itemcreation.ItemCreationTool; > > public class MockItemCreationTool extends ItemCreationTool > { > private Command _cached = null; > >- public MockItemCreationTool(TagToolPaletteEntry tagToolPaletteEntryItem) { >- super(tagToolPaletteEntryItem); >+ public MockItemCreationTool(ITagDropSourceData tagDropSourceData) { >+ super(tagDropSourceData); > } > > @Override >Index: src/org/eclipse/jst/pagedesigner/tests/tabbed/properties/sections/BasicTabbedPropertyPageTests.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/tests/org.eclipse.jst.pagedesigner.tests/src/org/eclipse/jst/pagedesigner/tests/tabbed/properties/sections/BasicTabbedPropertyPageTests.java,v >retrieving revision 1.4 >diff -u -r1.4 BasicTabbedPropertyPageTests.java >--- src/org/eclipse/jst/pagedesigner/tests/tabbed/properties/sections/BasicTabbedPropertyPageTests.java 5 Feb 2009 22:44:01 -0000 1.4 >+++ src/org/eclipse/jst/pagedesigner/tests/tabbed/properties/sections/BasicTabbedPropertyPageTests.java 1 May 2009 01:25:36 -0000 >@@ -50,7 +50,7 @@ > ISelection sel = getSelection(node); > view.getViewSite().getSelectionProvider().setSelection(sel); > ISelection selection = view.getViewSite().getSelectionProvider().getSelection(); >- assertEquals(sel, selection); >+ assertEquals(sel, selection); > > } catch(Exception ex) { > ex.printStackTrace(); >#P org.eclipse.jst.pagedesigner >Index: src/org/eclipse/jst/pagedesigner/utils/CommandUtil.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/utils/CommandUtil.java,v >retrieving revision 1.7 >diff -u -r1.7 CommandUtil.java >--- src/org/eclipse/jst/pagedesigner/utils/CommandUtil.java 18 Nov 2008 22:22:43 -0000 1.7 >+++ src/org/eclipse/jst/pagedesigner/utils/CommandUtil.java 1 May 2009 01:25:41 -0000 >@@ -22,7 +22,8 @@ > import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContextFactory; > import org.eclipse.jst.pagedesigner.PDPlugin; > import org.eclipse.jst.pagedesigner.dom.IDOMPosition; >-import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry; >+import org.eclipse.jst.pagedesigner.editors.palette.IDropSourceData; >+import org.eclipse.jst.pagedesigner.editors.palette.ITagDropSourceData; > import org.eclipse.jst.pagedesigner.itemcreation.CreationData; > import org.eclipse.jst.pagedesigner.itemcreation.ITagCreator; > import org.eclipse.jst.pagedesigner.itemcreation.internal.TagCreationFactory; >@@ -34,52 +35,89 @@ > * @author mengbo > * @version 1.5 > */ >-public class CommandUtil { >- private static final Logger _log = PDPlugin.getLogger(CommandUtil.class); >- >- /** >- * @param tagItem >- * @param model >- * @param domPosition >- * @param customizationData >- * @return the element inserted or null if failed >- */ >- public static Element excuteInsertion(TagToolPaletteEntry tagItem, >- IDOMModel model, IDOMPosition domPosition, IAdaptable customizationData) { >- try >- { >- IStructuredDocument doc = model.getDocument().getStructuredDocument(); >- >- IStructuredDocumentContext context = >- IStructuredDocumentContextFactory.INSTANCE.getContext(doc, -1); >- IWorkspaceContextResolver resolver = >- IStructuredDocumentContextResolverFactory.INSTANCE.getWorkspaceContextResolver(context); >- >- IProject project = resolver.getProject(); >- >- final ITaglibDomainMetaDataModelContext modelContext = >- TaglibDomainMetaDataQueryHelper >- .createMetaDataModelContext(project, tagItem.getURI()); >+public class CommandUtil >+{ >+ private static final Logger _log = PDPlugin.getLogger(CommandUtil.class); >+ >+ /** >+ * @param dropSourceData >+ * @param model >+ * @param domPosition >+ * @param customizationData >+ * @return the element inserted or null if failed >+ */ >+ public static Element executeInsertion( >+ final IDropSourceData dropSourceData, final IDOMModel model, >+ final IDOMPosition domPosition, final IAdaptable customizationData) >+ { >+ try >+ { >+ final ITaglibDomainMetaDataModelContext modelContext = getMetadataContext( >+ dropSourceData.getURI(), model); >+ >+ ITagDropSourceData tagDropSourceData = null; >+ >+ if (dropSourceData instanceof ITagDropSourceData) >+ { >+ tagDropSourceData = (ITagDropSourceData) dropSourceData; >+ } else if (customizationData != null) >+ { >+ tagDropSourceData = (ITagDropSourceData) customizationData >+ .getAdapter(ITagDropSourceData.class); >+ } >+ >+ if (tagDropSourceData == null) >+ { >+ PDPlugin >+ .log( >+ "Could not down cast dropSourceData to tagDropSourceData", new Exception("for stack trace only")); //$NON-NLS-1$//$NON-NLS-2$ >+ } > > // TODO: note that the constructor currently causes the prefix defn >- // to be added to the target doc. This should be moved into >+ // to be added to the target doc. This should be moved into > // an ensure method in the AbstractTagCreator >- final CreationData creationData = >- new CreationData(tagItem, model, domPosition, modelContext, customizationData); >- >- ITagCreator tagCreator = >- TagCreationFactory.getInstance().createTagCreator(creationData.getTagId()); >- >- if (tagCreator == null) >- { >- return null;//should never get here! >- } >- >- return tagCreator.createTag(creationData); >- } catch (Exception e) { >- _log.error("Problem creating tag "+tagItem.getTagName()+" at:" + domPosition + "\n", e); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ >- } >+ final CreationData creationData = new CreationData( >+ tagDropSourceData, model, domPosition, modelContext, >+ customizationData); >+ >+ final ITagCreator tagCreator = TagCreationFactory.getInstance() >+ .createTagCreator(creationData.getTagId()); >+ >+ if (tagCreator == null) >+ { >+ return null;// should never get here! >+ } >+ >+ return tagCreator.createTag(creationData); >+ } catch (Exception e) >+ { >+ _log >+ .error( >+ "Problem creating tag " + dropSourceData.getTagName() + " at:" + domPosition + "\n", e); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ >+ } > return null; >- } >+ } > >+ /** >+ * @param uri >+ * @param model >+ * @return the metadata context for uri in the DOM model or null if none. >+ */ >+ public static ITaglibDomainMetaDataModelContext getMetadataContext( >+ final String uri, final IDOMModel model) >+ { >+ final IStructuredDocument doc = model.getDocument() >+ .getStructuredDocument(); >+ >+ final IStructuredDocumentContext context = IStructuredDocumentContextFactory.INSTANCE >+ .getContext(doc, -1); >+ final IWorkspaceContextResolver resolver = IStructuredDocumentContextResolverFactory.INSTANCE >+ .getWorkspaceContextResolver(context); >+ >+ final IProject project = resolver.getProject(); >+ >+ final ITaglibDomainMetaDataModelContext modelContext = TaglibDomainMetaDataQueryHelper >+ .createMetaDataModelContext(project, uri); >+ return modelContext; >+ } > } >Index: src/org/eclipse/jst/pagedesigner/itemcreation/CreationData.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/CreationData.java,v >retrieving revision 1.5 >diff -u -r1.5 CreationData.java >--- src/org/eclipse/jst/pagedesigner/itemcreation/CreationData.java 11 Feb 2009 19:02:45 -0000 1.5 >+++ src/org/eclipse/jst/pagedesigner/itemcreation/CreationData.java 1 May 2009 01:25:40 -0000 >@@ -20,11 +20,8 @@ > import org.eclipse.jst.jsf.common.metadata.query.TaglibDomainMetaDataQueryHelper; > import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants; > import org.eclipse.jst.jsf.core.internal.tld.TagIdentifierFactory; >-import org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.PaletteInfo; >-import org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.PaletteInfos; >-import org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.TagCreationInfo; > import org.eclipse.jst.pagedesigner.dom.IDOMPosition; >-import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry; >+import org.eclipse.jst.pagedesigner.editors.palette.ITagDropSourceData; > import org.eclipse.jst.pagedesigner.utils.JSPUtil; > import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocType; > import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; >@@ -39,12 +36,12 @@ > */ > public final class CreationData > { >- private final TagToolPaletteEntry _tagEntry; >+ private final ITagDropSourceData _creationProvider; > private final String _prefix; > private final IDOMPosition _domPosition; > private final IDOMModel _model; > private final IAdaptable _customizationData; >- >+ > private TagIdentifier _tagId; // = null; lazy init on creation > > /** >@@ -63,16 +60,19 @@ > > > /** >- * @param tagEntry TODO: remove this direct dependence on the palette >+ * @param creationProvider > * @param model > * @param domPosition > * @param taglibMetaDataContext > * @param customizationData > */ >- public CreationData(final TagToolPaletteEntry tagEntry, final IDOMModel model, final IDOMPosition domPosition, final ITaglibDomainMetaDataModelContext taglibMetaDataContext, final IAdaptable customizationData) >+ public CreationData(final ITagDropSourceData creationProvider, >+ final IDOMModel model, final IDOMPosition domPosition, >+ final ITaglibDomainMetaDataModelContext taglibMetaDataContext, >+ final IAdaptable customizationData) > { > super(); >- this._tagEntry = tagEntry; >+ this._creationProvider = creationProvider; > this._prefix = getPrefix(getUri(), model, getDefaultPrefix()); > this._taglibMetaDataContext = taglibMetaDataContext; > this._domPosition = domPosition; >@@ -105,14 +105,14 @@ > * @return the tag identifier uri > */ > public String getUri() { >- return _tagEntry.getURI(); >+ return _creationProvider.getURI(); > } > > /** > * @return the default prefix > */ > public String getDefaultPrefix() { >- return _tagEntry.getDefaultPrefix(); >+ return _creationProvider.getDefaultPrefix(); > } > > /** >@@ -126,50 +126,17 @@ > * @return the tag name > */ > public String getTagName() { >- return _tagEntry.getTagName(); >+ return _creationProvider.getTagName(); > } > > /** >- * @return the id >- */ >- private String getItemId() { >- return _tagEntry.getId(); >- } >- >- /** >- * @return the palette entry that this creation info is based on >- */ >- public TagToolPaletteEntry getTagEntry() { >- return _tagEntry; >- } >- >- /** >- * @return {@link TagCreationInfo} for the tag entity >+ * @return the creation provider > */ >- public TagCreationInfo getTagCreationInfo(){ >- Model model = TaglibDomainMetaDataQueryHelper.getModel(_taglibMetaDataContext); >- if (model != null){ >- Trait trait = TaglibDomainMetaDataQueryHelper.getTrait(model, PaletteInfos.TRAIT_ID); >- if (trait != null){ >- PaletteInfos pis = (PaletteInfos)trait.getValue(); >- PaletteInfo pi = pis.findPaletteInfoById(getItemId()); >- if (pi != null){ >- return pi.getTagCreation(); >- } >- } >- //tag-creation trait on entity directly? >- Entity tag = getTagEntity(); >- if (tag != null){//metadata exists >- trait = TaglibDomainMetaDataQueryHelper.getTrait(tag, "tag-create"); //$NON-NLS-1$ >- if (trait != null && trait.getValue() != null){ >- return (TagCreationInfo)trait.getValue(); >- } >- } >- } >- return null; >+ public ITagDropSourceData getTagCreationProvider() >+ { >+ return _creationProvider; > } > >- > /** > * @return the {@link Entity} for this tag element being created > */ >Index: src/org/eclipse/jst/pagedesigner/itemcreation/ItemCreationTool.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/ItemCreationTool.java,v >retrieving revision 1.10 >diff -u -r1.10 ItemCreationTool.java >--- src/org/eclipse/jst/pagedesigner/itemcreation/ItemCreationTool.java 4 Nov 2008 01:15:44 -0000 1.10 >+++ src/org/eclipse/jst/pagedesigner/itemcreation/ItemCreationTool.java 1 May 2009 01:25:41 -0000 >@@ -18,7 +18,7 @@ > import org.eclipse.gef.commands.Command; > import org.eclipse.gef.tools.TargetingTool; > import org.eclipse.jst.pagedesigner.commands.CreateItemCommand; >-import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry; >+import org.eclipse.jst.pagedesigner.editors.palette.ITagDropSourceData; > import org.eclipse.jst.pagedesigner.itemcreation.customizer.DropCustomizationController; > import org.eclipse.swt.graphics.Cursor; > >@@ -32,17 +32,17 @@ > * @author mengbo > */ > public class ItemCreationTool extends TargetingTool { >- TagToolPaletteEntry _tagPaletteItem; //can we get rid of this? >+ private final ITagDropSourceData _tagDropSourceData; //can we get rid of this? > > /** > * Default constructor. Sets the default and disabled cursors. >- * @param tagToolPaletteEntryItem >+ * @param tagDropSourceData > */ >- public ItemCreationTool(TagToolPaletteEntry tagToolPaletteEntryItem) { >+ public ItemCreationTool(ITagDropSourceData tagDropSourceData) { > setDefaultCursor(SharedCursors.CURSOR_TREE_ADD); > setDisabledCursor(SharedCursors.NO); > >- this._tagPaletteItem = tagToolPaletteEntryItem; >+ this._tagDropSourceData = tagDropSourceData; > } > > /** >@@ -69,7 +69,7 @@ > */ > protected Request createTargetRequest() { > ItemCreationRequest request = new ItemCreationRequest(); >- request.setTagToolPaletteEntry(_tagPaletteItem); >+ request.setTagCreationProvider(_tagDropSourceData); > return request; > } > >@@ -168,7 +168,7 @@ > if (command instanceof CreateItemCommand) > { > status = new DropCustomizationController((CreateItemCommand) command, >- _tagPaletteItem.getURI(), _tagPaletteItem.getTagName(), >+ _tagDropSourceData, > ((CreateItemCommand)command).getDocument(), > ((CreateItemCommand)command).getPosition()). > performCustomization(); >Index: src/org/eclipse/jst/pagedesigner/itemcreation/ItemCreationRequest.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/ItemCreationRequest.java,v >retrieving revision 1.5 >diff -u -r1.5 ItemCreationRequest.java >--- src/org/eclipse/jst/pagedesigner/itemcreation/ItemCreationRequest.java 18 Nov 2008 22:22:51 -0000 1.5 >+++ src/org/eclipse/jst/pagedesigner/itemcreation/ItemCreationRequest.java 1 May 2009 01:25:40 -0000 >@@ -14,7 +14,8 @@ > import org.eclipse.draw2d.geometry.Point; > import org.eclipse.gef.Request; > import org.eclipse.gef.requests.DropRequest; >-import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry; >+import org.eclipse.jst.pagedesigner.editors.palette.IDropSourceData; >+import org.eclipse.jst.pagedesigner.editors.palette.ITagDropSourceData; > > /** > * Tag tool item creation request class >@@ -29,7 +30,7 @@ > /** > * Constant used for tag tool item > */ >- public static final String TAG_TOOL_PALETTE_ENTRY = "TagToolPaletteEntry"; //$NON-NLS-1$ >+ private static final String DROP_SOURCE_DATA = "TagToolPaletteEntry"; //$NON-NLS-1$ > /** > * Constant used for location during creation request > */ >@@ -43,14 +44,6 @@ > super(REQ_ITEM_CREATION); > } > >- /** >- * Constructor >- * @param type >- */ >- public ItemCreationRequest(Object type) { >- super(type); >- } >- > /* > * (non-Javadoc) > * >@@ -73,18 +66,18 @@ > > /** > * Set the tag tool item for creation request >- * @param tagToolPaletteEntryItem >+ * @param creationProvider > */ >- public void setTagToolPaletteEntry(TagToolPaletteEntry tagToolPaletteEntryItem) { >- getExtendedData().remove(TAG_TOOL_PALETTE_ENTRY); >- getExtendedData().put(TAG_TOOL_PALETTE_ENTRY, tagToolPaletteEntryItem); >+ public void setTagCreationProvider(final IDropSourceData creationProvider) { >+ getExtendedData().remove(DROP_SOURCE_DATA); >+ getExtendedData().put(DROP_SOURCE_DATA, creationProvider); > } > > /** >- * @return {@link TagToolPaletteEntry} requesting creation >+ * @return {@link ITagDropSourceData} requesting creation > */ >- public TagToolPaletteEntry getTagToolPaletteEntry() { >- return (TagToolPaletteEntry)getExtendedData().get(TAG_TOOL_PALETTE_ENTRY); >+ public IDropSourceData getTagCreationProvider() { >+ return (IDropSourceData)getExtendedData().get(DROP_SOURCE_DATA); > } > > } >Index: src/org/eclipse/jst/pagedesigner/itemcreation/UserCustomizedTagCreationAdvisor.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/UserCustomizedTagCreationAdvisor.java,v >retrieving revision 1.1 >diff -u -r1.1 UserCustomizedTagCreationAdvisor.java >--- src/org/eclipse/jst/pagedesigner/itemcreation/UserCustomizedTagCreationAdvisor.java 4 Nov 2008 01:15:44 -0000 1.1 >+++ src/org/eclipse/jst/pagedesigner/itemcreation/UserCustomizedTagCreationAdvisor.java 1 May 2009 01:25:41 -0000 >@@ -72,12 +72,12 @@ > > if (isFirstParent) > { >- command = new UserCustomizedContainerCreationCommand(position, parentTagIdentifier, _creationData.getTagId(), (IAdaptable) parentCustomizationData); >+ command = new UserCustomizedContainerCreationCommand(position, parentTagIdentifier, _creationData.getTagId(), parentCustomizationData); > isFirstParent = false; > } > else > { >- command.chain(new UserCustomizedContainerCreationCommand(position, parentTagIdentifier, _creationData.getTagId(), (IAdaptable) parentCustomizationData)); >+ command.chain(new UserCustomizedContainerCreationCommand(position, parentTagIdentifier, _creationData.getTagId(), parentCustomizationData)); > } > } > return command; >Index: src/org/eclipse/jst/pagedesigner/itemcreation/ItemCreationEditPolicy.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/ItemCreationEditPolicy.java,v >retrieving revision 1.6 >diff -u -r1.6 ItemCreationEditPolicy.java >--- src/org/eclipse/jst/pagedesigner/itemcreation/ItemCreationEditPolicy.java 4 Sep 2007 18:13:52 -0000 1.6 >+++ src/org/eclipse/jst/pagedesigner/itemcreation/ItemCreationEditPolicy.java 1 May 2009 01:25:40 -0000 >@@ -53,10 +53,11 @@ > if (domposition == null) { > return null; > } >+// TagToolCreationAdapter tagToolCreationAdapter = new TagToolCreationAdapter(r.getTagToolPaletteEntry(), getViewer(getHost()).getModel()); > return new CreateItemCommand( > PDPlugin > .getResourceString("ItemCreationEditPolicy.CommandLabel.CreateItem"),//$NON-NLS-1$ >- getViewer(getHost()).getModel(), domposition, r.getTagToolPaletteEntry()); >+ getViewer(getHost()).getModel(), domposition, r.getTagCreationProvider()); > } > return null; > } >Index: src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerTemplateTransferDragSourceListener.java >=================================================================== >RCS file: src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerTemplateTransferDragSourceListener.java >diff -N src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerTemplateTransferDragSourceListener.java >--- src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerTemplateTransferDragSourceListener.java 28 Feb 2007 05:04:41 -0000 1.2 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,49 +0,0 @@ >-/******************************************************************************* >- * Copyright (c) 2006 Sybase, Inc. and others. >- * >- * All rights reserved. This program and the accompanying materials >- * are made available under the terms of the Eclipse Public License v1.0 >- * which accompanies this distribution, and is available at >- * http://www.eclipse.org/legal/epl-v10.html >- * >- * Contributors: >- * Sybase, Inc. - initial API and implementation >- *******************************************************************************/ >-package org.eclipse.jst.pagedesigner.dnd.internal; >- >-import java.util.List; >- >-import org.eclipse.gef.EditPart; >-import org.eclipse.gef.EditPartViewer; >-import org.eclipse.gef.dnd.TemplateTransferDragSourceListener; >-import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry; >- >-/** >- * @author mengbo >- */ >-public class DesignerTemplateTransferDragSourceListener extends >- TemplateTransferDragSourceListener { >- >- /** >- * @param viewer >- */ >- public DesignerTemplateTransferDragSourceListener(EditPartViewer viewer) { >- super(viewer); >- } >- >- protected Object getTemplate() { >- Object object = super.getTemplate(); >- if (object == null) { >- List selection = getViewer().getSelectedEditParts(); >- if (selection.size() == 1) { >- EditPart editpart = (EditPart) getViewer() >- .getSelectedEditParts().get(0); >- Object model = editpart.getModel(); >- if (model instanceof TagToolPaletteEntry) { >- return model; >- } >- } >- } >- return null; >- } >-} >Index: src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerSourceDropTargetListener.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerSourceDropTargetListener.java,v >retrieving revision 1.3 >diff -u -r1.3 DesignerSourceDropTargetListener.java >--- src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerSourceDropTargetListener.java 10 Oct 2007 00:05:15 -0000 1.3 >+++ src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerSourceDropTargetListener.java 1 May 2009 01:25:40 -0000 >@@ -15,7 +15,7 @@ > import org.eclipse.gef.dnd.TemplateTransfer; > import org.eclipse.jst.pagedesigner.commands.PaletteDropInsertCommand; > import org.eclipse.jst.pagedesigner.editors.pagedesigner.PageDesignerResources; >-import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry; >+import org.eclipse.jst.pagedesigner.editors.palette.IDropSourceDataProvider; > import org.eclipse.swt.custom.StyledText; > import org.eclipse.swt.dnd.DropTargetEvent; > import org.eclipse.swt.dnd.TextTransfer; >@@ -125,14 +125,15 @@ > event.currentDataType)) { > Object data = event.data; > PaletteDropInsertCommand command = null; >- if (data instanceof TagToolPaletteEntry) { >- TagToolPaletteEntry tagItem = (TagToolPaletteEntry) data; >+ if (data instanceof IDropSourceDataProvider) { >+ IDropSourceDataProvider provider = (IDropSourceDataProvider) data; >+ > // "Create new item" > command = new PaletteDropInsertCommand( > PageDesignerResources > .getInstance() > .getString( >- "DesignerSourceDropTargetListener.InserCommandLabel"), _textEditor, tagItem, _location); //$NON-NLS-1$ >+ "DesignerSourceDropTargetListener.InserCommandLabel"), _textEditor, provider.getDropSourceData(), _location); //$NON-NLS-1$ > } > return command; > } >Index: src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerSourceMouseTrackAdapter.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerSourceMouseTrackAdapter.java,v >retrieving revision 1.6 >diff -u -r1.6 DesignerSourceMouseTrackAdapter.java >--- src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerSourceMouseTrackAdapter.java 18 Nov 2008 22:22:54 -0000 1.6 >+++ src/org/eclipse/jst/pagedesigner/dnd/internal/DesignerSourceMouseTrackAdapter.java 1 May 2009 01:25:40 -0000 >@@ -16,7 +16,7 @@ > import org.eclipse.jst.pagedesigner.commands.PaletteDropInsertCommand; > import org.eclipse.jst.pagedesigner.commands.SourceViewerCommand; > import org.eclipse.jst.pagedesigner.editors.pagedesigner.PageDesignerResources; >-import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry; >+import org.eclipse.jst.pagedesigner.editors.palette.IDropSourceDataProvider; > import org.eclipse.swt.custom.StyledText; > import org.eclipse.swt.events.MouseEvent; > import org.eclipse.swt.events.MouseListener; >@@ -102,11 +102,11 @@ > * @see org.eclipse.gef.palette.PaletteListener#activeToolChanged(org.eclipse.gef.ui.palette.PaletteViewer, > * org.eclipse.gef.palette.ToolEntry) > */ >- private Object getPaletteObject() { >+ private IDropSourceDataProvider getPaletteObject() { > if (_domain.getPaletteViewer() != null) { > Object tool = _domain.getPaletteViewer().getActiveTool(); >- if (tool instanceof TagToolPaletteEntry) { >- return tool; >+ if (tool instanceof IDropSourceDataProvider) { >+ return (IDropSourceDataProvider) tool; > } > } > return null; >@@ -131,17 +131,16 @@ > } > > private PaletteDropInsertCommand getCommand(MouseEvent event) { >- Object data = getPaletteObject(); >+ IDropSourceDataProvider data = getPaletteObject(); > PaletteDropInsertCommand command = null; >- if (data instanceof TagToolPaletteEntry) { >- TagToolPaletteEntry descriptor = (TagToolPaletteEntry) data; >+ if (data != null) { > // "Create new item" > command = new PaletteDropInsertCommand( > PageDesignerResources > .getInstance() > .getString( > "DesignerSourceDropTargetListener.InserCommandLabel"), //$NON-NLS-1$ >- _textEditor, descriptor, _location); >+ _textEditor, data.getDropSourceData(), _location); > } > return command; > } >Index: src/org/eclipse/jst/pagedesigner/dnd/internal/PDTemplateTransferDropTargetListener.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/dnd/internal/PDTemplateTransferDropTargetListener.java,v >retrieving revision 1.9 >diff -u -r1.9 PDTemplateTransferDropTargetListener.java >--- src/org/eclipse/jst/pagedesigner/dnd/internal/PDTemplateTransferDropTargetListener.java 18 Nov 2008 22:22:53 -0000 1.9 >+++ src/org/eclipse/jst/pagedesigner/dnd/internal/PDTemplateTransferDropTargetListener.java 1 May 2009 01:25:40 -0000 >@@ -19,7 +19,7 @@ > import org.eclipse.gef.dnd.TemplateTransfer; > import org.eclipse.jst.pagedesigner.PDPlugin; > import org.eclipse.jst.pagedesigner.commands.CreateItemCommand; >-import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry; >+import org.eclipse.jst.pagedesigner.editors.palette.IDropSourceData; > import org.eclipse.jst.pagedesigner.itemcreation.ItemCreationRequest; > import org.eclipse.jst.pagedesigner.itemcreation.customizer.DropCustomizationController; > import org.eclipse.swt.dnd.DND; >@@ -92,12 +92,9 @@ > ItemCreationRequest request = (ItemCreationRequest) getCreateRequest(); > Object transferObj = TemplateTransfer.getInstance().getObject(); > >- if (transferObj instanceof TagToolPaletteEntry) >+ if (transferObj instanceof IDropSourceData) > { >- TagToolPaletteEntry tagItem = >- (TagToolPaletteEntry) transferObj; >- >- request.setTagToolPaletteEntry(tagItem); >+ request.setTagCreationProvider((IDropSourceData) transferObj); > request.setLocation(getDropLocation()); > } > else >@@ -140,11 +137,9 @@ > if (command instanceof CreateItemCommand) > { > final ItemCreationRequest request = (ItemCreationRequest) getCreateRequest(); >- final String name = request.getTagToolPaletteEntry().getTagName(); >- final String uri = request.getTagToolPaletteEntry().getURI(); > final CreateItemCommand createCommand = (CreateItemCommand) command; > final IStatus status = >- new DropCustomizationController(createCommand, uri, name, createCommand.getDocument(), createCommand.getPosition()) >+ new DropCustomizationController(createCommand, request.getTagCreationProvider(), createCommand.getDocument(), createCommand.getPosition()) > .performCustomization(); > > return status.getSeverity() == IStatus.OK; >Index: src/org/eclipse/jst/pagedesigner/itemcreation/command/ElementCustomizationCommand.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/command/ElementCustomizationCommand.java,v >retrieving revision 1.6 >diff -u -r1.6 ElementCustomizationCommand.java >--- src/org/eclipse/jst/pagedesigner/itemcreation/command/ElementCustomizationCommand.java 18 Nov 2008 22:22:55 -0000 1.6 >+++ src/org/eclipse/jst/pagedesigner/itemcreation/command/ElementCustomizationCommand.java 1 May 2009 01:25:41 -0000 >@@ -13,12 +13,14 @@ > import java.util.Collection; > import java.util.Collections; > import java.util.Iterator; >+import java.util.List; > > import org.eclipse.emf.common.command.Command; >-import org.eclipse.emf.common.util.EList; > import org.eclipse.jst.jsf.core.internal.tld.CMUtil; > import org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.TagCreationAttribute; >-import org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.TagCreationInfo; >+import org.eclipse.jst.pagedesigner.editors.palette.ITagDropSourceData; >+import org.eclipse.jst.pagedesigner.editors.palette.MetadataTagDropSourceData; >+import org.eclipse.jst.pagedesigner.editors.palette.TagToolCreationAdapter; > import org.eclipse.jst.pagedesigner.editors.palette.impl.PaletteElementTemplateHelper; > import org.eclipse.jst.pagedesigner.itemcreation.CreationData; > import org.eclipse.jst.pagedesigner.itemcreation.internal.AbstractCreationCommand; >@@ -97,11 +99,14 @@ > */ > protected void applyChildElementCustomization() > { >- final TagCreationInfo tagCreationInfo = _creationData.getTagCreationInfo(); >- if (tagCreationInfo != null) >+ final ITagDropSourceData tagDropSourceData = >+ _creationData.getTagCreationProvider(); >+ if (tagDropSourceData != null) > { >+ MetadataTagDropSourceData provider = >+ TagToolCreationAdapter.createMdTagCreationProvider(tagDropSourceData, _model); > PaletteElementTemplateHelper.applyTemplate(_model, _element, >- _creationData.getTagEntry(), tagCreationInfo); >+ provider); > } > } > >@@ -117,6 +122,7 @@ > * @param element > * @param creationData > */ >+ @SuppressWarnings("deprecation") > protected final void ensureRequiredAttrs(final Element element, > final CreationData creationData) > { >@@ -150,16 +156,16 @@ > */ > protected void applyAttributeCustomization() > { >- final TagCreationInfo info = _creationData.getTagCreationInfo(); >+ final ITagDropSourceData info = _creationData.getTagCreationProvider(); > if (info != null) > { >- final EList list = info.getAttributes(); >+ final MetadataTagDropSourceData provider = >+ TagToolCreationAdapter.createMdTagCreationProvider(info, _model); >+ final List<TagCreationAttribute> list = provider.getAttributes(); > if (list != null) > { >- for (final Iterator it = list.iterator(); it.hasNext();) >+ for (final TagCreationAttribute attr : list) > { >- final TagCreationAttribute attr = (TagCreationAttribute) it >- .next(); > _element.setAttribute(attr.getId(), > (attr.getValue() == null ? "" : attr.getValue())); //$NON-NLS-1$ > } >Index: src/org/eclipse/jst/pagedesigner/itemcreation/command/UserCustomizedContainerCreationCommand.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/command/UserCustomizedContainerCreationCommand.java,v >retrieving revision 1.3 >diff -u -r1.3 UserCustomizedContainerCreationCommand.java >--- src/org/eclipse/jst/pagedesigner/itemcreation/command/UserCustomizedContainerCreationCommand.java 27 Mar 2009 19:38:35 -0000 1.3 >+++ src/org/eclipse/jst/pagedesigner/itemcreation/command/UserCustomizedContainerCreationCommand.java 1 May 2009 01:25:41 -0000 >@@ -6,7 +6,11 @@ > import org.eclipse.jst.jsf.common.dom.TagIdentifier; > import org.eclipse.jst.pagedesigner.dom.IDOMPosition; > import org.eclipse.jst.pagedesigner.dom.ValidatorSupport; >+import org.eclipse.jst.pagedesigner.editors.palette.ITagDropSourceData; >+import org.eclipse.jst.pagedesigner.editors.palette.TagToolCreationAdapter; > import org.eclipse.jst.pagedesigner.itemcreation.customizer.ICustomizationData; >+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; >+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; > > /** > * Tag container creation command for tags dropped on to the WPE by the user >@@ -57,20 +61,26 @@ > return _data; > } > >- > @Override >- protected IDOMPosition doExecute() >+ protected IDOMPosition doExecute() > { > final IDOMPosition domPosition = getDomPosition(); >- final QName containerQName = getContainerTag().asQName(); >+ final QName containerQName = getContainerTag().asQName(); > > IDOMPosition newPosition = domPosition; >- newPosition = ValidatorSupport.insertContainer(domPosition, containerQName, getContainerCustomizationData()); >+ final IDOMModel model = ((IDOMNode) domPosition.getContainerNode()) >+ .getModel(); >+ >+ final ITagDropSourceData creationProvider = TagToolCreationAdapter >+ .findProviderForContainer(containerQName); >+ >+ newPosition = ValidatorSupport.insertContainer(domPosition, >+ model, creationProvider, getContainerCustomizationData()); > if (newPosition == null) > { > newPosition = domPosition; > } >- >+ > return newPosition; > } > } >Index: src/org/eclipse/jst/pagedesigner/itemcreation/command/TagContainerCreationCommand.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/command/TagContainerCreationCommand.java,v >retrieving revision 1.3 >diff -u -r1.3 TagContainerCreationCommand.java >--- src/org/eclipse/jst/pagedesigner/itemcreation/command/TagContainerCreationCommand.java 18 Nov 2008 22:22:55 -0000 1.3 >+++ src/org/eclipse/jst/pagedesigner/itemcreation/command/TagContainerCreationCommand.java 1 May 2009 01:25:41 -0000 >@@ -16,6 +16,10 @@ > import org.eclipse.jst.jsf.common.dom.TagIdentifier; > import org.eclipse.jst.pagedesigner.dom.IDOMPosition; > import org.eclipse.jst.pagedesigner.dom.ValidatorSupport; >+import org.eclipse.jst.pagedesigner.editors.palette.ITagDropSourceData; >+import org.eclipse.jst.pagedesigner.editors.palette.TagToolCreationAdapter; >+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; >+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; > > /** > * @author cbateman >@@ -45,9 +49,15 @@ > final QName containerQName = getContainerTag().asQName(); > boolean hasform = ValidatorSupport.checkContainer(domPosition, containerQName); > IDOMPosition newPosition = domPosition; >- if (!hasform) { >+ if (!hasform) >+ { >+ final IDOMModel model = ((IDOMNode) domPosition.getContainerNode()) >+ .getModel(); >+ >+ final ITagDropSourceData creationProvider = >+ TagToolCreationAdapter.findProviderForContainer(containerQName); > newPosition = ValidatorSupport >- .insertContainer(domPosition, containerQName, getContainerCustomizationData()); >+ .insertContainer(domPosition, model, creationProvider, getContainerCustomizationData()); > if (newPosition == null) { > newPosition = domPosition; > } >Index: src/org/eclipse/jst/pagedesigner/itemcreation/command/UserCustomizedElementCustomizationCommand.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/command/UserCustomizedElementCustomizationCommand.java,v >retrieving revision 1.3 >diff -u -r1.3 UserCustomizedElementCustomizationCommand.java >--- src/org/eclipse/jst/pagedesigner/itemcreation/command/UserCustomizedElementCustomizationCommand.java 27 Mar 2009 19:38:35 -0000 1.3 >+++ src/org/eclipse/jst/pagedesigner/itemcreation/command/UserCustomizedElementCustomizationCommand.java 1 May 2009 01:25:41 -0000 >@@ -1,23 +1,22 @@ > package org.eclipse.jst.pagedesigner.itemcreation.command; > > import java.util.HashMap; >-import java.util.Iterator; >+import java.util.List; > import java.util.Map; > > import org.eclipse.core.resources.IFile; > import org.eclipse.core.resources.IProject; >-import org.eclipse.emf.common.util.EList; > import org.eclipse.jst.jsf.common.metadata.query.ITaglibDomainMetaDataModelContext; > import org.eclipse.jst.jsf.common.metadata.query.TaglibDomainMetaDataQueryHelper; > import org.eclipse.jst.jsf.context.resolver.structureddocument.internal.ResolverUtil; > import org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.TagCreationAttribute; >-import org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.TagCreationInfo; > import org.eclipse.jst.pagedesigner.PDPlugin; > import org.eclipse.jst.pagedesigner.dom.DOMPosition; > import org.eclipse.jst.pagedesigner.dom.IDOMPosition; >-import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry; >+import org.eclipse.jst.pagedesigner.editors.palette.ITagDropSourceData; >+import org.eclipse.jst.pagedesigner.editors.palette.MetadataTagDropSourceData; >+import org.eclipse.jst.pagedesigner.editors.palette.TagToolCreationAdapter; > import org.eclipse.jst.pagedesigner.editors.palette.impl.PaletteItemManager; >-import org.eclipse.jst.pagedesigner.editors.palette.impl.TaglibPaletteDrawer; > import org.eclipse.jst.pagedesigner.itemcreation.CreationData; > import org.eclipse.jst.pagedesigner.itemcreation.customizer.ICustomizationData; > import org.eclipse.jst.pagedesigner.utils.JSPUtil; >@@ -70,14 +69,14 @@ > if (_creationData.getDropCustomizationData() != null) > { > final ICustomizationData data = (ICustomizationData) _creationData.getDropCustomizationData().getAdapter(ICustomizationData.class); >- >+ > if (data.getChildrenData() != null) > { >- int childCount = 0; >+ int childCount = 0; > CHILDREN_LOOP: for (ICustomizationData child : data.getChildrenData().getChildList()) > { > assert (_element.getOwnerDocument() != null); >- >+ > // Setup child node > Element childNode = _element.getOwnerDocument().createElement(child.getTagIdentifier().getTagName()); > String prefix = JSPUtil.getOrCreatePrefix(_model, child.getTagIdentifier().getUri(), null); >@@ -90,47 +89,36 @@ > String attrValue = attrMap.get(attrName); > childNode.setAttribute(attrName, attrValue); > } >- >+ > // Attach child node to element > _element.appendChild(childNode); >- >+ > // Set up other attributes and child tags for this child > IFile fileForDocument = ResolverUtil.getFileForDocument(_model.getStructuredDocument()); > if (fileForDocument == null) > { >- PDPlugin.log("File not found for model: "+_model.toString(), new Exception("Stack trace only")); //$NON-NLS-1$//$NON-NLS-2$ >- continue CHILDREN_LOOP; >+ PDPlugin.log("File not found for model: "+_model.toString(), new Exception("Stack trace only")); //$NON-NLS-1$//$NON-NLS-2$ >+ continue CHILDREN_LOOP; > } > final IProject project = fileForDocument.getProject(); >- PaletteItemManager paletteManager = PaletteItemManager.getInstance(project); >- >- if (paletteManager == null) >- { >- PDPlugin.log("paletteManager not found for project: "+project.toString(), new Exception("Stack trace only")); //$NON-NLS-1$ //$NON-NLS-2$ >- continue CHILDREN_LOOP; >- } >- >- TaglibPaletteDrawer drawer = paletteManager.findCategoryByURI(child.getTagIdentifier().getUri()); >- >- if (drawer == null) >- { >- PDPlugin.log("Drawer not found for uri: "+child.getTagIdentifier().getUri(), new Exception("Stack trace only")); //$NON-NLS-1$ //$NON-NLS-2$ >- continue CHILDREN_LOOP; >- } >+ PaletteItemManager itemManager = PaletteItemManager.getInstance(project); > >- TagToolPaletteEntry paletteEntry = drawer.getTagPaletteEntryByTagName(child.getTagIdentifier().getTagName()); >- >- if (paletteEntry == null) >+ if (itemManager == null) > { >- PDPlugin.log("Palette entry not found for drawer: "+drawer.toString(), new Exception("Stack trace only")); //$NON-NLS-1$ //$NON-NLS-2$ >- continue CHILDREN_LOOP; >+ PDPlugin.log("paletteManager not found for project: "+project.toString(), new Exception("Stack trace only")); //$NON-NLS-1$ //$NON-NLS-2$ >+ continue CHILDREN_LOOP; > } >+ >+ final String uri = child.getTagIdentifier().getUri(); >+ final String tagName = child.getTagIdentifier().getTagName(); >+ final ITagDropSourceData creationProvider = >+ TagToolCreationAdapter.findProviderForContainer(uri, tagName, itemManager); > final ITaglibDomainMetaDataModelContext modelContext = > TaglibDomainMetaDataQueryHelper > .createMetaDataModelContext(project, child.getTagIdentifier().getUri()); > IDOMPosition domPosition = new DOMPosition(_element, childCount++); >- CreationData creationData = new CreationData(paletteEntry,_model, domPosition, modelContext, child); >- >+ CreationData creationData = new CreationData(creationProvider,_model, domPosition, modelContext, child); >+ > ElementCustomizationCommand command = new UserCustomizedElementCustomizationCommand(_model, childNode, creationData); > command.execute(); > } >@@ -184,16 +172,17 @@ > > private void addAttributesFromPaletteMetadata(Map<String, String> attributes) > { >- final TagCreationInfo info = _creationData.getTagCreationInfo(); >+ final ITagDropSourceData info = _creationData.getTagCreationProvider(); > if (info != null) > { >- final EList list = info.getAttributes(); >+ final MetadataTagDropSourceData provider = >+ TagToolCreationAdapter.createMdTagCreationProvider(info, _model); >+ >+ final List<TagCreationAttribute> list = provider.getAttributes(); > if (list != null) > { >- for (final Iterator it = list.iterator(); it.hasNext();) >+ for (final TagCreationAttribute attr : list) > { >- final TagCreationAttribute attr = (TagCreationAttribute) it >- .next(); > attributes.put(attr.getId(), (attr.getValue() == null ? "" //$NON-NLS-1$ > : attr.getValue())); > } >Index: src/org/eclipse/jst/pagedesigner/editors/palette/TagToolPaletteEntry.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/TagToolPaletteEntry.java,v >retrieving revision 1.5 >diff -u -r1.5 TagToolPaletteEntry.java >--- src/org/eclipse/jst/pagedesigner/editors/palette/TagToolPaletteEntry.java 11 Feb 2009 19:02:45 -0000 1.5 >+++ src/org/eclipse/jst/pagedesigner/editors/palette/TagToolPaletteEntry.java 1 May 2009 01:25:40 -0000 >@@ -11,63 +11,100 @@ > package org.eclipse.jst.pagedesigner.editors.palette; > > import org.eclipse.gef.Tool; >-import org.eclipse.gef.palette.ToolEntry; >+import org.eclipse.gef.palette.CombinedTemplateCreationEntry; >+import org.eclipse.gef.requests.CreationFactory; > import org.eclipse.jface.resource.ImageDescriptor; >-import org.eclipse.jst.pagedesigner.editors.palette.impl.TaglibPaletteDrawer; > import org.eclipse.jst.pagedesigner.itemcreation.ItemCreationTool; > > /** > * Represents a tag palette item entry in the web page designer palette >- * >+ * > */ >-public class TagToolPaletteEntry extends ToolEntry { >- >- private String tagName; >- >- /** >- * Constructor >- * @param tagName >- * @param label >- * @param shortDescription >- * @param iconSmall >- * @param iconLarge >- */ >- public TagToolPaletteEntry(String tagName, String label, String shortDescription, >- ImageDescriptor iconSmall, ImageDescriptor iconLarge) { >- super(label, shortDescription, iconSmall, iconLarge); >- this.tagName = tagName; >- } >- >- /** >- * @return tagName >- */ >- public String getTagName(){ >- return tagName; >- } >- >- /** >- * Convenience method returning the tag libraries default prefix, if applicable >- * @return default prefix >- */ >- public String getDefaultPrefix(){ >- if (getParent() instanceof TaglibPaletteDrawer) >- return ((TaglibPaletteDrawer)getParent()).getDefaultPrefix(); >- return ""; //$NON-NLS-1$ >- } >- >- /** >- * @return uri of the tag's library >- */ >- public String getURI(){ >- return ((TaglibPaletteDrawer)getParent()).getURI(); >- } >- >- /* (non-Javadoc) >- * @see org.eclipse.gef.palette.ToolEntry#createTool() >- */ >- public Tool createTool() { >- return new ItemCreationTool(this); >- } >- >- >+public class TagToolPaletteEntry extends CombinedTemplateCreationEntry >+ implements IDropSourceDataProvider >+{ >+ >+ /** >+ * Constructor >+ * >+ * @param template >+ * the template item for the drop >+ * @param label >+ * @param shortDescription >+ * @param iconSmall >+ * @param iconLarge >+ */ >+ public TagToolPaletteEntry(final ITagDropSourceData template, >+ final String label, final String shortDescription, >+ final ImageDescriptor iconSmall, final ImageDescriptor iconLarge) >+ { >+ super(label, shortDescription, template, NOOP_FACTORY, iconSmall, >+ iconLarge); >+ } >+ >+ /** >+ * @return tagName >+ */ >+ public String getTagName() >+ { >+ return getTemplate().getTagName(); >+ } >+ >+ /** >+ * Convenience method returning the tag libraries default prefix, if >+ * applicable >+ * >+ * @return default prefix >+ */ >+ public String getDefaultPrefix() >+ { >+ return getTemplate().getDefaultPrefix(); >+ } >+ >+ /** >+ * @return uri of the tag's library >+ */ >+ public String getURI() >+ { >+ return getTemplate().getURI(); >+ } >+ >+ /* >+ * (non-Javadoc) >+ * >+ * @see org.eclipse.gef.palette.ToolEntry#createTool() >+ */ >+ @Override >+ public Tool createTool() >+ { >+ return new ItemCreationTool(getTemplate()); >+ } >+ >+ private final static CreationFactory NOOP_FACTORY = new CreationFactory() >+ { >+ public Object getNewObject() >+ { >+ // should never get called >+ throw new UnsupportedOperationException( >+ "createTool should be overriden, so this should never be called"); //$NON-NLS-1$ >+ } >+ >+ public Object getObjectType() >+ { >+ // should never get called >+ throw new UnsupportedOperationException( >+ "createTool should be overriden, so this should never be called"); //$NON-NLS-1$ >+ } >+ }; >+ >+ @Override >+ public ITagDropSourceData getTemplate() >+ { >+ return (ITagDropSourceData) super.getTemplate(); >+ } >+ >+ public IDropSourceData getDropSourceData() >+ { >+ return getTemplate(); >+ } > } >Index: src/org/eclipse/jst/pagedesigner/editors/palette/DesignerPaletteViewerProvider.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/DesignerPaletteViewerProvider.java,v >retrieving revision 1.4 >diff -u -r1.4 DesignerPaletteViewerProvider.java >--- src/org/eclipse/jst/pagedesigner/editors/palette/DesignerPaletteViewerProvider.java 18 Nov 2008 22:22:41 -0000 1.4 >+++ src/org/eclipse/jst/pagedesigner/editors/palette/DesignerPaletteViewerProvider.java 1 May 2009 01:25:40 -0000 >@@ -12,6 +12,7 @@ > package org.eclipse.jst.pagedesigner.editors.palette; > > import org.eclipse.gef.EditDomain; >+import org.eclipse.gef.dnd.TemplateTransferDragSourceListener; > import org.eclipse.gef.internal.ui.palette.editparts.DrawerEditPart; > import org.eclipse.gef.ui.palette.PaletteContextMenuProvider; > import org.eclipse.gef.ui.palette.PaletteViewer; >@@ -20,7 +21,6 @@ > import org.eclipse.jface.action.IMenuManager; > import org.eclipse.jface.viewers.StructuredSelection; > import org.eclipse.jst.pagedesigner.PDPlugin; >-import org.eclipse.jst.pagedesigner.dnd.internal.DesignerTemplateTransferDragSourceListener; > import org.eclipse.jst.pagedesigner.editors.palette.impl.TaglibPaletteDrawer; > import org.eclipse.swt.widgets.Composite; > import org.eclipse.ui.PlatformUI; >@@ -56,7 +56,7 @@ > > // XXX: should only use the following when we use Template > viewer >- .addDragSourceListener(new DesignerTemplateTransferDragSourceListener( >+ .addDragSourceListener(new TemplateTransferDragSourceListener( > viewer)); > } > >Index: src/org/eclipse/jst/pagedesigner/itemcreation/internal/TagCreationFactory.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/internal/TagCreationFactory.java,v >retrieving revision 1.4 >diff -u -r1.4 TagCreationFactory.java >--- src/org/eclipse/jst/pagedesigner/itemcreation/internal/TagCreationFactory.java 18 Nov 2008 22:22:40 -0000 1.4 >+++ src/org/eclipse/jst/pagedesigner/itemcreation/internal/TagCreationFactory.java 1 May 2009 01:25:41 -0000 >@@ -19,9 +19,7 @@ > > /** > * Creates instances of >- * {@link org.eclipse.jst.pagedesigner.itemcreation.ITagCreator}s for a the >- * given >- * {@link org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry} >+ * {@link org.eclipse.jst.pagedesigner.itemcreation.ITagCreator}s > * (Eventually) Will use TagCreavtorFactories registered using > * org.eclipse.jst.jsf.pagedesigner.tagcreationfactories ext-pt. Currently only > * using DefaultTagCreator. >Index: src/org/eclipse/jst/pagedesigner/itemcreation/customizer/DropCustomizationController.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/customizer/DropCustomizationController.java,v >retrieving revision 1.2 >diff -u -r1.2 DropCustomizationController.java >--- src/org/eclipse/jst/pagedesigner/itemcreation/customizer/DropCustomizationController.java 18 Nov 2008 22:23:09 -0000 1.2 >+++ src/org/eclipse/jst/pagedesigner/itemcreation/customizer/DropCustomizationController.java 1 May 2009 01:25:41 -0000 >@@ -9,6 +9,7 @@ > import org.eclipse.jst.pagedesigner.PDPlugin; > import org.eclipse.jst.pagedesigner.commands.ICustomizableCommand; > import org.eclipse.jst.pagedesigner.dom.IDOMPosition; >+import org.eclipse.jst.pagedesigner.editors.palette.IDropSourceData; > import org.eclipse.jst.pagedesigner.elementedit.ElementEditFactoryRegistry; > import org.eclipse.jst.pagedesigner.elementedit.IElementEdit; > import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; >@@ -23,24 +24,21 @@ > public final class DropCustomizationController > { > private final ICustomizableCommand _command; >- private final String _uri; >- private final String _name; >+ private final IDropSourceData _dropSourceData; > private final IDOMDocument _domDocument; > private final IDOMPosition _domPosition; > > /** > * @param command >- * @param uri >- * @param name >+ * @param dropSourceData > * @param domDocument > * @param domPosition > */ > public DropCustomizationController(final ICustomizableCommand command, >- final String uri, final String name, final IDOMDocument domDocument, final IDOMPosition domPosition) >+ final IDropSourceData dropSourceData, final IDOMDocument domDocument, final IDOMPosition domPosition) > { > _command = command; >- _uri = uri; >- _name = name; >+ _dropSourceData = dropSourceData; > _domDocument = domDocument; > _domPosition = domPosition; > } >@@ -51,14 +49,14 @@ > public IStatus performCustomization() > { > final TagIdentifier tagId = TagIdentifierFactory.createJSPTagWrapper( >- _uri, _name); >+ _dropSourceData.getURI(), _dropSourceData.getTagName()); > final IElementEdit elementEdit = ElementEditFactoryRegistry.getInstance() > .createElementEdit(tagId); > > IStatus status = Status.OK_STATUS; > if (elementEdit != null) > { >- final IDropCustomizer customizer = elementEdit.getDropCustomizer(tagId); >+ final IDropCustomizer customizer = elementEdit.getDropCustomizer(_dropSourceData); > > if (customizer != null) > { >Index: src/org/eclipse/jst/pagedesigner/dom/ValidatorSupport.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/dom/ValidatorSupport.java,v >retrieving revision 1.5 >diff -u -r1.5 ValidatorSupport.java >--- src/org/eclipse/jst/pagedesigner/dom/ValidatorSupport.java 4 Sep 2007 18:13:58 -0000 1.5 >+++ src/org/eclipse/jst/pagedesigner/dom/ValidatorSupport.java 1 May 2009 01:25:40 -0000 >@@ -17,12 +17,9 @@ > import org.eclipse.jst.jsf.core.internal.tld.CMUtil; > import org.eclipse.jst.pagedesigner.adapters.IBodyInfo; > import org.eclipse.jst.pagedesigner.adapters.internal.BodyInfo; >-import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry; >-import org.eclipse.jst.pagedesigner.editors.palette.impl.PaletteItemManager; >-import org.eclipse.jst.pagedesigner.editors.palette.impl.TaglibPaletteDrawer; >+import org.eclipse.jst.pagedesigner.editors.palette.ITagDropSourceData; > import org.eclipse.jst.pagedesigner.utils.CommandUtil; > import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; >-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; > import org.w3c.dom.Element; > import org.w3c.dom.Node; > import org.w3c.dom.Text; >@@ -89,32 +86,27 @@ > return false; > } > >- /** >- * @param position >- * @param container >- * @param customizationData >- * @return the new dom position for the inserted container or null if could >- * not insert >- */ >- public static IDOMPosition insertContainer(IDOMPosition position, >- QName container, IAdaptable customizationData) { >- final TaglibPaletteDrawer category = >- PaletteItemManager.getCurrentInstance().findCategoryByURI >- (container.getNamespaceURI()); >- if (category != null){ >- final TagToolPaletteEntry tagItem = >- category.getTagPaletteEntryByTagName(container.getLocalPart()); >- final IDOMModel model = >- ((IDOMNode) position.getContainerNode()).getModel(); >- final Element form = CommandUtil.excuteInsertion >- (tagItem, model, position, customizationData); >- if (form != null) { >- DOMPosition pos = new DOMPosition(form, 0); >- return pos; >- } >- } >+ /** >+ * @param position >+ * @param model >+ * @param creationProvider >+ * @param customizationData >+ * @return the new dom position for the inserted container or null if could >+ * not insert >+ */ >+ public static IDOMPosition insertContainer(final IDOMPosition position, >+ final IDOMModel model, >+ final ITagDropSourceData creationProvider, final IAdaptable customizationData) >+ { >+ final Element newContainer = CommandUtil.executeInsertion( >+ creationProvider, model, position, customizationData); >+ if (newContainer != null) >+ { >+ DOMPosition pos = new DOMPosition(newContainer, 0); >+ return pos; >+ } > return null; >- } >+ } > > /** > * @return the body info >Index: src/org/eclipse/jst/pagedesigner/elementedit/IElementEdit.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/IElementEdit.java,v >retrieving revision 1.6 >diff -u -r1.6 IElementEdit.java >--- src/org/eclipse/jst/pagedesigner/elementedit/IElementEdit.java 4 Nov 2008 01:15:43 -0000 1.6 >+++ src/org/eclipse/jst/pagedesigner/elementedit/IElementEdit.java 1 May 2009 01:25:40 -0000 >@@ -15,6 +15,7 @@ > import org.eclipse.jface.action.IMenuManager; > import org.eclipse.jface.viewers.ISelection; > import org.eclipse.jst.jsf.common.dom.TagIdentifier; >+import org.eclipse.jst.pagedesigner.editors.palette.IDropSourceData; > import org.eclipse.jst.pagedesigner.itemcreation.ITagCreator; > import org.eclipse.jst.pagedesigner.itemcreation.customizer.IDropCustomizer; > import org.eclipse.jst.pagedesigner.parts.ElementEditPart; >@@ -112,10 +113,17 @@ > * Returning null and returning a IDropCustomizer whose runCustomizer always returns > * OK and getDropCustomizationData always returns null will be considered > * equivalent by the framework. >+ * @deprecated use getDropCustomizer(IDropSourceData) instead > */ > public IDropCustomizer getDropCustomizer(TagIdentifier tagId); > > /** >+ * @param dropSourceData >+ * @return the drop customizer for the drop source data or null if none. >+ */ >+ public IDropCustomizer getDropCustomizer(final IDropSourceData dropSourceData); >+ >+ /** > * @param tagId > * @return a tag creator for the indicated tag or null to indicate that the > * system should use it's default tag creator >Index: src/org/eclipse/jst/pagedesigner/elementedit/AbstractElementEdit.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/elementedit/AbstractElementEdit.java,v >retrieving revision 1.8 >diff -u -r1.8 AbstractElementEdit.java >--- src/org/eclipse/jst/pagedesigner/elementedit/AbstractElementEdit.java 18 Nov 2008 22:22:46 -0000 1.8 >+++ src/org/eclipse/jst/pagedesigner/elementedit/AbstractElementEdit.java 1 May 2009 01:25:40 -0000 >@@ -16,6 +16,9 @@ > import org.eclipse.jface.viewers.ISelection; > import org.eclipse.jst.jsf.common.dom.TagIdentifier; > import org.eclipse.jst.jsf.core.internal.tld.CMUtil; >+import org.eclipse.jst.jsf.core.internal.tld.TagIdentifierFactory; >+import org.eclipse.jst.pagedesigner.editors.palette.IDropSourceData; >+import org.eclipse.jst.pagedesigner.editors.palette.ITagDropSourceData; > import org.eclipse.jst.pagedesigner.itemcreation.ITagCreator; > import org.eclipse.jst.pagedesigner.itemcreation.customizer.AbstractDropCustomizer; > import org.eclipse.jst.pagedesigner.itemcreation.customizer.IDropCustomizer; >@@ -105,11 +108,27 @@ > private final static IDropCustomizer DEFAULT_DROP_CUSTOMIZER = > new AbstractDropCustomizer(){/* do nothing; use defaults */}; > >+ /** (non-Javadoc) >+ * @see org.eclipse.jst.pagedesigner.elementedit.IElementEdit#getDropCustomizer(org.eclipse.jst.jsf.common.dom.TagIdentifier) >+ * @deprecated use getDropCustomizer(IDropSourceData) instead. >+ */ > public IDropCustomizer getDropCustomizer(TagIdentifier tagId) > { > return DEFAULT_DROP_CUSTOMIZER; > } > >+ public IDropCustomizer getDropCustomizer(IDropSourceData dropSourceData) >+ { >+ if (dropSourceData instanceof ITagDropSourceData) >+ { >+ final String uri = ((ITagDropSourceData)dropSourceData).getURI(); >+ final String tagName = ((ITagDropSourceData)dropSourceData).getTagName(); >+ final TagIdentifier tagId = TagIdentifierFactory.createJSPTagWrapper(uri, tagName); >+ return getDropCustomizer(tagId); >+ } >+ return DEFAULT_DROP_CUSTOMIZER; >+ } >+ > /* (non-Javadoc) > * @see org.eclipse.jst.pagedesigner.elementedit.IElementEdit#getTagCreator(org.eclipse.jst.jsf.common.dom.TagIdentifier) > */ >Index: src/org/eclipse/jst/pagedesigner/commands/PaletteDropInsertCommand.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/commands/PaletteDropInsertCommand.java,v >retrieving revision 1.10 >diff -u -r1.10 PaletteDropInsertCommand.java >--- src/org/eclipse/jst/pagedesigner/commands/PaletteDropInsertCommand.java 18 Nov 2008 22:22:39 -0000 1.10 >+++ src/org/eclipse/jst/pagedesigner/commands/PaletteDropInsertCommand.java 1 May 2009 01:25:40 -0000 >@@ -19,7 +19,7 @@ > import org.eclipse.jst.pagedesigner.dom.DOMPosition; > import org.eclipse.jst.pagedesigner.dom.EditModelQuery; > import org.eclipse.jst.pagedesigner.dom.IDOMPosition; >-import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry; >+import org.eclipse.jst.pagedesigner.editors.palette.IDropSourceData; > import org.eclipse.jst.pagedesigner.itemcreation.customizer.DropCustomizationController; > import org.eclipse.jst.pagedesigner.utils.CommandUtil; > import org.eclipse.wst.sse.ui.StructuredTextEditor; >@@ -38,7 +38,7 @@ > private final Logger _log = PDPlugin > .getLogger(PaletteDropInsertCommand.class); > >- private TagToolPaletteEntry _tagItem; >+ private IDropSourceData _creationProvider; > > private int _location; > >@@ -49,13 +49,13 @@ > /** > * @param label > * @param editor >- * @param tagItem >+ * @param creationProvider > * @param location > */ > public PaletteDropInsertCommand(String label, StructuredTextEditor editor, >- TagToolPaletteEntry tagItem, int location) { >+ IDropSourceData creationProvider, int location) { > super(label, editor); >- _tagItem = tagItem; >+ _creationProvider = creationProvider; > _location = location; > } > >@@ -84,20 +84,24 @@ > } > } > >- //essentially copied from ItemCreationTool so that DesignView drop and SourceViewDrop are same. >- // Note that SourceView does NO drop validation checking. This is handled by ItemCreationPolicy in DesignView >- final IStatus status = >- performCustomization(getModel().getDocument(), position); >- >- if (status.getSeverity() == IStatus.OK) { >- Element element = CommandUtil.excuteInsertion(this._tagItem, >- getModel(), position, getCustomizationData()); >- if (element != null) { >- formatNode(element); >- } >- this._element = element; >- } >- } >+ // essentially copied from ItemCreationTool so that DesignView drop and >+ // SourceViewDrop are same. >+ // Note that SourceView does NO drop validation checking. This is >+ // handled by ItemCreationPolicy in DesignView >+ final IStatus status = performCustomization(getModel().getDocument(), >+ position); >+ >+ if (status.isOK()) >+ { >+ final Element element = CommandUtil.executeInsertion( >+ _creationProvider, getModel() >+ , position, getCustomizationData()); >+ if (element != null) { >+ formatNode(element); >+ } >+ this._element = element; >+ } >+ } > > /** > * @param domDoc >@@ -105,9 +109,7 @@ > * @return status > */ > protected IStatus performCustomization(final IDOMDocument domDoc, final IDOMPosition position) { >- final String uri = _tagItem.getURI(); >- final String name = _tagItem.getTagName(); >- return new DropCustomizationController(this, uri, name, domDoc, position).performCustomization(); >+ return new DropCustomizationController(this, _creationProvider, domDoc, position).performCustomization(); > } > > /** >Index: src/org/eclipse/jst/pagedesigner/commands/CreateItemCommand.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/commands/CreateItemCommand.java,v >retrieving revision 1.6 >diff -u -r1.6 CreateItemCommand.java >--- src/org/eclipse/jst/pagedesigner/commands/CreateItemCommand.java 4 Nov 2008 01:15:42 -0000 1.6 >+++ src/org/eclipse/jst/pagedesigner/commands/CreateItemCommand.java 1 May 2009 01:25:40 -0000 >@@ -14,7 +14,7 @@ > import org.eclipse.core.runtime.IAdaptable; > import org.eclipse.jface.viewers.ISelection; > import org.eclipse.jst.pagedesigner.dom.IDOMPosition; >-import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry; >+import org.eclipse.jst.pagedesigner.editors.palette.IDropSourceData; > import org.eclipse.jst.pagedesigner.utils.CommandUtil; > import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; > import org.w3c.dom.Element; >@@ -24,56 +24,57 @@ > */ > public class CreateItemCommand extends DesignerCommand implements ICustomizableCommand > { >- private final IDOMPosition _position; >+ private final IDOMPosition _position; >+ private final IDropSourceData _creationProvider; >+ private Element _ele; >+ private IAdaptable _customizationData; > >- private final TagToolPaletteEntry _tagItem; >- private Element _ele; >- private IAdaptable _customizationData; >- >- /** >- * @param label >- * @param model >- * @param position >- * @param tagItem >- */ >- public CreateItemCommand(String label, IDOMModel model, >- IDOMPosition position, TagToolPaletteEntry tagItem) { >- super(label, model.getDocument()); >- this._position = position; >- this._tagItem = tagItem; >- } >- >- >- /** >- * @return the dom position for the drop >- */ >- public IDOMPosition getPosition() >+ /** >+ * @param label >+ * @param model >+ * @param position >+ * @param creationProvider >+ */ >+ public CreateItemCommand(String label, IDOMModel model, >+ IDOMPosition position, IDropSourceData creationProvider) { >+ super(label, model.getDocument()); >+ this._position = position; >+ this._creationProvider = creationProvider; >+ } >+ >+ /** >+ * @return the dom position for the drop >+ */ >+ public IDOMPosition getPosition() > { > return _position; > } > > > /* >- * (non-Javadoc) >- * >- * @see org.eclipse.jst.pagedesigner.commands.DesignerCommand#doExecute() >- */ >- protected void doExecute() { >- Element element = CommandUtil.excuteInsertion(this._tagItem, >- getModel(), this._position, this._customizationData); >- if (element != null) { >- formatNode(element); >- } >- this._ele = element; >- } >+ * (non-Javadoc) >+ * >+ * @see org.eclipse.jst.pagedesigner.commands.DesignerCommand#doExecute() >+ */ >+ protected void doExecute() >+ { >+ Element element = CommandUtil.executeInsertion( >+ _creationProvider, >+ getModel(), this._position, this._customizationData); >+ if (element != null) >+ { >+ formatNode(element); >+ } >+ this._ele = element; >+ } > >- @Override >+ @Override > protected void postPostExecute() >- { >+ { > // during JUnit testing, we may not have viewer. > // this will cause us not to have undo support, > // but should not effect testing for this command >- if (getViewer() != null) >+ if (getViewer() != null) > { > super.postPostExecute(); > } >@@ -94,13 +95,14 @@ > } > > /* >- * (non-Javadoc) >- * >- * @see org.eclipse.jst.pagedesigner.commands.DesignerCommand#getAfterCommandDesignerSelection() >- */ >- protected ISelection getAfterCommandDesignerSelection() { >- return toDesignSelection(_ele); >- } >+ * (non-Javadoc) >+ * >+ * @seeorg.eclipse.jst.pagedesigner.commands.DesignerCommand# >+ * getAfterCommandDesignerSelection() >+ */ >+ protected ISelection getAfterCommandDesignerSelection() { >+ return toDesignSelection(_ele); >+ } > > /** > * @param customizationData >Index: src/org/eclipse/jst/pagedesigner/editors/palette/impl/PaletteElementTemplateHelper.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/impl/PaletteElementTemplateHelper.java,v >retrieving revision 1.10 >diff -u -r1.10 PaletteElementTemplateHelper.java >--- src/org/eclipse/jst/pagedesigner/editors/palette/impl/PaletteElementTemplateHelper.java 18 Nov 2008 22:22:51 -0000 1.10 >+++ src/org/eclipse/jst/pagedesigner/editors/palette/impl/PaletteElementTemplateHelper.java 1 May 2009 01:25:40 -0000 >@@ -21,9 +21,8 @@ > import javax.xml.parsers.ParserConfigurationException; > > import org.eclipse.jst.jsf.common.ui.internal.logging.Logger; >-import org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.TagCreationInfo; > import org.eclipse.jst.pagedesigner.PDPlugin; >-import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry; >+import org.eclipse.jst.pagedesigner.editors.palette.MetadataTagDropSourceData; > import org.eclipse.jst.pagedesigner.utils.JSPUtil; > import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; > import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText; >@@ -54,16 +53,15 @@ > * > * @param model > * @param element >- * @param tagItem >- * @param tagCreationInfo >+ * @param creationProvider > */ > public static void applyTemplate(IDOMModel model, Element element, >- TagToolPaletteEntry tagItem, TagCreationInfo tagCreationInfo) { >+ MetadataTagDropSourceData creationProvider) { > if (element == null || element.getLocalName() == null) { > return; > } > >- Node[] templateNodes = getTemplateNodes(model, tagCreationInfo); >+ Node[] templateNodes = getTemplateNodes(model, creationProvider); > if (templateNodes != null) { > for (int i=0;i<templateNodes.length;i++){ > Node anode = templateNodes[i]; >@@ -73,12 +71,12 @@ > } > > private static Node[] getTemplateNodes(IDOMModel model, >- TagCreationInfo tagCreationInfo) { >+ MetadataTagDropSourceData creationProvider) { > >- if (tagCreationInfo == null) >+ if (creationProvider == null) > return null; > >- String template = (String)tagCreationInfo.getTemplate(); >+ String template = creationProvider.getTemplate(); > if (template != null){ > > final String nodeStr = prepareNode(template);//(String)template.getTemplate(); >@@ -91,7 +89,7 @@ > Document doc = builder.parse(new ByteArrayInputStream( nodeStr.getBytes())); > Node beginNode = doc.getFirstChild(); > Node templateNode = beginNode.cloneNode(true);//model.getDocument().importNode(beginNode, true); >- Node[] templateNodes = applyPrefixes(model, tagCreationInfo, templateNode.getChildNodes(), model.getDocument()); >+ Node[] templateNodes = applyPrefixes(model, templateNode.getChildNodes(), model.getDocument()); > return templateNodes; > } catch (ParserConfigurationException e) { > logger.error(e); >@@ -121,13 +119,12 @@ > * Use the actrual prefixs of jsf html and jsf core to set the prefix of > * each node declared in template. > * @param model >- * @param info > * @param templateNodes > * @param document > * @return Node[] > * > */ >- public static Node[] applyPrefixes(IDOMModel model, TagCreationInfo info, >+ public static Node[] applyPrefixes(IDOMModel model, > NodeList templateNodes, Document document) { > List result = new ArrayList(); > for (int i = 0, n = templateNodes.getLength(); i < n; i++) { >Index: src/org/eclipse/jst/pagedesigner/editors/palette/impl/PaletteHelper.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/impl/PaletteHelper.java,v >retrieving revision 1.15 >diff -u -r1.15 PaletteHelper.java >--- src/org/eclipse/jst/pagedesigner/editors/palette/impl/PaletteHelper.java 18 Nov 2008 22:22:51 -0000 1.15 >+++ src/org/eclipse/jst/pagedesigner/editors/palette/impl/PaletteHelper.java 1 May 2009 01:25:40 -0000 >@@ -38,6 +38,8 @@ > import org.eclipse.jst.pagedesigner.IHTMLConstants; > import org.eclipse.jst.pagedesigner.PDPlugin; > import org.eclipse.jst.pagedesigner.editors.palette.IPaletteItemManager; >+import org.eclipse.jst.pagedesigner.editors.palette.ITagDropSourceData; >+import org.eclipse.jst.pagedesigner.editors.palette.TagToolCreationAdapter; > import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry; > import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDocument; > import org.eclipse.wst.html.core.internal.contentmodel.JSPCMDocument; >@@ -304,7 +306,8 @@ > } > > private static TagToolPaletteEntry internalCreateTagEntry(TaglibPaletteDrawer category, String id, String tagName, String label, String desc, ImageDescriptor smallIcon, ImageDescriptor largeIcon, boolean expert){ >- TagToolPaletteEntry item = new TagToolPaletteEntry(tagName, label, desc, smallIcon, largeIcon); >+ final ITagDropSourceData data = new TagToolCreationAdapter(category.getURI(), tagName, category.getDefaultPrefix(), id); >+ final TagToolPaletteEntry item = new TagToolPaletteEntry(data, label, desc, smallIcon, largeIcon); > item.setId(id); > > item.setVisible(!expert); >Index: src/org/eclipse/jst/pagedesigner/editpolicies/DropEditPolicy.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editpolicies/DropEditPolicy.java,v >retrieving revision 1.6 >diff -u -r1.6 DropEditPolicy.java >--- src/org/eclipse/jst/pagedesigner/editpolicies/DropEditPolicy.java 22 Oct 2007 06:26:45 -0000 1.6 >+++ src/org/eclipse/jst/pagedesigner/editpolicies/DropEditPolicy.java 1 May 2009 01:25:40 -0000 >@@ -22,7 +22,7 @@ > import org.eclipse.gef.requests.GroupRequest; > import org.eclipse.jst.jsf.common.dom.TagIdentifier; > import org.eclipse.jst.jsf.core.internal.tld.TagIdentifierFactory; >-import org.eclipse.jst.pagedesigner.editors.palette.TagToolPaletteEntry; >+import org.eclipse.jst.pagedesigner.editors.palette.IDropSourceData; > import org.eclipse.jst.pagedesigner.elementedit.ElementEditFactoryRegistry; > import org.eclipse.jst.pagedesigner.elementedit.IElementEdit; > import org.eclipse.jst.pagedesigner.itemcreation.ItemCreationRequest; >@@ -116,10 +116,12 @@ > } > else if (request instanceof ItemCreationRequest) > { >- TagToolPaletteEntry desc = ((ItemCreationRequest)request).getTagToolPaletteEntry(); >+ IDropSourceData creationProvider = >+ ((ItemCreationRequest)request).getTagCreationProvider(); > TagIdentifier tagId = > TagIdentifierFactory. >- createJSPTagWrapper(desc.getURI(), desc.getTagName()); >+ createJSPTagWrapper(creationProvider.getURI(), >+ creationProvider.getTagName()); > List tagIds = new ArrayList(); > tagIds.add(tagId); > return new DropData(tagIds); >Index: src/org/eclipse/jst/pagedesigner/editors/SimpleGraphicalEditor.java >=================================================================== >RCS file: /cvsroot/webtools/org.eclipse.jsf/components/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/SimpleGraphicalEditor.java,v >retrieving revision 1.10 >diff -u -r1.10 SimpleGraphicalEditor.java >--- src/org/eclipse/jst/pagedesigner/editors/SimpleGraphicalEditor.java 25 Mar 2009 23:50:51 -0000 1.10 >+++ src/org/eclipse/jst/pagedesigner/editors/SimpleGraphicalEditor.java 1 May 2009 01:25:40 -0000 >@@ -24,6 +24,7 @@ > import org.eclipse.gef.DefaultEditDomain; > import org.eclipse.gef.EditPart; > import org.eclipse.gef.GraphicalViewer; >+import org.eclipse.gef.dnd.TemplateTransferDragSourceListener; > import org.eclipse.gef.editparts.ScalableRootEditPart; > import org.eclipse.gef.palette.PaletteRoot; > import org.eclipse.gef.ui.actions.ActionRegistry; >@@ -51,7 +52,6 @@ > import org.eclipse.jst.pagedesigner.commands.CutAction; > import org.eclipse.jst.pagedesigner.commands.DeleteAction; > import org.eclipse.jst.pagedesigner.commands.PasteAction; >-import org.eclipse.jst.pagedesigner.dnd.internal.DesignerTemplateTransferDragSourceListener; > import org.eclipse.jst.pagedesigner.dnd.internal.LocalSelectionDropTargetListener; > import org.eclipse.jst.pagedesigner.dnd.internal.PDTemplateTransferDropTargetListener; > import org.eclipse.jst.pagedesigner.dnd.internal.ResouceDropTargetListener; >@@ -149,6 +149,9 @@ > > private PaletteViewerProvider _paletteViewerProvider; > >+ /** >+ * TODO: why isn't this private? >+ */ > protected IPaletteFactory _paletteViewerPageFactory; > > /** >@@ -509,7 +512,7 @@ > // from the palette into the editor > // @see ShapesEditor#createTransferDropTargetListener() > viewer >- .addDragSourceListener(new DesignerTemplateTransferDragSourceListener( >+ .addDragSourceListener(new TemplateTransferDragSourceListener( > viewer)); > } > }; >@@ -518,6 +521,9 @@ > return _paletteViewerProvider; > } > >+ /** >+ * @return the palette viewer page >+ */ > protected PaletteViewerPage createPaletteViewerPage() { > if (_paletteViewerPageFactory != null) { > _paletteViewerPage = _paletteViewerPageFactory.createPaletteViewerPage(createPaletteViewerProvider()); >@@ -738,7 +744,7 @@ > if (project != null) { > SkinsMenuItemBuilder builder = new SkinsMenuItemBuilder(project); > builder.buildMenuManagers(menuMgr1); >- } >+ } > } > } > >@@ -805,6 +811,9 @@ > } > > >+ /** >+ * @return the palette viewer page >+ */ > public PaletteViewerPage getPaletteViewerPage() { > if (_paletteViewerPage == null) { > _paletteViewerPage = createPaletteViewerPage(); >@@ -812,6 +821,9 @@ > return _paletteViewerPage; > } > >+ /** >+ * @return the palette factory >+ */ > protected IPaletteFactory initPaletteFactory() > { > if (_paletteViewerPageFactory == null) { >Index: src/org/eclipse/jst/pagedesigner/editors/palette/MetadataTagDropSourceData.java >=================================================================== >RCS file: src/org/eclipse/jst/pagedesigner/editors/palette/MetadataTagDropSourceData.java >diff -N src/org/eclipse/jst/pagedesigner/editors/palette/MetadataTagDropSourceData.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/jst/pagedesigner/editors/palette/MetadataTagDropSourceData.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,155 @@ >+/** >+ * >+ */ >+package org.eclipse.jst.pagedesigner.editors.palette; >+ >+import java.util.List; >+ >+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.tagdisplay.internal.paletteinfos.PaletteInfo; >+import org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.PaletteInfos; >+import org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.TagCreationAttribute; >+import org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.TagCreationInfo; >+import org.eclipse.jst.pagedesigner.utils.CommandUtil; >+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; >+ >+/** >+ * A source data that is enhanced by metadata. >+ * >+ * @author cbateman >+ * >+ */ >+public final class MetadataTagDropSourceData implements ITagDropSourceData >+{ >+ private final IDOMModel _model; >+ private final TagCreationInfo _tagCreationInfo; >+ private final ITagDropSourceData _delegate; >+ >+ /** >+ * @param creationProvider >+ * @param model >+ */ >+ public MetadataTagDropSourceData( >+ final ITagDropSourceData creationProvider, >+ final IDOMModel model) >+ { >+ _delegate = creationProvider; >+ _model = model; >+ _tagCreationInfo = getTagCreationInfo(); >+ } >+ >+ /** >+ * @return the pre-defined attributes for the tag from meta-data or >+ * null if none. >+ */ >+ public List<TagCreationAttribute> getAttributes() >+ { >+ if (_tagCreationInfo != null) >+ { >+ return _tagCreationInfo.getAttributes(); >+ } >+ return null; >+ } >+ >+ /** >+ * @return the template derived from metadata for tag drop or null if none. >+ */ >+ public String getTemplate() >+ { >+ if (_tagCreationInfo != null) >+ { >+ return (String) _tagCreationInfo.getTemplate(); >+ } >+ return null; >+ } >+ >+ public String getDefaultPrefix() >+ { >+ return _delegate.getDefaultPrefix(); >+ } >+ >+ public String getTagName() >+ { >+ return _delegate.getTagName(); >+ } >+ >+ public String getURI() >+ { >+ return _delegate.getURI(); >+ } >+ >+ private TagCreationInfo getTagCreationInfo() >+ { >+ final ITaglibDomainMetaDataModelContext metadataContext = CommandUtil >+ .getMetadataContext(getURI(), _model); >+ TagCreationInfo tagCreationInfo = null; >+ String id = getId(); >+ if (metadataContext != null && id != null) >+ { >+ tagCreationInfo = createCreationInfo(metadataContext, id, >+ getTagName()); >+ } >+ return tagCreationInfo; >+ } >+ >+ public String getId() >+ { >+ return _delegate.getId(); >+ } >+ >+ /** >+ * @param metaDataContext >+ * @param id >+ * @param tagName >+ * @return a tag creation info for the tag and id in the metadata context >+ */ >+ static TagCreationInfo createCreationInfo( >+ final ITaglibDomainMetaDataModelContext metaDataContext, >+ final String id, final String tagName) >+ { >+ final Model model = TaglibDomainMetaDataQueryHelper >+ .getModel(metaDataContext); >+ if (model != null) >+ { >+ Trait trait = TaglibDomainMetaDataQueryHelper.getTrait(model, >+ PaletteInfos.TRAIT_ID); >+ if (trait != null) >+ { >+ final PaletteInfos pis = (PaletteInfos) trait.getValue(); >+ final PaletteInfo pi = pis.findPaletteInfoById(id); >+ if (pi != null) >+ { >+ return pi.getTagCreation(); >+ } >+ } >+ // tag-creation trait on entity directly? >+ final Entity tag = getTagEntity(metaDataContext, tagName); >+ if (tag != null) >+ {// metadata exists >+ trait = TaglibDomainMetaDataQueryHelper.getTrait(tag, >+ "tag-create"); //$NON-NLS-1$ >+ if (trait != null && trait.getValue() != null) >+ { >+ return (TagCreationInfo) trait.getValue(); >+ } >+ } >+ } >+ return null; >+ } >+ /** >+ * @param metaDataContext >+ * @param tagName >+ * @return the {@link Entity} for this tag element being created >+ */ >+ private static Entity getTagEntity( >+ final ITaglibDomainMetaDataModelContext metaDataContext, >+ final String tagName) >+ { >+ return TaglibDomainMetaDataQueryHelper.getEntity(metaDataContext, >+ tagName); >+ } >+} >\ No newline at end of file >Index: src/org/eclipse/jst/pagedesigner/editors/palette/TagToolCreationAdapter.java >=================================================================== >RCS file: src/org/eclipse/jst/pagedesigner/editors/palette/TagToolCreationAdapter.java >diff -N src/org/eclipse/jst/pagedesigner/editors/palette/TagToolCreationAdapter.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/jst/pagedesigner/editors/palette/TagToolCreationAdapter.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,104 @@ >+package org.eclipse.jst.pagedesigner.editors.palette; >+ >+ >+import javax.xml.namespace.QName; >+ >+import org.eclipse.jst.pagedesigner.editors.palette.impl.PaletteItemManager; >+import org.eclipse.jst.pagedesigner.editors.palette.impl.TaglibPaletteDrawer; >+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; >+ >+/** >+ * Adapt a TagToolPaletteEntry to the ITagDropSourceData >+ * >+ * @author cbateman >+ * >+ */ >+public final class TagToolCreationAdapter implements ITagDropSourceData >+{ >+ private String _uri; >+ private String _tagName; >+ private String _defaultPrefix; >+ private String _id; >+ >+ /** >+ * @param uri >+ * @param tagName >+ * @param defaultPrefix >+ * @param id >+ */ >+ public TagToolCreationAdapter(final String uri, final String tagName, final String defaultPrefix, >+ final String id) >+ { >+ _uri = uri; >+ _tagName = tagName; >+ _defaultPrefix = defaultPrefix; >+ _id = id; >+ } >+ >+ public String getDefaultPrefix() >+ { >+ return _defaultPrefix; >+ } >+ >+ public String getTagName() >+ { >+ return _tagName; >+ } >+ >+ public String getURI() >+ { >+ return _uri; >+ } >+ >+ public String getId() >+ { >+ return _id; >+ } >+ >+ /** >+ * @param provider >+ * @param model >+ * @return a metadata tag creation adapter for an existing tag >+ * creation provider (which need not itself be a TagToolCreationAdapter) >+ * and a dom model. >+ */ >+ public static MetadataTagDropSourceData createMdTagCreationProvider(final ITagDropSourceData provider, final IDOMModel model) >+ { >+ return new MetadataTagDropSourceData(provider, model); >+ } >+ >+ /** >+ * @param container >+ * @return the tag creation provider >+ */ >+ public static ITagDropSourceData findProviderForContainer( >+ final QName container) >+ { >+ return findProviderForContainer(container.getNamespaceURI(), container >+ .getLocalPart(), PaletteItemManager.getCurrentInstance()); >+ } >+ >+ /** >+ * @param uri >+ * @param tagName >+ * @param itemManager >+ * @return the tag creation provider >+ */ >+ public static ITagDropSourceData findProviderForContainer( >+ final String uri, final String tagName, >+ final PaletteItemManager itemManager) >+ { >+ final TaglibPaletteDrawer category = itemManager.findCategoryByURI(uri); >+ if (category != null) >+ { >+ final TagToolPaletteEntry tagItem = category >+ .getTagPaletteEntryByTagName(tagName); >+ if (tagItem != null) >+ { >+ return tagItem.getTemplate(); >+ } >+ } >+ return null; >+ } >+ >+} >Index: src/org/eclipse/jst/pagedesigner/editors/palette/ITagDropSourceData.java >=================================================================== >RCS file: src/org/eclipse/jst/pagedesigner/editors/palette/ITagDropSourceData.java >diff -N src/org/eclipse/jst/pagedesigner/editors/palette/ITagDropSourceData.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/jst/pagedesigner/editors/palette/ITagDropSourceData.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,19 @@ >+package org.eclipse.jst.pagedesigner.editors.palette; >+ >+ >+/** >+ * Provides generic information for tag creation from a palette drop. >+ * >+ * @author cbateman >+ * >+ */ >+public interface ITagDropSourceData extends IDropSourceData >+{ >+ /** >+ * Convenience method returning the tag libraries default prefix, if >+ * applicable >+ * >+ * @return default prefix >+ */ >+ public String getDefaultPrefix(); >+} >Index: src/org/eclipse/jst/pagedesigner/editors/palette/IDropSourceData.java >=================================================================== >RCS file: src/org/eclipse/jst/pagedesigner/editors/palette/IDropSourceData.java >diff -N src/org/eclipse/jst/pagedesigner/editors/palette/IDropSourceData.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/jst/pagedesigner/editors/palette/IDropSourceData.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,26 @@ >+package org.eclipse.jst.pagedesigner.editors.palette; >+ >+/** >+ * Data describing a palette drop. >+ * >+ * @author cbateman >+ * >+ */ >+public interface IDropSourceData >+{ >+ /** >+ * @return uri of the tag's library >+ */ >+ public String getURI(); >+ /** >+ * @return tagName >+ */ >+ public String getTagName(); >+ /** >+ * Optional value. >+ * >+ * @return a unique id for a tag creation provider that may be different >+ * from the uri. MAY BE NULL. >+ */ >+ public String getId(); >+} >Index: src/org/eclipse/jst/pagedesigner/editors/palette/IDropSourceDataProvider.java >=================================================================== >RCS file: src/org/eclipse/jst/pagedesigner/editors/palette/IDropSourceDataProvider.java >diff -N src/org/eclipse/jst/pagedesigner/editors/palette/IDropSourceDataProvider.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/jst/pagedesigner/editors/palette/IDropSourceDataProvider.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,16 @@ >+package org.eclipse.jst.pagedesigner.editors.palette; >+ >+/** >+ * Used by objects (usually palette entries) that wish provide drop source data >+ * to a client. >+ * >+ * @author cbateman >+ * >+ */ >+public interface IDropSourceDataProvider >+{ >+ /** >+ * @return a drop source data in context >+ */ >+ IDropSourceData getDropSourceData(); >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 267962
:
134034
|
134190
|
134191
|
134330
|
134332