Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between pages "Graphical Modeling Framework/Tutorial/Part 1" and "Polish3.2"

< Graphical Modeling Framework‎ | Tutorial(Difference between pages)
m (Tooling Definition)
 
 
Line 1: Line 1:
=== Warning: this tutorial is undergoing an update to 1.0M5 of GMF ===
+
<h1>3.2 Polish Items<br>
 +
</h1>
 +
<p><small><i>Last update: March 15, 2006 (Changes since March 13, 2006 in <font
 +
  color="#33cc00"><b>green</b></font>. New entries in Team and JDT UI)</i><br>
 +
  </small></p>
 +
<p><font color="#00FF00"><strong><em>New additions in green.</em></strong></font></p>
 +
<p><small><font color="#FF0000"><strong>Entries in RED have been fixed.</strong></font></small></p>
 +
<p><strong><font color="#0000FF">Entries in BLUE are not in the plan for 3.2</font></strong></p>
 +
<p><small><br>
 +
  </small> So far, I have received input from the Search, Platform/JDT Text, JDT
 +
  Core, JDT UI, and Debug teams. This document contains a summary of that feedback.
 +
  The items are listed by component, but are otherwise in no particular order.
 +
  <br>
 +
</p>
 +
<h2>General / All</h2>
 +
<table border="1" cellpadding="2" cellspacing="2" width="100%">
 +
 
 +
    <tr>
 +
      <th width="10%">Bugzilla</th>
 +
      <th>Description</th>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="10%"></td>
 +
      <td>Do we need a new splash screen? <em><strong><font color="#00FF00">MVM asking designers to investigate in light of new welcome as well.</font></strong></em></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="10%"></td>
 +
      <td>Update keywords for searching preference pages. I.e. verify that all the new preferences are covered.</td>
 +
    </tr>
 +
</table>
 +
<br>
 +
<h2>Platform Runtime</h2>
 +
<table border="1" cellpadding="2" cellspacing="2" width="100%">
 +
    <tr>
 +
      <th width="10%">Bugzilla</th>
 +
      <th>Description</th>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=128178 128178]</td>
 +
      <td>[Workbench] earlyStartup does not work in runtime eclipse with binary-imported plugins</td>
 +
    </tr>
 +
</table>
  
This tutorial will introduce the Graphical Modeling Framework ([http://www.eclipse.org/gmf GMF]), an Eclipse Technology subproject which aims to provide a generative bridge between the Eclipse Modeling Framework ([http://www.eclipse.org/emf EMF]) and Graphical Editing Framework ([http://www.eclipse.org/gef GEF]). In this tutorial, a mindmap application will be developed, as described here. This tutorial describes the functionality provided by GMF in its current state, using this build ([http://download.eclipse.org/technology/gmf/downloads/drops/S-1.0M5-200603031600/index.php 1.0M5]). It is expected that this tutorial will evolve with GMF to introduce new functionality as it is developed.
+
<h2>Platform Compare</h2>
 +
<table border="1" cellpadding="2" cellspacing="2" width="100%">
 +
    <tr>
 +
      <th width="10%">Bugzilla</th>
 +
      <th>Description</th>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="10%">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=78063 78063]</td>
 +
      <td>Full Javadoc line selected even though only a character has been added to a word</td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="10%">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=68758 68758]
 +
      </td>
 +
      <td>Structured Compare: selected added element not part of selection</td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=128362 128362]</td>
 +
      <td>[Patch] Creating patch from compare in between versions/revisions</td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=118021 118021]</td>
 +
      <td>Structured compare not available with additions or deletions</td>
 +
    </tr>
 +
    <tr>
 +
      <td><p> [https://bugs.eclipse.org/bugs/show_bug.cgi?id=112661 <font color="#00FF00">112661</font>]
 +
          (bugs logged by mvm previously)</p>
 +
        <p><font color="#00FF00"> [https://bugs.eclipse.org/bugs/show_bug.cgi?id=132693 132693]</font></p></td>
 +
      <td>Cleanup UI of Create/Apply Patch wizards (follow Eclipse UI guidelines):<br>
 +
      <ul>
 +
        <li>button sizes</li>
 +
        <li>caption</li>
 +
        <li>margins</li>
 +
        <li>mnemonics (missing)</li>
 +
        <li>polish all descriptions and messages</li>
 +
        <li>Match Project... button launches dialog called Retarget
 +
        Patch (inconsistent)</li>
 +
      </ul>
 +
      </td>
 +
    </tr>
 +
 
 +
</table>
 +
<br>
 +
<ul></ul>
 +
<h2>Platform CVS</h2>
 +
<table border="1" cellpadding="2" cellspacing="2" width="100%">
 +
    <tr>
 +
      <th width="10%">Bugzilla</th>
 +
      <th>Description</th>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="10%"><strong><font color="#FF0000">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=112927 112927]</font></strong></td>
 +
      <td><strong><font color="#FF0000">[performance] Update CVS workspace job takes too long</font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td></td>
 +
      <td>See also " [#too_may_password">too many passwords]" in the Platform UI section below.</td>
 +
    </tr>
 +
</table>
 +
<br>
 +
<h2>Platform Help</h2>
 +
<table border="1" cellpadding="2" cellspacing="2" width="100%">
 +
    <tr>
 +
      <th width="10%">Bugzilla</th>
 +
      <th>Description</th>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="10%"></td>
 +
      <td>New help support should be improved (2 votes):<br>
 +
      <ul>
 +
        <li>Help button should be on the side where the help shows up. Should stay pushed, and a release should close the help view again</li>
 +
        <li>dialogs without help should better not get the help button</li>
 +
        <li>clicking on a link should directly open the help browser as the space next to the dialog is always too small</li>
 +
      </ul>
 +
      </td>
 +
    </tr>
 +
 
 +
</table>
 +
<br>
 +
<h2>Platform SWT</h2>
 +
<table border="1" cellpadding="2" cellspacing="2" width="100%">
 +
    <tr>
 +
      <th width="10%">Bugzilla</th>
 +
      <th>Description</th>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="10%">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=95634 95634]</td>
 +
      <td>[Tree] TreeColumn does not show "..." on cut-off Text and misses tooltips</td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="10%"></td>
 +
      <td>I know I'm dreaming, but: styled ranges inside a tree item (Font/colors etc for e.g. a word inside the full label) would be a boost</td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right"> [https://bugs.eclipse.org/bugs/show_bug.cgi?id=125702 125702]</td>
 +
      <td><font color="#000000">If you collapse a tree on a recent version of GTK+, a big block of whitespace appears at the bottom. It's very irritating.</font></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right"><p> [https://bugs.eclipse.org/bugs/show_bug.cgi?id=123425 123425]</p>
 +
        <p> [https://bugs.freedesktop.org/show_bug.cgi?id=5200 5200]</p></td>
 +
      <td><font color="#000000">There's also the &quot;festival of carets&quot; bug. This is immediately noticeable to        anyone using a recent GTK+, and it makes us look bad. Unfortunately, it appears to be a bug somewhere in the Cairo/Pango/glib/GTK+ stack specific to the FPU mode (which the Java VM modifies on start-up). This bug is bad and will be hard to track down. We need to do work if we want to see this fixed; we can't just say &quot;It's their problem&quot;.</font></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right"></td>
 +
      <td>&nbsp;</td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right"></td>
 +
      <td>&nbsp;</td>
 +
    </tr>
 +
 
 +
</table>
 +
<br>
 +
<h2>Platform Team</h2>
 +
<table border="1" cellpadding="2" cellspacing="2" width="100%">
 +
 
 +
    <tr>
 +
      <th width="10%">Bugzilla</th>
 +
      <th>Description</th>
 +
    </tr>
 +
    <tr>
 +
      <td></td>
 +
      <td>Need a general polish pass on new History view filtering and user interactions. The bugs below are examples...</td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="10%">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=125860 125860]</td>
 +
      <td><font color="#FF0000"><strong>New history view: filter is not persisted - no way to constantly ignore local history</strong></font></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="10%">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=129916 129916]</td>
 +
      <td><font color="#FF0000"><strong>Per date sorting in History view forced on me upon ever input change</strong></font></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">&nbsp;</td>
 +
      <td><p><font color="#00FF00"><strong>MOVED FROM UI</strong></font></p>
 +
        <p>There are sometimes <a name="too_may_password">]too many password dialogs:<br>
 +
        </p>
 +
        <ul>
 +
          <li>If I'm trying to work off-line but have CVS projects in workspace, it can happen that you get lots of dialogs to ask for the password as the CVS decorators each need that password. Clicking cancel once should be enough to let them know that I'm not interested in entering the password now.</li>
 +
          <li>It would be nice to have a less intrusive way of asking for passwords. Idea is e.g. a status line icon similar to the progress view that blinks when a passwords are pending. Clicking on this icon brings a 'authentication view' that shows that status of all passwords: passed, failed, canceled, and lets me trying to connect again.</li>
 +
        </ul></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=130408 130408]</td>
 +
      <td><font color="#FF0000"><strong>Should be able to export psfs to the workspace
 +
        (2 votes)</strong></font></td>
 +
    </tr>
 +
 
 +
