package _VisualDVM.Passes.All;
import _VisualDVM.Current;
import _VisualDVM.Global;
import _VisualDVM.ProjectData.Files.FileState;
import _VisualDVM.ProjectData.Project.db_project_info;
import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.Common.TestFile.TestFile;
//добавить в текущую группу новый тест из текущего проекта.
public class CreateTestFromProject extends CreateTestFromDirectory {
    db_project_info project;
    @Override
    public String getIconPath() {
        return "/Common/icons/RedAdd.png";
    }
    @Override
    protected boolean canStart(Object... args) throws Exception {
        if (args.length == 0) {
            if (Global.testingServer.db.groups.getUI().canModifyCurrent(Log) && Global.mainModule.Check(Log, Current.Project)) {
                project = Global.mainModule.getProject();
                if (super.canStart(
                        project.Home,
                        Global.testingServer.db.groups.getUI().getCurrent())) {
                    from_files_chooser = true; //чтобы опубликовал.
                    return true;
                }
            }
        } else {
            project = (db_project_info) args[0];
            group = (Group) args[1];
            //если проект не текущий, освежить его бд.
            if (!Global.mainModule.HasProject() || !Global.mainModule.getProject().Home.equals(project.Home)) {
                project.Open();
                project.Close();
            }
            return super.canStart(project.Home, group);
        }
        return false;
    }
    @Override
    public boolean isNotExcluded(TestFile testFile) {
        return project.db.files.containsKey(testFile.name) &&
                !project.db.files.get(testFile.name).state.equals(FileState.Excluded);
    }
}
