package org.marketcetera.photon.internal.strategy.engine.sa.ui.workbench;
import org.eclipse.core.runtime.IProgressMonitor;
import org.marketcetera.photon.commons.ui.workbench.AbstractSelectionHandler;
import org.marketcetera.photon.strategy.engine.model.core.ConnectionState;
import org.marketcetera.photon.strategy.engine.model.sa.StrategyAgentEngine;
import org.marketcetera.util.misc.ClassVersion;
import com.google.common.base.Predicate;
/**
* Handler for the {@code
* org.marketcetera.photon.strategy.engine.ui.workbench.connect} command that
* connects the currently selected strategy agent.
*
* @author <a href="mailto:will@marketcetera.com">Will Horn</a>
* @version $Id: ConnectHandler.java 16154 2012-07-14 16:34:05Z colin $
* @since 2.0.0
*/
@ClassVersion("$Id: ConnectHandler.java 16154 2012-07-14 16:34:05Z colin $")
public final class ConnectHandler extends
AbstractSelectionHandler<StrategyAgentEngine> {
/**
* Constructor.
*/
public ConnectHandler() {
super(StrategyAgentEngine.class, Messages.CONNECT_HANDLER_FAILED,
new Predicate<StrategyAgentEngine>() {
@Override
public boolean apply(StrategyAgentEngine input) {
return input.getConnectionState() == ConnectionState.DISCONNECTED;
}
});
}
@Override
protected void process(StrategyAgentEngine item, IProgressMonitor monitor)
throws Exception {
monitor.setTaskName(Messages.CONNECT_HANDLER__TASK_NAME.getText(item
.getName()));
item.connect();
}
}