added: zoom in/out via ctrl +/-

removed: mouse tooltip (only appears when mouse is clicked)
This commit is contained in:
fros4943 2009-12-11 10:41:10 +00:00
parent f50b8db53b
commit 6940c85518
1 changed files with 22 additions and 7 deletions

View File

@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $Id: TimeLine.java,v 1.19 2009/12/07 11:14:02 fros4943 Exp $ * $Id: TimeLine.java,v 1.20 2009/12/11 10:41:10 fros4943 Exp $
*/ */
package se.sics.cooja.plugins; package se.sics.cooja.plugins;
@ -40,6 +40,8 @@ import java.awt.Point;
import java.awt.Rectangle; import java.awt.Rectangle;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.io.BufferedWriter; import java.io.BufferedWriter;
@ -68,6 +70,7 @@ import javax.swing.JPopupMenu;
import javax.swing.JScrollPane; import javax.swing.JScrollPane;
import javax.swing.JSplitPane; import javax.swing.JSplitPane;
import javax.swing.JToolTip; import javax.swing.JToolTip;
import javax.swing.KeyStroke;
import javax.swing.Popup; import javax.swing.Popup;
import javax.swing.PopupFactory; import javax.swing.PopupFactory;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
@ -238,6 +241,12 @@ public class TimeLine extends VisPlugin {
); );
splitPane.setOneTouchExpandable(true); splitPane.setOneTouchExpandable(true);
/* Zoom in/out via keyboard*/
getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, KeyEvent.CTRL_DOWN_MASK), "zoomIn");
getActionMap().put("zoomIn", zoomInAction);
getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, KeyEvent.CTRL_DOWN_MASK), "zoomOut");
getActionMap().put("zoomOut", zoomOutAction);
getContentPane().add(splitPane); getContentPane().add(splitPane);
pack(); pack();
@ -320,6 +329,9 @@ public class TimeLine extends VisPlugin {
pixelX = popupLocation.x; pixelX = popupLocation.x;
popupLocation = null; popupLocation = null;
} }
if (mousePixelPositionX > 0) {
pixelX = mousePixelPositionX;
}
final long centerTime = pixelX*currentPixelDivisor; final long centerTime = pixelX*currentPixelDivisor;
if (zoomLevel > 0) { if (zoomLevel > 0) {
@ -359,6 +371,9 @@ public class TimeLine extends VisPlugin {
popupLocation = null; popupLocation = null;
} }
final long centerTime = pixelX*currentPixelDivisor; final long centerTime = pixelX*currentPixelDivisor;
if (mousePixelPositionX > 0) {
pixelX = mousePixelPositionX;
}
if (zoomLevel < ZOOM_LEVELS.length-1) { if (zoomLevel < ZOOM_LEVELS.length-1) {
zoomLevel++; zoomLevel++;
@ -1011,12 +1026,12 @@ public class TimeLine extends VisPlugin {
public Timeline() { public Timeline() {
setLayout(null); setLayout(null);
setToolTipText(""); setToolTipText(null);
setBackground(COLOR_BACKGROUND); setBackground(COLOR_BACKGROUND);
addMouseListener(mouseAdapter); addMouseListener(mouseAdapter);
addMouseMotionListener(mouseAdapter); addMouseMotionListener(mouseAdapter);
/* Popup menu */ /* Popup menu */
final JPopupMenu popupMenu = new JPopupMenu(); final JPopupMenu popupMenu = new JPopupMenu();
@ -1057,7 +1072,7 @@ public class TimeLine extends VisPlugin {
} }
}); });
} }
private MouseAdapter mouseAdapter = new MouseAdapter() { private MouseAdapter mouseAdapter = new MouseAdapter() {
private Popup popUpToolTip = null; private Popup popUpToolTip = null;
public void mouseDragged(MouseEvent e) { public void mouseDragged(MouseEvent e) {
@ -1081,7 +1096,7 @@ public class TimeLine extends VisPlugin {
} else { } else {
/* Trigger tooltip */ /* Trigger tooltip */
JToolTip t = timeline.createToolTip(); JToolTip t = timeline.createToolTip();
t.setTipText(timeline.getToolTipText(e)); t.setTipText(Timeline.this.getMouseToolTipText(e));
if (t.getTipText() == null || t.getTipText().equals("")) { if (t.getTipText() == null || t.getTipText().equals("")) {
return; return;
} }
@ -1267,7 +1282,7 @@ public class TimeLine extends VisPlugin {
} }
} }
public String getToolTipText(MouseEvent event) { public String getMouseToolTipText(MouseEvent event) {
if (event.getPoint().y <= TIME_MARKER_PIXEL_HEIGHT) { if (event.getPoint().y <= TIME_MARKER_PIXEL_HEIGHT) {
return "<html>Click to display time marker</html>"; return "<html>Click to display time marker</html>";
} }
@ -1341,7 +1356,7 @@ public class TimeLine extends VisPlugin {
class MoteRuler extends JPanel { class MoteRuler extends JPanel {
public MoteRuler() { public MoteRuler() {
setPreferredSize(new Dimension(35, 1)); setPreferredSize(new Dimension(35, 1));
setToolTipText(""); setToolTipText(null);
setBackground(COLOR_BACKGROUND); setBackground(COLOR_BACKGROUND);
final JPopupMenu popupMenu = new JPopupMenu(); final JPopupMenu popupMenu = new JPopupMenu();