/* SignalToolForwardingMouseAdapter.java created 2007-11-08 * */ package org.signalml.app.view.signal; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseWheelEvent; import javax.swing.SwingUtilities; import org.signalml.plugin.export.signal.SignalTool; /** SignalToolForwardingMouseAdapter * * * @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o. */ public class SignalToolForwardingMouseAdapter extends MouseAdapter { private boolean mustSupportColumnHeader; private boolean mustSupportRowHeader; private SelectTagSignalTool selectTagSignalTool; private SignalTool signalTool; public SignalToolForwardingMouseAdapter() { this(false,false); } public SignalToolForwardingMouseAdapter(boolean mustSupportColumnHeader, boolean mustSupportRowHeader) { this.mustSupportColumnHeader = mustSupportColumnHeader; this.mustSupportRowHeader = mustSupportRowHeader; } public boolean isMustSupportColumnHeader() { return mustSupportColumnHeader; } public boolean isMustSupportRowHeader() { return mustSupportRowHeader; } public SignalTool getSignalTool() { return signalTool; } public void setSignalTool(SignalTool signalTool) { this.signalTool = signalTool; } public SelectTagSignalTool getSelectTagSignalTool() { return selectTagSignalTool; } public void setSelectTagSignalTool(SelectTagSignalTool selectTagSignalTool) { this.selectTagSignalTool = selectTagSignalTool; } @Override public void mousePressed(MouseEvent e) { if ((!(signalTool instanceof SelectionSignalTool)) && (SwingUtilities.isMiddleMouseButton(e) || (SwingUtilities.isLeftMouseButton(e) && e.isShiftDown()))) { // TODO signalTool.mousePressed(e) ?? selectTagSignalTool.mousePressed(e); } else { if (signalTool != null) { if (mustSupportColumnHeader && !signalTool.supportsColumnHeader()) { return; } if (mustSupportRowHeader && !signalTool.supportsRowHeader()) { return; } signalTool.mousePressed(e); } } } @Override public void mouseReleased(MouseEvent e) { if (signalTool != null) { if (mustSupportColumnHeader && !signalTool.supportsColumnHeader()) { return; } if (mustSupportRowHeader && !signalTool.supportsRowHeader()) { return; } signalTool.mouseReleased(e); } } @Override public void mouseClicked(MouseEvent e) { if (signalTool != null) { if (mustSupportColumnHeader && !signalTool.supportsColumnHeader()) { return; } if (mustSupportRowHeader && !signalTool.supportsRowHeader()) { return; } signalTool.mouseClicked(e); } } @Override public void mouseEntered(MouseEvent e) { if (signalTool != null) { if (mustSupportColumnHeader && !signalTool.supportsColumnHeader()) { return; } if (mustSupportRowHeader && !signalTool.supportsRowHeader()) { return; } signalTool.mouseEntered(e); } } @Override public void mouseExited(MouseEvent e) { if (signalTool != null) { if (mustSupportColumnHeader && !signalTool.supportsColumnHeader()) { return; } if (mustSupportRowHeader && !signalTool.supportsRowHeader()) { return; } signalTool.mouseExited(e); } } @Override public void mouseDragged(MouseEvent e) { if (signalTool != null) { if (mustSupportColumnHeader && !signalTool.supportsColumnHeader()) { return; } if (mustSupportRowHeader && !signalTool.supportsRowHeader()) { return; } signalTool.mouseDragged(e); } } @Override public void mouseMoved(MouseEvent e) { if (signalTool != null) { if (mustSupportColumnHeader && !signalTool.supportsColumnHeader()) { return; } if (mustSupportRowHeader && !signalTool.supportsRowHeader()) { return; } signalTool.mouseMoved(e); } } @Override public void mouseWheelMoved(MouseWheelEvent e) { if (signalTool != null) { if (mustSupportColumnHeader && !signalTool.supportsColumnHeader()) { return; } if (mustSupportRowHeader && !signalTool.supportsRowHeader()) { return; } signalTool.mouseWheelMoved(e); } } }