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
* 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;
@ -40,6 +40,8 @@ import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.BufferedWriter;
@ -68,6 +70,7 @@ import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JToolTip;
import javax.swing.KeyStroke;
import javax.swing.Popup;
import javax.swing.PopupFactory;
import javax.swing.SwingUtilities;
@ -238,6 +241,12 @@ public class TimeLine extends VisPlugin {
);
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);
pack();
@ -320,6 +329,9 @@ public class TimeLine extends VisPlugin {
pixelX = popupLocation.x;
popupLocation = null;
}
if (mousePixelPositionX > 0) {
pixelX = mousePixelPositionX;
}
final long centerTime = pixelX*currentPixelDivisor;
if (zoomLevel > 0) {
@ -359,6 +371,9 @@ public class TimeLine extends VisPlugin {
popupLocation = null;
}
final long centerTime = pixelX*currentPixelDivisor;
if (mousePixelPositionX > 0) {
pixelX = mousePixelPositionX;
}
if (zoomLevel < ZOOM_LEVELS.length-1) {
zoomLevel++;
@ -1011,12 +1026,12 @@ public class TimeLine extends VisPlugin {
public Timeline() {
setLayout(null);
setToolTipText("");
setToolTipText(null);
setBackground(COLOR_BACKGROUND);
addMouseListener(mouseAdapter);
addMouseMotionListener(mouseAdapter);
/* Popup menu */
final JPopupMenu popupMenu = new JPopupMenu();
@ -1057,7 +1072,7 @@ public class TimeLine extends VisPlugin {
}
});
}
private MouseAdapter mouseAdapter = new MouseAdapter() {
private Popup popUpToolTip = null;
public void mouseDragged(MouseEvent e) {
@ -1081,7 +1096,7 @@ public class TimeLine extends VisPlugin {
} else {
/* Trigger tooltip */
JToolTip t = timeline.createToolTip();
t.setTipText(timeline.getToolTipText(e));
t.setTipText(Timeline.this.getMouseToolTipText(e));
if (t.getTipText() == null || t.getTipText().equals("")) {
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) {
return "<html>Click to display time marker</html>";
}
@ -1341,7 +1356,7 @@ public class TimeLine extends VisPlugin {
class MoteRuler extends JPanel {
public MoteRuler() {
setPreferredSize(new Dimension(35, 1));
setToolTipText("");
setToolTipText(null);
setBackground(COLOR_BACKGROUND);
final JPopupMenu popupMenu = new JPopupMenu();