package GlobalData.DVMParameter; import Common_old.Current; import Common.Database.Tables.iDBTable; import _VisualDVM.Global; import Common_old.UI.DataSetControlForm; import Common_old.UI.UI; import Common_old.UI.Windows.Dialog.DBObjectDialog; import Common_old.Utils.Utils; import GlobalData.DVMParameter.UI.DVMParameterFields; public class DVMParameterDBTable extends iDBTable { public DVMParameterDBTable() { super(DVMParameter.class); } @Override public String getSingleDescription() { return "параметр DVM системы"; } @Override public String getPluralDescription() { return "параметры DVM"; } @Override public String[] getUIColumnNames() { return new String[]{"имя", "значение"}; } @Override public Object getFieldAt(DVMParameter object, int columnIndex) { switch (columnIndex) { case 1: return object.name; case 2: return object.value; } return null; } @Override public Current CurrentName() { return Current.DVMParameterValue; } @Override protected DataSetControlForm createUI() { return new DataSetControlForm(this){ @Override protected void AdditionalInitColumns() { columns.get(0).setVisible(false); } }; } @Override public DBObjectDialog getDialog() { return new DBObjectDialog(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.db.dvmParameters.Data.values()) { if (par.isVisible() && (Result.id != par.id) && (par.name.equals(name))) { Log.Writeln("В конфигурации запуска уже задан параметр DVM системы с именем " + Utils.Brackets(name)); break; } } } @Override public void ProcessResult() { Result.machine_id = Current.getMachine().id; Result.run_configuration_id = Current.getRunConfiguration().id; Result.name = (String) fields.cbName.getSelectedItem(); Result.value = fields.tfValue.getText(); } @Override public int getDefaultHeight() { return 200; } }; } }