`

Feedback(反馈)

    博客分类:
  • GEF
 
阅读更多

Feedback(反馈):

所谓反馈,是指操作时显示的一些提示信息,是对用户操作的某种响应,比如拖动某个图形时,我们一般会看到一个虚影,这就是反馈。
 它告诉了用户这个图形在松开鼠标之后将会被放置在什么地方,这是一种很好的提高用户友好度的方式,也是反馈的主要目的。
 反馈有两种:Source Feedback(源反馈)和Target Feedback(目标反馈)。鼠标操作的图形叫源,鼠标移到时经过的地方叫目的。
 如果你的鼠标停在一个矩形上,那么那个矩形就是目标,由目标提供的反馈就叫目标反馈。
 一般我们在GEF中见到的反馈都是一些视觉上的效果,比如虚影。如果你愿意,你可以播放一段音乐或者别的什么,所以反馈并不限于
 视觉效果。对于视觉上的效果而言,GEF提供了一个缺省的层,叫Feedback  Layer(反馈层),我们看到有关反馈的图形都是添加到反馈层的。

 

反馈的触发时机:反馈到底是在什么时候才会出现呢?对于源反馈,它是在拖动的时候触发的,对于目标反馈,鼠标的移动,进入或者拖动都有可能触发。但是这只是一般的情况,是GEF缺省的情况。如果你需要在更多的场合显示反馈,需要多实现一些方法罢了,但是也并不复杂。

 

自定义Feedback
 通过阅读AbstractEditPart的源码可以发现,它实际是把showSourceFeedback和showTargetFeedback都转发给了EditPolicy来完成,所以自定义Feedback正确的做法应该是实现一个自定义的EditPolicy并安装到EditPart中。这里又有一个问题,应该安装到哪个角色上呢?
 和拖动相关的角色叫Primary Drag,这个角色是的Policy是由父类提供的。

 

 

反馈技术
视觉反馈是一个图形化编辑器用户界面重要的组成部分。GEF用很多方法为用户提供反馈。
1.改变光标。当在图形化编辑器上选定目标时,改变光标来显示所选的目标是否支持该工具的操作。
2.区别被选的和被聚焦的部分。一般的,在相同类型的部分中,一个被选择的部分应该和没有被选择的部分明显的区分。
这个可以通过在部分外增加一个被选择图形或改变部分的颜色或形状。
3.展示操作柄(handle):操作柄也是一个图形元素,一般出现在部分的四周,它表示图形可以被移动或是改变大小。
一般反馈技术是由编辑策略[EditPolicy]实现的。具体实现的是EditPolicy的子类GraphicalEditPolicy。
GEF提供一个反馈层,所有的反馈都在该层上显示。层本身就是一个图形,只不过对用户来说是透明的。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics