package net.sf.eclipsefp.haskell.debug.ui.internal.debug;
import java.util.HashSet;
import java.util.Set;
import net.sf.eclipsefp.haskell.debug.core.internal.HaskellDebugCore;
import net.sf.eclipsefp.haskell.debug.ui.internal.util.UITexts;
import org.eclipse.debug.ui.actions.IToggleBreakpointsTarget;
import org.eclipse.debug.ui.actions.IToggleBreakpointsTargetFactory;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IWorkbenchPart;
/**
* Not sure this is really needed in anything
* @author JP Moresmau
*
*/
public class HaskellToggleBreakpointTargetFactory implements
IToggleBreakpointsTargetFactory {
@Override
public IToggleBreakpointsTarget createToggleTarget( final String targetID ) {
if (HaskellDebugCore.ID_HASKELL_DEBUG_MODEL.equals( targetID )){
return new HaskellLineBreakpointAdapter();
}
return null;
}
@Override
public String getDefaultToggleTarget( final IWorkbenchPart part,
final ISelection selection ) {
if (HaskellLineBreakpointAdapter.getEditor( part )!=null){
return HaskellDebugCore.ID_HASKELL_DEBUG_MODEL;
}
return null;
}
@Override
public String getToggleTargetDescription( final String targetID ) {
if (HaskellDebugCore.ID_HASKELL_DEBUG_MODEL.equals( targetID )){
return UITexts.breakpoint_toggle_description;
}
return null;
}
@Override
public String getToggleTargetName( final String targetID ) {
if (HaskellDebugCore.ID_HASKELL_DEBUG_MODEL.equals( targetID )){
return UITexts.breakpoint_toggle;
}
return null;
}
@Override
public Set<String> getToggleTargets( final IWorkbenchPart part, final ISelection selection ) {
Set<String> ret=new HashSet<>();
if (HaskellLineBreakpointAdapter.getEditor( part )!=null){
ret.add(HaskellDebugCore.ID_HASKELL_DEBUG_MODEL);
}
return ret;
}
}