108 lines
4.7 KiB
Java
108 lines
4.7 KiB
Java
package _VisualDVM.GlobalData.EnvironmentValue;
|
||
import Common.Database.Tables.iDBTable;
|
||
import Common.Passes.PassCode_;
|
||
import Common.Utils.Utils_;
|
||
import Common.Visual.DataSetControlForm;
|
||
import Common.Visual.Menus.DataMenuBar;
|
||
import Common.Visual.UI;
|
||
import Common.Visual.Windows.Dialog.DBObjectDialog;
|
||
import _VisualDVM.Current;
|
||
import _VisualDVM.Global;
|
||
import _VisualDVM.GlobalData.EnvironmentValue.UI.EnvironmentValueFields;
|
||
import _VisualDVM.Passes.PassCode;
|
||
import _VisualDVM.Utils;
|
||
|
||
import javax.swing.*;
|
||
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);
|
||
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 (env.isVisible() && (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 DataSetControlForm(this, mountPanel) {
|
||
@Override
|
||
public String[] getUIColumnNames() {
|
||
return new String[]{
|
||
"имя",
|
||
"значение"};
|
||
}
|
||
@Override
|
||
protected void AdditionalInitColumns() {
|
||
columns.get(0).setVisible(false);
|
||
}
|
||
@Override
|
||
public DataMenuBar createMenuBar() {
|
||
return new DataMenuBar(getPluralDescription(),
|
||
PassCode.AddEnvironmentValue,
|
||
PassCode.EditEnvironmentValue,
|
||
PassCode.DeleteEnvironmentValue,
|
||
PassCode.PickCompilerEnvironments);
|
||
}
|
||
};
|
||
}
|
||
@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 PassCode_ getDeletePassCode() {
|
||
return PassCode.DeleteEnvironmentValue;
|
||
}
|
||
}
|