This commit is contained in:
vladimir%pobox.com 2004-11-23 01:36:32 +00:00
Родитель 31e41dec43
Коммит 300bff69af
2 изменённых файлов: 29 добавлений и 3 удалений

Просмотреть файл

@ -76,11 +76,13 @@ calItemBase.prototype = {
this.mCreationDate = createCalDateTime(); this.mCreationDate = createCalDateTime();
this.mAlarmTime = createCalDateTime(); this.mAlarmTime = createCalDateTime();
this.mProperties = Components.classes["@mozilla.org/hash-property-bag;1"].
createInstance(Components.interfaces.nsIWritablePropertyBag);
// fix me // fix me
this.mRecurrenceInfo = null; this.mRecurrenceInfo = null;
this.mAttachments = null; this.mAttachments = null;
this.mContacts = null; this.mContacts = null;
this.mProperties = null;
}, },
// for subclasses to use; copies the ItemBase's values // for subclasses to use; copies the ItemBase's values
@ -141,6 +143,9 @@ calItemBase.prototype = {
function calItemOccurrence () { function calItemOccurrence () {
this.wrappedJSObject = this; this.wrappedJSObject = this;
this.occurrenceStartDate = createCalDateTime();
this.occurrenceEndDate = createCalDateTime();
} }
calItemOccurrence.prototype = { calItemOccurrence.prototype = {

Просмотреть файл

@ -44,6 +44,9 @@ var calItemModule = {
mTodoCID: Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"), mTodoCID: Components.ID("{7af51168-6abe-4a31-984d-6f8a3989212d}"),
mTodoContractId: "@mozilla.org/calendar/todo;1", mTodoContractId: "@mozilla.org/calendar/todo;1",
mItemOccurrenceCID: Components.ID("{bad672b3-30b8-4ecd-8075-7153313d1f2c}"),
mItemOccurrenceContractId: "@mozilla.org/calendar/item-occurrence;1",
mScriptsLoaded: false, mScriptsLoaded: false,
loadScripts: function () { loadScripts: function () {
if (this.mScriptsLoaded) if (this.mScriptsLoaded)
@ -80,8 +83,8 @@ var calItemModule = {
registerSelf: function (compMgr, fileSpec, location, type) { registerSelf: function (compMgr, fileSpec, location, type) {
compMgr = compMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar); compMgr = compMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar);
var cids = [ this.mEventCID, this.mTodoCID ]; var cids = [ this.mEventCID, this.mTodoCID, this.mItemOccurrenceCID ];
var contractids = [ this.mEventContractId, this.mTodoContractId ]; var contractids = [ this.mEventContractId, this.mTodoContractId, this.mItemOccurrenceContractId ];
for (var i = 0; i < cids.length; i++) { for (var i = 0; i < cids.length; i++) {
dump ("calItemModule: registering " + contractids[i] + "\n"); dump ("calItemModule: registering " + contractids[i] + "\n");
@ -107,6 +110,9 @@ var calItemModule = {
if (cid.equals(this.mTodoCID)) if (cid.equals(this.mTodoCID))
return this.mTodoFactory; return this.mTodoFactory;
if (cid.equals(this.mItemOccurrenceCID))
return this.mItemOccurrenceFactory;
throw Components.results.NS_ERROR_NO_INTERFACE; throw Components.results.NS_ERROR_NO_INTERFACE;
}, },
@ -140,6 +146,21 @@ var calItemModule = {
} }
}, },
mItemOccurrenceFactory: {
QueryInterface: function (aIID) {
if (!aIID.equals(Components.interfaces.nsISupports) &&
!aIID.equals(Components.interfaces.nsIFactory))
throw Components.results.NS_ERROR_NO_INTERFACE;
return this;
},
createInstance: function (outer, iid) {
if (outer != null)
throw Components.results.NS_ERROR_NO_AGGREGATION;
return (new calItemOccurrence()).QueryInterface(iid);
}
},
canUnload: function(compMgr) { canUnload: function(compMgr) {
return true; return true;
} }