package com.netifera.platform.host.processes.probe.ui;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.eclipse.jface.action.IAction;
import com.netifera.platform.api.log.ILogManager;
import com.netifera.platform.api.log.ILogger;
import com.netifera.platform.api.model.IShadowEntity;
import com.netifera.platform.api.probe.IProbe;
import com.netifera.platform.host.internal.processes.ui.Activator;
import com.netifera.platform.host.processes.IProcessManagerFactory;
import com.netifera.platform.model.ProbeEntity;
import com.netifera.platform.ui.api.actions.IEntityActionProvider;
public class EntityActionProvider implements IEntityActionProvider {
private ILogger logger;
private IProcessManagerFactory processManagerFactory;
public List<IAction> getActions(IShadowEntity shadow) {
List<IAction> actions = new ArrayList<IAction>();
if(shadow instanceof ProbeEntity) {
ProbeEntity probeEntity = (ProbeEntity) shadow;
IProbe probe = Activator.getInstance().getProbeManager().getProbeById(probeEntity.getProbeId());
if(probe != null && probe.isConnected())
actions.add(new OpenProbeProcessViewAction(logger, probe, processManagerFactory));
}
return actions;
}
public List<IAction> getQuickActions(IShadowEntity shadow) {
return Collections.emptyList();
}
protected void setLogManager(ILogManager logManager) {
logger = logManager.getLogger("Probe Actions");
}
protected void unsetLogManager(ILogManager logManager) {
}
protected void setProcessManagerFactory(IProcessManagerFactory factory) {
this.processManagerFactory = factory;
}
protected void unsetProcessManagerFactory(IProcessManagerFactory factory) {
}
}