listener.modelChanged(treeModel);
listener.modelChanged(this);
    private void updateTreeModel()    {        if(source == null)        {            treeModel = new SemanticTypeTree("(empty)");            return;        }        List typesList = source.getRelevantTypes();        SemanticType[] types = new SemanticType[typesList.size()];        typesList.toArray(types);        treeModel = new SemanticTypeTree(source.getDataset().getName()+                                         " Attributes",types);        HeatMapFilter.filter(treeModel);                for(Iterator iter = modelListeners.iterator(); iter.hasNext();)        {            HeatMapModelListener listener = (HeatMapModelListener)iter.next();            listener.modelChanged(treeModel);        }    }