Files
VisualSapfor/src/GlobalData/DVMParameter/DVMParameterDBTable.java

100 lines
4.0 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package GlobalData.DVMParameter;
import Common.Utils.CommonUtils;
import Common.Visual.CommonUI;
import Common_old.Current;
import Common.Database.Tables.iDBTable;
import Common.Visual.DataSetControlForm;
import Common_old.UI.Windows.Dialog.DBObjectDialog;
import Common_old.Utils.Utils;
import GlobalData.DVMParameter.UI.DVMParameterFields;
import GlobalData.GlobalDatabase;
public class DVMParameterDBTable extends iDBTable<DVMParameter> {
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<DVMParameter, DVMParameterFields> getDialog() {
return new DBObjectDialog<DVMParameter, DVMParameterFields>(DVMParameterFields.class) {
@Override
public void fillFields() {
CommonUI.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(CommonUtils.DQuotes(name) + " является системной командой Linux,\nи не может быть задано в качестве имени переменной окружения.");
/*
if (value.contains("\"")) {
Log.Writeln("Значение переменной окружения не может содержать двойные кавычки");
}
*/
for (DVMParameter par : ((GlobalDatabase)CommonUtils.db).dvmParameters.Data.values()) {
if (par.isVisible() && (Result.id != par.id) && (par.name.equals(name))) {
Log.Writeln("В конфигурации запуска уже задан параметр DVM системы с именем " + CommonUtils.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;
}
};
}
}