/******************************************************************************* * Copyright (c) 2008, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation * Wind River Systems - adapted to use with IToggleBreakpiontsTargetFactory extension *******************************************************************************/ package org.eclipse.debug.ui.actions; import java.util.Set; import org.eclipse.jface.viewers.ISelection; import org.eclipse.ui.IWorkbenchPart; /** * A toggle breakpoints target factory creates one or more toggle breakpoint * targets. The toggle breakpoints targets are used by toggle breakpoint actions * to create breakpoints appropriate for the active editor, debug session, project, * or selection. * *
* Toggle breakpoints target factories are contributed via the
* org.eclipse.debug.ui.toggleBreakpointsTargetFactories
* extension point. Following is an example of a detail pane factory extension:
*
* <extension point="org.eclipse.debug.ui.toggleBreakpointsTargetFactories"> * <toggleTargetFactory * id="com.example.ExampleBreakpointToggleTargetFactory" * class="com.example.BreakpointToggleTargetFactory"> * <enablement> * <!-- Test the active debug context. Enable only if the active context * is an element from "Example" debugger, or if there is no debug context * associated with the context element. Also enable if debug context is * empty --> * <with variable="debugContext"> * <iterate> * <or> * <test property="org.eclipse.debug.ui.getModelIdentifier" value="com.example.model"/> * <test property="org.eclipse.debug.ui.getModelIdentifier" value=""/> * </or> * </iterate> * </with> * <!-- If there is no active debug context. Enable the breakpoint toggle for * the "Example" editors --> * <instanceof value="com.example.Editor"/> * </enablement> * </toggleTargetFactory> * </extension> ** *
*
* Clients contributing a toggle breakpoints target factory are intended to
* implement this interface.
*
* @see IToggleBreakpointsTarget
* @see IToggleBreakpointsTargetExtension
* @see org.eclipse.debug.ui.actions.IToggleBreakpointsTargetManager
* @since 3.5
*/
public interface IToggleBreakpointsTargetFactory {
/**
* Returns all possible types of toggle breakpoints targets that this
* factory can create for the given selection and part, possibly empty.
* Toggle breakpoints targets are returned as a set of IDs.
*
* @param part The active part.
* @param selection The current selection
* @return Set of String
IDs for possible toggle breakpoint
* targets, possibly empty
*/
public Setnull
if this factory has no
* preference.
*
* @param part The active part.
* @param selection The current selection
* @return a breakpoint toggle target identifier or null
*/
public String getDefaultToggleTarget(IWorkbenchPart part, ISelection selection);
/**
* Creates and returns a toggle breakpoint target corresponding to the
* given identifier that this factory can produce (according to
* {@link #getToggleTargets}).
*
* @param targetID The id of the toggle target to be created
* @return toggle target or null
if one could not be created
*/
public IToggleBreakpointsTarget createToggleTarget(String targetID);
/**
* Returns a human readable name for the breakpoint toggle target associated with the
* given ID. Used to populate the context menu with meaningful names of the types of
* breakpoints created by the given target.
*
* @param targetID toggle breakpoints target identifier
* @return toggle target name
*/
public String getToggleTargetName(String targetID);
/**
* Returns a description for the breakpoint toggle target associated with the
* given ID or null
if none.
*
* @param targetID toggle breakpoints target identifier
* @return toggle target name or null
if none
*/
public String getToggleTargetDescription(String targetID);
}