工作日记-插件

2011-6-20

1.可使用 draw2d 中的类 Animation 做 GEF 动画,动画针对figure缩放和位置移动

 

2011-7-12

1.添加RCP圆角的办法

在ApplicationWorkbenchWindowAdvisor的preWindowOpen()中加入下面代码

PlatformUI.getPreferenceStore().setValue(IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS, false);

 

2011-11-22

1.GMF/GEF/EMF各种命令转换组合等

CompoundCommand 组合各自命令

转换ICommandproxy

反之Commandproxy

CompositeTransactionCommand,GMF命令组合

 

2011-4-29

1.在GEF中注册拖放目标源 写在方法

initializeGraphicalViewer()中,

例如: viewer.addDropTargeListenercnewResovceDropTargetListener(liencese);

 

2.在特定的Editor中配置独特的Action方法

在Editor扩展点文件中配置属性Contributorclass。

该类继承EditorActionBarContributor

添加方法 :

public void init(IACtionBars bars){

IToolBarManger toolbar =bars.getToolBarManager();

toolbar.add(new separator());

toolbar.add(action);自定义的

 

2011-12-1

1.制作GMF图元动画,以及修改图元位置

private void refreshBounds(IGraphicalEditPart editPart) {
int x = ((Integer) editPart.getStructuralFeatureValue(NotationPackage.eINSTANCE.getLocation_X())).intValue();//模型位置
int y = ((Integer) editPart.getStructuralFeatureValue(NotationPackage.eINSTANCE.getLocation_Y())).intValue();//模型位置
Point loc = new Point(x, y);
IFigure figure = editPart.getFigure();
Animation.markBegin();//动画
((GraphicalEditPart) editPart.getParent()).setLayoutConstraint(editPart, figure, new Rectangle(loc, TaskEditPart.TASK_FIGURE_SIZE));//设置界面位置,

Animation.run(600);
}

修改一个图元的位置,应该线修改他的模型位置,在通过上面方法设置他的显示位置。

2.手动创建图元可以通过构建createElementCommand,构建createElementRequest来创建

 

2011-12-5

1.GMF修改节点拉出和拉入连线的策略

系统写在了 ShapeNodeEditPart installEditPolicy(EditPolicyRoles.CONNECTION_HANDLES_ROLE,
new ConnectionHandleEditPolicy());里头,

重写 ConnetionHandleEditPolicy();控制展现和功能。

 

2.控制从资源视图推拽对象(例如资源视图)到GMF视图

修改注册 DiagramDropTargetListener 到DiagramEditPart中的注册,然后此Listener天然成了一个selectTool(比喻),查看事件到请求的封装,到策略分发。即可完成。

注:因为一般的JAVA 透视图的资源视图是添加了swt的dnd拖拽监听器的,如果是自定义视图,须在自己的树view里头注册。如果是GEF,GEF的监听器需自己注册到gef编辑器的最大的那个view里头。

 

2011-12-8

1.TreeViewer 出现两种颜色的字体同时出现。(类似java编辑器里头的其他树形视图一样)

需要使用 DecoratingStyledCellLabelProvider 包装labelprovider。

例:

类1

public class TreeViewLabelProvider extends LabelProvider implements IStyledLabelProvider {
public String getText(Object element) {
Itree node = (Itree) element;
return node.getName();
}

public Image getImage(Object element) {
return null;
}

public StyledString getStyledText(Object obj) {
String name = getText(obj);
StyledString str = new StyledString(name);

str.append(" :" + name, StyledString.DECORATIONS_STYLER);
return str;
}
}

类2

public class DecoratingTreeLabelProvider extends DecoratingStyledCellLabelProvider implements ILabelProvider {

private ILabelProvider provider;

public DecoratingTreeLabelProvider(TreeViewLabelProvider provider) {
super(provider, PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator(), null);
this.provider = provider;
}

//这里使用的是platformUI里头的DecoratorManager(),需要是插件工程,其他地方使用,需自己实现LabelDecorator();

public String getText(Object element) {
return provider.getText(element);
}
}

使用

TreeViewLabelProvider treeViewLabelProvider = new TreeViewLabelProvider();
treeViewer.setLabelProvider(new DecoratingTreeLabelProvider(treeViewLabelProvider));
treeViewer.setContentProvider(new TreeContentProvider());

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值