no message

This commit is contained in:
2024-10-09 22:21:57 +03:00
parent 54c80c516b
commit 6252af944e
699 changed files with 2634 additions and 1997 deletions

View File

@@ -0,0 +1,117 @@
package _VisualDVM.TestingSystem.Common.Group;
import Common.Utils.CommonUtils;
import Common.Visual.CommonUI;
import _VisualDVM.Current;
import Common.Database.Objects.DBObject;
import Common.Database.Objects.riDBObject;
import _VisualDVM.Global;
import _VisualDVM.Visual.UI;
import _VisualDVM.Utils;
import _VisualDVM.ProjectData.Files.ProjectFile;
import _VisualDVM.ProjectData.LanguageName;
import _VisualDVM.TestingSystem.Common.Test.Test;
import _VisualDVM.TestingSystem.Common.Test.TestType;
import com.sun.org.glassfish.gmbal.Description;
import java.util.LinkedHashMap;
import java.util.Vector;
public class Group extends riDBObject {
@Description("DEFAULT 'Default'")
public TestType type = TestType.Default;
@Description("DEFAULT 'fortran'")
public LanguageName language = LanguageName.fortran;
//--
@Override
public boolean isVisible() {
return (!GroupsDBTable.filterMyOnly || Current.getAccount().email.equals(sender_address)) &&
Global.testingServer.db.groups.applyFilters(this);
}
public String getSummary() {
return description + " " + language.getDescription();
}
//-
@Override
public void SynchronizeFields(DBObject src) {
super.SynchronizeFields(src);
Group g = (Group) src;
type = g.type;
language = g.language;
}
public Group(Group group) {
this.SynchronizeFields(group);
}
public Group() {
}
@Override
public void select(boolean flag) {
super.select(flag);
if (CommonUI.isActive())
UI.getMainWindow().ShowCheckedTestsCount();
}
//--
//-
public static void generateForLanguage(
String dvm_drv,
LinkedHashMap<LanguageName, Vector<ProjectFile>> programs,
LanguageName language,
Vector<String> titles,
Vector<String> objects,
Vector<String> bodies,
String flags_in
) {
if (!programs.get(language).isEmpty()) {
String LANG_ = language.toString().toUpperCase() + "_";
Vector<String> module_objects = new Vector<>();
String module_body = "";
int i = 1;
for (ProjectFile program : programs.get(language)) {
//--
String object = CommonUtils.DQuotes(language + "_" + i + ".o");
module_objects.add(object);
module_body +=
object + ":\n" +
"\t" +
String.join(" ",
Utils.MFVar(LANG_ + "COMMAND"),
Utils.MFVar(LANG_ + "FLAGS"),
program.getStyleOptions(),
"-c",
program.getQSourceName(),
"-o",
object + "\n\n"
);
++i;
}
titles.add(String.join("\n",
LANG_ + "COMMAND=" + CommonUtils.DQuotes(dvm_drv) + " " +
language.getDVMCompile(),
LANG_ + "FLAGS=" + flags_in,
LANG_ + "OBJECTS=" + String.join(" ", module_objects),
""
));
objects.add(Utils.MFVar(LANG_ + "OBJECTS"));
bodies.add(module_body);
}
}
public String GenerateMakefile(Test test, String dvm_drv, String flags_in) {
//----->>
LinkedHashMap<LanguageName, Vector<ProjectFile>> programs = test.getPrograms();
Vector<String> titles = new Vector<>();
Vector<String> objects = new Vector<>();
Vector<String> bodies = new Vector<>();
String binary = CommonUtils.DQuotes("0");
//----->>
generateForLanguage(dvm_drv, programs, language, titles, objects, bodies, flags_in);
//----->>
return String.join("\n",
"LINK_COMMAND=" + CommonUtils.DQuotes(dvm_drv) + " " +
language.getDVMLink(),
"LINK_FLAGS=" + flags_in + "\n",
String.join("\n", titles),
"all: " + binary,
binary + " : " + String.join(" ", objects),
"\t" + Utils.MFVar("LINK_COMMAND") + " " + Utils.MFVar("LINK_FLAGS") + " " + String.join(" ", objects) + " -o " + binary,
String.join(" ", bodies));
}
}

View File

