3838import net .rptools .lib .AwtUtil ;
3939import net .rptools .lib .CodeTimer ;
4040import net .rptools .lib .MD5Key ;
41- import net .rptools .lib .StringUtil ;
4241import net .rptools .maptool .client .*;
4342import net .rptools .maptool .client .events .TokenHoverEnter ;
4443import net .rptools .maptool .client .events .TokenHoverExit ;
4948import net .rptools .maptool .client .ui .theme .Images ;
5049import net .rptools .maptool .client .ui .theme .RessourceManager ;
5150import net .rptools .maptool .client .ui .zone .FogUtil ;
51+ import net .rptools .maptool .client .ui .zone .Marker ;
5252import net .rptools .maptool .client .ui .zone .PlayerView ;
5353import net .rptools .maptool .client .ui .zone .renderer .ZoneRenderer ;
5454import net .rptools .maptool .events .MapToolEventBus ;
@@ -88,7 +88,7 @@ public class PointerTool extends DefaultTool {
8888 private boolean mouseButtonDown = false ;
8989
9090 private Token tokenUnderMouse ;
91- private Token markerUnderMouse ;
91+ private Marker markerUnderMouse ;
9292 private int keysDown ; // used to record whether Shift/Ctrl/Meta keys are down
9393
9494 private final TokenStackPanel tokenStackPanel = new TokenStackPanel ();
@@ -400,7 +400,7 @@ public void mousePressed(MouseEvent e) {
400400 if (isShowingHover ) {
401401 isShowingHover = false ;
402402 hoverTokenNotes = null ;
403- markerUnderMouse = renderer .getMarkerAt (e .getX (), e .getY ());
403+ markerUnderMouse = renderer .getViewModel (). getMarkerAt (e .getX (), e .getY ());
404404 repaint ();
405405 }
406406 if (isShowingTokenStackPopup ) {
@@ -668,14 +668,11 @@ public void mouseMoved(MouseEvent e) {
668668 SwingUtil .isShiftDown (keysDown ),
669669 SwingUtil .isControlDown (keysDown )));
670670 }
671- Token marker = renderer .getMarkerAt (mouseX , mouseY );
672- if (!AppUtil .tokenIsVisible (renderer .getZone (), marker , renderer .getPlayerView ())) {
673- marker = null ;
674- }
671+ Marker marker = renderer .getViewModel ().getMarkerAt (mouseX , mouseY );
675672 if (marker != markerUnderMouse && marker != null ) {
676673 markerUnderMouse = marker ;
677674 renderer .setCursor (Cursor .getPredefinedCursor (Cursor .HAND_CURSOR ));
678- MapTool .getFrame ().setStatusMessage (markerUnderMouse .getName ());
675+ MapTool .getFrame ().setStatusMessage (markerUnderMouse .name ());
679676 } else if (marker == null && markerUnderMouse != null ) {
680677 markerUnderMouse = null ;
681678 renderer .setCursor (Cursor .getPredefinedCursor (Cursor .DEFAULT_CURSOR ));
@@ -1678,42 +1675,36 @@ && new StatSheetManager().isLegacyStatSheet(tokenUnderMouse.getStatSheet())) {
16781675 }
16791676 }
16801677
1681- private String createHoverNote (Token marker ) {
1682- var notes = HTMLUtil .htmlize (marker .getNotes (), marker .getNotesType ());
1683- var gmNotes = HTMLUtil .htmlize (marker .getGMNotes (), marker .getGmNotesType ());
1684-
1685- boolean showGMNotes = MapTool .getPlayer ().isGM () && !StringUtil .isEmpty (gmNotes );
1686- boolean showNotes = !StringUtil .isEmpty (notes );
1678+ private String createHoverNote (Marker marker ) {
1679+ boolean showGMNotes = marker .gmNotes () != null ;
1680+ boolean showNotes = marker .playerNotes () != null ;
16871681
16881682 StringBuilder builder = new StringBuilder ();
16891683
1690- if (marker .getPortraitImage () != null ) {
1684+ if (marker .imageKey () != null ) {
16911685 builder .append ("<table><tr><td valign=top>" );
16921686 }
16931687 if (showGMNotes || showNotes ) {
1694- builder .append ("<b><span class='title'>" ).append (marker .getName ());
1695- if (MapTool .getPlayer ().isGM ()
1696- && !StringUtil .isEmpty (marker .getGMName ())
1697- && !marker .getName ().equals (marker .getGMName ())) {
1698- builder .append (" (" ).append (marker .getGMName ()).append (")" );
1688+ builder .append ("<b><span class='title'>" ).append (marker .name ());
1689+ if (marker .gmName () != null && !marker .name ().equals (marker .gmName ())) {
1690+ builder .append (" (" ).append (marker .gmName ()).append (")" );
16991691 }
17001692 builder .append ("</span></b><br>" );
17011693 }
1694+
17021695 if (showNotes ) {
1703- builder .append (notes );
1704- // add a gap between player and gmNotes
1705- if (showGMNotes ) {
1706- builder .append ("<br><br>" );
1707- }
1696+ builder .append (
1697+ HTMLUtil .htmlize (marker .playerNotes ().note (), marker .playerNotes ().mimeType ()));
17081698 }
17091699 if (showGMNotes ) {
17101700 if (showNotes ) {
1711- builder .append ("<b><span class='title'>GM Notes</span></b><br>" );
1701+ // add a gap and heading between player and gmNotes
1702+ builder .append ("<br><br><b><span class='title'>GM Notes</span></b><br>" );
17121703 }
1713- builder .append (gmNotes );
1704+ builder .append (HTMLUtil . htmlize ( marker . gmNotes (). note (), marker . gmNotes (). mimeType ()) );
17141705 }
1715- if (marker .getPortraitImage () != null ) {
1716- BufferedImage image = ImageManager .getImageAndWait (marker .getPortraitImage ());
1706+ if (marker .imageKey () != null ) {
1707+ BufferedImage image = ImageManager .getImageAndWait (marker .imageKey ());
17171708 Dimension imgSize = new Dimension (image .getWidth (), image .getHeight ());
17181709 if (imgSize .width > AppConstants .NOTE_PORTRAIT_SIZE
17191710 || imgSize .height > AppConstants .NOTE_PORTRAIT_SIZE ) {
@@ -1722,15 +1713,14 @@ private String createHoverNote(Token marker) {
17221713 builder .append ("</td><td valign=top>" );
17231714 builder
17241715 .append ("<img src='asset://" )
1725- .append (marker .getPortraitImage ())
1716+ .append (marker .imageKey ())
17261717 .append ("' width=" )
17271718 .append (imgSize .width )
17281719 .append (" height=" )
17291720 .append (imgSize .height )
17301721 .append ("></tr></table>" );
17311722 }
1732- String hoverText = builder .toString ();
1733- return hoverText ;
1723+ return builder .toString ();
17341724 }
17351725
17361726 private static final class TokenDragOp {
0 commit comments