blob: 6c931d97030bfa9e4b9cd019fb9024e189bfeb8f [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<style type="text/css"> td {
border-top: solid thin black;
} tr {
vertical-align: top;
} tr td.section {
font-size: 20px;
font-weight: bold;
} tr td.title {
vertical-align: top;
width: 30%;
font-weight: bold;
} tr td.content {
vertical-align: top;
width: 70%;
<title>Graphiti &quot;New and Noteworthy&quot;</title>
<link href="book.css" rel="stylesheet" type="text/css">
<h1>Graphiti &quot;New and Noteworthy&quot; for Indigo</h1>
<p>Last revised Mai 02, 2011</p>
<p>This document describes the new development topics that were adressed during
a milestone towards the release 0.8.0 within the Indigo release train.</p>
<!-- --------------------------------- Table ----------------------------------------- -->
<table border="0" cellpadding="10" cellspacing="0" class="news" width="600">
<td id="Platform" class="section" colspan="2" rowspan="1" style="height: 44px">
<tr id="bug 324859">
<td class="title">Undo/Redo support for Non-EMF domain models</td>
<td class="content" colspan="1" rowspan="1">It is now possible to provide
undo/redo functionality for operations on non-EMF domain models. In order
to implement this, users of the Graphiti framework can implement the new
interface <em>ICustomUndoableFeature</em> with their features or the new
interface <em>ICustomUndoablePattern</em> with their patterns. If they do
so, the feature or pattern will be called as soon as an undo or redo is
performed for this feature. For details on this new possibility see
<a href="">Bugzilla
<tr id="bug 324058">
<td class="title">User selection context in IDirectEditing APIs</td>
<td class="content">So far the direct editing functionality in Graphiti
was purely String-based. Entries in the drop down or for code completion
could only be identified by the String they were also represented in the
UI to the user. Now it is possible to define and provide a proposal support
class based on the new interface <em>IProposalSupport</em> based on additional
information, e.g placed in the direct editing context. This can serve e.g.
tool builders having to deal with different objects that have the name,
like classes with the same name residing in different packages. For details
on this new possibility see
<a href="">Bugzilla
<tr id="bug 340708">
<td class="title">Double click for connections</td>
<td class="content">It is now possible to register A feature that will be
executed on double click on a connection. This was so far only possible
for shapes.</td>
<tr id="bugfixing and round-offs">
<td class="title">Round-offs and bugfixes</td>
<td class="content">Several smaller round-offs have been implemented:
<li>Visualization during direct editing now completely fulfills the
usability specification.</li>
<li>Opening a user-contributed editor within <em>AbstractDrillDownFeature</em>
has been made easier by providing a protected method to open and a specific
editor for a given diagram.</li>
<li>The framework is now prepared for users to deal with EMF objects
that are equal in the sense of <em>EMFUtil.equals</em> but are not identical.
For details on this new possibility see
<a href="">Bugzilla
Besides several bugs within the framework have been fixed.</td>
<tr id="bug 326396">
<td class="title">Connections on Connections</td>
<td class="content">It is now possible to attach connections to other connections.
The Graphiti metamodel offered this possibility already but the framework
support for this was still lacking. Now, one can define so-called connection
points to actually split existing connections. Technically these connection
points are possibly active shapes that can be selected, moved or deleted
as any other shape. As a tool builder you need to allow this new behavior
when the user tries to drop a connection either via a <em>CreateConnectionFeature</em>
or a <em>ReconnectConnectionFeature</em>. Example implementations are available
in the Sketch testtool in the tests folder in the Graphiti CVS.<br><br>&nbsp;<img alt="" height="503" src="" width="679"></td>
<tr id="bug 323358">
<td class="title"><b>Font Management</b></td>
<td class="content">Graphiti now manages the fonts that are used inside
a diagram just the way it was already done for colors. This feature was
introduced in order to improve the graphics handles usage and number of
classes instantiated; multiple uses of the same font will now lead to only
one instance of that font existing inside the diagram. Just as the colors
fonts are now managed at Diagram level and no longer on the individual graphical
elements. <b>Note: this is an minor incompatible change in the Graphiti
API you will need to adapt to!</b> There are no font creation methods any
more, instead you will need to call manageFont on the diagram. <b>Besides
diagrams that were created using Graphiti versions before 0.8.0 M6 will
need a migration</b> if tool defined fonts are used. The Graphiti framework
provides a small migration utility that can be triggered at an appropriate
time by the tool. We decided explicitly against triggering the migration
from the framework, because there will definitely by different requirements
on the time of triggering in the various tool scenarios. Besides there will
be tools that will need no migration at all and would be only suffer a time
penalty from that check and migration being done in the framework. More
details on the API change and the migrator can be found in the Bugzilla
<a href="">323358</a>.</td>
<tr id="bug 336075">
<td class="title">URIEditorInput</td>
<td class="content">The Graphiti DiagramEditor now accepts <em>URIEditorInput</em>
objects. They can be created outside the editor and the editor will care
about opening the corresponding diagram.</td>
<tr id="bug 329523">
<td class="title">Resource Saved Hook</td>
<td class="content">A new hook <em>resourcesSaved()</em> has been introduced
in the diagram type provider. It will be called by the framework right after
a diagram has been saved.</td>
<tr id="bug 336828">
<td class="title">Pattern Enhancements</td>
<td class="content">Graphiti patterns now allow the integration of delete,
remove and direct editing features. These functionalities before had to
be implemented within separate features. Besides the patterns now easily
allow to prevent that a creation tool entry is created for them in the editor
<tr id="bug 323155">
<td class="title">Printing and Saving as Image</td>
<td class="content">Graphiti supports printing and saving a diagram to an
image. There have always been hooks were the user can influence the default
behaviors for these operations. Nevertheless it was not clear if the way
this was enabled was really feasible. An investigation of the two features
that exist for those purposes (<em>DefaultPrintFeature</em> and <em>DefaultSaveImageFeature</em>)
showed that tool builders can rudimentary implement behavioral changes to
those features (like changing the selection in the editor), so it makes
sense to keep the implementations available. The existing state was documented
in the JavaDoc at the appropriate classes and methods and a not used property
in the save context was removed. This functionality might be subject to
further enhancement request as tools need more possibilities to influence
the behavior.</td>
<tr id="bugfixing">
<td class="title">Fixing of Bugs</td>
<td class="content">Some bugs in the area of anchor handling and drill down
features were fixed. Also, the used SUA was updated to the newest Indigo
<td colspan="2">
<tr id="bug 323359">
<td class="title">Globalization</td>
<td class="content">Graphiti now uses resource bundles for all its texts
and is ready to be translated.</td>
<tr id="bug 327669">
<td class="title">API Usages</td>
<td class="content">Graphiti now uses other projects only via their public
APIs. Usages of GEF internal stuff has been removed.</td>
<tr id="bug 332704">
<td class="title">Accessibility</td>
<td class="content">Graphiti now fully supports themes like the high contrast
mode to enable Accessibility for disabled users. Some gaps in presenting
selections and gradients were closed.</td>
<tr id="bug 326993">
<td class="title">Prevent Multiple Popups</td>
<td class="content">When deleting more than one object a confirmation popup
for each of the objects was presented to the user. This has been improved
so that the user has the option &quot;Yes for all&quot; available.</td>
<tr id="bugfixing">
<td class="title">Fixing of Bugs</td>
<td class="content">Some bugs especially in the area of the zoom animation,
ContextButtonPadData and grid alignment were fixed.</td>
<td colspan="2">
<tr id="bug 330230">
<td class="title">Indigo Release Train</td>
<td class="content">Graphiti declared its participation in the Indigo release
train. All project metadata settings were done and the project update site
is aggregated into the common Indigo milestones update site.</td>
<tr id="bug 330218">
<td class="title">Vector Graphics Export</td>
<td class="content">Diagrams can now be exported also in vector graphics
format (SVG). This is available from the save as dialog of a diagram editor
besides the traditional save as JPG, BMP etc.</td>
<tr id="FillGaps">
<td class="title">Filling of functional gaps</td>
<td class="content">Some functional gaps like missing services, automated
resizing for combo boxes, creation of color constants from RGB string etc.
were filled.</td>
<tr id="BugFixing">
<td class="title">Fixing of bugs</td>
<td class="content">Some bugs (especially in the area of refreshing the
diagram were fixed.</td>
<!-- ---------------------------------------- END OF TABLE ------------------------------- -->