вывод диалоговых форм для объектов в отдельный класс

This commit is contained in:
2024-10-22 16:44:13 +03:00
parent 38b2896e4a
commit a60fd375d0
66 changed files with 840 additions and 792 deletions

View File

@@ -5,19 +5,12 @@ import Common.Database.Tables.FKCurrentObjectBehaviuor;
import Common.Database.Tables.FKDataBehaviour;
import Common.Database.Tables.iDBTable;
import Common.Passes.PassCode_;
import Common.Utils.Utils_;
import Common.Visual.DataSetControlForm;
import Common.Visual.UI;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.Compiler.UI.CompilerFields;
import _VisualDVM.GlobalData.Compiler.UI.CompilersForm;
import _VisualDVM.GlobalData.Makefile.Makefile;
import _VisualDVM.GlobalData.Module.Module;
import _VisualDVM.GlobalData.RunConfiguration.RunConfiguration;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.Utils;
import _VisualDVM.Validators.PathValidator;
import javax.swing.*;
import java.util.LinkedHashMap;
@@ -34,83 +27,6 @@ public class CompilersDBTable extends iDBTable<Compiler> {
return res;
}
@Override
public DBObjectDialog<Compiler, CompilerFields> getDialog() {
return new DBObjectDialog<Compiler, CompilerFields>(CompilerFields.class) {
@Override
public void validateFields() {
//<editor-fold desc="расположение">
String home = fields.tfHome.getText();
if (!home.isEmpty()) {
if (home.startsWith("/")) {
if (Utils_.ContainsCyrillic(home))
Log.Writeln("Расположение компилятора не может содержать кириллицу");
else {
new PathValidator(home, "Расположение компилятора", Log).Validate();
}
} else
Log.Writeln("Расположение компилятора может быть либо пустой строкой, либо путём к файлу");
}
//</editor-fold>
//<editor-fold desc="команда вызова">
String call_command = fields.tfCallCommand.getText();
if (call_command.isEmpty())
Log.Writeln("Команда вызова компилятора не может быть пустой");
else if (Utils_.ContainsCyrillic(call_command))
Log.Writeln("Команда вызова компилятора не может содержать кириллицу");
else {
switch (call_command.charAt(0)) {
case ' ':
Log.Writeln("Команда вызова компилятора не может начинаться с пробела.");
break;
case '/':
if (call_command.endsWith("/"))
Log.Writeln("Каталог не может быть указан в качестве команды.");
else
new PathValidator(call_command, "Команда вызова компилятора", Log).Validate();
break;
default:
//это команда.
//самое опасное место. теоретически тут можно ввести любую команду ОС, в том числе rm -rf
if (call_command.contains(" "))
Log.Writeln("Прямая команда вызова не может содержать пробелы");
if (!call_command.contains("+") && Utils_.ContainsForbiddenName(call_command))
Log.Writeln("Прямая команда вызова содержит запрещённые символы");
else {
if (Utils.isLinuxSystemCommand(call_command))
Log.Writeln(Utils_.DQuotes(call_command) + " является системной командой Linux");
}
break;
}
}
//</editor-fold>
}
@Override
public void fillFields() {
fields.tfDescription.setText(Result.description);
fields.tfCallCommand.setText(Result.call_command);
fields.tfHelpCommand.setText(Result.help_command);
fields.tfVersionCommand.setText(Result.version_command);
fields.tfHome.setText(Result.home_path);
UI.TrySelect(fields.cbCompilerType, Result.type);
fields.events_on = true;
}
@Override
public void ProcessResult() {
Result.machine_id = Global.mainModule.getMachine().id;
Result.description = fields.tfDescription.getText();
Result.call_command = fields.tfCallCommand.getText();
Result.help_command = fields.tfHelpCommand.getText();
Result.version_command = fields.tfVersionCommand.getText();
Result.home_path = fields.tfHome.getText();
Result.type = (CompilerType) fields.cbCompilerType.getSelectedItem();
}
@Override
public int getDefaultHeight() {
return 300;
}
};
}
@Override
protected DataSetControlForm createUI(JPanel mountPanel) {
return new CompilersForm(this, mountPanel);
}

View File

