Files
VisualSapfor/src/_VisualDVM/TestingSystem/Common/Test/TestDBTable.java

145 lines
4.9 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.TestingSystem.Common.Test;
import Common.Database.Tables.iDBTable;
import Common.Passes.PassCode_;
import Common.Visual.DataSetControlForm;
import Common.Visual.Menus.DataMenuBar;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.Current;
import _VisualDVM.Global;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.Common.Test.UI.AddTestMenu;
import _VisualDVM.TestingSystem.Common.Test.UI.EditTestMenu;
import _VisualDVM.TestingSystem.Common.Test.UI.TestFields;
import javax.swing.*;
import java.util.Vector;
public class TestDBTable extends iDBTable<Test> {
public TestDBTable() {
super(Test.class);
}
@Override
public String getSingleDescription() {
return "тест";
}
@Override
public String getPluralDescription() {
return "тесты";
}
@Override
protected DataSetControlForm createUI(JPanel mountPanel) {
return new DataSetControlForm(this, mountPanel) {
@Override
protected void AdditionalInitColumns() {
}
@Override
public boolean hasCheckBox() {
return true;
}
@Override
public DataMenuBar createMenuBar() {
return new DataMenuBar(getPluralDescription()) {
{
addMenus(new AddTestMenu(), new EditTestMenu());
addPasses(PassCode.DownloadTest, PassCode.DeleteTest);
}
};
}
};
}
@Override
public Object getFieldAt(Test object, int columnIndex) {
switch (columnIndex) {
case 2:
return object.description;
case 3:
return object.min_dim;
case 4:
return object.max_dim;
case 5:
return object.getFilesForTable();
default:
return null;
}
}
@Override
public String[] getUIColumnNames() {
return new String[]{
"имя",
"min_dim",
"max_dim",
"файлы"
};
}
@Override
public Current CurrentName() {
return Current.Test;
}
@Override
public DBObjectDialog<Test, TestFields> getDialog() {
return new DBObjectDialog<Test, TestFields>(TestFields.class) {
@Override
public int getDefaultHeight() {
return 200;
}
@Override
public int getDefaultWidth() {
return 400;
}
@Override
public void validateFields() {
if (!edit) {
if (!Global.mainModule.getGroup().language.equals(Global.mainModule.getProject().languageName))
Log.Writeln_("В текущую группу могут войти только тесты на языке " + Global.mainModule.getGroup().language);
}
}
@Override
public void fillFields() {
fields.tfName.setText(Result.description);
fields.sMinDim.setValue(Result.min_dim);
fields.sMaxDim.setValue(Result.max_dim);
}
@Override
public void ProcessResult() {
Result.description = fields.tfName.getText();
Result.min_dim = (int) fields.sMinDim.getValue();
Result.max_dim = (int) fields.sMaxDim.getValue();
if (!edit) {
Result.sender_name = Global.mainModule.getAccount().name;
Result.sender_address = Global.mainModule.getAccount().email;
}
}
};
}
public boolean containsTestWithDescription(String description_in) {
for (Test test : Data.values()) {
if (test.description.equalsIgnoreCase(description_in))
return true;
}
return false;
}
public Test getTestByDescription(int group_id_in, String description_in) {
for (Test test : Data.values()) {
if (test.sender_address.equals("vmk-post@yandex.ru") &&
(test.group_id == group_id_in) && (test.description.equalsIgnoreCase(description_in)))
return test;
}
return null;
}
public Vector<Test> getSelectedGroupTests(Group group) {
Vector<Test> allTests = new Vector<>();
Vector<Test> selectedTests = new Vector<>();
//--
for (Test test : Data.values()) {
if (test.group_id == group.id) {
allTests.add(test);
if (test.isSelected()) selectedTests.add(test);
}
}
return selectedTests.isEmpty() ? allTests : selectedTests;
}
@Override
public PassCode_ getDeletePassCode() {
return PassCode.DeleteTest;
}
}