/** * Consctructor for a media widget. * * <p>A freshly constructed media widget has no options set, no media sources, and has preload * mode set to PreloadAuto. */ public WAbstractMedia(WContainerWidget parent) { super(parent); this.sources_ = new ArrayList<WAbstractMedia.Source>(); this.sourcesRendered_ = 0; this.mediaId_ = ""; this.flags_ = EnumSet.noneOf(WAbstractMedia.Options.class); this.preloadMode_ = WAbstractMedia.PreloadMode.PreloadAuto; this.alternative_ = null; this.flagsChanged_ = false; this.preloadChanged_ = false; this.sourcesChanged_ = false; this.playing_ = false; this.volume_ = -1; this.current_ = -1; this.duration_ = -1; this.ended_ = false; this.readyState_ = WAbstractMedia.ReadyState.HaveNothing; this.setInline(false); this.setFormObject(true); WApplication app = WApplication.getInstance(); app.loadJavaScript("js/WAbstractMedia.js", wtjs1()); this.setJavaScriptMember( " WAbstractMedia", "new Wt3_2_3.WAbstractMedia(" + app.getJavaScriptClass() + "," + this.getJsRef() + ");"); }
/** * Adds a widget to the grid. * * <p>Calls {@link #addWidget(WWidget widget, int row, int column, int rowSpan, int columnSpan, * EnumSet alignment) addWidget(widget, row, column, rowSpan, columnSpan, * EnumSet.noneOf(AlignmentFlag.class))} */ public final void addWidget(WWidget widget, int row, int column, int rowSpan, int columnSpan) { addWidget(widget, row, column, rowSpan, columnSpan, EnumSet.noneOf(AlignmentFlag.class)); }
/** * Adds a layout item to the grid. * * <p>Calls {@link #addItem(WLayoutItem item, int row, int column, int rowSpan, int columnSpan, * EnumSet alignment) addItem(item, row, column, rowSpan, columnSpan, * EnumSet.noneOf(AlignmentFlag.class))} */ public final void addItem(WLayoutItem item, int row, int column, int rowSpan, int columnSpan) { addItem(item, row, column, rowSpan, columnSpan, EnumSet.noneOf(AlignmentFlag.class)); }
/** * Adds a nested layout item to the grid. * * <p>Calls {@link #addLayout(WLayout layout, int row, int column, int rowSpan, int columnSpan, * EnumSet alignment) addLayout(layout, row, column, rowSpan, columnSpan, * EnumSet.noneOf(AlignmentFlag.class))} */ public final void addLayout(WLayout layout, int row, int column, int rowSpan, int columnSpan) { addLayout(layout, row, column, rowSpan, columnSpan, EnumSet.noneOf(AlignmentFlag.class)); }
/** * Checks a function for RESTFful annotations. * * @return {@code true} if module contains relevant annotations * @throws QueryException query exception */ boolean analyze() throws QueryException { // parse all annotations final EnumSet<HTTPMethod> mth = EnumSet.noneOf(HTTPMethod.class); final boolean[] declared = new boolean[function.args.length]; boolean found = false; final int as = function.ann.size(); for (int a = 0; a < as; a++) { final QNm name = function.ann.names[a]; final Value value = function.ann.values[a]; final byte[] local = name.local(); final byte[] uri = name.uri(); final boolean rexq = eq(uri, QueryText.RESTXQURI); if (rexq) { if (eq(PATH, local)) { // annotation "path" if (path != null) error(ANN_TWICE, "%", name.string()); path = new RestXqPath(toString(value, name)); for (final String s : path) { if (s.trim().startsWith("{")) checkVariable(s, AtomType.AAT, declared); } } else if (eq(CONSUMES, local)) { // annotation "consumes" strings(value, name, consumes); } else if (eq(PRODUCES, local)) { // annotation "produces" strings(value, name, produces); } else if (eq(QUERY_PARAM, local)) { // annotation "query-param" queryParams.add(param(value, name, declared)); } else if (eq(FORM_PARAM, local)) { // annotation "form-param" formParams.add(param(value, name, declared)); } else if (eq(HEADER_PARAM, local)) { // annotation "header-param" headerParams.add(param(value, name, declared)); } else if (eq(COOKIE_PARAM, local)) { // annotation "cookie-param" cookieParams.add(param(value, name, declared)); } else { // method annotations final HTTPMethod m = HTTPMethod.get(string(local)); if (m == null) error(ANN_UNKNOWN, "%", name.string()); if (!value.isEmpty()) { // remember post/put variable if (requestBody != null) error(ANN_TWICE, "%", name.string()); if (m != POST && m != PUT) error(METHOD_VALUE, m); requestBody = checkVariable(toString(value, name), declared); } if (mth.contains(m)) error(ANN_TWICE, "%", name.string()); mth.add(m); } } else if (eq(uri, QueryText.OUTPUTURI)) { // serialization parameters final String key = string(local); final String val = toString(value, name); if (output.get(key) == null) error(UNKNOWN_SER, key); output.set(key, val); } found |= rexq; } if (!mth.isEmpty()) methods = mth; if (found) { if (path == null) error(ANN_MISSING, PATH); for (int i = 0; i < declared.length; i++) if (!declared[i]) error(VAR_UNDEFINED, function.args[i].name.string()); } return found; }