@@ -0,0 +1,86 @@
package _VisualDVM.GlobalData.Compiler.UI;
import Common.Utils.Utils_;
import Common.Visual.UI;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.Compiler.Compiler;
import _VisualDVM.GlobalData.Compiler.CompilerType;
import _VisualDVM.Utils;
import _VisualDVM.Validators.PathValidator;
public class CompilerDialog extends DBObjectDialog<Compiler, CompilerFields> {
public CompilerDialog() {
super(CompilerFields.class);
}
@Override
public int getDefaultHeight() {
return 300;
}
@Override
public void validateFields() {
//<editor-fold desc="расположение">
String home = fields.tfHome.getText();
if (!home.isEmpty()) {
if (home.startsWith("/")) {
if (Utils_.ContainsCyrillic(home))
Log.Writeln("Расположение компилятора не может содержать кириллицу");
else {
new PathValidator(home, "Расположение компилятора", Log).Validate();
}
} else
Log.Writeln("Расположение компилятора может быть либо пустой строкой, либо путём к файлу");
}
//</editor-fold>
//<editor-fold desc="команда вызова">
String call_command = fields.tfCallCommand.getText();
if (call_command.isEmpty())
Log.Writeln("Команда вызова компилятора не может быть пустой");
else if (Utils_.ContainsCyrillic(call_command))
Log.Writeln("Команда вызова компилятора не может содержать кириллицу");
else {
switch (call_command.charAt(0)) {
case ' ':
Log.Writeln("Команда вызова компилятора не может начинаться с пробела.");
break;
case '/':
if (call_command.endsWith("/"))
Log.Writeln("Каталог не может быть указан в качестве команды.");
else
new PathValidator(call_command, "Команда вызова компилятора", Log).Validate();
break;
default:
//это команда.
//самое опасное место. теоретически тут можно ввести любую команду ОС, в том числе rm -rf
if (call_command.contains(" "))
Log.Writeln("Прямая команда вызова не может содержать пробелы");
if (!call_command.contains("+") && Utils_.ContainsForbiddenName(call_command))
Log.Writeln("Прямая команда вызова содержит запрещённые символы");
else {
if (Utils.isLinuxSystemCommand(call_command))
Log.Writeln(Utils_.DQuotes(call_command) + " является системной командой Linux");
}
break;
}
}
//</editor-fold>
}
@Override
public void fillFields() {
fields.tfDescription.setText(Result.description);
fields.tfCallCommand.setText(Result.call_command);
fields.tfHelpCommand.setText(Result.help_command);
fields.tfVersionCommand.setText(Result.version_command);
fields.tfHome.setText(Result.home_path);
UI.TrySelect(fields.cbCompilerType, Result.type);
fields.events_on = true;
}
@Override
public void ProcessResult() {
Result.machine_id = Global.mainModule.getMachine().id;
Result.description = fields.tfDescription.getText();
Result.call_command = fields.tfCallCommand.getText();
Result.help_command = fields.tfHelpCommand.getText();
Result.version_command = fields.tfVersionCommand.getText();
Result.home_path = fields.tfHome.getText();
Result.type = (CompilerType) fields.cbCompilerType.getSelectedItem();
}
}

View File

@@ -3,6 +3,7 @@ import Common.Database.Tables.DataSet;
import Common.MainModule_;
import Common.Visual.DataSetControlForm;
import Common.Visual.Menus.DataMenuBar;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.Current;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.Compiler.Compiler;
@@ -38,6 +39,20 @@ public class CompilersForm extends DataSetControlForm<Compiler> {
"ревизия"};
}
@Override
public Object getFieldAt(Compiler object, int columnIndex) {
switch (columnIndex) {
case 2:
return object.description;
case 3:
return object.call_command;
case 4:
return object.version;
case 5:
return object.revision;
}
return null;
}
@Override
protected void AdditionalInitColumns() {
columns.get(0).setVisible(false);
}
@@ -64,17 +79,7 @@ public class CompilersForm extends DataSetControlForm<Compiler> {
return super.isObjectVisible(object) && MainModule_.instance.matchCurrentID(Current.Machine, object.machine_id);
}
@Override
public Object getFieldAt(Compiler object, int columnIndex) {
switch (columnIndex) {
case 2:
return object.description;
case 3:
return object.call_command;
case 4:
return object.version;
case 5:
return object.revision;
}
return null;
public DBObjectDialog getDialog() {
return new CompilerDialog();
}
}

View File