</table>
 +
<br>
 +
<h2>Platform Text</h2>
 +
<table border="1" cellpadding="2" cellspacing="2" width="100%">
 +
 
 +
    <tr>
 +
      <th width="10%">Bugzilla</th>
 +
      <th>Description</th>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="10%">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=11624 11624]</td>
 +
      <td><strong><font color="#0000FF">Text Drag and Drop (has many bug votes)</font></strong><br>
 +
      <ul>
 +
        <li>depends on StyledText support ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=106372 NEW - Provide DND support for the StyledText widget 106372]),
 +
        which is now marked as FIXED.</li>
 +
      </ul>
 +
      <p>In order to resolve this we first need to put the grounds for drag and drop contributions
 +
      to editors, otherwise clients contributing some sort of DnD will get broken.
 +
      This is covered in [https://bugs.eclipse.org/bugs/show_bug.cgi?id=125957 bug 125957] and won't make it into 3.2.</p></td>
 +
    </tr>
 +
</table>
 +
<br>
  
== Overview of GMF ==
+
<h2>Platform UI</h2>
The use of both EMF and GEF for building Eclipse-based functionality is quite common. Many references below provide information on how to utilize these frameworks together, some of which inspired the GMF project itself. Before diving into a new GMF project, let's explore a little of how GMF approaches the task of utilizing EMF and GEF in a generative manner. Another article focusing on the runtime portion of GMF is found [http://www.eclipse.org/articles/Article-Introducing-GMF/article.html here].
+
<table border="1" cellpadding="2" cellspacing="2" width="100%">
 +
 
 +
    <tr>
 +
      <th width="12%">Bugzilla</th>
 +
      <th width="88%">Description</th>
 +
    </tr>
 +
    <tr>
 +
      <td align="right"> [https://bugs.eclipse.org/bugs/show_bug.cgi?id=119890 119890]</td>
 +
      <td> <p><strong><font color="#0000FF">[ViewMgmt] Allow control of view tab compression
 +
          </font></strong></p>
 +
        <p><font color="#000000">- this was changed in 3.2 and need to decide if we like it</font></p></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right"> [https://bugs.eclipse.org/bugs/show_bug.cgi?id=100993 100993]</td>
 +
      <td><font color="#000000">[EditorMgmt][Presentations] Regression: Editor tabs do not remember order or active tab after restarting Eclipse</font>
 +
      <p><strong><font color="#00FF00">Investigating</font></strong></p></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right"> [https://bugs.eclipse.org/bugs/show_bug.cgi?id=128455 128455]</td>
 +
      <td> <strong><font color="#FF0000">[Presentation] [ViewBar] Outline view toolbar is visible above a maximized editor</font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right"> [https://bugs.eclipse.org/bugs/show_bug.cgi?id=131559 131559]</td>
 +
      <td> <font color="#FF0000"><strong>[Markers] Layout of marker filters dialog</strong></font></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right"> [https://bugs.eclipse.org/bugs/show_bug.cgi?id=129936 129936]</td>
 +
      <td><strong><font color="#0000FF">[ViewMgmt] View part description label should wrap</font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right"> [https://bugs.eclipse.org/bugs/show_bug.cgi?id=125691 125691]</td>
 +
      <td> <font color="#0000FF">[ViewMgmt] Can't read view titles</font></td>
 +
    </tr>
 +
    <tr>
 +
      <td height="38" align="right"> [https://bugs.eclipse.org/bugs/show_bug.cgi?id=68684 68684]</td>
 +
      <td><strong><font color="#0000FF"><strong>Remove MRU Ordering from the editors.</strong></font></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right"> [https://bugs.eclipse.org/bugs/show_bug.cgi?id=113455 113455]</td>
 +
      <td><strong><font color="#FF0000">Some errors do not appear in the Problems view. This happens very frequently for me (multi-processor box, GTK+) if I have grouping turned on.</font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right"> [https://bugs.eclipse.org/bugs/show_bug.cgi?id=130818 130818]</td>
 +
      <td><strong><font color="#FF0000">Filters do not seem to apply when grouping by Java type (Problems view).<br>
 +
        </font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">&nbsp;</td>
 +
      <td>&nbsp;</td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="12%">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=126155 126155]</td>
 +
      <td><font color="#FF0000"><strong>[Markers] Issues of multi quick fix dialog</strong></font></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="12%">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=122639 122639]</td>
 +
      <td>[WorkbenchParts] PageBookView's toolbar doesn't properly re-layout after page switching</td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=128670 128670]</td>
 +
      <td><font color="#FF0000"><strong>[Dialogs] StatusDialog adds 2 horizontal margins around button bar</strong></font></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=127629 127629]</td>
 +
      <td><font color="#FF0000"><strong>[Markers] problems view: keep selection stable</strong></font></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=128381 128381], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=128381 128381]</td>
 +
      <td><strong><font color="#FF0000">[Markers] group should only show (10 of 10 items) if beyond the limit</font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=129812 129812]</td>
 +
      <td><strong><font color="#FF0000">[Markers] Enabling problem categorization per default</font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=129184 129184]</td>
 +
      <td><strong><font color="#FF0000">Progress view should be made more prominent</font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=127289 127289]</td>
 +
      <td><strong><font color="#FF0000">[Markers] SystemFilter and group selection
 +
        state not preserved</font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right"><strong><font color="#0000FF">see suggestions in bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=109998 109998]</font></strong></td>
 +
      <td><strong><font color="#0000FF">Experimental (?) Keys preference page (3 votes):<br> <ul>
 +
          <li>what do we do with the two pages?</li>
 +
          <li>sorting by keys, by commands and by scope [https://bugs.eclipse.org/bugs/show_bug.cgi?id=109998 109998]</li>
 +
          <li>see which keys are free and which commands are not used</li>
 +
          <li>Platform UI team is investigating what can/can not be done about this without Doug around</li>
 +
        </ul></font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td></td>
 +
      <td>Finish the preferences clean up effort from 3.0:<br>
 +
        <ul>
 +
          <li><strong><font color="#FF0000">decorator preference pages should offer a link to decorators</li>
 +
          <li>font / color preferences should use shared settings so it is also possible to configure the color and font decoration for CVS on the CVS page</font></strong></li>
 +
          <li><strong><font color="#00FF00">UI - please provide a bug for this so we can track polish</font></strong></li>
 +
        </ul></td>
 +
    </tr>
 +
    <tr>
 +
      <td></td>
 +
      <td><strong><font color="#0000FF">Improve the look of the filter control (preferences, other dialogs):<br>
 +
        <ul>
 +
          <li>the text field seems unaligned as long as there is no 'clear' button</li>
 +
          <li>either dump the 'clear' button, or add it as a lay-over over the text field:</li>
 +
          <ul>
 +
            <li>For example,&nbsp;in Thunderbird (mozilla mail client), they added a magnifying glass inside the text field (Good visual indication what this field is about) and the clear button ('x', is IMO a better icon than what we have) is inside the text field when applicable. Even better is the help text&nbsp;in light gray.</li>
 +
            <li><strong><font color="#00FF00">UI - please provide a bug for this so we
 +
              can track polish</font></strong></li>
 +
          </ul>
 +
        </ul></font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td></td>
 +
      <td><p>The fast view icon looks like a bug, as the lower right corner is missing. For all the icons on the fast view bar, it isn't obvious what they do. They should be more "inviting" to click on. Maybe some extra adornment in the icon like an arrow that points in the direction they will open. The tooltip should also show the keyboard shortcut.</p>
 +
        <p><strong><font color="#FF0000">New icon is being requested, no other
 +
          work decided at this point</font></strong></p>
 +
        <p><strong><font color="#00FF00">UI - please provide a bug for this so we can
 +
          track polish</font></strong></p></td>
 +
    </tr>
 +
    <tr>
 +
      <td></td>
 +
      <td>&nbsp;</td>
 +
    </tr>
 +
</table>
  
The GMF project has adopted the term 'toolsmith' to refer to developers that use GMF to build plug-ins, while 'user' is typically refered to those who utilize said plug-ins, and who may also be developers. From a usability perspective, the number and types of 'models' utilized by GMF internally should be hidden to the greatest extent possible. However, it is likely that most toolsmiths are interested in knowing what is going on under the covers, so a description of each model is presented in this tutorial.
+
<h2>JDT Core</h2>
 +
<table border="1" cellpadding="2" cellspacing="2" width="100%">
 +
 
 +
    <tr>
 +
      <th width="10%">Bugzilla</th>
 +
      <th>Description</th>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="10%">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=108087 108087]</td>
 +
      <td><strong><font color="#FF0000">Java conventions default formatter settings
 +
        confused</font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="10%">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=118217 118217]</td>
 +
      <td><p>Change 'unused parameters' warning to only work on private or final methods to avoid false positives.</p></td>
 +
    </tr>
 +
 
 +
