package _VisualDVM.Passes.All;
import Common.Passes.Pass;
import _VisualDVM.Current;
import _VisualDVM.Global;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.ProjectData.Files.DBProjectFile;
public class OpenCurrentFile extends Pass<DBProjectFile> {
    @Override
    protected boolean canStart(Object... args) throws Exception {
        target = (args.length > 0) ? (DBProjectFile) args[0] : null;
        return (target != null) && (!Global.mainModule.HasFile() || (!Global.mainModule.getFile().file.equals(target.file)));
    }
    @Override
    protected void performPreparation() throws Exception {
        //закрыть старый текущий файл.
        Global.mainModule.getPass(PassCode.CloseCurrentFile).Do();
    }
    @Override
    protected void body() throws Exception {
    }
    @Override
    protected void performDone() throws Exception {
        Global.mainModule.set(Current.File, target);
    }
    @Override
    protected void showDone() throws Exception {
        //отобразить новый текущий файл.
        Global.mainModule.getUI().getMainWindow().getProjectWindow().ShowFile();
    }
}