@@ -0,0 +1,149 @@
package _VisualDVM.TestingSystem.Common.Group;
import Common.Visual.CommonUI;
import _VisualDVM.Current;
import Common.Visual.DataSetControlForm;
import Common.Visual.Windows.Dialog.DBObjectDialog;
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.Visual.DBObjectFilter;
import Common.Visual.DataSetFilter;
import _VisualDVM.ProjectData.LanguageName;
import _VisualDVM.TestingSystem.Common.Group.UI.GroupFields;
import _VisualDVM.TestingSystem.Common.Test.Test;
import _VisualDVM.TestingSystem.Common.Test.TestType;
import java.util.LinkedHashMap;
//-
public class GroupsDBTable extends iDBTable<Group> {
public static boolean filterMyOnly = false;
public GroupsDBTable() {
super(Group.class);
}
//------------------------------------------------>>>
@Override
protected void createFilters() {
filters.add(new Common.Visual.DataSetFilter<Group>("Тип", this) {
@Override
public void fill() {
for (TestType type : TestType.values())
field_filters.add(new Common.Visual.DBObjectFilter<Group>(dataSet, type.getDescription()) {
@Override
protected boolean validate(Group object) {
return object.type.equals(type);
}
});
}
});
filters.add(new DataSetFilter<Group>("Язык", this) {
@Override
public void fill() {
for (LanguageName languageName : LanguageName.values()) {
field_filters.add(new DBObjectFilter<Group>(dataSet, languageName.getDescription()) {
@Override
protected boolean validate(Group object) {
return object.language.equals(languageName);
}
});
}
}
});
}
@Override
public String getSingleDescription() {
return "группа тестов";
}
@Override
public String getPluralDescription() {
return "группы";
}
@Override
public LinkedHashMap<Class<? extends DBObject>, FKBehaviour> getFKDependencies() {
LinkedHashMap<Class<? extends DBObject>, FKBehaviour> res = new LinkedHashMap<>();
res.put(Test.class, new FKBehaviour(FKDataBehaviour.DELETE, FKCurrentObjectBehaviuor.ACTIVE));
return res;
}
@Override
protected DataSetControlForm createUI() {
return new DataSetControlForm(this) {
@Override
public boolean hasCheckBox() {
return true;
}
};
}
@Override
public String[] getUIColumnNames() {
return new String[]{
"имя",
"автор",
"тип",
"язык"
};
}
@Override
public Object getFieldAt(Group object, int columnIndex) {
switch (columnIndex) {
case 2:
return object.description;
case 3:
return object.sender_name;
case 4:
return object.type.getDescription();
case 5:
return object.language.getDescription();
default:
return null;
}
}
@Override
public Current CurrentName() {
return Current.Group;
}
@Override
public DBObjectDialog<Group, GroupFields> getDialog() {
return new DBObjectDialog<Group, GroupFields>(GroupFields.class) {
@Override
public int getDefaultHeight() {
return 250;
}
@Override
public int getDefaultWidth() {
return 400;
}
@Override
public void validateFields() {
}
@Override
public void fillFields() {
fields.tfName.setText(Result.description);
CommonUI.TrySelect(fields.cbType, Result.type);
CommonUI.TrySelect(fields.cbLanguage, Result.language);
}
@Override
public void ProcessResult() {
Result.description = fields.tfName.getText();
Result.type = (TestType) fields.cbType.getSelectedItem();
Result.language = (LanguageName) fields.cbLanguage.getSelectedItem();
}
};
}
public boolean containsGroupWithDescription(String description_in) {
for (Group group : Data.values()) {
if (group.description.equalsIgnoreCase(description_in))
return true;
}
return false;
}
public Group getGroupByDescription(LanguageName language_in,String description_in) {
for (Group group : Data.values()) {
if (group.sender_address.equals("vmk-post@yandex.ru")&&
group.language.equals(language_in)&&group.description.equalsIgnoreCase(description_in))
return group;
}
return null;
}
}

View File

@@ -0,0 +1,36 @@
package _VisualDVM.TestingSystem.Common.Group;
import Common.Utils.CommonUtils;
import _VisualDVM.Global;
import Common.Visual.Menus.DataMenuBar;
import Common.Visual.Controls.MenuBarButton;
import _VisualDVM.TestingSystem.Common.Group.UI.AddGroupMenu;
import _VisualDVM.TestingSystem.Common.Group.UI.EditGroupMenu;
import Visual_DVM_2021.Passes.PassCode_2021;
import javax.swing.*;
public class GroupsMenuBar extends DataMenuBar {
public GroupsMenuBar() {
super("группы",
PassCode_2021.SynchronizeTests,
PassCode_2021.ConvertCorrectnessTests
);
addMenus(new AddGroupMenu(), new EditGroupMenu());
addPasses(PassCode_2021.DeleteGroup);
add(new JSeparator());
add(new MenuBarButton() {
{
setText("Свои");
setToolTipText("Отображать только группы тестов авторства пользователя");
Mark();
addActionListener(e -> {
GroupsDBTable.filterMyOnly = !GroupsDBTable.filterMyOnly;
Mark();
Global.testingServer.db.groups.ShowUI();
});
}
public void Mark() {
setIcon(CommonUtils.getIcon(GroupsDBTable.filterMyOnly ? "/icons/Pick.png" : "/icons/NotPick.png"));
}
});
}
}

View File

@@ -0,0 +1,18 @@
package _VisualDVM.TestingSystem.Common.Group.Json;
import _VisualDVM.TestingSystem.Common.Group.Group;
import com.google.gson.annotations.Expose;
public class GroupJson {
@Expose
public int id;
@Expose
public String description;
@Expose
public String language;
public GroupJson(Group group) {
id = group.id;
language = group.language.toString();
description = group.description;
}
public GroupJson() {
}
}

