我有一个实现"IsTreeItem"的对象。对象显示为两级树项目。每个树项都使用一个复选框构建。我需要知道复选框何时更改值,所以我正在收听ValueChangedEvents。
第一个问题是,使用此类项构建的树只触发SelectionEvents。如果选择正在更改复选框,则ValueChanged事件随后会被激发,因此无法从树中侦听"IsTreeItem"内的事件。
所以我让我的"IsTreeItem"激发自己的元素。因此,我(字段)注入了一个EventBus,并使用它来激发事件if"ValueChanged"。问题是我的"IsTreeItem"是一个从服务器发送的对象(它在共享包中并且是可序列化的)。对象在服务器上实例化(EventBus未被实例化),并且在客户端上调用"asTreeItem"。
有没有办法以某种方式将EventBus注入方法TreeItem中作为TreeItem()?或者有没有其他方法可以让外面的人知道复选框是否更改了值。
您必须在Ginjector
接口中创建一个方法,该方法将这样一个实例作为参数,返回类型为void
请注意,由于在客户端上不进行反射,GIN将只注入用作参数类型的类(及其超类)中的字段和方法。
@GinModules(MyGinModule.class)
interface MyGinjector extends Ginjector {
…
void injectIsTreeItemMembers(IsTreeItem item);
}