package Visual_DVM_2021.Passes.All; import Common.Constants; import Common.Utils.Files.VDirectoryChooser; import Common.Utils.Utils; import TestingSystem.Common.Group.Group; import Visual_DVM_2021.Passes.PassCode_2021; import Visual_DVM_2021.Passes.Pass_2021; import java.io.File; public class CreateGroupFromDirectory extends Pass_2021 { File dir = null; File[] files = null; int group_id ; VDirectoryChooser directoryChooser = new VDirectoryChooser("Выбор домашней папки группы"); @Override public String getIconPath() { return "/icons/CreateProject.png"; } @Override public String getButtonText() { return ""; } @Override protected boolean needsAnimation() { return true; } @Override protected boolean canStart(Object... args) throws Exception { dir = null; files = null; target = null; group_id = Constants.Nan; //- Utils.RestoreSelectedDirectory(directoryChooser); dir = directoryChooser.ShowDialog(); //- if (dir == null) return false; //-- if (!dir.isDirectory()) { Log.Writeln_(Utils.Brackets(dir) + "\nне является папкой!"); return false; } //- if (dir.getName().equals(Constants.data)) { Log.Writeln_(Utils.Brackets(dir) + "\nявляется служебной папкой визуализатора!"); return false; } files = dir.listFiles(File::isDirectory); if (files == null) { Log.Writeln_("Ошибка при получении списка папок"); return false; } if (files.length == 0) { Log.Writeln_("В выбранной папке не найдено ни одной папки"); return false; } PublishGroup pass = (PublishGroup) passes.get(PassCode_2021.PublishGroup); if (pass.Do(dir.getName().toUpperCase())) { group_id = (int) pass.pk; return true; } return false; } @Override protected void body() throws Exception { for (File file : files) { passes.get(PassCode_2021.CreateTestFromDirectory).Do(file, group_id); } } }