auto-sync

This commit is contained in:
rusEfi 2015-08-21 23:03:22 -04:00
parent a49d37ac7a
commit 28dc1610e0
3 changed files with 42 additions and 4 deletions

View File

@ -1004,6 +1004,7 @@ fileVersion = { 20150625 }
subMenu = ignitionIatCorrTableTbl, "Ignition Intake Air Temp correction"
subMenu = baroCorrTbl, "Baro Correction", {algorithm == 3}
subMenu = std_separator
subMenu = std_realtime, "&Realtime Display", 0
menu = "3D Map Tuning"
; subMenu = std_realtime, "Realtime Display"

View File

@ -0,0 +1,37 @@
package com.rusefi.ui.widgets;
import javax.swing.*;
import java.util.List;
import java.awt.*;
import java.awt.event.MouseListener;
import java.util.LinkedList;
/**
* (c) Andrey Belomutskiy
* 8/21/2015.
*/
public class JPanelWithListener extends JPanel {
private final List<MouseListener> listeners = new LinkedList<>();
public JPanelWithListener(LayoutManager layoutManager) {
super(layoutManager);
}
@Override
public synchronized void addMouseListener(MouseListener l) {
super.addMouseListener(l);
listeners.add(l);
}
@Override
public synchronized void removeMouseListener(MouseListener l) {
super.removeMouseListener(l);
listeners.remove(l);
}
public synchronized void removeAllMouseListeners() {
for(MouseListener l : listeners)
super.removeMouseListener(l);
listeners.clear();
}
}

View File

@ -28,7 +28,7 @@ public class SensorGauge {
}
public static Component createGauge(Sensor sensor, GaugeChangeListener listener) {
JPanel wrapper = new JPanel(new BorderLayout());
JPanelWithListener wrapper = new JPanelWithListener(new BorderLayout());
createGaugeBody(sensor, wrapper, listener);
@ -51,7 +51,7 @@ public class SensorGauge {
void onSensorChange(Sensor sensor);
}
private static void createGaugeBody(final Sensor sensor, final JPanel wrapper, final GaugeChangeListener listener) {
private static void createGaugeBody(final Sensor sensor, final JPanelWithListener wrapper, final GaugeChangeListener listener) {
final Radial gauge = createRadial(sensor.getName(), sensor.getUnits(), sensor.getMaxValue(), sensor.getMinValue());
UiUtils.setTwoLineToolTip(gauge, "Double-click to detach", "Right-click to change");
@ -82,13 +82,13 @@ public class SensorGauge {
UiUtils.trueLayout(wrapper.getParent());
}
private static void showPopupMenu(MouseEvent e, JPanel wrapper, GaugeChangeListener listener) {
private static void showPopupMenu(MouseEvent e, JPanelWithListener wrapper, GaugeChangeListener listener) {
JPopupMenu pm = new JPopupMenu();
fillGaugeItems(pm, wrapper, listener);
pm.show(e.getComponent(), e.getX(), e.getY());
}
private static void fillGaugeItems(JPopupMenu popupMenu, final JPanel wrapper, final GaugeChangeListener listener) {
private static void fillGaugeItems(JPopupMenu popupMenu, final JPanelWithListener wrapper, final GaugeChangeListener listener) {
for (final SensorCategory sc : SensorCategory.values()) {
JMenuItem cmi = new JMenu(sc.getName());
popupMenu.add(cmi);