<!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>1.0.0 Release Candidate 1</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.9.0.html">New and Noteworthy for 0.9.0</a><br>
        <a href="NewAndNoteworthy_0.9.1.html">New and Noteworthy for 0.9.1</a><br>
        <a href="NewAndNoteworthy_0.9.2.html">New and Noteworthy for 0.9.2</a><br>
        <a href="NewAndNoteworthy_0.9.3.html">New and Noteworthy for 0.9.3</a><br>
        <a href="NewAndNoteworthy_0.9.4.html">New and Noteworthy for 0.9.4</a><br>
        <a href="NewAndNoteworthy_0.9.5.html">New and Noteworthy for 0.9.5</a><br>
        <a href="NewAndNoteworthy_0.9.6.html">New and Noteworthy for 0.9.6</a><br>
        <a href="NewAndNoteworthy_1.0.0M5.html">New and Noteworthy for 1.0.0 Milestone 5</a><br>
        <a href="NewAndNoteworthy_1.0.0M6.html">New and Noteworthy for 1.0.0 Milestone 6</a><br>
        <a href="NewAndNoteworthy_1.0.0M7.html">New and Noteworthy for 1.0.0 Milestone 7</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>

<hr>

<table>
  <TR><TD colSpan=2><H2>User Interface</H2></TD>
  
  <TR>
  
    <TD vAlign=top align=left width="30%">
        <P align=left>
	<B>New icons and graphics</B>
        </P>
    </TD>
    <TD vAlign=top width="70%">
       See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=183015">bug #183015</a>
       <p></p>
           	            <img src="images/screens/rc1communicationsperspective.png">
       
       <br><br>
    </td>
  </TR>

  <TR>
    <TD vAlign=top align=left width="30%">
        <P align=left>
	<B>Click hyperlinks to communicate</B>
        </P>
    </TD>
    <TD vAlign=top width="70%">
       If the user is connected, when a hyperlink is clicked upon an IM session
       is started with the person given in the hyperlink.  For example,
       <p></p>
       // Click here to talk with me:  xmpps://fliwatuet@ecf.eclipse.org
       <p></p>
       when clicked upon, this hyperlink will start IM/Chat with fliwatuet@ecf.eclipse.org.  This allows embedding
       real-time communication sessions within source documents, text documents, etc.
       <p></p>
       See example below:
       <p></p>
       <img src="images/screens/hyperlinkchat1.png">
       <p></p>
       See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=187060">Bug #187060</a>.
       <br><br>
    </TD>
   </tr>

  <TR>
    <TD vAlign=top align=left width="30%">
        <P align=left>
	<B>Persistence for Login</B>
        </P>
    </TD>
    <TD vAlign=top width="70%">
       <p></p>
       <img src="images/screens/connectpersistence.png">
       <p></p>
       See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=181509">Bug #181509</a>.
       <br><br>
    </TD>
   </tr>


  <TR> <!----------------------------------------------------->
    <TD colSpan=2> <HR> </TD>
  </TR>
  

 <TR><TD colSpan=2><H2>ECF API Changes</H2></TD>

  <TR>
    <TD vAlign=top align=left width="30%">
        <P align=left>
	<B>Simplified APIs</B>
        </P>
    </TD>
    <TD vAlign=top width="70%">
       Clean up plugins <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=160633">org.eclipse.ecf.example.collab</a> and 
       <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=188412">org.eclipse.ecf.ui</a> plugins.
       <br><br>
    </TD>
   </tr>

</table>

</body>
</html>
