private StringParameter buildOption(Object object, Container location, IXMLElement node, final Runnable onUpdate) throws GUIBuilderException {
		// TODO Auto-generated method stub
		String name=null;
		LinkedList options = new LinkedList();
		Enumeration children = node.enumerateChildren();
		while(children.hasMoreElements()){
			IXMLElement child = (IXMLElement) children.nextElement();
			if (child.getName().equals("title"))
				name = child.getContent();
			if (child.getName().equals("value"))
				options.add(child.getContent());
		}
		//read contents.
		String[] gs=getGetterAndSetter(node);
		final StringParameter param;
		try {
			param = new StringParameter(name,object,gs[0],gs[1]);
		} catch (SecurityException e) {
			e.printStackTrace();
			return null;
		} catch (NoSuchMethodException e) {
			e.printStackTrace();
			return null;
		}
		//parameter created. Now creating combo
		if (name != null){
			JLabel title=new JLabel(name);
			location.add(title);
		}

		Object[] items = new Object[options.size()];
		int i=0;
		for (Iterator iOption = options.iterator(); iOption.hasNext();++i) {
			items[i] = (String) iOption.next();
		}
		
		final JComboBox combo=new JComboBox(items);
		combo.setSelectedItem(param.getString());
		combo.setEditable(false);
	
		
		//setting dimension to fit vertival box
		Dimension d=combo.getPreferredSize();
		d.width=Integer.MAX_VALUE;
		combo.setMaximumSize(d);
		
		combo.addItemListener(new ItemListener(){
			public void itemStateChanged(ItemEvent e) {
				String itm  = (String) combo.getSelectedItem();
				param.setString(itm);
				call(onUpdate);
			}
		});
		location.add(combo);			

		return param;
	}