6

Vaadin 7.0.5 で SVG グラフィックスを vaadin UI に含めることが可能かどうかを知りたいのですが、これはアドオンなしで可能です。

私は現在このコードを使用しています

StreamResource ressourceSVG = new StreamResource(source, "graphe.svg");

Embedded embedded = new Embedded("SVG", ressourceSVG);
embedded.setType(Embedded.TYPE_OBJECT);
embedded.setMimeType("images/svg+xml");

verticalLayout.addComponent(embedded);
setContent(verticalLayout);

そして、これでは何も起こりません...ブラウザに「SVG」テキストが表示されるだけです。

この件に関して私が見つけた唯一のトピックは 3 年前のもので、本の中に手がかりが見つかりませんでした。

API にはインターフェイスのみが存在します: elemental.svgですが、実際には役に立ちません...

手がかりがあれば...素晴らしいでしょう

4

2 に答える 2

4

したがって、Vaadin 7 で SVG を表示するには、BrowserFrame を使用して SVG リソースを表示する必要があるというのが答えのようです。

sourceSVG が SVG データを含む streamSource である以下のようなものを使用します。

StreamResource ressourceSVG = new StreamResource(sourceSVG, "graphe.svg");

BrowserFrame embedded = new BrowserFrame("SVG", ressourceSVG);

verticalLayout.addComponent(component);
verticalLayout.addComponent(embedded);
setContent(verticalLayout);

ウェブページを読み込んだ後にフレームをリロードする必要がありましたが、最終的には機能しました

于 2013-07-26T09:03:33.523 に答える
2

実際、少なくとも versionでは、 SVG を直接7.1.7使用できます。BookEmbeddedには例もありますが、次のものを扱っています。ThemeResource

// A resource reference to some object
Resource res = new ThemeResource("img/reindeer.svg");

// Display the object
Embedded object = new Embedded("My SVG", res);
object.setMimeType("image/svg+xml"); // Unnecessary
layout.addComponent(object);

ただし、StreamResource少なくとも次のスニペットでは、 s も正常に機能します。

Embedded image = new Embedded();
image.setMimeType("image/svg+xml"); //also unnecessary here :p
layout.addComponent(image);
StreamSource source = //define your source
image.setSource(new StreamResource(source, "image.svg"));

(画像を再生成する必要がある場合は、新しい一意のfilename値を に指定する必要があることに注意してくださいStreamResource)

于 2013-11-04T10:36:45.403 に答える