diff --git a/src/main/java/net/rptools/maptool/client/tool/PointerTool.java b/src/main/java/net/rptools/maptool/client/tool/PointerTool.java
index 091741f7ec..f952e118c2 100644
--- a/src/main/java/net/rptools/maptool/client/tool/PointerTool.java
+++ b/src/main/java/net/rptools/maptool/client/tool/PointerTool.java
@@ -662,13 +662,12 @@ public void mouseReleased(MouseEvent e) {
// MouseMotion
@Override
public void mouseMoved(MouseEvent e) {
+ super.mouseMoved(e);
+
if (renderer == null) {
return;
}
- super.mouseMoved(e);
- // mouseX = e.getX(); // done by super.mouseMoved()
- // mouseY = e.getY();
if (isShowingPointer) {
ZonePoint zp = new ScreenPoint(mouseX, mouseY).convertToZone(renderer);
Pointer pointer =
diff --git a/src/main/java/net/rptools/maptool/client/tool/StampTool.java b/src/main/java/net/rptools/maptool/client/tool/StampTool.java
index 74d1c6cb77..c85b374f20 100644
--- a/src/main/java/net/rptools/maptool/client/tool/StampTool.java
+++ b/src/main/java/net/rptools/maptool/client/tool/StampTool.java
@@ -496,10 +496,11 @@ public void mouseReleased(MouseEvent e) {
*/
@Override
public void mouseMoved(MouseEvent e) {
+ super.mouseMoved(e);
+
if (renderer == null) {
return;
}
- super.mouseMoved(e);
if (isShowingTokenStackPopup) {
if (tokenStackPanel.contains(e.getX(), e.getY())) {
diff --git a/src/main/java/net/rptools/maptool/client/tool/boardtool/BoardTool.java b/src/main/java/net/rptools/maptool/client/tool/boardtool/BoardTool.java
index 3952420334..a25560d39a 100644
--- a/src/main/java/net/rptools/maptool/client/tool/boardtool/BoardTool.java
+++ b/src/main/java/net/rptools/maptool/client/tool/boardtool/BoardTool.java
@@ -280,12 +280,6 @@ public void mouseDragged(java.awt.event.MouseEvent e) {
}
}
- @Override
- public void mouseMoved(java.awt.event.MouseEvent e) {
- mouseX = e.getX();
- mouseY = e.getY();
- }
-
/** A simple enum for correlating keys with directions */
private enum Direction {
Left,
diff --git a/src/main/java/net/rptools/maptool/client/tool/drawing/CrossTopologyTool.java b/src/main/java/net/rptools/maptool/client/tool/drawing/CrossTopologyTool.java
index b9f508c62e..226c75fe81 100644
--- a/src/main/java/net/rptools/maptool/client/tool/drawing/CrossTopologyTool.java
+++ b/src/main/java/net/rptools/maptool/client/tool/drawing/CrossTopologyTool.java
@@ -119,6 +119,8 @@ public void mouseDragged(MouseEvent e) {
@Override
public void mouseMoved(MouseEvent e) {
+ super.mouseMoved(e);
+
setIsEraser(isEraser(e));
ZonePoint p = getPoint(e);
diff --git a/src/main/java/net/rptools/maptool/client/tool/drawing/DiamondTopologyTool.java b/src/main/java/net/rptools/maptool/client/tool/drawing/DiamondTopologyTool.java
index b436ab21fb..f8c77dc832 100644
--- a/src/main/java/net/rptools/maptool/client/tool/drawing/DiamondTopologyTool.java
+++ b/src/main/java/net/rptools/maptool/client/tool/drawing/DiamondTopologyTool.java
@@ -107,6 +107,8 @@ public void mouseDragged(MouseEvent e) {
@Override
public void mouseMoved(MouseEvent e) {
+ super.mouseMoved(e);
+
setIsEraser(isEraser(e));
ZonePoint zp = getPoint(e);
diff --git a/src/main/java/net/rptools/maptool/client/tool/drawing/DrawnTextTool.java b/src/main/java/net/rptools/maptool/client/tool/drawing/DrawnTextTool.java
deleted file mode 100644
index 2dc51bc0cb..0000000000
--- a/src/main/java/net/rptools/maptool/client/tool/drawing/DrawnTextTool.java
+++ /dev/null
@@ -1,269 +0,0 @@
-/*
- * This software Copyright by the RPTools.net development team, and
- * licensed under the Affero GPL Version 3 or, at your option, any later
- * version.
- *
- * MapTool Source Code is distributed in the hope that it will be
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * You should have received a copy of the GNU Affero General Public
- * License * along with this source Code. If not, please visit
- * and specifically the Affero license
- * text at .
- */
-package net.rptools.maptool.client.tool.drawing;
-
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.Graphics2D;
-import java.awt.Point;
-import java.awt.Rectangle;
-import java.awt.event.ActionEvent;
-import java.awt.event.KeyEvent;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseMotionListener;
-import java.util.Map;
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-import javax.swing.KeyStroke;
-import javax.swing.text.Style;
-import net.rptools.maptool.client.swing.TwoToneTextPane;
-import net.rptools.maptool.client.tool.Tool;
-import net.rptools.maptool.client.ui.zone.renderer.ZoneRenderer;
-import net.rptools.maptool.model.drawing.DrawnLabel;
-import net.rptools.maptool.model.drawing.Pen;
-
-/**
- * A text tool that uses a text component to allow text to be entered on the display and then
- * renders it as an image.
- *
- * @author jgorrell
- * @version $Revision: 5945 $ $Date: 2006-03-11 02:57:18 -0600 (Sat, 11 Mar 2006) $ $Author:
- * azhrei_fje $
- */
-public class DrawnTextTool extends AbstractDrawingTool implements MouseMotionListener {
-
- /*---------------------------------------------------------------------------------------------
- * Instance Variables
- *-------------------------------------------------------------------------------------------*/
-
- /** Flag used to indicate that the anchor has been set. */
- private boolean anchorSet;
-
- /** The anchor point originally selected */
- private Point anchor = new Point();
-
- /** The bounds of the display rectangle */
- private Rectangle bounds = new Rectangle();
-
- /** The text pane used to paint the text. */
- private TwoToneTextPane textPane;
-
- /*---------------------------------------------------------------------------------------------
- * Constructors
- *-------------------------------------------------------------------------------------------*/
-
- /** A transparent color used in the background */
- private static final Color TRANSPARENT = new Color(0, 0, 0, 0);
-
- /*---------------------------------------------------------------------------------------------
- * Constructors
- *-------------------------------------------------------------------------------------------*/
-
- /** Initialize the tool icon */
- public DrawnTextTool() {}
-
- /*---------------------------------------------------------------------------------------------
- * Tool & AbstractDrawingTool Abstract Methods
- *-------------------------------------------------------------------------------------------*/
-
- /**
- * @see net.rptools.maptool.client.tool.drawing.AbstractDrawingTool#paintOverlay(ZoneRenderer,
- * java.awt.Graphics2D)
- */
- @Override
- public void paintOverlay(ZoneRenderer aRenderer, Graphics2D aG) {
- if (!anchorSet) return;
- aG.setColor(Color.BLACK);
- aG.drawRect(bounds.x, bounds.y, bounds.width, bounds.height);
- }
-
- /**
- * @see Tool#getTooltip()
- */
- @Override
- public String getTooltip() {
- return "tool.text.tooltip";
- }
-
- /**
- * @see Tool#getInstructions()
- */
- @Override
- public String getInstructions() {
- return "tool.text.instructions";
- }
-
- /**
- * @see Tool#resetTool()
- */
- @Override
- protected void resetTool() {
- anchorSet = false;
- if (textPane != null) renderer.remove(textPane);
- textPane = null;
- renderer.repaint();
- }
-
- /*---------------------------------------------------------------------------------------------
- * MouseListener Interface Methods
- *-------------------------------------------------------------------------------------------*/
-
- /**
- * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
- */
- public void mouseClicked(MouseEvent event) {
- // Do nothing
- }
-
- /**
- * @see java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent)
- */
- public void mousePressed(MouseEvent event) {
- if (!anchorSet) {
- anchor.x = event.getX();
- anchor.y = event.getY();
- anchorSet = true;
- } else {
- setBounds(event);
-
- // Create a text component and place it on the renderer's component
- textPane = createTextPane(bounds, getPen(), "sanserif-BOLD-20");
- renderer.add(textPane);
- textPane.requestFocusInWindow();
-
- // Make the enter key addthe text
- KeyStroke k = KeyStroke.getKeyStroke("ENTER");
- textPane.getKeymap().removeKeyStrokeBinding(k);
- textPane
- .getKeymap()
- .addActionForKeyStroke(
- k,
- new AbstractAction() {
- public void actionPerformed(ActionEvent aE) {
- completeDrawable();
- }
- });
- }
- }
-
- /**
- * @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent)
- */
- public void mouseReleased(MouseEvent aE) {
- // TODO Auto-generated method stub
-
- }
-
- /**
- * @see java.awt.event.MouseListener#mouseEntered(java.awt.event.MouseEvent)
- */
- public void mouseEntered(MouseEvent aE) {
- // TODO Auto-generated method stub
-
- }
-
- /**
- * @see java.awt.event.MouseListener#mouseExited(java.awt.event.MouseEvent)
- */
- public void mouseExited(MouseEvent aE) {
- // TODO Auto-generated method stub
-
- }
-
- /*---------------------------------------------------------------------------------------------
- * MouseMotionListener Interface Methods
- *-------------------------------------------------------------------------------------------*/
-
- /**
- * @see java.awt.event.MouseMotionListener#mouseMoved(java.awt.event.MouseEvent)
- */
- public void mouseMoved(MouseEvent event) {
- if (!anchorSet) return;
- if (textPane != null) return;
- setBounds(event);
- renderer.repaint();
- }
-
- /**
- * @see java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent)
- */
- public void mouseDragged(MouseEvent aE) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- protected void installKeystrokes(Map actionMap) {
- super.installKeystrokes(actionMap);
- actionMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0, true), null);
- actionMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0, false), null);
- }
-
- /*---------------------------------------------------------------------------------------------
- * Instance Methods
- *-------------------------------------------------------------------------------------------*/
-
- /**
- * Set the bounds for the text area.
- *
- * @param event The mouse event used in the calculation.
- */
- private void setBounds(MouseEvent event) {
- bounds.x = Math.min(anchor.x, event.getX());
- bounds.y = Math.min(anchor.y, event.getY());
- bounds.width = Math.abs(anchor.x - event.getX());
- bounds.height = Math.abs(anchor.y - event.getY());
- }
-
- /** Finish drawing the text. */
- private void completeDrawable() {
-
- // Create a drawable from the data and clean up the component.
- DrawnLabel label =
- new DrawnLabel(
- textPane.getText(), bounds, TwoToneTextPane.getFontString(textPane.getLogicalStyle()));
- textPane.setVisible(false);
- textPane.getParent().remove(textPane);
- textPane = null;
-
- // Tell everybody else
- completeDrawable(getPen(), label);
- resetTool();
- }
-
- /**
- * Create a text pane with the passed bounds, pen, and font data
- *
- * @param bounds Bounds of the new text pane
- * @param pen Pen used for foreground and background text colors.
- * @param font Font used to pain the text
- * @return A text pane used to draw text
- */
- public static TwoToneTextPane createTextPane(Rectangle bounds, Pen pen, String font) {
- // Create a text component and place it on the renderer's component
- TwoToneTextPane textPane = new TwoToneTextPane();
- textPane.setBounds(bounds);
- textPane.setOpaque(false);
- textPane.setBackground(TRANSPARENT);
-
- // Create a style for the component
- Style style = textPane.addStyle("default", null);
- TwoToneTextPane.setFont(style, Font.decode(font));
- // style.addAttribute(StyleConstants.Foreground, new Color(pen.getColor()));
- // style.addAttribute(StyleConstants.Background, new Color(pen.getBackgroundColor()));
- textPane.setLogicalStyle(style);
- return textPane;
- }
-}
diff --git a/src/main/java/net/rptools/maptool/client/tool/drawing/HollowDiamondTopologyTool.java b/src/main/java/net/rptools/maptool/client/tool/drawing/HollowDiamondTopologyTool.java
index ccfe55cdc4..2b56df06c8 100644
--- a/src/main/java/net/rptools/maptool/client/tool/drawing/HollowDiamondTopologyTool.java
+++ b/src/main/java/net/rptools/maptool/client/tool/drawing/HollowDiamondTopologyTool.java
@@ -106,6 +106,8 @@ public void mouseDragged(MouseEvent e) {
@Override
public void mouseMoved(MouseEvent e) {
+ super.mouseMoved(e);
+
setIsEraser(isEraser(e));
ZonePoint zp = getPoint(e);
diff --git a/src/main/java/net/rptools/maptool/client/tool/drawing/HollowOvalTopologyTool.java b/src/main/java/net/rptools/maptool/client/tool/drawing/HollowOvalTopologyTool.java
index 84504a1702..722e1cd1a3 100644
--- a/src/main/java/net/rptools/maptool/client/tool/drawing/HollowOvalTopologyTool.java
+++ b/src/main/java/net/rptools/maptool/client/tool/drawing/HollowOvalTopologyTool.java
@@ -124,6 +124,7 @@ public void mouseDragged(MouseEvent e) {
}
public void mouseMoved(MouseEvent e) {
+ super.mouseMoved(e);
setIsEraser(isEraser(e));
diff --git a/src/main/java/net/rptools/maptool/client/tool/drawing/HollowRectangleTopologyTool.java b/src/main/java/net/rptools/maptool/client/tool/drawing/HollowRectangleTopologyTool.java
index 6248b45452..eff224ca08 100644
--- a/src/main/java/net/rptools/maptool/client/tool/drawing/HollowRectangleTopologyTool.java
+++ b/src/main/java/net/rptools/maptool/client/tool/drawing/HollowRectangleTopologyTool.java
@@ -116,6 +116,8 @@ public void mouseDragged(MouseEvent e) {
@Override
public void mouseMoved(MouseEvent e) {
+ super.mouseMoved(e);
+
setIsEraser(isEraser(e));
ZonePoint p = getPoint(e);
diff --git a/src/main/java/net/rptools/maptool/client/tool/drawing/LineTool.java b/src/main/java/net/rptools/maptool/client/tool/drawing/LineTool.java
index bc88330a9f..6de6cd9cc0 100644
--- a/src/main/java/net/rptools/maptool/client/tool/drawing/LineTool.java
+++ b/src/main/java/net/rptools/maptool/client/tool/drawing/LineTool.java
@@ -65,12 +65,13 @@ public void mouseDragged(MouseEvent e) {
@Override
public void mouseMoved(MouseEvent e) {
+ super.mouseMoved(e);
+
if (getLine() != null) {
if (tempPoint != null) {
removePoint(tempPoint);
}
tempPoint = addPoint(e);
}
- super.mouseMoved(e);
}
}
diff --git a/src/main/java/net/rptools/maptool/client/tool/drawing/OvalTool.java b/src/main/java/net/rptools/maptool/client/tool/drawing/OvalTool.java
index 516e778c88..e99f99a48e 100644
--- a/src/main/java/net/rptools/maptool/client/tool/drawing/OvalTool.java
+++ b/src/main/java/net/rptools/maptool/client/tool/drawing/OvalTool.java
@@ -126,6 +126,8 @@ public void mouseDragged(MouseEvent e) {
*/
@Override
public void mouseMoved(MouseEvent e) {
+ super.mouseMoved(e);
+
if (oval != null) {
ZonePoint sp = getPoint(e);
diff --git a/src/main/java/net/rptools/maptool/client/tool/drawing/OvalTopologyTool.java b/src/main/java/net/rptools/maptool/client/tool/drawing/OvalTopologyTool.java
index 69d410c574..32b994ac70 100644
--- a/src/main/java/net/rptools/maptool/client/tool/drawing/OvalTopologyTool.java
+++ b/src/main/java/net/rptools/maptool/client/tool/drawing/OvalTopologyTool.java
@@ -109,6 +109,8 @@ public void mouseDragged(MouseEvent e) {
@Override
public void mouseMoved(MouseEvent e) {
+ super.mouseMoved(e);
+
setIsEraser(isEraser(e));
if (oval != null) {
ZonePoint sp = getPoint(e);
diff --git a/src/main/java/net/rptools/maptool/client/tool/drawing/RectangleTopologyTool.java b/src/main/java/net/rptools/maptool/client/tool/drawing/RectangleTopologyTool.java
index ce75e04439..8bf5a95d39 100644
--- a/src/main/java/net/rptools/maptool/client/tool/drawing/RectangleTopologyTool.java
+++ b/src/main/java/net/rptools/maptool/client/tool/drawing/RectangleTopologyTool.java
@@ -108,6 +108,8 @@ public void mouseDragged(MouseEvent e) {
@Override
public void mouseMoved(MouseEvent e) {
+ super.mouseMoved(e);
+
setIsEraser(isEraser(e));
ZonePoint p = getPoint(e);
diff --git a/src/main/java/net/rptools/maptool/client/tool/gridtool/GridTool.java b/src/main/java/net/rptools/maptool/client/tool/gridtool/GridTool.java
index 13e0343f70..fa4a0bfcd2 100644
--- a/src/main/java/net/rptools/maptool/client/tool/gridtool/GridTool.java
+++ b/src/main/java/net/rptools/maptool/client/tool/gridtool/GridTool.java
@@ -302,12 +302,6 @@ public void mouseDragged(java.awt.event.MouseEvent e) {
}
}
- @Override
- public void mouseMoved(java.awt.event.MouseEvent e) {
- mouseX = e.getX();
- mouseY = e.getY();
- }
-
////
// MOUSE WHEEL LISTENER
/*
diff --git a/src/main/java/net/rptools/maptool/model/drawing/DrawnLabel.java b/src/main/java/net/rptools/maptool/model/drawing/DrawnLabel.java
index eeda8cf6c2..b1f246145d 100644
--- a/src/main/java/net/rptools/maptool/model/drawing/DrawnLabel.java
+++ b/src/main/java/net/rptools/maptool/model/drawing/DrawnLabel.java
@@ -15,14 +15,15 @@
package net.rptools.maptool.model.drawing;
import com.google.protobuf.StringValue;
+import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.geom.Area;
import javax.annotation.Nonnull;
import javax.swing.CellRendererPane;
+import javax.swing.text.Style;
import net.rptools.maptool.client.swing.TwoToneTextPane;
-import net.rptools.maptool.client.tool.drawing.DrawnTextTool;
import net.rptools.maptool.model.GUID;
import net.rptools.maptool.model.Zone;
import net.rptools.maptool.server.Mapper;
@@ -37,13 +38,13 @@
public class DrawnLabel extends AbstractDrawing {
/** The bounds of the display rectangle */
- private Rectangle bounds;
+ private final Rectangle bounds;
/** Text being painted. */
- private String text;
+ private final String text;
/** The font used to paint the text. */
- private String font;
+ private final String font;
/** The pane used to render the text */
private transient CellRendererPane renderer;
@@ -51,20 +52,6 @@ public class DrawnLabel extends AbstractDrawing {
/** The text pane used to paint the text. */
private transient TwoToneTextPane textPane;
- /**
- * Create a new drawn label.
- *
- * @param theText Text to be drawn
- * @param theBounds The bounds containing the text.
- * @param aFont The font used to draw the text as a string that can be passed to {@link
- * Font#decode(java.lang.String)}.
- */
- public DrawnLabel(String theText, Rectangle theBounds, String aFont) {
- text = theText;
- bounds = theBounds;
- font = aFont;
- }
-
public DrawnLabel(GUID id, String theText, Rectangle theBounds, String aFont) {
super(id);
text = theText;
@@ -95,7 +82,7 @@ public String getFont() {
public void draw(Zone zone, Graphics2D aG) {
if (renderer == null) {
renderer = new CellRendererPane();
- textPane = DrawnTextTool.createTextPane(bounds, null, font);
+ textPane = createTextPane(bounds, font);
textPane.setText(text);
}
renderer.paintComponent(aG, textPane, null, bounds);
@@ -130,7 +117,6 @@ public DrawableDto toDto() {
public static DrawnLabel fromDto(DrawnLabelDto dto) {
var id = GUID.valueOf(dto.getId());
- var bounds = dto.getBounds();
var drawable = new DrawnLabel(id, dto.getText(), Mapper.map(dto.getBounds()), dto.getFont());
if (dto.hasName()) {
drawable.setName(dto.getName().getValue());
@@ -138,4 +124,25 @@ public static DrawnLabel fromDto(DrawnLabelDto dto) {
drawable.setLayer(Zone.Layer.valueOf(dto.getLayer()));
return drawable;
}
+
+ /**
+ * Create a text pane with the passed bounds, pen, and font data
+ *
+ * @param bounds Bounds of the new text pane
+ * @param font Font used to pain the text
+ * @return A text pane used to draw text
+ */
+ private static TwoToneTextPane createTextPane(Rectangle bounds, String font) {
+ // Create a text component and place it on the renderer's component
+ TwoToneTextPane textPane = new TwoToneTextPane();
+ textPane.setBounds(bounds);
+ textPane.setOpaque(false);
+ textPane.setBackground(new Color(0, 0, 0, 0)); // Transparent
+
+ // Create a style for the component
+ Style style = textPane.addStyle("default", null);
+ TwoToneTextPane.setFont(style, Font.decode(font));
+ textPane.setLogicalStyle(style);
+ return textPane;
+ }
}
diff --git a/src/main/resources/net/rptools/maptool/language/i18n.properties b/src/main/resources/net/rptools/maptool/language/i18n.properties
index e59f32e4e9..0012acd3d2 100644
--- a/src/main/resources/net/rptools/maptool/language/i18n.properties
+++ b/src/main/resources/net/rptools/maptool/language/i18n.properties
@@ -2730,7 +2730,7 @@ tools.token.fow.all.tooltip = Show FoW for All Tokens you explicitly own or are
tools.token.fow.gm.tooltip = Show FoW for Tokens you explicitly own.
IF you are a GM, you will also see any tokens that have no ownership set.
tools.token.fow.npc.tooltip = Show FoW for NPC Tokens you explicitly own or are owned by all.
tools.token.fow.pc.tooltip = Show FoW for PC Tokens you explicitly own or are owned by all.
-tools.topo.tooltip = Vision Blocking Layer (VBL) Tools
+tools.topo.tooltip = Topology Tools (Vision and Movement Blocking Layer)
tools.zoneselector.tooltip = Select Map
tools.initiative.tooltip = Initiative Tools