2013-04-24 36 views
1

抵销后创建的drawRect旋钮DrawPane缩放

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

新增[线程SmartGWT的(http://forums.smartclient.com/showthread.php?t=26378)本 – Sithsu 2013-04-27 18:48:25

+0

该问题已解决,现在旋钮工作座谈会放大后。 – Sithsu 2013-05-04 09:08:29

回答

0

SmartGWT似乎存在问题,或者SmartClient中完成的某些修复程序尚未移至SmartGWT。
之前有一个issue,它们固定在鼠标事件上,但仍然无法使用旋钮。

使用smartgwt-4.0d/LGPL/2013-04-25和GWT 2.4.0进行缩放后,我无法使用旋钮。
我甚至在DrawHandler.onDraw()里面试过drawRect.showKnobs(KnobType.RESIZE);这没有改变行为。

在缩放触发器(按钮点击处理程序/等)期间,两个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()); 
    } 
}); 

enter image description here

可能是一个好主意,张贴在SmartClient/SmartGWT forum

有点关系 - http://forums.smartclient.com/showthread.php?t=21345&highlight=DrawPane+zooming