| 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; |
| |
| /** |
| * ITagDropSourceData implementation useable by TagToolPaletteEntry for its |
| * drop transfer object. |
| * |
| * @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 getNamespace() |
| { |
| 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 |
| * @param paletteContext |
| * @return the tag creation provider |
| */ |
| public static ITagDropSourceData findProviderForContainer( |
| final QName container, final IPaletteContext paletteContext) |
| { |
| |
| return findProviderForContainer(container.getNamespaceURI(), container |
| .getLocalPart(), paletteContext); |
| } |
| |
| /** |
| * @param uri |
| * @param tagName |
| * @param paletteContext |
| * @return the tag creation provider |
| */ |
| public static ITagDropSourceData findProviderForContainer( |
| final String uri, final String tagName, |
| final IPaletteContext paletteContext) |
| { |
| final PaletteItemManager itemManager = PaletteItemManager.getInstance(paletteContext); |
| if (itemManager != null) { |
| final TaglibPaletteDrawer category = itemManager.findCategoryByURI(uri); |
| if (category != null) |
| { |
| final TagToolPaletteEntry tagItem = category |
| .getTagPaletteEntryByTagName(tagName); |
| if (tagItem != null) |
| { |
| return tagItem.getTemplate(); |
| } |
| } |
| } |
| return null; |
| } |
| |
| } |