package model;
import java.io.Serializable;
import javafx.scene.image.ImageView;
public abstract class IliasTreeNode implements Serializable {
private static final long serialVersionUID = -5666402232004312659L;
private final String url;
private final String name;
private String nameChangedByUser;
private final IliasFolder parentFolder;
public IliasTreeNode(String name, String url, IliasFolder parentFolder) {
this.name = name;
this.url = url;
if (parentFolder != null) {
parentFolder.getChildNodes().add(this);
}
this.parentFolder = parentFolder;
this.nameChangedByUser = null;
}
public abstract ImageView getGraphic();
public String getUrl() {
return url;
}
public String getName() {
return name;
}
public void setNameChangedByUser(String nameChangedByUser) {
this.nameChangedByUser = nameChangedByUser;
}
public IliasFolder getParentFolder() {
return parentFolder;
}
public IliasTreeNode getRootCourse() {
return getRoot(this);
}
private IliasTreeNode getRoot(IliasTreeNode directory) {
if (directory.getParentFolder() == null) {
return directory;
}
return getRoot(directory.getParentFolder());
}
@Override
public String toString() {
if (nameChangedByUser != null) {
return nameChangedByUser;
}
return name;
}
}