mwenz | 682b149 | 2010-12-15 07:42:58 +0000 | [diff] [blame] | 1 | <?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" /> |
mwenz | 4ed2fa2 | 2011-02-01 13:05:06 +0000 | [diff] [blame] | 8 | <title>Graphiti "New and Noteworthy"</title> |
mwenz | 682b149 | 2010-12-15 07:42:58 +0000 | [diff] [blame] | 9 | </head> |
| 10 | <body> |
| 11 | <h1>Graphiti "New and Noteworthy" for Indigo</h1> |
mwenz | 49c42a5 | 2011-05-05 07:33:27 +0000 | [diff] [blame] | 12 | <p>Last revised Mai 02, 2011</p> |
mwenz | 682b149 | 2010-12-15 07:42:58 +0000 | [diff] [blame] | 13 | <p>This document describes the new development topics that were |
| 14 | adressed during a milestone towards the release 0.8.0 within the Indigo |
| 15 | release train.</p> |
| 16 | |
| 17 | <table border="0" width="80%" cellpadding="10" cellspacing="0"> |
| 18 | <tr> |
| 19 | <td colspan="2"> |
mwenz | 4ed2fa2 | 2011-02-01 13:05:06 +0000 | [diff] [blame] | 20 | <hr style="color: grey; height: 5px" /> |
mwenz | e9d1cef | 2011-05-02 12:34:40 +0000 | [diff] [blame] | 21 | <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 |
cbrand | 3f43382 | 2011-05-03 07:36:31 +0000 | [diff] [blame] | 29 | undo/redo functionality for operations on non-EMF domain models. In |
mwenz | e9d1cef | 2011-05-02 12:34:40 +0000 | [diff] [blame] | 30 | 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 |
mwenz | 9016812 | 2011-05-24 10:17:58 +0000 | [diff] [blame^] | 49 | down or for code completion could only be identified by the String |
mwenz | e9d1cef | 2011-05-02 12:34:40 +0000 | [diff] [blame] | 50 | 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> |
mwenz | 9016812 | 2011-05-24 10:17:58 +0000 | [diff] [blame^] | 68 | <td width="70%" valign="top">It is now possible to register A |
mwenz | e9d1cef | 2011-05-02 12:34:40 +0000 | [diff] [blame] | 69 | 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" /> |
mwenz | 40f2171 | 2011-03-15 10:13:27 +0000 | [diff] [blame] | 99 | <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 |
mwenz | 9016812 | 2011-05-24 10:17:58 +0000 | [diff] [blame^] | 115 | available in the Sketch testtool in the tests folder in the |
mwenz | 40f2171 | 2011-03-15 10:13:27 +0000 | [diff] [blame] | 116 | 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 |
mwenz | 9016812 | 2011-05-24 10:17:58 +0000 | [diff] [blame^] | 138 | appropriate time by the tool. We decided explicitly against triggering |
| 139 | the migration from the framework, because there will definitely by |
mwenz | 40f2171 | 2011-03-15 10:13:27 +0000 | [diff] [blame] | 140 | 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 |
mwenz | e9d1cef | 2011-05-02 12:34:40 +0000 | [diff] [blame] | 155 | 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> |
mwenz | 40f2171 | 2011-03-15 10:13:27 +0000 | [diff] [blame] | 158 | </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 |
mwenz | 9016812 | 2011-05-24 10:17:58 +0000 | [diff] [blame^] | 183 | entry is created for them in the editor palette.</td> |
mwenz | 40f2171 | 2011-03-15 10:13:27 +0000 | [diff] [blame] | 184 | </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" /> |
mwenz | 4ed2fa2 | 2011-02-01 13:05:06 +0000 | [diff] [blame] | 223 | <h2><b>M5</b></h2> |
mwenz | 682b149 | 2010-12-15 07:42:58 +0000 | [diff] [blame] | 224 | <hr /> |
mwenz | 4ed2fa2 | 2011-02-01 13:05:06 +0000 | [diff] [blame] | 225 | </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> |
mwenz | 40f2171 | 2011-03-15 10:13:27 +0000 | [diff] [blame] | 278 | |
| 279 | |
mwenz | 4ed2fa2 | 2011-02-01 13:05:06 +0000 | [diff] [blame] | 280 | <tr> |
| 281 | <td colspan="2"> |
| 282 | <hr style="color: grey; height: 5px" /> |
| 283 | <h2><b>M4</b></h2> |
mwenz | 682b149 | 2010-12-15 07:42:58 +0000 | [diff] [blame] | 284 | <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> |