From c70faaf0a4003c0dd620e0b9b50347cfb6b17571 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Sch=C3=B6nebeck?= Date: Fri, 18 Jan 2013 00:41:20 +0100 Subject: [PATCH] Using event registration for IndexedDB API callbacks --- src/Libraries/Web/Html/Data/IDBDatabase.cs | 34 +++++++++++++----- .../Web/Html/Data/IDBOpenDBRequest.cs | 23 ++++++++---- src/Libraries/Web/Html/Data/IDBRequest.cs | 23 ++++++++---- src/Libraries/Web/Html/Data/IDBTransaction.cs | 36 +++++++++++++------ 4 files changed, 85 insertions(+), 31 deletions(-) diff --git a/src/Libraries/Web/Html/Data/IDBDatabase.cs b/src/Libraries/Web/Html/Data/IDBDatabase.cs index de319c5f8..fbe84d35f 100644 --- a/src/Libraries/Web/Html/Data/IDBDatabase.cs +++ b/src/Libraries/Web/Html/Data/IDBDatabase.cs @@ -35,7 +35,7 @@ public sealed class IDBDatabase { public void DeleteObjectStore(string name) { } - + public IDBTransaction Transaction(string[] storenames) { return default(IDBTransaction); } @@ -47,22 +47,38 @@ public sealed class IDBDatabase { public void Close() { } - [ScriptName("onabort")] - public IDBDatabaseDelegate OnAbort; + [ScriptEvent("addEventListener", "removeEventListener")] + public event IDBDatabaseCallback Abort { + add { + } + remove { + } + } - [ScriptName("onerror")] - public IDBDatabaseDelegate OnError; + [ScriptEvent("addEventListener", "removeEventListener")] + public event IDBDatabaseCallback Error { + add { + } + remove { + } + } - [ScriptName("onversionchange")] - public IDBDatabaseVersionChangeDelegate OnVersionChange; + [ScriptEvent("addEventListener", "removeEventListener")] + [ScriptName("versionchange")] + public event IDBDatabaseVersionChangeCallback VersionChange { + add { + } + remove { + } + } } [ScriptIgnoreNamespace] [ScriptImport] - public delegate void IDBDatabaseDelegate(IDBEvent e); + public delegate void IDBDatabaseCallback(IDBEvent e); [ScriptIgnoreNamespace] [ScriptImport] - public delegate void IDBDatabaseVersionChangeDelegate(IDBVersionChangeEvent e); + public delegate void IDBDatabaseVersionChangeCallback(IDBVersionChangeEvent e); } diff --git a/src/Libraries/Web/Html/Data/IDBOpenDBRequest.cs b/src/Libraries/Web/Html/Data/IDBOpenDBRequest.cs index 1e9035ae2..bab7e8191 100644 --- a/src/Libraries/Web/Html/Data/IDBOpenDBRequest.cs +++ b/src/Libraries/Web/Html/Data/IDBOpenDBRequest.cs @@ -10,18 +10,29 @@ public class IDBOpenDBRequest : IDBRequest { protected IDBOpenDBRequest() { } - [ScriptName("onblocked")] - public IDBOpenDBRequestDelegate OnBlocked; + [ScriptEvent("addEventListener", "removeEventListener")] + public event IDBOpenDBRequestCallback Blocked { + add { + } + remove { + } + } - [ScriptName("onupgradeneeded")] - public IDBOpenDBRequestVersionChangeDelegate OnUpgradeNeeded; + [ScriptEvent("addEventListener", "removeEventListener")] + [ScriptName("upgradeneeded")] + public event IDBOpenDBRequestVersionChangeCallback UpgradeNeeded { + add { + } + remove { + } + } } [ScriptIgnoreNamespace] [ScriptImport] - public delegate void IDBOpenDBRequestDelegate(IDBEvent e); + public delegate void IDBOpenDBRequestCallback(IDBEvent e); [ScriptIgnoreNamespace] [ScriptImport] - public delegate void IDBOpenDBRequestVersionChangeDelegate(IDBVersionChangeEvent e); + public delegate void IDBOpenDBRequestVersionChangeCallback(IDBVersionChangeEvent e); } diff --git a/src/Libraries/Web/Html/Data/IDBRequest.cs b/src/Libraries/Web/Html/Data/IDBRequest.cs index 752fe4229..958f31e91 100644 --- a/src/Libraries/Web/Html/Data/IDBRequest.cs +++ b/src/Libraries/Web/Html/Data/IDBRequest.cs @@ -16,7 +16,8 @@ public class IDBRequest { } [ScriptField] - public object Error { + [ScriptName("error")] + public object ErrorObject { get { return null; } } @@ -35,15 +36,25 @@ public class IDBRequest { get { return null; } } - [ScriptName("onsuccess")] - public IDBRequestDelegate OnSuccess; + [ScriptEvent("addEventListener", "removeEventListener")] + public event IDBRequestCallback Success { + add { + } + remove { + } + } - [ScriptName("onerror")] - public IDBRequestDelegate OnError; + [ScriptEvent("addEventListener", "removeEventListener")] + public event IDBRequestCallback Error { + add { + } + remove { + } + } } [ScriptIgnoreNamespace] [ScriptImport] - public delegate void IDBRequestDelegate(IDBEvent e); + public delegate void IDBRequestCallback(IDBEvent e); } diff --git a/src/Libraries/Web/Html/Data/IDBTransaction.cs b/src/Libraries/Web/Html/Data/IDBTransaction.cs index 98bd891ef..7bd21b1e1 100644 --- a/src/Libraries/Web/Html/Data/IDBTransaction.cs +++ b/src/Libraries/Web/Html/Data/IDBTransaction.cs @@ -21,7 +21,8 @@ public sealed class IDBTransaction { } [ScriptField] - public object Error { + [ScriptName("error")] + public object ErrorObject { get { return null; } } @@ -29,22 +30,37 @@ public sealed class IDBTransaction { return null; } - public void Abort() { + [ScriptName("abort")] + public void AbortTransaction() { } - [ScriptName("onabort")] - public IDBTransactionDelegate OnAbort; - - [ScriptName("oncomplete")] - public IDBTransactionDelegate OnComplete; + [ScriptEvent("addEventListener", "removeEventListener")] + public event IDBTransactionCallback Abort{ + add { + } + remove { + } + } - [ScriptName("onerror")] - public IDBTransactionDelegate OnError; + [ScriptEvent("addEventListener", "removeEventListener")] + public event IDBTransactionCallback Complete { + add { + } + remove { + } + } + [ScriptEvent("addEventListener", "removeEventListener")] + public event IDBTransactionCallback Error { + add { + } + remove { + } + } } [ScriptIgnoreNamespace] [ScriptImport] - public delegate void IDBTransactionDelegate(IDBEvent e); + public delegate void IDBTransactionCallback(IDBEvent e); }