Extends DOM HTML binding

This commit is contained in:
konsoletyper 2014-05-07 22:23:05 +04:00
parent e206229db4
commit 916df8db01
12 changed files with 324 additions and 14 deletions

View File

@ -15,7 +15,7 @@
*/ */
package org.teavm.dom.core; package org.teavm.dom.core;
import org.teavm.jso.JSArray; import org.teavm.jso.JSArrayReader;
import org.teavm.jso.JSObject; import org.teavm.jso.JSObject;
import org.teavm.jso.JSProperty; import org.teavm.jso.JSProperty;
@ -23,7 +23,7 @@ import org.teavm.jso.JSProperty;
* *
* @author Alexey Andreev * @author Alexey Andreev
*/ */
public interface NamedNodeMap<T extends Node> extends JSObject, JSArray<T> { public interface NamedNodeMap<T extends Node> extends JSObject, JSArrayReader<T> {
T getNamedItem(String name); T getNamedItem(String name);
T setNamedItem(T arg); T setNamedItem(T arg);

View File

@ -15,14 +15,14 @@
*/ */
package org.teavm.dom.core; package org.teavm.dom.core;
import org.teavm.jso.JSArray; import org.teavm.jso.JSArrayReader;
import org.teavm.jso.JSProperty; import org.teavm.jso.JSProperty;
/** /**
* *
* @author Alexey Andreev * @author Alexey Andreev
*/ */
public interface NodeList<T extends Node> extends JSArray<T> { public interface NodeList<T extends Node> extends JSArrayReader<T> {
T item(int index); T item(int index);
@Override @Override

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.jso.JSProperty;
/**
*
* @author Alexey Andreev <konsoletyper@gmail.com>
*/
public interface HTMLBaseElement extends HTMLElement {
@JSProperty
String getHref();
@JSProperty
void setHref(String href);
@JSProperty
String getTarget();
void setTarget(String target);
}

View File

@ -25,7 +25,7 @@ import org.teavm.jso.JSProperty;
public interface HTMLDocument extends Document { public interface HTMLDocument extends Document {
@JSProperty @JSProperty
@Override @Override
HTMLElement getDocumentElement(); HTMLHtmlElement getDocumentElement();
@Override @Override
HTMLElement createElement(String tagName); HTMLElement createElement(String tagName);

View File

@ -0,0 +1,23 @@
/*
* 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;
/**
*
* @author Alexey Andreev <konsoletyper@gmail.com>
*/
public interface HTMLHeadElement extends HTMLElement {
}

View File

@ -0,0 +1,23 @@
/*
* 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;
/**
*
* @author Alexey Andreev <konsoletyper@gmail.com>
*/
public interface HTMLHtmlElement extends HTMLElement {
}

View File

@ -0,0 +1,60 @@
/*
* 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.jso.JSProperty;
/**
*
* @author Alexey Andreev <konsoletyper@gmail.com>
*/
public interface HTMLLinkElement extends HTMLElement {
@JSProperty
String getHref();
@JSProperty
void setHref(String href);
@JSProperty
String getCrossOrigin();
@JSProperty
void setCrossOrigin(String crossOrigin);
@JSProperty
String getRel();
@JSProperty
void setRel(String rel);
@JSProperty
String getMedia();
@JSProperty
void setMedia(String media);
@JSProperty
String getHreflang();
@JSProperty
void setHreflang(String hreflang);
@JSProperty
String getType();
@JSProperty
void setType(String property);
}

View File

@ -0,0 +1,42 @@
/*
* 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.jso.JSProperty;
/**
*
* @author Alexey Andreev <konsoletyper@gmail.com>
*/
public interface HTMLMetaElement extends HTMLElement {
@JSProperty
String getName();
@JSProperty
void setName(String name);
@JSProperty
String getHttpEquiv();
@JSProperty
void setHttpEquiv(String httpEquiv);
@JSProperty
String getContent();
@JSProperty
void setContent(String content);
}

View File

@ -0,0 +1,30 @@
/*
* 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.jso.JSProperty;
/**
*
* @author Alexey Andreev <konsoletyper@gmail.com>
*/
public interface HTMLTitleElement extends HTMLElement {
@JSProperty
String getText();
@JSProperty
void setText(String text);
}

View File

@ -19,15 +19,59 @@ package org.teavm.jso;
* *
* @author Alexey Andreev * @author Alexey Andreev
*/ */
public interface JSArray<T extends JSObject> extends JSObject { public interface JSArray<T extends JSObject> extends JSArrayReader<T> {
@JSProperty
int getLength();
@JSIndexer
T get(int index);
@JSIndexer @JSIndexer
void set(int index, T value); void set(int index, T value);
void push(T value); int push(T a);
int push(T a, T b);
int push(T a, T b, T c);
int push(T a, T b, T c, T d);
T shift();
String join(String separator);
String join();
JSArray<T> concat(JSArray<T> a);
JSArray<T> concat(JSArray<T> a, JSArray<T> b);
JSArray<T> concat(JSArray<T> a, JSArray<T> b, JSArray<T> c);
JSArray<T> concat(JSArray<T> a, JSArray<T> b, JSArray<T> c, JSArray<T> d);
T pop();
int unshift(T a);
int unshift(T a, T b);
int unshift(T a, T b, T c);
int unshift(T a, T b, T c, T d);
JSArray<T> slice(int start);
JSArray<T> slice(int start, int end);
JSArray<T> reverse();
JSArray<T> sort(JSSortFunction<T> function);
JSArray<T> sort();
JSArray<T> splice(int start, int count);
JSArray<T> splice(int start, int count, T a);
JSArray<T> splice(int start, int count, T a, T b);
JSArray<T> splice(int start, int count, T a, T b, T c);
JSArray<T> splice(int start, int count, T a, T b, T c, T d);
} }

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.jso;
/**
*
* @author Alexey Andreev <konsoletyper@gmail.com>
*/
public interface JSArrayReader<T extends JSObject> extends JSObject {
@JSProperty
int getLength();
@JSIndexer
T get(int index);
}

View File

@ -0,0 +1,25 @@
/*
* 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.jso;
/**
*
* @author Alexey Andreev <konsoletyper@gmail.com>
*/
@JSFunctor
public interface JSSortFunction<T extends JSObject> {
int compare(T a, T b);
}