Nieuw in 3.2

Hier worden een aantal wijzigingen in het Eclipse-platform en de SWT beschreven die zijn aangebracht voor release 3.2 van Eclipse.

Er zijn ook veel nieuwe features toegevoegd voor eindgebruikers van het platform. Een overzicht van deze features vindt u in het gedeelte met nieuwe mogelijkheden in de gebruikershandleiding van de workbench.

Platformwijzigingen

Runtime-herstructurering

Voor meer flexibiliteit in de Eclipse-runtime en onafhankelijk gebruik van runtimecomponenten mogelijk te maken, is de plugin org.eclipse.core.runtime opgesplitst in verschillende plugins:

  • org.eclipse.equinox.common - algemene code die wordt gebruikt door meerdere onderdelen van de vorige runtimeplugin (IPath, IStatus, IProgressMonitor).
  • org.eclipse.equinox.registry - extensieregister
  • org.eclipse.equinox.preferences - mechanisme voor voorkeuren
  • org.eclipse.core.jobs - mechanisme voor jobs
  • org.eclipse.core.contenttype - mechanisme voor content
  • org.eclipse.equinox.supplement - een aanvullende "plugin" die wordt gebruikt voor uitvoering zonder OSGi.

Er zijn nieuwe API's toegevoegd om het beheer van de opgesplitste runtime-onderdelen te vergemakkelijken.

De runtime-herstructurering moet herkenbaar zijn voor andere plugins. Zie de migratiehandleiding van Eclipse 3.2 voor meer informatie.

Algemene navigator

Er is een nieuwe plugin, org.eclipse.ui.navigator, met een framework voor het bouwen van viewers waarin content uit meerdere domeinmodellen wordt gecombineerd. Het framework bevat onder meer voorzieningen voor declaratieve aanlevering van content, labels, acties en filters. De plugin org.eclipse.ui.navigator.resources is een concreet voorbeeld van het gebruik van dit framework in de vorm van de view Projectverkenner en declaratieve viewerextensies voor het model IResource.

Afbeelding van de view Projectverkenner

Framework met eigenschappen in tabbladindeling

Er is een framework met eigenschappen in tabbladindeling toegevoegd. Dit framework levert een alternatieve pagina met eigenschappenbladen, zodat eigenschappen in de view Eigenschappen kunnen worden afgebeeld met willekeurige besturingselementen. Deze view is ingedeeld in tabbladen en secties die worden aangeleverd via het extensieregister.

Afbeelding van framework met eigenschappen in tabbladindeling

Zie het artikel De view Eigenschappen in tabbladindeling voor meer informatie.

Bestandssysteem-API

De nieuwe plugin org.eclipse.core.filesystem vormt een nieuwe algemene API voor interactie met bestandssystemen. Het platform is geconfigureerd om deze bestandssysteem-API te gebruiken in plaats van java.io-API's. Hierdoor kunnen resources worden gemaakt in willekeurige onderliggende bestandssystemen en kunt u plugins met ondersteuning voor nieuwe soorten bestandssystemen leveren.

Er is functionaliteit toegevoegd aan de project- en gekoppelde-resourcewizards voor het maken van resources die zijn gekoppeld aan andere bestandssystemen. Plugins die alternatieve bestandssystemen definiëren kunnen inhaken op deze uitgebreide wizards via het extensiepunt org.eclipse.ui.ide.filesystemSupport.

Afbeelding van een niet-lokaal bestandssysteem

Ondersteuning voor categorisatie bij importeren en exporteren

Categorisatie wordt nu ondersteund door de extensiepunten org.eclipse.ui.importWizards en org.eclipse.ui.exportWizards.

Afbeelding van extensiepunten

Voorgrondinfo-annotaties in teksteditors

Het voorgrondinfo-niveau is verlaagd van JDT-tekst naar platformtekst. De voorgrondinfo-ondersteuning voor tekst, de verticale liniaal en de overzichtsliniaal wordt geïnstalleerd via TextSourceViewerConfiguration, die wordt gebruikt door teksteditors:

Afbeelding van voorgrondinfo-annotatie

Annotatienavigatie in teksteditors

Het annotatienavigatieniveau is verlaagd van JDT-tekst naar platformtekst en is nu beschikbaar in alle editors:

