mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-12 07:56:16 +00:00
Merge pull request #5509 from kellykelly3/5885-geolocation-suck-drag-cursor
5898 & 5885 geolocation stuck drag cursor
This commit is contained in:
commit
a7c78b687d
@ -194,6 +194,7 @@ public final class GeolocationTopComponent extends TopComponent {
|
||||
@Override
|
||||
public void open() {
|
||||
super.open();
|
||||
mapPanel.clearWaypoints();
|
||||
geoFilterPanel.clearDataSourceList();
|
||||
geoFilterPanel.updateDataSourceList();
|
||||
try {
|
||||
@ -288,7 +289,7 @@ public final class GeolocationTopComponent extends TopComponent {
|
||||
DateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy-HH-mm-ss", Locale.US);
|
||||
Date date = new Date();
|
||||
String dateNoTime = dateFormat.format(date);
|
||||
String reportPath = String.format(REPORT_PATH_FMT_STR, currentCase.getReportDirectory(), currentCase.getDisplayName(), "Goggle Earth KML", dateNoTime);
|
||||
String reportPath = String.format(REPORT_PATH_FMT_STR, currentCase.getReportDirectory(), currentCase.getDisplayName(), "Google Earth KML", dateNoTime);
|
||||
// Create the root reports directory.
|
||||
try {
|
||||
FileUtil.createFolder(new File(reportPath));
|
||||
|
115
Core/src/org/sleuthkit/autopsy/geolocation/MapPanMouseInputListener.java
Executable file
115
Core/src/org/sleuthkit/autopsy/geolocation/MapPanMouseInputListener.java
Executable file
@ -0,0 +1,115 @@
|
||||
/*
|
||||
* Autopsy Forensic Browser
|
||||
*
|
||||
* Copyright 2019 Basis Technology Corp.
|
||||
* Contact: carrier <at> sleuthkit <dot> org
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.sleuthkit.autopsy.geolocation;
|
||||
|
||||
import java.awt.Cursor;
|
||||
import java.awt.Point;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.geom.Point2D;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.event.MouseInputAdapter;
|
||||
import org.jxmapviewer.JXMapViewer;
|
||||
|
||||
/**
|
||||
* MouseInputListener for panning a JXMapViewer
|
||||
*
|
||||
* This class is adapted from org.jxmapviewer.input.PanMouseInputListener.
|
||||
*/
|
||||
final class MapPanMouseInputListener extends MouseInputAdapter {
|
||||
|
||||
private Point prev;
|
||||
private final JXMapViewer viewer;
|
||||
private Cursor priorCursor;
|
||||
private boolean dragging = false;
|
||||
|
||||
/**
|
||||
* Construct a new listener.
|
||||
*
|
||||
* @param viewer
|
||||
*/
|
||||
MapPanMouseInputListener(JXMapViewer viewer) {
|
||||
this.viewer = viewer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mousePressed(MouseEvent evt) {
|
||||
if (!SwingUtilities.isLeftMouseButton(evt)) {
|
||||
return;
|
||||
}
|
||||
if (!viewer.isPanningEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Store the current click point and current cursor
|
||||
prev = evt.getPoint();
|
||||
priorCursor = viewer.getCursor();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseDragged(MouseEvent evt) {
|
||||
if (!SwingUtilities.isLeftMouseButton(evt)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!viewer.isPanningEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// If the map wasn't previously being dragged, set the cursor
|
||||
if (!dragging) {
|
||||
viewer.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
|
||||
dragging = true;
|
||||
}
|
||||
|
||||
// Figure out the new map center
|
||||
Point current = evt.getPoint();
|
||||
double x = viewer.getCenter().getX();
|
||||
double y = viewer.getCenter().getY();
|
||||
|
||||
if (prev != null) {
|
||||
x += prev.x - current.x;
|
||||
y += prev.y - current.y;
|
||||
}
|
||||
|
||||
int maxHeight = (int) (viewer.getTileFactory().getMapSize(viewer.getZoom()).getHeight() * viewer
|
||||
.getTileFactory().getTileSize(viewer.getZoom()));
|
||||
if (y > maxHeight) {
|
||||
y = maxHeight;
|
||||
}
|
||||
|
||||
prev = current;
|
||||
viewer.setCenter(new Point2D.Double(x, y));
|
||||
viewer.repaint();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseReleased(MouseEvent evt) {
|
||||
if (!SwingUtilities.isLeftMouseButton(evt)) {
|
||||
return;
|
||||
}
|
||||
|
||||
prev = null;
|
||||
|
||||
// If we were dragging set the cursor back
|
||||
if (dragging) {
|
||||
viewer.setCursor(priorCursor);
|
||||
dragging = false;
|
||||
}
|
||||
}
|
||||
}
|
@ -26,7 +26,6 @@ import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.ComponentAdapter;
|
||||
import java.awt.event.ComponentEvent;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.geom.Point2D;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.beans.PropertyChangeEvent;
|
||||
@ -54,7 +53,6 @@ import org.jxmapviewer.JXMapViewer;
|
||||
import org.jxmapviewer.OSMTileFactoryInfo;
|
||||
import org.jxmapviewer.VirtualEarthTileFactoryInfo;
|
||||
import org.jxmapviewer.input.CenterMapListener;
|
||||
import org.jxmapviewer.input.PanMouseInputListener;
|
||||
import org.jxmapviewer.input.ZoomMouseWheelListenerCursor;
|
||||
import org.jxmapviewer.viewer.DefaultTileFactory;
|
||||
import org.jxmapviewer.viewer.GeoPosition;
|
||||
@ -140,6 +138,8 @@ final public class MapPanel extends javax.swing.JPanel {
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -172,7 +172,7 @@ final public class MapPanel extends javax.swing.JPanel {
|
||||
mapViewer.setTileFactory(tileFactory);
|
||||
|
||||
// Add Mouse interactions
|
||||
MouseInputListener mia = new PanMouseInputListener(mapViewer);
|
||||
MouseInputListener mia = new MapPanMouseInputListener(mapViewer);
|
||||
mapViewer.addMouseListener(mia);
|
||||
mapViewer.addMouseMotionListener(mia);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user