All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jsoar.debugger.actions.SetBreakpointAction Maven / Gradle / Ivy

/*
 * Copyright (c) 2008  Dave Ray 
 *
 * Created on Oct 25, 2008
 */
package org.jsoar.debugger.actions;

import java.awt.event.ActionEvent;
import java.util.List;

import org.jsoar.debugger.Images;
import org.jsoar.kernel.Production;
import org.jsoar.util.adaptables.Adaptables;

/**
 * @author ray
 */
public class SetBreakpointAction extends AbstractDebuggerAction
{
    private static final long serialVersionUID = -1460902354871319429L;

    /**
     * @param manager the owning action manager
     */
    public SetBreakpointAction(ActionManager manager)
    {
        super(manager, "Add breakpoint", Images.PRODUCTION_BREAK, Production.class, true);
        
        setToolTip("Set breakpoint on production");
    }

    /* (non-Javadoc)
     * @see org.jsoar.debugger.actions.AbstractDebuggerAction#update()
     */
    @Override
    public void update()
    {
        final List prods = Adaptables.adaptCollection(getSelectionManager().getSelection(), Production.class);
        setEnabled(prods.size() == 1);
        if(prods.size() == 1)
        {
            setLabel(prods.get(0).isBreakpointEnabled() ? "Remove breakpoint" : "Add breakpoint");
        }
    }

    /* (non-Javadoc)
     * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
     */
    @Override
    public void actionPerformed(ActionEvent arg0)
    {
        final List prods = Adaptables.adaptCollection(getSelectionManager().getSelection(), Production.class);
        if(prods.isEmpty())
        {
            return;
        }
        prods.get(0).setBreakpointEnabled(!prods.get(0).isBreakpointEnabled());
        update();
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy