Files
VisualSapfor/src/Visual_DVM_2021/Passes/All/DeleteVersion.java

64 lines
2.3 KiB
Java
Raw Normal View History

package Visual_DVM_2021.Passes.All;
2024-10-09 23:37:58 +03:00
import Common.Current_;
2024-10-11 00:00:30 +03:00
import Common.Utils.Utils_;
import Common.Visual.UI_;
2024-10-09 22:01:19 +03:00
import _VisualDVM.Current;
import _VisualDVM.Global;
2024-10-09 22:01:19 +03:00
import _VisualDVM.Visual.UI;
import _VisualDVM.Utils;
2024-10-09 22:21:57 +03:00
import _VisualDVM.ProjectData.Project.db_project_info;
2024-10-09 23:37:58 +03:00
import Visual_DVM_2021.Passes.PassCode;
2024-10-10 23:57:36 +03:00
import Common.Passes.Pass;
2024-10-09 23:37:58 +03:00
public class DeleteVersion extends Pass<db_project_info> {
2023-09-17 22:13:42 +03:00
db_project_info parent;
boolean current;
@Override
public String getIconPath() {
return "/icons/Delete.png";
}
@Override
protected boolean canStart(Object... args) {
if (args.length > 0) {
target = (db_project_info) args[0];
current = (Global.mainModule.getVersion() != null) && Global.mainModule.getVersion().Home.equals(target.Home);
2023-09-17 22:13:42 +03:00
return true;
} else {
if (((target = Global.mainModule.getVersion()) != null) && (!UI_.isActive() ||
2024-10-11 00:00:30 +03:00
UI_.Warning("Удалить " +
((Global.mainModule.HasProject() && target.Home.equals(Global.mainModule.getProject().Home)) ? "текущий проект" : "версию ")
2024-10-11 00:00:30 +03:00
+ Utils_.Brackets(target.name)))) {
2023-09-17 22:13:42 +03:00
current = true;
return true;
}
}
return false;
}
@Override
protected void performPreparation() throws Exception {
if (target.parent != null)
target.parent.checkLastModification(target);
if (Global.mainModule.HasProject()) {
if ((Global.mainModule.getProject().Home.getAbsolutePath().startsWith(target.Home.getAbsolutePath())))
2024-10-09 23:37:58 +03:00
passes.get(PassCode.CloseCurrentProject).Do();
2023-09-17 22:13:42 +03:00
}
2024-10-11 00:00:30 +03:00
if (UI_.isActive()) {
2023-09-17 22:13:42 +03:00
UI.getVersionsWindow().RemoveVersionFromComparison(target);
}
}
@Override
protected void body() throws Exception {
Utils.forceDeleteWithCheck(target.Home);
}
@Override
protected void performDone() throws Exception {
parent = target.parent;
if (current)
Global.mainModule.set(Current.Version, null);
2023-09-17 22:13:42 +03:00
if (parent != null) {
UI.getVersionsWindow().getVersionsForm().getTree().RemoveNode(target.node);
parent.versions.remove(target.name);
} else
Global.mainModule.set(Current.Root, null);
2023-09-17 22:13:42 +03:00
}
}