2024-10-09 22:21:57 +03:00
|
|
|
|
package _VisualDVM.ProjectData.Messages.Recommendations;
|
2024-10-07 00:58:29 +03:00
|
|
|
|
import Common.Database.Tables.iDBTable;
|
2024-10-08 00:39:13 +03:00
|
|
|
|
import Common.Visual.DataSetControlForm;
|
2024-10-09 20:35:18 +03:00
|
|
|
|
import Common.Visual.Tables.TableRenderers;
|
2024-10-14 15:19:13 +03:00
|
|
|
|
import _VisualDVM.Current;
|
2024-10-09 22:21:57 +03:00
|
|
|
|
import _VisualDVM.GlobalData.Settings.SettingName;
|
2024-10-14 12:14:01 +03:00
|
|
|
|
import _VisualDVM.Passes.PassCode;
|
2023-09-17 22:13:42 +03:00
|
|
|
|
public class RecommendationsDBTable extends iDBTable<MessageRecommendation> {
|
|
|
|
|
|
//group=1 - настройка
|
|
|
|
|
|
//group=2 - преобразование
|
|
|
|
|
|
public RecommendationsDBTable() {
|
|
|
|
|
|
super(MessageRecommendation.class);
|
|
|
|
|
|
// setUIContent(UI.getMainWindow().errorsPanel);
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
protected DataSetControlForm createUI() {
|
2024-10-14 15:19:13 +03:00
|
|
|
|
return new DataSetControlForm(this) {
|
2023-09-17 22:13:42 +03:00
|
|
|
|
@Override
|
|
|
|
|
|
protected void AdditionalInitColumns() {
|
|
|
|
|
|
columns.get(0).setVisible(false);
|
|
|
|
|
|
columns.get(1).setMinWidth(700);
|
|
|
|
|
|
columns.get(1).setRenderer(TableRenderers.RendererWrapText);
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
@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:
|
2024-10-09 23:37:58 +03:00
|
|
|
|
result = new MessageRecommendation(PassCode.SPF_RemoveUnusedFunctions);
|
2023-09-17 22:13:42 +03:00
|
|
|
|
break;
|
|
|
|
|
|
case 1018:
|
2024-10-09 23:37:58 +03:00
|
|
|
|
result = new MessageRecommendation(PassCode.SPF_LoopEndDoConverterPass);
|
2023-09-17 22:13:42 +03:00
|
|
|
|
break;
|
|
|
|
|
|
case 1020:
|
|
|
|
|
|
result = new MessageRecommendation(SettingName.KEEP_DVM_DIRECTIVES, "1");
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 1027:
|
|
|
|
|
|
case 1060:
|
2024-10-09 23:37:58 +03:00
|
|
|
|
result = new MessageRecommendation(PassCode.SPF_CorrectCodeStylePass);
|
2023-09-17 22:13:42 +03:00
|
|
|
|
break;
|
|
|
|
|
|
case 1041:
|
|
|
|
|
|
case 3012:
|
|
|
|
|
|
case 3013:
|
|
|
|
|
|
case 3014:
|
|
|
|
|
|
case 3015:
|
|
|
|
|
|
case 3017:
|
|
|
|
|
|
case 3018:
|
2024-10-09 23:37:58 +03:00
|
|
|
|
result = new MessageRecommendation(PassCode.SPF_ResolveParallelRegionConflicts);
|
2023-09-17 22:13:42 +03:00
|
|
|
|
break;
|
|
|
|
|
|
case 1061:
|
2024-10-09 23:37:58 +03:00
|
|
|
|
result = new MessageRecommendation(PassCode.SPF_InsertIncludesPass);
|
2023-09-17 22:13:42 +03:00
|
|
|
|
break;
|
|
|
|
|
|
case 3020:
|
2024-10-09 23:37:58 +03:00
|
|
|
|
result = new MessageRecommendation(PassCode.SPF_DuplicateFunctionChains);
|
2023-09-17 22:13:42 +03:00
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
MessageRecommendation finalResult = result;
|
|
|
|
|
|
if ((result != null) && (Data.values().stream().noneMatch(recommendation -> recommendation.isMatch(finalResult)))) {
|
|
|
|
|
|
try {
|
|
|
|
|
|
getDb().Insert(result);
|
|
|
|
|
|
} catch (Exception ex) {
|
|
|
|
|
|
ex.printStackTrace();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|