public Iterator getTasksItems(String parent)
    {
        // child tasks iterator
        ArrayList<String> taskItems = new ArrayList<String>();
        
        if ( (parent == null) || (parent.equals("")) )
        {
            // no parent specified.. return parents at highest level
            Iterator taskIterator = tasks.getChildren();
            while (taskIterator.hasNext())
            {
                TaskComponent tc = (TaskComponent) taskIterator.next();
                if (tc instanceof TaskItem)
                {
                    taskItems.add(tc.getName());
                }
            }
            
            return taskItems.iterator();
        }
        else
        {
            TaskComposite parentComposite = getList(parent);
            if (parentComposite != null)
            {
                // parent list found, return its children
                Iterator taskIterator = parentComposite.getChildren();
                while (taskIterator.hasNext())
                {
                    TaskComponent tc = (TaskComponent) taskIterator.next();
                    if (tc instanceof TaskItem)
                    {
                        taskItems.add(tc.getName());
                    }
                }
                
                return taskItems.iterator();
            }
            else
            {
                // parent list not found, return null.
                return null;
            }
        }
    }