</table>
  
[[Image:overview.png|frame|right|GMF Overview]]
 
  
This is a diagram that illustrates the main components and models used during GMF-based development. Core to GMF is the concept of a graphical definition model. This model contains information related to the graphical elements that will appear in a GEF-based runtime, but have no direct connection to the domain models for which they will provide representation and editing. An optional tooling definition model is used to design the palette and other periphery (overview, zoom, etc.).
 
  
It is expected that a graphical or tooling definition may work equally well for several domains. For example, the UML class diagram has many counterparts, all of which are strikingly similar in their basic appearance and structure. A goal of GMF is to allow the graphical definition to be reused for several domains. This is achieved by using a separate mapping model to link the graphical and tooling definitions to the selected domain model(s).
+
<h2>JDT Debug</h2>
 +
<table border="1" cellpadding="2" cellspacing="2" width="100%">
 +
 
 +
    <tr>
 +
      <th width="10%">Bugzilla</th>
 +
      <th>Description</th>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="10%"><strong><font color="#0000FF"> [https://bugs.eclipse.org/bugs/show_bug.cgi?id=128074 128074]</font></strong></td>
 +
      <td><strong><font color="#0000FF">Cannot format stack trace</font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=123589 123589]</td>
 +
      <td>Unexpected switch to empty editor when using scrapbook</td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=123588 123588]</td>
 +
      <td>Loosing key binding in scrapbook page</td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=130534 130534]</td>
 +
      <td><strong><font color="#FF0000">add a "collapse all" to the tree's toolbar</font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=128558 128558]</td>
 +
      <td>support variables in port and host fields of Remote Java Applications</td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=77125 77125]</td>
 +
      <td><strong><font color="#FF0000">preference for determing how Java breakpoints
 +
        are created - to suspend thread or entire VM</font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=125768 125768]</td>
 +
      <td>Support to display breakpoints in rulers of external edtiors:<br> <ul>
 +
          <li>ideally, there would be support for markers in external files from text/platform, but we might be able to do something here <i><b>(not sure how much work this is)</b></i></li>
 +
          <li>since we support breakpoints in external files, and the editor now supports a ruler in external files, we really should make the two work together</li>
 +
        </ul></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=80746 80746]</td>
 +
      <td><font color="#0000FF"><strong>filter exceptions in anonymous classes of X when filtered on X</strong></font></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=89474 89474]</td>
 +
      <td><strong><font color="#FF0000">support to edit attributes of multiple archives at once</font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=110837 110837]</td>
 +
      <td><strong><font color="#FF0000">properly specify bootpath when launching to avoid problems with crypto applications</font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td></td>
 +
      <td>Columns in Variables/Registers view:<br>
 +
        <ul>
 +
          <li>We've added support to the debug platform for columns in debug views</li>
 +
          <li>We want to add support for columns in the java debugger as an optional presentation (we've started this already)</li>
 +
          <li><font color="#00FF00">DEBUG - please provide a bug for this so we can track polish</font></li>
 +
        </ul></td>
 +
    </tr>
 +
    <tr>
 +
      <td></td>
 +
      <td>Undo/Redo:<br>
 +
        <ul>
 +
          <li>We don't currently support undo/redo in the Scrapbook or Display view, which has made a few users angry</li>
 +
          <li><font color="#00FF00">DEBUG - please provide a bug for this so we can track polish</font></li>
 +
        </ul></td>
 +
    </tr>
 +
</table>
 +
<br>
 +
<h2>JDT Text</h2>
 +
<table border="1" cellpadding="2" cellspacing="2" width="100%">
 +
 
 +
    <tr>
 +
      <th width="10%">Bugzilla</th>
 +
      <th>Description</th>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="10%">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=95619 95619]</td>
 +
      <td><strong><font color="#FF0000">[5.0][content assist] Function parameter assist does not work with some parameterized types</font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="10%">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=92371 92371]</td>
 +
      <td><strong><font color="#FF0000">[content assist] Parameter guessing could also propose
 +
      expressions for parameters of array types</font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=41189 41189]</td>
 +
      <td><strong><font color="#FF0000">[hovering] Editor tooltip size too small
 +
        for title text (3 votes)</font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=125677 125677]</td>
 +
      <td><strong><font color="#FF0000">[navigation] @category not standing out enough in Java Outline view</font></strong></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=91500 91500]</td>
 +
      <td><strong><font color="#FF0000">Improve the NLS tooling, especially existing hover and linking features to Eclipse string externalization support (2 votes)</font></strong></td>
 +
    </tr>
 +
 
 +
</table>
 +
<h2>JDT UI</h2>
 +
