- 浏览: 269049 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (152)
- lucene (5)
- java (12)
- eclipse (2)
- GEF (34)
- SWT/JFACE/PLUGIN (58)
- EMF (8)
- GMF (0)
- fckeditor (1)
- AIX (1)
- 云计算 (2)
- 使用 Grails 构建富 Internet 应用程序 (1)
- Grails (1)
- 动态调用动态语言 (2)
- W3C DOM (3)
- Google Maps (1)
- 优化 (1)
- WebSphere (1)
- NSIS (1)
- 计算机安全 (1)
- Mina (2)
- Draw2d (4)
- Compass (1)
- 原创诗集 (3)
- 人生 (1)
- 翻版 (1)
- OSGI (1)
- Ubuntu (2)
- Ireport (2)
最新评论
-
扬手就是一长鞭:
移动label也无法使得save可以执行。
让连线上的Label动起来吧 -
扬手就是一长鞭:
我的save是正常的,我添加删除node或者connectio ...
让连线上的Label动起来吧 -
扬手就是一长鞭:
我也是这扥写的,可是我双击label改变他的文字时,发现sav ...
让连线上的Label动起来吧 -
ae6623:
这段代码放到哪里??
控制拖拽范围 -
ae6623:
真牛!鼠标滚轮缩放GEF画布 ..
getGraphicalV ...
GEF实现用鼠标滑轮控制画布的放大与缩小
我这里介绍两种方法
1:
在initializeGraphicalViewer方法中添加如下代码:
MenuManager menuManager = new MenuManager();
menuManager.add(new Action("创建") {
@Override
public void run() {
CreateNetunitDialog create = new CreateNetunitDialog();
create.open();
}
});
menuManager.add(new Action("修改") {
@Override
public void run() {
// System.out.println(tree.getSelection()[0].getText());
//
// if("".equals(tree.getSelection()[0].getText())){
//
// MessageDialog.openInformation(null, "提示", "请选择网元IP地址进行修改");
// return;
//
// }
}
});
menuManager.add(new Action("删除") {
@Override
public void run() {
handle.toWrite("正在删除网元...");
MessageDialog dialog = new MessageDialog(null, "提示", null, "确定删除吗?",
MessageDialog.QUESTION, new String[] {
IDialogConstants.YES_LABEL,
IDialogConstants.CANCEL_LABEL }, 0);
int result = dialog.open();
switch(result){
case 0: //yes
HandleXML hand = new HandleXML();
Object o = ((IStructuredSelection) viewer.getSelection()).getFirstElement();
NetNodeEntity node = (NetNodeEntity) o;
int i = hand.toDelete(node.getIP());
if(0 == i){
SendMessage send = new SendMessage();
send.write("删除网元"+node.getIP() +"成功");
Display.getDefault().syncExec(new Runnable()
{
public void run()
{
DeviceTreeViewer viewPart = (DeviceTreeViewer) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(DeviceTreeViewer.ID);;
TreeViewer viewer = viewPart.getTreeViewer();
viewer.setInput(NodeFactory.createInputData());
}
});
handle.toWrite("删除网元成功");
view.getTableViewer().setInput(LogDateFactory.createTableData());
MessageDialog.openInformation(null, "提示", "删除成功!");
}
//
// case 1: //no
// break;
case 1: //cancel
handle.toWrite("取消删除网元");
view.getTableViewer().setInput(LogDateFactory.createTableData());
break;
default: break;
}
}
});
Menu menu = menuManager.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(menu);
2:
新建CbmEditorContextMenuProvider 类继承ContextMenuProvider 内容如下:
public class CbmEditorContextMenuProvider extends ContextMenuProvider {
private ActionRegistry actionRegistry;
private ActionRegistry getActionRegistry() {
return actionRegistry;
}
public void setActionRegistry(ActionRegistry registry) {
actionRegistry = registry;
}
public CbmEditorContextMenuProvider(EditPartViewer viewer, ActionRegistry registry) {
super(viewer);
actionRegistry = registry;
}
public void buildContextMenu(IMenuManager menu) {
// Add standard action groups to the menu
GEFActionConstants.addStandardActionGroups(menu);
// Add actions to the menu
menu.appendToGroup(GEFActionConstants.GROUP_UNDO,getActionRegistry().getAction(GEFActionConstants.REDO));
menu.appendToGroup(GEFActionConstants.GROUP_UNDO,getActionRegistry().getAction(GEFActionConstants.REDO));
menu.appendToGroup(GEFActionConstants.GROUP_UNDO,getActionRegistry().getAction(GEFActionConstants.REDO));
menu.appendToGroup(GEFActionConstants.GROUP_UNDO,getActionRegistry().getAction(GEFActionConstants.REDO));
menu.appendToGroup(GEFActionConstants.GROUP_UNDO,getActionRegistry().getAction(GEFActionConstants.REDO));
menu.appendToGroup(GEFActionConstants.GROUP_UNDO,getActionRegistry().getAction(GEFActionConstants.REDO));
}
}
然后在configureGraphicalViewer方法中添加如下代码:
//添加上下文菜单
ContextMenuProvider provider =
new CbmEditorContextMenuProvider(getGraphicalViewer(), getActionRegistry());
getGraphicalViewer().setContextMenu(provider);
getSite().registerContextMenu(
"gef.examples.shapes.editor.contextmenu", //$NON-NLS-1$
provider,
getGraphicalViewer());
1:
在initializeGraphicalViewer方法中添加如下代码:
MenuManager menuManager = new MenuManager();
menuManager.add(new Action("创建") {
@Override
public void run() {
CreateNetunitDialog create = new CreateNetunitDialog();
create.open();
}
});
menuManager.add(new Action("修改") {
@Override
public void run() {
// System.out.println(tree.getSelection()[0].getText());
//
// if("".equals(tree.getSelection()[0].getText())){
//
// MessageDialog.openInformation(null, "提示", "请选择网元IP地址进行修改");
// return;
//
// }
}
});
menuManager.add(new Action("删除") {
@Override
public void run() {
handle.toWrite("正在删除网元...");
MessageDialog dialog = new MessageDialog(null, "提示", null, "确定删除吗?",
MessageDialog.QUESTION, new String[] {
IDialogConstants.YES_LABEL,
IDialogConstants.CANCEL_LABEL }, 0);
int result = dialog.open();
switch(result){
case 0: //yes
HandleXML hand = new HandleXML();
Object o = ((IStructuredSelection) viewer.getSelection()).getFirstElement();
NetNodeEntity node = (NetNodeEntity) o;
int i = hand.toDelete(node.getIP());
if(0 == i){
SendMessage send = new SendMessage();
send.write("删除网元"+node.getIP() +"成功");
Display.getDefault().syncExec(new Runnable()
{
public void run()
{
DeviceTreeViewer viewPart = (DeviceTreeViewer) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(DeviceTreeViewer.ID);;
TreeViewer viewer = viewPart.getTreeViewer();
viewer.setInput(NodeFactory.createInputData());
}
});
handle.toWrite("删除网元成功");
view.getTableViewer().setInput(LogDateFactory.createTableData());
MessageDialog.openInformation(null, "提示", "删除成功!");
}
//
// case 1: //no
// break;
case 1: //cancel
handle.toWrite("取消删除网元");
view.getTableViewer().setInput(LogDateFactory.createTableData());
break;
default: break;
}
}
});
Menu menu = menuManager.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(menu);
2:
新建CbmEditorContextMenuProvider 类继承ContextMenuProvider 内容如下:
public class CbmEditorContextMenuProvider extends ContextMenuProvider {
private ActionRegistry actionRegistry;
private ActionRegistry getActionRegistry() {
return actionRegistry;
}
public void setActionRegistry(ActionRegistry registry) {
actionRegistry = registry;
}
public CbmEditorContextMenuProvider(EditPartViewer viewer, ActionRegistry registry) {
super(viewer);
actionRegistry = registry;
}
public void buildContextMenu(IMenuManager menu) {
// Add standard action groups to the menu
GEFActionConstants.addStandardActionGroups(menu);
// Add actions to the menu
menu.appendToGroup(GEFActionConstants.GROUP_UNDO,getActionRegistry().getAction(GEFActionConstants.REDO));
menu.appendToGroup(GEFActionConstants.GROUP_UNDO,getActionRegistry().getAction(GEFActionConstants.REDO));
menu.appendToGroup(GEFActionConstants.GROUP_UNDO,getActionRegistry().getAction(GEFActionConstants.REDO));
menu.appendToGroup(GEFActionConstants.GROUP_UNDO,getActionRegistry().getAction(GEFActionConstants.REDO));
menu.appendToGroup(GEFActionConstants.GROUP_UNDO,getActionRegistry().getAction(GEFActionConstants.REDO));
menu.appendToGroup(GEFActionConstants.GROUP_UNDO,getActionRegistry().getAction(GEFActionConstants.REDO));
}
}
然后在configureGraphicalViewer方法中添加如下代码:
//添加上下文菜单
ContextMenuProvider provider =
new CbmEditorContextMenuProvider(getGraphicalViewer(), getActionRegistry());
getGraphicalViewer().setContextMenu(provider);
getSite().registerContextMenu(
"gef.examples.shapes.editor.contextmenu", //$NON-NLS-1$
provider,
getGraphicalViewer());
发表评论
-
缺省将Palette展开
2011-07-29 17:37 1534/** 弹出调色板使用状态的首选项标识 */ priv ... -
Bendpoint随着图元位置的变化而变化
2011-04-15 11:33 1689我这里以gef.tutorial.step为例,在此工程基础修 ... -
图元间多条连线处理方式
2011-04-10 01:10 1350DiagramEditPart implements Laye ... -
给Figure添加滚动条
2011-04-10 00:53 1945Draw2d中有ScrollPane这样一个IFigure,它 ... -
去掉子节点句柄
2011-04-09 19:40 1309虽然可以通过给子节点添加SelectionPolicy来完成对 ... -
给DiagramEditPart添加Request
2011-01-14 00:16 1128实现ScalableFreeformRootEditPart中 ... -
缺省将FlyoutPalette放在左边
2010-12-30 22:49 1127重写FlyoutPaletteComposite.Flyout ... -
连线上加文字
2010-12-30 13:50 1598前面写了个连线上显示文字,直接用的label,那样确实简单,但 ... -
实现GEF RulerComposite
2010-12-30 13:41 1805模型部分: public class ElementBase ... -
根据模型得到对应的控制器
2010-12-30 10:49 914(EditPart) getGraphicalViewer() ... -
创建连线后点击空白区域箭头恢复成默认样式
2010-12-29 21:39 1700关于连线创建的过程大家可以看http://blog.china ... -
GEF实现用鼠标滑轮控制画布的放大与缩小
2010-10-28 13:22 1968很简单哇,GEF已经实现了,一行代码我就不多说了,在confi ... -
实现GEF中editor的背景为网格
2010-05-13 17:32 1235在editor中的initializeGraphicalVie ... -
横向排列算法
2010-03-15 20:17 1202List<NetunitModel> childr ... -
星形排列算法
2010-03-15 20:15 1369List<NetunitModel> childr ... -
外部执行Command而Editor不提示已修改的解决办法
2009-12-21 16:19 1269理论:有些时候的需求往往不是通过plette来创建模型和连线以 ... -
选择或取消选择当前的EditPart,改变连线视图的连线样式
2009-12-21 14:45 1300在LineConnectionEditPart类中实现Abst ... -
自定义Decoration
2009-12-21 14:36 1408大家都知道new PolygonDecoration就表示带箭 ... -
让连线上的Label动起来吧
2009-12-19 12:24 1611大家都知道GEF中连线上的label默认是在线的中间,一旦要连 ... -
设置连线样式
2009-12-16 12:26 1660private void setConnectionShiap ...
相关推荐
在本话题中,我们将深入探讨如何实现`ListControl`支持右键菜单动态添加和删除行的功能,以及如何进行编辑(edit)和使用下拉框(Combox)选择。 首先,`ListControl`通常被用作`CListView`类的一部分,它是MFC框架...
3. **注册右键菜单**:使用`CustomUIEditor`工具(可能需要从Office开发工具包安装),编辑` Ribbons.xml` 文件,定义新的上下文菜单项。 4. **实现逻辑**:在C#代码中,实现菜单项点击事件的逻辑,如调用其他方法或...
在计算机软件领域,尤其是文本编辑器或处理文本的程序中,右键菜单是用户与软件交互的重要途径之一。右键菜单通常包含了一系列快捷操作,如复制、粘贴、查找、替换等,方便用户快速执行常见任务。然而,在某些特定...
2. 创建注册表项,将这些命令绑定到右键菜单。在REG文件中,你需要编写类似以下的键值对: ``` Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.dll\Shell\Register] @="注册DLL" [HKEY_CLASSES_...
在Windows操作系统中,右键菜单是用户访问常用功能和快捷方式的一个重要途径。"增加windows右键菜单项.zip"这个压缩包文件显然旨在帮助用户自定义Windows系统的右键菜单,以便在文件或文件夹上点击右键时快速执行...
本教程将详细讲解如何通过注册表编辑器(Registry Editor)来添加和删除自定义的右键菜单项,以实现标题所提及的“添加右键菜单”功能。 一、注册表编辑器简介 注册表是Windows系统中的核心数据库,存储了系统和...
本教程将详细介绍如何通过`org.eclipse.ui.presentationFactories`扩展点来实现这一目标,以及如何去除Editor的右键菜单和关闭按钮,提升用户体验。 透视图是Eclipse RCP中的一个重要概念,它定义了工作台窗口中各...
在Windows XP系统中,右键菜单是我们经常使用的功能,它提供了快速访问常用操作的途径。在某些情况下,用户可能希望自定义这个菜单,比如添加“使用记事本打开”选项,以便快速用记事本编辑文件。这尤其适用于处理...
标题中的“给右键菜单添加‘用记事本打开’.reg”指的是在Windows操作系统中,通过注册表编辑器(Registry Editor)添加一个自定义的右键菜单项,使得用户能够直接用记事本(Notepad)程序打开任何文件。这个过程...
本教程将详细讲解如何在Windows的右键菜单中添加一个快捷方式,以便快速开启或关闭显示隐藏的系统文件及扩展名。 首先,我们需要了解Windows中的文件和文件夹隐藏机制。Windows提供了一种保护机制,可以将特定的...
标题“右键菜单_新建——管理”涉及到的是Windows操作系统中一个常见的用户界面功能,即右键快捷菜单的管理和优化。这个话题主要关注如何管理和减少在“新建”子菜单中过多的项目,这些项目通常是由安装的软件添加的...
"右键菜单命令提示符" 是一种自定义右键菜单的方式,它允许用户在任意文件夹上直接通过右键菜单启动命令提示符(CMD),从而快速进入该文件夹并执行命令行操作。这种定制可以极大地提高工作效率,尤其是对于经常需要...
"带闪烁和右键菜单功能的VC6托盘程序"是一个使用Microsoft Visual C++ 6.0(简称VC6)开发的项目,它具有两个主要特性:图标闪烁提示和右键菜单。 1. **图标闪烁提示**: - 当应用程序有重要信息或事件需要用户...
在Windows编程中,特别是在使用Microsoft Visual C++ (VC++)开发应用程序时,添加右键菜单是一项常见的需求。右键菜单提供了一种用户友好的交互方式,允许用户通过鼠标右键点击来执行特定的操作。本示例程序将展示...
在描述中提到的“添加右键快捷方式”,是指在Windows操作系统中为绿色Vim创建一个桌面快捷方式,并通过右键菜单将其集成。这样,用户可以直接在文件或文件夹上右键点击,然后选择“用Vim打开”来快速启动编辑器并...
2. **第三方软件**:例如“Context Menu Editor”,“ShellMenuView”等工具可以帮助用户轻松添加、删除和管理右键菜单项,而无需直接编辑注册表。 3. **自定义右键菜单**:开发者也可以为自己的应用程序添加右键...
Unity扩展Hierachry的右键菜单 Unity的Hierachry右键菜单是游戏开发中一个非常重要的功能,它可以帮助开发者快速创建GameObject对象,并对其进行编辑和设置。然而,默认的Hierachry右键菜单功能较少,无法满足...
为了方便快捷,我们可以将“使用Unity打开工程”这一功能添加到文件夹的右键菜单中,这样只需轻轻一点,就能直接启动Unity并加载项目。本教程将详细介绍如何实现这一功能。 首先,你需要了解`.reg`文件。`.reg`文件...
在Windows操作系统中,右键菜单是用户快速执行常用操作的便捷途径。然而,有时由于各种原因,例如系统更新、软件冲突或恶意软件清除,右键菜单可能会失去某些功能,比如“新建”项下的“文本文档”。这会给用户在...
然而,有些用户可能并不需要或者希望移除这些额外的右键菜单项,以简化操作界面。本教程将详细介绍如何恢复或去除ATI显卡右键菜单的注册表项。 首先,我们需要理解注册表在Windows系统中的作用。注册表是Windows...