@// Rythm template @// you can try me out at http://fiddle.rythmengine.com @// Created by Wolfgang Fahl, BITPlan GmbH, 2018-12-06 @import com.bitplan.dragtop.DropTarget @import com.bitplan.dragtop.DragItem @import org.apache.tinkerpop.gremlin.structure.Graph @import org.apache.tinkerpop.gremlin.structure.Vertex @import com.bitplan.simplegraph.powerpoint.PowerPointSystem @import com.bitplan.simplegraph.powerpoint.SlideNode @import com.bitplan.simplegraph.core.SimpleStepNode @import java.util.stream.Collectors @args() { DropTarget dropTarget, Graph graph; } @{ PowerPointSystem pps=null; Throwable error=null; try { pps=new PowerPointSystem(); pps.connect(); } catch (Throwable th) { error=th; } } @// error handling - get a stack trace @def String getStackTrace (Throwable t) { StringWriter sw = new StringWriter(); t.printStackTrace(new PrintWriter(sw)); return sw.toString(); } @// show errors @def showError(Throwable error) {
@getStackTrace(error)} @// get the property with the given name or ? if the property is not set @def String getProperty(SimpleStepNode n, String pname) { Object property=n.property(pname); String value="?"; if (property!=null) value=property.toString(); return value; } @if (error) { @showError(error) } else { @for(DragItem dragItem:dropTarget.getDragItems()) { @{ Object item=dragItem.getItem(); int index=0; File file=null; SimpleStepNode slideShowNode=null; List
@(getProperty(slideNode,"text"))