<table border="1" cellpadding="2" cellspacing="2" width="100%">
 +
    <tr>
 +
      <th width="10%">Bugzilla</th>
 +
      <th>Description</th>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="10%">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=129929 129929]</td>
 +
      <td>IDE no longer responsive when JUnit tests are running</td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="10%">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=129925 129925]</td>
 +
      <td>[JUnit view] Hierarchical+failures should not show more than just failures</td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=130106 130106]</td>
 +
      <td><font color="#FF0000">[junit] Hierarchical mode sometimes show testcase in progress
 +
      and sometimes not</font></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=130107 130107]</td>
 +
      <td><font color="#FF0000">[junit view] Hierarchical mode not properly rebuilding the
 +
      tree</font></td>
 +
    </tr>
 +
    <tr>
 +
      <td align="right" width="10%">
 +
        <p>[https://bugs.eclipse.org/bugs/show_bug.cgi?id=136572 136572]</p>
 +
        <p>[https://bugs.eclipse.org/bugs/show_bug.cgi?id=134078 134078]</p>
 +
        <p>[https://bugs.eclipse.org/bugs/show_bug.cgi?id=134305 134305]</p>
 +
      </td>
 +
      <td>Polish the Clean Up support (2 votes):<br>
 +
        <ul>
 +
          <li><font color="#FF0000">Clean Up with focus on current file forces me to save other resources? This is particularly annoying when the resource is a text scratch file.</font></li>
 +
          <li><font color="#0000FF">Clean Up should also offer to format the code.</font></li>
 +
          <li><font color="#FF0000">The wizard needs polish.</font></li>
 +
        </ul>
 +
      </td>
 +
    </tr>
 +
    <tr>
 +
      <td></td>
 +
      <td><p><font color="#0000FF">New Java Perspective (old one becomes the 'Classic Java Perspective')</font></p>
 +
        </td>
 +
    </tr>
 +
    <tr>
  
Once the appropriate mappings are defined, GMF provides a generator model to allow implementation details to be defined for the generation phase. The production of an editor plug-in based on the generator model will target a final model; that is, the diagram runtime (or "notation") model. The runtime will bridge the notation and domain model(s) when a user is working with a diagram, and also provides for the persistence and synchronization of both. An important aspect of this runtime is that it provides a services-based approach to EMF and GEF functionality and is able to be leveraged by non-generated applications.
+
      <td align="right" width="10%">
 
+
        <p>[https://bugs.eclipse.org/bugs/show_bug.cgi?id=119259 119259]</p>
With the basics of GMF covered, let's now walk through the process of using GMF in the development of a graphical editing surface for a particular domain. First, you will need to install GMF and its dependencies.
+
      </td>
<br style="clear:both;"/>
+
      <td><font color="#FF0000">provide a way to get fully qualified class name into clipboard
 
+
      </font></td>
== Setup ==
+
    </tr>
This version of the tutorial was written using this build of GMF ([http://download.eclipse.org/technology/gmf/downloads/drops/S-1.0M5-200603031600/index.php 1.0M5]). Note that the prerequisites are listed on the build page, which must be installed prior to installing GMF, either from the [http://download.eclipse.org/technology/gmf/downloads download] page, or from the update manager [http://download.eclipse.org/technology/gmf/update-site/index.html site]. The TaiPan example referenced below is maintained in CVS and should remain functional with the latest builds of GMF, even if the tutorial is not quite up-to-date.
+
    <tr>
 
+
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=108256 108256]</td>
==== Quick Start ====
+
      <td><font color="#FF0000">[refactoring] [ltk] Refactoring preview does not correctly highlight 5.0 code [refactoring]</font></td>
[[Image:checkout.png|right]]
+
    </tr>
If you're anxious to see GMF in action, check out the Taipan example projects into your workspace from CVS by switching to the CVS Repository Exploring perspective and adding a repository location as shown in the image to the right. Otherwise, you can skip to the next section.
+
    <tr>
 
+
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=122527 122527]</td>
Navigate to /HEAD/org.eclipse.gmf/examples and select the three org.eclipse.gmf.examples.taipan.* modules. Right-click and select Check Out. If you are not using the latest build and prerequisites of GMF, you can always check out the version of the Taipan by date to correspond with the version you're using. The important point is that you'll need to work with synchronized versions of the GMF SDK and the Taipan example. To do this, after checkout you can right-click on the projects and selecting 'Team | Switch to Another Branch or Version...' and then choose 'Select the tag from the following list' and use the 'Add Date...' button at the bottom to enter the date of the GMF 1.0M5 release (03 Mar 2006). Press Finish and you're set.
+
      <td><font color="#0000FF">[build path] Offer a SWT container in JDT</font></td>
 
+
    </tr>
Switch to the Plug-in Development perspective and open the models folder within the org.eclipse.gmf.examples.taipan project. Explore each of the models found here, particularly the taipan.gmfgraph and taipan.gmfmap models and their element properties.
+
    <tr>
 
+
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=135279 135279]</td>
We will look at each of the models in turn during the tutorial, but just to validate your configuration, you should be able to run this sample in a runtime workspace (simply accept the defaults for a new 'Eclipse Application' run configuration). In the runtime workspace, create an empty project and a new 'TaiPan Diagram' found in the Examples folder of the New dialog. Name it whatever you wish and click Finish. The generated diagram editor should open for you to explore. Some things to note in particular are:
+
      <td><font color="#FF0000">[refactoring] improve order of refactoring actions</font></td>
 
+
    </tr>
:* tool palette and overview
+
    <tr>
:* layout and selection tools
+
      <td align="right">[https://bugs.eclipse.org/bugs/show_bug.cgi?id=135285 135285]</td>
:* diagram image export (svg, bmp, jpeg, gif)
+
      <td><font color="#FF0000">[source actions] improve order of source actions</font></td>
:* tabbed properties view
+
    </tr>
:* font and color options for selected element
+
</table>
:* link routing and style options
+
:* pop-up bars and connection handles
+
:* notes and geometric shapes
+
:* animated zoom and layout
+
:* diagram printing
+
 
+
[[Image:taipan_diagram.png|center]]
+
 
+
This concludes the quick start portion of this tutorial. What follows next is a more detailed look at each of the models shown above during the creation of a mindmap modeling surface.
+
 
+
==== A New Project ====
+
 
+
As described [http://www.eclipse.org/gmf/requirements.php#scenarios here], one of the usage scenarios for GMF includes producing a graphical surface for a mindmap application, to be complemented with an alternative view of its temporal information (likely a Gantt chart). This section of the tutorial will demonstrate GMF's capabilities toward this end, and will continue to evolve as the project matures. If you'd prefer to follow along using a set of projects representing the complete solution to this tutorial, you can find a zip of them [http://www.eclipse.org/gmf/tutorial/mindmap.zip here].
+
 
+
[[Image:cheatsheet_project.png|right]]
+
 
+
New to GMF is a Tutorial Cheat Sheet found under 'Help | Cheat Sheets...' If you open this cheat sheet and follow through each step, you can accomplish most of this first tutorial segment, while taking advantage of some actions that will launch and pre-populate wizards to get you started.  Try this now to create your new project.
+
 
+
Alternatively, you can begin by creating an "New GMF Project" found under 'Graphical Modeling Framework' in the New dialog (Ctrl+N). Name the project 'org.eclipse.gmf.examples.mindmap' and create a new folder named 'model' in its root.
+
 
+
<br style="clear:both;"/>
+
 
+
== Domain Model Definition ==
+
 
+
Although it may seem necessary to begin with the domain model, it is not in the case with GMF, as the diagram definition is maintained separate from the domain. However, we will begin with the domain in the tutorial as it is likely familiar to most, and will allow us to jumpstart our diagram definition from the domain model using a wizard in the next section.
+
 
+
A basic domain model for our mindmap is found [http://www.eclipse.org/gmf/tutorial/mindmap.ecore here]. Copy this file into your 'model' folder and feel free to examine the model, if you wish. GMF provides a (bootstrapped) graphical editor to complement the standard EMF generated editors. In order to use the GMF Ecore editor, you will need to install the GMF Examples feature. To render the mindmap.ecore (or any *.ecore model) with the editor, simply right-click the file and select 'Initialize ecore_diagram diagram file' from the menu. The next step is to layout the diagram using the 'Arrange All' action.
+
 
+
[[Image:domain.png|frame|center|Mindmap domain model]]
+
 
+
To continue, create a new mindmap.genmodel from the mindmap.ecore file using the New > Eclipse Modeling Framework > EMF Model wizard. You may wish to change the 'Base Package' property for the genmodel's 'Mindmap' package to org.eclipse.gmf.examples to have your generated packaging match the project name. These steps are also covered in the next step of the cheat sheet.
+
 
+
<blockquote>
+
<font color="darkblue">'''Tip''' :</font> Be sure to give your genmodel file the same name as your domain model (i.e. both mindmap.*), as GMF currently expects this naming convention to identify the genmodel for the mapped domain model.
+
</blockquote>
+
 
+
Generate the model and edit code using the right-click menu available from the root of the generator model. There is no need to create an editor or tests, but you are welcome to do so if you'd like. Now, we're ready to begin creating the graphical and mapping definitions for our mindmap application.
+
 
+
== Graphical Definition ==
+
[[Image:graphical-thumbnail.png|frame|right|thumbnail|Graphical Definition Model, view in  [[Media:graphical.png|actual size]].]]
+
A graphical definition model is used to define the figures, nodes, links, etc. that you will display on your diagram. The model you will work with to do this is seen at the right.
+
 
+
Continuing on with the next step in the cheat sheet, we will create a new graphical definition model. The cheat sheet will launch the GMFGraph Model wizard, which is found in the Graphical Modeling Framework folder of the New (Ctrl + N) dialog. Select the 'model' folder under your org.eclipse.gmf.examples.mindmap project for the mindmap.gmfgraph model, and on the next page of the wizard use 'Browse' to locate your mindmap.ecore file.
+
 
+
On the last page of the wizard, select a minimal set of element, link, and label options for our Topic class as shown in the image. Later on, feel free to experiment with this wizard and observe its output.  For now, we're just interested in getting a minimal set of models to get started. Click 'Finish' to complete.
+
 
+
If you examine the model, you will find a Canvas at the root with a Figure gallery containing basic Rectangle, Label, and Polyline Connection elements. These are used by corresponding Node, Diagram Label, and Connection  elements to represent our Topics from the domain model. We can leave the defaults as-is for now and continue with our tooling definition in the next step of the cheat sheet.
+
 
+
[[Image:cheatsheet_graph.png]]
+
<br style="clear:both;"/>
+
<blockquote>
+
<font color="darkblue">'''Tip''' :</font> There are several figure galleries intended for reuse and included with GMF. You can load these into your *.gmfgraph model (or *.gmfmap model) by using "Load Resource..." and entering <code>platform:/plugin/org.eclipse.gmf.graphdef/models/basic.gmfgraph</code> for the Resource URI. Others available include <code>classDiagram.gmfgraph</code> and <code>stateDiagram.gmfgraph</code>.
+
</blockquote>
+
 
+
== Tooling Definition ==
+
[[Image:tooling-thumbnail.png|frame|right|thumbnail|Tooling Definition Model, view in  [[Media:tooling.png|actual size]].]]
+
As mentioned above, the tooling definition model is used to specify the palette, creation tools, actions, etc. for your graphical elements. To the right is a diagram of the model.
+
 
+
The cheat sheet will guide you through a very similar process for getting started with our Tooling definition model. In fact, the two steps are virtually identical, as the mindmap domain model is loaded and examined for possible tooling needs. We will simply select the same options we did for the graphical definition and begin with a very simple palette for our Topic elements.
+
<br style="clear:both;"/>
+
[[Image:cheatsheet_tool.png]]
+
<br style="clear:both;"/>
+
Looking at the model provided for us, we see there is a top-level 'Tool Registry' element, under which we find a Palette. The palette contains a Tool Group with Creation Tool elements for both Topic nodes and links for subtopic elements that were identified by the wizard. We will reorganize these and modify them a bit in the future, but for now we'll leave the defaults and move on to the mapping definition. Feel free to browse this model and inspect its properties to familiarize yourself with tooling definitions.
+
 
+
== Mapping Definition ==
+
[[Image:mapping-thumbnail.png|frame|right|thumbnail|Mapping Definition Model, view in  [[Media:mapping.png|actual size]].]]
+
 
+
The mapping definition model will let us bind the three models we have so far: the domain, the graphical definition, and the tooling definition.  To the right is an image of this model.
+
 
+
Right-click on the model folder again, and select 'New > Other... > EMF Model Creation Wizards > GMFMap Model' from the New dialog. Give it the name 'mindmap.gmfmap' and select 'Mapping' for the Model Object.
+
 
+
<br style="clear:both;"/>
+
 
+
[[Image:load_resource.png|right]]
+
 
+
In order to map between the graphical definition model and the domain model, you'll need to load these resources into the editor (a wizard will eventually replace this step when creating mapping models in the future). Right-click in the editor of mindmap.gmfmap and select 'Load Resource...' to bring up the selection dialog. Using the 'Browse Workspace...' option, select your mindmap.ecore, mindmap.gmfgraph, and mindmap.gmftool models before closing the 'Load Resource' dialog.
+
<br style="clear:both;"/>
+
[[Image:canvas_mapping.png|right]]
+
 
+
<br/>
+
Now, we can map between diagram elements and domain elements, and assign a tool for creation of elements to the palette. First, select the root 'Mapping' element and right-click to create a 'New Child > Canvas Mapping' element. Configure its properties as shown in the image here:
+
 
+
Before moving on, let's pause to describe the mappings. In the case of the 'Diagram Canvas' property under 'Visual representation,' it's straightforward as the only option should be for our 'Canvas MindmapDiagram'. For the 'Domain Model' property under 'Domain meta information', we want to define mappings on this canvas for those elements found in the 'EPackage mindmap' domain model, although the list will also provide you with an 'ecore' option. 'Element' is the property we need to assign to a domain element that will represent the diagram itself. From the list, select 'EClass Map' to indicate that an instance of our Map is represented by a new diagram. Finally, under 'Misc' we see that our 'Palette' from the tooling definition is mapped to the 'Pallete' element under 'Misc'.
+
 
+
<br style="clear:both;"/>
+
 
+
[[Image:node_mapping.png|right]]
+
 
+
We only have a single node to map so far. Right-click on the Canvas Mapping element and select 'New Sibling > Node Mapping' and again set its properties to the values shown here:
+
 
+
Now, to explain the node mappings. The 'Diagram Node' maps easily to our only node from the graphical definition, 'Node TopicNode'. For its 'Tool' property, we select the 'Creation Tool Topic' from our tooling definition model. The 'Domain meta information > Element' in this case maps to the 'EClass Topic' as you'd expect, with its 'EAttribute name' mapped to the 'Edit Feature' property. Thus, when working with instances of Topic classes in our domain model, which are represented as instances of TopicNode elements on our diagram, the label of the graphical elements will be represented by the name attribute of the domain model class. Finally, the 'Containment Feature' is mapped to the element in the domain model which holds the instances of these new Topic classes, which in our case is the 'EReference topics' attribute of our Map class.
+
 
+
<br style="clear:both;"/>
+
 
+
<blockquote>
+
<font color="darkblue">'''Tip''' :</font> Note that it is important to select the proper element when defining mappings at this stage; that is, before GMF does the proper filtering and validation. A good way to ensure you have selected the element you intended (as several may have the same name), open the mapping definition (*.gmfmap) file in a text editor.
+
</blockquote>
+
 
+
== Code Generation ==
+
[[Image:generation-thumbnail.png|frame|right|thumbnail|Generation Model, view in  [[Media:generation.png|actual size]].]]
+
The last model to cover in this tutorial, and the one that is not as critical to understand at this point, is the GMF generator model. See the diagram to the right if you're interested in examining this model.
+
 
+
Now that the minimal graphical elements and mappings are defined, we can generate the code needed to test our work so far. To accomplish this, we will first create a generator model (*.gmfgen) in order to set the properties for code generation, similar to the familiar EMF genmodel. To accomplish this, right-click the mapping file and select 'Create generator model...' as shown below. When prompted, keep the default name 'mindmap.gmfgen'.
+
 
+
<blockquote>
+
<font color="darkblue">'''Tip''' :</font> You'll need to have your Java | Compiler | JDK Compliance settings to 1.4 (including Generated .class files compatibility and Source compatibility) when working with GMF.
+
</blockquote>
+
 
+
<br style="clear:both;"/>
+
 
+
[[Image:create_gmfgen.png|right]]
+
 
+
Now, we can examine the generator model to see what it includes (if you're the curious type). We'll keep all the default values for now and right-click the mindmap.gmfgen file and select 'Generate diagram code' to proceed. If all goes well, you will see a "Code generation completed successfully." message dialog. Dismiss the dialog, opting to never see it again, and notice the new org.eclipse.gmf.examples.mindmap.gmf.editor plug-in in your workspace.
+
 
+
Up to this point, the model used have been fairly straightforward to use and understand.  The transformation that takes place to create the generator model (*.gmfgen) from the mapping model involves a bit of logic that is important to understand.  However, it is not required to understand this detail at this point in the tutorial, so additional information can be found [[GMF_GenModel|here]] for those interested.
+
<br style="clear:both;"/>
+
 
+
== Running the Diagram ==
+
[[Image:notation-thumbnail.png|frame|right|thumbnail|Notation Model, view in  [[Media:notation.png|actual size]].]]
+
Recall that it is the notation model that the runtime uses to display and persist the graphical components for your diagram. An image of this model is linked here for those interested.
+
 
+
Now that we have generated the plug-in needed for our diagram, let's launch a new runtime workspace and test the diagram. The default settings of a new Eclipse Application runtime configuration should work fine, while you may opt to run a minimal configuration that includes only your generated plug-ins and their runtime dependencies within an org.eclipse.platform.ide configuration.
+
 
+
Create an empty project and invoke the New... dialog (Ctrl+N). Under 'Examples' you'll notice your new Mindmap Diagram. Create a new diagram and explore its functionality, and look for the creation of the domain model instance as you add and save diagram elements. Of course, we've only specified enough in our diagram definition to allow for simple Topic elements. Next, we'll look at how to add connections and compartments...
+
 
+
[[Image:basic_mindmap.png|center]]
+
 
+
== Compartments and Connections ==
+
[[Image:comment.png|right]]
+
Let's return to our diagram definition and add a compartment to our TopicNode to allow for Comment elements to be added. First, add a new child for Comment elements to the Canvas by adding a 'New Child > Child' and name it CommentChild. For its Figure, select your new 'BasicRectangle'. Now we need to add a Compartment to hold the CommentChild elements. To do this, right-click on the Canvas element and select 'New Child > Compartment'. In the properties view, give it a name 'CommentCompartment'. Target your BasicRectangle figure by selecting it for the 'Figure' property.
+
<br style="clear:both;"/>
+
 
+
[[Image:compartment.png|right]]
+
 
+
While we're here, let's go ahead and add a Connection element, as we'd like to indicate a subtopic relationship between Topic nodes on our diagram. In the Figure Gallery, add a new 'Polyline Connection' with a simple 'BasicLine' name and adjust the other properties as you see fit. Add the link we'll need between topics by right-clicking on the Canvas element and selecting 'New Child > Connection'. Give it the name 'TopicLink', selecting our new BasicLine from the gallery.
+
<br style="clear:both;"/>
+
 
+
[[Image:link_mapping.png|right]]
+
 
+
Now, reopen the mapping model so that we can associate this new link and compartment with our domain elements and assign them tooling. Begin by right-clicking on the Mapping element and selecting 'New Child > Link Mapping'. Fill in the Link Mapping's properties in accordance with the image below, and also add a Creation Tool child element:
+
<br style="clear:both;"/>
+
 
+
 
+
In this case, the mapping is rather simple. The 'Diagram Link' maps to our only 'Connection' element, 'TopicLink'. The 'Domain meta information > Target Feature' is required and maps to the 'EReference subtopics' element, meaning that the target of the connection (another Topic element) will be added to this reference list within the source Topic. Finally, our Tool used for creating the links is mapped to the 'Creation Tool TopicSubtopics' element from our tooling definition.
+
 
+
<blockquote>
+
<font color="darkblue">'''Tip''' :</font> A level of validation is available for mapping definitions and will take place prior to creation of the generator model. For example, remove the mapping for 'Target Feature' on a Link Mapping and attempt to create the mindmap.gmfgen model. When you do, you will receive an error message indicating that the property is required.
+
</blockquote>
+
 
+
[[Image:compartment_mapping.png|right]]
+
 
+
To explain the mappings, starting with the properties of the 'Compartment Mapping' element, we see that 'Visual representation > Compartment' maps to our only option, 'Compartment Mapping <CommentCompartment>'. The property 'Misc > Child Nodes' was filled in for us when we selected 'CommentCompartment' for the 'Misc > Compartment' property of the 'Child Node Mapping'.
+
 
+
Let's now look at the remainder of its mappings, as shown above. The domain model element 'EClass Comment' is selected for the 'Domain meta information > Element', with its 'EAttribute body' selected for the 'Edit Feature'. As with the Topic mappings described above, this is simply saying that elements of the Comment compartment are representations of Comment domain model instances in a diagram, with their 'body' attribute displaying as the element's editable field in the compartment. The 'Containment Feature' maps to the 'EReference comments' element, as new Comments added to the compartment will be added to this list held within a Topic. Finally, the 'Diagram Node' itself and its 'Tool' map as you would expect to the 'Child CommentChild' and 'Creation Tool Comment' elements, respectively.
+
 
+
<blockquote>
+
<font color="darkblue">'''Tip''' :</font> Don't forget to assign a 'Tool' for your mapped diagram elements!
+
</blockquote>
+
 
+
<br style="clear:both;"/>
+
 
+
[[Image:complink.png|center]]
+
<br style="clear:both;"/>
+
 
+
Now we're ready to regenerate the mindmap.gmfgen model and the code for our plug-in. Do this as before and test the new compartment and connection capabilities for the diagram.
+
<br style="clear:both;"/>
+
 
+
<blockquote>
+
<font color="darkblue">'''Tip''' :</font> Try this: if you'd like to create a diagram from an existing instance of a domain model, right-click the file and select 'Initialize xxx diagram file' where 'xxx' represents your domain_diagram editor extension. Note that an 'Arrange all' is likely your next step.
+
</blockquote>
+
 
+
== Constraints ==
+
[[Image:link2self.png|right]]
+
 
+
Currently, the diagram will allow you to make a subtopic link from one Topic to itself, as seen below. Clearly, this does not make sense for our Mindmap, so we'd like to prevent this somehow.
+
 
+
<blockquote>
+
<font color="darkblue">'''Tip''' :</font> Before continuing on with this section, be sure you have copied the antlr.jar file into the 'lib' folder of the plug-in, as referenced on the download page for GMF. The OCL capabilities are temporarily dependent on ANTLR, which is not bundled with GMF. Also, note that the EMF Technology (EMFT) project now has downloads and more information on the OCL and model validation components [http://www.eclipse.org/emft here].
+
</blockquote>
+
<br style="clear:both;"/>
+
[[Image:link_constraint.png|right]]
+
 
+
Let's return to our mapping definition, and to the 'Link Mapping' we created earlier. To add a constraint, we begin by right-clicking on the 'Link Mapping' and selecting 'New Child > Link Constraints'. To the Link Constraint, right-click and select 'New Child > Source End Constraint'. The 'Language' property defaults to 'ocl' and we'll need to add the following OCL statement to the 'Body' property: self <> oppositeEnd, as seen in the image below. Then, go through the usual regeneration of mindmap.gmfgen and diagram code and try it out. You will no longer be able to make a link from a Topic to itself.
+
 
+
So, now to explain what is happening here. As you can tell from the context above, we've added a constraint to the creation of a link, based on its source end; that is, the Topic element from which a link is being created. In the OCL we've specified the only condition that will evaluate to true, and therefore allow the link to be created, is the condition where the source element is not equal to the 'oppositeEnd' of the link (the target). In this case, the context of 'self' is the source Topic, and 'oppositeEnd' is a custom variable added to the parser environment for link constraints.
+
 
+
Clearly, this is a very simple constraint, and one that could very well have been defined in the domain model itself and respected by the graphical editor automatically. We will look more closely at constraints in future versions of this tutorial as support for their use matures.
+
<br style="clear:both;"/>
+
 
+
== Another Connection ==
+
[[Image:dependency_link_def.png|right]]
+
Let's look now at the 'Relationship' element of our domain model. It specifies a number of possible relationships that may be indicated between Topic elements, in addition to the subtopic relationship we have supported thus far. We will add support for this type of Connection, as it will illustrate more completely the properties available for a Link Mapping within GMF.
+
 
+
Returning to our graphical definition model (mindmap.gmfgraph), let's right-click on our gallery and add a 'New Child > Polyline Connection'. Name it 'DependencyLine' and change 'Line Kind' to LINE_DASH. Then add a 'New Child > Target Decoration Polyline Decoration' element to the DependencyLine and name it 'ArrowDecoration'. Now, create a corresponding Connection within our Canvas named 'DependencyLink', selecting our 'DependencyLink' as its 'Figure'.
+
<br style="clear:both;"/>
+
 
+
[[Image:dependency_link_mapping.png|right]]
+
In the mapping definition, create a new 'Link Mapping' and fill in its properties to match what's here:
+
 
+
In this mapping, we'll start with the 'Domain meta information > Element' property. It represents the element represented by this link in the domain, which is simply the 'EClass Relationship' element. Recall that in our previous link mapping, we left this and other properties blank. In that case, our target element for the link was represented by an element (Topic) added to a list of reference held in our source element (also a Topic). In this case, the link is represented in the domain by a class of its own, so more information is required in the link mapping. This class, the Relationship class of the domain model, is contained in a list of references in the Map element, which explains the 'Domain meta feature > Containment Feature' map to 'EReference relations'.
+
 
+
Continuing the mapping description, the 'Label Display Feature' and 'Label Edit Feature' are both mapped to the 'EAttribute label' feature of the Relationship class. The 'Target Feature' in this case is mapped to the 'EReference target' domain model element, indicating that targets of the link are added to this list in the domain when the link is created. Similarly, the 'Source Meta Feature' maps to the 'EReference source' domain model element. And of course, we have our straightforward tool mapping.
+
 
+
<br style="clear:both;"/>
+
 
+
Now, we can regenerate our diagram code as before, launch our diagram workspace and test this new link. Below is an example of the results:
+
 
+
[[Image:dependency_link.png|center]]
+
 
+
== Summary ==
+
As you have seen, using GMF as a means by which to get started creating graphical editors for your domain models is fairly straightforward. We have seen how creating a graphical definition and a mapping definition to the chosen domain can be used to generate much of the basic functionality expected in an EMF/GEF-based editor. In the future, GMF will mature and include more advance capabilities, so check back to see how this tutorial matures along with the project. In the meantime, if you've skipped over links that provide more detail on certain aspects of GMF, now may be the time to do so. Otherwise, feel free to continue with the [[GMF_Tutorial_Part_2|GMF Tutorial Part 2]].
+
 
+
== References ==
+
* [http://www.eclipse.org/gmf Graphical Modeling Framework Website]
+
 
+
* [http://publib-b.boulder.ibm.com/Redbooks.nsf/RedbookAbstracts/sg246302.html Eclipse Development using the Graphical Editing Framework and the Eclipse Modeling Framework], IBM Redbook
+
 
+
* [http://www.eclipse.org/emf/docs.php EMF Documentation]
+
 
+
* [http://eclipse.org/emf/docs.php?doc=tutorials/clibmod/clibmod.html Generating an EMF Model]
+
 
+
* [http://sourceforge.net/projects/merlingenerator/ Merlin Homepage]
+
 
+
* [http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.gef.examples.ediagram/?cvsroot=Tools_Project EDiagram Example Source]
+
 
+
* [http://www.eclipse.org/articles/Article-GEF-EMF/gef-emf.html Using GEF with EMF], Eclipse Corner Article
+
 
+
* [http://www.eclipse.org/emft EMF Technology project]
+
 
+
* [http://www.omg.org/docs/ptc/03-10-14.pdf OCL Specification]
+

Revision as of 11:17, 20 April 2006

3.2 Polish Items

Last update: March 15, 2006 (Changes since March 13, 2006 in green. New entries in Team and JDT UI)

New additions in green.

Entries in RED have been fixed.

Entries in BLUE are not in the plan for 3.2


So far, I have received input from the Search, Platform/JDT Text, JDT Core, JDT UI, and Debug teams. This document contains a summary of that feedback. The items are listed by component, but are otherwise in no particular order.

General / All

Bugzilla Description
Do we need a new splash screen? MVM asking designers to investigate in light of new welcome as well.
Update keywords for searching preference pages. I.e. verify that all the new preferences are covered.


Platform Runtime

Bugzilla Description
128178 [Workbench] earlyStartup does not work in runtime eclipse with binary-imported plugins

Platform Compare

Bugzilla Description
78063 Full Javadoc line selected even though only a character has been added to a word
68758 Structured Compare: selected added element not part of selection
128362 [Patch] Creating patch from compare in between versions/revisions
118021 Structured compare not available with additions or deletions

112661 (bugs logged by mvm previously)

132693

Cleanup UI of Create/Apply Patch wizards (follow Eclipse UI guidelines):
  • button sizes
  • caption
  • margins
  • mnemonics (missing)
  • polish all descriptions and messages
  • Match Project... button launches dialog called Retarget Patch (inconsistent)


    Platform CVS

    Bugzilla Description
    112927 [performance] Update CVS workspace job takes too long
    See also " [#too_may_password">too many passwords]" in the Platform UI section below.


    Platform Help

    Bugzilla Description
    New help support should be improved (2 votes):
    • Help button should be on the side where the help shows up. Should stay pushed, and a release should close the help view again
    • dialogs without help should better not get the help button
    • clicking on a link should directly open the help browser as the space next to the dialog is always too small


    Platform SWT

    Bugzilla Description
    95634 [Tree] TreeColumn does not show "..." on cut-off Text and misses tooltips
    I know I'm dreaming, but: styled ranges inside a tree item (Font/colors etc for e.g. a word inside the full label) would be a boost
    125702 If you collapse a tree on a recent version of GTK+, a big block of whitespace appears at the bottom. It's very irritating.

    123425

    5200

    There's also the "festival of carets" bug. This is immediately noticeable to anyone using a recent GTK+, and it makes us look bad. Unfortunately, it appears to be a bug somewhere in the Cairo/Pango/glib/GTK+ stack specific to the FPU mode (which the Java VM modifies on start-up). This bug is bad and will be hard to track down. We need to do work if we want to see this fixed; we can't just say "It's their problem".
     
     


    Platform Team

    Bugzilla Description
    Need a general polish pass on new History view filtering and user interactions. The bugs below are examples...
    125860 New history view: filter is not persisted - no way to constantly ignore local history
    129916 Per date sorting in History view forced on me upon ever input change
     

    MOVED FROM UI

    There are sometimes <a name="too_may_password">]too many password dialogs:

    • If I'm trying to work off-line but have CVS projects in workspace, it can happen that you get lots of dialogs to ask for the password as the CVS decorators each need that password. Clicking cancel once should be enough to let them know that I'm not interested in entering the password now.
    • It would be nice to have a less intrusive way of asking for passwords. Idea is e.g. a status line icon similar to the progress view that blinks when a passwords are pending. Clicking on this icon brings a 'authentication view' that shows that status of all passwords: passed, failed, canceled, and lets me trying to connect again.
    130408 Should be able to export psfs to the workspace (2 votes)


    Platform Text

    Bugzilla Description
    11624 Text Drag and Drop (has many bug votes)

    In order to resolve this we first need to put the grounds for drag and drop contributions to editors, otherwise clients contributing some sort of DnD will get broken. This is covered in bug 125957 and won't make it into 3.2.


    Platform UI

    Bugzilla Description
    119890

    [ViewMgmt] Allow control of view tab compression

    - this was changed in 3.2 and need to decide if we like it

    100993 [EditorMgmt][Presentations] Regression: Editor tabs do not remember order or active tab after restarting Eclipse

    Investigating

    128455 [Presentation] [ViewBar] Outline view toolbar is visible above a maximized editor
    131559 [Markers] Layout of marker filters dialog
    129936 [ViewMgmt] View part description label should wrap
    125691 [ViewMgmt] Can't read view titles
    68684 Remove MRU Ordering from the editors.</td>
       </tr>
    
    113455</td> Some errors do not appear in the Problems view. This happens very frequently for me (multi-processor box, GTK+) if I have grouping turned on.</td>
       </tr>
    
    130818</td> Filters do not seem to apply when grouping by Java type (Problems view).
           </td>
       </tr>
    
     </td>  </td>
       </tr>
    
    126155</td> [Markers] Issues of multi quick fix dialog</td>
       </tr>
    
    122639</td> [WorkbenchParts] PageBookView's toolbar doesn't properly re-layout after page switching</td>
       </tr>
    
    128670</td> [Dialogs] StatusDialog adds 2 horizontal margins around button bar</td>
       </tr>
    
    127629</td> [Markers] problems view: keep selection stable</td>
       </tr>
    
    128381, 128381</td> [Markers] group should only show (10 of 10 items) if beyond the limit</td>
       </tr>
    
    129812</td> [Markers] Enabling problem categorization per default</td>
       </tr>
    
    129184</td> Progress view should be made more prominent</td>
       </tr>
    
    127289</td> [Markers] SystemFilter and group selection
           state not preserved</td>
       </tr>
    
    see suggestions in bug 109998</td> Experimental (?) Keys preference page (3 votes):
    • what do we do with the two pages?
    • sorting by keys, by commands and by scope 109998
    • see which keys are free and which commands are not used
    • Platform UI team is investigating what can/can not be done about this without Doug around
    </td>
       </tr>
    
    </td> Finish the preferences clean up effort from 3.0:
    • decorator preference pages should offer a link to decorators</li>
    • font / color preferences should use shared settings so it is also possible to configure the color and font decoration for CVS on the CVS page
    • UI - please provide a bug for this so we can track polish
    </td>
       </tr>
    
    </td> Improve the look of the filter control (preferences, other dialogs):
    • the text field seems unaligned as long as there is no 'clear' button
    • either dump the 'clear' button, or add it as a lay-over over the text field:
      • For example, in Thunderbird (mozilla mail client), they added a magnifying glass inside the text field (Good visual indication what this field is about) and the clear button ('x', is IMO a better icon than what we have) is inside the text field when applicable. Even better is the help text in light gray.
      • UI - please provide a bug for this so we can track polish
    </td>
       </tr>
    
    </td>

    The fast view icon looks like a bug, as the lower right corner is missing. For all the icons on the fast view bar, it isn't obvious what they do. They should be more "inviting" to click on. Maybe some extra adornment in the icon like an arrow that points in the direction they will open. The tooltip should also show the keyboard shortcut.

    New icon is being requested, no other work decided at this point

    UI - please provide a bug for this so we can track polish

    </td>
       </tr>
    
    </td>  </td>
       </tr>
    

    </table>

    JDT Core

    Bugzilla Description
    108087 Java conventions default formatter settings confused
    118217

    Change 'unused parameters' warning to only work on private or final methods to avoid false positives.


    JDT Debug

    Bugzilla Description
    128074 Cannot format stack trace
    123589 Unexpected switch to empty editor when using scrapbook
    123588 Loosing key binding in scrapbook page
    130534 add a "collapse all" to the tree's toolbar
    128558 support variables in port and host fields of Remote Java Applications
    77125 preference for determing how Java breakpoints are created - to suspend thread or entire VM
    125768 Support to display breakpoints in rulers of external edtiors:
    • ideally, there would be support for markers in external files from text/platform, but we might be able to do something here (not sure how much work this is)
    • since we support breakpoints in external files, and the editor now supports a ruler in external files, we really should make the two work together
    80746 filter exceptions in anonymous classes of X when filtered on X
    89474 support to edit attributes of multiple archives at once
    110837 properly specify bootpath when launching to avoid problems with crypto applications
    Columns in Variables/Registers view:
    • We've added support to the debug platform for columns in debug views
    • We want to add support for columns in the java debugger as an optional presentation (we've started this already)
    • DEBUG - please provide a bug for this so we can track polish
    Undo/Redo:
    • We don't currently support undo/redo in the Scrapbook or Display view, which has made a few users angry
    • DEBUG - please provide a bug for this so we can track polish


    JDT Text

    Bugzilla Description
    95619 [5.0][content assist] Function parameter assist does not work with some parameterized types
    92371 [content assist] Parameter guessing could also propose expressions for parameters of array types
    41189 [hovering] Editor tooltip size too small for title text (3 votes)
    125677 [navigation] @category not standing out enough in Java Outline view
    91500 Improve the NLS tooling, especially existing hover and linking features to Eclipse string externalization support (2 votes)

    JDT UI

    Bugzilla Description
    129929 IDE no longer responsive when JUnit tests are running
    129925 [JUnit view] Hierarchical+failures should not show more than just failures
    130106 [junit] Hierarchical mode sometimes show testcase in progress and sometimes not
    130107 [junit view] Hierarchical mode not properly rebuilding the tree

    136572

    134078

    134305

    Polish the Clean Up support (2 votes):
    • Clean Up with focus on current file forces me to save other resources? This is particularly annoying when the resource is a text scratch file.
    • Clean Up should also offer to format the code.
    • The wizard needs polish.

    New Java Perspective (old one becomes the 'Classic Java Perspective')

    119259

    provide a way to get fully qualified class name into clipboard
    108256 [refactoring] [ltk] Refactoring preview does not correctly highlight 5.0 code [refactoring]
    122527 [build path] Offer a SWT container in JDT
    135279 [refactoring] improve order of refactoring actions
    135285 [source actions] improve order of source actions

    Back to the top