Package org.codemap.commands

Source Code of org.codemap.commands.CoverageColoring

package org.codemap.commands;

import static org.codemap.commands.Command.makeCommandId;

import org.codemap.ByPackageColorScheme;
import org.codemap.CodemapCore;
import org.codemap.MapPerProject;
import org.codemap.mapview.action.CommandAction;
import org.codemap.mapview.action.ShowCoverageAction;
import org.codemap.mapview.action.ShowDefaultColorsAction;
import org.codemap.mapview.action.ShowHeatMapColorsAction;
import org.codemap.mapview.action.ShowPackageColorsAction;
import org.codemap.resources.MapValues;

public class ColoringCommand extends DropDownCommand<AbstractColoringCommand> implements IConfigureMapValues {
   
    private static final String COLORING_KEY = makeCommandId("coloring");

    public ColoringCommand(MapPerProject mapPerProject) {
        super(mapPerProject);
        add(new DefaultColoring(this));
        add(new ByPackageColoring(this, getMyMap()));
        add(new HeatMapColoring(this));
        add(new CoverageColoring(this));
    }

    @Override
    protected String getKey() {
        return COLORING_KEY;
    }

    @Override
    protected Class<?> getDefaultCommandClass() {
        return DefaultColoring.class;
    }
}

abstract class AbstractColoringCommand extends Command {

    private ColoringCommand coloring;

    public AbstractColoringCommand(ColoringCommand coloringCommand) {
        coloring = coloringCommand;
        enabled = getColoring().getEnabled(this);
    }

    protected ColoringCommand getColoring() {
        return coloring;
    }

    @Override
    protected void applyState() {
        if (isEnabled()) {
            getColoring().setEnabled(this);
        }
        getColoring().applyState();
    }

    @Override
    protected boolean initEnabled() {
        return false;
    }
}

class DefaultColoring extends AbstractColoringCommand {

    public DefaultColoring(ColoringCommand coloringCommand) {
        super(coloringCommand);
    }

    @Override
    public void configure(MapValues mapValues) {
        if (!isEnabled()) return;
        mapValues.colorScheme.setValue(CodemapCore.getPlugin().getDefaultColorScheme());       
    }

    @Override
    protected Class<? extends CommandAction> getActionID() {
        return ShowDefaultColorsAction.class;
    }
}

class ByPackageColoring extends AbstractColoringCommand {

    private MapPerProject map;

    public ByPackageColoring(ColoringCommand coloringCommand, MapPerProject mapPerProject) {
        super(coloringCommand);
        map = mapPerProject;
    }

    @Override
    public void configure(MapValues mapValues) {
        if (!isEnabled()) return;
        mapValues.colorScheme.setValue(new ByPackageColorScheme(map));
       
    }

    @Override
    protected Class<? extends CommandAction> getActionID() {
        return ShowPackageColorsAction.class;
    }
}

class HeatMapColoring extends AbstractColoringCommand {

    public HeatMapColoring(ColoringCommand coloringCommand) {
        super(coloringCommand);
    }

    @Override
    public void configure(MapValues mapValues) {
        CodemapCore.getPlugin().getController().utils().setHeatmapEnabled(isEnabled());
    }

    @Override
    protected Class<? extends CommandAction> getActionID() {
        return ShowHeatMapColorsAction.class;
    }
}

class CoverageColoring extends AbstractColoringCommand {

    public CoverageColoring(ColoringCommand coloringCommand) {
        super(coloringCommand);
    }

    @Override
    public void configure(MapValues mapValues) {
        CodemapCore.getPlugin().getController().utils().setCoverageEnabled(isEnabled());
    }

    @Override
    protected Class<? extends CommandAction> getActionID() {
        return ShowCoverageAction.class;
    }
}
TOP

Related Classes of org.codemap.commands.CoverageColoring

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.