// then we wrap its content and put it in the cache;
// and we attach it to the passed in writer
WidgetContextCacheKey wcck = new WidgetContextCacheKey(context);
String screenCombinedName = resourceName + ":" + screenName;
ScreenCache screenCache = new ScreenCache();
GenericWidgetOutput gwo = screenCache.get(screenCombinedName, wcck);
if (gwo == null) {
Writer sw = new StringWriter();
screenStringRenderer.renderScreenBegin(writer, context);
modelScreen.renderScreenString(sw, context, screenStringRenderer);
screenStringRenderer.renderScreenEnd(writer, context);
gwo = new GenericWidgetOutput(sw.toString());
screenCache.put(screenCombinedName, wcck, gwo);
writer.append(gwo.toString());
} else {
writer.append(gwo.toString());
}
} else {
screenStringRenderer.renderScreenBegin(writer, context);
modelScreen.renderScreenString(writer, context, screenStringRenderer);
screenStringRenderer.renderScreenEnd(writer, context);