<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>ECF New and Noteworthy</title>
<link rel="stylesheet" href="http://www.eclipse.org/default_style.css" type="text/css">

</head>

<body bgcolor="#FFFFFF">
<table border=0 cellspacing=5 cellpadding=2 width="100%">
  <tbody>
    <tr>
      <td width="69%" class="bannertext">
        <font class="indextop style">eclipse communication framework</font>
        <br><br>
        <font class="indexsub">an eclipse technology subproject</font>
        <br><br>
        <font class="indextop style2">New and Noteworthy</font><br>0.8.5 Stable Release</font>
        <br><br><br>
        Return to <a href="downloads.php">ECF download page</a></br>
        Return to <a href="comm_resources.php">ECF communication resources page</a>
        <br><br>
        <a href="NewAndNoteworthy_0.4.0.html">New and Noteworthy for 0.4.0</a><br>
        <a href="NewAndNoteworthy_0.5.2.html">New and Noteworthy for 0.5.2</a><br>
        <a href="NewAndNoteworthy_0.5.4.html">New and Noteworthy for 0.5.4</a><br>
        <a href="NewAndNoteworthy_0.6.0.html">New and Noteworthy for 0.6.0</a><br>
        <a href="NewAndNoteworthy_0.6.2.html">New and Noteworthy for 0.6.2</a><br>
        <a href="NewAndNoteworthy_0.7.0.html">New and Noteworthy for 0.7.0</a><br>
        <a href="NewAndNoteworthy_0.7.5.html">New and Noteworthy for 0.7.5</a><br>
        <a href="NewAndNoteworthy_0.7.6.html">New and Noteworthy for 0.7.6</a><br>
        <a href="NewAndNoteworthy_0.8.0.html">New and Noteworthy for 0.8.0</a><br>
        <a href="NewAndNoteworthy_0.8.1.html">New and Noteworthy for 0.8.1</a><br>
        <a href="NewAndNoteworthy_0.8.2.html">New and Noteworthy for 0.8.2</a><br>
        <a href="NewAndNoteworthy_0.8.4.html">New and Noteworthy for 0.8.4</a>
      </td>
      <td width="31%">
        <div align="center">
          <img src="../images/Idea.jpg" width="120" height="86" hspace="50" align="middle">
        </div>
      </td>
    </tr>
  </tbody>
</table>

<table>

  <TR> <!----------------------------------------------------->
    <TD colSpan=2> <HR> </TD>
  </TR>
  <TR><TD colSpan=2><H2>Remote Control via XMPP</H2></TD>

  <TR>
    <TD vAlign=top align=left width="30%">
        <P align=left>
	<B>Remotely Open Eclipse View Using XMPP/IM</B>
        </P>
    </TD>
    <TD vAlign=top width="70%">
      <p><br></p>
      <P>In <a href="NewAndNoteworthy_0.8.4.html">New and Noteworthy v0.8.4</a> a new example application was introduced showing how to create
      new protocols using XMPP ("Application-Defined Peer-to-Peer Protocols Using XMPP").  Using this capability, it is now possible to remotely
      show and Eclipse view via the ECF Roster View</p>
      <p>
      To remotely open an Eclipse view, select a buddy in the roster view and right click to open the context menu for that buddy.
      </p>
      <p>
      <img src="images/screens/soviewmsg1.png">
      </p>
      Then select a view from the list
      <p>
      <img src="images/screens/soviewmsg2.png">
      </p>
      Then select OK and it will then be opened on the remote user's ECF client.  If the remote user does not have an ECF client (i.e. using Google Talk, GAIM, or some
      other XMPP client, then the view open request will simply be ignored).
      <p>
     </TD>
  </TR>

</table>


</body>
</html>