Files
VisualSapfor/src/_VisualDVM/Passes/All/CreateGroupFromDirectory.java

69 lines
2.7 KiB
Java
Raw Normal View History

2024-10-14 12:14:01 +03:00
package _VisualDVM.Passes.All;
2024-10-11 00:00:30 +03:00
import Common.Utils.Utils_;
2024-10-08 23:45:06 +03:00
import Common.Visual.Windows.Dialog.VDirectoryChooser;
2024-10-14 15:19:13 +03:00
import _VisualDVM.Constants;
import _VisualDVM.Global;
2024-10-09 22:21:57 +03:00
import _VisualDVM.GlobalData.Settings.SettingName;
2024-10-14 12:14:01 +03:00
import _VisualDVM.Passes.PassCode;
2024-10-14 15:19:13 +03:00
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
2024-10-09 23:37:58 +03:00
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()) {
2024-10-11 00:00:30 +03:00
Log.Writeln_(Utils_.Brackets(dir) + "\е является папкой!");
return false;
}
if (dir.getName().equals(Constants.data)) {
2024-10-11 00:00:30 +03:00
Log.Writeln_(Utils_.Brackets(dir) + "\nявляется служебной папкой визуализатора!");
return false;
}
if (!Utils.validateProjectFile(dir, Log)) {
2024-10-11 00:00:30 +03:00
Log.Writeln_("Имя папки " + Utils_.Brackets(dir.getName())
2024-10-07 22:04:09 +03:00
+ " содержит запрещённые символы " +
2024-10-11 00:00:30 +03:00
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;
}
2024-10-14 15:19:13 +03:00
if (Global.mainModule.getPass(PassCode.PublishGroup).Do(dir.getName().toUpperCase())) {
group = Global.testingServer.db.groups.getUI().getCurrent();
} else return false;
//---------------
Vector<File> files = new Vector<>(Arrays.asList(files_));
Global.mainModule.getPass(PassCode.UpdateSetting).Do(SettingName.ProjectsSearchDirectory, directoryChooser.getCurrentDirectory());
return super.canStart(files, group);
2023-11-20 22:29:38 +03:00
}
}