package org.softeg.slartus.forpdaplus.classes;
import org.softeg.slartus.forpdaplus.classes.forum.ExtTopic;
/**
* Created by IntelliJ IDEA.
* User: Admin
* Date: 17.09.11
* Time: 22:52
* To change this template use File | Settings | File Templates.
*/
public class Forum implements ForumItem {
private String m_Title;
private Forums m_Forums = new Forums();
private Themes m_Themes = new Themes();
private Forum parent;
public int level = 0;
private String tag;
private String m_Id;
public Forum(String id, String title) {
m_Id = id;
m_Title = title;
}
public String getTitle() {
return m_Title;
}
public void setTitle(String title) {
m_Title = title;
}
private String m_HtmlTitle;
public void setHtmlTitle(String htmlTitle) {
m_HtmlTitle = htmlTitle;
}
public String getHtmlTitle() {
return m_HtmlTitle;
}
public void setId(String id) {
m_Id = id;
}
public Forum addForum(Forum forum) {
forum.level = level + 1;
m_Forums.add(forum);
forum.setParent(this);
return forum;
}
public Forum addForum(int index, Forum forum) {
forum.level = level + 1;
m_Forums.add(index, forum);
forum.setParent(this);
return forum;
}
public void addTheme(ExtTopic topic) {
m_Themes.add(topic);
}
public Themes getThemes() {
return m_Themes;
}
public Forums getForums() {
return m_Forums;
}
public Boolean LoadMore = false;
public Forum getLastChild() {
if (m_Forums.size() == 0)
return this;
return m_Forums.get(m_Forums.size() - 1);
}
public void clearChildren() {
m_Forums.clear();
m_Themes.clear();
}
public void setParent(Forum parent) {
this.parent = parent;
}
public Forum getParent() {
return parent;
}
public boolean hasChildForums() {
return m_Forums.size() > 0;
}
public void getAllThemes(Themes toCollection) {
for (int i = 0; i < m_Themes.size(); i++) {
toCollection.add(m_Themes.get(i));
}
for (int i = 0; i < m_Forums.size(); i++) {
m_Forums.get(i).getAllThemes(toCollection);
}
}
public Forum findById(String startForumId, boolean recursive, Boolean themesNode) {
int size = m_Forums.size();
for (int i = 0; i < size; i++) {
Forum forum = m_Forums.get(i);
if (forum.getId().equals(startForumId)) {
if (themesNode) {
Forum childResult = forum.findById(startForumId, true, false);
if (childResult != null) return childResult;
}
return forum;
}
if (!recursive) continue;
Forum childResult = forum.findById(startForumId, true, themesNode);
if (childResult != null) return childResult;
}
return null;
}
public Forum setTag(String tag) {
this.tag = tag;
return this;
}
public String getTag() {
return tag;
}
@Override
public String getId() {
return m_Id;
}
@Override
public String toString() {
return getTitle();
}
}