- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在努力使用以下 Eclipse RCP 命令:
org.eclipse.ui.edit.cut
org.eclipse.ui.edit.copy
org.eclipse.ui.edit.paste
我将它们用作工具栏中的命令贡献,但当这些命令的“handled
”状态更改时,UIElement(工具栏项)不会更新。
为了测试,我使用轮询机制来验证这些命令的状态是否真的根据当前聚焦的元素而改变,我发现处理程序保持不变但处理程序的“已处理”状态正确改变,导致命令“已处理”状态也可以正确更改。
唯一的问题是,这些状态更改中的任何一个都不会导致通知(无论是在命令的 ICommandListener
上,还是在处理程序的 IHandlerListener
上>),因此 UIElement 不会更新。
下面是一些用于观察命令状态的测试代码:
ICommandService commandService = (ICommandService) PlatformUI.getWorkbench().getService(ICommandService.class);
final String commandId="org.eclipse.ui.edit.copy";
Command command = commandService.getCommand(commandId);
command.addCommandListener(new ICommandListener() {
public void commandChanged (CommandEvent commandEvent) {
System.out.println(">> Command changed: " + commandId);
}
});
我是不是遗漏了什么,或者这是剪切/复制/粘贴处理程序实现中的错误?有什么见解吗?
编辑:命令一直处于启用状态,处理程序永远不会被交换,只有处理程序的“handled
”状态(因此也是 commmand 的“handled
”状态)根据哪个 ui 元素具有焦点而变化。但是,当此状态更改时没有通知。这导致工具栏按钮始终处于启用状态,按下它们将导致 org.eclipse.core.commands.NotHandledException: There is no handler to execute for command
。
最佳答案
为剪切/复制/粘贴命令注册的处理程序是 org.eclipse.ui.internal.handlers.WidgetMethodHandler
。此处理程序检查是否在当前显示的焦点控件上声明了给定方法。执行时,该处理程序将使用反射调用该方法。
来自 WidgetMethodHandler 的片段:
public final boolean isHandled() {
return getMethodToExecute() != null;
}
getMethodToExecute()
将使用 Display.getCurrent().getFocusControl()
定位当前焦点控件,然后检查是否在其上声明了给定的触发方法.
org.eclipse.swt.widgets.Text
等小部件有cut()
、copy()
和paste( )
方法,因此当焦点位于此类小部件上时,处理程序将为 isHandled()
返回“true”。
然而,当当前焦点控件发生变化时,此处理程序并不知道(我认为甚至没有一种方法可以在显示器上观察到这一点),因此无法通知其动态“isHandled”状态的变化。
这导致剪切/复制/粘贴命令适用于弹出菜单,但它们在工具栏中使用时问题很大,因为当处理程序没有通知时,它们的 UI 元素无法正确更新。
这让我要么不使用工具栏中的这些命令,要么使用轮询机制来更新 ui 元素(这也很糟糕且容易出错)。 :-(
关于 eclipse RCP : how to observe the states of the cut/copy/paste commands?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/909895/
所以我在 python 中有这段代码,目前它只返回切割杆的最大值。我怎样才能修改它以让我也知道切割的位置?它采用一个价格列表,其指数 +1 对应于每个长度的杆的值(value),n 对应于杆的长度。
我正在从 bash 中的 NFS 位置获取服务器和路径,如下所示: #!/bin/bash ST="/net/10.111.111.111/path/to/some/dir" echo $ST SER
我已经创建了一个脚本来枚举目录及其下的所有文件。我想通过使用 pv 添加一些进度反馈,因为我通常从根目录使用它。 问题是 find 在它的时间输出 (%TT) 中总是包含小数秒,但我不想记录那么多细节
我不是java编码员,但需要一个可以执行的命令 cut -d "/" -f1,2,3 MyFile 有什么想法吗? 最佳答案 读取文件。在 / 上拆分每一行,然后打印出前三部分。 BufferedRe
有谁知道R如何在cut函数中选择有效位数? y y breaks1 table(cut(y, breaks = breaks1, dig.lab = min(nchar(breaks1)))) #
我创建了 pycharm Ubuntu中的命令,但我有一个小问题。当我执行命令时,pycharm 打开,但它仍然与终端相关。我的意思是如果我关闭终端,pycharm 最终也会关闭。有没有一种简单的方法
Unix cut command 需要一个字段列表,但不是我需要的顺序。 $ echo 1,2,3,4,5,6 | cut -d, -f 1,2,3,5 1,2,3,5 $ echo 1,2,3,4,
我正在尝试使用 Unix cut删除每行的前两个字段。我有表单的输入行 ( token )(空格)( token )(大量文本) 问题是有退出n每行 token ,所以我不能做这样的事情 cut -f
我正在用 Python 实现一个 PEG 解析器生成器,到目前为止我已经取得了成功,除了“cut”功能,任何了解 Prolog 的人都必须知道。 这个想法是,在解析了剪切 ( ! ) 符号后,不应在同
我目前正在为剪切而苦苦挣扎......我不知道是否还有其他功能。 我有一个包含值的大表和一个包含阈值的矩阵或向量。 假设我有一个包含阈值 0.6、0.8、1.0、1.2、1.4 的矩阵我想找出一个值(
我想使用 cut() 中定义的中断来剪切我的数据: x = c(-10:10) cut(x, c(-2,4,6,7)) [1] (-2,4] (-
我正在使用 cut()以 0.05 的增量对从负值到正值的列表进行分类。但是,在 -0.05 到 0.05 范围内对零的处理会根据 cut 函数中使用的范围(参见下面的示例)而变化,因此我得到 [-0
我正在探索 cut 函数的使用,并尝试将以下基本向量切割成 10 个断点。我可以做到,但我很困惑为什么我的初始中断发生在 -0.1 而不是 0: test_vec <- 0:10 test_vec2
我有一个大的制表符分隔文件(10TB)。 我想按某些列削减文件,我想使用我的24个内核中的每一个并行执行此操作。 cut -f1,2,3 file > out 关于如何使用多个内核或并行执行此操作的任
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
我已经阅读了有关此主题的许多主题,但我在那里找到的代码似乎不起作用。我正在尝试禁用 Excel 电子表格中的“剪切”功能,并且我希望该图标变灰。 我一直在使用这段代码: Sub WorkSheet_A
我正在尝试使用“剪切”命令分析风力数据, 我要设置16个风向 我如何将方向 348.75 至 11.25 切割为“0”标签?谢谢 埃利亚夫 最佳答案 这可能不是一个通用的临时解决方案,但您可以通过将
我是编程新手(正在上课),我不确定如何完成这项任务。 “忽略大小写,找到输入中最后一次出现的‘a’,并删除其后面的所有字符。如果单词中没有‘a’,则删除除前两个字符之外的所有字符(提醒:不要使用if语
我有这样的文字: word1 word2 word3 word4 一对单词之间可能有多个空格,我想从每一行中获取一些单词列。当我使用 cat 文件时 | cut -d ' ' -f1,2,4 似
编辑:添加 defT 使用 pandas.cut 是否会改变 pandas.DataFrame 的结构。 我按以下方式使用 pandas.cut 将单个年龄年份映射到年龄组,然后进行聚合。但是,聚合不
我是一名优秀的程序员,十分优秀!