package com.onaro.sanscreen.client.view; import java.lang.reflect.InvocationTargetException; import java.util.List; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IProgressMonitor; import com.onaro.sanscreen.client.view.tabular.NavigationInfo; import com.onaro.sanscreen.server.interfaces.data.Context; import com.onaro.sanscreen.server.interfaces.util.UpdateTimeData; public interface IViewDirectorLoader { public void addListener(IViewDirectorLoaderListener listener); public void removeListener(IViewDirectorLoaderListener listener); /** * Loads the contents of the view for the given selection and context. * * @param context * the time context to use. * @param ignoreCache */ public void loadViewData(IProgressMonitor progressMonitor, List selectedAdaptables, NavigationInfo viewFlag, Context context, boolean ignoreCache) throws InterruptedException, InvocationTargetException; /** * Clear the data of the view. */ public void clearViewData(); /** * Determine whether the view needs to be reloaded based on the changes to the given RefreshData * @param oldData the data to compare with * @param newData the latest refresh data * @return true if the view should be refreshed, false otherwise */ public boolean needsFullRefresh(UpdateTimeData oldData, UpdateTimeData newData); }