Files
VisualSapfor/src/_VisualDVM/ProjectData/Messages/Recommendations/RecommendationsDBTable.java

98 lines
3.4 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.ProjectData.Messages.Recommendations;
import Common.Database.Tables.iDBTable;
import Common.Visual.DataSetControlForm;
import Common.Visual.Tables.RendererWrapText;
import _VisualDVM.Current;
import _VisualDVM.GlobalData.Settings.SettingName;
import _VisualDVM.Passes.PassCode;
public class RecommendationsDBTable extends iDBTable<MessageRecommendation> {
//group=1 - настройка
//group=2 - преобразование
public RecommendationsDBTable() {
super(MessageRecommendation.class);
// setUIContent(UI.getMainWindow().errorsPanel);
}
@Override
protected DataSetControlForm createUI() {
return new DataSetControlForm(this) {
@Override
protected void AdditionalInitColumns() {
columns.get(0).setVisible(false);
columns.get(1).setMinWidth(700);
columns.get(1).setRendererClass(RendererWrapText.class);
}
};
}
@Override
public boolean hasMenuBar() {
return false;
}
@Override
public String[] getUIColumnNames() {
return new String[]{"текст"};
}
@Override
public Object getFieldAt(MessageRecommendation object, int columnIndex) {
switch (columnIndex) {
case 1:
return object.text;
default:
return null;
}
}
@Override
public String getSingleDescription() {
return "рекомендация";
}
@Override
public Current CurrentName() {
return Current.Recommendations;
}
public void addRecommendation(int group_in) {
MessageRecommendation result = null;
switch (group_in) {
/*
case 1013:
//процедура. понять как извлекать ее из сообщения, и сунуть как аргумент преобразованию.
break;
*/
case 1015:
result = new MessageRecommendation(PassCode.SPF_RemoveUnusedFunctions);
break;
case 1018:
result = new MessageRecommendation(PassCode.SPF_LoopEndDoConverterPass);
break;
case 1020:
result = new MessageRecommendation(SettingName.KEEP_DVM_DIRECTIVES, "1");
break;
case 1027:
case 1060:
result = new MessageRecommendation(PassCode.SPF_CorrectCodeStylePass);
break;
case 1041:
case 3012:
case 3013:
case 3014:
case 3015:
case 3017:
case 3018:
result = new MessageRecommendation(PassCode.SPF_ResolveParallelRegionConflicts);
break;
case 1061:
result = new MessageRecommendation(PassCode.SPF_InsertIncludesPass);
break;
case 3020:
result = new MessageRecommendation(PassCode.SPF_DuplicateFunctionChains);
break;
}
MessageRecommendation finalResult = result;
if ((result != null) && (Data.values().stream().noneMatch(recommendation -> recommendation.isMatch(finalResult)))) {
try {
getDb().Insert(result);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
}