- 浏览: 268935 次
- 性别:
- 来自: 北京
最新评论
-
扬手就是一长鞭:
移动label也无法使得save可以执行。
让连线上的Label动起来吧 -
扬手就是一长鞭:
我的save是正常的,我添加删除node或者connectio ...
让连线上的Label动起来吧 -
扬手就是一长鞭:
我也是这扥写的,可是我双击label改变他的文字时,发现sav ...
让连线上的Label动起来吧 -
ae6623:
这段代码放到哪里??
控制拖拽范围 -
ae6623:
真牛!鼠标滚轮缩放GEF画布 ..
getGraphicalV ...
GEF实现用鼠标滑轮控制画布的放大与缩小
文章列表
/** 弹出调色板使用状态的首选项标识 */
private static final String PALETTE_STATE = "AbstractGraphicalEditorPaletteFactory.State"
private FlyoutPaletteComposite.FlyoutPreferences createPalettePreferences() {
this.flyoutPreferences = new FlyoutPaletteComposite.FlyoutPreferences() {
private IPre ...
我这里以gef.tutorial.step为例,在此工程基础修改代码实现该功能
首先将ContentsEditPart的布局做如下调整
protected IFigure createFigure() {
Layer figure = new Layer() {
public void paint(Graphics graphics) {
graphics.setAntialias(SWT.ON);
graphics.setTextAntialias(SWT.ON);
super.paint(graphics);
}
};
...
DiagramEditPart implements LayerConstants即可,也不需要对连线做抗锯齿处理
如图:
Draw2d中有ScrollPane这样一个IFigure,它可以设置从不、一直、自动三种方式来现实滚动条,默认是自动。
实现步骤:
1、添加容器
panel = new Panel();
2、给容器添加布局(参照Draw2D布局,以便使用适合自己的布局)
3、在EditPart中将panel设置为ContentPanel
下面给出我的实现:
listboxFigure:
/*******************************************************************************
* Copyright (c) 2005-2011, Ch ...
虽然可以通过给子节点添加SelectionPolicy来完成对句柄的控制,但是,如果子节点是多种类型的呢,就得给每个editpart都添加了,所以可以尝试使用如下方法来实现:
在父节点的XYLayoutPolicy中对createChildPolicy做空实现即可/* (non-Javadoc)
* @see org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy#createChildEditPolicy(org.eclipse.gef.EditPart)
*/
//Override
protected EditP ...
ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(shell, new WorkbenchLabelProvider(), new WorkbenchContentProvider());
dialog.setInput(ResourcesPlugin.getWorkspace());
dialog.addFilter(new ViewerFilter() {
public boolean select(Viewer viewer, Object parentElement, Object e ...
WorkbenchWindow window = PlatfromUI.getWorkbench().getActiveWorkbenchWindow(); IStatusLineManager status = window.getStatusLineManager();
实现ScalableFreeformRootEditPart中的performRequest方法即可:
@Override
public void performRequest(Request req) {
if (req.getType().equals(REQ_OPEN)) {
MessageDialog.openConfirm(null, null, "HELLO");
}
super.performRequest(req);
}
三个步骤:
一、下载SVN插件到eclipse;
二、给RCP添加SVN依赖:
org.tigris.subversion.subclipse.core
org.tigris.subversion.subclipse.ui
org.tigris.subversion.subclipse.mylyn
org.tigris.subversion.clientadaptor.javahl
三、添加一个用来打开SVN资源库的菜单:
public OpenSubversionViewAction() {
setText("SVN Repository");
}
...
重写FlyoutPaletteComposite.FlyoutPreferences的getDockLocation()方法
public int getDockLocation() {
int dock = getPreferenceStore().getInt(PALETTE_DOCK_LOCATION);
if (0 == dock) {
// 缺省将面板放在左边
return PositionConstants.WEST;
}
return getPreferenceStore().getInt(PALETTE_DOCK_L ...
前面写了个连线上显示文字,直接用的label,那样确实简单,但有的时候还是需要独立出来,这个时候就要有单独的控制器,原理很简单:即文字是连线的子节点,然后将文字添加到连线上面,就OK了;实现父子关系很简单:在连线控制器中添加getChildren方法就OK了,然后将文字绑定到连线上面就是刷新的时候确定连线的上的坐标然后绑定Label就可以了,直接上代码:
protected void refreshVisuals() {
// String text = getLabelWrapper().getText();
Label label = (Label) getFigure();
...
模型部分:
public class ElementBase extends AbstractModel implements IAdaptable {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 布局
*/
private Rectangle layout;
/**
* 获得布局
*
* @return
*/
public Rectangle getLayout() {
return layout;
}
p ...
(EditPart) getGraphicalViewer().getEditPartRegistry().get(element)
关于连线创建的过程大家可以看http://blog.chinaunix.net/u2/89957/showart_2068848.html
继承ConnectionCreationTool然后做如下实现就可以了:
protected boolean handleButtonDown(int button) {
boolean result = super.handleButtonDown(button);
if ((AbstractTool.STATE_INITIAL == button) && (isInState(AbstractTool.STATE_INIT ...
JET 模板可宣布 Java 方法或字段内的字符围绕它的 <%! 和 %>。
有效的声明
每个声明可能包含一个或多个语法正确 Java 方法或字段声明。以下是有效的声明的示例:
<%!
/**
* Say hello the the addressee passed to the method
*/
public String hello(String addressee) {
return "Hello " + addresseee + "!";
}
%>
<%!
// Declarations may co ...