private static void serializeComponentProducer (String projectType, TypeID typeID, PaletteDescriptor paletteDescriptor) {
Document document = XMLUtil.createDocument (XMLComponentProducer.COMPONENT_PRODUCER_NODE, null, null, null);
Node rootNode = document.getFirstChild ();
setAttribute (document, rootNode, XMLComponentProducer.VERSION_ATTR, XMLComponentProducer.VERSION_VALUE_1);
setAttribute (document, rootNode, XMLComponentProducer.PRODUCERID_ATTR, typeID.toString ());
setAttribute (document, rootNode, XMLComponentProducer.MAIN_COMPONENT_TYPEID_ATTR, typeID.toString ());
setAttribute (document, rootNode, XMLComponentProducer.DISPLAY_NAME_ATTR, paletteDescriptor.getDisplayName ());
if (paletteDescriptor.getToolTip () != null)
setAttribute (document, rootNode, XMLComponentProducer.TOOLTIP_ATTR, paletteDescriptor.getToolTip ());
if (paletteDescriptor.getCategoryID () != null)
setAttribute (document, rootNode, XMLComponentProducer.PREFERRED_CATEGORYID_ATTR, paletteDescriptor.getCategoryID ());
if (paletteDescriptor.getSmallIcon () != null)
setAttribute (document, rootNode, XMLComponentDescriptor.SMALL_ICON_ATTR, paletteDescriptor.getSmallIcon ());
if (paletteDescriptor.getLargeIcon () != null)
setAttribute (document, rootNode, XMLComponentDescriptor.LARGE_ICON_ATTR, paletteDescriptor.getLargeIcon ());
GlobalDescriptorRegistry registry = GlobalDescriptorRegistry.getGlobalDescriptorRegistry (projectType);
DataFolder producersFolder = registry.getProducersFolder ();
if (! writeDocument (producersFolder.getPrimaryFile (), typeID.toString (), "xml", document))
Debug.warning ("Error while serializing a component producer", typeID.toString ());
}