package _VisualDVM.TestingSystem.DVM.DVMSettings; import Common.Database.Objects.DBObject; import Common.Database.Tables.iDBTable; import Common.Passes.PassCode_; import Common.Visual.DataSetControlForm; import Common.Visual.Windows.Dialog.DBObjectDialog; import _VisualDVM.Global; import _VisualDVM.Passes.PassCode; import _VisualDVM.TestingSystem.DVM.DVMSettings.UI.DVMSettingsFields; import _VisualDVM.TestingSystem.DVM.DVMSettings.UI.DVMSettingsForm; import javax.swing.*; public class DVMSettingsDBTable extends iDBTable { public DVMSettingsDBTable() { super(DVMSettings.class); } @Override protected DataSetControlForm createUI(JPanel mountPanel) { return new DVMSettingsForm(this, mountPanel); } @Override public DBObjectDialog getDialog() { return new DBObjectDialog(DVMSettingsFields.class) { @Override public int getDefaultHeight() { return 400; } @Override public int getDefaultWidth() { return 800; } @Override public void validateFields() { int min = (int) fields.sMinDimProc.getValue(); int max = (int) fields.sMaxDimProc.getValue(); if (max < min) Log.Writeln_("Некорректный диапазон размерностей: максимум меньше минимума"); if ((min == 0) && (max != 0) || (min != 0) && (max == 0)) Log.Writeln_("Некорректный диапазон размерностей. " + "'0' допускается только одновременно на обеих границах,\n" + "и подразумевает единственный запуск без решётки"); } @Override public void fillFields() { fields.tfName.setText(Result.description); //------->>> fields.tfFlags.setText(Result.flags); fields.tfEnvironments.setText(Result.environments); //------->>> fields.sMinDimProc.setValue(Result.min_dim_proc_count); fields.sMaxDimProc.setValue(Result.max_dim_proc_count); fields.cbCube.setSelected(Result.cube == 1); //- fields.sMaxProc.setValue(Result.max_proc_count); fields.cbDvmStat.setSelected(Result.Is_DVM_STAT != 0); } @Override public void ProcessResult() { Result.description = fields.tfName.getText(); Result.min_dim_proc_count = (int) fields.sMinDimProc.getValue(); Result.max_dim_proc_count = (int) fields.sMaxDimProc.getValue(); Result.cube = fields.cbCube.isSelected() ? 1 : 0; Result.max_proc_count = (int) fields.sMaxProc.getValue(); Result.flags = fields.tfFlags.getText(); Result.environments = fields.tfEnvironments.getText(); Result.Is_DVM_STAT = fields.cbDvmStat.isSelected() ? 1 : 0; } @Override public void SetReadonly() { fields.tfName.setEnabled(false); fields.sMinDimProc.setEnabled(false); fields.sMaxDimProc.setEnabled(false); fields.cbCube.setEnabled(false); fields.sMaxProc.setEnabled(false); } }; } @Override public boolean ShowEditObjectDialog(DBObject object) { return (Global.mainModule.getAccount().CheckAccessRights(((DVMSettings) object).sender_address, null)) ? super.ShowEditObjectDialog(object) : ViewObject(object); } @Override public PassCode_ getDeletePassCode() { return PassCode.DeleteDVMSettings; } }