<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to deactivate the mouse motion and key events on the JMap? in Java Maps SDK Questions</title>
    <link>https://community.esri.com/t5/java-maps-sdk-questions/how-to-deactivate-the-mouse-motion-and-key-events/m-p/500998#M1545</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The easiest thing as far as I can judge it, is using a map overlay and only delegating the mouse events to the JComponent if no current tool is set.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;nbsp; // Create the map and add a map overlay
&amp;nbsp; // which delegates to the current tool
&amp;nbsp; map = new JMap();
&amp;nbsp; map.addMapOverlay(new MapOverlay() {
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp; public void onMouseClicked(MouseEvent event) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentTool == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onMouseClicked(event);
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentTool.onMouseClicked(event);
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp; public void onMouseDragged(MouseEvent event) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentTool == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onMouseDragged(event);
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentTool.onMouseDragged(event);
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp; public void onMouseEntered(MouseEvent event) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentTool == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onMouseEntered(event);
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentTool.onMouseEntered(event);
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp; public void onMouseExited(MouseEvent event) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentTool == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onMouseExited(event);
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentTool.onMouseExited(event);
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp; public void onMouseMoved(MouseEvent event) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentTool == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onMouseMoved(event);
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentTool.onMouseMoved(event);
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp; public void onMousePressed(MouseEvent event) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentTool == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onMousePressed(event);
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentTool.onMousePressed(event);
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp; public void onMouseReleased(MouseEvent event) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentTool == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onMouseReleased(event);
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentTool.onMouseReleased(event);
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp; public void onMouseWheelMoved(MouseWheelEvent event) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentTool == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onMouseWheelMoved(event);
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentTool.onMouseWheelMoved(event);
&amp;nbsp;&amp;nbsp; }
&amp;nbsp; });
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 21:59:36 GMT</pubDate>
    <dc:creator>Jan-Tschada</dc:creator>
    <dc:date>2021-12-11T21:59:36Z</dc:date>
    <item>
      <title>How to deactivate the mouse motion and key events on the JMap?</title>
      <link>https://community.esri.com/t5/java-maps-sdk-questions/how-to-deactivate-the-mouse-motion-and-key-events/m-p/500997#M1544</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Is it possible to deactivate the mouse motion and key events on the JMap by simple setting a flag? For instance, if someone tries to develop a custom tool which creates graphics on the map by clicking on it, the map still listen and reacts to the mouse motion events. If the user click on the map and drags the mouse a little bit the map extent changes unintentually. This is not a nice user experience.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Right now, we are removing the mouse, mouse motion, mouse wheel listener and the action map from the JMap instance. Create for each instance a decorator (offering setActivated) and add these decorated listeners back to the JMap instance. If the custom tool is active the decorators are deactivated and the user can create graphics by clicking on the map.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;E.g. MouseMotionListenerDecorator&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
public class MouseMotionListenerDecorator implements MouseMotionListener {

 private final MouseMotionListener mouseMotionListener;
 private boolean activated = true;

 public MouseMotionListenerDecorator(MouseMotionListener mouseMotionListener) {
&amp;nbsp; this.mouseMotionListener = mouseMotionListener;
 }

 public boolean isActivated() {
&amp;nbsp; return activated;
 }

 public void setActivated(boolean activated) {
&amp;nbsp; this.activated = activated;
 }

 @Override
 public void mouseDragged(MouseEvent e) {
&amp;nbsp; if (!isActivated())
&amp;nbsp;&amp;nbsp; return;

&amp;nbsp; mouseMotionListener.mouseDragged(e);
 }

 @Override
 public void mouseMoved(MouseEvent e) {
&amp;nbsp; if (!isActivated())
&amp;nbsp;&amp;nbsp; return;

&amp;nbsp; mouseMotionListener.mouseMoved(e);
 }

}
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is there any better way by using the API?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 31 Oct 2011 19:51:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/java-maps-sdk-questions/how-to-deactivate-the-mouse-motion-and-key-events/m-p/500997#M1544</guid>
      <dc:creator>Jan-Tschada</dc:creator>
      <dc:date>2011-10-31T19:51:03Z</dc:date>
    </item>
    <item>
      <title>Re: How to deactivate the mouse motion and key events on the JMap?</title>
      <link>https://community.esri.com/t5/java-maps-sdk-questions/how-to-deactivate-the-mouse-motion-and-key-events/m-p/500998#M1545</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The easiest thing as far as I can judge it, is using a map overlay and only delegating the mouse events to the JComponent if no current tool is set.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;nbsp; // Create the map and add a map overlay
&amp;nbsp; // which delegates to the current tool
&amp;nbsp; map = new JMap();
&amp;nbsp; map.addMapOverlay(new MapOverlay() {
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp; public void onMouseClicked(MouseEvent event) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentTool == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onMouseClicked(event);
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentTool.onMouseClicked(event);
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp; public void onMouseDragged(MouseEvent event) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentTool == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onMouseDragged(event);
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentTool.onMouseDragged(event);
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp; public void onMouseEntered(MouseEvent event) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentTool == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onMouseEntered(event);
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentTool.onMouseEntered(event);
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp; public void onMouseExited(MouseEvent event) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentTool == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onMouseExited(event);
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentTool.onMouseExited(event);
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp; public void onMouseMoved(MouseEvent event) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentTool == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onMouseMoved(event);
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentTool.onMouseMoved(event);
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp; public void onMousePressed(MouseEvent event) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentTool == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onMousePressed(event);
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentTool.onMousePressed(event);
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp; public void onMouseReleased(MouseEvent event) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentTool == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onMouseReleased(event);
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentTool.onMouseReleased(event);
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp; public void onMouseWheelMoved(MouseWheelEvent event) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentTool == null)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onMouseWheelMoved(event);
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentTool.onMouseWheelMoved(event);
&amp;nbsp;&amp;nbsp; }
&amp;nbsp; });
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 21:59:36 GMT</pubDate>
      <guid>https://community.esri.com/t5/java-maps-sdk-questions/how-to-deactivate-the-mouse-motion-and-key-events/m-p/500998#M1545</guid>
      <dc:creator>Jan-Tschada</dc:creator>
      <dc:date>2021-12-11T21:59:36Z</dc:date>
    </item>
    <item>
      <title>Re: How to deactivate the mouse motion and key events on the JMap?</title>
      <link>https://community.esri.com/t5/java-maps-sdk-questions/how-to-deactivate-the-mouse-motion-and-key-events/m-p/500999#M1546</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Jan,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The Map Overlay would be the way to achieve this functionality.&amp;nbsp; You would associate a Map Overlay with each, or groups, of your tools.&amp;nbsp; Check out the source code in the Toolkits for examples.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 May 2012 14:54:31 GMT</pubDate>
      <guid>https://community.esri.com/t5/java-maps-sdk-questions/how-to-deactivate-the-mouse-motion-and-key-events/m-p/500999#M1546</guid>
      <dc:creator>RalfGottschalk</dc:creator>
      <dc:date>2012-05-07T14:54:31Z</dc:date>
    </item>
  </channel>
</rss>

