постепенное выведение старой концепции текущих объектов, касаемо табличных лучше держать их в интерфейсе таблиц, чтобы не писать описание объекта дважды и не мучиться с типом. некоторые фиксы
This commit is contained in:
@@ -4,8 +4,11 @@ import Common.Passes.PassException;
|
||||
import Common.Utils.Utils_;
|
||||
import _VisualDVM.Current;
|
||||
import _VisualDVM.Global;
|
||||
import _VisualDVM.GlobalData.Machine.Machine;
|
||||
import _VisualDVM.GlobalData.Makefile.Makefile;
|
||||
import _VisualDVM.GlobalData.Tasks.CompilationTask.CompilationTask;
|
||||
import _VisualDVM.GlobalData.Tasks.TaskState;
|
||||
import _VisualDVM.GlobalData.User.User;
|
||||
import _VisualDVM.GlobalData.User.UserState;
|
||||
import _VisualDVM.Passes.PassCode;
|
||||
import _VisualDVM.ProjectData.LanguageName;
|
||||
@@ -13,6 +16,9 @@ import _VisualDVM.ProjectData.Project.db_project_info;
|
||||
public class Compile extends Pass<db_project_info> {
|
||||
Pass subpass = null;
|
||||
CompilationTask compilationTask = null;
|
||||
Machine machine = null;
|
||||
User user = null;
|
||||
Makefile makefile = null;
|
||||
@Override
|
||||
protected PassCode necessary() {
|
||||
return Global.mainModule.getProject().languageName.equals(LanguageName.fortran) ? PassCode.SPF_ParseFilesWithOrder : null;
|
||||
@@ -27,15 +33,23 @@ public class Compile extends Pass<db_project_info> {
|
||||
}
|
||||
@Override
|
||||
protected boolean canStart(Object... args) {
|
||||
if (Global.mainModule.Check(Log, Current.Project, Current.Machine, Current.User, Current.Makefile)) {
|
||||
if (Global.mainModule.Check(Log, Current.Project) && Global.mainModule.getDb().Check(Log, Machine.class, User.class, Makefile.class)) {
|
||||
target = Global.mainModule.getProject();
|
||||
//--
|
||||
machine = Global.mainModule.getDb().getTable(Machine.class).getUI().getCurrent();
|
||||
user= Global.mainModule.getDb().getTable(User.class).getUI().getCurrent();
|
||||
makefile= Global.mainModule.getDb().getTable(Makefile.class).getUI().getCurrent();
|
||||
//--
|
||||
subpass = null;
|
||||
compilationTask = null;
|
||||
if (Global.mainModule.getUser().state != UserState.ready_to_work)
|
||||
Log.Writeln_("Пользователь " + Utils_.Brackets(Global.mainModule.getUser().login) +
|
||||
if (user.state != UserState.ready_to_work)
|
||||
Log.Writeln_("Пользователь " +
|
||||
Utils_.Brackets(
|
||||
user.login
|
||||
) +
|
||||
" не проинициализирован\nПерейдите на вкладку 'Настройки компиляции и запуска',\n" +
|
||||
" и выполните команду 'Инициализация пользователя'\n");
|
||||
Global.mainModule.getMakefile().Validate(Log);
|
||||
makefile.Validate(Log);
|
||||
return Log.isEmpty();
|
||||
}
|
||||
return false;
|
||||
@@ -43,9 +57,9 @@ public class Compile extends Pass<db_project_info> {
|
||||
@Override
|
||||
protected void performPreparation() throws Exception {
|
||||
compilationTask = new CompilationTask();
|
||||
compilationTask.machine_id = Global.mainModule.getMachine().id;
|
||||
compilationTask.user_id = Global.mainModule.getUser().id;
|
||||
compilationTask.makefile_id = Global.mainModule.getMakefile().id;
|
||||
compilationTask.machine_id = machine.id;
|
||||
compilationTask.user_id = user.id;
|
||||
compilationTask.makefile_id = makefile.id;
|
||||
compilationTask.project_path = target.Home.getAbsolutePath();
|
||||
compilationTask.project_description = target.description;
|
||||
//------------------------------------------
|
||||
@@ -60,7 +74,7 @@ public class Compile extends Pass<db_project_info> {
|
||||
}
|
||||
@Override
|
||||
protected void body() throws Exception {
|
||||
switch (Global.mainModule.getMachine().type) {
|
||||
switch (machine.type) {
|
||||
case Local:
|
||||
if (Utils_.isWindows()) {
|
||||
subpass = Global.mainModule.getPass(PassCode.WindowsLocalCompilation);
|
||||
@@ -69,12 +83,13 @@ public class Compile extends Pass<db_project_info> {
|
||||
break;
|
||||
case Undefined:
|
||||
case MVS_cluster:
|
||||
throw new PassException("Компиляция не реализована для типа машины " + Utils_.DQuotes(Global.mainModule.getMachine().type));
|
||||
throw new PassException("Компиляция не реализована для типа машины " +
|
||||
Utils_.DQuotes(machine.type));
|
||||
default:
|
||||
subpass = Global.mainModule.getPass(PassCode.RemoteCompilation);
|
||||
break;
|
||||
}
|
||||
subpass.Do(Global.mainModule.getCompilationTask(), Global.mainModule.getProject());
|
||||
subpass.Do(compilationTask, Global.mainModule.getProject());
|
||||
}
|
||||
@Override
|
||||
protected boolean validate() {
|
||||
|
||||
Reference in New Issue
Block a user