Files
VisualSapfor/src/_VisualDVM/GlobalData/EnvironmentValue/EnvironmentValuesDBTable.java

114 lines
4.7 KiB
Java
Raw Normal View History

2024-10-09 22:21:57 +03:00
package _VisualDVM.GlobalData.EnvironmentValue;
import Common.Database.Tables.iDBTable;
import Common.Passes.PassCode_;
2024-10-14 15:19:13 +03:00
import Common.Utils.Utils_;
import Common.Visual.DataSetControlForm;
import Common.Visual.Menus.DataMenuBar;
import Common.Visual.UI;
2024-10-08 22:33:49 +03:00
import Common.Visual.Windows.Dialog.DBObjectDialog;
2024-10-14 15:19:13 +03:00
import _VisualDVM.Current;
2024-10-12 00:17:51 +03:00
import _VisualDVM.Global;
2024-10-09 22:21:57 +03:00
import _VisualDVM.GlobalData.EnvironmentValue.UI.EnvironmentValueFields;
import _VisualDVM.Passes.PassCode;
2024-10-14 15:19:13 +03:00
import _VisualDVM.Utils;
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() {
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-12 00:17:51 +03:00
for (EnvironmentValue env : (Global.mainModule.getDb()).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 = Global.mainModule.getMachine().id;
Result.run_configuration_id = Global.mainModule.getRunConfiguration().id;
2023-09-17 22:13:42 +03:00
Result.name = (String) fields.cbName.getSelectedItem();
Result.value = fields.tfValue.getText();
}
@Override
public int getDefaultHeight() {
return 200;
}
};
}
@Override
protected DataSetControlForm createUI() {
2024-10-14 15:19:13 +03:00
return new DataSetControlForm(this) {
2023-09-17 22:13:42 +03:00
@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;
}
@Override
public DataMenuBar createMenuBar() {
return new DataMenuBar(getPluralDescription(),
PassCode.AddEnvironmentValue,
PassCode.EditEnvironmentValue,
PassCode.DeleteEnvironmentValue,
PassCode.PickCompilerEnvironments);
}
@Override
public PassCode_ getDeletePassCode() {
return PassCode.DeleteEnvironmentValue;
}
2023-09-17 22:13:42 +03:00
}