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;
|
2024-10-13 22:08:13 +03:00
|
|
|
|
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;
|
2023-12-02 15:19:05 +03:00
|
|
|
|
|
2023-12-02 16:08:54 +03:00
|
|
|
|
import java.io.File;
|
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
|
import java.util.Vector;
|
|
|
|
|
|
public class CreateGroupFromDirectory extends PublishTests {
|
|
|
|
|
|
VDirectoryChooser directoryChooser = new VDirectoryChooser("Выбор домашней папки группы");
|
2023-12-02 15:19:05 +03:00
|
|
|
|
@Override
|
2023-12-02 16:08:54 +03:00
|
|
|
|
public String getIconPath() {
|
|
|
|
|
|
return "/icons/OpenProject.png";
|
2023-12-02 15:19:05 +03:00
|
|
|
|
}
|
|
|
|
|
|
@Override
|
2024-10-09 23:37:58 +03:00
|
|
|
|
protected PassCode getCreateTestCode() {
|
|
|
|
|
|
return PassCode.CreateTestFromDirectory;
|
2023-12-02 15:19:05 +03:00
|
|
|
|
}
|
2023-11-20 22:10:21 +03:00
|
|
|
|
@Override
|
2023-12-02 16:08:54 +03:00
|
|
|
|
protected String getNoFilesMessage() {
|
|
|
|
|
|
return "ни одной папки";
|
2023-11-20 22:10:21 +03:00
|
|
|
|
}
|
|
|
|
|
|
@Override
|
2023-12-02 16:08:54 +03:00
|
|
|
|
protected boolean canStart(Object... args) throws Exception {
|
2023-11-25 01:51:18 +03:00
|
|
|
|
Utils.RestoreSelectedDirectory(directoryChooser);
|
2023-12-02 16:08:54 +03:00
|
|
|
|
File dir = directoryChooser.ShowDialog();
|
|
|
|
|
|
if (dir == null) {
|
|
|
|
|
|
Log.Writeln_("Папка не выбрана");
|
2023-11-20 22:10:21 +03:00
|
|
|
|
return false;
|
2023-12-02 16:08:54 +03:00
|
|
|
|
}
|
|
|
|
|
|
//---------------
|
2023-11-20 22:10:21 +03:00
|
|
|
|
if (!dir.isDirectory()) {
|
2024-10-11 00:00:30 +03:00
|
|
|
|
Log.Writeln_(Utils_.Brackets(dir) + "\nне является папкой!");
|
2023-11-20 22:10:21 +03:00
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (dir.getName().equals(Constants.data)) {
|
2024-10-11 00:00:30 +03:00
|
|
|
|
Log.Writeln_(Utils_.Brackets(dir) + "\nявляется служебной папкой визуализатора!");
|
2023-11-20 22:10:21 +03:00
|
|
|
|
return false;
|
|
|
|
|
|
}
|
2023-11-25 01:51:18 +03:00
|
|
|
|
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() + ", или кириллицу.");
|
2023-11-20 22:10:21 +03:00
|
|
|
|
return false;
|
|
|
|
|
|
}
|
2023-11-25 01:51:18 +03:00
|
|
|
|
//--
|
|
|
|
|
|
File[] files_ = dir.listFiles(File::isDirectory);
|
|
|
|
|
|
if (files_ == null) {
|
|
|
|
|
|
Log.Writeln_("Ошибка при получении списка подпапок");
|
|
|
|
|
|
return false;
|
2023-11-20 22:10:21 +03:00
|
|
|
|
}
|
2023-11-25 01:51:18 +03:00
|
|
|
|
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())) {
|
2024-10-24 23:40:24 +03:00
|
|
|
|
group = Global.testingServer.db.groups.getUI().getCurrent();
|
2023-12-02 16:08:54 +03:00
|
|
|
|
} else return false;
|
|
|
|
|
|
//---------------
|
|
|
|
|
|
Vector<File> files = new Vector<>(Arrays.asList(files_));
|
2024-10-13 23:55:03 +03:00
|
|
|
|
Global.mainModule.getPass(PassCode.UpdateSetting).Do(SettingName.ProjectsSearchDirectory, directoryChooser.getCurrentDirectory());
|
2023-12-02 16:08:54 +03:00
|
|
|
|
return super.canStart(files, group);
|
2023-11-20 22:29:38 +03:00
|
|
|
|
}
|
2023-11-20 22:10:21 +03:00
|
|
|
|
}
|