package _VisualDVM.Passes.All;
import Common.Utils.Utils_;
import Common.Visual.UI;
import _VisualDVM.Current;
import _VisualDVM.Global;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.Passes.Project.ChangeFilePass;
import _VisualDVM.ProjectData.Files.DBProjectFile;
public class DeleteFile extends ChangeFilePass<DBProjectFile> {
    @Override
    public String getIconPath() {
        return "/Common/icons/Delete.png";
    }
    @Override
    protected boolean canStart(Object... args) {
        resetArgs();
        return (Global.mainModule.Check(Log, Current.SelectedFile)) &&
                UI.Warning("Удалить файл "
                        + Utils_.Brackets((target = Global.mainModule.getSelectedFile()).name));
    }
    @Override
    protected void performPreparation() throws Exception {
        if (Global.mainModule.HasFile() && (Global.mainModule.getFile().file.equals(target.file)))
            Global.mainModule.getPass(PassCode.CloseCurrentFile).Do();
    }
    @Override
    protected void body() throws Exception {
        Global.mainModule.getUI().getMainWindow().getProjectWindow().getFilesTreeForm().getTree().RemoveNode(target.node);
        project.db.Delete(target);
        Utils_.forceDeleteWithCheck(target.file);
    }
    @Override
    protected void performDone() throws Exception {
        Global.mainModule.set(Current.SelectedFile, null);
        Global.mainModule.set(Current.ProjectNode, null);
    }
}
