LaunchModeAction.java

package com.codeaffine.extras.launch.internal.dialog;

import org.eclipse.debug.core.ILaunchMode;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;

public class LaunchModeAction extends Action {

  private final LaunchModeSetting launchModeSetting;
  private final ILaunchMode launchMode;

  public LaunchModeAction( LaunchModeSetting launchModeSetting, ILaunchMode launchMode ) {
    super( launchMode.getLabel(), IAction.AS_RADIO_BUTTON );
    this.launchModeSetting = launchModeSetting;
    this.launchMode = launchMode;
    update();
  }

  public ILaunchMode getLaunchMode() {
    return launchMode;
  }

  @Override
  public void run() {
    launchModeSetting.setLaunchModeId( launchMode.getIdentifier() );
    update();
  }

  public void update() {
    setChecked( launchMode.equals( launchModeSetting.getLaunchMode() ) );
  }
}