<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
   <title>Platform Text Component</title>
</head>
<body text="#000000" bgcolor="#FFFFFF">
&nbsp;
<table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" >
  <tr> 
    <td ALIGN=LEFT VALIGN=TOP COLSPAN="2" WIDTH="100%" BGCOLOR="#595791"><font face="Arial,Helvetica"><font color="#FFFFFF">Overall 
      Platform Text 2.1 Plan</font></font></td>
  </tr>
  <tr> 
    <td WIDTH="100%"> 
      <h4><a NAME="Overall_Planning"></a>The overal themes for Platform Text are: 
      </h4>
      <ul>
        <li> Increase editing comfort and usability&nbsp;</li>
        <li> Provide infrastructure for allowing custom editors to implement higher 
          level comfort functions&nbsp;</li>
        <li> Increase degree of configurability&nbsp;</li>
        <li> Bug fixing&nbsp;</li>
      </ul>
      <h4> Planned items:</h4>
      <ul>
        <li> Architectural issues&nbsp;</li>
        <ul>
          <li> <img SRC="ok.gif" height=10 width=10> move text into a separate 
            component&nbsp;</li>
          <li> <img SRC="ok.gif" height=10 width=10> allow the usage of the text 
            model without introducing dependencies on UI elements&nbsp;</li>
          <li> generalize JDT editor concepts and integrate them into Platform 
            Text&nbsp;</li>
          <ul>
            <li><img src="ok.gif" height=10 width=10> JDT painter support</li>
            <li> (JDT template engine with emphasis on separate linked position 
              support)</li>
          </ul>
        </ul>
        <li> <img src="ok.gif" height=10 width=10> Improve test infrastructure 
          and increase test coverage&nbsp;</li>
        <li> Customization&nbsp;</li>
        <ul>
          <li> <img SRC="ok.gif" height=10 width=10> Eating content assist infrastructure&nbsp;</li>
          <li> Resizable content assist, info popups, and hovers</li>
          <ul>
            <li> <img SRC="ok.gif" height=10 width=10> Win&nbsp;</li>
            <li> (GTK)</li>
          </ul>
          <li> (XML configurability (configuration dimensions as extension points, 
            UI for selecting one if only one can be active at one point in time))</li>
          <li> <img SRC="ok.gif" height=10 width=10> Allow for an open number 
            of content assists/information popups (different popups required such 
            as tables and trees)</li>
        </ul>
        <li> <img src="ok.gif" height=10 width=10> Default text editor</li>
        <ul>
          <li> line numbers</li>
          <li> preference page&nbsp;</li>
          <li> line highlighting (depends on generalized painter support)</li>
          <li> error indication (depends on generalized painter support)</li>
        </ul>
        <li> Presentation&nbsp;</li>
        <ul>
          <li> (support for highlighting a set of ranges (depends on generalized 
            painter support))</li>
          <li> folded documents</li>
          <ul>
            <li> <img SRC="ok.gif" height=10 width=10> document model</li>
            <li> &nbsp;(ruler - UI)&nbsp;</li>
          </ul>
        </ul>
        <li> Improved navigation and typing support</li>
        <ul>
          <li> <img SRC="ok.gif" height=10 width=10> smart home/end&nbsp;</li>
          <li> (anonymous bookmarks (overlap with Platform UI))</li>
          <li> (editor as drop target)</li>
          <li> <img SRC="ok.gif" height=10 width=10> allow custom editors to provide 
            the logic for smart paste</li>
          <li> <img SRC="ok.gif" height=10 width=10> jump to last edit position</li>
        </ul>
        <li> (Editors and none resources)</li>
        <ul>
          <li> open editor on a java.io.file rather than IFile&nbsp;</li>
          <li> support for more abstract editable source than IFile such as IEditableEditorInput</li>
        </ul>
        <li> <img SRC="ok.gif" height=10 width=10> validateEdit</li>
      </ul>
      <h4> Investigations</h4>
      <ul>
        <li> <img src="ok.gif" height=10 width=10> Generalization of JDT overview 
          ruler&nbsp;</li>
        <li> <img src="ok.gif" height=10 width=10> Unification and simplification 
          of painter and text presentation infrastructure&nbsp;</li>
        <li> <img src="ok.gif" height=10 width=10> Support for structure editing</li>
      </ul>
      <h4> Cross team issues with Platform Text involvement</h4>
      <ul>
        <li> <img SRC="ok.gif" height=10 width=10> Configurable key bindings</li>
        <li> <img SRC="ok.gif" height=10 width=10> Navigation history&nbsp;</li>
        <li> File encoding</li>
        <ul>
          <li> <img SRC="ok.gif" height=10 width=10> text internal solution</li>
        </ul>
      </ul>
    </td>
  </tr>
  <tr> 
    <td ALIGN=CENTER> 
      <table BORDER=0 CELLSPACING=5 CELLPADDING=0 >
        <tr> 
          <td><img SRC="progress.gif" height=5 width=16> item is under development&nbsp;</td>
          <td><img SRC="ok.gif" height=10 width=10> item is finished&nbsp;</td>
          <td>() item is time permitting</td>
        </tr>
      </table>
    </td>
  </tr>
</table>

<br>&nbsp;
</body>
</html>
