@@ -276,13 +276,13 @@ private void showInfoEdge(DrawableEdge edge, int x) {
276
276
*/
277
277
private void showInfoNode (DrawableSegment node , int x ) {
278
278
Text idText = new Text ("ID: " ); idText .setLayoutX (x ); idText .setLayoutY (65 );
279
- Text parentText = new Text ("Parents: " ); parentText .setLayoutX (x ); parentText .setLayoutY (115 );
280
- Text childText = new Text ("Children: " ); childText .setLayoutX (x ); childText .setLayoutY (165 );
281
- Text inEdgeText = new Text ("Incoming Edges: " ); inEdgeText .setLayoutX (x ); inEdgeText .setLayoutY (215 );
282
- Text outEdgeText = new Text ("Outgoing Edges: " ); outEdgeText .setLayoutX (x ); outEdgeText .setLayoutY (265 );
283
- Text genomeText = new Text ("Genomes : " ); genomeText .setLayoutX (x ); genomeText .setLayoutY (315 );
284
- Text seqLengthText = new Text ("Sequence Length : " ); seqLengthText .setLayoutX (x ); seqLengthText .setLayoutY (365 );
285
- Text seqText = new Text ("Sequence: " ); seqText .setLayoutX (x ); seqText .setLayoutY (415 );
279
+ Text parentText = new Text ("Parents: " ); parentText .setLayoutX (x ); parentText .setLayoutY (105 );
280
+ Text childText = new Text ("Children: " ); childText .setLayoutX (x ); childText .setLayoutY (145 );
281
+ Text inEdgeText = new Text ("Incoming Edges: " ); inEdgeText .setLayoutX (x ); inEdgeText .setLayoutY (185 );
282
+ Text outEdgeText = new Text ("Outgoing Edges: " ); outEdgeText .setLayoutX (x ); outEdgeText .setLayoutY (225 );
283
+ Text seqLengthText = new Text ("Sequence Length : " ); seqLengthText .setLayoutX (x ); seqLengthText .setLayoutY (265 );
284
+ Text genomeText = new Text ("Genomes : " ); genomeText .setLayoutX (x ); genomeText .setLayoutY (305 );
285
+ Text seqText = new Text ("Sequence: " ); seqText .setLayoutX (x ); seqText .setLayoutY (370 );
286
286
287
287
anchorGraphInfo .getChildren ().removeIf (node1 -> node1 .getLayoutX () == x );
288
288
@@ -293,42 +293,60 @@ private void showInfoNode(DrawableSegment node, int x) {
293
293
TextField parents ;
294
294
if (parentSB .length () > 2 ) {
295
295
parentSB .setLength (parentSB .length () - 2 );
296
- parents = getTextField ("Parents: " , x , 120 , parentSB .toString ());
296
+ parents = getTextField ("Parents: " , x , 110 , parentSB .toString ());
297
297
} else {
298
298
parentSB .replace (0 , parentSB .length (), "This node has no parent(s)" );
299
- parents = getTextField ("Parents: " , x , 120 , parentSB .toString ());
299
+ parents = getTextField ("Parents: " , x , 110 , parentSB .toString ());
300
300
}
301
301
302
302
StringBuilder childSB = new StringBuilder ();
303
303
node .getChildren ().forEach (id -> childSB .append (id ).append (", " ));
304
304
TextField children ;
305
305
if (childSB .length () > 2 ) {
306
306
childSB .setLength (childSB .length () - 2 );
307
- children = getTextField ("Children: " , x , 170 , childSB .toString ());
307
+ children = getTextField ("Children: " , x , 150 , childSB .toString ());
308
308
} else {
309
309
childSB .replace (0 , childSB .length (), "This node has no child(ren)" );
310
- children = getTextField ("Children: " , x , 170 , childSB .toString ());
310
+ children = getTextField ("Children: " , x , 150 , childSB .toString ());
311
311
}
312
312
313
- TextField inEdges = getTextField ("Incoming Edges: " , x , 220 , Integer .toString (node .getParents ().size ()));
314
- TextField outEdges = getTextField ("Outgoing Edges: " , x , 270 , Integer .toString (node .getChildren ().size ()));
315
- TextField genome = getTextField ("Genome: " , x , 320 ,
316
- graph .getGenomeNames (node .getGenomes ()).toString ());
317
- TextField seqLength = getTextField ("Sequence Length: " , x , 370 , Integer .toString (node .getSequence ().length ()));
318
-
319
- TextArea seq = new TextArea ("Sequence: " );
320
- seq .setEditable (false );
321
- seq .setLayoutX (x ); seq .setLayoutY (420 );
322
- seq .setText (node .getSequence ().replaceAll ("(.{25})" , "$1" + System .getProperty ("line.separator" )));
323
- seq .setPrefWidth (225 ); seq .setPrefHeight (25 * Math .ceil (node .getSequence ().length () / 25 ));
324
- seq .setStyle ("-fx-text-box-border: transparent;-fx-background-color: none; -fx-background-insets: 0;"
325
- + " -fx-padding: 1 3 1 3; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" );
326
-
313
+ String genomesString = graph .getGenomeNames (node .getGenomes ()).toString ();
314
+ String sequenceString = node .getSequence ().replaceAll ("(.{24})" , "$1" + System .getProperty ("line.separator" ));
315
+ TextField inEdges = getTextField ("Incoming Edges: " , x , 190 , Integer .toString (node .getParents ().size ()));
316
+ TextField outEdges = getTextField ("Outgoing Edges: " , x , 230 , Integer .toString (node .getChildren ().size ()));
317
+ TextField seqLength = getTextField ("Sequence Length: " , x , 270 , Integer .toString (node .getSequence ().length ()));
318
+ TextArea genome = getTextArea ("Genome: " , x , 310 , genomesString .substring (1 , genomesString .length () - 1 ), 40 );
319
+ genome .setWrapText (true );
320
+ TextArea seq = getTextArea ("Sequence: " , x , 375 , sequenceString , 250 );
327
321
anchorGraphInfo .getChildren ().addAll (idText , parentText , childText , inEdgeText ,
328
322
outEdgeText , genomeText , seqLengthText , seqText );
329
323
anchorGraphInfo .getChildren ().addAll (idTextField , parents , children , inEdges , outEdges , genome , seqLength , seq );
330
324
}
331
325
326
+ /**
327
+ * Returns a textField to be used by the edge and node information show panel.
328
+ * @param id String the id of the textField.
329
+ * @param x int the x coordinate of the textField inside the anchorPane.
330
+ * @param y int the y coordinate of the textField inside the anchorPane.
331
+ * @param text String the text to be shown by the textField.
332
+ * @param height int of the height of the area.
333
+ * @return TextField the created textField.
334
+ */
335
+ private TextArea getTextArea (String id , int x , int y , String text , int height ) {
336
+ TextArea textArea = new TextArea ();
337
+ textArea .setId (id );
338
+ textArea .setText (text );
339
+ textArea .setLayoutX (x );
340
+ textArea .setLayoutY (y );
341
+ textArea .setEditable (false );
342
+ textArea .setStyle ("-fx-text-box-border: transparent;-fx-background-color: none; -fx-background-insets: 0;"
343
+ + " -fx-padding: 1 3 1 3; -fx-focus-color: transparent; "
344
+ + "-fx-faint-focus-color: transparent; -fx-font-family: monospace;" );
345
+ textArea .setPrefSize (225 , height );
346
+
347
+ return textArea ;
348
+ }
349
+
332
350
/**
333
351
* Returns a textField to be used by the edge and node information show panel.
334
352
* @param id String the id of the textField.
@@ -345,7 +363,8 @@ private TextField getTextField(String id, int x, int y, String text) {
345
363
textField .setLayoutY (y );
346
364
textField .setEditable (false );
347
365
textField .setStyle ("-fx-text-box-border: transparent;-fx-background-color: none; -fx-background-insets: 0;"
348
- + " -fx-padding: 1 3 1 3; -fx-focus-color: transparent; -fx-faint-focus-color: transparent;" );
366
+ + " -fx-padding: 1 3 1 3; -fx-focus-color: transparent; "
367
+ + "-fx-faint-focus-color: transparent; -fx-font-family: monospace;" );
349
368
textField .setPrefSize (220 , 20 );
350
369
351
370
return textField ;
0 commit comments