2008-04-25
GEF显示网格和吸附功能
关键字: gef grid snap
GraphicalEditor中,需要申明要开启网格和吸附功能.
EditPart中
好了, 这样就可以了
protected void configureGraphicalViewer() {
...
viewer.setProperty(SnapToGrid.PROPERTY_GRID_ENABLED,Boolean.TRUE); // 网格功能可用
viewer.setProperty(SnapToGrid.PROPERTY_GRID_VISIBLE,Boolean.TRUE); // 网格可视
viewer.setProperty(SnapToGeometry.PROPERTY_SNAP_ENABLED, Boolean.TRUE); // 自动吸附
}
EditPart中
/**
* @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
*/
public Object getAdapter(Class adapter) {
if (adapter == SnapToHelper.class) {
List snapStrategies = new ArrayList();
Boolean val = (Boolean)getViewer().getProperty(RulerProvider.PROPERTY_RULER_VISIBILITY);
if (val != null && val.booleanValue())
snapStrategies.add(new SnapToGuides(this));
val = (Boolean)getViewer().getProperty(SnapToGeometry.PROPERTY_SNAP_ENABLED);
if (val != null && val.booleanValue())
snapStrategies.add(new SnapToGeometry(this));
val = (Boolean)getViewer().getProperty(SnapToGrid.PROPERTY_GRID_ENABLED);
if (val != null && val.booleanValue())
snapStrategies.add(new SnapToGrid(this));
if (snapStrategies.size() == 0)
return null;
if (snapStrategies.size() == 1)
return snapStrategies.get(0);
SnapToHelper ss[] = new SnapToHelper[snapStrategies.size()];
for (int i = 0; i < snapStrategies.size(); i++)
ss[i] = (SnapToHelper)snapStrategies.get(i);
return new CompoundSnapToHelper(ss);
}
return super.getAdapter(adapter);
}
好了, 这样就可以了
发表评论
- 浏览: 6453 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
我的相册
IndexCardGenerator
共 13 张
共 13 张
最近加入圈子
最新评论
-
RAP[1] RAP开发环境的安装
Eclipse RAP的客户端渲染是基于qooxdoo,一个很优秀的开源java ...
-- by Quake Wang -
惊艳!!! Swt 上的Ribbon.
dev.java.net上早有ribbon的实现了,不过是swing的:http ...
-- by diggywang -
.net终于被java同化了
支持Java
-- by love2008 -
Groovy的Eclipse插件
多谢,在这里找到插件了
-- by wdlfellow

![lggege的博客: [203] lG 槛~ 迈过去! 用户头像](http://www.javaeye.com/upload/logo/user/18674/d58959b8-54ec-376e-b9f2-5d3a36beaa2f.jpg?1206674671)




评论排行榜