Inheritance diagram for PlayElement::

Public Methods | |
| PlayElement () | |
| HxCorba.ImageRep | computeResult () | 
| void | componentAdded (ContainerEvent e) | 
| void | componentRemoved (ContainerEvent e) | 
| void | keyPressed () | 
| void | animationStep () | 
| boolean | continueAnimation () | 
      
  | 
  
| 
 
 
 00023 {
00024     int marginLF = 0;
00025     int marginUP = 0;
00026     int marginRG = KeyComponent.componentSize().width  / 2 - 10;
00027     int marginDW = ImageElement.componentSize().height / 2;
00028     int machineW = 114;
00029     int machineH = 90;
00030 
00031     setSize(marginLF+machineW+marginRG, marginUP+machineH+marginDW);
00032     setMachineImage(Images.player, marginLF, marginUP, machineW, machineH);
00033 
00034     _props = new PlayProperties();
00035     _props.length = 0;
00036     _props.pos = -1;
00037 
00038     _output = createOutputSocket(0, 5);
00039     _input = createInputSocket(marginLF+22, marginUP + machineH - marginDW - 2);
00040     _propComp = createPropertyComponent(_props, marginLF+58, marginUP + 62, 35);
00041     _key = createKeyComponent(marginLF+machineW-marginRG-27, marginUP + 5);
00042     _display = createDisplayComponent(marginLF+22, marginUP+4, 70, 47);
00043 
00044     _conMgr = new ConnectorManager(this, _output);
00045     _conMgr.setColor(Color.orange);
00046     _conMgr.createConnector("Player frame");
00047 
00048     _input.addContainerListener(this);
00049 }
 | 
  
      
  | 
  
| 
 
 Reimplemented from ConnectorMachine. 
 00053 {
00054     if(_input == null) return null;
00055     return _input.getImageRep();
00056 }
 | 
  
      
  | 
  
| 
 
 
 00059 {
00060     if(e.getContainer() != _input) return;
00061 
00062     ImageElement elem = (ImageElement)e.getChild();
00063 
00064     if(elem instanceof VideoElement) {
00065         _velem = (VideoElement)elem;
00066         _props.pos = _velem.getFrameNumber();
00067         _props.length = _velem.getVideo().nrFrames();
00068     }else if(elem instanceof ConnectorElement) {
00069         _props.pos = -1;
00070         _props.length = 0;
00071     }else if(elem.getImageRep() != null) {
00072         _props.pos = 0;
00073         _props.length = 1;
00074     }else {
00075         _props.pos = -1;
00076         _props.length = 0;
00077     }
00078 
00079     _propComp.repaint();
00080     if(_props.pos != -1)
00081         _display.showImage(elem.getImageRep());
00082 }
 | 
  
      
  | 
  
| 
 
 
 00085 {
00086     if(e.getChild() == this) _conMgr.freeConnector();
00087 
00088     if(e.getContainer() != _input) return;
00089 
00090     _props.pos = -1;
00091     _props.length = 0;
00092     _video = null;
00093     _velem = null;
00094     _working = false;
00095     _display.clear();
00096 }
 | 
  
      
  | 
  
| 
 
 Reimplemented from AnimatedMachine. 
 00100 {
00101     if(_velem == null) return;
00102 
00103     _working = !_working;
00104 
00105     if(_working) {
00106         //machine started
00107         _video = _velem.getVideo();
00108         _key.startAnimation(20);
00109     } else
00110         //stopped
00111         _velem.setFrame(_props.pos);
00112 }
 | 
  
      
  | 
  
| 
 
 Reimplemented from AnimatedMachine. 
 00116 {
00117     if(_velem == null) return;
00118 
00119     _props.pos++;
00120     if(_props.pos >= _video.nrFrames()) {
00121         _props.pos = _video.nrFrames()-1;
00122         _velem.setFrame(_props.pos);
00123         _working = false;
00124     }
00125     else {
00126         _display.showImage(_video.getFrame(_props.pos));
00127     }
00128     _propComp.repaint();
00129 }
 | 
  
      
  | 
  
| 
 
 Reimplemented from AnimatedMachine. 
 00133 {
00134     return (_working && (_velem != null));
00135 }
 | 
  
1.2.12 written by Dimitri van Heesch,
 © 1997-2001