diff --git a/mozilla/rdf/src/nsRDFTreeDataModel.cpp b/mozilla/rdf/src/nsRDFTreeDataModel.cpp index 41b72b7578f..afa0ace03c7 100644 --- a/mozilla/rdf/src/nsRDFTreeDataModel.cpp +++ b/mozilla/rdf/src/nsRDFTreeDataModel.cpp @@ -17,6 +17,7 @@ */ #include "nsRDFTreeDataModel.h" +#include "nsRDFTreeColumn.h" static NS_DEFINE_IID(kITreeDataModelIID, NS_ITREEDATAMODEL_IID); @@ -59,14 +60,26 @@ nsRDFTreeDataModel::QueryInterface(const nsIID& iid, void** result) NS_IMETHODIMP nsRDFTreeDataModel::GetVisibleColumnCount(int& count) const { - return NS_ERROR_NOT_IMPLEMENTED; + count = 0; + for (PRInt32 i = mColumns.GetUpperBound(); i >= 0; --i) { + nsRDFTreeColumn* column = static_cast(mColumns.Get(i)); + if (column->IsVisible()) + ++count; + } + return NS_OK; } NS_IMETHODIMP nsRDFTreeDataModel::GetNthColumn(nsITreeColumn*& pColumn, int n) const { - return NS_ERROR_NOT_IMPLEMENTED; + if (n < 0 || n > mColumns.GetUpperBound()) { + PR_ASSERT(0); + return NS_ERROR_ILLEGAL_VALUE; + } + + pColumn = static_cast(mColumns.Get(n)); + return NS_OK; } diff --git a/mozilla/rdf/src/nsRDFTreeDataModel.h b/mozilla/rdf/src/nsRDFTreeDataModel.h index 5a5ab14cd88..a35274d650d 100644 --- a/mozilla/rdf/src/nsRDFTreeDataModel.h +++ b/mozilla/rdf/src/nsRDFTreeDataModel.h @@ -21,9 +21,10 @@ #include "nsRDFDataModel.h" #include "nsITreeDataModel.h" +#include "nsVector.h" #include "rdf.h" -class nsITreeColumn; +class nsISupportsArray; //////////////////////////////////////////////////////////////////////// @@ -60,7 +61,8 @@ public: private: - RDF_Resource& mRoot; + RDF_Resource& mRoot; + nsVector mColumns; };