@@ -1,15 +1,9 @@
package _VisualDVM.GlobalData.DVMParameter;
import Common.Database.Tables.iDBTable;
import Common.Passes.PassCode_;
import Common.Utils.Utils_;
import Common.Visual.DataSetControlForm;
import Common.Visual.UI;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.DVMParameter.UI.DVMParameterFields;
import _VisualDVM.GlobalData.DVMParameter.UI.DVMParametersForm;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.Utils;
import javax.swing.*;
public class DVMParameterDBTable extends iDBTable<DVMParameter> {
@@ -21,56 +15,6 @@ public class DVMParameterDBTable extends iDBTable<DVMParameter> {
return new DVMParametersForm(this, mountPanel);
}
@Override
public DBObjectDialog<DVMParameter, DVMParameterFields> getDialog() {
return new DBObjectDialog<DVMParameter, DVMParameterFields>(DVMParameterFields.class) {
@Override
public void fillFields() {
UI.TrySelect(fields.cbName, Result.name);
fields.tfValue.setText(Result.value);
}
//https://javarush.ru/groups/posts/regulyarnye-vyrazheniya-v-java
@Override
public void validateFields() {
String name = (String) fields.cbName.getSelectedItem();
String value = fields.tfValue.getText();
if (name.isEmpty())
Log.Writeln("Имя параметра DVM системы не может быть пустым.");
/*
if (!name.matches("\\w*")) {
Log.Writeln("Имя переменной окружения может содержать только латинские буквы, цифры и подчёркивания");
}
*/
if (Utils.isLinuxSystemCommand(name))
Log.Writeln(Utils_.DQuotes(name) + " является системной командой Linux,\nи не может быть задано в качестве имени переменной окружения.");
/*
if (value.contains("\"")) {
Log.Writeln("Значение переменной окружения не может содержать двойные кавычки");
}
*/
for (DVMParameter par : (Global.mainModule.getDb()).dvmParameters.Data.values()) {
if (
Global.mainModule.getDb().dvmParameters.getUI().isObjectVisible(par)
&& (Result.id != par.id) && (par.name.equals(name))) {
Log.Writeln("В конфигурации запуска уже задан параметр DVM системы с именем " + Utils_.Brackets(name));
break;
}
}
}
@Override
public void ProcessResult() {
Result.machine_id = Global.mainModule.getMachine().id;
Result.run_configuration_id = Global.mainModule.getRunConfiguration().id;
Result.name = (String) fields.cbName.getSelectedItem();
Result.value = fields.tfValue.getText();
}
@Override
public int getDefaultHeight() {
return 200;
}
};
}
@Override
public PassCode_ getDeletePassCode() {
return PassCode.DeleteDVMParameter;
}

View File

@@ -0,0 +1,57 @@
package _VisualDVM.GlobalData.DVMParameter.UI;
import Common.Utils.Utils_;
import Common.Visual.UI;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.DVMParameter.DVMParameter;
import _VisualDVM.Utils;
public class DVMParameterDialog extends DBObjectDialog<DVMParameter, DVMParameterFields> {
public DVMParameterDialog() {
super(DVMParameterFields.class);
}
@Override
public void fillFields() {
UI.TrySelect(fields.cbName, Result.name);
fields.tfValue.setText(Result.value);
}
//https://javarush.ru/groups/posts/regulyarnye-vyrazheniya-v-java
@Override
public void validateFields() {
String name = (String) fields.cbName.getSelectedItem();
String value = fields.tfValue.getText();
if (name.isEmpty())
Log.Writeln("Имя параметра DVM системы не может быть пустым.");
/*
if (!name.matches("\\w*")) {
Log.Writeln("Имя переменной окружения может содержать только латинские буквы, цифры и подчёркивания");
}
*/
if (Utils.isLinuxSystemCommand(name))
Log.Writeln(Utils_.DQuotes(name) + " является системной командой Linux,\nи не может быть задано в качестве имени переменной окружения.");
/*
if (value.contains("\"")) {
Log.Writeln("Значение переменной окружения не может содержать двойные кавычки");
}
*/
for (DVMParameter par : (Global.mainModule.getDb()).dvmParameters.Data.values()) {
if (
Global.mainModule.getDb().dvmParameters.getUI().isObjectVisible(par)
&& (Result.id != par.id) && (par.name.equals(name))) {
Log.Writeln("В конфигурации запуска уже задан параметр DVM системы с именем " + Utils_.Brackets(name));
break;
}
}
}
@Override
public void ProcessResult() {
Result.machine_id = Global.mainModule.getMachine().id;
Result.run_configuration_id = Global.mainModule.getRunConfiguration().id;
Result.name = (String) fields.cbName.getSelectedItem();
Result.value = fields.tfValue.getText();
}
@Override
public int getDefaultHeight() {
return 200;
}
}

View File

@@ -2,6 +2,8 @@ package _VisualDVM.GlobalData.DVMParameter.UI;
import Common.Database.Tables.DataSet;
import Common.Visual.DataSetControlForm;
import Common.Visual.Menus.DataMenuBar;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import Common.Visual.Windows.Dialog.DialogFields;
import _VisualDVM.Current;
import _VisualDVM.GlobalData.DVMParameter.DVMParameter;
import _VisualDVM.Passes.PassCode;
@@ -51,4 +53,8 @@ public class DVMParametersForm extends DataSetControlForm<DVMParameter> {
PassCode.EditDVMParameter,
PassCode.DeleteDVMParameter);
}
@Override
public DBObjectDialog<DVMParameter, ? extends DialogFields> getDialog() {
return new DVMParameterDialog();
}
}

View File

