Example of Tree Data Model Bean

Top  Previous  Next

package testingapplication.tree;

 

import com.softaspects.jsf.component.tree.TreeDataModel;

 

/**

* Data model bean for the Tree component sample

*/

public class TreeDataModelBean extends TreeDataModel {

 

  /**

   * Constructor - model assembling

   */

  public TreeDataModelBean() {

      super();

      this.addElement(TreeDataModelUtil.getTreeRootItemInstance());

  }

 

}

 

 

package testingapplication.tree;

 

import com.softaspects.jsf.component.tree.*;

import com.softaspects.jsf.renderer.tree.TreeRendererUtil;

 

import javax.faces.event.FacesEvent;

import java.text.MessageFormat;

import java.util.Iterator;

 

public class TreeDataModelUtil {

  public static final String baseImagesPath = "{ApplicationRootContext}/images/tree/";

 

  public static TreeItem getTreeRootItemInstance() {

      return getTreeRootItemInstance(baseImagesPath);

  }

 

  public static void copyDataToStatusText(TreeItem root) {

      root.setItemStatusText(root.getData());

      Iterator iterator = root.elements();

      while (iterator.hasNext()) {

          Object o = iterator.next();

          if (o instanceof TreeItem)

              copyDataToStatusText((TreeItem) o);

      }

  }

 

  public static TreeSelectionModel getTreeSelectionModel() {

      TreeSelectionModel result = new TreeSelectionModel();

      result.setCurrentSelection("1");

      return result;

  }

 

  /**

   * Tree structure assembling

   *

   * @param baseImagesPath base images path

   */

  public static TreeItem getTreeRootItemInstance(String baseImagesPath) {

      TreeItem root = TreeRendererUtil.createFolder(null, "Root", baseImagesPath + "user1.gif");

 

      TreeItem video = TreeRendererUtil.createFolder(root, "Video", baseImagesPath + "monitor.gif");

      TreeRendererUtil.createDoc(video, "Monitor", baseImagesPath + "monitor2.gif");

      TreeRendererUtil.createDoc(video, "Plazma", baseImagesPath + "plasma-tv.gif");

      TreeRendererUtil.createDoc(video, "TV", baseImagesPath + "tv.gif");

 

      TreeRendererUtil.createFolder(root, "Empty Video Folder", baseImagesPath + "monitor.gif");

 

      TreeItem storages = TreeRendererUtil.createFolder(root, "Storages", baseImagesPath + "package.gif");

      TreeItem storagess = TreeRendererUtil.createFolder(storages, "Storages", baseImagesPath + "package.gif");

      TreeRendererUtil.createDoc(storagess, "CD", baseImagesPath + "cd.gif");

      TreeRendererUtil.createDoc(storagess, "CDR", baseImagesPath + "cd_gold.gif");

      TreeItem other = TreeRendererUtil.createFolder(storages, "Other", baseImagesPath + "cube_yellow.gif");

      TreeRendererUtil.createDoc(other, "Tape", baseImagesPath + "tape.gif");

      TreeRendererUtil.createDoc(other, "Record", baseImagesPath + "record.gif");

 

      TreeItem videophoto = TreeRendererUtil.createFolder(root, "Video and Photography", baseImagesPath + "videocamera.gif");

      TreeRendererUtil.createDoc(videophoto, "Camera", baseImagesPath + "camera.gif");

      TreeRendererUtil.createDoc(videophoto, "Super Camera", baseImagesPath + "camera2.gif");

 

      TreeItem sound = TreeRendererUtil.createFolder(root, "Sound", baseImagesPath + "loudspeaker.gif");

      TreeRendererUtil.createDoc(sound, "Speaker", baseImagesPath + "loudspeaker2.gif");

      TreeRendererUtil.createDoc(sound, "Megaphone", baseImagesPath + "megaphone.gif");

      TreeRendererUtil.createDoc(sound, "Headphones", baseImagesPath + "headphones.gif");

      TreeRendererUtil.createDoc(sound, "Radio", baseImagesPath + "radio.gif");

 

      return root;

  }

 

 

  /**

   * Log listener called

   *

   * @param event event

   */

  public static void logListenerCalledMessage(FacesEvent event) {

      System.out.println(getListenerCalledMessage(event));

  }

 

  /**

   * Return listener called message

   *

   * @param event event

   * @return listener called message

   */

  public static String getListenerCalledMessage(FacesEvent event) {

      String className = event.getClass().getName();

      className = className.substring(className.lastIndexOf('.') + 1);

      StringBuffer result = new StringBuffer();

      result.append(MessageFormat.format("Component \"{0}\" listener called. Event: {1}",

              event.getComponent().getId(), className));

      Tree tree = (Tree) event.getComponent();

      for (Object o : tree.getSelectionModel().getCurrentSelections()) {

          String selection = "0," + o;

          TreeItem treeItem = (TreeItem) tree.getDataModel().getElementAt(selection);

          result.append(MessageFormat.format("\n  Selected path: {0}  Selected item: {1}",

                  selection, treeItem.getData()));

      }

      return result.toString();

  }

 

 

  public static TreeItem createNode(String nodeName) {

      TreeItem newNode = new TreeItem();

      newNode.setType("document");

      newNode.setData(nodeName);

      newNode.setDescription(nodeName);

      return newNode;

  }

 

  public static void addNodeToPath(String nodeName, String path, TreeDataModel treeDataModel) {

      treeDataModel.addElementAt(path, createNode(nodeName));

  }

 

  public static void setNodeToPath(String nodeName, String path, TreeDataModel treeDataModel) {

      treeDataModel.setElement(path, createNode(nodeName));

  }

 

}