2023-11-20 22:10:21 +03:00
package Visual_DVM_2021.Passes.All ;
2023-12-02 16:08:54 +03:00
import Common.Constants ;
import Common.Current ;
import Common.Utils.Files.VDirectoryChooser ;
import Common.Utils.Utils ;
import GlobalData.Settings.SettingName ;
2023-11-20 22:10:21 +03:00
import Visual_DVM_2021.Passes.PassCode_2021 ;
2023-12-02 16:08:54 +03:00
import Visual_DVM_2021.Passes.Pass_2021 ;
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
2023-12-02 16:08:54 +03:00
protected PassCode_2021 getCreateTestCode ( ) {
return PassCode_2021 . 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 ( ) ) {
Log . Writeln_ ( Utils . Brackets ( dir ) + " \ nне является папкой! " ) ;
return false ;
}
if ( dir . getName ( ) . equals ( Constants . data ) ) {
Log . Writeln_ ( Utils . Brackets ( dir ) + " \ nявляе тс я служебной папкой визуализатора! " ) ;
return false ;
}
2023-11-25 01:51:18 +03:00
if ( ! Utils . validateProjectFile ( dir , Log ) ) {
Log . Writeln_ ( " Имя папки " + Utils . Brackets ( dir . getName ( ) ) + " содержит запрещённые символы " + Constants . all_forbidden_characters_string + " , или кириллицу. " ) ;
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 ;
}
2023-12-02 16:08:54 +03:00
if ( passes . get ( PassCode_2021 . PublishGroup ) . Do ( dir . getName ( ) . toUpperCase ( ) ) ) {
group = Current . getGroup ( ) ;
} else return false ;
//---------------
Vector < File > files = new Vector < > ( Arrays . asList ( files_ ) ) ;
Pass_2021 . passes . get ( PassCode_2021 . UpdateSetting ) . Do ( SettingName . ProjectsSearchDirectory , directoryChooser . getCurrentDirectory ( ) ) ;
return super . canStart ( files , group ) ;
2023-11-20 22:29:38 +03:00
}
2023-11-20 22:10:21 +03:00
}