Tesseract  3.02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
com.google.scrollview.events.SVEventHandler Class Reference
Inheritance diagram for com.google.scrollview.events.SVEventHandler:

Public Member Functions

 SVEventHandler (SVWindow wdw)
 
void mouseClicked (PInputEvent e)
 
void mousePressed (PInputEvent e)
 
void mouseDragged (PInputEvent e)
 
void mouseReleased (PInputEvent e)
 
void mouseWheelRotated (PInputEvent e)
 
void mouseMoved (PInputEvent e)
 
void mouseEntered (PInputEvent e)
 
void mouseExited (PInputEvent e)
 
void actionPerformed (ActionEvent e)
 
void keyPressed (KeyEvent e)
 
void windowClosing (WindowEvent e)
 
void keyReleased (KeyEvent e)
 
void keyTyped (KeyEvent e)
 
void windowActivated (WindowEvent e)
 
void windowClosed (WindowEvent e)
 
void windowDeactivated (WindowEvent e)
 
void windowDeiconified (WindowEvent e)
 
void windowIconified (WindowEvent e)
 
void windowOpened (WindowEvent e)
 

Public Attributes

Timer timer
 

Detailed Description

The ScrollViewEventHandler takes care of any events which might happen on the canvas and converts them to an according SVEvent, which is (using the processEvent method) then added to a message queue. All events from the message queue get sent gradually

Author
wanke.nosp@m.@goo.nosp@m.gle.c.nosp@m.om

Definition at line 42 of file SVEventHandler.java.

Constructor & Destructor Documentation

com.google.scrollview.events.SVEventHandler.SVEventHandler ( SVWindow  wdw)
inline

Setup the timer.

Definition at line 75 of file SVEventHandler.java.

75  {
76  timer = new Timer(1000, this);
77  svWindow = wdw;
78  }

Member Function Documentation

void com.google.scrollview.events.SVEventHandler.actionPerformed ( ActionEvent  e)
inline

The only associated object with this is the timer, so we use it to send a SVET_HOVER event.

Definition at line 226 of file SVEventHandler.java.

226  {
227  processEvent(new SVEvent(SVEventType.SVET_HOVER, svWindow, lastXMove,
228  lastYMove, 0, 0, null));
229  }
SVEventType
Definition: scrollview.h:45
void com.google.scrollview.events.SVEventHandler.keyPressed ( KeyEvent  e)
inline

A key was pressed - create an SVET_INPUT event.

NOTE: Might be useful to specify hotkeys.

Implementation note: The keyListener provided by Piccolo seems to be broken, so we use the AWT listener directly. There are never any keyTyped events received either so we are stuck with physical keys, which is very ugly.

Definition at line 241 of file SVEventHandler.java.

241  {
242  char keyCh = e.getKeyChar();
243  if (keyCh == '\r' || keyCh == '\n' || keyCh == '\0' || keyCh == '?') {
244  processEvent(new SVEvent(SVEventType.SVET_INPUT, svWindow, lastXMove,
245  lastYMove, 0, 0, keyStr));
246  // Send newline characters as '!' as '!' can never be a keypressed
247  // and the client eats all newline characters.
248  keyStr = "!";
249  } else {
250  processEvent(new SVEvent(SVEventType.SVET_INPUT, svWindow, lastXMove,
251  lastYMove, 0, 0, String.valueOf(keyCh)));
252  keyStr += keyCh;
253  }
254  }
SVEventType
Definition: scrollview.h:45
void com.google.scrollview.events.SVEventHandler.keyReleased ( KeyEvent  e)
inline

These are all events we do not care about and throw away

Definition at line 273 of file SVEventHandler.java.

273  {
274  }
void com.google.scrollview.events.SVEventHandler.keyTyped ( KeyEvent  e)
inline

Definition at line 276 of file SVEventHandler.java.

276  {
277  }
void com.google.scrollview.events.SVEventHandler.mouseClicked ( PInputEvent  e)
inline

The mouse is clicked - create an SVET_CLICK event.

Definition at line 104 of file SVEventHandler.java.

104  {
105  if (e.isPopupTrigger()) {
106  showPopup(e);
107  } else {
108  processEvent(new SVEvent(SVEventType.SVET_CLICK, svWindow, (int) e
109  .getPosition().getX(), (int) e.getPosition().getY(), 0, 0, null));
110  }
111  }
SVEventType
Definition: scrollview.h:45
void com.google.scrollview.events.SVEventHandler.mouseDragged ( PInputEvent  e)
inline

The mouse is getting dragged - create an SVET_MOUSE event.

Definition at line 132 of file SVEventHandler.java.

132  {
133  processEvent(new SVEvent(SVEventType.SVET_MOUSE, svWindow, (int) e
134  .getPosition().getX(), (int) e.getPosition().getY(), (int) e
135  .getPosition().getX()
136  - lastX, (int) e.getPosition().getY() - lastY, null));
137 
138  // Paint a selection rectangle.
139  if (selection == null) {
140  startX = (int) e.getPosition().getX();
141  startY = (int) e.getPosition().getY();
142  selection = PPath.createRectangle(startX, startY, 1, 1);
143  selection.setTransparency(rubberBandTransparency);
144  svWindow.canvas.getLayer().addChild(selection);
145  } else {
146  int right = Math.max(startX, (int) e.getPosition().getX());
147  int left = Math.min(startX, (int) e.getPosition().getX());
148  int bottom = Math.max(startY, (int) e.getPosition().getY());
149  int top = Math.min(startY, (int) e.getPosition().getY());
150  svWindow.canvas.getLayer().removeChild(selection);
151  selection = PPath.createRectangle(left, top, right - left, bottom - top);
152  selection.setPaint(Color.YELLOW);
153  selection.setTransparency(rubberBandTransparency);
154  svWindow.canvas.getLayer().addChild(selection);
155  }
156  }
SVEventType
Definition: scrollview.h:45
void com.google.scrollview.events.SVEventHandler.mouseEntered ( PInputEvent  e)
inline

