blob: f0bd0ad6988304b605036c27c6f9d71b45ca0e54 [file] [log] [blame]
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
* @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;
}
}