ResizeListener.java
Go to the documentation of this file.00001 package edu.rice.cs.hpc.traceviewer.painter;
00002
00003 import org.eclipse.swt.SWT;
00004 import org.eclipse.swt.events.ControlEvent;
00005 import org.eclipse.swt.events.ControlListener;
00006 import org.eclipse.swt.widgets.Display;
00007 import org.eclipse.swt.widgets.Event;
00008 import org.eclipse.swt.widgets.Listener;
00009
00010 public class ResizeListener implements ControlListener, Runnable, Listener
00011 {
00012 final private BufferPaint buffer;
00013 private long lastEvent = 0;
00014 private boolean mouse = true;
00015
00016 public ResizeListener(BufferPaint buffer) {
00017 this.buffer = buffer;
00018 }
00019
00020 public void controlMoved(ControlEvent e) {
00021 }
00022
00023 public void controlResized(ControlEvent e) {
00024 lastEvent = System.currentTimeMillis();
00025 Display.getDefault().timerExec(500, this);
00026 }
00027
00028 public void run() {
00029 if ((lastEvent + 500) < System.currentTimeMillis() && mouse)
00030 {
00031 buffer.rebuffering();
00032 } else {
00033 Display.getDefault().timerExec(500, this);
00034 }
00035 }
00036 public void handleEvent(Event event) {
00037 mouse = event.type == SWT.MouseUp;
00038 }
00039
00040 }