blob: f8f332946b68ec42f8cb0731f716e274f1749fce [file] [log] [blame]
<!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">&nbsp;</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
don’t 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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</p>
</td>
</tr>
</table>
</body>
</html>