2024-10-09 22:21:57 +03:00
|
|
|
|
package _VisualDVM.GlobalData.EnvironmentValue;
|
2024-10-11 00:00:30 +03:00
|
|
|
|
import Common.Utils.Utils_;
|
|
|
|
|
|
import Common.Visual.UI_;
|
2024-10-09 22:01:19 +03:00
|
|
|
|
import _VisualDVM.Current;
|
2024-10-07 00:58:29 +03:00
|
|
|
|
import Common.Database.Tables.iDBTable;
|
2024-10-08 00:39:13 +03:00
|
|
|
|
import Common.Visual.DataSetControlForm;
|
2024-10-08 22:33:49 +03:00
|
|
|
|
import Common.Visual.Windows.Dialog.DBObjectDialog;
|
2024-10-09 22:01:19 +03:00
|
|
|
|
import _VisualDVM.Utils;
|
2024-10-09 22:21:57 +03:00
|
|
|
|
import _VisualDVM.GlobalData.EnvironmentValue.UI.EnvironmentValueFields;
|
|
|
|
|
|
import _VisualDVM.GlobalData.GlobalDatabase;
|
2023-09-17 22:13:42 +03:00
|
|
|
|
public class EnvironmentValuesDBTable extends iDBTable<EnvironmentValue> {
|
|
|
|
|
|
public EnvironmentValuesDBTable() {
|
|
|
|
|
|
super(EnvironmentValue.class);
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public String getSingleDescription() {
|
|
|
|
|
|
return "переменная окружения";
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public String getPluralDescription() {
|
|
|
|
|
|
return "переменные окружения";
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public DBObjectDialog<EnvironmentValue, EnvironmentValueFields> getDialog() {
|
|
|
|
|
|
return new DBObjectDialog<EnvironmentValue, EnvironmentValueFields>(EnvironmentValueFields.class) {
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void fillFields() {
|
2024-10-11 00:00:30 +03:00
|
|
|
|
UI_.TrySelect(fields.cbName, Result.name);
|
2023-09-17 22:13:42 +03:00
|
|
|
|
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))
|
2024-10-11 00:00:30 +03:00
|
|
|
|
Log.Writeln(Utils_.DQuotes(name) + " является системной командой Linux,\nи не может быть задано в качестве имени переменной окружения.");
|
2023-09-17 22:13:42 +03:00
|
|
|
|
if (value.contains("\"")) {
|
|
|
|
|
|
Log.Writeln("Значение переменной окружения не может содержать двойные кавычки");
|
|
|
|
|
|
}
|
2024-10-11 00:00:30 +03:00
|
|
|
|
for (EnvironmentValue env : ((GlobalDatabase) Utils_.db).environmentValues.Data.values()) {
|
2023-09-17 22:13:42 +03:00
|
|
|
|
if (env.isVisible() && (Result.id != env.id) && (env.name.equals(name))) {
|
2024-10-11 00:00:30 +03:00
|
|
|
|
Log.Writeln("В конфигурации запуска уже задана переменная окружения с именем " + Utils_.Brackets(name));
|
2023-09-17 22:13:42 +03:00
|
|
|
|
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;
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
protected DataSetControlForm createUI() {
|
|
|
|
|
|
return new DataSetControlForm(this){
|
|
|
|
|
|
@Override
|
|
|
|
|
|
protected void AdditionalInitColumns() {
|
|
|
|
|
|
columns.get(0).setVisible(false);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public String[] getUIColumnNames() {
|
|
|
|
|
|
return new String[]{"имя", "значение"};
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public Object getFieldAt(EnvironmentValue object, int columnIndex) {
|
|
|
|
|
|
switch (columnIndex) {
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
return object.name;
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
return object.value;
|
|
|
|
|
|
}
|
|
|
|
|
|
return null;
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public Current CurrentName() {
|
|
|
|
|
|
return Current.EnvironmentValue;
|
|
|
|
|
|
}
|
|
|
|
|
|
public EnvironmentValue getEnvByName(String name_in) {
|
|
|
|
|
|
for (EnvironmentValue environmentValue : Data.values())
|
|
|
|
|
|
if (environmentValue.name.equalsIgnoreCase(name_in)) return environmentValue;
|
|
|
|
|
|
return null;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|