@@ -1,15 +1,9 @@
package _VisualDVM.GlobalData.EnvironmentValue;
import Common.Database.Tables.iDBTable;
import Common.Passes.PassCode_;
import Common.Utils.Utils_;
import Common.Visual.DataSetControlForm;
import Common.Visual.UI;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.EnvironmentValue.UI.EnvironmentValueFields;
import _VisualDVM.GlobalData.EnvironmentValue.UI.EnvironmentsValuesForm;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.Utils;
import javax.swing.*;
public class EnvironmentValuesDBTable extends iDBTable<EnvironmentValue> {
@@ -17,51 +11,6 @@ public class EnvironmentValuesDBTable extends iDBTable<EnvironmentValue> {
super(EnvironmentValue.class);
}
@Override
public DBObjectDialog<EnvironmentValue, EnvironmentValueFields> getDialog() {
return new DBObjectDialog<EnvironmentValue, EnvironmentValueFields>(EnvironmentValueFields.class) {
@Override
public void fillFields() {
UI.TrySelect(fields.cbName, Result.name);
fields.tfValue.setText(Result.value);
}
//https://javarush.ru/groups/posts/regulyarnye-vyrazheniya-v-java
@Override
public void validateFields() {
String name = (String) fields.cbName.getSelectedItem();
String value = fields.tfValue.getText();
if (name.isEmpty())
Log.Writeln("Имя переменной окружения не может быть пустым.");
if (!name.matches("\\w*")) {
Log.Writeln("Имя переменной окружения может содержать только латинские буквы, цифры и подчёркивания");
}
if (Utils.isLinuxSystemCommand(name))
Log.Writeln(Utils_.DQuotes(name) + " является системной командой Linux,\nи не может быть задано в качестве имени переменной окружения.");
if (value.contains("\"")) {
Log.Writeln("Значение переменной окружения не может содержать двойные кавычки");
}
for (EnvironmentValue env : Global.mainModule.getDb().environmentValues.Data.values()) {
if (
Global.mainModule.getDb().environmentValues.getUI().isObjectVisible(env)
&& (Result.id != env.id) && (env.name.equals(name))) {
Log.Writeln("В конфигурации запуска уже задана переменная окружения с именем " + Utils_.Brackets(name));
break;
}
}
}
@Override
public void ProcessResult() {
Result.machine_id = Global.mainModule.getMachine().id;
Result.run_configuration_id = Global.mainModule.getRunConfiguration().id;
Result.name = (String) fields.cbName.getSelectedItem();
Result.value = fields.tfValue.getText();
}
@Override
public int getDefaultHeight() {
return 200;
}
};
}
@Override
protected DataSetControlForm createUI(JPanel mountPanel) {
return new EnvironmentsValuesForm(this, mountPanel);
}

View File

@@ -0,0 +1,52 @@
package _VisualDVM.GlobalData.EnvironmentValue.UI;
import Common.Utils.Utils_;
import Common.Visual.UI;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.EnvironmentValue.EnvironmentValue;
import _VisualDVM.Utils;
public class EnvironmentValueDialog extends DBObjectDialog<EnvironmentValue, EnvironmentValueFields> {
public EnvironmentValueDialog() {
super(EnvironmentValueFields.class);
}
@Override
public void fillFields() {
UI.TrySelect(fields.cbName, Result.name);
fields.tfValue.setText(Result.value);
}
//https://javarush.ru/groups/posts/regulyarnye-vyrazheniya-v-java
@Override
public void validateFields() {
String name = (String) fields.cbName.getSelectedItem();
String value = fields.tfValue.getText();
if (name.isEmpty())
Log.Writeln("Имя переменной окружения не может быть пустым.");
if (!name.matches("\\w*")) {
Log.Writeln("Имя переменной окружения может содержать только латинские буквы, цифры и подчёркивания");
}
if (Utils.isLinuxSystemCommand(name))
Log.Writeln(Utils_.DQuotes(name) + " является системной командой Linux,\nи не может быть задано в качестве имени переменной окружения.");
if (value.contains("\"")) {
Log.Writeln("Значение переменной окружения не может содержать двойные кавычки");
}
for (EnvironmentValue env : Global.mainModule.getDb().environmentValues.Data.values()) {
if (
Global.mainModule.getDb().environmentValues.getUI().isObjectVisible(env)
&& (Result.id != env.id) && (env.name.equals(name))) {
Log.Writeln("В конфигурации запуска уже задана переменная окружения с именем " + Utils_.Brackets(name));
break;
}
}
}
@Override
public void ProcessResult() {
Result.machine_id = Global.mainModule.getMachine().id;
Result.run_configuration_id = Global.mainModule.getRunConfiguration().id;
Result.name = (String) fields.cbName.getSelectedItem();
Result.value = fields.tfValue.getText();
}
@Override
public int getDefaultHeight() {
return 200;
}
}

View File

@@ -3,6 +3,8 @@ import Common.Database.Tables.DataSet;
import Common.MainModule_;
import Common.Visual.DataSetControlForm;
import Common.Visual.Menus.DataMenuBar;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import Common.Visual.Windows.Dialog.DialogFields;
import _VisualDVM.Current;
import _VisualDVM.GlobalData.EnvironmentValue.EnvironmentValue;
import _VisualDVM.Passes.PassCode;
@@ -56,4 +58,8 @@ public class EnvironmentsValuesForm extends DataSetControlForm<EnvironmentValue>
public boolean isObjectVisible(EnvironmentValue object) {
return super.isObjectVisible(object) && MainModule_.instance.matchCurrentID(Current.RunConfiguration, object.run_configuration_id);
}
@Override
public DBObjectDialog<EnvironmentValue, ? extends DialogFields> getDialog() {
return new EnvironmentValueDialog();
}
}

View File

