Adds several DOM wrappers

This commit is contained in:
konsoletyper 2014-05-06 22:55:35 +04:00
parent 1bd0a42103
commit e206229db4
7 changed files with 205 additions and 5 deletions

View File

@ -157,7 +157,9 @@ public class HashtableTest {
String okey, ckey;
while (org.hasMoreElements()) {
assertTrue("Key comparison failed", (okey = org.nextElement()).equals(ckey = cpy.nextElement()));
okey = org.nextElement();
ckey = cpy.nextElement();
assertTrue("Key comparison failed", okey.equals(ckey));
assertTrue("Value comparison failed", (htfull.get(okey)).equals(h.get(ckey)));
}
assertTrue("Copy has more keys than original", !cpy.hasMoreElements());

View File

@ -15,7 +15,7 @@
*/
package org.teavm.dom.browser;
import org.teavm.dom.core.Document;
import org.teavm.dom.html.HTMLDocument;
import org.teavm.jso.JSGlobal;
import org.teavm.jso.JSObject;
import org.teavm.jso.JSProperty;
@ -26,7 +26,7 @@ import org.teavm.jso.JSProperty;
*/
public interface Window extends JSGlobal {
@JSProperty
Document getDocument();
HTMLDocument getDocument();
void alert(JSObject message);

View File

@ -34,7 +34,7 @@ public interface Element extends Node {
Attr removeAttributeNode(Attr oldAttr);
NodeList<Element> getElementsByTagName(String name);
NodeList<? extends Element> getElementsByTagName(String name);
String getAttributeNS(String namespaceURI, String localName);
@ -46,7 +46,7 @@ public interface Element extends Node {
Attr setAttributeNodeNS(Attr newAttr);
NodeList<Element> getElementsByTagNameNS(String namespaceURI, String localName);
NodeList<? extends Element> getElementsByTagNameNS(String namespaceURI, String localName);
boolean hasAttribute(String name);

View File

@ -0,0 +1,52 @@
/*
* 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.css;
import org.teavm.jso.JSIndexer;
import org.teavm.jso.JSObject;
import org.teavm.jso.JSProperty;
/**
*
* @author Alexey Andreev <konsoletyper@gmail.com>
*/
public interface CSSStyleDeclaration extends JSObject {
@JSProperty
String getCssText();
@JSProperty
void setCssText(String cssText);
@JSProperty
int getLength();
@JSIndexer
String item(int index);
String getPropertyValue(String property);
String getPropertyPriority(String property);
void setProperty(String property, String value);
void setProperty(String property, String value, String priority);
void setPropertyValue(String property, String value);
void setPropertyPriority(String property, String priority);
String removeProperty(String property);
}

View File

@ -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.css;
import org.teavm.jso.JSObject;
import org.teavm.jso.JSProperty;
/**
*
* @author Alexey Andreev <konsoletyper@gmail.com>
*/
public interface ElementCSSInlineStyle extends JSObject {
@JSProperty
CSSStyleDeclaration getStyle();
}

View File

@ -0,0 +1,35 @@
/*
* 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.html;
import org.teavm.dom.core.Document;
import org.teavm.jso.JSProperty;
/**
*
* @author Alexey Andreev <konsoletyper@gmail.com>
*/
public interface HTMLDocument extends Document {
@JSProperty
@Override
HTMLElement getDocumentElement();
@Override
HTMLElement createElement(String tagName);
@Override
HTMLElement getElementById(String elementId);
}

View File

@ -0,0 +1,83 @@
/*
* 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.html;
import org.teavm.dom.core.Element;
import org.teavm.dom.core.NodeList;
import org.teavm.dom.css.ElementCSSInlineStyle;
import org.teavm.dom.events.EventTarget;
import org.teavm.jso.JSProperty;
/**
*
* @author Alexey Andreev <konsoletyper@gmail.com>
*/
public interface HTMLElement extends Element, ElementCSSInlineStyle, EventTarget {
@Override
@JSProperty
NodeList<? extends HTMLElement> getElementsByTagName(String name);
@JSProperty
String getTitle();
@JSProperty
void setTitle(String title);
@JSProperty
String getLang();
@JSProperty
void setLang(String lang);
@JSProperty
boolean isTranslate();
@JSProperty
void setTranslate(boolean translate);
@JSProperty
String getDir();
@JSProperty
void setDir(String dir);
@JSProperty
boolean isHidden();
@JSProperty
void setHidden(boolean hidden);
void click();
@JSProperty
int getTabIndex();
@JSProperty
void setTabIndex(int tabIndex);
void focus();
void blur();
@JSProperty
String getAccessKey();
@JSProperty
void setAccessKey(String accessKey);
@JSProperty
String getAccessKeyLabel();
}