/******************************************************************************* * Copyright (c) 2011-2014 Fernando Petrola * * This file is part of Dragome SDK. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Public License v3.0 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html ******************************************************************************/ package com.dragome.examples.tree; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.List; import com.dragome.examples.tree.service.serverside.FileSystemServiceImpl; import com.dragome.guia.components.DefaultEventProducer; public class FileTreeNode extends DefaultEventProducer implements TreeNode { protected String name; protected List<TreeNode> children= new ArrayList<TreeNode>(); protected boolean root; protected boolean lastChild; protected boolean open; protected boolean folder; protected boolean error; public boolean isError() { return error; } public void setError(boolean error) { this.error= error; } public boolean isOpen() { return open; } public void setOpen(boolean open) { this.open= open; if (hasListener(PropertyChangeListener.class)) getListener(PropertyChangeListener.class).propertyChange(new PropertyChangeEvent(this, "open", !this.open, this.open)); } public boolean isRoot() { return root; } public void setRoot(boolean root) { this.root= root; } public boolean isLastChild() { return lastChild; } public void setLastChild(boolean lastChild) { this.lastChild= lastChild; } public FileTreeNode() { } public void setName(String name) { this.name= name; } public FileTreeNode(String rootFolder) { this(); this.name= rootFolder; children= new FileSystemServiceImpl().getChildrenOf(name); folder= getChildren().size() > 0; error= (Math.round(Math.random() * 5) == 3); error= getName().toLowerCase().contains("re"); } public FileTreeNode(String folder, boolean isRoot) { this(folder); root= isRoot; } public List<TreeNode> getChildren() { return children; } public String getName() { return name.substring(name.lastIndexOf("/") + 1); } public void setChildren(List<TreeNode> children) { this.children= children; } public void setFolder(boolean folder) { this.folder= folder; } public boolean isFolder() { return folder; } public void addPropertyChangeListener(Object owner, PropertyChangeListener propertyChangeListener) { addListenerForOwner(PropertyChangeListener.class, propertyChangeListener, owner); } }