public boolean eventOccurred(UISWTViewEvent event) { if (listener == null) { UISWTViewEventListener eventListener = null; synchronized (UISWTViewEventListenerHolder.this) { int type = event.getType(); if (type == UISWTViewEvent.TYPE_CREATE) { try { eventListener = cla.newInstance(); UISWTView view = event.getView(); if (eventListener instanceof UISWTViewCoreEventListener) { if (view instanceof UISWTViewCore) { UISWTViewCore coreView = (UISWTViewCore) view; coreView.setUseCoreDataSource(true); } } if (mapSWTViewToEventListener == null) { mapSWTViewToEventListener = new HashMap<UISWTView, UISWTViewEventListener>(); } mapSWTViewToEventListener.put(view, eventListener); if (datasource != null) { if (view instanceof UISWTViewImpl) { UISWTViewImpl swtView = (UISWTViewImpl) view; swtView.triggerEventRaw( UISWTViewEvent.TYPE_DATASOURCE_CHANGED, PluginCoreUtils.convert( datasource, ((UISWTViewImpl) view).useCoreDataSource())); } else { view.triggerEvent(UISWTViewEvent.TYPE_DATASOURCE_CHANGED, datasource); } } } catch (Exception e) { Debug.out(e); return false; } } else if (mapSWTViewToEventListener != null) { if (type == UISWTViewEvent.TYPE_DESTROY) { eventListener = mapSWTViewToEventListener.remove(event.getView()); } else { eventListener = mapSWTViewToEventListener.get(event.getView()); } } } if (eventListener == null) { return false; } return eventListener.eventOccurred(event); } else if (event.getType() == UISWTViewEvent.TYPE_CREATE && (listener instanceof UISWTViewCoreEventListener)) { if (event.getView() instanceof UISWTViewCore) { UISWTViewCore coreView = (UISWTViewCore) event.getView(); coreView.setUseCoreDataSource(true); } } return (listener.eventOccurred(event)); }
public void triggerTabViewsDataSourceChanged(boolean sendParent) { if (tabViews == null || tabViews.size() == 0) { return; } if (sendParent) { for (int i = 0; i < tabViews.size(); i++) { UISWTViewCore view = tabViews.get(i); if (view != null) { view.triggerEvent(UISWTViewEvent.TYPE_DATASOURCE_CHANGED, tv.getParentDataSource()); } } return; } // Set Data Object for all tabs. Object[] dataSourcesCore = tv.getSelectedDataSources(true); Object[] dataSourcesPlugin = null; for (int i = 0; i < tabViews.size(); i++) { UISWTViewCore view = tabViews.get(i); if (view != null) { if (view.useCoreDataSource()) { view.triggerEvent( UISWTViewEvent.TYPE_DATASOURCE_CHANGED, dataSourcesCore.length == 0 ? tv.getParentDataSource() : dataSourcesCore); } else { if (dataSourcesPlugin == null) { dataSourcesPlugin = tv.getSelectedDataSources(false); } view.triggerEvent( UISWTViewEvent.TYPE_DATASOURCE_CHANGED, dataSourcesPlugin.length == 0 ? PluginCoreUtils.convert(tv.getParentDataSource(), false) : dataSourcesPlugin); } } } }
public void triggerTabViewDataSourceChanged(UISWTViewCore view) { if (view != null) { view.triggerEvent(UISWTViewEvent.TYPE_DATASOURCE_CHANGED, tv.getParentDataSource()); if (view.useCoreDataSource()) { Object[] dataSourcesCore = tv.getSelectedDataSources(true); if (dataSourcesCore.length > 0) { view.triggerEvent( UISWTViewEvent.TYPE_DATASOURCE_CHANGED, dataSourcesCore.length == 0 ? tv.getParentDataSource() : dataSourcesCore); } } else { Object[] dataSourcesPlugin = tv.getSelectedDataSources(false); if (dataSourcesPlugin.length > 0) { view.triggerEvent( UISWTViewEvent.TYPE_DATASOURCE_CHANGED, dataSourcesPlugin.length == 0 ? PluginCoreUtils.convert(tv.getParentDataSource(), false) : dataSourcesPlugin); } } } }