1

DrawRect を作成します

    DrawRect drawRect = new DrawRect();
    drawRect.setDrawPane(pane);
    drawRect.setLeft(x-25);
    drawRect.setTop(y-25);
    drawRect.setWidth(50);
    drawRect.setHeight(50);
    drawRect.setFillColor("#FF0000");
    drawRect.setFillOpacity(0.2f);

    drawRect.setCanDrag(true);
    drawRect.setKnobs(KnobType.RESIZE);

    drawRect.draw();

そしてノブはうまく機能します。しかし、DrawPane でズームを変更すると

     zoomLevel = pane.getZoomLevel();
     pane.zoom(zoomLevel+0.001f);

ノブがずれて使えません。こんな感じ http://clip2net.com/s/4XXJmY

4

1 に答える 1

0

SmartGWT に問題があるか、SmartClient で行われた特定の修正がまだ SmartGWT に移行されていないようです。
マウスイベントで修正された以前の問題がありましたが、まだノブが機能していません。

smartgwt-4.0d/LGPL/2013-04-25 と GWT 2.4.0 では、ズーム後にノブを使用することもできませんでした。内部で
試してみましたが、動作は変わりませんでした。 drawRect.showKnobs(KnobType.RESIZE);DrawHandler.onDraw()

drawRect.getKnobs()ズーム トリガー (ボタン クリック ハンドラーなど)とズーム中の両方drawRect.getResizeKnobPoints()に適切な値がありました (ズームの前後で変化しませんでした)。

ズーム中のトリガーは、ズームの前後でノブのDrawPane.getDrawItems()個別のインスタンスを示していました。DrawItem

以下を使用して、ズームによってマウス イベントがどのように影響を受けるかを確認しました。
指定された画像のハイライトされた領域内で、ズームの前後で同じように機能するように見えました。

final Label label = new Label();
label.setWidth100();
label.setHeight(20);
label.setContents("event details");

drawRect.addClickHandler(new com.smartgwt.client.widgets.drawing.events.ClickHandler() {
    public void onClick(com.smartgwt.client.widgets.drawing.events.ClickEvent clickEvent) {
        label.setContents("mouse click: " + clickEvent.toDebugString() + "; " + new Date().getTime());
    }
});
drawRect.addMouseMoveHandler(new MouseMoveHandler() {
    public void onMouseMove(MouseMoveEvent mouseMoveEvent) {
        label.setContents("mouse move: " + mouseMoveEvent.toDebugString() + "; " + new Date().getTime());
    }
});

ここに画像の説明を入力

おそらく、SmartClient/SmartGWT フォーラムに投稿することをお勧めします。

多少関連 - http://forums.smartclient.com/showthread.php?t=21345&highlight=DrawPane+zooming

于 2013-04-26T20:07:52.767 に答える