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 }