我正在使用带有客户列表的TreeViewer。我在TreeViewer中添加了DoubleClickListener。
this.treeViewer.addDoubleClickListener(new IDoubleClickListener() {
@Override
public void doubleClick(DoubleClickEvent event) {
IStructuredSelection thisSelection = (IStructuredSelection) event
.getSelection();
Object selectedNode = thisSelection.getFirstElement();
if (selectedNode instanceof ICustomer) {
ICustomer customer = (ICustomer) selectedNode;
selectionService.setSelection(customer);
perspective = (MPerspective) modelService
.find("de.checkpoint.rinteln.carlofon.perspective.customer",
app);
}
if (perspective != null) {
partService.switchPerspective(perspective);
}
}
});
在Customer-Perspective中,我有2个View,它们使用选定的客户从数据库加载其数据(订单和提醒)。
在客户视图中,一切正常。但是一旦我移到下一个视图(提醒或订单),选择列表为Null,我没有得到。
@Inject
void setSelection(
@Optional @Named(IServiceConstants.ACTIVE_SELECTION) ICustomer customer) {
if (customer != null) {
idText.setText("" + customer.getCustomerId());
customerNameText
.setText(customer.getFirstname() + " " + customer.getLastname());
steetText.setText(customer.getStreet());
cityText.setText(customer.getCity());
steetCodeText.setText("" + customer.getCityCode());
} else {
// TODO Clear View!
}
}
在“提醒”视图(与“客户”视图相同的角度)中,所选“客户”为空
@Inject
void setSelection(
@Optional @Named(IServiceConstants.ACTIVE_SELECTION) ICustomer customer) {
if (customer != null) {
super.treeViewer.setInput(service.loadAll());
} else {
// TODO Clear View!
}
}
哪个导致了我的问题,我想念什么吗?我不应该在不同的视图中使用相同的选择吗?
我必须补充,两个视图都扩展了在其中实现IDoubleClickListener的AbstractView。