package _VisualDVM.GlobalData.User; import Common.Database.Objects.DBObject; import Common.Database.Tables.FKBehaviour; import Common.Database.Tables.FKCurrentObjectBehaviuor; import Common.Database.Tables.FKDataBehaviour; import Common.Database.Tables.iDBTable; import Common.Passes.PassCode_; import Common.Visual.DataSetControlForm; import Common.Visual.Menus.DataMenuBar; import Common.Visual.Tables.RendererStatusEnum; import Common.Visual.Windows.Dialog.DBObjectDialog; import _VisualDVM.Current; import _VisualDVM.Global; import _VisualDVM.GlobalData.Machine.MachineType; import _VisualDVM.GlobalData.Tasks.CompilationTask.CompilationTask; import _VisualDVM.GlobalData.Tasks.RunTask.RunTask; import _VisualDVM.GlobalData.User.UI.UserFields; import _VisualDVM.Passes.PassCode; import javax.swing.*; import java.util.LinkedHashMap; public class UsersDBTable extends iDBTable { public UsersDBTable() { super(User.class); } @Override public String getSingleDescription() { return "пользователь"; } @Override public String getPluralDescription() { return "пользователи"; } @Override public LinkedHashMap, FKBehaviour> getFKDependencies() { LinkedHashMap, FKBehaviour> res = new LinkedHashMap<>(); res.put(CompilationTask.class, new FKBehaviour(FKDataBehaviour.DELETE, FKCurrentObjectBehaviuor.ACTIVE)); res.put(RunTask.class, new FKBehaviour(FKDataBehaviour.DELETE, FKCurrentObjectBehaviuor.PASSIVE)); return res; } @Override public DBObjectDialog getDialog() { return new DBObjectDialog(UserFields.class) { @Override public void SetEditLimits() { fields.tfLogin.setEditable(false); } @Override public void fillFields() { if (Global.mainModule.getMachine().type.equals(MachineType.Local)) { Result.login = "этот пользователь"; fields.tfLogin.setEditable(false); } fields.tfLogin.setText(Result.login); fields.tfPassword.setText(Result.password); fields.tfWorkspace.setText(Result.workspace); } @Override public void validateFields() { if (fields.tfLogin.getText().isEmpty()) Log.Writeln_("Логин пользователя не может быть пустым"); } @Override public void ProcessResult() { Result.machine_id = Global.mainModule.getMachine().id; Result.login = fields.tfLogin.getText(); Result.authentication = UserAuthentication.password; Result.password = new String(fields.tfPassword.getPassword()); } @Override public int getDefaultHeight() { return 250; } }; } @Override protected DataSetControlForm createUI(JPanel mountPanel) { return new DataSetControlForm(this, mountPanel) { @Override public boolean hasCheckBox() { return true; } @Override public String[] getUIColumnNames() { return new String[]{ "Логин", "Статус"}; } @Override protected void AdditionalInitColumns() { columns.get(0).setVisible(false); columns.get(3).setRendererClass(RendererStatusEnum.class); } @Override public void ShowCurrentObject() throws Exception { super.ShowCurrentObject(); // UI.getMainWindow().ShowCurrentCompiler(); Global.mainModule.getUI().getCredentialsMenuBar().ShowUser(); } @Override public void ShowNoCurrentObject() throws Exception { super.ShowNoCurrentObject(); // UI.getMainWindow().ShowCurrentCompiler(); Global.mainModule.getUI().getCredentialsMenuBar().ShowNoUser(); } @Override public DataMenuBar createMenuBar() { return new DataMenuBar(getPluralDescription(), PassCode.AddUser, PassCode.EditUser, PassCode.InitialiseUser, PassCode.DeleteUser); } }; } @Override public Current CurrentName() { return Current.User; } @Override public PassCode_ getDeletePassCode() { return PassCode.DeleteUser; } }