Example #1
0
 DomElement createDomElement(WApplication app) {
   DomElement result = null;
   if (this.isInLayout()) {
     this.setJavaScriptMember(WT_RESIZE_JS, "function() {}");
   }
   if (app.getEnvironment().agentIsIElt(9)
       || app.getEnvironment().getAgent() == WEnvironment.UserAgent.MobileWebKitAndroid) {
     result = DomElement.createNew(DomElementType.DomElement_DIV);
     if (this.alternative_ != null) {
       result.addChild(this.alternative_.createSDomElement(app));
     }
   } else {
     DomElement media = this.createMediaDomElement();
     DomElement wrap = null;
     if (this.isInLayout()) {
       media.setProperty(Property.PropertyStylePosition, "absolute");
       media.setProperty(Property.PropertyStyleLeft, "0");
       media.setProperty(Property.PropertyStyleRight, "0");
       wrap = DomElement.createNew(DomElementType.DomElement_DIV);
       wrap.setProperty(Property.PropertyStylePosition, "relative");
     }
     result = wrap != null ? wrap : media;
     if (wrap != null) {
       this.mediaId_ = this.getId() + "_media";
       media.setId(this.mediaId_);
     } else {
       this.mediaId_ = this.getId();
     }
     this.updateMediaDom(media, true);
     for (int i = 0; i < this.sources_.size(); ++i) {
       DomElement src = DomElement.createNew(DomElementType.DomElement_SOURCE);
       src.setId(this.mediaId_ + "s" + String.valueOf(i));
       this.renderSource(src, this.sources_.get(i), i + 1 >= this.sources_.size());
       media.addChild(src);
     }
     this.sourcesRendered_ = this.sources_.size();
     this.sourcesChanged_ = false;
     if (wrap != null) {
       wrap.addChild(media);
     }
   }
   if (this.isInLayout()) {
     StringWriter ss = new StringWriter();
     ss.append("function(self, w, h) {");
     if (this.mediaId_.length() != 0) {
       ss.append(
           "v="
               + this.getJsMediaRef()
               + ";if(v){v.setAttribute('width', w);v.setAttribute('height', h);}");
     }
     if (this.alternative_ != null) {
       ss.append("a=" + this.alternative_.getJsRef() + ";if(a && a.")
           .append(WT_RESIZE_JS)
           .append(")a.")
           .append(WT_RESIZE_JS)
           .append("(a, w, h);");
     }
     ss.append("}");
     this.setJavaScriptMember(WT_RESIZE_JS, ss.toString());
   }
   this.setId(result, app);
   this.updateDom(result, true);
   if (this.isInLayout()) {
     result.setEvent(PLAYBACKSTARTED_SIGNAL, "");
     result.setEvent(PLAYBACKPAUSED_SIGNAL, "");
     result.setEvent(ENDED_SIGNAL, "");
     result.setEvent(TIMEUPDATED_SIGNAL, "");
     result.setEvent(VOLUMECHANGED_SIGNAL, "");
   }
   this.setJavaScriptMember("mediaId", "'" + this.mediaId_ + "'");
   return result;
 }