Nye funktioner i 3.2

Dette dokument indeholder beskrivelser af nogle af de mere interessante eller vigtige ændringer, der er foretaget på Eclipse-platformen og SWT til release 3.2 af Eclipse af interesse for plugin-udviklere.

Der er også mange nye funktioner, der er orienteret mod slutbrugere af platformen, der kan ses i Nye funktioner i brugervejledningen til arbejdsbænken.

Ændringer til platform

Runtime-refactoring

For at gøre Eclipse-runtime mere fleksibel og tillade uafhængig brug af runtime-komponenter er plugin'en org.eclipse.core.runtime opdelt i flere plugins:

  • org.eclipse.equinox.common - Fælles kode, der anvendes af mere end et stykke af den tidligere runtime-plugin, f.eks. IPath, IStatus, IProgressMonitor.
  • org.eclipse.equinox.registry - Registreringsdatabase for udvidelser
  • org.eclipse.equinox.preferences - Indstillingsmekanisme
  • org.eclipse.core.jobs - Jobmekanisme
  • org.eclipse.core.contenttype - Indholdsmekanisme
  • org.eclipse.equinox.supplement - En supplerende "plugin", der anvendes til at understøtte udførelse uden OSGi.

Nye API'er er tilføjet for at understøtte styring af split-runtime-dele.

Runtime-refactoring bør være transparent for andre plugins. Der er flere oplysninger under overførselsguiden for Eclipse 3.2.

Common Navigator

En ny plugin, org.eclipse.ui.navigator, introducerer en struktur for bygning af fremvisere, der kombinerer indhold fra flere domænemodeller. Strukturen tillader deklarative bidrag af indhold, etiketter, funktioner, filtre og andre muligheder. Plugin'en org.eclipse.ui.navigator.resources stiller en konkret brug af denne struktur i form af en Project Explorer-oversigt og deklarative oversigtsudvidelser til IResource-modellen til rådighed.

Billede, der viser oversigten Project Explorer

Skillebladsinddelt egenskabsstruktur

En skillebladsinddelt egenskabsstruktur er tilføjet. Den skillebladsinddelte struktur indeholder en side med et erstatningsegenskabsark, der tillader egenskaber at blive vist i oversigten Egenskaber vha. vilkårlige kontroller, der er organiseret af skilleblade og afsnit, der leveres via udvidelsesregistreringsdatabasen.

Billede der viser en skillebladsinddelt egenskabsstruktur

Der er flere oplysninger i artiklen om Eclipses skillebladsinddelte egenskabsoversigt.

Filsystem-API

En ny plugin, org.eclipse.core.filesystem, introducerer et ny generisk API til interaktion med filsystemer. Platformen er overført til at anvende dette filsystem-API i stedet for java.io-API'er. Det betyder, at ressourcer kan oprettes i vilkårlige baggrundsfilsystemer, og atplugins kan stille understøttelse til rådighed for nye typer filsystemer.

Understøttelse er tilføjet til projektet og sammenkædede ressourceguider til oprettelse af ressourcer, der er sammenkædet med andre filsystemer. Plugins, der definerer alternative filsystemer, kan hægte sig på denne guideunderstøttelse ved at bruge udvidelsespunktet org.eclipse.ui.ide.filesystemSupport.

Billede, der viser et ikke-lokalt filsystem

Kategorisering tilføjet til Import og Eksport

Udvidelsespunkterne org.eclipse.ui.importWizards og org.eclipse.ui.exportWizards understøtter nu kategorisering.

Billede, der viser udvidelsespunkter

Tip til annoteringer i teksteditorer

Boblehjælp til annotation er skubbet ned fra JDT-tekst til platformstekst. Der er installeret understøttelse til boblehjælp til tekst, lodret søjle og oversigtssøjle af TextSourceViewerConfiguration, der anvendes af teksteditorer:

Billede af tip til annotation

Annotationsnavigation i teksteditorer

Annotationsnavigation er skubbet ned fra JDT-tekst til platformstekst og er nu tilgængelig i alle teksteditorer:

Billede af navigationsikoner

JFace-feltassistance

JFace introducerer ny understøttelse til at assistere brugeren ved udfyldelse af felter i dialogbokse og formularer. Pakken org.eclipse.jface.fieldassist stiller klasser til rådighed, der lader dig dekorere kontroller med billeder og boblehjælp. Det kan anvendes til at markere påkrævede felter i en dialogboks, vise feltbaserede fejlbetingelser eller vise meddelelser med indholdsassistance. Pakken giver også mulighed for at installere indholdsforslag på en kontrol, herunder en pop op-dialogboks med indholdsforslag, sekundære pop op'er med yderligere oplysninger og mulighed for at starte forslag eksplicit eller i et automatisk format for tastanslag.

Billede, der viser feltassistance

Forbedringer af JFace-TreeViewer

AbstractTreeViewer understøtter nu flere ens elementer i træstrukturen, der har hver sin overordnede kæde. Denne understøttelse kræver, at klienter aktiverer elementoversigten ved at kalde setUseHashLookup(true).

TreeViewer understøtter nu træstrukturen SWT.VIRTUAL. Der er en tilsvarende lazy-indholdsudbyder ILazyTreeContentProvider, der kun returnerer indhold, når det er nødvendigt.

Understøttelse af dynamisk hjælpeindhold

Hjælpesystemet understøtter nu dynamisk opbygning af hjælpeindhold. Emner der er udarbejdet i XHMTL kan indeholde yderligere Eclipse-specifik markup for løbende filtrering af indhold baseret på os/ws/arch-værdier, tilstedeværelse af plugins, aktiverede muligheder osv. Fælles indhold kan inkluderes i flere dokumenter. Endelig kan plugins levere XHTML-fragmenter, der knytter sig til ankre i andre dokumenter. Alt dette gør det muligt for udviklere af oplysninger at stille dynamiske dokumenter til rådighed, der tilpasser sig selv til indholdet på fremvisningstidspunktet.

Forbedringer af søgning i hjælpen

Indeksering af brugerassistance og søgning er forbedret på forskellige måder. Yderligere søgedeltagere kan registreres via udvidelsespunkter, der kan tilføje indhold til Lucene-registret. Hjælp leverer nu en XHTML-søgedeltager, der kan indeksere dynamiske hjælpedokumenter, der er udarbejdet i XHMTL (se ovenfor). Desuden vil dokumenter, der tidligere ikke var i registret, blive vist, f.eks. snydeark og velkomstsider. Søgeforekomster kan nu have forskellige ikoner, og funktionen 'åbn' kan nu delegeres til søgeprogrammet.

Billede, der viser forbedringer af søgning

Problemer kan grupperes

Problemer i oversigten Problemer kan nu grupperes. Der er standardgrupperinger efter niveau og problemtype, og flere grupper kan defineres via udvidelsespunktet org.eclipse.ui.ide.markerSupport.

Forbedret hjælp i dialogbokse

De fleste dialogbokse i Eclipse har nu en standardhjælpeknap i nederste venstre hjørne. Når du trykker på knappen, får du vist konteksthjælp svarende til, når du trykker F1 i Windows. Desuden vises hjælpen nu i dialogboksens tray i stedet for i et separat vindue. Tilpassede dialogbokse kan overtage denne funktionalitet ved at underklassere den nye TrayDialog i stedet for Dialog. Snydeark kan også anvendes i dialogbokse (i tray'en) for de trin, der indebærer åbning af dialogbokse.

Indlejring af kommandolink i indhold til brugerassistance

Link i hjælpen, snydeark og introduktionsindhold kan nu udføre kommandoer, når de aktiveres af brugeren. Kommandolink kan anvendes til at åbne indstillingssider, starte guider, vise oversigter, åbne perspektiver og til mange andre formål. Kommandostrukturen kan udvides, så mange flere brugere af kommandolink er muligt. Brugervejledning til Eclipse-arbejdsbænk er forbedret med kommandolink mange steder. Billedet nedenfor viser to kommandolink i et hjælpeemne:

Kommandolink i hjælpeemne

Understøttelse af start af kommandoer fra snydeark

Kommandoer kan nu startes fra snydeark. Indholdsfilen nedenfor indeholder kommandoer, der kan åbne oversigten Søg og Package Explorer.
<?xml version="1.0" encoding="UTF-8"?>
<cheatsheet title="Eksempel på kommandoer i et snydeark">
  <intro>

    <description>Et snydeark viser
			Package Explorer</description>
  </intro>
  <item title="Vis oversigten Søg">
     <description>Dette er et trin med en kommando,
der viser søgeoversigten.</description>

     <command serialization=
		"org.eclipse.search.ui.views.SearchView"/>  
  </item>
  <item title="Step 2">
    <description>Dette er et trin med en kommando og
parametre, der viser Package Explorer.</description>

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

Meddelelse om udførelse

En meddelelse om udførelse kan føjes til et trin i et snydeark, der vises, når trinnet er afsluttet.

Billede, der viser meddelelse om udførelse i et snydeark

Sammensatte snydeark

Sammensatte snydeark er nye i Eclipse 3.2. Et sammensat snydeark indeholder vejledning til et stort problem ved at opdele det i mindre opgaver, der hver har sit eget snydeark. Opgaver kan organiseres i grupper. Sammensatte snydeark åbnes i snydearksoversigten og startes vha. dialogboksen til valg af snydeark. Hver opgave har en beskrivelse, og link dirigerer brugeren gennem sekvensen af opgaver.

Billede, der viser et sammensat snydeark

Sammensatte snydeark har en træstruktur, der viser opgaverne og deres status. Det højre/ nederste delvindue indeholder individuelle opgaver.

Billede, der viser et sammensat snydeark

Indholdet af et sammensat snydeark defineres i en XML-fil. Indholdsfilen kan angive, hvilke afhængigheder der er mellem opgaver, så en opgave kun kan startes, når en forudgående opgave er afsluttet.

Stikordsregister til hjælpen

Hjælpen har nu et stikordregister, hvor du kan registrere nøgleord fra din dokumentation og levere et link til et relevant hjælpedokument. Registret er tilgængeligt både i hjælpeoversigten og -vinduet (oversigten vises nedenfor).

Bemærk: Registerindhold er endnu ikke tilgængeligt i SDK (registret vises kun, hvis indholdet er tilgængeligt).

Billede, der viser oversigten Hjælp

Konverteringsværktøj til XHTML-hjælpedokumenter

PDE har en ny funktion, der hurtigt konverterer en plugins HTML-hjælpedokument til XHTML. Ud over at konvertere HTML til gyldig XHTML, opdaterer værktøjet filtypen, indholdsfortegnelsen og tilføjer nødvendige bindinger for at aktivere dynamisk indhold og søgning i XHTML-indholdet. Efter konverteringen kan brugere anvende de nye 3.2 hjælpefunktioner, f.eks. dynamisk indholdsfiltrering, genbrug af indhold og dynamisk levering af indhold, der alt sammen kræver XHTML som indholdsformat.

Funktionen kan startes via PDE-værktøjer > Konvertér hjælpefiler til XHTML fra kontekstmenuen for plugin-projekter.

Billede, der viser XHTML-konverteringsværktøjet

Universal Welcome

Ud fra vores erfaring med konkrete Velkommen-implementeringer stiller vi nu en konfigurérbar Universal Welcome til rådighed, der kan anvendes af alle produkter. Produkter kan vælge mellem 7 foruddefinerede hovedafsnit: Oversigt, De første trin, Øveprogrammer, Eksempler, Nye funktioner, Webressourcer og Overfør (Eclipse SDK anvender 4 af dem). Universal Welcome har sidelayouter og betydningsniveauer, der kan konfigureres, for hvert bidrag og kan anvendes til temaer. Den stiller også både HTML- og SWT-præsentationer til rådighed med fuld platformsdækning.

En indstillingsside til Velkommen, der stilles til rådighed af Universal Welcome, åbner for tilpasning til slutbrugere og kan inkluderes i ethvert produkt, der vil bruge funktionen. Du kan læse mere om dette under Specifikation for Universal Welcome.

Billede, der viser Universal Welcome

Understøttelse af konfiguration og temaer i Velkommen

Introduktionsstrukturen har mere konfigurérbar understøttelse. En introkonfigurering kan leveres, der indeholder engangsberegning. Denne understøttelse anvendes meget af Universal Welcome, men kan også anvendes af andre Velkommen-implementeringer.

Temaer er navngivne samlinger af CSS-filer, egenskaber og billeder, der kollektivt definerer udseendet af Velkommen-indholdet. Universal Welcome udnytter denne understøttelse ved at stille muligheder for valg af tema til rådighed og ved at levere to konkrete temaer i 3.2 3.2: 'Cirkler' og 'Lilla gitter'.

Billede, der viser temaer i Velkommen

Understøttelse af navneområde for Ant-udvidelsespunkter

Udvidelsespunkterne org.eclipse.ant.core antTasks og antTypes tillader nu udpegning af en URI, som definitionen skal være i. Der er oplysninger om alle ændringer i programfejl 133190.

Teamunderstøttelse af logisk modelintegration

Et API er tilføjet, der tillader logiske modeller at deltage i teamfunktioner. I dette API kan teamudbydere:
  • Konsultere modeller for at sikre, at alle nødvendige ressourcer er inkluderet i en teamfunktion.
  • Bruge modelsemantik som hjælp til løsning af flettekonflikter.
  • Tillade modeller at deltage i fremvisningen af ressourcer under teamfunktioner.

Synkronisering med Java og ressourcemodeller

SWT-ændringer

Sorteringsindikator i tabeller og træstrukturer

Tabeller og træstrukturer understøtter nu en indikator af sorteringsretning i topteksten til kolonnen.

Billede, der viser indikator af sorteringsretning

SWT-stykker, der viser sortering efter kolonne (enkel) og sortering efter kolonne (virtuel tabel).

Flytbare kolonner i træer

I Eclipse 3.1 har vi tilføjet muligheden for at flytte kolonner i en tabel. Denne understøttelse er nu tilføjet til træer.

Fremvisningsrækkefølgen af kolonner i en træstruktur kan ændres ved at trække kolonneoverskriften. Rækkefølgen kan også angives vha. programmet.

Billede, der viser flytbare kolonner

Eksempel på stykke.

Forbedret XP-temaunderstøttelse

I Windows XP viser SWT nu strukturbaggrund i skillebladsfoldere. Grupper, etiketter, afkrydsningsfelter osv. er alle transparente for denne baggrund. Nu viser tilpassede widgets, f.eks. StyledText, også den korrekte ramme for det almindelige Windows XP-tema.

Billede, der viser XP-temaunderstøttelse

Der er oplysninger under hyppigt stillede spørgsmål i SWT, hvordan man anvender Windows XP-udseende.

Animerede GIF-filer

Animerede GIF-billeder kan gemmes i en fil.

Billede, der viser understøttelse af animerede GIF-filer

Der er et eksempel under SWT-stykket.

Meddelelse om desktopudseende

Når indstillinger for udseende, f.eks. tema, font eller standardfarver ændres, sendes der en SWT.Settings for Display.

Billede, der viser besked om desktopudseende

Kassér besked

Tidligere blev alle underordnede kasseret, så der ikke kunne henvises til dem, når en SWT.Dispose-aktivitet blev modtaget for en overordnet sammensætning. I 3.2 modtages kasseringsaktiviteten, før underordnede er frigivet i OS.

Tip til kolonner

Værktøjstiptekst kan angives i en kolonneoverskrift til en tabel eller en træstruktur vha. TableColumn/TreeColumn.setTooltipText(String).

Lodret coolBar

En lodret coolbar kan oprettes vha. typen SWT.VERTICAL.

Billede, der viser lodret coolBar

OpenGL-understøttelse

Du kan nu bruge OpenGL i SWT-programmer. Grænsefladen OpenGL fungerer med tredjeparts-OpenGL-biblioteker som LWJGL.

Billede, der viser et OpenGL-eksempel

Der er eksempler under SWT-stykker

Virtuelt træ

Træstrukturen understøtter nu SWT.VIRTUAL-typen. Det gør det muligt at oprette træstrukturer med store mænger data hurtigt. Når TreeItems er nødvendige, oprettes de efter behov.

Der er et eksempel under SWT-stykket.

Knapper med billede og tekst

Knapper kan nu vise billede og tekst. Funktionen understøttes i Windows XP, Mac OS X og GTK.

Billede, der viser en knap med et billede

HIView på Mac OS X

SWT anvender nu HIView på Mac OS X. Det løser mange beskærings- og størrelsesproblemer.

Indlejring af objekter i tekst

Vha. TextLayout er det nu muligt at indlejre objekter som billeder eller widgets i tekst. Figurmetrik som stigende, faldende og bredde kan angives. Objekterne ombrydes med teksten.

Billede, der viser et billede, der er indbygget i tekst

Der er et eksempel under SWT-stykket.

Indryk tekst, stil den på linje og justér den

TextLayout understøtter nu indrykning, justering og opstilling af tekst på linje.

Billede, der viser tekst, der stilles på linje.

Der er et eksempel under SWT-stykket.

Flytning af grundlinje for tekst

Vha. TextLayout og TextStyle er det nu muligt at angive en flytning af en grundlinje for et tekstinterval.

Billede, der viser tekst, der får flyttet grundlinje

Der er et eksempel under SWT-stykket.

HSB-farveunderstøttelse

En farve kan oprettes ved at angive nuance, mætning og lysstyrke. Der kan desuden rettes forespørgsel om nuance, mætning og lysstyrke for en farve.

Billede, der viser HSB-understøttelse

Der er et eksempel under SWT-stykke.

StyledText-opstilling på linje, indrykning og justering

StyledText understøtter nu indrykning, justering og opstilling af tekst på linje.

Billede, der viser StyledText, der stilles på linje

Der er et eksempel under SWT-stykke.

Indbyggede objekter i StyledText

Vha. StyledText er det nu muligt at indlejre objekter som billeder eller widgets i tekst. Objekterne ombrydes med teksten.

Billede, der viser indbygget billede i tekst

Der er et eksempel under SWT-stykke.

Baggrundsbillede

Et baggrundsbillede kan angives i en kontrol. Desuden kan baggrunden overtages af underordnede widgets som etiketter.

Billede, der viser et baggrundsbillede i en kontrol

Der er et eksempel under SWT-stykke.

Native billedindlæsning

Konstruktøren Image(Device enhed, String filnavn) indlæser nu billeder vha. native-kald til styresystemet. Det har forbedret ydeevnen ved indlæsning af billeder og øget den maksimale billedstørrelse, der kan indlæses.

Træk tekst

Hvis aktiviteten SWT.DragDetect tilknyttes Text eller StyledText, bliver valget ikke slettet, når brugeren trækker fra et valgt tekstinterval. Det gør det muligt at understøtte trækning fra Text- og StyledText-widgets.

Der er et eksempel under SWT-stykke.

Ny ExpandBar-widget

ExpandBar-widget'en tillader brugeren at vise og skjule samlinger af widgets ved at klikke på en toptekst. ExpandBar indeholder flere elementer, der hver har et billede og en titel i headeren.

Billede, der viser widgets, der skjules

Der er et eksempel under SWT-stykke.

Bullets i StyledText

StyledText kan nu vise lister, der er formateret med forskellige typografier, herunder bullets, nummerering, store og små bogstaver og brugerdefinerede typografier.

Billede, der viser bullets i StyledText

Der er et eksempel under SWT-stykke.

Træstruktur med tilpasset trækning

Træ-widget'en understøtter nu tilpasset trækning af individuelle celler. Programmer kan udvide det native udseende af træstrukturen ved at tilpasse gengivelsen af data. Programmet styrer rækkehøjde, så flere linjer tekst kan trækkes. Desuden kan det præsentere flere billeder i samme celle, ændre font eller farve flere gange og ændre den måde, markeringer trækkes på.

Billede, der viser tilpasset trækning af individuelle træceller

Der er eksempler under følgende stykker:

Tabel med tilpasset trækning

Tabel-widget'en understøtter nu tilpasset trækning af individuelle celler. Det oprindelige udseende vedligeholdes stadig, når brugere tilpasser, hvordan celler trækkes, for at vise data i en anden form end tekst med et billede, for at vise flere linjer med tekst i en celle, for at ændre font og farve flere gange i samme celle, for at tilsidesætte trækning af native valg osv.

Billede, der viser tilpasset trækning af individuelle tabelceller

Der er eksempler under følgende stykker:

Træk over effekter for tabel og træ

Tabel- og træ-widgets stiller nu visuel tilbagemelding til rådighed for, hvad der trækkes.

Billede, der viser tilbagemelding for træk

Ny klasse for værktøjstip

Den nye værktøjstipklasse kan anvendes til at vise værktøjstip, der ikke er direkte bundet til en kontrol. Disse værktøjstip kan placeres overalt og kan have enten platformens standardudseende eller udseende som en ballon som vist nedenfor.

Billede, der viser værktøjstip med typen ballon