package org.orienteer.core.widget;
import java.util.List;
import java.util.Map;
import org.apache.wicket.model.IModel;
import com.google.common.base.Predicate;
import com.google.inject.ImplementedBy;
import com.orientechnologies.orient.core.metadata.schema.OClass;
import com.orientechnologies.orient.core.record.impl.ODocument;
/**
* Manager to help load required dashboard
*/
@ImplementedBy(DefaultDashboardManager.class)
public interface IDashboardManager {
public ODocument createWidgetDocument(IWidgetType<?> widgetType);
public ODocument createWidgetDocument(Class<? extends AbstractWidget<?>> widgetClass);
public <T> List<String> listTabs(String domain, Predicate<IWidgetType<T>> filter);
public ODocument getExistingDashboard(String domain, String tab, IModel<?> dataModel);
public ODocument getExistingDashboard(String domain, String tab, IModel<?> dataModel, Map<String, Object> criteriesMap);
public ODocument getExistingDashboard(String domain, String tab, IModel<?> dataModel, OClass oClass);
public ODocument getExistingDashboard(String domain, String tab, IModel<?> dataModel, OClass oClass, Map<String, Object> criteriesMap);
}