Afbeelding van navigatiepictogrammen

JFace-veldhulp

JFace is voorzien van nieuwe ondersteuning om gebruikers te helpen bij het invullen van velden in dialoogvensters en formulieren. Het pakket org.eclipse.jface.fieldassist levert klassen waarmee u willekeurige besturingsfuncties kunt decoreren met afbeeldingen en bijbehorende voorgrondinfotekst. Deze kunnen bijvoorbeeld worden gebruikt voor het markeren van verplichte velden in een dialoogvenster of het afbeelden van veldfoutcondities of contenthulpaanwijzingen. Het pakket stelt u ook in staat content voor besturingsfuncties voor te stellen, bijvoorbeeld in de vorm van een voorgrondvenster met contentvoorstellen of secundaire voorgrondvensters voor meer informatie en opties voor het expliciet (handmatig) of impliciet (door middel van automatische aanvulling) oproepen van voorstellen.

Afbeelding van veldhulp

Verbeteringen in JFace-TreeViewer

AbstractTreeViewer ondersteunt nu meerdere gelijkwaardige elementen in de structuur, die elk een andere bovenliggende keten hebben. Voor deze ondersteuning moeten clients de elementkoppeling inschakelen door setUseHashLookup(true) aan te roepen.

TreeViewer ondersteunt nu ook SWT.VIRTUAL-structuren. De bijbehorende lazy-contentprovider ILazyTreeContentProvider retourneert alleen de benodigde inhoud.

Ondersteuning voor dynamische Help-content

Het Help-systeem biedt nu ondersteuning voor het dynamisch samenstellen van Help-content. Onderwerpen die zijn samengesteld in de XHMTL-indeling kunnen worden voorzien van extra markup die specifiek is voor Eclipse om content te filteren op basis van de waarden os/ws/arch, de aanwezigheid van plug-ins, ingeschakelde voorzieningen, enzovoort. Gemeenschappelijke content kan in meerdere documenten worden opgenomen. Ten slotte kunnen plugins XHTML-fragmenten aanleveren die worden ingevoegd op ankers in andere documenten. Dit alles biedt informatie-ontwikkelaars de gelegenheid dynamische documenten te maken die zijn toegesneden op de omgeving waarin ze worden bekeken.

Uitgebreide Help-zoekfuncties

De Help-indexerings- en zoekfuncties zijn op verschillende punten verbeterd. Er kunnen aanvullende zoekdeelnemers worden geregistreerd via een extensiepunt waarmee Help-content kan worden toegevoegd aan de Lucene-index. Help bevat nu een XHTML-zoekdeelnemer waarmee dynamische Help-documenten in XHTML-indeling (zie boven) kunnen worden geïndexeerd. Daarnaast worden sommige documenten die eerder NIET in de index werden weergegeven, nu WEL weergegeven (bijvoorbeeld hulpbladen en welkomstpagina's). Zoekresultaten kunnen nu worden weergegeven met verschillende pictogrammen en de actie 'openen' kan worden overgedragen aan de zoekengine.

Afbeelding van verbeterde zoekfuncties

Problemen kunnen worden gegroepeerd

Problemen in de view Problemen kunnen voortaan worden gegroepeerd. Standaard kunt u problemen groeperen op severity en probleemtype. Aanvullende groepen kunnen worden gedefinieerd via het extensiepunt org.eclipse.ui.ide.markerSupport.

Verbeterde Help in dialoogvensters

De meeste dialoogvensters in Eclipse zijn nu voorzien van een standaardknop voor Help linksonder in het venster. Met deze knop wordt specifieke Help opgeroepen, zoals wanneer u op F1 drukt (in Windows). Bovendien wordt de Help voortaan weergegeven in een hulpvak in hetzelfde dialoogvenster, in plaats van in een apart venster. Aangepaste dialoogvensters kunnen deze functionaliteit overnemen door een subklasse te maken van de nieuwe klasse TrayDialog in plaats van de klasse Dialog. Daarnaast kunnen er hulpbladen zijn opgenomen in dialoogvensters (in het hulpvak) voor procedures waarbij u dialoogvensters moet openen.

Opdrachtlinks inbedden in Help-informatie voor gebruikers

Met links in Help, hulpbladen en inleidingscontent kunnen nu opdrachten worden uitgevoerd als deze worden geactiveerd door de gebruiker. Opdrachtlinks kunnen voor tal van doeleinden worden gebruikt, bijvoorbeeld om voorkeurenpagina's te openen, wizards te starten, views af te beelden of perspectieven te openen. Het opdrachtframework is uitbreidbaar, dus opdrachtlinks bieden nog veel meer gebruiksmogelijkheden. De handleiding van de workbench is op veel plaatsen uitgebreid met opdrachtlinks. In de onderstaande afbeelding ziet u twee opdrachtlinks in een Help-onderwerp:

Opdrachtlinks in een Help-onderwerp

Ondersteuning voor het starten van opdrachten vanuit hulpbladen

Opdrachten kunnen nu worden gestart vanuit hulpbladen. Het onderstaande contentbestand bevat opdrachten om de view Zoeken en de Pakketverkenner te openen.
<?xml version="1.0" encoding="UTF-8"?>
<cheatsheet title="Voorbeeld van opdrachten in een hulpblad">
  <intro>

    <description>Een hulpblad toont de Pakketverkenner</description>
  </intro>
  <item title="De view Zoeken afbeelden">
     <description>Dit is een stap met een opdracht
		die de view Zoeken afbeeldt.</description>

     <command serialization=
		"org.eclipse.search.ui.views.SearchView"/>  
  </item>
  <item title="Stap 2">
    <description>Dit is een stap met een opdracht en
		parameters waarmee de Pakketverkenner wordt afgebeeld.</description>

     <command serialization="org.eclipse.ui.views.showView(
		org.eclipse.ui.views.showView.viewId=
		org.eclipse.jdt.ui.PackageExplorer)"/> 
     <onCompletion>
         Opdrachtvoorbeeld voltooid.
     </onCompletion>
  </item>
</cheatsheet>

Voltooiingsbericht

U kunt aan een stap in een hulpblad een voltooiingsbericht toevoegen dat wordt weergegeven wanneer de betreffende stap is voltooid.

Afbeelding van een voltooiingsbericht voor een hulpblad

Samengestelde hulpbladen

Samengestelde hulpbladen zijn nieuw in Eclipse 3.2. Een samengesteld hulpblad bevat hulp voor een omvangrijk probleem en is onderverdeeld in een aantal kleinere taken met elk een eigen hulpblad. Deze taken kunnen zijn ingedeeld in groepen. Samengestelde hulpbladen worden geopend in de view voor hulpbladen en worden gestart met behulp van het hulpbladselectievenster. Elke taak heeft een beschrijving en de gebruiker wordt door een reeks taken geloodst via hyperlinks.

Afbeelding van een samengesteld hulpblad

Samengestelde hulpbladen hebben een boomstructuur van taken en hun status. Het venster rechts onderin bevat de afzonderlijk taken.

Afbeelding van een samengesteld hulpblad

De content van een samengesteld hulpblad wordt gedefinieerd in een XML-bestand. In het contentbestand kan zijn opgegeven welke dependency's er tussen taken bestaan zodat een bepaalde taak bijvoorbeeld pas kan worden gestart nadat de voorgaande taken voltooid zijn.

Help-trefwoordenindex

Help bevat nu een trefwoordenindex waarin u trefwoorden uit uw documentatie en een link naar het bijbehorende Help-document kunt opnemen. Deze index is zowel beschikbaar in de Help-view als het Help-venster (hieronder is de view afgebeeld).

Opmerking: de indexcontent is nog niet beschikbaar voor de SDK (de index wordt alleen afgebeeld als er content beschikbaar is).

Afbeelding van de view Help

XHTML-conversietool voor Help-documenten

PDE bevat een nieuw hulpprogramma waarmee u de Help-documenten van een plugin in een handomdraai kunt converteren van HTML naar XHTML. Naast de conversie van HTML naar geldige XHTML, wordt door de tool ook de bestandsnaamextensie en de inhoudsopgave bijgewerkt en de nodige koppelingen toegevoegd om dynamische content te activeren en in de XHTML-content te kunnen zoeken. Na deze conversie kunnen gebruikers genieten van alle nieuwe Help-features van release 3.2, zoals dynamische contentfilters, hergebruik van content en aanlevering van dynamische content. Voor al deze features is immers XHTML-content vereist.

Deze functie kan worden opgeroepen via PDE Tools > Help-bestanden converteren naar XHTML vanuit het voorgrondmenu van pluginprojecten.

Afbeelding van het XHTML-conversieprogramma

Universele welkomstpagina

Naar aanleiding van onze ervaringen met concrete implementaties van welkomstpagina's, bieden we nu een configureerbare universele welkomstpagina aan die kan worden gebruikt voor elk product. Voor elk product kunt u kiezen uit zeven vooraf gedefinieerde hoofdonderdelen: Overzicht, Eerste stappen, Zelfstudies, Voorbeelden, Nieuw, Webresources en Migreren (in de Eclipse SDK worden vier van deze onderdelen gebruikt). Universele welkomstpagina heeft configureerbare pagina-indelingen en belangrijkheidsniveaus voor elk onderdeel, en biedt alle mogelijkheden voor het gebruik van thema's. Het biedt ook HTML- en SWT-presentaties voor 100% platformdekking.

Op de voorkeurenpagina Welkom die door Universele welkomstpagina wordt geleverd, kan de welkomstpagina door eindgebruikers worden aangepast en vervolgens worden opgenomen in elk gewenst product. Zie Specificatie van universele welkomstpagina voor meer informatie hierover.

Afbeelding van de universele welkomstpagina

Ondersteuning voor configuratie en thema's in welkomstpagina

Het introframework is beter configureerbaar dan ooit tevoren. Er kan een intro-configuratieprogramma worden aangeleverd voor eenmalige berekening van de groep onderliggende items, ondersteuning voor vervanging van variabelen en late omzetting van ankerpaden. Deze ondersteuning wordt intensief gebruikt door Universele welkomstpagina, maar kan ook worden gebruikt voor andere implementaties van welkomstpagina's.

Thema's vertegenwoordigen benoemde collecties CSS-bestanden, eigenschappen en afbeeldingen die gezamenlijk het uiterlijk van de content van de welkomstpagina bepalen. Universele welkomstpagina maakt gebruik van deze functionaliteit door de gebruiker de keuze te bieden tussen twee concrete thema's in Eclipse 3.2: 'Cirkels' en 'Paarse streek'.

Afbeelding van thema's in Welkom

Naamruimte-ondersteuning voor de Ant-extensiepunten

De extensiepunten antTasks en antTypes van org.eclipse.ant.core bieden nu de mogelijkheid een URI aan te wijzen waarin de definitie moet worden opgenomen. Zie bug 133190 voor een volledige beschrijving van alle wijzigingen.

Teamondersteuning voor de integratie van logische modellen

Er is een API toegevoegd waarmee logische modellen kunnen deelnemen in teambewerkingen. Met deze API kunnen teamproviders het volgende doen:
  • Modellen raadplegen om te controleren of alle benodigde resources in een teambewerking zijn opgenomen.
  • Modelsemantiek gebruiken om te helpen bij het oplossen van samenvoegingsconflicten.
  • Modellen laten deelnemen in de weergave van resources tijdens teambewerkingen.

Synchronisatie met Java- en resourcemodellen

Wijzigingen in SWT

Sorteerindicator in tabellen en boomstructuren

Tabellen en boomstructuren bevatten nu een sorteerrichtingindicator in de kolomkop.

Afbeelding van een sorteerrichtingindicator

SWT-snippets met sortering op kolom (eenvoudig) en sortering op kolom (virtuele tabel).

Opnieuw te ordenen kolommen in boomstructuren

In Eclipse 3.1 is een functie toegevoegd om kolommen in een tabel opnieuw te ordenen. Dezelfde functie is nu ook beschikbaar in boomstructuren.

De weergavevolgorde van kolommen in een boomstructuur kan worden gewijzigd door de kolomkop te verslepen of kan programmatisch worden ingesteld.

Afbeelding van opnieuw te ordenen kolommen

Voorbeeldsnippet.

Verbeterde ondersteuning voor Windows XP-thema

In Windows XP wordt de SWT nu afgebeeld met achtergrondpatronen in tabbladmappen. De groepen, labels, selectievakjes, enzovoort worden allemaal transparant afgebeeld met deze achtergrond. Ook aangepaste widgets, zoals StyledText, worden nu afgebeeld met de juiste rand van het actieve Windows XP-thema.

Afbeelding van ondersteuning voor Windows XP-thema

Zie de veelgestelde vragen over SWT voor instructies over het gebruik van een Windows XP-uiterlijk.

Geanimeerde GIF's

Geanimeerde GIF-afbeeldingen kunnen worden opgeslagen als bestand.

Afbeelding van ondersteuning voor geanimeerde GIF's

Zie de SWT-snippet voor een voorbeeld hiervan.

Melding van wijziging in bureaubladpresentatie

Steeds als presentatie-instellingen zoals het thema, het lettertype of de standaardkleuren worden gewijzigd, wordt een SWT.Settings-event voor de Display (weergave) gerapporteerd.

Afbeelding van een melding van een wijziging in de bureaubladpresentatie

Melding voor verwijdering

In eerdere versies werden bij ontvangst van een SWT.Dispose-event voor een bovenliggend samengesteld item, alle onderliggende items verwijderd en konden deze niet worden gekoppeld. In 3.2 wordt de Dispose-event ontvangen voordat het beheer over de onderliggende items wordt overgedragen aan het besturingssysteem.

Knopinfo voor kolommen

Met behulp van TableColumn/TreeColumn.setTooltipText(String) kunt u knopinfotekst instellen voor kolomkoppen in een tabel of boomstructuur.

Verticale dynamische balk

Met de stijl SWT.VERTICAL kunt u een verticale dynamische balk maken.

Afbeelding van een verticale dynamische balk

Ondersteuning voor OpenGL

U kunt nu OpenGL in SWT-toepassingen gebruiken. De OpenGL-interface werkt met OpenGL-bibliotheken van andere leveranciers, bijvoorbeeld LWJGL.

Afbeelding van een voorbeeld met OpenGL

Zie de SWT-snippets voor een aantal voorbeelden.

Virtuele boomstructuur

In boomstructuren wordt nu de stijl SWT.VIRTUAL ondersteund. Zo kunt u snel boomstructuren met veel gegevens maken. Als er TreeItem-elementen nodig zijn, worden deze op aanvraag gemaakt.

Zie de SWT-snippet voor een voorbeeld hiervan.

Knoppen met afbeeldingen en tekst

U kunt nu zowel een afbeelding als tekst op een knop afbeelden. Deze feature wordt ondersteund in Windows XP, Mac OS X en GTK.

Afbeelding van een knop met een afbeelding

HIView op Mac OS X

SWT maakt nu gebruik van HIView op Mac OS X. Hiermee zijn veel clipping- en formaatproblemen opgelost.

Ingebedde objecten in tekst

Met TextLayout is het nu mogelijk om objecten als afbeeldingen of widgets in te bedden in tekst. Hierbij kunnen grafische symbolen zoals een stijging, daling of breedte worden opgegeven. De objecten worden verpakt met de tekst.

Afbeelding van een in tekst ingebedde afbeelding

Zie de SWT-snippet voor een voorbeeld hiervan.

Tekst inspringen, uitlijnen en uitvullen

TextLayout ondersteunt nu het inspringen, uitlijnen en uitvullen van tekst.

Afbeelding van tekst die wordt uitgelijnd

Zie de SWT-snippet voor een voorbeeld hiervan.

Basislijn van tekst verhogen

Met TextLayout en TextStyle is het nu mogelijk om de basislijn van een bepaald stuk tekst te verhogen.

Afbeelding van tekst waarvan de basislijn wordt verhoogd

Zie de SWT-snippet voor een voorbeeld hiervan.

Ondersteuning voor de tint, intensiteit en helderheid van een kleur

Een kleur kan worden gemaakt door de tint, intensiteit en helderheid op te geven. Daarnaast kunt u de tint, intensiteit en helderheid van bestaande kleuren opvragen.

Afbeelding van ondersteuning voor tint, intensiteit en helderheid

Zie de SWT-snippet voor een voorbeeld hiervan.

StyledText: uitlijnen, inspringen, uitvullen

StyledText ondersteunt nu het inspringen, uitlijnen en uitvullen van tekst.

Afbeelding van StyledText die wordt uitgelijnd

Zie de SWT-snippet voor een voorbeeld hiervan.

Ingebedde objecten in StyledText

Met StyledText is het nu mogelijk om objecten als afbeeldingen of widgets in te bedden in tekst. De objecten worden verpakt met de tekst.

Afbeelding van een in tekst ingebedde afbeelding

Zie de SWT-snippet voor een voorbeeld hiervan.

Achtergrondafbeelding

U kunt een achtergrondafbeelding instellen voor een besturingselement. Daarnaast kan de achtergrond worden overgenomen in onderliggende widgets, bijvoorbeeld in labels.

Afbeelding van een achtergrondafbeelding in een besturingselement

Zie de SWT-snippet voor een voorbeeld hiervan.

Afbeeldingen laden met native opdrachten

De constructor Image(Device device, String filename) laadt afbeeldingen nu met native besturingssysteemaanroepen. Hierdoor kunnen afbeeldingen sneller worden geladen. Bovendien kunnen nu ook grotere afbeeldingen worden geladen dan voorheen.

Tekst verslepen

Als de event SWT.DragDetect aan Text of StyledText wordt gekoppeld, wordt de selectie niet gewist als de gebruiker een bepaald gedeelte vanuit een geselecteerd stuk tekst versleept. Zo kan het verslepen van tekst uit Text- en StyledText-widgets worden ondersteund.

Zie deze SWT-snippet voor een voorbeeld hiervan.

Nieuwe widget: ExpandBar

Met de widget ExpandBar kan de gebruiker verzamelingen widgets afbeelden of verbergen door op een koptekst te klikken. De widget ExpandBar bevat meerdere items die ieder een afbeelding en titel kunnen hebben in de koptekst.

Afbeelding van widgets die worden verborgen

Zie deze SWT-snippet voor een voorbeeld hiervan.

Opsommingstekens in StyledText

StyledText kan nu lijsten in tal van stijlen afbeelden, bijvoorbeeld met opsommingstekens, nummers, hoofdletters of kleine letters. U kunt ook aangepaste stijlen definiëren.

Afbeelding van opsommingstekens in StyledText

Zie deze SWT-snippet voor een voorbeeld hiervan.

Aangepaste opgebouwde boomstructuur

De widget Tree (boomstructuur) ondersteunt nu een aangepaste opbouw van afzonderlijke cellen. Toepassingen kunnen de oorspronkelijke vormgeving en werking van de boomstructuur wijzigen door de opbouw van de gegevens aan te passen. De toepassing heeft het beheer over de rijhoogte, dus er kunnen meerdere regels tekst worden opgebouwd. Daarnaast kunnen meerdere afbeeldingen in een en dezelfde cel worden weergegeven, meerdere lettertypen en/of kleuren worden gebruikt, en kan de manier waarop selecties worden opgebouwd worden gewijzigd.

Afbeelding met aangepaste opbouw van afzonderlijke cellen in de structuur

Zie de volgende snippets voor een aantal voorbeelden:

Aangepaste opgebouwde tabel

De widget Table (tabel) ondersteunt nu een aangepaste opbouw van afzonderlijke cellen. Hoewel de oorspronkelijke vormgeving en werking van de tabel hetzelfde blijven, kunnen gebruikers aanpassen hoe cellen worden opgebouwd om gegevens af te beelden in een andere vorm dan tekst met een afbeelding, bijvoorbeeld om meerdere regels tekst in één cel af te beelden, meerdere lettertypen en/of kleuren in dezelfde cel te gebruiken, de oorspronkelijke opbouw van de selectie te overschrijven, enzovoort.

Afbeelding van aangepaste opbouw van afzonderlijke cellen in een tabel

Zie de volgende snippets voor een aantal voorbeelden:

Sleepeffecten voor tabel en boomstructuur

In de widgets Table (tabel) en Tree (boomstructuur) wordt nu visuele feedback geleverd over de gegevens die worden versleept.

Afbeelding van sleepfeedback

Nieuwe klasse: Tooltip (knopinfo)

De nieuwe klasse ToolTip kan worden gebruikt om knopinfo weer te geven die niet rechtstreeks aan een besturingsfunctie gekoppeld is. Deze knopinfo kan overal worden geplaatst en wordt afgebeeld in de standaardpresentatie van het platform óf als tekstballon, zoals in de onderstaande afbeelding.

Afbeelding van knopinfo als tekstballon