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

de.uka.ilkd.key.gui.testgen.TestgenExtension Maven / Gradle / Ivy

/* This file is part of KeY - https://key-project.org
 * KeY is licensed under the GNU General Public License Version 2
 * SPDX-License-Identifier: GPL-2.0-only */
package de.uka.ilkd.key.gui.testgen;

import java.awt.event.KeyEvent;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import javax.swing.*;

import de.uka.ilkd.key.core.KeYMediator;
import de.uka.ilkd.key.gui.MainWindow;
import de.uka.ilkd.key.gui.extension.api.KeYGuiExtension;
import de.uka.ilkd.key.gui.keyshortcuts.KeyStrokeManager;
import de.uka.ilkd.key.gui.keyshortcuts.KeyStrokeSettings;
import de.uka.ilkd.key.gui.settings.SettingsProvider;
import de.uka.ilkd.key.macros.TestGenMacro;

import org.jspecify.annotations.NonNull;

/**
 * @author Alexander Weigl
 * @version 1 (9/16/20)
 */
@KeYGuiExtension.Info(name = "Test case generation", description = "key.testgen",
    experimental = false)
public class TestgenExtension
        implements KeYGuiExtension, KeYGuiExtension.KeyboardShortcuts, KeYGuiExtension.MainMenu,
        KeYGuiExtension.Startup, KeYGuiExtension.Toolbar, KeYGuiExtension.Settings {

    private TestGenerationAction actionTestGeneration;
    private CounterExampleAction actionCounterExample;

    private void init(MainWindow window) {
        this.actionCounterExample = new CounterExampleAction(window);
        this.actionTestGeneration = new TestGenerationAction(window);
    }

    @Override
    public @NonNull List getMainMenuActions(@NonNull MainWindow mainWindow) {
        init(mainWindow);
        return Arrays.asList(actionCounterExample, actionTestGeneration);
    }

    @Override
    public void init(MainWindow window, KeYMediator mediator) {
        init(window);
        KeyStrokeSettings.defineDefault(TestGenMacro.class, KeyStroke.getKeyStroke(KeyEvent.VK_T,
            KeyStrokeManager.MULTI_KEY_MASK));
    }

    @Override
    public @NonNull JToolBar getToolbar(MainWindow mainWindow) {
        JToolBar tb = new JToolBar("test generation");
        tb.add(actionCounterExample);
        tb.add(actionTestGeneration);
        return tb;
    }

    @Override
    public Collection getShortcuts(KeYMediator mediator, String componentId,
            JComponent component) {
        return Collections.emptyList();
    }

    @Override
    public SettingsProvider getSettings() {
        return new TestgenOptionsPanel();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy