/** * The contents of this file are subject to the license and copyright * detailed in the LICENSE file at the root of the source * tree and available online at * * https://github.com/keeps/roda */ package org.roda.wui.client.common.actions; import org.roda.core.data.v2.index.IsIndexed; import org.roda.core.data.v2.index.select.SelectedItems; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Widget; public interface Actionable<T extends IsIndexed> { static interface Action<T> { } public enum ActionImpact { NONE, UPDATED, DESTROYED; } // SINGLE OBJECT boolean canAct(Action<T> action, T object); void act(Action<T> action, T object); void act(Action<T> action, T object, AsyncCallback<ActionImpact> callback); // MULTIPLE OBJECTS boolean canAct(Action<T> action, SelectedItems<T> object); void act(Action<T> action, SelectedItems<T> objects); void act(Action<T> action, SelectedItems<T> objects, AsyncCallback<ActionImpact> callback); // Layout Widget createActionsLayout(T object, AsyncCallback<ActionImpact> callback); Widget createActionsLayout(SelectedItems<T> objects, AsyncCallback<ActionImpact> callback); }