Wicket和SVG - 存在任何组件?

时间:2010-05-02 19:52:07

标签: ajax svg components wicket

SVG DOM可以用JavaScript控制,所以它可以启用AJAX ......我想知道Wicket是否还有一些SVG组件。如果Wicket可以使用纯xml/svg作为输出格式。

快速Google搜索仅显示question at Code Ranch

2 个答案:

答案 0 :(得分:6)

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

请点击此链接:wicket-svg

答案 1 :(得分: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页面的一部分而不是像这样的整个页面,但我没有'但还是试图这样做。