private void transferListeners(IModel source, IModel target) { if (source instanceof IModelChangeProviderExtension && target instanceof IModelChangeProviderExtension) { IModelChangeProviderExtension smodel = (IModelChangeProviderExtension) source; IModelChangeProviderExtension tmodel = (IModelChangeProviderExtension) target; // first fire one last event to all the listeners to // refresh smodel.fireModelChanged(new ModelChangedEvent(smodel, IModelChangedEvent.WORLD_CHANGED, null, null)); // now pass the listener to the target model smodel.transferListenersTo(tmodel, listener -> { if (listener instanceof IFormPart || listener instanceof FormOutlinePage) return true; return false; }); } }
@Override public void transferListenersTo(IModelChangeProviderExtension target, IModelChangedListenerFilter filter) { ArrayList<IModelChangedListener> removed = new ArrayList<>(); for (int i = 0; i < fListeners.size(); i++) { IModelChangedListener listener = fListeners.get(i); if (filter == null || filter.accept(listener)) { target.addModelChangedListener(listener); removed.add(listener); } } fListeners.removeAll(removed); }
public void transferListenersTo(IModelChangeProviderExtension target, IModelChangedListenerFilter filter) { List oldList = (List)fListeners.clone(); for (int i=0; i<oldList.size(); i++) { IModelChangedListener listener = (IModelChangedListener)oldList.get(i); if (filter==null || filter.accept(listener)) { // add the listener to the target target.addModelChangedListener(listener); // remove the listener from our list fListeners.remove(listener); } } }
public void transferListenersTo(IModelChangeProviderExtension target, IModelChangedListenerFilter filter) { ArrayList removed = new ArrayList(); for (int i = 0; i < fListeners.size(); i++) { IModelChangedListener listener = (IModelChangedListener) fListeners.get(i); if (filter == null || filter.accept(listener)) { target.addModelChangedListener(listener); removed.add(listener); } } fListeners.removeAll(removed); }
@Override public void transferListenersTo(IModelChangeProviderExtension target, IModelChangedListenerFilter filter) { @SuppressWarnings("unchecked") List<IModelChangedListener> oldList = (List<IModelChangedListener>) fListeners.clone(); for (int i = 0; i < oldList.size(); i++) { IModelChangedListener listener = oldList.get(i); if (filter == null || filter.accept(listener)) { // add the listener to the target target.addModelChangedListener(listener); // remove the listener from our list fListeners.remove(listener); } } }