1 package uk.ac.vamsas.client.picking;
\r
3 import java.util.logging.*;
\r
5 import uk.ac.vamsas.objects.core.Input;
\r
6 import uk.ac.vamsas.objects.core.Pos;
\r
7 import uk.ac.vamsas.objects.core.Seg;
\r
10 * Simple example of a (runnable) class that shows how to use the picking API.
\r
11 * use this to test new messages. Bear in mind that any active pick server only
\r
12 * relays messages that could be parsed at compile time - that means that you
\r
13 * must make sure that you close all currently running vamsas pick servers and
\r
14 * start a new one which copes with the new message in order to be able to
\r
15 * receive any of the new message classes.
\r
17 public class TestApp implements IMessageHandler {
\r
18 public static void main(String[] args) throws Exception {
\r
19 TestApp app = new TestApp();
\r
23 IPickManager manager = new SocketManager();
\r
24 manager.registerMessageHandler(this);
\r
27 Thread.sleep((int) (Math.random() * 5000));
\r
28 } catch (InterruptedException e) {
\r
31 int rnd = (int) (Math.random() * 100);
\r
32 CustomMessage msg = new CustomMessage("" + rnd);
\r
34 manager.sendMessage(msg);
\r
37 Thread.sleep((int) (Math.random() * 5000));
\r
38 } catch (InterruptedException e) {
\r
41 MouseOverMessage mom = new MouseOverMessage("wibble", 10);
\r
42 manager.sendMessage(mom);
\r
45 Thread.sleep((int) (Math.random() * 5000));
\r
46 } catch (InterruptedException e) {
\r
50 Input range = new Input();
\r
51 for (int in = 0, inL = (2 + ((int) (Math.random() * 10f))); in < inL; in++) {
\r
52 if ((inL % 2) == 1) {
\r
54 sg.setStart((int) (Math.random() * 1000f));
\r
55 sg.setEnd((int) (Math.random() * 1000f));
\r
56 sg.setInclusive((((int) (Math.random() * 10f)) % 2) == 0);
\r
60 p.setI((int) (Math.random() * 1000f));
\r
64 String[] ids = new String[(int) (Math.random() * 10)];
\r
65 for (int id = 0; id < ids.length; id++) {
\r
66 ids[id] = "object" + id;
\r
69 SelectionMessage sel = new SelectionMessage("mysel", ids, (ids.length>0) ? range : null,(ids.length==0) ? true : false);
\r
71 manager.sendMessage(sel);
\r
72 } catch (Exception e) {
\r
73 System.err.println("Failed to construct and send selection message.");
\r
74 e.printStackTrace();
\r
79 public void handleMessage(Message message) {
\r
80 System.out.println("Handler received " + message.getRawMessage());
\r
81 if (message instanceof MouseOverMessage) {
\r
82 MouseOverMessage mm = (MouseOverMessage) message;
\r
83 System.out.println("MouseOver : " + mm.getPosition() + " on id "
\r
86 if (message instanceof SelectionMessage) {
\r
87 SelectionMessage sm = (SelectionMessage) message;
\r
89 System.out.println("Selection "
\r
90 + ((sm.getSelectionID() == null) ? "on " : "'" + sm.getSelectionID()
\r
92 + sm.getVorbaIDs().length
\r
93 + ((sm.getRanges() == null) ? "." : " over "
\r
94 + ((sm.getRanges().getPosCount() > 0) ? ""
\r
95 + sm.getRanges().getPosCount() + " positions" : ""
\r
96 + sm.getRanges().getSegCount() + "intervals.")));
\r