9
9
import java .util .HashSet ;
10
10
import java .util .List ;
11
11
import java .util .Set ;
12
- import javafx .util .Pair ;
13
12
import lombok .Getter ;
14
13
import lombok .Setter ;
15
14
import lombok .val ;
16
15
import parser .data .Node ;
17
16
import parser .settings .Settings ;
17
+ import tools .Pair ;
18
18
import tools .SimilarityTool ;
19
19
import tools .StringUtil ;
20
20
@@ -105,37 +105,33 @@ public String prepareTextOutput() {
105
105
106
106
val prefixes = longestCommonPrefixes (transmittedMessages );
107
107
val receivedPrefixes = longestCommonPrefixes (receivedMessages );
108
- int leftTransmitted = (int )prefixes .getKey ();
109
- int rightTransmitted = (int )prefixes .getValue ();
110
- int leftReceived = (int )receivedPrefixes .getKey ();
111
- int rightReceived = (int )receivedPrefixes .getValue ();
112
108
113
109
val firstTransmitted = transmittedMessages .get (0 ).message ;
114
110
val firstReceived = receivedMessages .get (0 ).message ;
115
111
sb .append ("{" );
116
112
sb .append (settings .getTextOutputSettings ().getBeforeDataStream ());
117
- val transmittedMid = analyzeMessages (transmittedMessages , leftTransmitted , rightTransmitted );
113
+ val transmittedMid = analyzeMessages (transmittedMessages , prefixes . left , prefixes . right );
118
114
if (transmittedMid .length () == 0 ) {
119
115
sb .append (splitAndJoinString (firstTransmitted ));
120
116
} else {
121
117
sb .append (splitAndJoinString (String .format ("%s %s %s" ,
122
- firstTransmitted .substring (0 , leftTransmitted ).trim (),
118
+ firstTransmitted .substring (0 , prefixes . left ).trim (),
123
119
transmittedMid .trim (),
124
- firstTransmitted .substring (firstTransmitted .length () - rightTransmitted ).trim ())));
120
+ firstTransmitted .substring (firstTransmitted .length () - prefixes . right ).trim ())));
125
121
}
126
122
127
123
sb .append (settings .getTextOutputSettings ().getAfterDataStream ());
128
124
sb .append ("}{" );
129
125
sb .append (settings .getTextOutputSettings ().getBeforeDataStream ());
130
126
131
- val receivedMid = analyzeMessages (receivedMessages , leftReceived , rightReceived );
127
+ val receivedMid = analyzeMessages (receivedMessages , receivedPrefixes . left , receivedPrefixes . right );
132
128
if (receivedMid .length () == 0 ) {
133
129
sb .append (splitAndJoinString (firstReceived ));
134
130
} else {
135
131
sb .append (splitAndJoinString (String .format ("%s %s %s" ,
136
- firstReceived .substring (0 , leftReceived ).trim (),
132
+ firstReceived .substring (0 , receivedPrefixes . left ).trim (),
137
133
receivedMid .trim (),
138
- firstReceived .substring (firstReceived .length () - rightReceived ).trim ())));
134
+ firstReceived .substring (firstReceived .length () - receivedPrefixes . right ).trim ())));
139
135
}
140
136
sb .append (settings .getTextOutputSettings ().getAfterDataStream ());
141
137
sb .append ("}" );
@@ -207,7 +203,7 @@ private String analyzeMessages(List<OutputMessage> msgs, int leftIndex, int righ
207
203
return returnStr .toString ();
208
204
}
209
205
210
- private Pair longestCommonPrefixes (List <OutputMessage > msgs ) {
206
+ private Pair < Integer , Integer > longestCommonPrefixes (List <OutputMessage > msgs ) {
211
207
val strings = new String [msgs .size ()];
212
208
val invertedStrings = new String [msgs .size ()];
213
209
for (int i = 0 ; i < msgs .size (); i ++) {
@@ -223,21 +219,22 @@ private Pair longestCommonPrefixes(List<OutputMessage> msgs) {
223
219
224
220
private void prepare (StringBuilder sb , int parentIdentifier , List <OutputMessage > msgs , boolean generateIdentifier ) {
225
221
val prefixes = longestCommonPrefixes (msgs );
226
- int left = (int )prefixes .getKey ();
227
- int right = (int )prefixes .getValue ();
228
- val color = getColorForMidStream (msgs , left , right );
222
+ val color = getColorForMidStream (msgs , prefixes .left , prefixes .right );
229
223
230
224
msgs .forEach ((msg ) -> {
231
225
int msgLength = msg .message .length ();
232
226
int nodeIdentifier = generateIdentifier ? new Node (null ).identifier : msg .identifier ;
233
227
234
- if (left + right + 1 >= msgLength ) {
235
- sb .append (String .format ("\t %d [label=\" %s \" ];" , nodeIdentifier , StringUtil .wrapText (msg .message , settings .getGraphSettings ().getWrapAfter () * 3 ) ));
228
+ if (prefixes . left + prefixes . right + 1 >= msgLength ) {
229
+ sb .append (String .format ("\t %d [label=<%s> ];" , nodeIdentifier , StringUtil .wrapText (msg .message , settings .getGraphSettings ().getWrapAfter () * 3 , - 1 ). left ));
236
230
} else {
237
231
sb .append (String .format ("\t %d [label=<" , nodeIdentifier ));
238
- sb .append (StringUtil .wrapText (msg .message .substring (0 , left ), settings .getGraphSettings ().getWrapAfter () * 3 ));
239
- sb .append (String .format ("<font color=\" %s\" >%s</font>" , color , StringUtil .wrapText (msg .message .substring (left , msgLength - right ), settings .getGraphSettings ().getWrapAfter () * 3 )));
240
- sb .append (StringUtil .wrapText (msg .message .substring (msgLength - right ), settings .getGraphSettings ().getWrapAfter () * 3 ));
232
+ Pair <String , Integer > wrappedText = StringUtil .wrapText (msg .message .substring (0 , prefixes .left ), settings .getGraphSettings ().getWrapAfter () * 3 , -1 );
233
+ sb .append (wrappedText .left );
234
+
235
+ wrappedText = StringUtil .wrapText (msg .message .substring (prefixes .left , msgLength - prefixes .right ), settings .getGraphSettings ().getWrapAfter () * 3 , wrappedText .right );
236
+ sb .append (String .format ("<font color=\" %s\" >%s</font>" , color , wrappedText .left ));
237
+ sb .append (StringUtil .wrapText (msg .message .substring (msgLength - prefixes .right ), settings .getGraphSettings ().getWrapAfter () * 3 , wrappedText .right ).left );
241
238
242
239
sb .append (">];" );
243
240
}
0 commit comments