From e1cc8fdc5b83a608278e33bfa2b7a0e174df5a2f Mon Sep 17 00:00:00 2001 From: "waterson%netscape.com" Date: Thu, 24 Jun 1999 00:23:52 +0000 Subject: [PATCH] Land RDF_19990617_BRANCH. Add Change() and Move() methods to nsIRDFDataSource; add OnChange() and OnMove() methods to nsIRDFObserver. Factor nsIRDFDatasource::Init() and ::Flush() into nsIRDFRemoteDataSource. Change ownership model s.t. a datasource reference counts its observers. Miscellaneous XPCOM fixage. git-svn-id: svn://10.0.0.236/trunk@36639 18797224-902f-48f8-a5cc-f745e15eee43 --- .../xpfe/appshell/src/nsAppShellService.cpp | 2 - .../xpfe/appshell/src/nsWindowMediator.cpp | 82 +++++++----- mozilla/xpfe/browser/src/contentframe.js | 25 ++-- .../bookmarks/src/nsBookmarksService.cpp | 95 ++++++++++--- .../history/src/nsGlobalHistory.cpp | 27 ++-- .../related/src/nsRelatedLinksHandler.cpp | 125 ++++++++++-------- 6 files changed, 231 insertions(+), 125 deletions(-) diff --git a/mozilla/xpfe/appshell/src/nsAppShellService.cpp b/mozilla/xpfe/appshell/src/nsAppShellService.cpp index 9e9f7330255..711268b4416 100644 --- a/mozilla/xpfe/appshell/src/nsAppShellService.cpp +++ b/mozilla/xpfe/appshell/src/nsAppShellService.cpp @@ -258,8 +258,6 @@ nsAppShellService::Initialize( nsICmdLineService *aCmdLineService ) // enable window mediation rv = nsServiceManager::GetService(kWindowMediatorCID, kIWindowMediatorIID, (nsISupports**) &mWindowMediator); - if ( NS_SUCCEEDED( rv) ) - mWindowMediator->Init("rdf:window-mediator"); done: return rv; } diff --git a/mozilla/xpfe/appshell/src/nsWindowMediator.cpp b/mozilla/xpfe/appshell/src/nsWindowMediator.cpp index e5452fab942..2c3285361ac 100644 --- a/mozilla/xpfe/appshell/src/nsWindowMediator.cpp +++ b/mozilla/xpfe/appshell/src/nsWindowMediator.cpp @@ -164,6 +164,7 @@ friend class nsWindowEnumerator; public: nsWindowMediator(); virtual ~nsWindowMediator(); + nsresult Init(); NS_IMETHOD GetEnumerator( const PRUnichar* inType, nsISimpleEnumerator** outEnumerator ); NS_IMETHOD GetMostRecentWindow( const PRUnichar* inType, nsIDOMWindow** outWindow ); @@ -179,11 +180,17 @@ public: // RDF // nsIRDFDataSource - NS_IMETHOD Init(const char* uri); - NS_IMETHOD GetURI(char* *uri) { - return mInner->GetURI(uri); + NS_PRECONDITION(uri != nsnull, "null ptr"); + if (! uri) + return NS_ERROR_NULL_POINTER; + + *uri = nsXPIDLCString::Copy("rdf:window-mediator"); + if (! *uri) + return NS_ERROR_OUT_OF_MEMORY; + + return NS_OK; } NS_IMETHOD GetSource(nsIRDFResource* property, @@ -227,6 +234,16 @@ public: nsIRDFResource* aProperty, nsIRDFNode* aTarget); + NS_IMETHOD Change(nsIRDFResource* aSource, + nsIRDFResource* aProperty, + nsIRDFNode* aOldTarget, + nsIRDFNode* aNewTarget); + + NS_IMETHOD Move(nsIRDFResource* aOldSource, + nsIRDFResource* aNewSource, + nsIRDFResource* aProperty, + nsIRDFNode* aTarget); + NS_IMETHOD HasAssertion(nsIRDFResource* source, nsIRDFResource* property, nsIRDFNode* target, @@ -261,8 +278,6 @@ public: return mInner->GetAllResources(aCursor); } - NS_IMETHOD Flush(void); - NS_IMETHOD GetAllCommands(nsIRDFResource* source, nsIEnumerator** commands); @@ -329,22 +344,10 @@ nsWindowMediator::nsWindowMediator() : { NS_INIT_REFCNT(); - if (gRefCnt++ == 0) - { - nsresult rv = nsServiceManager::GetService( kRDFServiceCID, kIRDFServiceIID, (nsISupports**) &gRDFService ); - - if ( NS_SUCCEEDED ( rv) ) - { - gRDFService->GetResource( kURINC_WindowMediatorRoot, &kNC_WindowMediatorRoot ); - gRDFService->GetResource (kURINC_Name, &kNC_Name ); - gRDFService->GetResource( kURINC_URL, &kNC_URL ); - } - else - { - // Really can't do much since we don't have exceptions. Did go through - // and add checks for null - } - } + // This should really be done in the static constructor fn. + nsresult rv; + rv = Init(); + NS_ASSERTION(NS_SUCCEEDED(rv), "uh oh, couldn't Init() for some reason"); } nsWindowMediator::~nsWindowMediator() @@ -618,10 +621,21 @@ NS_IMETHODIMP nsWindowMediator::QueryInterface(REFNSIID iid, void **result) } // RDF -NS_IMETHODIMP nsWindowMediator::Init(const char* uri) +nsresult +nsWindowMediator::Init() { nsresult rv; + if (gRefCnt++ == 0) + { + rv = nsServiceManager::GetService( kRDFServiceCID, kIRDFServiceIID, (nsISupports**) &gRDFService ); + if (NS_FAILED(rv)) return rv; + + gRDFService->GetResource( kURINC_WindowMediatorRoot, &kNC_WindowMediatorRoot ); + gRDFService->GetResource (kURINC_Name, &kNC_Name ); + gRDFService->GetResource( kURINC_URL, &kNC_URL ); + } + if (NS_FAILED(rv = nsComponentManager::CreateInstance(kRDFInMemoryDataSourceCID, nsnull, kIRDFDataSourceIID, @@ -630,12 +644,6 @@ NS_IMETHODIMP nsWindowMediator::Init(const char* uri) return rv; } - if (NS_FAILED(rv = mInner->Init(uri))) - { - NS_ERROR( "unable to init mInner"); - return rv; - } - NS_WITH_SERVICE(nsIRDFContainerUtils, rdfc, kRDFContainerUtilsCID, &rv); if (NS_FAILED(rv)) return rv; @@ -668,10 +676,22 @@ NS_IMETHODIMP nsWindowMediator::Unassert(nsIRDFResource* aSource, } -NS_IMETHODIMP nsWindowMediator::Flush(void) +NS_IMETHODIMP nsWindowMediator::Change(nsIRDFResource* aSource, + nsIRDFResource* aProperty, + nsIRDFNode* aOldTarget, + nsIRDFNode* aNewTarget) { - NS_NOTYETIMPLEMENTED("write me!"); - return NS_ERROR_NOT_IMPLEMENTED; + // XXX TODO: filter out changes we don't care about + return mInner->Change(aSource, aProperty, aOldTarget, aNewTarget); +} + +NS_IMETHODIMP nsWindowMediator::Move(nsIRDFResource* aOldSource, + nsIRDFResource* aNewSource, + nsIRDFResource* aProperty, + nsIRDFNode* aTarget) +{ + // XXX TODO: filter out changes we don't care about + return mInner->Move(aOldSource, aNewSource, aProperty, aTarget); } diff --git a/mozilla/xpfe/browser/src/contentframe.js b/mozilla/xpfe/browser/src/contentframe.js index b102446fa14..8c1a92b97c9 100644 --- a/mozilla/xpfe/browser/src/contentframe.js +++ b/mozilla/xpfe/browser/src/contentframe.js @@ -2,6 +2,7 @@ var sidebarURI = 'resource:/res/rdf/sidebar-browser.xul'; var isSidebarOpen = false; +var counter = 0; function Init() { var pref = Components.classes['component://netscape/preferences']; @@ -14,7 +15,7 @@ function Init() { if (pref) { pref.SetDefaultIntPref('sidebar.width', 170); // pref.SetIntPref(pref.GetIntPref('sidebar.width')); - pref.SetDefaultBoolPref('sidebar.open', false); + pref.SetDefaultBoolPref('sidebar.open', true); pref.SavePrefFile(); if (pref.GetBoolPref('sidebar.open')) { toggleOpenClose(); @@ -46,7 +47,8 @@ function toggleOpenClose() { var sidebar = container.firstChild; sidebar.setAttribute('style','width:0px; visibility:hidden'); sidebar.setAttribute('src','about:blank'); - //container.removeChild(container.firstChild); + dump("*** Removing Sidebar: " + container.firstChild); + container.removeChild(container.firstChild); var grippy = document.getElementById('grippy'); grippy.setAttribute('open',''); @@ -60,12 +62,18 @@ function toggleOpenClose() { var sidebar = container.firstChild; sidebar.setAttribute('style','width:' + width + 'px; visibility:visible'); sidebar.setAttribute('src',sidebarURI); - - //var sidebar = document.createElement('html:iframe'); - //sidebar.setAttribute('src','resource:/res/rdf/sidebar-browser.xul'); - //sidebar.setAttribute('class','sidebarframe'); - //container.insertBefore(sidebar,container.firstChild); - //container.appendChild(sidebar); + dump("Opening sidebar..."); + + if (counter > 0) { + var sidebar = document.createElement('html:iframe'); + sidebar.setAttribute('src','resource:/res/rdf/sidebar-browser.xul'); + sidebar.setAttribute('class','sidebarframe'); + sidebar.setAttribute('id','sidebarframe'); + sidebar.setAttribute('style','width:' + width + 'px; visibility:visible'); + dump("*** Inserting sidebar before: " + container.firstChild); + container.insertBefore(sidebar,container.firstChild); + //container.appendChild(sidebar); + } var grippy = document.getElementById('grippy'); grippy.setAttribute('open','true'); @@ -73,6 +81,7 @@ function toggleOpenClose() { isSidebarOpen = true; } + counter++; } // To get around "window.onload" not working in viewer. diff --git a/mozilla/xpfe/components/bookmarks/src/nsBookmarksService.cpp b/mozilla/xpfe/components/bookmarks/src/nsBookmarksService.cpp index d94e69626e2..7c089a250ff 100644 --- a/mozilla/xpfe/components/bookmarks/src/nsBookmarksService.cpp +++ b/mozilla/xpfe/components/bookmarks/src/nsBookmarksService.cpp @@ -33,6 +33,7 @@ #include "nsIRDFDataSource.h" #include "nsIRDFNode.h" #include "nsIRDFService.h" +#include "nsIRDFRemoteDataSource.h" #include "nsIServiceManager.h" #include "nsRDFCID.h" #include "nsSpecialSystemDirectory.h" @@ -785,7 +786,8 @@ BookmarkParser::AssertTime(nsIRDFResource* aSource, // BookmarkDataSourceImpl class nsBookmarksService : public nsIBookmarksService, - public nsIRDFDataSource + public nsIRDFDataSource, + public nsIRDFRemoteDataSource { protected: nsIRDFDataSource* mInner; @@ -812,14 +814,7 @@ public: NS_IMETHOD AddBookmark(const char *aURI, const PRUnichar *aOptionalTitle); NS_IMETHOD FindShortcut(const PRUnichar *aUserInput, char **aShortcutURL); - // nsIRDFDataSource - NS_IMETHOD Init(const char* uri) { - return mInner->Init(uri); - } - - NS_IMETHOD GetURI(char* *uri) { - return mInner->GetURI(uri); - } + NS_IMETHOD GetURI(char* *uri); NS_IMETHOD GetSource(nsIRDFResource* property, nsIRDFNode* target, @@ -856,6 +851,16 @@ public: nsIRDFResource* aProperty, nsIRDFNode* aTarget); + NS_IMETHOD Change(nsIRDFResource* aSource, + nsIRDFResource* aProperty, + nsIRDFNode* aOldTarget, + nsIRDFNode* aNewTarget); + + NS_IMETHOD Move(nsIRDFResource* aOldSource, + nsIRDFResource* aNewSource, + nsIRDFResource* aProperty, + nsIRDFNode* aTarget); + NS_IMETHOD HasAssertion(nsIRDFResource* source, nsIRDFResource* property, nsIRDFNode* target, @@ -886,8 +891,6 @@ public: return mInner->GetAllResources(aResult); } - NS_IMETHOD Flush(); - NS_IMETHOD GetAllCommands(nsIRDFResource* source, nsIEnumerator/**/** commands); @@ -900,6 +903,10 @@ public: nsIRDFResource* aCommand, nsISupportsArray/**/* aArguments); + // nsIRDFRemoteDataSource + NS_IMETHOD Init(const char* aURI); + NS_IMETHOD Refresh(PRBool aBlocking); + NS_IMETHOD Flush(); }; @@ -931,9 +938,6 @@ nsBookmarksService::Init() (void**) &mInner); if (NS_FAILED(rv)) return rv; - rv = mInner->Init("rdf:bookmarks"); - if (NS_FAILED(rv)) return rv; - rv = ReadBookmarks(); if (NS_FAILED(rv)) return rv; @@ -996,6 +1000,9 @@ nsBookmarksService::QueryInterface(REFNSIID aIID, void **aResult) else if (aIID.Equals(nsIRDFDataSource::GetIID())) { *aResult = NS_STATIC_CAST(nsIRDFDataSource*, this); } + else if (aIID.Equals(nsIRDFRemoteDataSource::GetIID())) { + *aResult = NS_STATIC_CAST(nsIRDFRemoteDataSource*, this); + } else { *aResult = nsnull; return NS_NOINTERFACE; @@ -1085,6 +1092,15 @@ nsBookmarksService::FindShortcut(const PRUnichar *aUserInput, char **aShortcutUR //////////////////////////////////////////////////////////////////////// // nsIRDFDataSource +NS_IMETHODIMP +nsBookmarksService::GetURI(char* *aURI) +{ + *aURI = nsXPIDLCString::Copy("rdf:bookmarks"); + if (! *aURI) + return NS_ERROR_OUT_OF_MEMORY; + + return NS_OK; +} NS_IMETHODIMP nsBookmarksService::GetTarget(nsIRDFResource* aSource, @@ -1142,8 +1158,6 @@ nsBookmarksService::Assert(nsIRDFResource* aSource, } } - - NS_IMETHODIMP nsBookmarksService::Unassert(nsIRDFResource* aSource, nsIRDFResource* aProperty, @@ -1158,14 +1172,35 @@ nsBookmarksService::Unassert(nsIRDFResource* aSource, } - NS_IMETHODIMP -nsBookmarksService::Flush() +nsBookmarksService::Change(nsIRDFResource* aSource, + nsIRDFResource* aProperty, + nsIRDFNode* aOldTarget, + nsIRDFNode* aNewTarget) { - return WriteBookmarks(mInner, kNC_BookmarksRoot); + if (CanAccept(aSource, aProperty, aNewTarget)) { + return mInner->Change(aSource, aProperty, aOldTarget, aNewTarget); + } + else { + return NS_RDF_ASSERTION_REJECTED; + } } +NS_IMETHODIMP +nsBookmarksService::Move(nsIRDFResource* aOldSource, + nsIRDFResource* aNewSource, + nsIRDFResource* aProperty, + nsIRDFNode* aTarget) +{ + if (CanAccept(aNewSource, aProperty, aTarget)) { + return mInner->Move(aOldSource, aNewSource, aProperty, aTarget); + } + else { + return NS_RDF_ASSERTION_REJECTED; + } +} + NS_IMETHODIMP nsBookmarksService::GetAllCommands(nsIRDFResource* source, nsIEnumerator/**/** commands) @@ -1193,7 +1228,29 @@ nsBookmarksService::DoCommand(nsISupportsArray* aSources, return NS_ERROR_NOT_IMPLEMENTED; } +//////////////////////////////////////////////////////////////////////// +// nsIRDFRemoteDataSource +NS_IMETHODIMP +nsBookmarksService::Init(const char* aURI) +{ + return NS_OK; +} + + +NS_IMETHODIMP +nsBookmarksService::Refresh(PRBool aBlocking) +{ + // XXX re-sync with the bookmarks file, if necessary. + return NS_OK; +} + + +NS_IMETHODIMP +nsBookmarksService::Flush() +{ + return WriteBookmarks(mInner, kNC_BookmarksRoot); +} //////////////////////////////////////////////////////////////////////// // Implementation methods diff --git a/mozilla/xpfe/components/history/src/nsGlobalHistory.cpp b/mozilla/xpfe/components/history/src/nsGlobalHistory.cpp index bc1a33186ce..0c9bdc3db33 100644 --- a/mozilla/xpfe/components/history/src/nsGlobalHistory.cpp +++ b/mozilla/xpfe/components/history/src/nsGlobalHistory.cpp @@ -115,8 +115,6 @@ public: NS_IMETHOD GetLastPageVisted(char **_retval); // nsIRDFDataSource - NS_IMETHOD Init(const char* aURI); - NS_IMETHOD GetURI(char* *aURI); NS_IMETHOD GetSource(nsIRDFResource* aProperty, @@ -160,6 +158,20 @@ public: return NS_RDF_ASSERTION_REJECTED; } + NS_IMETHOD Change(nsIRDFResource* aSource, + nsIRDFResource* aProperty, + nsIRDFNode* aOldTarget, + nsIRDFNode* aNewTarget) { + return NS_RDF_ASSERTION_REJECTED; + } + + NS_IMETHOD Move(nsIRDFResource* aOldSource, + nsIRDFResource* aNewSource, + nsIRDFResource* aProperty, + nsIRDFNode* aTarget) { + return NS_RDF_ASSERTION_REJECTED; + } + NS_IMETHOD HasAssertion(nsIRDFResource* aSource, nsIRDFResource* aProperty, nsIRDFNode* aTarget, @@ -186,10 +198,6 @@ public: return mInner->ArcLabelsOut(aSource, aLabels); } - NS_IMETHOD Flush() { - return mInner->Flush(); - } - NS_IMETHOD GetAllCommands(nsIRDFResource* aSource, nsIEnumerator/**/** aCommands) { return mInner->GetAllCommands(aSource, aCommands); @@ -520,13 +528,6 @@ nsGlobalHistory::GetLastPageVisted(char **_retval) //////////////////////////////////////////////////////////////////////// // nsIRDFDataSource -NS_IMETHODIMP -nsGlobalHistory::Init(const char* aURI) -{ - return NS_OK; -} - - NS_IMETHODIMP nsGlobalHistory::GetURI(char* *aURI) { diff --git a/mozilla/xpfe/components/related/src/nsRelatedLinksHandler.cpp b/mozilla/xpfe/components/related/src/nsRelatedLinksHandler.cpp index 85f450db523..b7f72163f6a 100644 --- a/mozilla/xpfe/components/related/src/nsRelatedLinksHandler.cpp +++ b/mozilla/xpfe/components/related/src/nsRelatedLinksHandler.cpp @@ -1,4 +1,4 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4; c-file-style: "stroustrup" -*- * * The contents of this file are subject to the Netscape Public License * Version 1.0 (the "NPL"); you may not use this file except in @@ -94,7 +94,7 @@ public: NS_DECL_ISUPPORTS RelatedLinksStreamListener(nsIRDFDataSource *ds); - virtual ~RelatedLinksStreamListener(void); + virtual ~RelatedLinksStreamListener(); NS_METHOD Init(); NS_METHOD CreateAnonymousResource(const nsString& aPrefixURI, nsCOMPtr* aResult); @@ -371,7 +371,7 @@ RelatedLinksStreamListener::OnDataAvailable(nsIURI* aURL, nsIInputStream *aIStre { theStart += PL_strlen("name=\""); oneLiner.Cut(0, theStart); - PRInt32 theEnd = oneLiner.Find("\""); + theEnd = oneLiner.Find("\""); if (theEnd > 0) { oneLiner.Mid(title, 0, theEnd); @@ -531,8 +531,9 @@ private: nsCOMPtr mInner; - RelatedLinksHandlerImpl(void); - virtual ~RelatedLinksHandlerImpl(void); + RelatedLinksHandlerImpl(); + virtual ~RelatedLinksHandlerImpl(); + nsresult Init(); friend NS_IMETHODIMP NS_NewRelatedLinksHandler(nsISupports* aOuter, REFNSIID aIID, void** aResult); @@ -547,7 +548,6 @@ public: // nsIRDFDataSource methods - NS_IMETHOD Init(const char *uri); NS_IMETHOD GetURI(char **uri); NS_IMETHOD GetSource(nsIRDFResource *property, nsIRDFNode *target, @@ -572,6 +572,14 @@ public: NS_IMETHOD Unassert(nsIRDFResource *source, nsIRDFResource *property, nsIRDFNode *target); + NS_IMETHOD Change(nsIRDFResource* aSource, + nsIRDFResource* aProperty, + nsIRDFNode* aOldTarget, + nsIRDFNode* aNewTarget); + NS_IMETHOD Move(nsIRDFResource* aOldSource, + nsIRDFResource* aNewSource, + nsIRDFResource* aProperty, + nsIRDFNode* aTarget); NS_IMETHOD HasAssertion(nsIRDFResource *source, nsIRDFResource *property, nsIRDFNode *target, @@ -584,7 +592,6 @@ public: NS_IMETHOD GetAllResources(nsISimpleEnumerator** aCursor); NS_IMETHOD AddObserver(nsIRDFObserver *n); NS_IMETHOD RemoveObserver(nsIRDFObserver *n); - NS_IMETHOD Flush(); NS_IMETHOD GetAllCommands(nsIRDFResource* source, nsIEnumerator/**/** commands); NS_IMETHOD IsCommandEnabled(nsISupportsArray/**/* aSources, @@ -609,7 +616,7 @@ nsIRDFResource *RelatedLinksHandlerImpl::kRDF_type; -RelatedLinksHandlerImpl::RelatedLinksHandlerImpl(void) +RelatedLinksHandlerImpl::RelatedLinksHandlerImpl() : mURI(nsnull), mRelatedLinksURL(nsnull), mPerformQuery(PR_FALSE) @@ -619,7 +626,7 @@ RelatedLinksHandlerImpl::RelatedLinksHandlerImpl(void) -RelatedLinksHandlerImpl::~RelatedLinksHandlerImpl (void) +RelatedLinksHandlerImpl::~RelatedLinksHandlerImpl() { if (mRelatedLinksURL) { @@ -639,6 +646,34 @@ RelatedLinksHandlerImpl::~RelatedLinksHandlerImpl (void) } } +nsresult +RelatedLinksHandlerImpl::Init() +{ + nsresult rv; + + if (gRefCnt++ == 0) + { + rv = nsServiceManager::GetService(kRDFServiceCID, + nsIRDFService::GetIID(), + (nsISupports**) &gRDFService); + if (NS_FAILED(rv)) return rv; + + gRDFService->GetResource(kURINC_RelatedLinksRoot, &kNC_RelatedLinksRoot); + gRDFService->GetResource(NC_NAMESPACE_URI "child", &kNC_Child); + gRDFService->GetResource(NC_NAMESPACE_URI "Name", &kNC_Name); + gRDFService->GetResource(RDF_NAMESPACE_URI "type", &kRDF_type); + } + + rv = nsComponentManager::CreateInstance(kRDFInMemoryDataSourceCID, + nsnull, + nsIRDFDataSource::GetIID(), + getter_AddRefs(mInner)); + if (NS_FAILED(rv)) return rv; + + return NS_OK; +} + + NS_IMETHODIMP @@ -658,7 +693,7 @@ NS_NewRelatedLinksHandler(nsISupports* aOuter, REFNSIID aIID, void** aResult) if (! result) return NS_ERROR_OUT_OF_MEMORY; - rv = result->Init("rdf:relatedlinks"); + rv = result->Init(); if (NS_SUCCEEDED(rv)) { rv = result->QueryInterface(aIID, aResult); } @@ -792,50 +827,26 @@ RelatedLinksHandlerImpl::SetURL(char* aURL) // nsIRDFDataSource interface + NS_IMETHODIMP -RelatedLinksHandlerImpl::Init(const char *aURI) +RelatedLinksHandlerImpl::GetURI(char **aURI) { NS_PRECONDITION(aURI != nsnull, "null ptr"); if (! aURI) return NS_ERROR_NULL_POINTER; - nsresult rv; - - if (gRefCnt++ == 0) - { - rv = nsServiceManager::GetService(kRDFServiceCID, - nsIRDFService::GetIID(), - (nsISupports**) &gRDFService); - if (NS_FAILED(rv)) return rv; - - gRDFService->GetResource(kURINC_RelatedLinksRoot, &kNC_RelatedLinksRoot); - gRDFService->GetResource(NC_NAMESPACE_URI "child", &kNC_Child); - gRDFService->GetResource(NC_NAMESPACE_URI "Name", &kNC_Name); - gRDFService->GetResource(RDF_NAMESPACE_URI "type", &kRDF_type); - } - - rv = nsComponentManager::CreateInstance(kRDFInMemoryDataSourceCID, - nsnull, - nsIRDFDataSource::GetIID(), - getter_AddRefs(mInner)); - if (NS_FAILED(rv)) return rv; - - rv = mInner->Init(mURI); - if (NS_FAILED(rv)) return rv; + // XXX We could munge in the current URL that we're looking at I + // suppose. Not critical because this datasource shouldn't be + // registered with the RDF service. + *aURI = nsXPIDLCString::Copy("rdf:related-links"); + if (! *aURI) + return NS_ERROR_OUT_OF_MEMORY; return NS_OK; } -NS_IMETHODIMP -RelatedLinksHandlerImpl::GetURI(char **aURI) -{ - return mInner->GetURI(aURI); -} - - - NS_IMETHODIMP RelatedLinksHandlerImpl::GetSource(nsIRDFResource* aProperty, nsIRDFNode* aTarget, @@ -901,6 +912,24 @@ RelatedLinksHandlerImpl::Unassert(nsIRDFResource *aSource, return NS_RDF_ASSERTION_REJECTED; } +NS_IMETHODIMP +RelatedLinksHandlerImpl::Change(nsIRDFResource* aSource, + nsIRDFResource* aProperty, + nsIRDFNode* aOldTarget, + nsIRDFNode* aNewTarget) +{ + return NS_RDF_ASSERTION_REJECTED; +} + + +NS_IMETHODIMP +RelatedLinksHandlerImpl::Move(nsIRDFResource* aOldSource, + nsIRDFResource* aNewSource, + nsIRDFResource* aProperty, + nsIRDFNode* aTarget) +{ + return NS_RDF_ASSERTION_REJECTED; +} NS_IMETHODIMP @@ -957,14 +986,6 @@ RelatedLinksHandlerImpl::RemoveObserver(nsIRDFObserver *aObserver) -NS_IMETHODIMP -RelatedLinksHandlerImpl::Flush() -{ - return mInner->Flush(); -} - - - NS_IMETHODIMP RelatedLinksHandlerImpl::GetAllCommands(nsIRDFResource* aSource, nsIEnumerator/**/** aCommands) @@ -1051,8 +1072,8 @@ NSRegisterSelf(nsISupports* aServMgr , const char* aPath) if (NS_FAILED(rv)) return rv; rv = compMgr->RegisterComponent(kRelatedLinksHandlerCID, "Related Links Handler", - NS_RELATEDLINKSHANDLER_PROGID, - aPath, PR_TRUE, PR_TRUE); + NS_RELATEDLINKSHANDLER_PROGID, + aPath, PR_TRUE, PR_TRUE); return NS_OK; }