Mercurial > hg > Applications > AliceVNC
comparison src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveUpdateRectangle.java @ 5:c05d3b89b446
Send DecodeInfo to Children Nodes. but occur ArrayIndexOutOfBoundsException.
author | YU |
---|---|
date | Sat, 13 Sep 2014 20:55:48 +0900 |
parents | 9a24e36d8ed7 |
children | 65d989192d63 |
comparison
equal
deleted
inserted
replaced
4:9a24e36d8ed7 | 5:c05d3b89b446 |
---|---|
1 package jp.ac.u_ryukyu.alicevnc; | 1 package jp.ac.u_ryukyu.alicevnc; |
2 | |
3 import java.util.ArrayList; | |
2 | 4 |
3 import com.glavsoft.exceptions.TransportException; | 5 import com.glavsoft.exceptions.TransportException; |
4 import com.glavsoft.rfb.encoding.EncodingType; | 6 import com.glavsoft.rfb.encoding.EncodingType; |
5 import com.glavsoft.rfb.encoding.decoder.DecodeInfo; | 7 import com.glavsoft.rfb.encoding.decoder.DecodeInfo; |
6 import com.glavsoft.rfb.encoding.decoder.FramebufferUpdateRectangle; | 8 import com.glavsoft.rfb.encoding.decoder.FramebufferUpdateRectangle; |
12 | 14 |
13 public class ReceiveUpdateRectangle extends CodeSegment{ | 15 public class ReceiveUpdateRectangle extends CodeSegment{ |
14 | 16 |
15 private Receiver info = ids.create(CommandType.PEEK); | 17 private Receiver info = ids.create(CommandType.PEEK); |
16 private Receiver info1 = ids.create(CommandType.TAKE); | 18 private Receiver info1 = ids.create(CommandType.TAKE); |
17 | 19 private Receiver info2= ids.create(CommandType.PEEK); |
20 | |
18 public ReceiveUpdateRectangle(){ | 21 public ReceiveUpdateRectangle(){ |
19 info.setKey("Holder"); | 22 info.setKey("Holder"); |
20 info1.setKey("decodeInfo"); | 23 info1.setKey("decodeInfo"); |
24 info2.setKey("_CLIST"); | |
21 } | 25 } |
22 | 26 |
27 | |
23 public void run() { | 28 public void run() { |
24 ZRLEDecoder decoder = new ZRLEDecoder(); | 29 ZRLEDecoder decoder = new ZRLEDecoder(); |
25 RenderAndControllerHolder holder = info.asClass(RenderAndControllerHolder.class); | 30 RenderAndControllerHolder holder = info.asClass(RenderAndControllerHolder.class); |
26 DecodeInfo decodeInfo = info1.asClass(DecodeInfo.class); | 31 DecodeInfo decodeInfo = info1.asClass(DecodeInfo.class); |
27 | 32 |
28 try { | 33 try { |
29 decoder.decode(decodeInfo, holder.renderer); | 34 decoder.decode(decodeInfo, holder.renderer); |
30 FramebufferUpdateRectangle rect = new FramebufferUpdateRectangle( | 35 FramebufferUpdateRectangle rect = new FramebufferUpdateRectangle( |
31 decodeInfo.x, decodeInfo.y, decodeInfo.width, decodeInfo.height); | 36 decodeInfo.x, decodeInfo.y, decodeInfo.width, decodeInfo.height); |
32 | 37 |
33 rect.encodingType = EncodingType.byId(decodeInfo.encodingTypeId); | 38 rect.encodingType = EncodingType.byId(decodeInfo.encodingTypeId); |
34 | 39 |
35 holder.repaintController.repaintBitmap(rect); | 40 holder.repaintController.repaintBitmap(rect); |
36 } catch (TransportException e) { | 41 } catch (TransportException e) { |
37 e.printStackTrace(); | 42 e.printStackTrace(); |
38 } | 43 } |
39 | 44 |
45 | |
46 @SuppressWarnings("unchecked") | |
47 ArrayList<String> clist = info2.asClass(ArrayList.class); | |
48 for (String node : clist){ | |
49 if (!"parent".equals(node)) | |
50 ods.put(node, "decodeInfo", info1.getVal()); | |
51 } | |
52 | |
40 new ReceiveUpdateRectangle(); | 53 new ReceiveUpdateRectangle(); |
41 | 54 |
42 } | 55 } |
43 | 56 |
44 } | 57 } |