X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=publishing%2Forg.argeo.publishing.ui%2Fsrc%2Forg%2Fargeo%2Fdocbook%2Fui%2FDbkVideo.java;fp=publishing%2Forg.argeo.publishing.ui%2Fsrc%2Forg%2Fargeo%2Fdocbook%2Fui%2FDbkVideo.java;h=6ad7ba07f3d9c3fa241a0fedfd9c3fbc664b8440;hp=0000000000000000000000000000000000000000;hb=d3a20494b99046cd9f67491064333ba56fbe5772;hpb=6bc924760d7a8dbc16280c6ade047f8b7d3cf9f2 diff --git a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkVideo.java b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkVideo.java new file mode 100644 index 0000000..6ad7ba0 --- /dev/null +++ b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkVideo.java @@ -0,0 +1,105 @@ +package org.argeo.docbook.ui; + +import javax.jcr.Item; +import javax.jcr.Node; +import javax.jcr.PathNotFoundException; +import javax.jcr.RepositoryException; +import javax.jcr.ValueFormatException; + +import org.argeo.cms.ui.util.CmsUiUtils; +import org.argeo.cms.ui.viewers.NodePart; +import org.argeo.cms.ui.viewers.Section; +import org.argeo.cms.ui.viewers.SectionPart; +import org.argeo.cms.ui.widgets.StyledControl; +import org.argeo.docbook.DbkAttr; +import org.argeo.docbook.DbkType; +import org.argeo.jcr.JcrException; +import org.eclipse.swt.SWT; +import org.eclipse.swt.browser.Browser; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; + +public class DbkVideo extends StyledControl implements SectionPart, NodePart { + private static final long serialVersionUID = -8753232181570351880L; + private Section section; + + private int width = 640; + private int height = 360; + + public DbkVideo(Composite parent, int style, Node node) { + this(Section.findSection(parent), parent, style, node); + } + + DbkVideo(Section section, Composite parent, int style, Node node) { + super(parent, style, node); + this.section = section; + setStyle(DbkType.videoobject.name()); + } + + @Override + protected Control createControl(Composite box, String style) { + Browser browser = new Browser(box, SWT.NONE); + GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); + gd.widthHint = getWidth(); + gd.heightHint = getHeight(); + browser.setLayoutData(gd); + return browser; + } + + public void load(Control control) { + Browser browser = (Browser) control; + try { + getNode().getSession(); + String src = getNode().getNode(DbkType.videoobject.get()).getNode(DbkType.videodata.get()) + .getProperty(DbkAttr.fileref.name()).getString(); + // TODO manage self-hosted videos + // TODO for YouTube videos, check whether the URL starts with + // https://www.youtube.com/embed/ and not https://www.youtube.com/watch?v= + StringBuilder html = new StringBuilder(); + html.append( + "