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

108 lines
4.7 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 _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;
}
}