我有一个 PanelDataHandler 对象,就像
@Singleton
public class PanelDataHandler {
private List<Panel> panelDetails;
private Integer nextId;
@Inject
public PanelDataHandler(){
panelDetails = new ArrayList<Panel>();
nextId = 0;
}
...
}
现在我的代码中有两个带有不同处理程序的按钮。按钮是保存保存的面板的详细信息,另一个是显示输入的面板的列表。
我经历了很多帖子,而stackoverflow问题无法解决问题
我想创建一个PanelDataHandler pdh
的实例,并在一个处理程序中添加面板,并在另一个处理程序中获取添加的面板列表。
public class PanelSaveEventHandler implements EventHandler {
public void savePanelsList() {
pdh.addPanels();
}
}
获取列表
public class PanelClickEventHandler implements EventHandler{
public void displayPanelGrid() {
MyPagingDataGrid<Panel> grid = new MyPagingDataGrid<Panel>();
grid.setHeight("500px");
grid.setDataList(pdh.getPanelList());
RootPanel.get().add(grid);
}
}
我的Ginjector界面
@GinModules({ DispatchAsyncModule.class, ClientModule.class })
public interface ClientGinjector extends Ginjector {
...
...
AsyncProvider<PanelDataHandler> getPanelDataHandler();
}
我的EntryPoint是
public class PanelEstimator implements EntryPoint {
private final ClientGinjector ginjector = GWT.create(ClientGinjector.class);
@Override
public void onModuleLoad() {
// This is required for Gwt-Platform proxy's generator
DelayedBindRegistry.bind(ginjector);
ginjector.getPlaceManager().revealCurrentPlace();
System.out.println(ginjector.getPanelDataHandler());
}
}
我在哪里以及如何为PanelDataHandler
创建实例,以便可以按上述方式使用
提前感谢您的答案
答案 0 :(得分:1)
最后得到了我的问题的解决方案,感谢宝贵的建议 对于使用单个对象,必须注入,即
@注入
PanelDataHandler pdh;
它不是
PanelDataHandler pdh = new PanelDataHandler();