@@ -6,12 +6,9 @@ import Common.Database.Tables.FKDataBehaviour;
import Common.Database.Tables.iDBTable;
import Common.Passes.PassCode_;
import Common.Visual.DataSetControlForm;
import Common.Visual.UI;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.GlobalData.Compiler.Compiler;
import _VisualDVM.GlobalData.DVMParameter.DVMParameter;
import _VisualDVM.GlobalData.EnvironmentValue.EnvironmentValue;
import _VisualDVM.GlobalData.Machine.UI.MachineFields;
import _VisualDVM.GlobalData.Machine.UI.MachinesForm;
import _VisualDVM.GlobalData.Makefile.Makefile;
import _VisualDVM.GlobalData.Module.Module;
@@ -28,38 +25,6 @@ public class MachinesDBTable extends iDBTable<Machine> {
super(Machine.class);
}
@Override
public DBObjectDialog<Machine, MachineFields> getDialog() {
return new DBObjectDialog<Machine, MachineFields>(MachineFields.class) {
@Override
public int getDefaultHeight() {
return 250;
}
@Override
public void validateFields() {
if (fields.tfAddress.getText().isEmpty())
Log.Writeln("Адрес машины не может быть пустым");
}
@Override
public void fillFields() {
fields.tfName.setText(Result.name);
fields.tfAddress.setText(Result.address);
fields.sPort.setValue(Result.port);
UI.TrySelect(fields.cbMachineType, Result.type);
}
@Override
public void ProcessResult() {
Result.name = fields.tfName.getText();
Result.address = fields.tfAddress.getText();
Result.port = (int) fields.sPort.getValue();
Result.type = (MachineType) fields.cbMachineType.getSelectedItem();
}
@Override
public void SetEditLimits() {
fields.cbMachineType.setEnabled(false);
}
};
}
@Override
public LinkedHashMap<Class<? extends DBObject>, FKBehaviour> getFKDependencies() {
LinkedHashMap<Class<? extends DBObject>, FKBehaviour> res = new LinkedHashMap<>();
//-

View File

@@ -0,0 +1,37 @@
package _VisualDVM.GlobalData.Machine.UI;
import Common.Visual.UI;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.GlobalData.Machine.Machine;
import _VisualDVM.GlobalData.Machine.MachineType;
public class MachineDialog extends DBObjectDialog<Machine, MachineFields> {
public MachineDialog() {
super(MachineFields.class);
}
@Override
public int getDefaultHeight() {
return 250;
}
@Override
public void validateFields() {
if (fields.tfAddress.getText().isEmpty())
Log.Writeln("Адрес машины не может быть пустым");
}
@Override
public void fillFields() {
fields.tfName.setText(Result.name);
fields.tfAddress.setText(Result.address);
fields.sPort.setValue(Result.port);
UI.TrySelect(fields.cbMachineType, Result.type);
}
@Override
public void ProcessResult() {
Result.name = fields.tfName.getText();
Result.address = fields.tfAddress.getText();
Result.port = (int) fields.sPort.getValue();
Result.type = (MachineType) fields.cbMachineType.getSelectedItem();
}
@Override
public void SetEditLimits() {
fields.cbMachineType.setEnabled(false);
}
}

View File

@@ -3,6 +3,8 @@ import Common.Database.Tables.DataSet;
import Common.Visual.Controls.MenuBarButton;
import Common.Visual.DataSetControlForm;
import Common.Visual.Menus.DataMenuBar;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import Common.Visual.Windows.Dialog.DialogFields;
import _VisualDVM.Current;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.Machine.Machine;
@@ -36,6 +38,15 @@ public class MachinesForm extends DataSetControlForm<Machine> {
return new String[]{"URL"};
}
@Override
public Object getFieldAt(Machine object, int columnIndex) {
switch (columnIndex) {
case 2:
return object.getURL();
default:
return null;
}
}
@Override
public void ShowCurrentObject() throws Exception {
super.ShowCurrentObject();
Global.mainModule.getUI().getMainWindow().getTestingWindow().ShowCurrentCompiler();
@@ -74,12 +85,7 @@ public class MachinesForm extends DataSetControlForm<Machine> {
};
}
@Override
public Object getFieldAt(Machine object, int columnIndex) {
switch (columnIndex) {
case 2:
return object.getURL();
default:
return null;
}
public DBObjectDialog<Machine, ? extends DialogFields> getDialog() {
return new MachineDialog();
}
}

View File

@@ -6,11 +6,8 @@ import Common.Database.Tables.FKDataBehaviour;
import Common.Database.Tables.iDBTable;
import Common.Passes.PassCode_;
import Common.Visual.DataSetControlForm;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.GlobalData.Makefile.UI.MakefilesForm;
import _VisualDVM.GlobalData.Module.Module;
import _VisualDVM.GlobalData.Module.UI.ModuleAnchestorFields;
import _VisualDVM.GlobalData.Module.UI.ModuleAnchestorForm;
import _VisualDVM.GlobalData.Tasks.CompilationTask.CompilationTask;
import _VisualDVM.Passes.PassCode;
@@ -21,10 +18,6 @@ public class MakefilesDBTable extends iDBTable<Makefile> {
super(Makefile.class);
}
@Override
public DBObjectDialog<Makefile, ModuleAnchestorFields> getDialog() {
return new ModuleAnchestorForm<>();
}
@Override
public LinkedHashMap<Class<? extends DBObject>, FKBehaviour> getFKDependencies() {
LinkedHashMap<Class<? extends DBObject>, FKBehaviour> res = new LinkedHashMap<>();
res.put(Module.class, new FKBehaviour(FKDataBehaviour.DELETE, FKCurrentObjectBehaviuor.ACTIVE));

View File

@@ -3,8 +3,11 @@ import Common.Database.Tables.DataSet;
import Common.MainModule_;
import Common.Visual.DataSetControlForm;
import Common.Visual.Menus.DataMenuBar;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.Current;
import _VisualDVM.GlobalData.Makefile.Makefile;
import _VisualDVM.GlobalData.Module.UI.ModuleAnchestorFields;
import _VisualDVM.GlobalData.Module.UI.ModuleAnchestorForm;
import _VisualDVM.Passes.PassCode;
import javax.swing.*;
@@ -71,4 +74,8 @@ public class MakefilesForm extends DataSetControlForm<Makefile> {
return super.isObjectVisible(object) &&
MainModule_.instance.matchCurrentID(Current.Machine, object.machine_id);
}
@Override
public DBObjectDialog<Makefile, ModuleAnchestorFields> getDialog() {
return new ModuleAnchestorForm<>();
}
}

View File

@@ -1,9 +1,6 @@
package _VisualDVM.GlobalData.Module;
import Common.Database.Tables.iDBTable;
import Common.Visual.DataSetControlForm;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import Common.Visual.Windows.Dialog.DialogFields;
import _VisualDVM.GlobalData.Module.UI.ModuleAnchestorForm;
import _VisualDVM.GlobalData.Module.UI.ModulesForm;
import javax.swing.*;
@@ -12,10 +9,6 @@ public class ModulesDBTable extends iDBTable<Module> {
super(Module.class);
}
@Override
public DBObjectDialog<Module, ? extends DialogFields> getDialog() {
return new ModuleAnchestorForm<>();
}
@Override
protected DataSetControlForm createUI(JPanel mountPanel) {
return new ModulesForm(this, mountPanel);
}

View File

@@ -3,6 +3,8 @@ import Common.Database.Tables.DataSet;
import Common.MainModule_;
import Common.Visual.DataSetControlForm;
import Common.Visual.Menus.DataMenuBar;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import Common.Visual.Windows.Dialog.DialogFields;
import _VisualDVM.Current;
import _VisualDVM.GlobalData.Module.Module;
import _VisualDVM.Passes.PassCode;
@@ -64,4 +66,8 @@ public class ModulesForm extends DataSetControlForm<Module> {
public boolean isObjectVisible(Module object) {
return super.isObjectVisible(object) && MainModule_.instance.matchCurrentID(Current.Makefile, object.makefile_id);
}
@Override
public DBObjectDialog<Module, ? extends DialogFields> getDialog() {
return new ModuleAnchestorForm<>();
}
}

View File

@@ -1,5 +1,4 @@
package _VisualDVM.GlobalData.RunConfiguration;
import Common.CommonConstants;
import Common.Database.Objects.DBObject;
import Common.Database.Tables.FKBehaviour;
import Common.Database.Tables.FKCurrentObjectBehaviuor;
@@ -7,101 +6,19 @@ import Common.Database.Tables.FKDataBehaviour;
import Common.Database.Tables.iDBTable;
import Common.Passes.PassCode_;
import Common.Visual.DataSetControlForm;
import Common.Visual.UI;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.Compiler.Compiler;
import _VisualDVM.GlobalData.Compiler.CompilerType;
import _VisualDVM.GlobalData.DVMParameter.DVMParameter;
import _VisualDVM.GlobalData.EnvironmentValue.EnvironmentValue;
import _VisualDVM.GlobalData.RunConfiguration.UI.MatrixBar;
import _VisualDVM.GlobalData.RunConfiguration.UI.RunConfigurationFields;
import _VisualDVM.GlobalData.RunConfiguration.UI.RunConfigurationsForm;
import _VisualDVM.GlobalData.Tasks.RunTask.RunTask;
import _VisualDVM.Passes.PassCode;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.LinkedHashMap;
public class RunConfigurationsDBTable extends iDBTable<RunConfiguration> {
public RunConfigurationsDBTable() {
super(RunConfiguration.class);
}
@Override
public DBObjectDialog<RunConfiguration, RunConfigurationFields> getDialog() {
return new DBObjectDialog<RunConfiguration, RunConfigurationFields>(RunConfigurationFields.class) {
@Override
public void fillFields() {
for (Compiler compiler : (Global.mainModule.getDb()).compilers.Data.values()) {
if (Global.mainModule.getDb().compilers.getUI().isObjectVisible(compiler)
&& compiler.type.equals(CompilerType.dvm))
fields.cbLauncherCall.addItem(compiler);
}
UI.TrySelect_s(fields.cbLauncherCall, Result.LauncherCall);
UI.TrySelect(fields.cbLaunchOptions, Result.LauncherOptions);
fields.tfArgs.setText(Result.args);
fields.cbLauncherCall.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (fields.cbLauncherCall.getSelectedItem() instanceof Compiler) {
UI.TrySelect(fields.cbLaunchOptions, "run");
}
}
});
fields.cbCube.setSelected(Result.isCube());
//------------------------------------------->>>
fields.sMaxDim.setModel(new SpinnerNumberModel(
Result.dim,
0, RunConfiguration.maxProc, 1));
fields.minMatrixPanel.add(fields.minMatrixBar = new MatrixBar(Result.minMatrix));
fields.maxMatrixPanel.add(fields.maxMatrixBar = new MatrixBar(Result.maxMatrix));
//------------------------------------------->>>
if (!edit)
fields.sMaxDim.setValue(Global.mainModule.getProject().maxdim);
}
@Override
public void ProcessResult() {
Result.machine_id = Global.mainModule.getMachine().id;
Result.LauncherCall = fields.cbLauncherCall.getSelectedItem().toString();
Result.LauncherOptions = (String) fields.cbLaunchOptions.getSelectedItem();
if (fields.cbLauncherCall.getSelectedItem() instanceof Compiler) {
Result.compiler_id = ((Compiler) (fields.cbLauncherCall.getSelectedItem())).id;
} else Result.compiler_id = CommonConstants.Nan;
//-
Result.dim = (int) fields.sMaxDim.getValue();
Result.minMatrix = fields.minMatrixBar.pack(Result.dim);
Result.maxMatrix = fields.maxMatrixBar.pack(Result.dim);
//-
Result.args = fields.tfArgs.getText();
Result.cube = fields.cbCube.isSelected() ? 1 : 0;
}
@Override
public void validateFields() {
String launcher_call = fields.cbLauncherCall.getSelectedItem().toString();
String launcher_options = (String) fields.cbLaunchOptions.getSelectedItem();
if (launcher_call.isEmpty() && !launcher_options.isEmpty())
Log.Writeln_("Непустые опции запуска допускаются только для DVM системы или MPI");
if (fields.cbLauncherCall.getSelectedItem() instanceof Compiler) {
Compiler compiler = (Compiler) (fields.cbLauncherCall.getSelectedItem());
switch (compiler.type) {
case dvm:
case mpi:
int dim_ = (int) fields.sMaxDim.getValue();
RunConfiguration.validateMatrixes(
fields.minMatrixBar.pack(dim_),
fields.maxMatrixBar.pack(dim_),
dim_,
fields.cbCube.isSelected(),
Log
);
break;
}
}
}
};
}
@Override
public LinkedHashMap<Class<? extends DBObject>, FKBehaviour> getFKDependencies() {
LinkedHashMap<Class<? extends DBObject>, FKBehaviour> res = new LinkedHashMap<>();
res.put(RunTask.class, new FKBehaviour(FKDataBehaviour.DELETE, FKCurrentObjectBehaviuor.ACTIVE));

View File

@@ -0,0 +1,85 @@
package _VisualDVM.GlobalData.RunConfiguration.UI;
import Common.CommonConstants;
import Common.Visual.UI;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.Compiler.Compiler;
import _VisualDVM.GlobalData.Compiler.CompilerType;
import _VisualDVM.GlobalData.RunConfiguration.RunConfiguration;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class RunConfigurationDialog extends DBObjectDialog<RunConfiguration, RunConfigurationFields> {
public RunConfigurationDialog() {
super(RunConfigurationFields.class);
}
@Override
public void fillFields() {
for (Compiler compiler : (Global.mainModule.getDb()).compilers.Data.values()) {
if (Global.mainModule.getDb().compilers.getUI().isObjectVisible(compiler)
&& compiler.type.equals(CompilerType.dvm))
fields.cbLauncherCall.addItem(compiler);
}
UI.TrySelect_s(fields.cbLauncherCall, Result.LauncherCall);
UI.TrySelect(fields.cbLaunchOptions, Result.LauncherOptions);
fields.tfArgs.setText(Result.args);
fields.cbLauncherCall.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (fields.cbLauncherCall.getSelectedItem() instanceof Compiler) {
UI.TrySelect(fields.cbLaunchOptions, "run");
}
}
});
fields.cbCube.setSelected(Result.isCube());
//------------------------------------------->>>
fields.sMaxDim.setModel(new SpinnerNumberModel(
Result.dim,
0, RunConfiguration.maxProc, 1));
fields.minMatrixPanel.add(fields.minMatrixBar = new MatrixBar(Result.minMatrix));
fields.maxMatrixPanel.add(fields.maxMatrixBar = new MatrixBar(Result.maxMatrix));
//------------------------------------------->>>
if (!edit)
fields.sMaxDim.setValue(Global.mainModule.getProject().maxdim);
}
@Override
public void ProcessResult() {
Result.machine_id = Global.mainModule.getMachine().id;
Result.LauncherCall = fields.cbLauncherCall.getSelectedItem().toString();
Result.LauncherOptions = (String) fields.cbLaunchOptions.getSelectedItem();
if (fields.cbLauncherCall.getSelectedItem() instanceof Compiler) {
Result.compiler_id = ((Compiler) (fields.cbLauncherCall.getSelectedItem())).id;
} else Result.compiler_id = CommonConstants.Nan;
//-
Result.dim = (int) fields.sMaxDim.getValue();
Result.minMatrix = fields.minMatrixBar.pack(Result.dim);
Result.maxMatrix = fields.maxMatrixBar.pack(Result.dim);
//-
Result.args = fields.tfArgs.getText();
Result.cube = fields.cbCube.isSelected() ? 1 : 0;
}
@Override
public void validateFields() {
String launcher_call = fields.cbLauncherCall.getSelectedItem().toString();
String launcher_options = (String) fields.cbLaunchOptions.getSelectedItem();
if (launcher_call.isEmpty() && !launcher_options.isEmpty())
Log.Writeln_("Непустые опции запуска допускаются только для DVM системы или MPI");
if (fields.cbLauncherCall.getSelectedItem() instanceof Compiler) {
Compiler compiler = (Compiler) (fields.cbLauncherCall.getSelectedItem());
switch (compiler.type) {
case dvm:
case mpi:
int dim_ = (int) fields.sMaxDim.getValue();
RunConfiguration.validateMatrixes(
fields.minMatrixBar.pack(dim_),
fields.maxMatrixBar.pack(dim_),
dim_,
fields.cbCube.isSelected(),
Log
);
break;
}
}
}
}

