|
Example of Tree Data Model Bean |
|
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));
}
}