예제 #1
0
  public void initialize(RequestContext context, XmlComponent xmlComp, Element element)
      throws Exception {
    super.initialize(context, xmlComp, element);

    // must access the bean, so it has to be a FormComponent
    formComp = (FormComponent) xmlComp;

    String ref = XoplonCtrl.getModelReference(element);
    Object bean = formComp.getBean();
    TreeModel tm = (TreeModel) PropertyUtils.getProperty(bean, ref);
    tree = new TreeComponent(element.getAttribute("id"), formComp, tm);

    DefaultSelectionModel dsm = new DefaultSelectionModel();
    String selmode = element.getAttribute("selmode");
    if ("href".equals(selmode)) dsm.setMode(SelectionModel.SINGLE_SELECTION_HREF);
    else if ("single".equals(selmode)) dsm.setMode(SelectionModel.SINGLE_SELECTION);
    else if ("multi".equals(selmode)) dsm.setMode(SelectionModel.MULTIPLE_SELECTION);
    else if ("button".equals(selmode)) dsm.setMode(SelectionModel.MULTIPLE_SELECTION_BUTTON);
    else dsm.setMode(SelectionModel.NO_SELECTION);
    tree.setSelectionModel(dsm);
    if (tm instanceof SelectionChangeListener)
      dsm.addSelectionListener((SelectionChangeListener) tm);

    // override border by setting an attribute
    String border = element.getAttribute("border");
    if (border.length() > 0) tree.setBorder(border);

    // override width by setting an attribute
    String width = element.getAttribute("width");
    if (width.length() > 0) tree.setWidth(width);

    // override renderId Attribute always
    tree.setRenderId(element.getAttribute("id"));

    // click in tree should validate the user input in form fields
    tree.addFormListener(formComp);
    formComp.addFormListener(tree);

    tree.initialize(context);
  }