View File

@@ -3,6 +3,7 @@ import Common.Database.Tables.DataSet;
import Common.MainModule_;
import Common.Visual.DataSetControlForm;
import Common.Visual.Menus.DataMenuBar;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.Current;
import _VisualDVM.GlobalData.RunConfiguration.RunConfiguration;
import _VisualDVM.Passes.PassCode;
@@ -78,4 +79,8 @@ public class RunConfigurationsForm extends DataSetControlForm<RunConfiguration>
public boolean isObjectVisible(RunConfiguration object) {
return super.isObjectVisible(object) && MainModule_.instance.matchCurrentID(Current.Machine, object.machine_id);
}
@Override
public DBObjectDialog getDialog() {
return new RunConfigurationDialog();
}
}

View File

@@ -6,8 +6,6 @@ import Common.Database.Tables.FKDataBehaviour;
import Common.Database.Tables.iDBTable;
import Common.Passes.PassCode_;
import Common.Visual.DataSetControlForm;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.GlobalData.SapforProfile.UI.SapforProfileFields;
import _VisualDVM.GlobalData.SapforProfile.UI.SapforProfilesForm;
import _VisualDVM.GlobalData.SapforProfileSetting.SapforProfileSetting;
import _VisualDVM.Passes.PassCode;
@@ -23,23 +21,6 @@ public class SapforProfilesDBTable extends iDBTable<SapforProfile> {
return new SapforProfilesForm(this, mountPanel);
}
@Override
public DBObjectDialog<SapforProfile, SapforProfileFields> getDialog() {
return new DBObjectDialog<SapforProfile, SapforProfileFields>(SapforProfileFields.class) {
@Override
public int getDefaultHeight() {
return 250;
}
@Override
public void fillFields() {
fields.tfDescription.setText(edit ? Result.description : "По умолчанию");
}
@Override
public void ProcessResult() {
Result.description = fields.tfDescription.getText();
}
};
}
@Override
public LinkedHashMap<Class<? extends DBObject>, FKBehaviour> getFKDependencies() {
LinkedHashMap<Class<? extends DBObject>, FKBehaviour> res = new LinkedHashMap<>();
res.put(SapforProfileSetting.class, new FKBehaviour(FKDataBehaviour.DELETE, FKCurrentObjectBehaviuor.ACTIVE));

View File

@@ -0,0 +1,20 @@
package _VisualDVM.GlobalData.SapforProfile.UI;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.GlobalData.SapforProfile.SapforProfile;
public class SapforProfileDialog extends DBObjectDialog<SapforProfile, SapforProfileFields> {
public SapforProfileDialog() {
super(SapforProfileFields.class);
}
@Override
public int getDefaultHeight() {
return 250;
}
@Override
public void fillFields() {
fields.tfDescription.setText(edit ? Result.description : "По умолчанию");
}
@Override
public void ProcessResult() {
Result.description = fields.tfDescription.getText();
}
}

View File

@@ -2,6 +2,8 @@ package _VisualDVM.GlobalData.SapforProfile.UI;
import Common.Database.Tables.DataSet;
import Common.Visual.DataSetControlForm;
import Common.Visual.Menus.DataMenuBar;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import Common.Visual.Windows.Dialog.DialogFields;
import _VisualDVM.Current;
import _VisualDVM.GlobalData.SapforProfile.SapforProfile;
import _VisualDVM.Passes.PassCode;
@@ -54,4 +56,8 @@ public class SapforProfilesForm extends DataSetControlForm<SapforProfile> {
PassCode.ApplyProfile,
PassCode.DeleteProfile);
}
@Override
public DBObjectDialog<SapforProfile, ? extends DialogFields> getDialog() {
return new SapforProfileDialog();
}
}

