/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.gui.workflow.view.timeline; import java.util.ArrayList; import java.util.List; /** * Tree node for Component tree. * @author Hendrik Abbenhaus */ public class TimelineFilterTreeNode { private String componentID; private List<TimelineFilterTreeNode> children = new ArrayList<TimelineFilterTreeNode>(); private TimelineComponentRow row = null; private TimelineFilterTreeNode parent; public TimelineFilterTreeNode() { } public void setComponentID(String newComponentID){ this.componentID = newComponentID; } public List<TimelineFilterTreeNode> getChildren() { return children; } /** * Adds a child to the List of children. * @param child the child */ public void addChild(TimelineFilterTreeNode child) { children.add(child); child.setParent(this); } public TimelineFilterTreeNode getParent() { return parent; } public void setParent(TimelineFilterTreeNode parent) { this.parent = parent; } /** * Returns a DisplayName for this Node. * @return DisplayName for this Node */ public String getDisplayName() { if (this.hasRow()){ return row.getName(); } else { return TimelineView.getComponentNameFromId(componentID, this); } } public String getComponentID(){ return this.componentID; } /** * Check if this instance has a connected row. * @return Returns false if row is empty else true */ public boolean hasRow(){ if (row == null){ return false; } return true; } /** * Checks if there already is a child with equal component id. * @param checkComponentID the componentID to check * @return Returns the Node with same ID or {@value null} if there is no child with same ID */ public TimelineFilterTreeNode hasChildWithComponentID(String checkComponentID){ for (TimelineFilterTreeNode current : getChildren()){ if (current.getComponentID().equals(checkComponentID)){ return current; } } return null; } public TimelineComponentRow getRow() { return row; } public void setRow(TimelineComponentRow row) { this.row = row; } }