java控件可见属性_java - Eclipse插件:Property Tester(使命令有条件地可见)无法按预期方式工作 - 堆栈内存溢出...

我正在开发Eclipse RCP。 我定义了一个弹出菜单项命令。 为了控制命令的可见性,我使用属性测试器设置了测试条件。 除了第一次打开菜单外,此属性测试器使命令不可见。 意味着如果我是第一次打开弹出菜单,则无论属性测试器如何,该特定命令都可见。 当我第二次打开该菜单时,它将根据属性测试器确定可见性。 谁能解释我为什么会这样?

以下是我正在尝试的完整代码。

命令

id="com.eclipse-tips.commandState.alignCommand"

name="Align Command">

name="default"

value="false">

name="persisted"

value="false">

处理程序

class="com.gnr.handlers.AlignCommand"

commandId="com.eclipse-tips.commandState.alignCommand">

菜单贡献

commandId="com.eclipse-tips.commandState.alignCommand"

label="Align Command"

style="toggle">

checkEnabled="true">

variable="selection">

type="org.eclipse.core.resources.IFile">

property="com.gnr.testgen.checkInputFile_Align"

value="true">

性能测试仪

class="com.gnr.testgen.UserPropertyTester_Align"

id="com.gnr.testgen.user.propertyTester_Align"

namespace="com.gnr.testgen"

properties="checkInputFile_Align"

type="org.eclipse.core.resources.IFile">

以下是处理程序代码

public class AlignCommand extends AbstractHandler {

@Override

public Object execute(ExecutionEvent event) throws ExecutionException {

Command command = event.getCommand();

State state = command.getState(RegistryToggleState.STATE_ID);

boolean oldValue = ((Boolean) state.getValue()).booleanValue();

state.setValue(new Boolean(!oldValue));

return null;

}

}

最后PropertyTester

public class UserPropertyTester_Align extends PropertyTester {

public UserPropertyTester_Align() { }

@Override

public boolean test(Object receiver, String property, Object[] args,

Object expectedValue) {

return false;

}

}

在这里,您可以看到,属性测试器返回“ false”。 这意味着命令不应该可见,但是不会发生。 第一次打开弹出菜单时,该命令可见;第二次打开弹出菜单时,该命令不可见。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在这个代码中出现的syntax error是指语法错误。具体地,在__tester__.java文件的第62行出现了一个语法错误。错误的具体描述是:“cannot find symbol”,表示找不到符号。而这个符号是“resize”。所以,代码在这个地方无法识别和找到resize这个方法或变量。 要解决这个问题,我们需要查看代码并确定是什么缺少了resize这个符号。首先,我们需要验证resize是否是一个方法还是一个变量。如果resize是一个方法,我们需要查找resize的定义部分,并确保它正确地被声明和实现。如果resize是一个变量,我们需要检查是否有一个与之对应的变量声明和初始化。 另外,我们还需要考虑resize这个符号是否属于当前作用域。在Java中,每个变量和方法都有其作用域,表示可以访问和使用这些变量和方法的代码块。如果resize的定义不在当前作用域内,那么我们需要引入并初始化resize所属的对象。 总之,syntax error: cannot find symbol错误通常是由于无法找到符号(变量或方法)的定义而引起的。我们需要检查代码,找出缺少resize符号的原因,并采取正确的措施来解决这个问题。 ### 回答2: 在给出的代码中,出现了语法错误。错误的位置发生在__tester__.java文件的第62行。 错误消息"cannot find symbol"表示找不到符号。具体来说,在第62行中使用了一个resize方法,但是该方法没有定义或声明过。因此,编译器无法找到resize方法所属的符号。 要解决这个错误,您需要确认resize方法是否存在,并且确保在使用之前已经正确定义和实现了该方法。如果resize方法是在其他文件中定义的,您需要确保正确地导入该文件。另外,也需要检查resize方法的参数和返回类型,以确保它们与调用处的期望一致。 总之,根据给出的错误信息来看,首先应当检查resize方法的存在性、定义性和导入性。如果这个方法确实不存在或者定义有误,需要进行相应的修复。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值