package listfolder class ListFolderForm( initialFolder : File ) : PromptForm( "List Folder" ) { constructor() : this( homeFolder() ) val folder = folderProperty( "Folder", initialFolder ) val showHiddenFiles = boolProperty( "Show Hidden Files", ListFolder.default_showHiddenFiles ) .shortcut( Key.PERIOD.control() ).icon( "hidden_file" ) val showHiddenFolders = boolProperty( "Show Hidden Folders", ListFolder.default_showHiddenFolders ) .shortcut( Key.PERIOD.control().shift() ).icon( "hidden_folder" ) val noFolders = boolProperty( "No Folders", ListFolder.default_noFolders ) .shortcut( Key.N.control() ).icon( "no_folders" ) val arrangeAsGrid = boolProperty( "Arrange in a Grid", ListFolder.default_arrangeAsGrid ) .shortcut( Key.BACKSLASH.control() ).icon( "grid") val columnWidth = intProperty( "Column Width", ListFolder.default_columnWidth ) override meth elements() = listOf( folder, HorizontalGroup( "Options", 20, HorizontalGroup( 4, showHiddenFiles, showHiddenFolders ), noFolders ), HorizontalGroup( "Grid", 20, arrangeAsGrid, columnWidth ).includeLabels() ) override meth validate() : FormError { if (!folder.value.exists()) { return FormError( folder, "Folder not found" ) } if (!folder.value.isFolder()) { return FormError( folder, "Not a folder" ) } return null } override meth runner() = ListFolderBehaviour( this ) override meth copy() : ListFolderForm = super.copy() as ListFolderForm }