下面列出了怎么用com.google.gwt.core.client.JsArrayString的API类实例代码及写法,或者点击链接到github查看源代码。
/** Native JavaScript that returns the selected text and position of the start **/
public static native JsArrayString getSelection(Element elem) /*-{
var txt = "";
var pos = 0;
var range;
var parentElement;
var container;
if (elem.contentWindow.getSelection) {
txt = elem.contentWindow.getSelection();
pos = elem.contentWindow.getSelection().getRangeAt(0).startOffset;
} else if (elem.contentWindow.document.getSelection) {
txt = elem.contentWindow.document.getSelection();
pos = elem.contentWindow.document.getSelection().getRangeAt(0).startOffset;
} else if (elem.contentWindow.document.selection) {
range = elem.contentWindow.document.selection.createRange();
txt = range.text;
parentElement = range.parentElement();
container = range.duplicate();
container.moveToElementText(parentElement);
container.setEndPoint('EndToEnd', range);
pos = container.text.length - range.text.length;
}
return ["" + txt, "" + pos];
}-*/;
/**
* Transform a Javascript object (array or string) to
* a StringSet.
*
* @param obj an array or string
* @return
*/
public static StringSet toStringSet(JavaScriptObject obj) throws IllegalStateException {
StringSet set = CollectionUtils.createStringSet();
// from array
JsArrayString array = asArray(obj);
if (array != null) {
for (int i = 0; i < array.length(); i++)
set.add(array.get(i));
}
// from string
String s = asString(obj);
if (s!=null)
set.add(s);
return set;
}
public boolean isEquals(BucketsOverlay other) {
if (super.equals(other))
return true;
final JsArrayString keys = getKeysNative();
final JsArrayString otherKeys = other.getKeysNative();
if (arraysEquals(keys, otherKeys)) {
for (int i = 0; i < keys.length(); i++) {
if (!arraysEquals(getNative(keys.get(i)), other.getNative(otherKeys.get(i)))) {
return false;
}
}
return true;
}
return false;
}
private static native boolean arraysEquals(JsArrayString a, JsArrayString b) /*-{
if (a === b) return true;
if (a == null || b == null) return false;
if (a.length != b.length) return false;
// clone arrays and sort them
var a1 = [], b1 = [], l = a1.length;
for (var i = 0; i < l; ++i) {
a1[i] = a[i];
b1[i] = b[i];
}
a1.sort();
b1.sort();
// compare sorted arrays
for (var i = 0; i < l; ++i) {
if (a1[i] !== b1[i]) return false;
}
return true;
}-*/;
public void testNextJavaScriptObjectRootArray() {
// safeEval
JsonReader reader = newJsonReader( " [\"Bob\",\"Morane\"] " );
JsArrayString array = reader.nextJavaScriptObject( true ).cast();
assertEquals( 2, array.length() );
assertEquals( "Bob", array.get( 0 ) );
assertEquals( "Morane", array.get( 1 ) );
assertEquals( JsonToken.END_DOCUMENT, reader.peek() );
// unsafeEval
reader = newJsonReader( "[\"Bob\",\"Morane\"]" );
array = reader.nextJavaScriptObject( false ).cast();
assertEquals( 2, array.length() );
assertEquals( "Bob", array.get( 0 ) );
assertEquals( "Morane", array.get( 1 ) );
assertEquals( JsonToken.END_DOCUMENT, reader.peek() );
}
private List<String> getStringArrayAttribute(SliderOption option, List<String> defaultValue) {
// Get array attribute
JsArrayString array = null;
if (isAttached()) {
array = getStringArrayAttribute(getElement(), option.getName());
} else {
String value = attributeMixin.getAttribute(option.getDataAttribute());
if (value != null && !value.isEmpty()) {
array = JsonUtils.safeEval(value);
}
}
// Attribute not set
if (array == null) {
return defaultValue;
}
// Put array to list
List<String> list = new ArrayList<String>(array.length());
for (int i = 0; i < array.length(); i++) {
list.add(array.get(i));
}
return list;
}
@Override
protected void setSelectedValue(List<String> value) {
if (isAttached()) {
final JsArrayString arr = JavaScriptObject.createArray().cast();
for (final String val : value) {
arr.push(val);
}
setValue(getElement(), arr);
} else {
for (Entry<OptionElement, Option> entry : itemMap.entrySet()) {
Option opt = entry.getValue();
boolean selected = value.contains(opt.getValue());
opt.setSelected(selected);
}
}
}
public static JsArrayString getExtensionsToLoad() {
JsArrayString result = JsArrayString.createArray().cast();
if (INSTANCE != null) {
for (String s : INSTANCE.extensions) {
result.push(s);
}
}
return result;
}
/** Method called to toggle the style in HTML-Mode **/
private void changeHtmlStyle(String startTag, String stopTag) {
JsArrayString tx = getSelection(styleText.getElement());
String txbuffer = styleText.getText();
Integer startpos = Integer.parseInt(tx.get(1));
String selectedText = tx.get(0);
styleText.setText(txbuffer.substring(0, startpos) + startTag + selectedText + stopTag + txbuffer.substring(startpos + selectedText.length()));
}
private static List<String> getProj4jsProjections() {
List<String> projections = new ArrayList<String>();
JsArrayString projDefs = getProjDefs();
for (int i = 0; i < projDefs.length(); i++) {
projections.add(projDefs.get(i).trim());
}
return projections;
}
protected JsArrayString extractOptions(ToolbarButton[] options) {
JsArrayString jsOptions = JsArrayString.createArray().cast();
for (ToolbarButton option : options) {
jsOptions.push(option.getId());
}
return jsOptions;
}
private final native JsArrayString getExtraParameterNames0() /*-{
if (!this.extraParameters) {
var a = new Array();
for (name in this) {
if (name != "moduleName" && name != "subSystem" && name != "evtGroup" && name != "millis") {
a.push(name);
}
}
this.extraParameters = a;
}
return this.extraParameters
}-*/;
@Override
public List<String> getMatches(String test) {
JsArrayString matches = matches(regExp, test);
if (matches != null && matches.length() > 0) {
List<String> result = new ArrayList<String>(matches.length());
for (int i = 0; i < matches.length(); ++i) {
result.add(matches.get(i));
}
return result;
}
return new ArrayList<String>();
}
public static String join(final String delimiter, final String... text) {
final JsArrayString jsa = JavaScriptObject.createArray().cast();
for (int i = 0; i < text.length; i++) {
jsa.push(text[i]);
}
return jsa.join(delimiter);
}
public static JsArrayString toJsArray(Iterable<String> values) {
JsArrayString array = JsArrayString.createArray().cast();
for (String value : values) {
array.push(value);
}
return array;
}
private final native JsArrayString getExtraParameterNames0() /*-{
if (!this.extraParameters) {
var a = new Array();
for (name in this) {
if (name != "moduleName" && name != "subSystem" && name != "evtGroup" && name != "millis") {
a.push(name);
}
}
this.extraParameters = a;
}
return this.extraParameters
}-*/;
@Override
public List<String> getMatches(String test) {
JsArrayString matches = matches(regExp, test);
if (matches != null && matches.length() > 0) {
List<String> result = new ArrayList<String>(matches.length());
for (int i = 0; i < matches.length(); ++i) {
result.add(matches.get(i));
}
return result;
}
return new ArrayList<String>();
}
public FastArrayString(){
if(GWT.isScript()) {
stackNative = JsArrayString.createArray().cast();
} else {
stackJava = new JsList<String>();
}
}
public void testRootJsArrayString() {
JsArrayString array = JavaScriptObject.createArray().cast();
array.push( "Hello" );
array.push( "World" );
array.push( "!" );
String json = JsArrayStringMapper.INSTANCE.write( array );
assertEquals( "[\"Hello\",\"World\",\"!\"]", json );
array = JsArrayStringMapper.INSTANCE.read( json );
assertEquals( 3, array.length() );
assertEquals( "Hello", array.get( 0 ) );
assertEquals( "World", array.get( 1 ) );
assertEquals( "!", array.get( 2 ) );
}
private void updateSliderForStringArray(SliderOption option, List<String> value) {
JsArrayString array = JavaScriptObject.createArray().cast();
for (String val : value) {
array.push(val);
}
if (isAttached()) {
setAttribute(getElement(), option.getName(), array);
refresh();
} else {
String arrayStr = JsonUtils.stringify(array);
attributeMixin.setAttribute(option.getDataAttribute(), arrayStr);
}
}
@Override
public List<String> getValue() {
if (isAttached()) {
JsArrayString arr = getValue(getElement());
List<String> result = new ArrayList<>(arr.length());
for (int i = 0; i < arr.length(); i++) {
result.add(arr.get(i));
}
return result;
}
return getSelectedValues();
}
protected static List<String> toMultiValue(JavaScriptObject js_multi_value) {
List<String> retValue = new ArrayList<String>();
if (js_multi_value != null) {
JsArrayString js_string_array = js_multi_value.cast();
for(int i=0; i<js_string_array.length(); i++) {
retValue.add(js_string_array.get(i));
}
}
return retValue;
}
public void execute(final Collection<Suggestion<T>> suggestions) {
JsArray<Suggestion<T>> jsArray = JsArrayString.createArray().cast();
if (suggestions != null) {
for (Suggestion<T> s : suggestions) {
jsArray.push(s);
}
}
invokeCallback(jsCallback, jsArray);
}
/**
* Set customized font names.
*
* @param fontNames customized font names
* @see SummernoteFontName
*/
public void setFontNames(final SummernoteFontName... fontNames) {
JsArrayString array = JavaScriptObject.createArray().cast();
for (SummernoteFontName fontName : fontNames) {
array.push(fontName.getName());
}
options.setFontNames(array);
}
/**
* Creates a new toolbar group.
*
* @param name
* @param buttons
* @return
*/
static final JsArrayMixed newToolbarGroup(String name, ToolbarButton... buttons) {
JsArrayString arr = JavaScriptObject.createArray().cast();
for (ToolbarButton button : buttons) {
arr.push(button.getId());
}
return getToolbarGroup(name, arr);
}
private final native JsArrayString getExtraParameterNames0() /*-{
if (!this.extraParameters) {
var a = new Array();
for (name in this) {
if (name != "moduleName" && name != "subSystem" && name != "evtGroup" && name != "millis") {
a.push(name);
}
}
this.extraParameters = a;
}
return this.extraParameters
}-*/;
public final native JsArrayString getLines(int startRow, int endRow) /*-{
return this.getSession().getLines(startRow, endRow);
}-*/;
public native static JsContentContact create(String name, String photo64, JsArrayString phones,
JsArrayString emails)/*-{
return {content: "contact", name: name, photo64: photo64, pones: phones, emails: emails};
}-*/;
private static native JsArrayString getProjDefs() /*-{
return Object.keys($wnd.Proj4js.defs);
}-*/;
private native JsArrayString getNativeArray() /*-{
return ["0d47a1", "1565c0", "1976d2", "1e88e5", "2196f3", "42a5f5"];
}-*/;