void PUDoEnableComponentEventHandler::copyAttributesTo( PUEventHandler* eventHandler )
{
    PUEventHandler::copyAttributesTo(eventHandler);
    PUDoEnableComponentEventHandler* doEnableComponentEventHandler = static_cast<PUDoEnableComponentEventHandler*>(eventHandler);
    doEnableComponentEventHandler->setComponentType(_componentType);
    doEnableComponentEventHandler->setComponentName(_componentName);
    doEnableComponentEventHandler->setComponentEnabled(_componentEnabled);
}
//-------------------------------------------------------------------------
bool PUDoEnableComponentEventHandlerTranslator::translateChildProperty( PUScriptCompiler* compiler, PUAbstractNode *node )
{
    PUPropertyAbstractNode* prop = reinterpret_cast<PUPropertyAbstractNode*>(node);
    PUEventHandler* evt = static_cast<PUEventHandler *>(prop->parent->context);
    PUDoEnableComponentEventHandler* handler = static_cast<PUDoEnableComponentEventHandler*>(evt);

    if (prop->name == token[TOKEN_DOENABLE_COMPONENT])
    {
        // Property: enable_component
        if (passValidatePropertyNumberOfValues(compiler, prop, token[TOKEN_DOENABLE_COMPONENT], 3))
        {
            std::string componentType;
            std::string name;
            bool enabled = true;
            PUAbstractNodeList::const_iterator i = prop->values.begin();
            if(getString(**i, &componentType))
            {
                if (componentType == token[TOKEN_DOENABLE_EMITTER_COMPONENT])
                {
                    handler->setComponentType(CT_EMITTER);
                }
                else if (componentType == token[TOKEN_DOENABLE_AFFECTOR_COMPONENT])
                {
                    handler->setComponentType(CT_AFFECTOR);
                }
                else if (componentType == token[TOKEN_DOENABLE_OBSERVER_COMPONENT])
                {
                    handler->setComponentType(CT_OBSERVER);
                }
                else if (componentType == token[TOKEN_DOENABLE_TECHNIQUE_COMPONENT])
                {
                    handler->setComponentType(CT_TECHNIQUE);
                }
                ++i;
                if(getString(**i, &name))
                {
                    handler->setComponentName(name);
                    ++i;
                    if (getBoolean(**i, &enabled))
                    {
                        handler->setComponentEnabled(enabled);
                        return true;
                    }
                }
            }
        }
    }

    return false;
}