| <!doctype html public "-//w3c//dtd html 4.0 transitional//en"> |
| <html> |
| <head> |
| <title>Eclipse Platform/Core</title> |
| <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
| <link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css"> |
| </head> |
| <body> |
| <center> |
| <font class=indextop>core</font><br> |
| <font class=indexsub>the foundation of the platform</font><p></p> |
| <a href="../../main.html">[home]</a> |
| <a href="../../documents.html">[documents]</a> |
| <a href="../../downloads.html">[downloads]</a> |
| <a href="../../resources.html">[resources]</a> |
| <a href="../../planning.html">[planning]</a> |
| <a href="../../testing.html">[testing]</a> |
| </center> |
| <br> |
| <table BORDER=0 CELLPADDING=2 WIDTH="100%" > |
| <tr> |
| <td ALIGN=LEFT VALIGN=TOP COLSPAN="2" BGCOLOR="#0080C0"><b><font face="Arial,Helvetica" color="#FFFFFF">Issues on the Radar</font></b></td> |
| </tr> |
| <tr><td colspan="2"> </td></tr> |
| <tr> |
| <td ALIGN=RIGHT VALIGN=TOP WIDTH="2%"><img SRC="../../images/Adarrow.gif" BORDER=0 height=16 width=16></td> |
| <td WIDTH="98%"><b>Property change listeners across scopes</b> |
| <p><u>Summary:</u> In the old code, clients registered property change listeners |
| so they would be notified when changes occurred to their preference value. Now |
| this becomes more complicated since we have multiple places (scopes) where the |
| preference values can be stored.</p> |
| <p>Right now clients must register preference change listeners on a per-node basis |
| where the preferences are stored in a tree and each first-level child of the |
| root is a sub-tree specific to a different preference scope. But at the client |
| level, they are more likely to be interested in all changes to a particular |
| preference, not just changes in a specific scope. If this is the case, clients |
| dont want to be concerned with adding a change listener to every node that |
| holds onto that preference. (See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=54392">bug |
| 54392</a>) </p><p> </p> |
| </td> |
| </tr> |
| <tr> |
| <td ALIGN=RIGHT VALIGN=TOP WIDTH="2%"><img SRC="../../images/Adarrow.gif" BORDER=0 height=16 width=16></td> |
| <td WIDTH="98%"><b>References to removed preference nodes</b> |
| <p><u>Summary:</u> Preference nodes are not handles (like with <code>java.io.File</code>) |
| and therefore the nodes can be removed while a client has a reference to one. |
| If API is called on a removed preference node, then an <code>IllegalStateException</code> |
| will be thrown. We need to consider what we can do to help clients. Perhaps |
| making a handle-like interface is best? (See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=54907">bug |
| 54907</a>)</p><p> </p> |
| </td> |
| </tr> |
| <tr> |
| <td ALIGN=RIGHT VALIGN=TOP WIDTH="2%"><img SRC="../../images/Adarrow.gif" BORDER=0 height=16 width=16></td> |
| <td WIDTH="98%"><b>Batched Event Processing</b> |
| <p><u>Summary:</u> In the case where there are a lot of preference change events happening in sucession, clients |
| are interested in receiving batch notification of these events. Fixing this will be tricky since we will have to |
| add new API to handle the batch requests but we don't want to break people who currently are expecting a single |
| event at a time. (See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=77144">bug 77144</a>)</p><p> </p> |
| </td> |
| </tr> |
| <tr> |
| <td ALIGN=RIGHT VALIGN=TOP WIDTH="2%"><img SRC="../../images/Adarrow.gif" BORDER=0 height=16 width=16></td> |
| <td WIDTH="98%"><b>Metadata associated with preferences</b> |
| <p><u>Summary:</u> There are certain types of information that needs to be associated with preferences. Some examples of information are: |
| <ul> |
| <li>The user-interface needs to know a human-readable name to display to the user.</li> |
| <li>The preference could be marked as read-only.</li> |
| <li>The preference could be non-exportable.</li> |
| <li>Preference groupings and dependencies.</li> |
| </ul> |
| |
| In essence, preferences need to have metadata associated with them. The problem is that Preferences are key/value pairs |
| on node objects and not real objects themselves. This means that we cannot store metadata directly with the preferences. What |
| we need is a way to store an association between preference keys and a group of metadata. Perhaps if the metadata itself was keyed |
| and we used the full path of the node+key, we could use this (path -> metadata object) reference as a base for |
| searching/storage of this information.</p><p> </p> |
| </td> |
| </tr> |
| <tr> |
| <td ALIGN=RIGHT VALIGN=TOP WIDTH="2%"><img SRC="../../images/Adarrow.gif" BORDER=0 height=16 width=16></td> |
| <td WIDTH="98%"><b>Change notification in the background</b> |
| <p><u>Summary:</u> We would like to move preference change notification |
| to the background to help prevent against bad client code. We have to |
| be careful though because there are existing clients who have change listeners |
| who are expecting the notifications to happen in the UI thread. In these |
| cases they are making UI changes and will get an Invalid Thread Access |
| error. (See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=77280">bug |
| 77280</a>)</p> |
| <p><u>Update:</u> Here is a <a href="background_notification.html">document</a> |
| describing the issues in more detail.</p> |
| <p> </p> |
| </td> |
| </tr> |
| <tr> |
| <td ALIGN=RIGHT VALIGN=TOP WIDTH="2%"><img SRC="../../images/Adarrow.gif" BORDER=0 height=16 width=16></td> |
| <td WIDTH="98%"><b>Import/Export APIs</b> |
| <p> |
| <u>Summary:</u> The new preference APIs allow plug-in developers to export on a per-node basis. This has |
| proved to be confusing to users. |
| </p><p> </p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| </body> |
| </html> |