Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 05c71c456aac30aa3e70e5bf7745965344b3dfce (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta name="copyright" content="Copyright (c) Eclipse contributors and others 2013. This page is made available under license. For full details, see the LEGAL section in the documentation that contains this page."/>
<meta http-equiv="Content-Language" content="en-us"/>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<link rel="stylesheet" href="default_style.css" charset="ISO-8859-1" type="text/css"/>
<style type="text/css">
table.news td {border-top: solid thin black;}
table.news tr {vertical-align: top;}
table.news tr td.section {font-size: 20px; font-weight: bold;}
table.news tr td.title {vertical-align: top; width: 30%; font-weight: bold;}
table.news tr td.content {vertical-align: top; width: 70%;}
</style>
<title>Eclipse Project Kepler - New and Noteworthy</title>
</head>
<body>

<h2>Platform and Equinox API</h2>

<!-- ****************** START OF N&N TABLE ****************** -->
<table class="news" cellpadding="10" cellspacing="0">
<tbody>
  <!-- ******************** Platform ********************** -->
  <tr>
    <td id="Platform" class="section" colspan="2"><h2>Platform Changes</h2></td>
  </tr>
  
  <tr id="e4-api">
    <td class="title">Initial Eclipse 4 API released</td>
    <td class="content">
      The first set of official API based on the new Eclipse Platform 4 architecture is now available. 
      This is the first step in allowing developers to use the new simpler and more powerful mechanisms 
      to build Eclipse plug-ins and applications.
    <p>
      This API is comprised of two basic concepts:
    </p><p>
      <b>The user interface model</b>: The content of this model describes the structure of the user interface.
      The Eclipse Platform reacts to changes in this model by updating the presentation, and the complete
      model is now available through the new API.
    </p><p>
      Note that the model represents everything on the screen and these elements can be modified
      by your code (see the example below).
    </p><p>
      <b>IEclipseContext / Dependency Injection (DI)</b>: Contexts are containers of UI runtime state
      including all the available services. The typical Eclipse Platform 4 pattern is that contributions
      are created and configured through dependency injection based on state and services found in the local
      context for that model element.
    </p><p>
      Here are a few links to more information about the UI Model, the services and DI (the Javadoc and supporting
      Eclipse documentation will be available before Kepler is released):
    </p>
    <ul>
      <li><a href="http://www.eclipsecon.org/2013/sites/eclipsecon.org.2013/files/FormalAPI.pdf">EclipseCon 2013 API Slides</a></li>
      <li><a href="http://www.vogella.com/articles/EclipseRCP/article.html">Lars' RCP Tutorial</a></li>
      <li><a href="http://www.vogella.com/articles/Eclipse4Services/article.html">Lars' Services Tutorial</a></li>
      <li><a href="http://eclipsesource.com/blogs/2013/04/18/eclipse-4-e4-tutorial-behavior-annotations/">Jonas Helming's DI Tutorials</a></li>
    </ul>
    <p>
      There is quite a lot of information already available for Eclipse Platform 4. While parts of the API are just being
      formalized now, most of the concepts and API existed in provisional form in previous Eclipse 4 releases.
    </p><p>
      Just to give a taste of what working in a modeled UI is all about, here's a code snippet showing
      how to get a 'standard' Command handler to toggle the visibility of the 'Quick Access' text field
      that appears in the top trim. First we gain access to the model by getting the MApplication as a
      'service'. Form there we can access the EModelService and use it to find the model element
      representing the search in the UI. Then it's just a simple matter of toggling the element's
      'toBeRendered' flag to get it to (dis)appear.
    </p>
    <pre>
public Object execute(ExecutionEvent e) throws ExecutionException {
  IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(e);
  MApplication theApp = (MApplication) window.getService(MApplication.class);
  MWindow activeWin = theApp.getSelectedElement();
  EModelService ms = activeWin.getContext().get(EModelService.class);
  EPartService ps = activeWin.getContext().get(EPartService.class);
  MToolControl search = (MToolControl) ms.find("SearchField", activeWin);
  if (search != null) {
    search.setToBeRendered(!search.isToBeRendered());
    window.getShell().layout(true, true);
  }
  return null;
}
      </pre>
    </td>
  </tr>

  <tr id="ua-lucene">
    <td class="title">Migrated to Lucene 3.5</td>
    <td class="content">
      The Eclipse platform help system has migrated from Lucene 2.9.1 to Lucene 3.5.
      This change brings improved performance and many bug fixes in help search.
      Some old help system API related to Lucene has been changed or removed as part
      of this fix. Refer to the platform 4.3 migration guide for more details.
    </td>
  </tr>  
  
  <tr id="ant184">
    <td class="title">Platform updated to Ant 1.8.4</td>
    <td class="content">
      The platform has been updated to use Apache Ant version 1.8.4. To see what is new in version 1.8.4 you can
      check the <a href="http://apache.mirrors.tds.net/ant/README.html">Apache Ant what's new</a>.
    </td>
  </tr> 


  <!-- *********************** SWT *********************** -->
  <tr>
    <td id="SWT" class="section" colspan="2"><h2>SWT Changes</h2></td>
  </tr>

  <tr id="xulrunner64">
    <td class="title">XULRunner on 64-bit Windows</td>
    <td class="content">The browser widget now supports the embedding of XULRunner on Windows x86_64.</td>
  </tr> 

  <tr id="bidi">
    <td class="title">New SWT color constant for hyperlinks</td>
    <td class="content">
     A new constant (SWT_COLOR_LINK_FOREGROUND) has been added that returns the native color of hyperlinks on all platforms.
     <p><img src="images/linkColor.png" alt=""/></p>
    </td>
  </tr>
    
  <tr id="linkColor">
    <td class="title">BIDI Text Direction</td>
    <td class="content">
     New API has been added to allow text direction to be set independent of the widget orientation.
     Note that this API is currently only implemented on Windows. 
     <p>For more info see <a href="http://git.eclipse.org/c/platform/eclipse.platform.swt.git/tree/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet364.java">Snippet 364</a>.
     </p>
     <p><img src="images/bidi.png" alt=""/></p>
    </td>
  </tr>

  </tbody>
<!-- ****************** END OF N&N TABLE ****************** -->
</table>

<p align="center"><a href="eclipse-news-part2.html">Previous</a>&nbsp;&nbsp;&nbsp;&nbsp; <a href="eclipse-news-part4.html">Next</a></p>

</body>
</html>

Back to the top