package _VisualDVM.Passes.All; import Common.Utils.Utils_; import Common.Visual.Windows.Dialog.VDirectoryChooser; import _VisualDVM.Constants; import _VisualDVM.Global; import _VisualDVM.Passes.PassCode; import _VisualDVM.Utils; import java.io.File; import java.util.Arrays; import java.util.Vector; public class CreateGroupFromDirectory extends PublishTests { VDirectoryChooser directoryChooser = new VDirectoryChooser("Выбор домашней папки группы"); @Override public String getIconPath() { return "/icons/OpenProject.png"; } @Override protected PassCode getCreateTestCode() { return PassCode.CreateTestFromDirectory; } @Override protected String getNoFilesMessage() { return "ни одной папки"; } @Override protected boolean canStart(Object... args) throws Exception { Utils.RestoreSelectedDirectory(directoryChooser); File dir = directoryChooser.ShowDialog(); if (dir == null) { Log.Writeln_("Папка не выбрана"); 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; } if (!Utils.validateProjectFile(dir, Log)) { Log.Writeln_("Имя папки " + Utils_.Brackets(dir.getName()) + " содержит запрещённые символы " + Utils_.printAllForbiddenCharacters() + ", или кириллицу."); return false; } //-- File[] files_ = dir.listFiles(File::isDirectory); if (files_ == null) { Log.Writeln_("Ошибка при получении списка подпапок"); return false; } if (files_.length == 0) { Log.Writeln_("В выбранной папке не найдено ни одной папки"); return false; } if (Global.mainModule.getPass(PassCode.PublishGroup).Do(dir.getName().toUpperCase())) { group = Global.testingServer.db.groups.getUI().getCurrent(); } else return false; //--------------- Vector files = new Vector<>(Arrays.asList(files_)); Global.mainModule.getPass(PassCode.UpdateProperty).Do("ProjectsSearchDirectory", directoryChooser.getCurrentDirectory().getAbsolutePath()); return super.canStart(files, group); } }