package fr.opensagres.nosql.ide.ui.internal.actions.servers;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.viewers.ISelectionProvider;
import fr.opensagres.nosql.ide.core.extensions.IServerType;
import fr.opensagres.nosql.ide.core.model.IServer;
import fr.opensagres.nosql.ide.ui.internal.ImageResources;
import fr.opensagres.nosql.ide.ui.internal.actions.AbstractTreeNodeActionGroup;
public class RunServerAction extends AbstractTreeNodeActionGroup {
private final Map<IServerType, Collection<Action>> actions;
public RunServerAction(boolean start, ISelectionProvider provider,
Map<IServerType, Collection<Action>> actions) {
super(provider, "");
this.actions = actions;
if (start) {
setImageDescriptor(ImageResources
.getImageDescriptor(ImageResources.IMG_ELCL_START));
setHoverImageDescriptor(ImageResources
.getImageDescriptor(ImageResources.IMG_CLCL_START));
setDisabledImageDescriptor(ImageResources
.getImageDescriptor(ImageResources.IMG_DLCL_START));
} else {
setImageDescriptor(ImageResources
.getImageDescriptor(ImageResources.IMG_ELCL_STOP));
setHoverImageDescriptor(ImageResources
.getImageDescriptor(ImageResources.IMG_CLCL_STOP));
setDisabledImageDescriptor(ImageResources
.getImageDescriptor(ImageResources.IMG_DLCL_STOP));
}
}
@Override
protected Collection<Action> getActions(Object obj) {
if (obj instanceof IServer) {
IServerType serverType = ((IServer) obj).getServerType();
return actions.get(serverType);
}
return Collections.emptyList();
}
@Override
protected Action getDefaultAction(Object obj) {
if (obj instanceof IServer) {
// IServerType serverType = ((IServer) obj).getServerType();
// return defaultActions.get(serverType);
return null;
}
return null;
}
}