View File

@@ -0,0 +1,41 @@
package _VisualDVM.GlobalData.User.UI;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.Machine.MachineType;
import _VisualDVM.GlobalData.User.User;
import _VisualDVM.GlobalData.User.UserAuthentication;
public class UserDialog extends DBObjectDialog<User, UserFields> {
public UserDialog() {
super(UserFields.class);
}
@Override
public void SetEditLimits() {
fields.tfLogin.setEditable(false);
}
@Override
public void fillFields() {
if (Global.mainModule.getMachine().type.equals(MachineType.Local)) {
Result.login = "этот пользователь";
fields.tfLogin.setEditable(false);
}
fields.tfLogin.setText(Result.login);
fields.tfPassword.setText(Result.password);
fields.tfWorkspace.setText(Result.workspace);
}
@Override
public void validateFields() {
if (fields.tfLogin.getText().isEmpty())
Log.Writeln_("Логин пользователя не может быть пустым");
}
@Override
public void ProcessResult() {
Result.machine_id = Global.mainModule.getMachine().id;
Result.login = fields.tfLogin.getText();
Result.authentication = UserAuthentication.password;
Result.password = new String(fields.tfPassword.getPassword());
}
@Override
public int getDefaultHeight() {
return 250;
}
}

View File

@@ -4,6 +4,7 @@ import Common.MainModule_;
import Common.Visual.DataSetControlForm;
import Common.Visual.Menus.DataMenuBar;
import Common.Visual.Tables.RendererStatusEnum;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.Current;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.User.User;
@@ -74,4 +75,8 @@ public class UsersForm extends DataSetControlForm<User> {
public boolean isObjectVisible(User object) {
return super.isObjectVisible(object) && super.isObjectVisible(object) && MainModule_.instance.matchCurrentID(Current.Machine, object.machine_id);
}
@Override
public DBObjectDialog getDialog() {
return new UserDialog();
}
}