The mouse entered the window. Start the timer, which will then emit SVET_HOVER events every X ms.

Definition at line 210 of file SVEventHandler.java.

210  {
211  timer.restart();
212  }
void com.google.scrollview.events.SVEventHandler.mouseExited ( PInputEvent  e)
inline

The mouse exited the window Stop the timer, so no more SVET_HOVER events will emit.

Definition at line 218 of file SVEventHandler.java.

218  {
219  timer.stop();
220  }
void com.google.scrollview.events.SVEventHandler.mouseMoved ( PInputEvent  e)
inline

The mouse was moved - create an SVET_MOTION event. NOTE: This obviously creates a lot of traffic and, depending on the type of application, could quite possibly be disabled.

Definition at line 201 of file SVEventHandler.java.

201  {
202  processEvent(new SVEvent(SVEventType.SVET_MOTION, svWindow, (int) e
203  .getPosition().getX(), (int) e.getPosition().getY(), 0, 0, null));
204  }
SVEventType
Definition: scrollview.h:45
void com.google.scrollview.events.SVEventHandler.mousePressed ( PInputEvent  e)
inline

The mouse key is pressed (and keeps getting pressed). Depending on the OS, show a popup menu (if the button pressed is associated with popup menus, like the RMB under windows&linux) or otherwise save the position (in case it is a selection).

Definition at line 120 of file SVEventHandler.java.

120  {
121  if (e.isPopupTrigger()) {
122  showPopup(e);
123  } else {
124  lastX = (int) e.getPosition().getX();
125  lastY = (int) e.getPosition().getY();
126  timer.restart();
127  }
128  }
void com.google.scrollview.events.SVEventHandler.mouseReleased ( PInputEvent  e)
inline

The mouse was released. Depending on the OS, show a popup menu (if the button pressed is associated with popup menus, like the RMB under windows&linux) or otherwise create an SVET_SELECTION event.

Definition at line 165 of file SVEventHandler.java.

165  {
166  if (e.isPopupTrigger()) {
167  showPopup(e);
168  } else {
169  processEvent(new SVEvent(SVEventType.SVET_SELECTION, svWindow, (int) e
170  .getPosition().getX(), (int) e.getPosition().getY(), (int) e
171  .getPosition().getX()
172  - lastX, (int) e.getPosition().getY() - lastY, null));
173  }
174  if (selection != null) {
175  svWindow.canvas.getLayer().removeChild(selection);
176  }
177  }
SVEventType
Definition: scrollview.h:45
void com.google.scrollview.events.SVEventHandler.mouseWheelRotated ( PInputEvent  e)
inline

The mouse wheel is used to zoom in and out of the viewport and center on the (x,y) position the mouse is currently on.

Definition at line 184 of file SVEventHandler.java.

184  {
185  PCamera lc = svWindow.canvas.getCamera();
186  double sf = SVWindow.SCALING_FACTOR;
187 
188  if (e.getWheelRotation() < 0) {
189  sf = 1 / sf;
190  }
191  lc.scaleViewAboutPoint(lc.getScale() / sf, e.getPosition().getX(), e
192  .getPosition().getY());
193  }
static final double SCALING_FACTOR
Definition: SVWindow.java:65
void com.google.scrollview.events.SVEventHandler.windowActivated ( WindowEvent  e)
inline

Definition at line 279 of file SVEventHandler.java.

279  {
280  }
void com.google.scrollview.events.SVEventHandler.windowClosed ( WindowEvent  e)
inline

Definition at line 282 of file SVEventHandler.java.

282  {
283  }
void com.google.scrollview.events.SVEventHandler.windowClosing ( WindowEvent  e)
inline

A window is closed (by the 'x') - create an SVET_DESTROY event. If it was the last open Window, also send an SVET_EXIT event (but do not exit unless the client says so).

Definition at line 261 of file SVEventHandler.java.

261  {
262  processEvent(new SVEvent(SVEventType.SVET_DESTROY, svWindow, lastXMove,
263  lastYMove, 0, 0, null));
264  e.getWindow().dispose();
265  SVWindow.nrWindows--;
266  if (SVWindow.nrWindows == 0) {
267  processEvent(new SVEvent(SVEventType.SVET_EXIT, svWindow, lastXMove,
268  lastYMove, 0, 0, null));
269  }
270  }
SVEventType
Definition: scrollview.h:45
void com.google.scrollview.events.SVEventHandler.windowDeactivated ( WindowEvent  e)
inline

Definition at line 285 of file SVEventHandler.java.

285  {
286  }
void com.google.scrollview.events.SVEventHandler.windowDeiconified ( WindowEvent  e)
inline

Definition at line 288 of file SVEventHandler.java.

288  {
289  }
void com.google.scrollview.events.SVEventHandler.windowIconified ( WindowEvent  e)
inline

Definition at line 291 of file SVEventHandler.java.

291  {
292  }
void com.google.scrollview.events.SVEventHandler.windowOpened ( WindowEvent  e)
inline

Definition at line 294 of file SVEventHandler.java.

294  {
295  }

Member Data Documentation

Timer com.google.scrollview.events.SVEventHandler.timer

Necessary to wait for a defined period of time (for SVET_HOVER).

Definition at line 46 of file SVEventHandler.java.


The documentation for this class was generated from the following file: