Ejemplo n.º 1
0
	void *NclStructureConverter::createBody(
		    DOMElement *parentElement, void *objGrandParent) {

		// criar composicao a partir do elemento body do documento ncl
		// fazer uso do nome da composicao body que foi atribuido pelo
		// compilador
		NclDocument *document;
		ContextNode *context;

		document = (NclDocument*) getDocumentParser()->
			    getObject("return", "document");

		if (!parentElement->hasAttribute(XMLString::transcode("id"))) {
			parentElement->setAttribute(XMLString::transcode("id"),
				    XMLString::transcode(document->getId().c_str()));

			context = (ContextNode*)((NclComponentsConverter*)
				    getComponentsParser())->createContext(
				    	   parentElement, objGrandParent);

			parentElement->removeAttribute(XMLString::transcode("id"));

		} else {
			context = (ContextNode*)((NclComponentsConverter*)
				    getComponentsParser())->createContext(
				    	    parentElement, objGrandParent);

		}
		document->setBody(context);
		return context;
	}
Ejemplo n.º 2
0
void NclLayoutConverter::addImportBaseToRegionBase(
    void *parentObject, void *childObject) {

    map<int, RegionBase*>* bases;
    map<int, RegionBase*>::iterator i;
    string baseAlias, baseLocation;
    NclDocumentConverter *compiler;
    NclDocument *importedDocument;

    // get the external base alias and location
    baseAlias = XMLString::transcode(((DOMElement*)childObject)->
                                     getAttribute(XMLString::transcode("alias")));

    baseLocation = XMLString::transcode(((DOMElement*)childObject)->
                                        getAttribute(XMLString::transcode("documentURI")) );

    compiler = (NclDocumentConverter*)getDocumentParser();
    importedDocument = compiler->importDocument(baseLocation);
    if (importedDocument == NULL) {
        return;
    }

    bases = importedDocument->getRegionBases();
    if (bases == NULL || bases->empty()) {
        return;
    }

    // insert the imported base into the document region base
    i = bases->begin();
    while (i != bases->end()) {
        ((RegionBase*) parentObject)->addBase(
            i->second, baseAlias, baseLocation);
        ++i;
    }
}
Ejemplo n.º 3
0
	void NclStructureConverter::addDescriptorBaseToHead(
		    void *parentObject, void *childObject) {

		NclDocument *document;
		document = (NclDocument*)getDocumentParser()->
			    getObject("return", "document");

		document->setDescriptorBase((DescriptorBase*) childObject);
	}
Ejemplo n.º 4
0
	void NclStructureConverter::addMetadataToHead(
		    void* parentObject, void* childObject) {

		NclDocument* document;

		document = (NclDocument*)getDocumentParser()->
			    getObject("return", "document");

		document->addMetadata((Metadata*)childObject);
	}
Ejemplo n.º 5
0
	void NclStructureConverter::addTransitionBaseToHead(
		    void* parentObject, void* childObject) {

		NclDocument* document;

		document = (NclDocument*)(getDocumentParser()->
			    getObject("return", "document"));

		wclog << "NclStructureConverter::addTransitionBaseToHead ";
		wclog << "setTransitionBase" << endl;
		document->setTransitionBase((TransitionBase*)childObject);
	}
Ejemplo n.º 6
0
	void NclStructureConverter::solveNodeReferences(CompositeNode *composition) {
		vector<Node*>* nodes;
		Node *node;
		NodeEntity *nodeEntity;
		Entity *referredNode;

		if (composition->instanceOf("SwitchNode")) {
			nodes = ((NclPresentationControlConverter*)
				    getPresentationControlParser())->
				    	   getSwitchConstituents((SwitchNode*) composition);

		} else {
			nodes = composition->getNodes();
		}

		if (nodes == NULL) {
			return;
		}

		vector<Node*>::iterator it;
		for (it = nodes->begin(); it != nodes->end(); ++it) {
			node = *it;
			if (node != NULL) {
				if (node->instanceOf("ReferNode")) {
					referredNode = ((ReferNode*)node)->getReferredEntity();
					if (referredNode != NULL) {
						if (referredNode->instanceOf("ReferredNode")) {
							nodeEntity = (NodeEntity*)(((NclDocumentConverter*)
								    getDocumentParser())->
								    	    getNode(referredNode->getId()));

							if (nodeEntity != NULL) {
								((ReferNode*)node)->setReferredEntity(
									    nodeEntity->getDataEntity());

							} else {
								cout << "The media element refers to ";
								cout << referredNode->getId().c_str();
								cout << " object, which was not declared";
								cout << " before" << endl;
							}
						}
					}

				} else if (node->instanceOf("CompositeNode")) {
					solveNodeReferences((CompositeNode*) node);
				}
			}
		}
	}
Ejemplo n.º 7
0
	void *NclStructureConverter::createNcl(
		    DOMElement *parentElement, void *objGrandParent) {

		string docName;
		NclDocument *document;

		if(parentElement->hasAttribute(XMLString::transcode("id"))) {
			docName = XMLString::transcode(parentElement->getAttribute(
				    XMLString::transcode("id")));

		}

		if (docName == "") {
			docName = "nclDocument";
		}

		document = new NclDocument(docName);
		getDocumentParser()->addObject("return", "document", document);
		return document;
	}
Ejemplo n.º 8
0
bptnl::LayoutRegion* NclLayoutConverter::createDummyRegBase(){

	bptn::NclDocument *document;
	bptnl::Device device = { "systemScreen(0)", 0};

	LDEBUG("NclLayoutConverter", "Creating dummy region");

	bptnl::LayoutRegion *region = new bptnl::LayoutRegion( "dummyRegion" );

	document = (bptn::NclDocument*) getDocumentParser()->getObject( "return", "document" );
	bptnl::RegionBase *aRegionBase = document->getRegionBase( 0 );

	if ( aRegionBase == NULL ) {
		aRegionBase = new bptnl::RegionBase( "dummyRegionBase" );
		aRegionBase->setDevice( device, "" );
		document->addRegionBase( aRegionBase );
	}

	addRegionToRegionBase(aRegionBase, region);

	return region;
}