ユーザーが円グラフの一部をクリックしたときにポップアップ画面を作成するにはどうすればよいですか?
例えば;
- 私の円グラフは、英語50%、ドイツ語20%、フランス語20%、イタリア語10%などの言語の分布を示しています。
- ユーザーが円グラフの英語部分をクリックすると、英語の配布に関する情報を示すポップアップ画面が表示される必要があります。
どうすれば、vaadinで、便利なチャートを追加してそれを行うことができますか?
com.invient.vaadin.charts.InvientCharts.PointClickListener
次のように使用します。
chart.addListener(new PointClickListener() {
@Override
public void pointClick(PointClickEvent pointClickEvent) {
Item item = pointItems.get(pointClickEvent.getPoint());
Window popupWindow = new Window();
// Add stuff to your window
getWindow().addWindow(popupWindow);
}
});
非常に単純です:)getWindow()メソッドはComponentで定義されているため、呼び出し元のクラスはそれを実装するクラスである必要があります。ThreadLocalパターンを使用している場合は、コード内のどこからでもメインウィンドウへの参照を取得できます。
編集:pointItemsがクラスで次のように宣言されていることを言及するのを忘れました:
Map<Point, Item> pointItems = new HashMap<Point, Item>();
そして、ポイントを作成するときに、PointオブジェクトとItemオブジェクトをマップに配置します。Pointの独自の実装を作成し、その中にアイテムをカプセル化することもできます。あまりにも悪いInvientChartsは、ほぼすべてのクラスのファイナルを宣言しているため、たとえば拡張することはできません。DateTimePoint:/