\subsection{Llamando a código JavaScript}

\begin{itemize}
	\item \emph{JSNI} $\rightarrow$ \textbf{J}ava\textbf{S}cript \textbf{N}ative \textbf{I}nterface
	\item Podemos implementar métodos de \emph{client} en JavaScript de manera sencilla
	\begin{itemize}
		\item Podemos interactuar con un applet flash o con un applet de Java desde código GWT
		\item Podemos interactuar con librerías hechas en JavaScript
		\item \ldots
	\end{itemize}
	\item Da manera completa:
	\begin{itemize}
		\item Excepciones (con pequeñas limitaciones)
		\item Paso de objetos Java a JavaScript y viceversa
		\item Posible llamar desde JavaScript a Java y desde Java a JavaScript
	\end{itemize}
	\item ¿Cómo?
	\begin{itemize}
		\item \texttt{window} $\rightarrow$ \texttt{\$wnd}
		\item \texttt{document} $\rightarrow$ \texttt{\$doc}
	\end{itemize}
\end{itemize}

\begin{lstlisting}[language=Java]
	public static void funcion(String msg) /*-{
		$wnd.alert(msg);
	}-*/;
\end{lstlisting}