View File

@@ -0,0 +1,19 @@
package _VisualDVM.TestingSystem.Common.Group.Json;
import _VisualDVM.TestingSystem.Common.Group.Group;
import com.google.gson.annotations.Expose;
import java.io.Serializable;
import java.util.List;
import java.util.Vector;
public class GroupsJson implements Serializable {
@Expose
public List<GroupJson> array = new Vector<>();
public GroupsJson() {
}
//при создании пакета.
public GroupsJson(Vector<Group> groups) {
array = new Vector<>();
for (Group group : groups)
array.add(new GroupJson(group));
}
}

View File

@@ -0,0 +1,9 @@
package _VisualDVM.TestingSystem.Common.Group.UI;
import _VisualDVM.Visual.Menus.VisualiserMenu;
import Visual_DVM_2021.Passes.PassCode_2021;
public class AddGroupMenu extends VisualiserMenu {
public AddGroupMenu() {
super("", "/icons/RedAdd.png");
addPasses(PassCode_2021.PublishGroup,PassCode_2021.CreateGroupFromDirectory,PassCode_2021.CreateGroupFromFiles);
}
}

View File

@@ -0,0 +1,9 @@
package _VisualDVM.TestingSystem.Common.Group.UI;
import _VisualDVM.Visual.Menus.VisualiserMenu;
import Visual_DVM_2021.Passes.PassCode_2021;
public class EditGroupMenu extends VisualiserMenu {
public EditGroupMenu() {
super("", "/icons/Edit.png" );
addPasses(PassCode_2021.EditGroup, PassCode_2021.ReplaceTestsFromFiles);
}
}

View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="_VisualDVM.TestingSystem.Common.Group.UI.GroupFields">
<grid id="27dc6" binding="content" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<xy x="20" y="20" width="385" height="181"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<grid id="a979" layout-manager="GridLayoutManager" row-count="3" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<component id="d80" class="javax.swing.JLabel">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="2" use-parent-layout="false"/>
</constraints>
<properties>
<font name="Times New Roman" size="16" style="2"/>
<text value="название"/>
</properties>
</component>
<component id="f2392" class="javax.swing.JTextField" binding="tfName" custom-create="true">
<constraints>
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
<minimum-size width="200" height="30"/>
<preferred-size width="238" height="30"/>
<maximum-size width="200" height="30"/>
</grid>
</constraints>
<properties/>
</component>
<component id="c5591" class="javax.swing.JLabel">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="2" use-parent-layout="false"/>
</constraints>
<properties>
<font name="Times New Roman" size="16" style="2"/>
<text value="тип"/>
</properties>
</component>
<component id="a5bbe" class="javax.swing.JComboBox" binding="cbType" custom-create="true">
<constraints>
<grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="8" fill="1" indent="0" use-parent-layout="false">
<minimum-size width="200" height="30"/>
<preferred-size width="238" height="30"/>
<maximum-size width="200" height="30"/>
</grid>
</constraints>
<properties/>
</component>
<component id="8a5e9" class="javax.swing.JLabel">
<constraints>
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="2" use-parent-layout="false"/>
</constraints>
<properties>
<font name="Times New Roman" size="16" style="2"/>
<text value="язык сборки"/>
</properties>
</component>
<component id="c8d4e" class="javax.swing.JComboBox" binding="cbLanguage" custom-create="true">
<constraints>
<grid row="2" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="8" fill="1" indent="0" use-parent-layout="false">
<minimum-size width="200" height="30"/>
<preferred-size width="238" height="30"/>
<maximum-size width="200" height="30"/>
</grid>
</constraints>
<properties/>
</component>
</children>
</grid>
</children>
</grid>
</form>

View File

@@ -0,0 +1,32 @@
package _VisualDVM.TestingSystem.Common.Group.UI;
import Common.Visual.TextField.StyledTextField;
import Common.Visual.Windows.Dialog.DialogFields;
import _VisualDVM.ProjectData.LanguageName;
import _VisualDVM.TestingSystem.Common.Test.TestType;
import javax.swing.*;
import java.awt.*;
public class GroupFields implements DialogFields {
public JPanel content;
public JTextField tfName;
public JComboBox<TestType> cbType;
public JComboBox<LanguageName> cbLanguage;
@Override
public Component getContent() {
return content;
}
private void createUIComponents() {
// TODO: place custom component creation code here
tfName = new StyledTextField();
//-
cbType = new JComboBox<>();
cbType.addItem(TestType.Default);
cbType.addItem(TestType.Performance);
cbType.addItem(TestType.Correctness);
cbType.addItem(TestType.SAPFOR);
//-
cbLanguage = new JComboBox<>();
cbLanguage.addItem(LanguageName.fortran);
cbLanguage.addItem(LanguageName.c);
}
}