blob: 2bb2e28c05fcb8826e9aa077a92ba653b8400284 [file] [log] [blame]
mwenz682b1492010-12-15 07:42:58 +00001<?xml version="1.0" encoding="iso-8859-1"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml">
5<head>
6<meta http-equiv="Content-Language" content="en-us" />
7<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
mwenz4ed2fa22011-02-01 13:05:06 +00008<title>Graphiti &quot;New and Noteworthy&quot;</title>
mwenz682b1492010-12-15 07:42:58 +00009</head>
10<body>
11<h1>Graphiti &quot;New and Noteworthy&quot; for Indigo</h1>
mwenz49c42a52011-05-05 07:33:27 +000012<p>Last revised Mai 02, 2011</p>
mwenz682b1492010-12-15 07:42:58 +000013<p>This document describes the new development topics that were
14adressed during a milestone towards the release 0.8.0 within the Indigo
15release train.</p>
16
17<table border="0" width="80%" cellpadding="10" cellspacing="0">
18 <tr>
19 <td colspan="2">
mwenz4ed2fa22011-02-01 13:05:06 +000020 <hr style="color: grey; height: 5px" />
mwenze9d1cef2011-05-02 12:34:40 +000021 <h2><b>M7</b></h2>
22 <hr />
23 </td>
24 </tr>
25 <tr id="bug 324859">
26 <td width="30%" valign="top" align="left"><b>Undo/Redo
27 support for Non-EMF domain models</b></td>
28 <td width="70%" valign="top">It is now possible to provide
cbrand3f433822011-05-03 07:36:31 +000029 undo/redo functionality for operations on non-EMF domain models. In
mwenze9d1cef2011-05-02 12:34:40 +000030 order to implement this, users of the Graphiti framework can implement
31 the new interface <i>ICustomUndoableFeature</i> with their features or
32 the new interface <i>ICustomUndoablePattern</i> with their patterns.
33 If they do so, the feature or pattern will be called as soon as an
34 undo or redo is performed for this feature. For details on this new
35 possibility see <a
36 href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=324859">Bugzilla
37 324859</a>.</td>
38 </tr>
39 <tr>
40 <td colspan="2">
41 <hr />
42 </td>
43 </tr>
44 <tr id="bug 324058">
45 <td width="30%" valign="top" align="left"><b>User selection
46 context in IDirectEditing APIs</b></td>
47 <td width="70%" valign="top">So far the direct editing
48 functionality in Graphiti was purely String-based. Entries in the drop
mwenz90168122011-05-24 10:17:58 +000049 down or for code completion could only be identified by the String
mwenze9d1cef2011-05-02 12:34:40 +000050 they were also represented in the UI to the user. Now it is possible
51 to define and provide a proposal support class based on the new
52 interface <i>IProposalSupport</i> based on additional information, e.g
53 placed in the direct editing context. This can serve e.g. tool
54 builders having to deal with different objects that have the name,
55 like classes with the same name residing in different packages. For
56 details on this new possibility see <a
57 href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=324058">Bugzilla
58 324058</a>.</td>
59 </tr>
60 <tr>
61 <td colspan="2">
62 <hr />
63 </td>
64 </tr>
65 <tr id="bug 340708">
66 <td width="30%" valign="top" align="left"><b>Double click for
67 connections</b></td>
mwenz90168122011-05-24 10:17:58 +000068 <td width="70%" valign="top">It is now possible to register A
mwenze9d1cef2011-05-02 12:34:40 +000069 feature that will be executed on double click on a connection. This
70 was so far only possible for shapes.</td>
71 </tr>
72 <tr>
73 <td colspan="2">
74 <hr />
75 </td>
76 </tr>
77 <tr id="bugfixing and round-offs">
78 <td width="30%" valign="top" align="left"><b>Round-offs and
79 bugfixes</b></td>
80 <td width="70%" valign="top">Several smaller round-offs have been
81 implemented:
82 <ul>
83 <li>Visualization during direct editing now completely fulfills
84 the usability specification.</li>
85 <li>Opening a user-contributed editor within <i>AbstractDrillDownFeature</i>
86 has been made easier by providing a protected method to open and a
87 specific editor for a given diagram.</li>
88 <li>The framework is now prepared for users to deal with EMF
89 objects that are equal in the sense of <i>EMFUtil.equals</i> but are
90 not identical. For details on this new possibility see <a
91 href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=335828">Bugzilla
92 335828</a>.</li>
93 </ul>
94 Besides several bugs within the framework have been fixed.</td>
95 </tr>
96 <tr>
97 <td colspan="2">
98 <hr style="color: grey; height: 5px" />
mwenz40f21712011-03-15 10:13:27 +000099 <h2><b>M6</b></h2>
100 <hr />
101 </td>
102 </tr>
103 <tr id="bug 326396">
104 <td width="30%" valign="top" align="left"><b>Connections on
105 Connections</b></td>
106 <td width="70%" valign="top">It is now possible to attach
107 connections to other connections. The Graphiti metamodel offered this
108 possibility already but the framework support for this was still
109 lacking. Now, one can define so-called connection points to actually
110 split existing connections. Technically these connection points are
111 possibly active shapes that can be selected, moved or deleted as any
112 other shape. As a tool builder you need to allow this new behavior
113 when the user tries to drop a connection either via a <i>CreateConnectionFeature</i>
114 or a <i>ReconnectConnectionFeature</i>. Example implementations are
mwenz90168122011-05-24 10:17:58 +0000115 available in the Sketch testtool in the tests folder in the
mwenz40f21712011-03-15 10:13:27 +0000116 Graphiti CVS. <img src="images/NaNW-Indigo-M6-Connection.jpg" /></td>
117 </tr>
118 <tr>
119 <td colspan="2">
120 <hr />
121 </td>
122 </tr>
123 <tr id="bug 323358">
124 <td width="30%" valign="top" align="left"><b>Font Management</b></td>
125 <td width="70%" valign="top">Graphiti now manages the fonts that
126 are used inside a diagram just the way it was already done for colors.
127 This feature was introduced in order to improve the graphics handles
128 usage and number of classes instantiated; multiple uses of the same
129 font will now lead to only one instance of that font existing inside
130 the diagram. Just as the colors fonts are now managed at Diagram level
131 and no longer on the individual graphical elements. <b>Note: this
132 is an minor incompatible change in the Graphiti API you will need to
133 adapt to!</b> There are no font creation methods any more, instead you
134 will need to call manageFont on the diagram. <b>Besides diagrams
135 that were created using Graphiti versions before 0.8.0 M6 will need a
136 migration</b> if tool defined fonts are used. The Graphiti framework
137 provides a small migration utility that can be triggered at an
mwenz90168122011-05-24 10:17:58 +0000138 appropriate time by the tool. We decided explicitly against triggering
139 the migration from the framework, because there will definitely by
mwenz40f21712011-03-15 10:13:27 +0000140 different requirements on the time of triggering in the various tool
141 scenarios. Besides there will be tools that will need no migration at
142 all and would be only suffer a time penalty from that check and
143 migration being done in the framework. More details on the API change
144 and the migrator can be found in the Bugzilla <a
145 href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=323358">323358</a>.</td>
146 </tr>
147 <tr>
148 <td colspan="2">
149 <hr />
150 </td>
151 </tr>
152 <tr id="bug 336075">
153 <td width="30%" valign="top" align="left"><b>URIEditorInput</b></td>
154 <td width="70%" valign="top">The Graphiti DiagramEditor now
mwenze9d1cef2011-05-02 12:34:40 +0000155 accepts <i>URIEditorInput</i> objects. They can be created outside the
156 editor and the editor will care about opening the corresponding
157 diagram.</td>
mwenz40f21712011-03-15 10:13:27 +0000158 </tr>
159 <tr>
160 <td colspan="2">
161 <hr />
162 </td>
163 </tr>
164 <tr id="bug 329523">
165 <td width="30%" valign="top" align="left"><b>Resource Saved
166 Hook</b></td>
167 <td width="70%" valign="top">A new hook <i>resourcesSaved()</i>
168 has been introduced in the diagram type provider. It will be called by
169 the framework right after a diagram has been saved.</td>
170 </tr>
171 <tr>
172 <td colspan="2">
173 <hr />
174 </td>
175 </tr>
176 <tr id="bug 336828">
177 <td width="30%" valign="top" align="left"><b>Pattern
178 Enhancements</b></td>
179 <td width="70%" valign="top">Graphiti patterns now allow the
180 integration of delete, remove and direct editing features. These
181 functionalities before had to be implemented within separate features.
182 Besides the patterns now easily allow to prevent that a creation tool
mwenz90168122011-05-24 10:17:58 +0000183 entry is created for them in the editor palette.</td>
mwenz40f21712011-03-15 10:13:27 +0000184 </tr>
185 <tr>
186 <td colspan="2">
187 <hr />
188 </td>
189 </tr>
190 <tr id="bug 323155">
191 <td width="30%" valign="top" align="left"><b>Printing and
192 Saving as Image</b></td>
193 <td width="70%" valign="top">Graphiti supports printing and
194 saving a diagram to an image. There have always been hooks were the
195 user can influence the default behaviors for these operations.
196 Nevertheless it was not clear if the way this was enabled was really
197 feasible. An investigation of the two features that exist for those
198 purposes (<i>DefaultPrintFeature</i> and <i>DefaultSaveImageFeature</i>)
199 showed that tool builders can rudimentary implement behavioral changes
200 to those features (like changing the selection in the editor), so it
201 makes sense to keep the implementations available. The existing state
202 was documented in the JavaDoc at the appropriate classes and methods
203 and a not used property in the save context was removed. This
204 functionality might be subject to further enhancement request as tools
205 need more possibilities to influence the behavior.</td>
206 </tr>
207 <tr>
208 <td colspan="2">
209 <hr />
210 </td>
211 </tr>
212 <tr id="bugfixing">
213 <td width="30%" valign="top" align="left"><b>Fixing of Bugs</b></td>
214 <td width="70%" valign="top">Some bugs in the area of anchor
215 handling and drill down features were fixed. Also, the used SUA was
216 updated to the newest Indigo version.</td>
217 </tr>
218
219
220 <tr>
221 <td colspan="2">
222 <hr style="color: grey; height: 5px" />
mwenz4ed2fa22011-02-01 13:05:06 +0000223 <h2><b>M5</b></h2>
mwenz682b1492010-12-15 07:42:58 +0000224 <hr />
mwenz4ed2fa22011-02-01 13:05:06 +0000225 </td>
226 </tr>
227 <tr id="bug 323359">
228 <td width="30%" valign="top" align="left"><b>Globalization</b></td>
229 <td width="70%" valign="top">Graphiti now uses resource bundles
230 for all its texts and is ready to be translated.</td>
231 </tr>
232 <tr>
233 <td colspan="2">
234 <hr />
235 </td>
236 </tr>
237 <tr id="bug 327669">
238 <td width="30%" valign="top" align="left"><b>API Usages</b></td>
239 <td width="70%" valign="top">Graphiti now uses other projects
240 only via their public APIs. Usages of GEF internal stuff has been
241 removed.</td>
242 </tr>
243 <tr>
244 <td colspan="2">
245 <hr />
246 </td>
247 </tr>
248 <tr id="bug 332704">
249 <td width="30%" valign="top" align="left"><b>Accessibility</b></td>
250 <td width="70%" valign="top">Graphiti now fully supports themes
251 like the high contrast mode to enable Accessibility for disabled
252 users. Some gaps in presenting selections and gradients were closed.</td>
253 </tr>
254 <tr>
255 <td colspan="2">
256 <hr />
257 </td>
258 </tr>
259 <tr id="bug 326993">
260 <td width="30%" valign="top" align="left"><b>Prevent Multiple
261 Popups</b></td>
262 <td width="70%" valign="top">When deleting more than one object a
263 confirmation popup for each of the objects was presented to the user.
264 This has been improved so that the user has the option "Yes for all"
265 available.</td>
266 </tr>
267 <tr>
268 <td colspan="2">
269 <hr />
270 </td>
271 </tr>
272 <tr id="bugfixing">
273 <td width="30%" valign="top" align="left"><b>Fixing of Bugs</b></td>
274 <td width="70%" valign="top">Some bugs especially in the area of
275 the zoom animation, ContextButtonPadData and grid alignment were
276 fixed.</td>
277 </tr>
mwenz40f21712011-03-15 10:13:27 +0000278
279
mwenz4ed2fa22011-02-01 13:05:06 +0000280 <tr>
281 <td colspan="2">
282 <hr style="color: grey; height: 5px" />
283 <h2><b>M4</b></h2>
mwenz682b1492010-12-15 07:42:58 +0000284 <hr />
285 </td>
286 </tr>
287 <tr id="bug 330230">
288 <td width="30%" valign="top" align="left"><b>Indigo Release
289 Train</b></td>
290 <td width="70%" valign="top">Graphiti declared its participation
291 in the Indigo release train. All project metadata settings were done
292 and the project update site is aggregated into the common Indigo
293 milestones update site.</td>
294 </tr>
295 <tr>
296 <td colspan="2">
297 <hr />
298 </td>
299 </tr>
300 <tr id="bug 330218">
301 <td width="30%" valign="top" align="left"><b>Vector Graphics
302 Export</b></td>
303 <td width="70%" valign="top">Diagrams can now be exported also in
304 vector graphics format (SVG). This is available from the save as
305 dialog of a diagram editor besides the traditional save as JPG, BMP
306 etc.</td>
307 </tr>
308 <tr>
309 <td colspan="2">
310 <hr />
311 </td>
312 </tr>
313 <tr id="FillGaps">
314 <td width="30%" valign="top" align="left"><b>Filling of
315 functional gaps</b></td>
316 <td width="70%" valign="top">Some functional gaps like missing
317 services, automated resizing for combo boxes, creation of color
318 constants from RGB string etc. were filled.</td>
319 </tr>
320 <tr>
321 <td colspan="2">
322 <hr />
323 </td>
324 </tr>
325 <tr id="BugFixing">
326 <td width="30%" valign="top" align="left"><b>Fixing of bugs</b></td>
327 <td width="70%" valign="top">Some bugs (especially in the area of
328 refreshing the diagram were fixed.</td>
329 </tr>
330 <tr>
331 <td colspan="2">
332 <hr />
333 </td>
334 </tr>
335</table>
336</body>
337</html>