From: Kimmo Hoikka Date: Wed, 3 Sep 2014 12:05:54 +0000 (-0700) Subject: Merge "Added actor creation from json snippet" into tizen X-Git-Tag: dali_1.0.8~8 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=d160a0e0ef708245ecbf94e6e34d7bd9f0cad0c7;hp=-c Merge "Added actor creation from json snippet" into tizen --- d160a0e0ef708245ecbf94e6e34d7bd9f0cad0c7 diff --combined base/dali-toolkit/internal/builder/builder-impl.cpp index 06e95e6,6deedb5..31def0e --- a/base/dali-toolkit/internal/builder/builder-impl.cpp +++ b/base/dali-toolkit/internal/builder/builder-impl.cpp @@@ -507,7 -507,9 +507,7 @@@ BaseHandle Builder::DoCreate( const Tre } } - ApplyProperties( root, node, handle, replacements ); - - if( actor) + if( actor ) { // add children of all the styles if( OptionalChild actors = IsChild( node, KEYNAME_ACTORS ) ) @@@ -527,10 -529,7 +527,10 @@@ parent.Add( actor ); } } - + else + { + ApplyProperties( root, node, handle, replacements ); + } } else { @@@ -1030,6 -1029,44 +1030,44 @@@ BaseHandle Builder::Create( const std:: return baseHandle; } + BaseHandle Builder::CreateFromJson( const std::string& json ) + { + BaseHandle ret; + + // merge in new template, hoping no one else has one named '@temp@' + std::string newTemplate = + std::string("{\"templates\":{\"@temp@\":") + \ + json + \ + std::string("}}"); + + if( mParser.Parse(newTemplate) ) + { + Replacement replacement( mReplacementMap ); + ret = Create( "@temp@", replacement ); + } + + return ret; + } + + bool Builder::ApplyFromJson( Handle& handle, const std::string& json ) + { + bool ret = false; + + // merge new style, hoping no one else has one named '@temp@' + std::string newStyle = + std::string("{\"styles\":{\"@temp@\":") + \ + json + \ + std::string("}}"); + + if( mParser.Parse(newStyle) ) + { + Replacement replacement( mReplacementMap ); + ret = ApplyStyle( "@temp@", handle, replacement ); + } + + return ret; + } + BaseHandle Builder::Create( const std::string& templateName ) {