3535import org .fife .ui .rsyntaxtextarea .Token ;
3636import org .fife .ui .rsyntaxtextarea .focusabletip .FocusableTip ;
3737import org .fife .ui .rtextarea .RTextArea ;
38+ import org .fife .ui .rtextarea .RTextAreaUI ;
3839import org .fife .ui .rtextarea .RUndoManager ;
39-
4040import processing .app .*;
4141
4242import javax .swing .*;
4747import javax .swing .text .Document ;
4848import javax .swing .text .Segment ;
4949import javax .swing .undo .UndoManager ;
50-
5150import java .awt .*;
5251import java .awt .event .KeyEvent ;
5352import java .awt .event .MouseEvent ;
@@ -242,7 +241,7 @@ protected JPopupMenu createPopupMenu() {
242241 protected void configurePopupMenu (JPopupMenu popupMenu ) {
243242 super .configurePopupMenu (popupMenu );
244243 }
245-
244+
246245 @ Override
247246 protected RTAMouseListener createMouseListener () {
248247 return new SketchTextAreaMouseListener (this );
@@ -315,8 +314,8 @@ public HyperlinkEvent execute() {
315314 return null ;
316315 }
317316 }
318-
319-
317+
318+
320319 /**
321320 * Handles http hyperlinks.
322321 * NOTE (@Ricardo JL Rufino): Workaround to enable hyperlinks by default: https://github.com/bobbylight/RSyntaxTextArea/issues/119
@@ -326,12 +325,12 @@ private class SketchTextAreaMouseListener extends RTextAreaMutableCaretEvent {
326325 private Insets insets ;
327326 private boolean isScanningForLinks ;
328327 private int hoveredOverLinkOffset = -1 ;
329-
328+
330329 protected SketchTextAreaMouseListener (RTextArea textArea ) {
331330 super (textArea );
332331 insets = new Insets (0 , 0 , 0 , 0 );
333332 }
334-
333+
335334 /**
336335 * Notifies all listeners that have registered interest for notification
337336 * on this event type. The listener list is processed last to first.
@@ -344,22 +343,22 @@ private void fireHyperlinkUpdate(HyperlinkEvent e) {
344343 Object [] listeners = listenerList .getListenerList ();
345344 // Process the listeners last to first, notifying
346345 // those that are interested in this event
347- for (int i = listeners .length - 2 ; i >= 0 ; i -= 2 ) {
348- if (listeners [i ]== HyperlinkListener .class ) {
349- ((HyperlinkListener )listeners [i + 1 ]).hyperlinkUpdate (e );
350- }
346+ for (int i = listeners .length - 2 ; i >= 0 ; i -= 2 ) {
347+ if (listeners [i ] == HyperlinkListener .class ) {
348+ ((HyperlinkListener ) listeners [i + 1 ]).hyperlinkUpdate (e );
349+ }
351350 }
352351 }
353-
352+
354353 private HyperlinkEvent createHyperlinkEvent (MouseEvent e ) {
355354 HyperlinkEvent he = null ;
356-
355+
357356 Token t = viewToToken (e .getPoint ());
358- if (t != null ) {
357+ if (t != null ) {
359358 // Copy token, viewToModel() unfortunately modifies Token
360359 t = new TokenImpl (t );
361360 }
362-
361+
363362 if (t != null && t .isHyperlink ()) {
364363 URL url = null ;
365364 String desc = null ;
@@ -375,38 +374,38 @@ private HyperlinkEvent createHyperlinkEvent(MouseEvent e) {
375374 }
376375 he = new HyperlinkEvent (SketchTextArea .this , HyperlinkEvent .EventType .ACTIVATED , url , desc );
377376 }
378-
377+
379378 return he ;
380379 }
381-
380+
382381 @ Override
383382 public void mouseClicked (MouseEvent e ) {
384383 if (getHyperlinksEnabled ()) {
385384 HyperlinkEvent he = createHyperlinkEvent (e );
386- if (he != null ) {
385+ if (he != null ) {
387386 fireHyperlinkUpdate (he );
388387 }
389388 }
390389 }
391-
392- @ Override
390+
391+ @ Override
393392 public void mouseMoved (MouseEvent e ) {
394393
395394 super .mouseMoved (e );
396395
397396 if (!getHyperlinksEnabled ()) {
398397 return ;
399398 }
400-
399+
401400// LinkGenerator linkGenerator = getLinkGenerator();
402-
401+
403402 // GitHub issue RSyntaxTextArea/#25 - links identified at "edges" of editor
404403 // should not be activated if mouse is in margin insets.
405404 insets = getInsets (insets );
406- if (insets != null ) {
405+ if (insets != null ) {
407406 int x = e .getX ();
408407 int y = e .getY ();
409- if (x <= insets .left || y < insets .top ) {
408+ if (x <= insets .left || y < insets .top ) {
410409 if (isScanningForLinks ) {
411410 stopScanningForLinks ();
412411 }
@@ -416,14 +415,14 @@ public void mouseMoved(MouseEvent e) {
416415
417416 isScanningForLinks = true ;
418417 Token t = viewToToken (e .getPoint ());
419- if (t != null ) {
418+ if (t != null ) {
420419 // Copy token, viewToModel() unfortunately modifies Token
421420 t = new TokenImpl (t );
422421 }
423422 Cursor c2 = null ;
424- if (t != null && t .isHyperlink ()) {
425- if (hoveredOverLinkOffset == -1 ||
426- hoveredOverLinkOffset != t .getOffset ()) {
423+ if (t != null && t .isHyperlink ()) {
424+ if (hoveredOverLinkOffset == -1 ||
425+ hoveredOverLinkOffset != t .getOffset ()) {
427426 hoveredOverLinkOffset = t .getOffset ();
428427 repaint ();
429428 }
@@ -456,15 +455,15 @@ public void mouseMoved(MouseEvent e) {
456455 else {
457456 c2 = Cursor .getPredefinedCursor (Cursor .TEXT_CURSOR );
458457 hoveredOverLinkOffset = -1 ;
459- // linkGeneratorResult = null;
458+ // linkGeneratorResult = null;
460459 }
461- if (getCursor ()!= c2 ) {
460+ if (getCursor () != c2 ) {
462461 setCursor (c2 );
463462 // TODO: Repaint just the affected line(s).
464463 repaint (); // Link either left or went into.
465- }
464+ }
466465 }
467-
466+
468467 private void stopScanningForLinks () {
469468 if (isScanningForLinks ) {
470469 Cursor c = getCursor ();
@@ -478,4 +477,8 @@ private void stopScanningForLinks() {
478477
479478 }
480479
480+ @ Override
481+ protected RTextAreaUI createRTextAreaUI () {
482+ return new SketchTextAreaUI (this );
483+ }
481484}
0 commit comments