2010-05-02 62 views
2

SVG DOM可以使用JavaScript进行控制,因此它可以启用AJAX ...我不知道Wicket是否还有一些SVG组件。如果Wicket可以有纯粹的xml/svg作为输出格式。Wicket和SVG - 存在任何组件?

快速谷歌搜索只显示一个question at Code Ranch

+0

感谢说,你用Google搜索和冒充的问题+1 – 2010-05-02 20:06:15

回答

1

我不知道构建的组件,但Wicket肯定可以有xml/svg作为输出格式,并且使页面呈现svg非常简单。

阿呆简单的例子代码:

public class Rectangle extends Page { 

    @Override 
    public String getMarkupType() { 
     return "xml/svg"; 
    } 

    @Override 
    protected void onRender(MarkupStream markupStream) { 
     PrintWriter writer = new PrintWriter(getResponse().getOutputStream()); 
     writer.write(makeRectangleSVG()); 
     writer.flush(); 
     writer.close(); 
    } 

    private String makeRectangleSVG() { 
     return "<?xml version=\"1.0\" standalone=\"no\"?>\n" + 
      "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n" + 
      "\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n" + 
      "\n" + 
      "<svg width=\"100%\" height=\"100%\" version=\"1.1\"\n" + 
      "xmlns=\"http://www.w3.org/2000/svg\">\n" + 
      "\n" + 
      "<rect width=\"300\" height=\"100\"\n" + 
      "style=\"fill:rgb(0,0,255);stroke-width:1;\n" + 
      "stroke:rgb(0,0,0)\"/>\n" + 
      "\n" + 
      "</svg> "; 
    } 
} 

如果映射这是一个可收藏的页面,并调用它,它会显示一个可爱的蓝色矩形,按硬编码的SVG(从W3Schools的例子被盗)。当然,你可以很容易地参数化页面,并生成svg,而不是只发送一个常量字符串...

我怀疑它也不会很难建立一个基于object标签的组件,以便svg可以显示为一个html页面的一部分,而不是像这样的整个页面,但我还没有试图这样做。

+0

由于之前做了一些研究,但我的意思是一些元件库利用Wicket的事件来处理用户的操作。对于“手工生成”的'xml/svg'输出,我宁愿使用简单的servlet。 – 2010-05-07 03:38:41

+0

我希望使用Wicket来处理你以后的事情,你仍然想要类似于这个的东西,但是作为基于对象标签的组件来重绘用户事件。我不认为他们已经在那里。 – 2010-05-07 09:59:20

6

我不知道你是否需要一个wicket-svg库了。但是我已经在github上启动了一个项目来提供wicket组件来与svg一起工作。

请点击此链接:wicket-svg

+0

请在提供链接前提供摘要。 – 2012-12-05 12:47:19