XWiki - PlantUMLMacroGClass 
Page of - last modified by Helge Dahl on 2018/03/07 23:23 
PlantUMLMacroGClass 

Helge Dahl

2018/03/07 23:23
Table of Contents

/* Groovy Class #* */
import net.sourceforge.plantuml.*
class PlantUMLMacroGClass {
    def umldoc;
    def ctx;
    def umltext;
    def imageFormat;
    def enableImageMap;
    void setObjects( doc, context, text, format, imageMap) {
        umldoc = doc
        ctx = context
        umltext = text
        imageFormat = format
        enableImageMap = imageMap
    }
    String run( request, response) {
      
        if("true".equals(request.preview)){
            umltext = request.getSession().getAttribute("preview_uml_" + umlref)
          
        def reader = new SourceStringReader("@startuml\n"+umltext+"\n@enduml")
        if ("plain".equals(request.xpage)) {
            if( !umlref.equals(request.uml) ){
                return "";
            }
            response.setContentType( "svg".equals(imageFormat) ? "image/svg+xml" : "image/png" )
            def img = response.getOutputStream()
            def desc = reader.outputImage(img, new FileFormatOption("svg".equals(imageFormat) ? FileFormat.SVG : FileFormat.PNG))
            img.close();
            return ""
        } else if("xpart".equals(request.xpage)) {
            return ""
        } else {
            def preview = false
            if("wysiwyginput".equals(request.xpage) || request.getRequestURL().indexOf("/bin/preview/") != -1){
                imageFormat = "png"
                enableImageMap = true
                preview = true
                request.getSession().setAttribute("preview_uml_" + umlref, umltext)
            }
            if("svg".equals(imageFormat)){
                return "" + "
" + ""
            } else {
                if( !enableImageMap ){
                    return ""
                } else {
                    def imgMapHtml = "<map name=\"umlmap"+umlref+"\">";
                    String[] mapLines = new String[0];

" + ""
                }
            }
        }
    }
}
/* *# */