From 0cb4377830bf19a1fc3ac6f07f76d34e06b46280 Mon Sep 17 00:00:00 2001 From: Branislav Stojkovic Date: Fri, 8 Feb 2019 09:56:48 +0100 Subject: [PATCH] Show mouse position in the status bar --- .../src/org/diylc/common/EventType.java | 3 +- .../src/org/diylc/presenter/Presenter.java | 5 +- diylc/diylc-swing/lib/diylc-core.jar | Bin 244689 -> 247484 bytes diylc/diylc-swing/library/main.jar | Bin 578597 -> 582582 bytes .../swing/plugins/statusbar/StatusBar.java | 65 +++++++++++++++--- diylc/diylc-swing/update.xml | 8 ++- 6 files changed, 69 insertions(+), 12 deletions(-) diff --git a/diylc/diylc-core/src/org/diylc/common/EventType.java b/diylc/diylc-core/src/org/diylc/common/EventType.java index db5d6ee7..c22e4858 100644 --- a/diylc/diylc-core/src/org/diylc/common/EventType.java +++ b/diylc/diylc-core/src/org/diylc/common/EventType.java @@ -85,7 +85,8 @@ public enum EventType { AVAILABLE_CTRL_POINTS_CHANGED, /** * Called when mouse cursor is moved. Point object is passed, containing the current cursor - * location (not taking zoom into account). + * location (not taking zoom into account) in pixels and two {@link Point2D} objects with coordinates in + * inches and mm */ MOUSE_MOVED, /** diff --git a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java index 85a56bb7..322e313e 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java +++ b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java @@ -861,8 +861,11 @@ public class Presenter implements IPlugInPort { } } } + + Point2D inPoint = new Point2D.Double(1.0d * previousScaledPoint.x / Constants.PIXELS_PER_INCH, 1.0d * previousScaledPoint.y / Constants.PIXELS_PER_INCH); + Point2D mmPoint = new Point2D.Double(inPoint.getX() * SizeUnit.in.getFactor() / SizeUnit.cm.getFactor() * 10d, inPoint.getY() * SizeUnit.in.getFactor() / SizeUnit.cm.getFactor() * 10d); - messageDispatcher.dispatchMessage(EventType.MOUSE_MOVED, previousScaledPoint); + messageDispatcher.dispatchMessage(EventType.MOUSE_MOVED, previousScaledPoint, inPoint, mmPoint); if (!components.equals(controlPointMap)) { controlPointMap = components; diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index 48547387b1869924c2bd4a6b2d9ed0253f4c27dc..aed88d555b63800f0199c5f9c774873cc4b5991b 100644 GIT binary patch delta 32927 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 x7&v8c88&1US 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 diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index c9ed53bec7a8c1beb2b4e670b6e6fb92c411fe76..67746807dac94b322017374d63a42c100dad5d29 100644 GIT binary patch delta 19730 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 diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/statusbar/StatusBar.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/statusbar/StatusBar.java index af41cddb..73dc9606 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/statusbar/StatusBar.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/statusbar/StatusBar.java @@ -55,6 +55,8 @@ import net.java.balloontip.styles.EdgedBalloonStyle; import org.apache.log4j.Logger; import org.diylc.announcements.AnnouncementProvider; +import org.diylc.appframework.miscutils.ConfigurationManager; +import org.diylc.appframework.miscutils.IConfigListener; import org.diylc.appframework.miscutils.Utils; import org.diylc.appframework.update.UpdateChecker; import org.diylc.appframework.update.Version; @@ -67,6 +69,7 @@ import org.diylc.common.ITask; import org.diylc.core.IDIYComponent; import org.diylc.core.IView; import org.diylc.images.IconLoader; +import org.diylc.presenter.Presenter; import org.diylc.swing.ISwingUI; import org.diylc.swingframework.MemoryBar; import org.diylc.swingframework.miscutils.PercentageListCellRenderer; @@ -87,7 +90,8 @@ public class StatusBar extends JPanel implements IPlugIn { private JLabel announcementLabel; private JLabel recentChangesLabel; private MemoryBar memoryPanel; - private JLabel statusLabel; + private JLabel statusLabel; + private JLabel positionLabel; private JLabel sizeLabel; private IPlugInPort plugInPort; @@ -100,9 +104,14 @@ public class StatusBar extends JPanel implements IPlugIn { private List componentNamesUnderCursor; private List selectedComponentNames; private List stuckComponentNames; - private String statusMessage; + private String statusMessage; + private Point mousePosition; - private AnnouncementProvider announcementProvider; + private AnnouncementProvider announcementProvider; + + private Point2D mousePositionIn; + + private Point2D mousePositionMm; public StatusBar(ISwingUI swingUI) { super(); @@ -153,7 +162,15 @@ public class StatusBar extends JPanel implements IPlugIn { } } - }, false); + }, false); + + ConfigurationManager.getInstance().addConfigListener(IPlugInPort.METRIC_KEY, new IConfigListener() { + + @Override + public void valueChanged(String key, Object value) { + refreshPosition((Boolean)value); + } + }); } private JComboBox getZoomBox() { @@ -289,6 +306,14 @@ public class StatusBar extends JPanel implements IPlugIn { statusLabel.setBorder(BorderFactory.createEmptyBorder(0, 4, 0, 0)); } return statusLabel; + } + + private JLabel getPositionLabel() { + if (positionLabel == null) { + positionLabel = new JLabel(); + positionLabel.setBorder(BorderFactory.createEmptyBorder(0, 4, 0, 0)); + } + return positionLabel; } public JLabel getSizeLabel() { @@ -331,7 +356,12 @@ public class StatusBar extends JPanel implements IPlugIn { gbc.gridy = 0; gbc.fill = GridBagConstraints.HORIZONTAL; gbc.weightx = 1; - add(getStatusLabel(), gbc); + add(getStatusLabel(), gbc); + + gbc.gridx++; + gbc.fill = GridBagConstraints.BOTH; + gbc.weightx = 0; + add(getPositionLabel(), gbc); JPanel zoomPanel = new JPanel(new BorderLayout()); zoomPanel.add(new JLabel("Zoom: "), BorderLayout.WEST); @@ -382,7 +412,7 @@ public class StatusBar extends JPanel implements IPlugIn { @Override public EnumSet getSubscribedEventTypes() { return EnumSet.of(EventType.ZOOM_CHANGED, EventType.SLOT_CHANGED, EventType.AVAILABLE_CTRL_POINTS_CHANGED, - EventType.SELECTION_CHANGED, EventType.STATUS_MESSAGE_CHANGED); + EventType.SELECTION_CHANGED, EventType.STATUS_MESSAGE_CHANGED, EventType.MOUSE_MOVED); } @SuppressWarnings({"unchecked", "incomplete-switch"}) @@ -433,10 +463,28 @@ public class StatusBar extends JPanel implements IPlugIn { refreshStatusText(); break; case STATUS_MESSAGE_CHANGED: - statusMessage = (String) params[0]; + statusMessage = (String) params[0]; + break; + case MOUSE_MOVED: + mousePositionIn = (Point2D) params[1]; + mousePositionMm = (Point2D) params[2]; + refreshPosition(ConfigurationManager.getInstance().readBoolean(Presenter.METRIC_KEY, true)); + break; } } + private void refreshPosition(boolean metric) { + Point2D mousePosition; + if (metric) + mousePosition = mousePositionMm; + else + mousePosition = mousePositionIn; + if (mousePosition == null) + getPositionLabel().setText(null); + else + getPositionLabel().setText(String.format("@%.2f %.2f " + (metric ? "mm" : "in"), mousePosition.getX(), mousePosition.getY())); + } + private void refreshStatusText() { String statusText = this.statusMessage; if (componentSlot == null) { @@ -483,7 +531,8 @@ public class StatusBar extends JPanel implements IPlugIn { + " or press Esc to cancel"; break; } - } + } + final String finalStatus = statusText; SwingUtilities.invokeLater(new Runnable() { diff --git a/diylc/diylc-swing/update.xml b/diylc/diylc-swing/update.xml index 4ee6a463..273ddedc 100644 --- a/diylc/diylc-swing/update.xml +++ b/diylc/diylc-swing/update.xml @@ -2397,10 +2397,14 @@ NEW_FEATURE Added extra work space around the layout that can be used to store additional components and helpers, but does not get exported to a file. Configurable from the menu - + + + NEW_FEATURE + Show mouse position in the status bar + IMPROVEMENT - Vast improvement of rendering performance, especially with large layouts + Vast improvement of rendering performance and memory management, especially with large layouts IMPROVEMENT