2023-11-19 01:53:56 +03:00
|
|
|
|
package Common.Passes.All;
|
2023-10-06 22:51:09 +03:00
|
|
|
|
import Common.Constants;
|
2023-09-17 22:13:42 +03:00
|
|
|
|
import Common.Current;
|
|
|
|
|
|
import Common.UI.UI;
|
|
|
|
|
|
import Common.UI.Windows.Dialog.Text.FileNameForm;
|
|
|
|
|
|
import Common.Utils.Utils;
|
2023-11-19 01:53:56 +03:00
|
|
|
|
import Common.Passes.ChangeFilePass;
|
|
|
|
|
|
import Common.Passes.PassException;
|
2023-09-17 22:13:42 +03:00
|
|
|
|
|
|
|
|
|
|
import javax.swing.tree.DefaultMutableTreeNode;
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
|
import java.nio.file.Paths;
|
|
|
|
|
|
public class CreateEmptyDirectory extends ChangeFilePass {
|
|
|
|
|
|
@Override
|
|
|
|
|
|
protected boolean canStart(Object... args) {
|
|
|
|
|
|
resetArgs();
|
|
|
|
|
|
if ((ff = new FileNameForm()).ShowDialog("Введите имя создаваемой папки")) {
|
|
|
|
|
|
fileName = ff.Result;
|
|
|
|
|
|
//->
|
|
|
|
|
|
parent_node = Current.getProjectCurrentParentNode();
|
|
|
|
|
|
target_dir = (File) parent_node.getUserObject();
|
|
|
|
|
|
//->
|
|
|
|
|
|
dst = Paths.get(target_dir.getAbsolutePath(), fileName).toFile();
|
|
|
|
|
|
if (dst.exists()) {
|
|
|
|
|
|
Log.Writeln("Файл с именем " + Utils.Brackets(fileName) + " уже существует");
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
2023-10-06 22:51:09 +03:00
|
|
|
|
if (fileName.equalsIgnoreCase(Constants.data)) {
|
|
|
|
|
|
Log.Writeln(Utils.Brackets(Constants.data) + " является зарезервированным именем!");
|
2023-09-17 22:13:42 +03:00
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
protected void body() throws Exception {
|
|
|
|
|
|
if (!dst.mkdir()) throw new PassException("Не удалось создать папку.");
|
|
|
|
|
|
UI.getMainWindow().getProjectWindow().getFilesTreeForm().getTree().AddNode(parent_node, dst_node = new DefaultMutableTreeNode(dst));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|