Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 170431081f | |||
| 43a0e60f65 | |||
| f4c54acb3e | |||
| 9cadbef661 | |||
| bedb5eefd1 | |||
| 1329bb3038 | |||
| 00a30bdec4 | |||
| 8d1e360249 | |||
| fa6f39bb21 | |||
| 651f65060a | |||
| c5cd8113c0 | |||
| 6263934cbb |
7
.idea/workspace.xml
generated
7
.idea/workspace.xml
generated
@@ -7,7 +7,8 @@
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_InsertIncludesPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/SPF_InsertIncludesPass.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@@ -87,7 +88,7 @@
|
||||
<property name="UI_DESIGNER_EDITOR_MODE.UIDesignerToolWindowManager.SHOW" value="true" />
|
||||
<property name="UI_DESIGNER_EDITOR_MODE.UIDesignerToolWindowManager.WIDTH" value="509" />
|
||||
<property name="extract.method.default.visibility" value="public" />
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$/src" />
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$/src/icons/Transformations" />
|
||||
<property name="project.structure.last.edited" value="Artifacts" />
|
||||
<property name="project.structure.proportion" value="0.15" />
|
||||
<property name="project.structure.side.proportion" value="0.27322906" />
|
||||
@@ -100,10 +101,10 @@
|
||||
<recent name="controls.Trees" />
|
||||
</key>
|
||||
<key name="CopyFile.RECENT_KEYS">
|
||||
<recent name="C:\Users\misha\Documents\visual_sapfor_2023\src\icons\Transformations" />
|
||||
<recent name="C:\Users\misha\Documents\visual_sapfor_2023\src" />
|
||||
<recent name="C:\Users\misha\Documents\visual_sapfor_2023\src\_dif_utils" />
|
||||
<recent name="C:\Users\misha\Documents\visual_sapfor_2023\libs" />
|
||||
<recent name="C:\Users\misha\Documents\visual_sapfor_2023\src\icons\Transformations" />
|
||||
<recent name="C:\Users\misha\Documents\visual_sapfor_2023\src\_VisualDVM\TestingSystem\DVM\DVMTasks\UI" />
|
||||
</key>
|
||||
<key name="MoveMembersDialog.RECENTS_KEY">
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"ServerUserPassword": "mprit_2011",
|
||||
"OfferRegistrationOnStart": true,
|
||||
"Workspace": "E:\\Tests",
|
||||
"ProjectsSearchDirectory": "E:\\Tests\\Downloads\\bugreport_1749652835\\tmp_influxsys\\v3",
|
||||
"ProjectsSearchDirectory": "E:\\Tests",
|
||||
"DocumentsDirectory": "C:\\Users\\misha\\Documents\\_testing_system",
|
||||
"VisualiserPath": "C:\\Users\\misha\\Downloads",
|
||||
"Sapfor_FPath": "E:\\_sapfor_x64\\Components\\Sapfor_F",
|
||||
@@ -25,6 +25,7 @@
|
||||
"ComponentsWindowHeight": 250,
|
||||
"Kernels": 8,
|
||||
"LocalMakePathWindows": "C:\\MinGW\\msys\\1.0\\bin\\make.exe",
|
||||
"PrecompilationFlags": " ",
|
||||
"CheckTestingIntervalSeconds": 10,
|
||||
"AutoCheckTesting": true,
|
||||
"EmailOnTestingProgress": true,
|
||||
|
||||
@@ -5,16 +5,16 @@ public class IntegerPairJson {
|
||||
public int key;
|
||||
@Expose
|
||||
public int value;
|
||||
public int getKey() {
|
||||
return key;
|
||||
}
|
||||
public int getValue() {
|
||||
return value;
|
||||
}
|
||||
public IntegerPairJson(int key_in, int value_in) {
|
||||
key = key_in;
|
||||
value = value_in;
|
||||
}
|
||||
public IntegerPairJson() {
|
||||
}
|
||||
public int getKey() {
|
||||
return key;
|
||||
}
|
||||
public int getValue() {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package Common.Visual;
|
||||
import Common.MainModule_;
|
||||
import Common.Utils.Utils_;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.ChangeListener;
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package _VisualDVM.ComponentsServer.Component.Json;
|
||||
import com.google.gson.annotations.Expose;
|
||||
public class VersionInfo_json {
|
||||
@Expose
|
||||
public int version;
|
||||
@Expose
|
||||
public String build_date;
|
||||
@Expose
|
||||
public String build_time;
|
||||
}
|
||||
@@ -4,8 +4,8 @@ import Common.Passes.PassException;
|
||||
import Common.Utils.Pair;
|
||||
import Common.Utils.Utils_;
|
||||
import Common.Visual.UI;
|
||||
import _VisualDVM.ComponentsServer.Component.Json.VersionInfo_json;
|
||||
import _VisualDVM.ComponentsServer.Component.OSDComponent;
|
||||
import _VisualDVM.ComponentsServer.Component.Visualizer_2;
|
||||
import _VisualDVM.Constants;
|
||||
import _VisualDVM.Global;
|
||||
import _VisualDVM.Passes.PassCode;
|
||||
@@ -13,16 +13,15 @@ import _VisualDVM.Passes.Sapfor.SapforAnalysis;
|
||||
import _VisualDVM.ProjectData.Files.DBProjectFile;
|
||||
import _VisualDVM.ProjectData.Files.UI.Editor.SPFEditor;
|
||||
import _VisualDVM.ProjectData.Project.db_project_info;
|
||||
import _VisualDVM.ProjectData.SapforData.ModifiedFile_json;
|
||||
import _VisualDVM.ProjectData.SapforData.SapforResult_json;
|
||||
import _VisualDVM.TestingSystem.Common.Test.Test;
|
||||
import _VisualDVM.Utils;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
import java.util.*;
|
||||
public abstract class Sapfor extends OSDComponent {
|
||||
public static final int empty_code = -100;
|
||||
public static final int canceled_code = -99;
|
||||
@@ -33,8 +32,6 @@ public abstract class Sapfor extends OSDComponent {
|
||||
public Vector<String> Intrinsics = new Vector<>();
|
||||
public LinkedHashMap<String, String> ModifiedFiles = new LinkedHashMap<>();
|
||||
public LinkedHashMap<String, String> OldFiles = new LinkedHashMap<>();
|
||||
int size;
|
||||
int[] sizes;
|
||||
String PID = "";
|
||||
private int errorCode;
|
||||
private String result;
|
||||
@@ -74,7 +71,8 @@ public abstract class Sapfor extends OSDComponent {
|
||||
PassCode.SPF_PrivateShrinking,
|
||||
PassCode.SPF_PrivateExpansion,
|
||||
PassCode.SPF_PrivateRemoving,
|
||||
PassCode.SPF_InsertPrivateFromGUI
|
||||
PassCode.SPF_InsertPrivateFromGUI,
|
||||
PassCode.SPF_InsertPrivateArrayDirectives
|
||||
};
|
||||
}
|
||||
public static PassCode[] getProceduresTransformationsCodes() {
|
||||
@@ -420,7 +418,9 @@ public abstract class Sapfor extends OSDComponent {
|
||||
public void GetVersionInfo() {
|
||||
try {
|
||||
RunAnalysis("SPF_GetVersionAndBuildDate", -1, "", "");
|
||||
Visualizer_2.UnpackVersionInfo(this, getResult());
|
||||
VersionInfo_json versionInfo_json = Utils_.gson.fromJson(getResult(),VersionInfo_json.class);
|
||||
version = versionInfo_json.version;
|
||||
date_text = versionInfo_json.build_date+" "+ versionInfo_json.build_time;
|
||||
} catch (Exception e) {
|
||||
Utils_.MainLog.PrintException(e);
|
||||
UI.Error("Не удалось получить версию компонента " + Utils_.DQuotes(getComponentType().getDescription()));
|
||||
@@ -502,6 +502,21 @@ public abstract class Sapfor extends OSDComponent {
|
||||
this.predictorStats = predictorStats;
|
||||
}
|
||||
public void decodeString(String runResult) throws Exception {
|
||||
SapforResult_json resultJson = Utils_.gson.fromJson(runResult, SapforResult_json.class);
|
||||
//---
|
||||
setErrorCode(resultJson.errorCode);
|
||||
setOutput(resultJson.output);
|
||||
setResult(resultJson.result);
|
||||
setOutputMessage(resultJson.outputMessage);
|
||||
setPredictorStats(resultJson.predictorStats);
|
||||
//--
|
||||
if (resultJson.files!=null && !resultJson.files.isEmpty()){
|
||||
for (ModifiedFile_json file: resultJson.files){
|
||||
ModifiedFiles.put(Utils_.toW(file.name), file.text);
|
||||
}
|
||||
}
|
||||
//--
|
||||
/*
|
||||
int codeIdx = runResult.indexOf(' ');
|
||||
if (codeIdx == -1) throw new PassException("Wrong input parameter");
|
||||
setErrorCode(Integer.parseInt(runResult.substring(0, codeIdx)));
|
||||
@@ -545,13 +560,12 @@ public abstract class Sapfor extends OSDComponent {
|
||||
}
|
||||
codeIdx += count;
|
||||
}
|
||||
*/
|
||||
}
|
||||
//-
|
||||
public void Command(String request_in) throws Exception {
|
||||
setErrorCode(empty_code);
|
||||
outputMessage = output = result = predictorStats = "";
|
||||
size = 0;
|
||||
sizes = null;
|
||||
ModifiedFiles.clear();
|
||||
//модификации.-------------------------------------------------------------->>>>
|
||||
decodeString(Global.visualizer_2.Command(request_in).replace((char) 1, '\n'));
|
||||
|
||||
@@ -12,6 +12,7 @@ import java.io.PrintWriter;
|
||||
import java.net.InetAddress;
|
||||
import java.net.Socket;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.Date;
|
||||
public class Visualizer_2 extends OSDComponent {
|
||||
public String PID = "";
|
||||
//</editor-fold>
|
||||
@@ -27,11 +28,15 @@ public class Visualizer_2 extends OSDComponent {
|
||||
port = port_in;
|
||||
}
|
||||
public static void UnpackVersionInfo(Component component, String packed) {
|
||||
|
||||
String[] data = packed.split("\\|");
|
||||
//лишний пробел.
|
||||
String text = data[0].substring(0, data[0].length() - 1);
|
||||
component.date_text = data[1] + data[2] + data[3];
|
||||
component.version = Long.parseLong(text);
|
||||
|
||||
// component.version = 6666;
|
||||
// component.date_text = new Date().toString();
|
||||
}
|
||||
//<editor-fold desc="компонент">
|
||||
@Override
|
||||
|
||||
@@ -3,7 +3,7 @@ import Common.Utils.Vector_;
|
||||
|
||||
import java.util.Vector;
|
||||
public class Constants {
|
||||
public static final int version = 1253;
|
||||
public static final int version = 1260;
|
||||
public static final int planner_version = 24;
|
||||
public static final int testingMaxKernels = 64;
|
||||
//--
|
||||
|
||||
@@ -65,6 +65,8 @@ public class NormalProperties extends VisualDVMProperties {
|
||||
public int Kernels = Utils.getHalfKernels();
|
||||
@Expose
|
||||
public String LocalMakePathWindows = "C:\\MinGW\\msys\\1.0\\bin\\make.exe";
|
||||
@Expose
|
||||
public String PrecompilationFlags = "";
|
||||
//--тестирование
|
||||
@Expose
|
||||
public int CheckTestingIntervalSeconds = 10; //интервал автопроверки тестирования
|
||||
@@ -123,6 +125,8 @@ public class NormalProperties extends VisualDVMProperties {
|
||||
@Override
|
||||
public String getFieldDescription(String fieldName) {
|
||||
switch (fieldName) {
|
||||
case "PrecompilationFlags":
|
||||
return "Опции предварительной компиляции";
|
||||
case "ErasePackageWorkspace":
|
||||
return "Очистка рабочего пространства пакета на целевой машине";
|
||||
case "CompleteCompilationOptions":
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package _VisualDVM.Passes.All;
|
||||
import Common.Utils.Utils_;
|
||||
import Common.Visual.UI;
|
||||
import Common.Visual.Windows.Dialog.Text.ComboTextDialog;
|
||||
import _VisualDVM.ComponentsServer.Component.Sapfor.Sapfor;
|
||||
import _VisualDVM.ComponentsServer.Component.Sapfor.TransformationPermission;
|
||||
@@ -55,7 +54,6 @@ public class CombineFiles extends Transformation {
|
||||
Vector<String> result_lines = new Vector<>();
|
||||
Vector<String> all_includes = new Vector<>();
|
||||
//-----------------------------
|
||||
|
||||
result_lines.add("!-Found " + target.allIncludes.size() + " headers");
|
||||
System.out.println("found " + target.allIncludes.size() + " headers");
|
||||
for (String name : target.allIncludes) {
|
||||
@@ -88,7 +86,6 @@ public class CombineFiles extends Transformation {
|
||||
result_lines.addAll(FileUtils.readLines(target.db.files.Data.get(name).file));
|
||||
}
|
||||
}
|
||||
|
||||
FileUtils.writeLines(result, result_lines, false);
|
||||
//-------------------------------
|
||||
//теперь скопировать остальные файлы
|
||||
|
||||
@@ -121,7 +121,7 @@ public class Precompilation extends Pass<db_project_info> {
|
||||
return "";
|
||||
}
|
||||
protected String getFortranFlags() {
|
||||
return "";
|
||||
return Global.normalProperties.PrecompilationFlags;
|
||||
}
|
||||
protected void prepareForParse() throws Exception {
|
||||
target.CleanAnalyses();
|
||||
@@ -212,7 +212,11 @@ public class Precompilation extends Pass<db_project_info> {
|
||||
}
|
||||
@Override
|
||||
protected boolean validate() {
|
||||
return outputLines.stream().noneMatch(line -> line.toLowerCase().startsWith("error"));
|
||||
return outputLines.stream().noneMatch(
|
||||
line -> (line.toLowerCase().startsWith("error")
|
||||
|| line.toLowerCase().startsWith("gfortran.exe: error:")
|
||||
|| line.toLowerCase().startsWith("gfortran: error:")
|
||||
));
|
||||
}
|
||||
@Override
|
||||
protected void performDone() throws Exception {
|
||||
|
||||
@@ -1,16 +1,11 @@
|
||||
package _VisualDVM.Passes.All;
|
||||
import Common.Utils.Index;
|
||||
import Common.Utils.Utils_;
|
||||
import Common.Visual.UI;
|
||||
import _VisualDVM.Global;
|
||||
import _VisualDVM.Passes.Sapfor.SapforAnalysis;
|
||||
import _VisualDVM.ProjectData.Files.DBProjectFile;
|
||||
import _VisualDVM.ProjectData.SapforData.Arrays.ArrayDecl;
|
||||
import _VisualDVM.ProjectData.SapforData.Arrays.ArraysJson;
|
||||
import _VisualDVM.ProjectData.SapforData.Arrays.ProjectArray;
|
||||
|
||||
import javax.rmi.CORBA.Util;
|
||||
import java.math.BigInteger;
|
||||
public class SPF_GetAllDeclaratedArrays extends SapforAnalysis {
|
||||
@Override
|
||||
public String phase() {
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
package _VisualDVM.Passes.All;
|
||||
import Common.Utils.Index;
|
||||
import Common.Utils.Utils_;
|
||||
import Common.Utils.Vector_;
|
||||
import Common.Visual.Controls.PassControl;
|
||||
import Common.Visual.UI;
|
||||
import _VisualDVM.Global;
|
||||
import _VisualDVM.Passes.Sapfor.SapforAnalysis;
|
||||
import _VisualDVM.ProjectData.SapforData.Regions.ParallelRegion;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
package _VisualDVM.Passes.All;
|
||||
import Common.Utils.Index;
|
||||
import Common.Utils.Utils_;
|
||||
import _VisualDVM.Global;
|
||||
import _VisualDVM.Passes.Sapfor.SapforAnalysis;
|
||||
|
||||
@@ -65,7 +65,6 @@ public class SPF_GetGCovInfo extends SilentSapforPass {
|
||||
long v_execution = (lineJson.execution >= 0) ? lineJson.execution : 0;
|
||||
if (!projectFile.gcov_info.line_info.containsKey(v_line)) {
|
||||
projectFile.gcov_info.add_line(v_line, v_execution);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,7 +70,6 @@ public class SPF_GetIncludeDependencies extends SapforAnalysis {
|
||||
if (Global.mainModule.HasFile() && Global.mainModule.getFile().name.equals(include_file.name))
|
||||
update_current = true;
|
||||
}
|
||||
|
||||
} else {
|
||||
System.out.println(Utils_.Brackets(include.dependencyFileName) + " не существует!");
|
||||
}
|
||||
|
||||
@@ -6,8 +6,6 @@ import _VisualDVM.Passes.PassCode;
|
||||
import _VisualDVM.Passes.Sapfor.SapforTransformation;
|
||||
import _VisualDVM.ProjectData.SapforData.Includes.Analysis.FileInfo;
|
||||
import _VisualDVM.ProjectData.SapforData.Includes.Analysis.Include;
|
||||
import _VisualDVM.ProjectData.SapforData.Includes.Transformation.IncludeToInsertJson;
|
||||
import _VisualDVM.ProjectData.SapforData.Includes.Transformation.IncludesToInsertJson;
|
||||
|
||||
import java.util.Vector;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -18,6 +16,33 @@ public class SPF_InsertIncludesPass extends SapforTransformation {
|
||||
}
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
if (super.canStart(args)) {
|
||||
if (target.numAddicted <= 0) {
|
||||
Log.Writeln_("Не найдено файлов, имеющих зависимости по включению.");
|
||||
return false;
|
||||
}
|
||||
Vector<String> Result = new Vector<>();
|
||||
for (FileInfo fileInfo : target.addictedFiles.values()) {
|
||||
Vector<Include> selected_children = fileInfo.dependencies.stream().filter(Selectable::isSelected).collect(Collectors.toCollection(Vector::new));
|
||||
if (!selected_children.isEmpty()) {
|
||||
Result.add(fileInfo.file);
|
||||
Result.add(String.valueOf(selected_children.size()));
|
||||
for (Include di : selected_children) {
|
||||
Result.add(String.valueOf(di.line));
|
||||
Result.add(di.dependencyFileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (Result.isEmpty()) {
|
||||
Log.Writeln_("Не отмечено ни одного заголовка для подстановки");
|
||||
return false;
|
||||
}
|
||||
Options = Utils_.toU(String.join("|", Result));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/*
|
||||
if (super.canStart(args)) {
|
||||
if (target.numAddicted <= 0) {
|
||||
Log.Writeln_("Не найдено файлов, имеющих зависимости по включению.");
|
||||
@@ -38,11 +63,10 @@ public class SPF_InsertIncludesPass extends SapforTransformation {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
*/
|
||||
@Override
|
||||
protected void FocusBeforeStart() {
|
||||
Global.mainModule.getUI().getMainWindow().getProjectWindow().FocusDependencies();
|
||||
}
|
||||
//test 2
|
||||
//test 3
|
||||
}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
package _VisualDVM.Passes.All;
|
||||
import _VisualDVM.Passes.Sapfor.SapforTransformation;
|
||||
public class SPF_InsertPrivateArrayDirectives extends SapforTransformation {
|
||||
}
|
||||
@@ -3,6 +3,7 @@ import Common.MainModule_;
|
||||
import Common.Passes.Pass;
|
||||
import Common.Visual.Windows.Dialog.SliderNumberForm;
|
||||
import Common.Visual.Windows.Dialog.SpinnerNumberForm;
|
||||
import Common.Visual.Windows.Dialog.Text.TextFieldDialog;
|
||||
import Common.Visual.Windows.Dialog.VDirectoryChooser;
|
||||
import Common.Visual.Windows.Dialog.VFileChooser;
|
||||
import _VisualDVM.Global;
|
||||
@@ -44,6 +45,14 @@ public class UpdateProperty extends Pass<Object> {
|
||||
if (file != null)
|
||||
newValue = file.getAbsolutePath();
|
||||
break;
|
||||
case "PrecompilationFlags":
|
||||
TextFieldDialog textFieldDialog = new TextFieldDialog();
|
||||
if (textFieldDialog.ShowDialog(description, oldValue)) {
|
||||
newValue = textFieldDialog.Result;
|
||||
if (newValue.toString().isEmpty())
|
||||
newValue = " ";
|
||||
}
|
||||
break;
|
||||
case "BugReportsAgeLimit":
|
||||
if (sliderNumberForm.ShowDialog(description, oldValue, 1, 12))
|
||||
newValue = sliderNumberForm.Result;
|
||||
|
||||
@@ -301,6 +301,7 @@ public enum PassCode implements PassCode_ {
|
||||
//->
|
||||
TestPass,
|
||||
SPF_InsertPrivateFromGUI,
|
||||
SPF_InsertPrivateArrayDirectives,
|
||||
SPF_RemoveSpfDirectives,
|
||||
SPF_RemoveDeadCode,
|
||||
ReplaceTestProject,
|
||||
@@ -366,6 +367,8 @@ public enum PassCode implements PassCode_ {
|
||||
@Override
|
||||
public String getDescription() {
|
||||
switch (this) {
|
||||
case SPF_InsertPrivateArrayDirectives:
|
||||
return "Анализ и вставка директив приватизации массивов";
|
||||
case CompareSapforPackageToEthalon:
|
||||
return "Сравнить пакет тестирования SAPFOR с эталоном";
|
||||
case SPF_RemoveSpfDirectives:
|
||||
|
||||
@@ -257,7 +257,6 @@ public class DBProjectFile extends ProjectFile {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void AddNewMessage(Message message) throws Exception {
|
||||
switch (message.type) {
|
||||
case 0:
|
||||
@@ -282,8 +281,6 @@ public class DBProjectFile extends ProjectFile {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public DefaultMutableTreeNode show_loop_graph_r(FileObjectWithMessages element) {
|
||||
DefaultMutableTreeNode res = new DefaultMutableTreeNode(element);
|
||||
if (element instanceof Loop) {
|
||||
|
||||
@@ -26,18 +26,6 @@ public class Message extends iDBObject {
|
||||
//--
|
||||
@Description("DEFAULT ''")
|
||||
public String file = "";
|
||||
public String getGroup_s() {
|
||||
switch (group) {
|
||||
case 0:
|
||||
return "#m0000";
|
||||
case Constants.parser_group: //сообщения от парсера.
|
||||
return "#parser";
|
||||
case Constants.compiler_group:
|
||||
return "#compiler";
|
||||
default:
|
||||
return "#"+group;
|
||||
}
|
||||
}
|
||||
//--
|
||||
public Message() {
|
||||
}
|
||||
@@ -455,4 +443,16 @@ public class Message extends iDBObject {
|
||||
}
|
||||
}
|
||||
}
|
||||
public String getGroup_s() {
|
||||
switch (group) {
|
||||
case 0:
|
||||
return "#m0000";
|
||||
case Constants.parser_group: //сообщения от парсера.
|
||||
return "#parser";
|
||||
case Constants.compiler_group:
|
||||
return "#compiler";
|
||||
default:
|
||||
return "#" + group;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,14 +39,6 @@ public class AlignRule {
|
||||
alignRuleWith.add(new AlignRuleWidthJson(dimNum, a, b));
|
||||
}
|
||||
}
|
||||
public void Init(){
|
||||
//--
|
||||
alignArray_address = new BigInteger(packedAlignArrayAddress);
|
||||
alignWith_address = new BigInteger(packedAlignWithAddress);
|
||||
//--
|
||||
packedAlignArrayAddress = null;
|
||||
packedAlignWithAddress = null;
|
||||
}
|
||||
private static Pair<String, String> convertDigitToPositive(int digit) {
|
||||
String buf = "";
|
||||
String sign = " + ";
|
||||
@@ -58,6 +50,14 @@ public class AlignRule {
|
||||
buf += String.valueOf(digit);
|
||||
return new Pair<>(sign, buf);
|
||||
}
|
||||
public void Init() {
|
||||
//--
|
||||
alignArray_address = new BigInteger(packedAlignArrayAddress);
|
||||
alignWith_address = new BigInteger(packedAlignWithAddress);
|
||||
//--
|
||||
packedAlignArrayAddress = null;
|
||||
packedAlignWithAddress = null;
|
||||
}
|
||||
public ProjectArray getAlignArray() {
|
||||
return parent_region.arraysMap.get(alignArray_address);
|
||||
}
|
||||
|
||||
@@ -7,6 +7,13 @@ public class AlignRuleWidthJson {
|
||||
public int a;
|
||||
@Expose
|
||||
public int b;
|
||||
public AlignRuleWidthJson() {
|
||||
}
|
||||
public AlignRuleWidthJson(int i_in, int a_in, int b_in) {
|
||||
dimNum = i_in;
|
||||
a = a_in;
|
||||
b = b_in;
|
||||
}
|
||||
//dim -> a * dim_t + b
|
||||
public int getDimNum() {
|
||||
return dimNum;
|
||||
@@ -17,12 +24,4 @@ public class AlignRuleWidthJson {
|
||||
public int getB() {
|
||||
return b;
|
||||
}
|
||||
public AlignRuleWidthJson(){
|
||||
|
||||
}
|
||||
public AlignRuleWidthJson(int i_in, int a_in, int b_in){
|
||||
dimNum = i_in;
|
||||
a = a_in;
|
||||
b = b_in;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
package _VisualDVM.ProjectData.SapforData.Arrays;
|
||||
import Common.Database.Objects.DBObject;
|
||||
import Common.Utils.Index;
|
||||
import Common.Utils.IntegerPairJson;
|
||||
import Common.Utils.Utils_;
|
||||
import _VisualDVM.Global;
|
||||
import _VisualDVM.Passes.PassCode;
|
||||
import _VisualDVM.ProjectData.DBArray.DBArray;
|
||||
import _VisualDVM.ProjectData.Files.DBProjectFile;
|
||||
import _VisualDVM.ProjectData.SapforData.Arrays.Templates.TemplateDimension;
|
||||
import _VisualDVM.ProjectData.SapforData.Arrays.Templates.TemplateDimensionState;
|
||||
import _VisualDVM.ProjectData.SapforData.Arrays.Templates.TemplateLink;
|
||||
import _VisualDVM.ProjectData.SapforData.Regions.ParallelRegion;
|
||||
import _VisualDVM.ProjectData.SapforData.Regions.UI.ArrayAlignmentBar;
|
||||
import com.google.gson.annotations.Expose;
|
||||
@@ -21,6 +18,9 @@ import java.util.List;
|
||||
import java.util.Vector;
|
||||
import java.util.stream.Collectors;
|
||||
public class ProjectArray extends DBObject {
|
||||
//--
|
||||
//----------------------------------------------------------------------
|
||||
public static final String[] alignNames = {"i", "j", "k", "l", "m", "n", "q", "r", "s", "t", "u", "w", "x", "y", "z"};
|
||||
@Expose
|
||||
public long id;
|
||||
@Expose
|
||||
@@ -34,10 +34,6 @@ public class ProjectArray extends DBObject {
|
||||
@Expose
|
||||
public int typeSize;
|
||||
@Expose
|
||||
int state;
|
||||
@Expose
|
||||
int location;
|
||||
@Expose
|
||||
public String locName;
|
||||
@Expose
|
||||
public int isTemplFlag;
|
||||
@@ -45,17 +41,6 @@ public class ProjectArray extends DBObject {
|
||||
public int isLoopArrayFlag;
|
||||
@Expose
|
||||
public Vector<ArrayDecl> declPlaces = new Vector<>();
|
||||
@Expose
|
||||
List<Integer> deprecateToDist = new Vector<>();
|
||||
@Expose
|
||||
List<Integer> mappedDims = new Vector<>();
|
||||
@Expose
|
||||
Vector<IntegerPairJson> sizes = new Vector<>();
|
||||
@Expose
|
||||
Vector<String> regions = new Vector<>();
|
||||
//--
|
||||
//----------------------------------------------------------------------
|
||||
public static final String[] alignNames = {"i", "j", "k", "l", "m", "n", "q", "r", "s", "t", "u", "w", "x", "y", "z"};
|
||||
public String UniqKey;
|
||||
public BigInteger address;
|
||||
//только для шаблонов. для ФИЛЬТРА управления распределением измерений.
|
||||
@@ -73,6 +58,33 @@ public class ProjectArray extends DBObject {
|
||||
public LinkedHashMap<Integer, Dimension> ac_new;
|
||||
//https://stackoverflow.com/questions/4941372/how-to-insert-image-into-jtable-cell
|
||||
public ArrayAlignmentBar bar = null;
|
||||
@Expose
|
||||
int state;
|
||||
@Expose
|
||||
int location;
|
||||
@Expose
|
||||
List<Integer> deprecateToDist = new Vector<>();
|
||||
@Expose
|
||||
List<Integer> mappedDims = new Vector<>();
|
||||
@Expose
|
||||
Vector<IntegerPairJson> sizes = new Vector<>();
|
||||
@Expose
|
||||
Vector<String> regions = new Vector<>();
|
||||
public static String fill_binary(int d, String binary) {
|
||||
int delta = Math.abs(binary.length() - d);
|
||||
String res = binary;
|
||||
for (int i = 0; i < delta; ++i) {
|
||||
res = ("0" + res);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
//длина должна быть равной, ищем есть ли совпадающие позиции с единицами
|
||||
public static boolean mask(String banned, String variant) {
|
||||
for (int i = 0; i < variant.length(); ++i)
|
||||
if ((variant.toCharArray()[i] == '1') && (banned.toCharArray()[i] == '1')) //попался, масконосец!
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
//------
|
||||
public void print() {
|
||||
Vector<String> res = new Vector<>();
|
||||
@@ -119,21 +131,6 @@ public class ProjectArray extends DBObject {
|
||||
ac_new = new LinkedHashMap<>();
|
||||
//--FileForm
|
||||
}
|
||||
public static String fill_binary(int d, String binary) {
|
||||
int delta = Math.abs(binary.length() - d);
|
||||
String res = binary;
|
||||
for (int i = 0; i < delta; ++i) {
|
||||
res = ("0" + res);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
//длина должна быть равной, ищем есть ли совпадающие позиции с единицами
|
||||
public static boolean mask(String banned, String variant) {
|
||||
for (int i = 0; i < variant.length(); ++i)
|
||||
if ((variant.toCharArray()[i] == '1') && (banned.toCharArray()[i] == '1')) //попался, масконосец!
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
public String printLinks() {
|
||||
Vector<String> res = links.keySet().stream().map(Object::toString).collect(Collectors.toCollection(Vector::new));
|
||||
return String.join(" ", res);
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package _VisualDVM.ProjectData.SapforData.Includes.Analysis;
|
||||
import Common.Utils.Utils_;
|
||||
import _VisualDVM.ProjectData.SapforData.FileObject;
|
||||
import _VisualDVM.ProjectData.SapforData.Includes.Analysis.Include;
|
||||
import com.google.gson.annotations.Expose;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
package _VisualDVM.ProjectData.SapforData;
|
||||
import com.google.gson.annotations.Expose;
|
||||
public class ModifiedFile_json {
|
||||
@Expose
|
||||
public String name;
|
||||
@Expose
|
||||
public String text;
|
||||
}
|
||||
@@ -1,10 +1,8 @@
|
||||
package _VisualDVM.ProjectData.SapforData.Regions;
|
||||
import Common.Database.Objects.DBObject;
|
||||
import Common.Utils.Index;
|
||||
import Common.Utils.IntegerPairJson;
|
||||
import Common.Utils.Pair;
|
||||
import Common.Utils.Utils_;
|
||||
import Common.Visual.UI;
|
||||
import _VisualDVM.Global;
|
||||
import _VisualDVM.ProjectData.Files.DBProjectFile;
|
||||
import _VisualDVM.ProjectData.SapforData.Arrays.AlignRule;
|
||||
@@ -30,6 +28,21 @@ public class ParallelRegion extends DBObject {
|
||||
public Vector<AlignRule> alignRules;
|
||||
//----
|
||||
public Vector<String> rules;
|
||||
//--
|
||||
public BigInteger regionId;
|
||||
//name in program
|
||||
// file -> <start, end> lines
|
||||
public LinkedHashMap<String, List<IntegerPairJson>> lines; //+
|
||||
//ключ - адрес. меняем
|
||||
public LinkedHashMap<BigInteger, ProjectArray> arraysMap; //+
|
||||
//for directive creating
|
||||
public int maxdim = 0;
|
||||
public Vector<String> fragments; //+
|
||||
public int lines_count = 0;
|
||||
public int loops_count = 0;
|
||||
public int arrays_count = 0;
|
||||
public int fd_count = 0;
|
||||
public int fc_count = 0;
|
||||
public void genRules(LinkedHashMap<BigInteger, ProjectArray> Arrays) {
|
||||
rules.clear();
|
||||
int maxLen = 0;
|
||||
@@ -48,21 +61,6 @@ public class ParallelRegion extends DBObject {
|
||||
for (String r : v)
|
||||
rules.add(r);
|
||||
}
|
||||
//--
|
||||
public BigInteger regionId;
|
||||
//name in program
|
||||
// file -> <start, end> lines
|
||||
public LinkedHashMap<String, List<IntegerPairJson>> lines; //+
|
||||
//ключ - адрес. меняем
|
||||
public LinkedHashMap<BigInteger, ProjectArray> arraysMap; //+
|
||||
//for directive creating
|
||||
public int maxdim = 0;
|
||||
public Vector<String> fragments; //+
|
||||
public int lines_count = 0;
|
||||
public int loops_count = 0;
|
||||
public int arrays_count = 0;
|
||||
public int fd_count = 0;
|
||||
public int fc_count = 0;
|
||||
public void Init() {
|
||||
arraysMap = new LinkedHashMap<>();
|
||||
lines = new LinkedHashMap<>();
|
||||
@@ -88,6 +86,7 @@ public class ParallelRegion extends DBObject {
|
||||
}
|
||||
//---
|
||||
for (FileRegionLinesJson fr : regionsLines) {
|
||||
fr.file = Utils_.toW(fr.file);
|
||||
lines.put(fr.file, fr.lines);
|
||||
for (IntegerPairJson l : fr.lines) {
|
||||
fragments.add(fr.file + ": " + l.getKey() + "-" + l.getKey());
|
||||
@@ -103,6 +102,7 @@ public class ParallelRegion extends DBObject {
|
||||
for (IntegerPairJson L : lines.get(FKey)) {
|
||||
lines_count += (L.getValue() - L.getKey());
|
||||
DBProjectFile f = Global.mainModule.getProject().db.files.Data.get(FKey);
|
||||
|
||||
loops_count += f.FragmentLoopCount(L.getKey(), L.getValue());
|
||||
fc_count += f.FragmentFunctionCallsCount(L.getKey(), L.getValue());
|
||||
fd_count += f.FragmentFunctionDeclsCount(L.getKey(), L.getValue());
|
||||
|
||||
28
src/_VisualDVM/ProjectData/SapforData/SapforResult_json.java
Normal file
28
src/_VisualDVM/ProjectData/SapforData/SapforResult_json.java
Normal file
@@ -0,0 +1,28 @@
|
||||
package _VisualDVM.ProjectData.SapforData;
|
||||
import com.google.gson.annotations.Expose;
|
||||
|
||||
import java.util.List;
|
||||
public class SapforResult_json {
|
||||
@Expose
|
||||
public int errorCode;
|
||||
@Expose
|
||||
public String result; //запаковка результата конкретного прохода в json
|
||||
@Expose
|
||||
public String output; //журнал
|
||||
@Expose
|
||||
public String outputMessage; //запаковка сообщений в json
|
||||
@Expose
|
||||
public String predictorStats; //запаковка оценок вариантов в json если есть для их построения и оценки.
|
||||
@Expose
|
||||
public List<ModifiedFile_json> files; //запаковка имен файлов в json если есть для модификации
|
||||
//--
|
||||
public void Print(){
|
||||
System.out.println("------------------------------");
|
||||
System.out.println("codeIdx="+ errorCode );
|
||||
System.out.println("result="+result);
|
||||
System.out.println("output="+output);
|
||||
System.out.println("outputMessage="+outputMessage);
|
||||
System.out.println("predictorStats="+predictorStats);
|
||||
System.out.println("-------------------------------");
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
package _VisualDVM.TestingSystem.SAPFOR.Json;
|
||||
import Common.CommonConstants;
|
||||
import Common.Utils.Utils_;
|
||||
import _VisualDVM.ComponentsServer.Component.Sapfor.Sapfor;
|
||||
import _VisualDVM.Constants;
|
||||
@@ -7,13 +6,11 @@ import _VisualDVM.ProjectData.Files.DBProjectFile;
|
||||
import _VisualDVM.ProjectData.Files.FileType;
|
||||
import _VisualDVM.ProjectData.Files.ProjectFile;
|
||||
import _VisualDVM.ProjectData.LanguageName;
|
||||
import _VisualDVM.ProjectData.Messages.Errors.MessageError;
|
||||
import _VisualDVM.ProjectData.Messages.FileMessagesJson;
|
||||
import _VisualDVM.ProjectData.Messages.Message;
|
||||
import _VisualDVM.ProjectData.Messages.MessagesJson;
|
||||
import _VisualDVM.ProjectData.Project.db_project_info;
|
||||
import _VisualDVM.TestingSystem.SAPFOR.SapforTask.SapforTask;
|
||||
import _VisualDVM.Utils;
|
||||
import com.google.gson.annotations.Expose;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
|
||||
@@ -23,8 +20,6 @@ import java.nio.charset.Charset;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Vector;
|
||||
|
||||
import static java.lang.Character.isDigit;
|
||||
public class SapforVersion_json implements Serializable {
|
||||
@Expose
|
||||
public String version = "";
|
||||
@@ -155,42 +150,9 @@ public class SapforVersion_json implements Serializable {
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
if (!Utils.compareFortranTexts(text1, text2)) {
|
||||
if (!text1.equalsIgnoreCase(text2))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
public boolean isMatchServer(SapforVersion_json version_json) {
|
||||
if (!description.equals(version_json.description)) {
|
||||
return false;
|
||||
}
|
||||
if (files.size() != version_json.files.size()) {
|
||||
return false;
|
||||
}
|
||||
for (String name1 : files.keySet()) {
|
||||
if (!version_json.files.containsKey(name1)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for (String name1 : files.keySet()) {
|
||||
ProjectFile file1 = files.get(name1);
|
||||
ProjectFile file2 = version_json.files.get(name1);
|
||||
//---
|
||||
String text1 = "";
|
||||
String text2 = "";
|
||||
try {
|
||||
text1 = FileUtils.readFileToString(file1.file, Charset.defaultCharset());
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
try {
|
||||
text2 = FileUtils.readFileToString(file2.file, Charset.defaultCharset());
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
return text1.equalsIgnoreCase(text2);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
public void createProject(File rootHome) throws Exception {
|
||||
@@ -233,8 +195,7 @@ public class SapforVersion_json implements Serializable {
|
||||
try {
|
||||
String packed = FileUtils.readFileToString(messages_dump);
|
||||
messagesJson = Utils_.gson.fromJson(packed, MessagesJson.class);
|
||||
}
|
||||
catch (Exception ex){
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,46 +178,6 @@ public class SapforTask extends DBObject {
|
||||
task2.comparisonState = ComparisonState.Match;
|
||||
}
|
||||
}
|
||||
public void checkMatchServer(SapforTask task2) {
|
||||
if (!state.equals(task2.state)) {
|
||||
comparisonState = ComparisonState.NotMatch;
|
||||
task2.comparisonState = ComparisonState.NotMatch;
|
||||
}
|
||||
if ((versions.size() != task2.versions.size()) || (variants.size() != task2.variants.size())) {
|
||||
comparisonState = ComparisonState.NotMatch;
|
||||
task2.comparisonState = ComparisonState.NotMatch;
|
||||
}
|
||||
LinkedHashMap<String, SapforVersion_json> versions1 = getSortedVersions();
|
||||
LinkedHashMap<String, SapforVersion_json> versions2 = task2.getSortedVersions();
|
||||
//---
|
||||
for (String name1 : versions1.keySet()) {
|
||||
if (versions2.containsKey(name1)) {
|
||||
SapforVersion_json version1 = versions1.get(name1);
|
||||
SapforVersion_json version2 = versions2.get(name1);
|
||||
//---
|
||||
if (!version1.isMatchServer(version2)) {
|
||||
comparisonState = ComparisonState.NotMatch;
|
||||
task2.comparisonState = ComparisonState.NotMatch;
|
||||
version1.comparisonState = VersionComparisonState.NotMatch;
|
||||
version2.comparisonState = VersionComparisonState.NotMatch;
|
||||
//-
|
||||
} else {
|
||||
version1.comparisonState = VersionComparisonState.Match;
|
||||
version2.comparisonState = VersionComparisonState.Match;
|
||||
//-
|
||||
}
|
||||
} else {
|
||||
comparisonState = ComparisonState.NotMatch;
|
||||
task2.comparisonState = ComparisonState.NotMatch;
|
||||
//--
|
||||
}
|
||||
}
|
||||
//--
|
||||
if (comparisonState.equals(ComparisonState.Unknown)) {
|
||||
comparisonState = ComparisonState.Match;
|
||||
task2.comparisonState = ComparisonState.Match;
|
||||
}
|
||||
}
|
||||
public Date getStartDate() {
|
||||
return new Date(StartDate);
|
||||
}
|
||||
|
||||
@@ -187,7 +187,7 @@ public class SapforTestingPlanner extends TestingPlanner<SapforPackage> {
|
||||
//--
|
||||
for (SapforTask task1 : ethalon.package_json.tasks) {
|
||||
SapforTask task2 = testingPackage.package_json.getTaskByKey(task1.getUniqueKey());
|
||||
task1.checkMatchServer(task2); //тексты сравниваются просто посимвольно.
|
||||
task1.checkMatch(task2); //тексты сравниваются просто посимвольно.
|
||||
if (task1.comparisonState.equals(ComparisonState.NotMatch)) {
|
||||
testingPackage.mismatchesCount++;
|
||||
}
|
||||
|
||||
@@ -597,6 +597,7 @@ public class Utils {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
/*
|
||||
public static Pair<Vector<String>, Vector<String>> getFortranLines(String text) {
|
||||
Vector<String> lines = new Vector<>();
|
||||
Vector<String> visible_lines = new Vector<>();
|
||||
@@ -674,6 +675,8 @@ public class Utils {
|
||||
}
|
||||
return new Pair<>(lines, visible_lines);
|
||||
}
|
||||
*/
|
||||
/* Pair
|
||||
public static boolean CompareLines(String line1_raw, String line2_raw) {
|
||||
String line1 = line1_raw;
|
||||
String line2 = line2_raw;
|
||||
@@ -693,19 +696,7 @@ public class Utils {
|
||||
if (CompareLines(list.get(i), line)) last_index = i;
|
||||
return (last_index >= max_index);
|
||||
}
|
||||
public static boolean compareFortranTexts(String text1, String text2) {
|
||||
Pair<Vector<String>, Vector<String>> p1 = getFortranLines(text1);
|
||||
Pair<Vector<String>, Vector<String>> p2 = getFortranLines(text2);
|
||||
Vector<String> lines1 = p1.getKey();
|
||||
Vector<String> lines2 = p2.getKey();
|
||||
if (lines1.size() != lines2.size())
|
||||
return false;
|
||||
for (int i = 0; i < lines1.size(); ++i) {
|
||||
if (!CompareLines(lines1.get(i), lines2.get(i)))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
//--
|
||||
private static void get_newest_file_date_r(File dir, Vector<Long> dates) {
|
||||
Vector<File> files = new Vector(Arrays.asList(dir.listFiles(new FileFilter() {
|
||||
|
||||
@@ -18,11 +18,13 @@ public class VisualiserSettingsMenu extends VisualiserMenu {
|
||||
add(new PropertiesSubmenu("Компиляция на локальной машине", null,
|
||||
Global.normalProperties,
|
||||
"LocalMakePathWindows",
|
||||
"PrecompilationFlags",
|
||||
"Kernels"
|
||||
));
|
||||
} else {
|
||||
add(new PropertiesSubmenu("Компиляция на локальной машине", null,
|
||||
Global.normalProperties,
|
||||
"PrecompilationFlags",
|
||||
"Kernels"
|
||||
));
|
||||
}
|
||||
|
||||
@@ -19,7 +19,9 @@ public class RendererTestingPackageStatus extends RendererCell<TestingPackage> {
|
||||
String text_ = state.getDescription();
|
||||
switch (state) {
|
||||
case DoneWithErrors:
|
||||
if (value.tasksCount>value.doneTasksCount) {
|
||||
text_ += " " + Utils_.Brackets((value.tasksCount - value.doneTasksCount) + "/" + value.tasksCount);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -18,6 +18,7 @@ import javax.swing.*;
|
||||
import javax.swing.text.Highlighter;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
public abstract class ComparisonForm<T> {
|
||||
@@ -25,7 +26,6 @@ public abstract class ComparisonForm<T> {
|
||||
final char cseparator = '\u200B';
|
||||
public Class<T> t; //класс объектов.
|
||||
//-->>
|
||||
public Vector<String> lines = new Vector<>(); //строки с учетом/неучетом пробелов. для сравнения
|
||||
public Vector<String> visible_lines = new Vector<>(); //строки с нетронутыми пробелами. для отображения
|
||||
protected JToolBar tools;
|
||||
protected JLabel lObjectName;
|
||||
@@ -159,12 +159,8 @@ public abstract class ComparisonForm<T> {
|
||||
showObject();
|
||||
}
|
||||
private void getLines() {
|
||||
lines.clear();
|
||||
visible_lines.clear();
|
||||
//--
|
||||
Pair<Vector<String>, Vector<String>> p = Utils.getFortranLines(getText());
|
||||
lines = p.getKey();
|
||||
visible_lines = p.getValue();
|
||||
visible_lines = new Vector<String>(Arrays.asList(getText().split("\n")));
|
||||
}
|
||||
protected void ClearText() {
|
||||
events_on = false;
|
||||
@@ -189,7 +185,7 @@ public abstract class ComparisonForm<T> {
|
||||
DiffRowGenerator generator = DiffRowGenerator.create()
|
||||
.showInlineDiffs(true)
|
||||
.inlineDiffByWord(true)
|
||||
.ignoreWhiteSpaces(true)
|
||||
// .ignoreWhiteSpaces(false)
|
||||
.oldTag(f -> separator)
|
||||
.newTag(f -> separator)
|
||||
.build();
|
||||
@@ -274,9 +270,9 @@ public abstract class ComparisonForm<T> {
|
||||
t2.addAll(slave.visible_lines);
|
||||
//просто выясняем кто из них длиннее, и короткий дополняем пустыми строками.]
|
||||
int delta = Math.abs(t1.size() - t2.size());
|
||||
if (lines.size() > slave.lines.size()) {
|
||||
if (visible_lines.size() > slave.visible_lines.size()) {
|
||||
Utils.addEmptyLines(t2, delta);
|
||||
} else if (lines.size() < slave.lines.size()) {
|
||||
} else if (visible_lines.size() < slave.visible_lines.size()) {
|
||||
Utils.addEmptyLines(t1, delta);
|
||||
}
|
||||
///----------------
|
||||
|
||||
BIN
src/icons/Transformations/SPF_InsertPrivateArrayDirectives.png
Normal file
BIN
src/icons/Transformations/SPF_InsertPrivateArrayDirectives.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 502 B |
Reference in New Issue
Block a user