Inheritance diagram for StructChoice::

Public Methods | |
| StructChoice (TypeCode tc) | |
| String | name () | 
| Name of the type. More... | |
| JComponent | inputRes () | 
| Dialog component where the user specifies the parameter. More... | |
| JComponent | inputArg () | 
| Dialog component where the user specifies the result. More... | |
| String | getResult (Any resAny) | 
| Request management: extract result from Any (and convert it to String). More... | |
| void | setArgument (Any argsAny) throws InvalidChoiceException | 
| Request management: add argument to Any. More... | |
| String | toString (java.lang.Object obj) | 
| Converts that object to string. More... | |
| java.lang.Object | asObject (String name) throws InvalidChoiceException | 
| Returns the object introduced as that text. More... | |
      
  | 
  
| 
 
 
 00026 {
00027     super(tc);
00028     try {
00029         _name = tc.name();
00030         _id = tc.id();
00031         _fNames = new String[tc.member_count()];
00032         _fields = new CorbaObjectChoice[tc.member_count()];
00033         for(int i=0; i<_fields.length; i++) {
00034             _fNames[i] = tc.member_name(i);
00035             _fields[i] = ChoiceFactory.getChoice(tc.member_type(i));
00036         }
00037     }catch(Exception e) {
00038         System.out.println(""+e);
00039         e.printStackTrace();
00040     }
00041 }
 | 
  
      
  | 
  
| 
 Name of the type. 
 Reimplemented from CorbaObjectChoice. 
 00044 {
00045     return "struct "+_name;
00046 }
 | 
  
      
  | 
  
| 
 Dialog component where the user specifies the parameter. 
 Reimplemented from CorbaObjectChoice. 
 00049 {
00050     if(_input == null) {
00051         StubComboBoxModel model = new StubComboBoxModel(_id);
00052         _input = new JComboBox(model);
00053 
00054         _input.setEditable(true);
00055         _input.getEditor().getEditorComponent().addFocusListener(new HxJava.Util.SelectOnFocus());
00056 
00057         _input.setSelectedIndex(-1);
00058         _input.getEditor().setItem("");
00059     }
00060 
00061     return _input;
00062 }
 | 
  
      
  | 
  
| 
 Dialog component where the user specifies the result. 
 Reimplemented from CorbaObjectChoice. Reimplemented in PointChoice, and SizesChoice. 
 00065 {
00066     if(_input == null) {
00067         StubComboBoxModel model = new StubComboBoxModel(_id);
00068         _input = new JComboBox(model);
00069     }
00070     return _input;
00071 }
 | 
  
      
  | 
  
| 
 Request management: extract result from Any (and convert it to String). 
 Reimplemented from CorbaObjectChoice. 
 00074 {
00075     String resName = null;
00076 
00077     try {
00078         //result = HxCorba."name"Helper.extract(resAny);
00079 
00080         Class helper = Class.forName("HxCorba."+_name+"Helper");
00081         Class[] argTypes = { Class.forName("org.omg.CORBA.Any") };
00082         Method methExt = helper.getMethod("extract", argTypes);
00083         java.lang.Object[] args = { resAny };
00084         java.lang.Object obj = methExt.invoke(null, args);
00085 
00086         resName = toString(obj);
00087 
00088     }catch(Exception e) {
00089         ErrorStreamArea.println(e+": Cannot find helper class for "+_name);
00090     }
00091 
00092     return resName;
00093 }
 | 
  
      
  | 
  
| 
 Request management: add argument to Any. 
 Reimplemented from CorbaObjectChoice. 
 00096 {
00097     java.lang.Object obj = asObject();
00098 
00099     try {
00100         //HxCorba."name"Helper.insert(argsAny, this);
00101 
00102         Class helper = Class.forName("HxCorba."+_name+"Helper");
00103         Class[] argTypes = { Class.forName("org.omg.CORBA.Any"),
00104                              Class.forName("HxCorba."+_name) };
00105         Method methIns = helper.getMethod("insert", argTypes);
00106         java.lang.Object[] args = { argsAny, obj };
00107         methIns.invoke(null, args);
00108     }catch(Exception e) {
00109         ErrorStreamArea.println(e+": Cannot find helper class for "+_name);
00110     }
00111 }
 | 
  
      
  | 
  
| 
 Converts that object to string. Useful method to implement getResult. Reimplemented from CorbaObjectChoice. 
 00114 {
00115     String resName = _input.getSelectedItem().toString();
00116     if(resName.length() == 0) resName = _name+"*";
00117 
00118     StubRepository.instance().addStub(_id, resName, obj);
00119 
00120     String result = null;
00121     try {
00122         Class c = obj.getClass();
00123         result = "{";
00124         for(int i=0; i<_fields.length; i++) {
00125             java.lang.Object fieldObj = c.getField(_fNames[i]).get(obj);
00126             String fVal = _fields[i].toString(fieldObj);
00127             result = result+_fNames[i]+": "+fVal+", ";
00128         }
00129         result = result+"}";
00130 
00131     }catch(Exception e){
00132         System.out.println(""+e);
00133     }
00134 
00135     return result;
00136 }
 | 
  
      
  | 
  
| 
 Returns the object introduced as that text. Useful method to implement setArgument. Reimplemented from CorbaObjectChoice. Reimplemented in PointChoice, and SizesChoice. 
 00139 {
00140     java.lang.Object obj = StubRepository.instance().getStub(_id, name);
00141     if(obj == null)
00142         throw new InvalidChoiceException(_name+" \""+name+"\" doesn't exists");
00143 
00144     return obj;
00145 }
 | 
  
1.2.12 written by Dimitri van Heesch,
 © 1997-2001