我创建了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
答案 0 :(得分:0)
SmartGWT似乎存在问题,或者SmartClient中的某些修复工作尚未转移到SmartGWT。
他们在鼠标事件中修复了之前的issue,但仍然无法使用旋钮。
使用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 forum中发帖可能是个好主意。
有点相关 - http://forums.smartclient.com/showthread.php?t=21345&highlight=DrawPane+zooming