View File

@@ -6,12 +6,8 @@ import Common.Database.Tables.FKDataBehaviour;
import Common.Database.Tables.iDBTable;
import Common.Passes.PassCode_;
import Common.Visual.DataSetControlForm;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.Machine.MachineType;
import _VisualDVM.GlobalData.Tasks.CompilationTask.CompilationTask;
import _VisualDVM.GlobalData.Tasks.RunTask.RunTask;
import _VisualDVM.GlobalData.User.UI.UserFields;
import _VisualDVM.GlobalData.User.UI.UsersForm;
import _VisualDVM.Passes.PassCode;
@@ -29,41 +25,6 @@ public class UsersDBTable extends iDBTable<User> {
return res;
}
@Override
public DBObjectDialog<User, UserFields> getDialog() {
return new DBObjectDialog<User, UserFields>(UserFields.class) {
@Override
public void SetEditLimits() {
fields.tfLogin.setEditable(false);
}
@Override
public void fillFields() {
if (Global.mainModule.getMachine().type.equals(MachineType.Local)) {
Result.login = "этот пользователь";
fields.tfLogin.setEditable(false);
}
fields.tfLogin.setText(Result.login);
fields.tfPassword.setText(Result.password);
fields.tfWorkspace.setText(Result.workspace);
}
@Override
public void validateFields() {
if (fields.tfLogin.getText().isEmpty())
Log.Writeln_("Логин пользователя не может быть пустым");
}
@Override
public void ProcessResult() {
Result.machine_id = Global.mainModule.getMachine().id;
Result.login = fields.tfLogin.getText();
Result.authentication = UserAuthentication.password;
Result.password = new String(fields.tfPassword.getPassword());
}
@Override
public int getDefaultHeight() {
return 250;
}
};
}
@Override
protected DataSetControlForm createUI(JPanel mountPanel) {
return new UsersForm(this, mountPanel);
}