package org.marketcetera.photon.internal.strategy.engine.ui.workbench;
import org.eclipse.core.runtime.IAdapterFactory;
import org.eclipse.ui.model.IWorkbenchAdapter;
import org.eclipse.ui.model.WorkbenchAdapter;
import org.marketcetera.photon.strategy.engine.model.core.DeployedStrategy;
import org.marketcetera.util.misc.ClassVersion;
/* $License$ */
/**
* Adapts deployed strategies to Eclipse platform interfaces.
*
* @author <a href="mailto:will@marketcetera.com">Will Horn</a>
* @version $Id: DeployedStrategyAdapterFactory.java 16154 2012-07-14 16:34:05Z colin $
* @since 2.0.0
*/
@ClassVersion("$Id")
public class DeployedStrategyAdapterFactory implements IAdapterFactory {
@Override
public Object getAdapter(Object adaptableObject,
@SuppressWarnings("unchecked") Class adapterType) {
if (adapterType.equals(IWorkbenchAdapter.class)
&& adaptableObject instanceof DeployedStrategy) {
return mAdapter;
}
return null;
}
@Override
public Class<?>[] getAdapterList() {
return new Class[] { IWorkbenchAdapter.class };
}
private final IWorkbenchAdapter mAdapter = new WorkbenchAdapter() {
@Override
public String getLabel(Object o) {
DeployedStrategy strategy = (DeployedStrategy) o;
return Messages.STRATEGY_ENGINES_ADAPTER_FACTORY_DEPLOYED_STRATEGY_LABEL
.getText(strategy.getInstanceName(), strategy.getEngine()
.getName());
}
};
}