package _VisualDVM.TestingSystem.Common.Configuration;
import Common.Database.Objects.DBObject;
import Common.Database.Objects.riDBObject;
import Common.Utils.TextLog;
import Common.Utils.Utils_;
import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.Common.Settings.Settings;
import _VisualDVM.TestingSystem.Common.Test.Test;
import com.sun.org.glassfish.gmbal.Description;

import javax.swing.*;
import java.util.Vector;
public class Configuration extends riDBObject {
    //конфигурация = данные для пакета.
    //группы
    //тесты
    //настройки тестируемого объекта
    //пакет = запуск конфигурация + тестируемый объект
    //---
    public int maxtime = 60;
    @Description("DEFAULT 0")
    public int autoTesting = 0;
    @Description("DEFAULT 1")
    public int kernels = 1;  //ядра
    @Description("DEFAULT 0")
    public int groupsOnly = 0;
    //если флаг выставлен, то при формировании пакета берутся все тесты из участвущих групп. тесты конфигурации игнорируются.
    //----
    public String printAuto() {
        return autoTesting != 0 ? "Да" : "Нет";
    }
    public String printGroupsOnly() {
        return groupsOnly != 0 ? "Да" : "Нет";
    }
    public void SwitchAuto() {
        autoTesting = (autoTesting == 0) ? 1 : 0;
    }
    public ImageIcon GetAutoIcon() {
        return Utils_.getIcon("/Common/icons/" + (autoTesting == 1 ? "RedPick" : "NotPick") + ".png");
    }
    //--
    public void saveGroups(Vector<Group> groups) {
    }
    public void saveTests(Vector<Test> tests) {
    }
    public void saveSettings(Vector<Settings> settings_in) {
    }
    //--
    @Override
    public void SynchronizeFields(DBObject src) {
        super.SynchronizeFields(src);
        Configuration c = (Configuration) src;
        //--
        maxtime = c.maxtime;
        autoTesting = c.autoTesting;
        kernels = c.kernels;
        groupsOnly = c.groupsOnly;
    }
    //- для автоматического тестирования главным образом.
    public boolean validate(TextLog log) {
        return true;
    }
    @Override
    public String getDialogName() {
        return description;
    }
}
