
com.phloc.html.js.builder.html.JSHtml Maven / Gradle / Ivy
/**
* Copyright (C) 2006-2015 phloc systems
* http://www.phloc.com
* office[at]phloc[dot]com
*
* 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 com.phloc.html.js.builder.html;
import javax.annotation.Nonnegative;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable;
import com.phloc.commons.annotations.PresentForCodeCoverage;
import com.phloc.commons.url.ISimpleURL;
import com.phloc.html.EHTMLElement;
import com.phloc.html.hc.IHCElement;
import com.phloc.html.js.builder.IJSExpression;
import com.phloc.html.js.builder.JSAnonymousFunction;
import com.phloc.html.js.builder.JSAssignment;
import com.phloc.html.js.builder.JSExpr;
import com.phloc.html.js.builder.JSFieldRef;
import com.phloc.html.js.builder.JSInvocation;
import com.phloc.html.js.builder.JSRef;
import com.phloc.html.js.builder.JSVar;
/**
* This class contains JS builder default constructs that are used very commonly
*
* @author Philip Helger
*/
@Immutable
public final class JSHtml
{
@PresentForCodeCoverage
@SuppressWarnings ("unused")
private static final JSHtml s_aInstance = new JSHtml ();
private JSHtml ()
{}
// --- console ---
/**
* @return Global console object
* @see #windowConsole()
*/
@Nonnull
public static JSRef console ()
{
return JSExpr.ref ("console");
}
@Nonnull
public static JSInvocation consoleAssert ()
{
return console ().invoke ("assert");
}
@Nonnull
public static JSInvocation consoleClear ()
{
return console ().invoke ("clear");
}
@Nonnull
public static JSInvocation consoleDebug ()
{
return console ().invoke ("debug");
}
@Nonnull
public static JSInvocation consoleError ()
{
return console ().invoke ("error");
}
@Nonnull
public static JSInvocation consoleInfo ()
{
return console ().invoke ("info");
}
@Nonnull
public static JSInvocation consoleLog ()
{
return console ().invoke ("log");
}
@Nonnull
public static JSInvocation consoleLog (@Nullable final String sText)
{
return consoleLog ().arg (sText);
}
@Nonnull
public static JSInvocation consoleLog (@Nonnull final IJSExpression aExpr)
{
return consoleLog ().arg (aExpr);
}
@Nonnull
public static JSInvocation consoleWarn ()
{
return console ().invoke ("warn");
}
// --- document ---
/**
* @return Global document object
* @see #windowDocument()
*/
@Nonnull
public static JSRef document ()
{
return JSExpr.ref ("document");
}
@Nonnull
public static JSFieldRef documentAnchors ()
{
return document ().ref ("anchors");
}
@Nonnull
public static JSInvocation documentCreateAttribute ()
{
return document ().invoke ("createAttribute");
}
@Nonnull
public static JSInvocation documentCreateElement ()
{
return document ().invoke ("createElement");
}
@Nonnull
public static JSInvocation documentCreateElement (@Nonnull final EHTMLElement eHTMLElement)
{
return documentCreateElement ().arg (eHTMLElement);
}
@Nonnull
public static JSInvocation documentCreateTextNode ()
{
return document ().invoke ("createTextNode");
}
@Nonnull
public static JSFieldRef documentEmbeds ()
{
return document ().ref ("embeds");
}
@Nonnull
public static JSFieldRef documentForms ()
{
return document ().ref ("forms");
}
@Nonnull
public static JSInvocation documentGetElementById (@Nonnull final String sID)
{
return documentGetElementById (JSExpr.lit (sID));
}
@Nonnull
public static JSInvocation documentGetElementById (@Nonnull final IHCElement > aElement)
{
return documentGetElementById (aElement.ensureID ().getID ());
}
@Nonnull
public static JSInvocation documentGetElementById (@Nonnull final IJSExpression aID)
{
return document ().invoke ("getElementById").arg (aID);
}
@Nonnull
public static JSInvocation documentGetElementsByName (@Nonnull final EHTMLElement eHTMLElement)
{
return documentGetElementsByName (eHTMLElement.getElementName ());
}
@Nonnull
public static JSInvocation documentGetElementsByName (@Nonnull final String sElementName)
{
return documentGetElementsByName (JSExpr.lit (sElementName));
}
@Nonnull
public static JSInvocation documentGetElementsByName (@Nonnull final IJSExpression aElementName)
{
return document ().invoke ("getElementsByName").arg (aElementName);
}
@Nonnull
public static JSInvocation documentGetElementsByTagName (@Nonnull final EHTMLElement eHTMLElement)
{
return documentGetElementsByTagName (eHTMLElement.getElementName ());
}
@Nonnull
public static JSInvocation documentGetElementsByTagName (@Nonnull final String sElementName)
{
return documentGetElementsByTagName (JSExpr.lit (sElementName));
}
@Nonnull
public static JSInvocation documentGetElementsByTagName (@Nonnull final IJSExpression aElementName)
{
return document ().invoke ("getElementsByTagName").arg (aElementName);
}
@Nonnull
public static JSFieldRef documentImages ()
{
return document ().ref ("images");
}
@Nonnull
public static JSFieldRef documentLinks ()
{
return document ().ref ("links");
}
@Nonnull
public static JSInvocation documentWrite (@Nonnull final String sText)
{
return documentWrite (JSExpr.lit (sText));
}
@Nonnull
public static JSInvocation documentWrite (@Nonnull final IJSExpression aText)
{
return document ().invoke ("write").arg (aText);
}
@Nonnull
public static JSInvocation documentWriteln (@Nonnull final String sText)
{
return documentWriteln (JSExpr.lit (sText));
}
@Nonnull
public static JSInvocation documentWriteln (@Nonnull final IJSExpression aText)
{
return document ().invoke ("writeln").arg (aText);
}
// --- event ---
@Nonnull
public static JSRef event ()
{
return JSExpr.ref ("event");
}
// --- history ---
/**
* @return The history object
* @see #windowHistory()
*/
@Nonnull
public static JSRef history ()
{
return JSExpr.ref ("history");
}
@Nonnull
public static JSInvocation historyBack ()
{
return history ().invoke ("back");
}
@Nonnull
public static JSInvocation historyForward ()
{
return history ().invoke ("forward");
}
@Nonnull
public static JSInvocation historyGo (final int nJumpCount)
{
return historyGo (JSExpr.lit (nJumpCount));
}
@Nonnull
public static JSInvocation historyGo (@Nonnull final IJSExpression aJumpCount)
{
return history ().invoke ("go").arg (aJumpCount);
}
@Nonnull
public static JSFieldRef historyLength ()
{
return history ().ref ("length");
}
// --- navigator ---
/**
* @return Global navigator object
* @see #windowNavigator()
*/
@Nonnull
public static JSRef navigator ()
{
return JSExpr.ref ("navigator");
}
@Nonnull
public static JSFieldRef navigatorAppCodeName ()
{
return navigator ().ref ("appCodeName");
}
@Nonnull
public static JSFieldRef navigatorAppName ()
{
return navigator ().ref ("appName");
}
@Nonnull
public static JSFieldRef navigatorAppVersion ()
{
return navigator ().ref ("appVersion");
}
@Nonnull
public static JSFieldRef navigatorCookieEnabled ()
{
return navigator ().ref ("cookieEnabled");
}
@Nonnull
public static JSFieldRef navigatorLanguage ()
{
return navigator ().ref ("language");
}
// is an array!
@Nonnull
public static JSFieldRef navigatorMimeTypes ()
{
return navigator ().ref ("mimeTypes");
}
@Nonnull
public static JSFieldRef navigatorOnLine ()
{
return navigator ().ref ("onLine");
}
@Nonnull
public static JSFieldRef navigatorPlatform ()
{
return navigator ().ref ("platform");
}
// is an array!
@Nonnull
public static JSFieldRef navigatorPlugins ()
{
return navigator ().ref ("plugins");
}
@Nonnull
public static JSFieldRef navigatorUserAgent ()
{
return navigator ().ref ("userAgent");
}
@Nonnull
public static JSInvocation navigatorJavaEnabled ()
{
return navigator ().invoke ("javaEnabled");
}
/*
* IE and Opera only
*/
@Nonnull
public static JSInvocation navigatorTaintEnabled ()
{
return navigator ().invoke ("taintEnabled");
}
// --- screen ---
/**
* @return Global screen object
* @see #windowScreen()
*/
@Nonnull
public static JSRef screen ()
{
return JSExpr.ref ("screen");
}
@Nonnull
public static JSFieldRef screenAvailHeight ()
{
return screen ().ref ("availHeight");
}
@Nonnull
public static JSFieldRef screenAvailWidth ()
{
return screen ().ref ("availWidth");
}
@Nonnull
public static JSFieldRef screenColorDepth ()
{
return screen ().ref ("colorDepth");
}
@Nonnull
public static JSFieldRef screenHeight ()
{
return screen ().ref ("height");
}
@Nonnull
public static JSFieldRef screenPixelDepth ()
{
return screen ().ref ("pixelDepth");
}
@Nonnull
public static JSFieldRef screenWidth ()
{
return screen ().ref ("width");
}
// --- window ---
/**
* @return window
*/
@Nonnull
public static JSRef window ()
{
return JSExpr.ref ("window");
}
/**
* @return window.alert
*/
@Nonnull
public static JSInvocation windowAlert ()
{
return window ().invoke ("alert");
}
@Nonnull
public static JSInvocation windowAlert (@Nullable final String sMessage)
{
return windowAlert ().arg (sMessage);
}
@Nonnull
public static JSInvocation windowAlert (@Nonnull final IJSExpression aExpr)
{
return windowAlert ().arg (aExpr);
}
/**
* @return window.blur
*/
@Nonnull
public static JSInvocation windowBlur ()
{
return window ().invoke ("blur");
}
/**
* @return window.clearInterval
*/
@Nonnull
public static JSInvocation windowClearInterval ()
{
return window ().invoke ("clearInterval");
}
@Nonnull
public static JSInvocation windowClearInterval (@Nonnull final JSVar aVar)
{
return windowClearInterval ().arg (aVar);
}
/**
* @return window.clearTimeout
*/
@Nonnull
public static JSInvocation windowClearTimeout ()
{
return window ().invoke ("clearTimeout");
}
@Nonnull
public static JSInvocation windowClearTimeout (@Nonnull final JSVar aVar)
{
return windowClearTimeout ().arg (aVar);
}
/**
* @return window.close
*/
@Nonnull
public static JSInvocation windowClose ()
{
return window ().invoke ("close");
}
/**
* @return window.closed
*/
@Nonnull
public static JSFieldRef windowClosed ()
{
return window ().ref ("closed");
}
/**
* @return window.confirm
*/
@Nonnull
public static JSInvocation windowConfirm ()
{
return window ().invoke ("confirm");
}
/**
* @return window.console
*/
@Nonnull
public static JSFieldRef windowConsole ()
{
return window ().ref ("console");
}
/**
* @return window.createPopup
*/
@Nonnull
public static JSInvocation windowCreatePopup ()
{
return window ().invoke ("createPopup");
}
/**
* @return window.defaultStatus
*/
@Nonnull
public static JSFieldRef windowDefaultStatus ()
{
return window ().ref ("defaultStatus");
}
/**
* @return window.document
*/
@Nonnull
public static JSFieldRef windowDocument ()
{
return window ().ref ("document");
}
/**
* @return window.focus
*/
@Nonnull
public static JSInvocation windowFocus ()
{
return window ().invoke ("focus");
}
/**
* @return window.frames
*/
@Nonnull
public static JSFieldRef windowFrames ()
{
return window ().ref ("frames");
}
/**
* @return window.history
*/
@Nonnull
public static JSFieldRef windowHistory ()
{
return window ().ref ("history");
}
/**
* @return window.innerHeight
*/
@Nonnull
public static JSFieldRef windowInnerHeight ()
{
return window ().ref ("innerHeight");
}
/**
* @return window.innerWidth
*/
@Nonnull
public static JSFieldRef windowInnerWidth ()
{
return window ().ref ("innerWidth");
}
/**
* @return window.length
*/
@Nonnull
public static JSFieldRef windowLength ()
{
return window ().ref ("length");
}
/**
* @return window.localStorage
*/
@Nonnull
public static JSFieldRef windowLocalStorage ()
{
return window ().ref ("localStorage");
}
/**
* @return window.location
*/
@Nonnull
public static JSFieldRef windowLocation ()
{
return window ().ref ("location");
}
/**
* @return window.location.hash
*/
@Nonnull
public static JSFieldRef windowLocationHash ()
{
return windowLocation ().ref ("hash");
}
/**
* @return window.location.host
*/
@Nonnull
public static JSFieldRef windowLocationHost ()
{
return windowLocation ().ref ("host");
}
/**
* @return window.location.hostname
*/
@Nonnull
public static JSFieldRef windowLocationHostname ()
{
return windowLocation ().ref ("hostname");
}
/**
* @return window.location.href
*/
@Nonnull
public static JSFieldRef windowLocationHref ()
{
return windowLocation ().ref ("href");
}
@Nonnull
public static JSAssignment windowLocationHref (@Nonnull final ISimpleURL aURL)
{
return windowLocationHref ().assign (aURL.getAsString ());
}
/**
* @return window.location.pathname
*/
@Nonnull
public static JSFieldRef windowLocationPathname ()
{
return windowLocation ().ref ("pathname");
}
/**
* @return window.location.port
*/
@Nonnull
public static JSFieldRef windowLocationPort ()
{
return windowLocation ().ref ("port");
}
/**
* @return window.location.protocol
*/
@Nonnull
public static JSFieldRef windowLocationProtocol ()
{
return windowLocation ().ref ("protocol");
}
/**
* @return window.location.reload
*/
@Nonnull
public static JSInvocation windowLocationReload ()
{
return windowLocation ().invoke ("reload");
}
/**
* @return window.location.replace
*/
@Nonnull
public static JSInvocation windowLocationReplace ()
{
return windowLocation ().invoke ("replace");
}
@Nonnull
public static JSInvocation windowLocationReplace (@Nonnull final ISimpleURL aURL)
{
return windowLocationReplace (JSExpr.lit (aURL.getAsString ()));
}
@Nonnull
public static JSInvocation windowLocationReplace (@Nonnull final IJSExpression aURL)
{
return windowLocationReplace ().arg (aURL);
}
/**
* @return window.location.search
*/
@Nonnull
public static JSFieldRef windowLocationSearch ()
{
return windowLocation ().ref ("search");
}
/**
* @return window.moveBy
*/
@Nonnull
public static JSInvocation windowMoveBy ()
{
return window ().invoke ("moveBy");
}
/**
* @return window.moveTo
*/
@Nonnull
public static JSInvocation windowMoveTo ()
{
return window ().invoke ("moveTo");
}
/**
* @return window.name
*/
@Nonnull
public static JSFieldRef windowName ()
{
return window ().ref ("name");
}
/**
* @return window.navigator
*/
@Nonnull
public static JSFieldRef windowNavigator ()
{
return window ().ref ("navigator");
}
/**
* @return window.open
*/
@Nonnull
public static JSInvocation windowOpen ()
{
return window ().invoke ("open");
}
/**
* @return window.opener
*/
@Nonnull
public static JSFieldRef windowOpener ()
{
return window ().ref ("opener");
}
/**
* @return window.outerHeight
*/
@Nonnull
public static JSFieldRef windowOuterHeight ()
{
return window ().ref ("outerHeight");
}
/**
* @return window.outerWidth
*/
@Nonnull
public static JSFieldRef windowOuterWidth ()
{
return window ().ref ("outerWidth");
}
/**
* @return window.pageXOffset
*/
@Nonnull
public static JSFieldRef windowPageXOffset ()
{
return window ().ref ("pageXOffset");
}
/**
* @return window.pageYOffset
*/
@Nonnull
public static JSFieldRef windowPageYOffset ()
{
return window ().ref ("pageYOffset");
}
/**
* @return window.parent
*/
@Nonnull
public static JSFieldRef windowParent ()
{
return window ().ref ("parent");
}
/**
* @return window.parent.frames
*/
@Nonnull
public static JSFieldRef windowParentFrames ()
{
return windowParent ().ref ("frames");
}
/**
* @return window.print
*/
@Nonnull
public static JSInvocation windowPrint ()
{
return window ().invoke ("print");
}
/**
* @return window.prompt
*/
@Nonnull
public static JSInvocation windowPrompt ()
{
return window ().invoke ("prompt");
}
/**
* @return window.resizeBy
*/
@Nonnull
public static JSInvocation windowResizeBy ()
{
return window ().invoke ("resizeBy");
}
/**
* @return window.resizeTo
*/
@Nonnull
public static JSInvocation windowResizeTo ()
{
return window ().invoke ("resizeTo");
}
/**
* @return window.screen
*/
@Nonnull
public static JSFieldRef windowScreen ()
{
return window ().ref ("screen");
}
/**
* @return window.screenLeft
*/
@Nonnull
public static JSFieldRef windowScreenLeft ()
{
return window ().ref ("screenLeft");
}
/**
* @return window.screenTop
*/
@Nonnull
public static JSFieldRef windowScreenTop ()
{
return window ().ref ("screenTop");
}
/**
* @return window.screenX
*/
@Nonnull
public static JSFieldRef windowScreenX ()
{
return window ().ref ("screenX");
}
/**
* @return window.screenY
*/
@Nonnull
public static JSFieldRef windowScreenY ()
{
return window ().ref ("screenY");
}
/**
* @return window.scroll
*/
@Nonnull
public static JSInvocation windowScroll ()
{
return window ().invoke ("scroll");
}
/**
* @return window.scrollBy
*/
@Nonnull
public static JSInvocation windowScrollBy ()
{
return window ().invoke ("scrollBy");
}
/**
* @return window.scrollTo
*/
@Nonnull
public static JSInvocation windowScrollTo ()
{
return window ().invoke ("scrollTo");
}
/**
* @return window.self
*/
@Nonnull
public static JSFieldRef windowSelf ()
{
return window ().ref ("self");
}
/**
* @return window.setInterval
*/
@Nonnull
public static JSInvocation windowSetInterval ()
{
return window ().invoke ("setInterval");
}
@Nonnull
public static JSInvocation windowSetInterval (@Nonnull final JSAnonymousFunction aCallback,
@Nonnegative final int nMillis)
{
return windowSetInterval ().arg (aCallback).arg (nMillis);
}
/**
* @return window.setTimeout
*/
@Nonnull
public static JSInvocation windowSetTimeout ()
{
return window ().invoke ("setTimeout");
}
@Nonnull
public static JSInvocation windowSetTimeout (@Nonnull final JSAnonymousFunction aCallback,
@Nonnegative final int nMillis)
{
return windowSetTimeout ().arg (aCallback).arg (nMillis);
}
/**
* @return window.status
*/
@Nonnull
public static JSFieldRef windowStatus ()
{
return window ().ref ("status");
}
/**
* @return window.top
*/
@Nonnull
public static JSFieldRef windowTop ()
{
return window ().ref ("top");
}
/**
* @return window.onbeforeunload
*/
@Nonnull
public static JSFieldRef windowOnbeforeunload ()
{
return window ().ref ("onbeforeunload");
}
/**
* window.onbeforeunload
*
* @param aCallback
* Callback function with one parameter (the event) and return type
* string to display a message or null to display none.
* @return The JS assignment
*/
@Nonnull
public static JSAssignment windowOnbeforeunload (@Nonnull final JSAnonymousFunction aCallback)
{
return windowOnbeforeunload ().assign (aCallback);
}
// -- others ---
/**
* @return aExpr.options[aExpr.selectedIndex].value
*/
@Nonnull
public static JSFieldRef getSelectSelectedValue (@Nonnull final IJSExpression aExpr)
{
return aExpr.ref ("options").component (aExpr.ref ("selectedIndex")).ref ("value");
}
/**
* @return this.options[this.selectedIndex].value
*/
@Nonnull
public static JSFieldRef getSelectSelectedValue ()
{
return getSelectSelectedValue (JSExpr.THIS);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy