diff --git a/teavm-dom/src/main/java/org/teavm/dom/browser/Storage.java b/teavm-dom/src/main/java/org/teavm/dom/browser/Storage.java new file mode 100644 index 000000000..6e77ba697 --- /dev/null +++ b/teavm-dom/src/main/java/org/teavm/dom/browser/Storage.java @@ -0,0 +1,39 @@ +/* + * Copyright 2014 Alexey Andreev. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.teavm.dom.browser; + +import org.teavm.jso.JSObject; +import org.teavm.jso.JSProperty; + +/** + * + * @author Junji Takakura + */ +public interface Storage extends JSObject { + + @JSProperty + int getLength(); + + String key(int index); + + String getItem(String key); + + void setItem(String key, String value); + + void removeItem(String key); + + void clear(); +} diff --git a/teavm-dom/src/main/java/org/teavm/dom/browser/Window.java b/teavm-dom/src/main/java/org/teavm/dom/browser/Window.java index 2bc3d87e2..5342d6d59 100644 --- a/teavm-dom/src/main/java/org/teavm/dom/browser/Window.java +++ b/teavm-dom/src/main/java/org/teavm/dom/browser/Window.java @@ -28,7 +28,7 @@ import org.teavm.jso.JSProperty; * * @author Alexey Andreev */ -public interface Window extends JSGlobal { +public interface Window extends JSGlobal, WindowLocalStorage, WindowSessionStorage { @JSProperty HTMLDocument getDocument(); diff --git a/teavm-dom/src/main/java/org/teavm/dom/browser/WindowLocalStorage.java b/teavm-dom/src/main/java/org/teavm/dom/browser/WindowLocalStorage.java new file mode 100644 index 000000000..8d9761235 --- /dev/null +++ b/teavm-dom/src/main/java/org/teavm/dom/browser/WindowLocalStorage.java @@ -0,0 +1,28 @@ +/* + * Copyright 2014 Alexey Andreev. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.teavm.dom.browser; + +import org.teavm.jso.JSProperty; + +/** + * + * @author Junji Takakura + */ +public interface WindowLocalStorage { + + @JSProperty + Storage getLocalStorage(); +} diff --git a/teavm-dom/src/main/java/org/teavm/dom/browser/WindowSessionStorage.java b/teavm-dom/src/main/java/org/teavm/dom/browser/WindowSessionStorage.java new file mode 100644 index 000000000..21cd8cd79 --- /dev/null +++ b/teavm-dom/src/main/java/org/teavm/dom/browser/WindowSessionStorage.java @@ -0,0 +1,28 @@ +/* + * Copyright 2014 Alexey Andreev. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.teavm.dom.browser; + +import org.teavm.jso.JSProperty; + +/** + * + * @author Junji Takakura + */ +public interface WindowSessionStorage { + + @JSProperty + Storage getSessionStorage(); +} diff --git a/teavm-dom/src/main/java/org/teavm/dom/events/StorageEvent.java b/teavm-dom/src/main/java/org/teavm/dom/events/StorageEvent.java new file mode 100644 index 000000000..707761864 --- /dev/null +++ b/teavm-dom/src/main/java/org/teavm/dom/events/StorageEvent.java @@ -0,0 +1,41 @@ +/* + * Copyright 2014 Alexey Andreev. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.teavm.dom.events; + +import org.teavm.dom.browser.Storage; +import org.teavm.jso.JSProperty; + +/** + * + * @author Junji Takakura + */ +public interface StorageEvent extends Event { + + @JSProperty + String getKey(); + + @JSProperty + String getOldValue(); + + @JSProperty + String getNewValue(); + + @JSProperty + String getUrl(); + + @JSProperty + Storage getStorageArea(); +}