Nyheter i 3.2

Här beskrivs några av de ändringar i Eclipse-plattformen och SWT för version 3.2 av Eclipse som är av intresse för utvecklare av insticksprogram.

Det finns även många nya funktioner som främst är avsedda för slutanvändare i plattformen. De beskrivs i avsnittet Nyheter i användarhandboken för arbetsmiljön.

Ändringar på plattformen

Omfaktorisering av Runtime

I syfte att göra Eclipse Runtime mer flexibelt och möjliggöra oberoende användning av Runtime-komponenter har insticksprogrammet org.eclipse.core.runtime delats upp i flera insticksprogram:

  • org.eclipse.equinox.common - gemensam kod som används för fler än en komponent av det tidigare Runtime-insticksprogrammet (till exmepel IPath, IStatus, IProgressMonitor).
  • org.eclipse.equinox.registry - Utökningsregister
  • org.eclipse.equinox.preferences - Preferences Mechanism
  • org.eclipse.core.jobs - Jobs Mechanism
  • org.eclipse.core.contenttype - Content Mechanism
  • org.eclipse.equinox.supplement - När det här tilläggsinsticksprogrammet används går det att köra utan OSGi.

Nya API:er lades till för att underlätta kontroll av de delade Runtime-komponenter.

Omfaktorisering av Runtime bör vara transparent för andra insticksprogram. Mer information finns i migreringshandboken för Eclipse 3.2.

Gemensam navigeringsvy

Med ett nytt insticksprogram, org.eclipse.ui.navigator, införs ett nytt ramverk för bygge av visningsprogram där innehåll från flera domänmodeller kombineras. Ramverket har funktioner för deklarativa tillägg av innehåll, etiketter, åtgärder, filter och andra funktioner. I insticksprogrammet org.eclipse.ui.navigator.resources kan det här ramverket användas på ett konkret sätt i form av vyn Projektutforskaren och deklarativa visningsprogramsutökningar för modellen IResource.

Bild av projektutforskarvyn

Ramverk med egenskapsflikar

Ett ramverk med egenskapsflikar har lagts till. Ramverket med egenskapsflikar innehåller ett egenskapsark där egenskaper kan visas i egenskapsvyn med hjälp av slumpmässiga kontroller som är sorterade efter flikar och avsnitt som läggs till via utökningsregistret.

Bild av ett ramverk med egenskapsflikar

Mer information finns i artikeln om Eclipse-vyn med egenskapsflikar.

API för filsystem

Med ett nytt insticksprogram, org.eclipse.core.filesystem, införs ett nytt generiskt API för interaktion med filsystem. Plattformen har migrerats så att det här filsystems-API:t används i stället för java.io-API:er. Det innebär att resurser kan skapas i säkerhetskopieringsfilsystem och insticksprogram kan användas med nya typer av filsystem.

Funktioner för användning av projektguiden och guiden för länkade resurser har lagts till så att det går att skapa resurser som är länkade till andra filsystem. Insticksprogram där alternativa filsystem definieras kan utnyttja de här funktionerna för användning av guide med hjälp av utökningspunkten org.eclipse.ui.ide.filesystemSupport.

Bild av ett filsystem som inte är lokalt

Kategorisering tillagd till Import och Export

Utökningspunkterna org.eclipse.ui.importWizards och org.eclipse.ui.exportWizards har nu funktioner för kategorisering.

Bild av utökningspunkter

Verktygstips för anteckningar i textredigerare

Förklaringstext för anteckningar har flyttats ned från JDT Text till Platform Text. Förklaringstextsfunktioner för text, vertikal linjal och översiktslinjal installeras av TextSourceViewerConfiguration som används i textredigerare:

Bild av anteckningsverktygstips

Anteckningsnavigering i textredigerare

Anteckningsnavigering har flyttats ned från JDT Text till Platform Text.

Bild av navigeringsikoner

Fälthjälp i JFace

JFace har nya funktioner för att ge användaren hjälp när han eller hon fyller i fält i dialogrutor och formulär. Paketet org.eclipse.jface.fieldassist innehåller klasser som du kan använda till att dekorera slumpmässiga kontroller med bilder och motsvarande förklaringstext. De kan till exempel användas till att markera obligatoriska fält i en dialogruta, visa fältbaserade felvillkor eller visa innehållshjälpsfrågor. Med hjälp av paketet kan du även installera innehållsförslag för en kontroll, inklusive en dialogruta med innehållsförslag, sekundära dialogrutor med mer information och alternativ för anrop av förslag, explicit eller automatiskt (automatisk ifyllning).

Bild av fälthjälp

Förbättringar i JFace TreeViewer

AbstractTreeViewer har nu funktioner för flera element på samma nivå i ett träd, vart och ett med en separat överordnad kedja. För de här funktionerna krävs att klienter aktiverar elementavbildningen genom att anropa setUseHashLookup(true).

TreeViewer har nu funktioner för SWT.VIRTUAL-träd. Det finns en motsvarande snabbinnehållsleverantör, ILazyTreeContentProvider, som endast returnerar innehåll allt eftersom det behövs.

Funktioner för dynamiskt hjälpinnehåll

Hjälpsystemet har nu funktioner för dynamisk sammanställning av hjälpinnehåll. Avsnitt som skapas i XHMTL kan innehålla extra Eclipse-specifika märkord för snabbfiltrering av innehåll baserat på os-/ws-/arch-värden, vilka insticksprogram som används, aktiverade funktioner osv. Delat innehåll kan ingå i flera dokument. Slutligen kan insticksprogram lägga till XHTML-fragment som ansluts till ankare i andra dokument. Allt det här gör det nu möjligt för informationsutvecklare att tillhandahålla dynamiska dokument som anpassar sig själva efter sammanhanget när de öppnas.

Förbättringar av hjälpsökfunktioner

Indexering och sökning i användarhjälpen har förbättrats på olika sätt. Fler sökningdeltagare kan registreras via den utökningspunkt som kan lägga till innehåll till Lucene-indexet. I hjälpen ingår nu en XHTML-sökningsdeltagare som kan indexera dynamiska hjälpdokument som skapats i XHMTL (se ovan). Dessutom visas nu dokument som tidigare inte ingick i indexet (till exempel lathundar och Welcome-sidor). Sökträffar kan nu ha olika ikoner och öppningsåtgärden kan delegeras till sökmotorn.

Bild av sökningsförbättringar

Problem kan grupperas

Problem i vyn Problem kan nu grupperas. Det finns standardgrupperingar efter allvarlighetsgrad och problemtyp och extra grupper kan definieras via utökningspunkten org.eclipse.ui.ide.markerSupport.

Förbättrad hjälp i dialogrutor

I de flesta av dialogrutorna i Eclipse finns nu en standardhjälpknapp i det nedre vänstra hörnet. Den här knappen används till att öppna sammanhangsberoende hjälp (detsamma som att trycka på F1 i Windows). Dessutom visas nu hjälpinnehållet i dialogrutans nedre fält i stället för i ett separat fönster. Anpassade dialogrutor kan ärva de här funktionerna genom att de får underklassen TrayDialog i stället för Dialog. Lathundar kan även fortsätta visas i dialogrutor (i det nedre fältet) för de steg som inbegriper att dialogrutor öppnas.

Bädda in kommandolänkar i användarhjälpsinnehåll

Kommandon kan nu köras från länkar i hjälp, lathundar och introduktionsinnehåll när de aktiveras av användaren. Kommandolänkar kan användas till att öppna inställningssidor, guider, vyer, perspektiv och många andra ändamål. Kommandoramverket är utökningsbart så det finns många andra användningsmöjligheter för kommandolänkar. Användarhandboken för arbetsmiljön har utökats med kommandolänkar på många platser. Bilden nedan visas två kommandolänkar i ett hjälpavsnitt:

Kommandolänkar i hjälpavsnitt

Funktioner för att starta kommandon från lathundar

Kommandon kan nu startas från lathundar. Innehållsfilen nedan innehåller kommandon för att öppna sökvyn och paketutforskaren.
<?xml version="1.0" encoding="UTF-8"?>
<cheatsheet title="Exempel på kommandon i en lathund">
  <intro>

    <description>I en lathund visas
			paketutforskaren</description>
  </intro>
  <item title="Visa sökvyn">
     <description>Det här är ett steg med ett kommando
som används till att visa sökvyn. </description>

     <command serialization=
		"org.eclipse.search.ui.views.SearchView"/>  
  </item>
  <item title="Steg 2">
    <description>Det här är ett steg med ett kommando och
		parametrar som visar paketutforskaren. </description>

     <command serialization="org.eclipse.ui.views.showView(
		org.eclipse.ui.views.showView.viewId=
		org.eclipse.jdt.ui.PackageExplorer)"/> 
     <onCompletion>
         Kommandoexempel slutfört.
     </onCompletion>
  </item>
</cheatsheet>

Slutförandemeddelande

Ett slutförandemeddelande som visas när steget är slutfört kan läggas till i ett steg i en lathund.

Bild av ett slutförandemeddelande i en lathund

Sammansatta lathundar

Sammansatta lathundar är nya för Eclipse 3.2. Sammansatta lathundar ger vägledning vid stora problem genom att problemet delas upp i mindre åtgärder som var och en har en egen lathund. Åtgärder kan sorteras i grupper. Sammansatta lathundar öppnas i lathundsvyn från dialogrutan Val av lathund. Varje åtgärd har en beskrivning och användaren leds genom en följd åtgärder via hyperlänkar.

Bild av sammansatt lathund

Sammansatta lathundar har ett träd som visar åtgärderna och status för dem. Den högra nedre rutan innehåller de enskilda åtgärderna.

Bilda av en sammansatt lathund

Innehållet i en sammansatt lathund definieras i en XML-fil. I innehållsfilen kan beroenden mellan åtgärder anges så att en åtgärd endast kan utföras efter att de åtgärder som måste ha utförts innan den har slutförts.

Nyckelordsindex för hjälp

Hjälpen har nu ett nyckelordsindex där du kan registrera nyckelord från din dokumentation och tillhandahålla en länk till motsvarande hjälpdokument. Indexet är tillgängligt i både hjälpvyn och hjälpfönstret (vyn visas nedan).

Obs! Indexinnehåll är inte tillgängligt ännu för SDK (indexet visas endast om innehållet är tillgängligt).

Bild av hjälpvyn

Konverteringsverktyg för XHTML-hjälpdokument

PDE har ett nytt verktyg för snabb konvertering av ett insticksprograms HTML-hjälpdokument till XHTML. Förutom konvertering av HTML till giltig XHTML uppdaterar verktyget filnamnstillägget, innehållsförteckningen och lägger till de nödvändiga bindningarna för aktivering av dynamiskt innehåll och sökning efter XHTML-innehåll. Efter den här konverteringen kan användare använda de nya hjälpfunktionerna i version 3.2, till exempel dynamisk innehållsfiltrering, återanvändning av innehåll och dynamiskt innehållstillägg, som alla kräver XHTML som innehållsformat.

Den här funktionen kan anropas via PDE-verktyg > Konvertera hjälpfiler till XHTML från kontextmenyn i insticksprogramsprojekt.

Bild av XHTML-konverteringsverktyg

Universal welcome

Baserat på vår erfarenhet av konkreta Welcome-implementationer kan vi nu erbjuda en konfigurerbar Universal Welcome som kan användas i valfri produkt. Det finns sju fördefinierade huvudavsnitt att välja mellan för produkter: Översikt, Första gången, Självstudiekurser, Exempel, Nyheter, Webbresurser och Migrera (Eclipse SDK använder fyra av dem). Universal Welcome har konfigurerbara sidlayouter och angelägenhetsnivåer för varje tillägg och har fullständiga temafunktioner. Det finns som både HTML- och SWT-presentation för 100 % plattformstäckning.

En Welcome-inställningssida som tillhandahålls av Universal Welcome gör det möjligt för slutanvändare att anpassa Welcome. Den kan läggas till i valfri produkt. Mer information om det här finns i specifikationen för Universal Welcome.

Bild av Universal Welcome

Funktioner för konfiguration av teman i Welcome

Intro-ramverket har större konfigurationsmöjligheter. Det går att lägga till en Intro-konfigurationsfunktion som tillhandahåller engångsberäkningar av underordnade gruppobjekt, funktioner för variabelersättning och sen ankarsökvägstolkning. Den här möjligheten utnyttjas mycket i Universal Welcome men kan även användas i andra Welcome-implementationer.

Teman representerar namngivna samlingar av CSS-filer, -egenskaper och -bilder som tillsammans definierar Welcome-innehållets utseende. I Universal Welcome utnyttjas den här möjligheten genom att funktioner för temaval och två konkreta teman - Cirklar och Lila rutnät - tillhandahålls i 3.2.

Bild av teman i Welcome

Namnutrymmesfunktioner för Ant-utökningspunkter

Utökningspunkterna org.eclipse.ant.core, antTasks och antTypes har nu funktioner för att ange en URI för definitionen. Fullständig information om alla ändringar finns i bug 133190.

Gruppfunktioner för integrering av logiska modeller

API har lagts till som gör det möjligt för logiska modeller att delta i gruppåtgärder. Med det här API:t kan gruppleverantörer:
  • Kontrollera modellerna och se till att alla obligatoriska resurser ingår i en gruppåtgärd.
  • Använda modellsemantik som hjälp för att lösa sammanfogningskonflikter.
  • Tillåta modeller att delta i visningen av resurser vid gruppåtgärder

Synkronisering med Java- och resursmodeller

SWT-ändringar

Sorteringsindikator i tabeller och träd

En indikator för sorteringsriktning kan nu användas i kolumnrubriken i tabeller och träd.

Bild av indikator för sorteringsriktning

SWT-kodstycken visar sortering efter kolumn (enkel) och sortering efter kolumn (virtuell tabell).

Omsorteringsbara kolumner i träd

I Eclipse 3.1 lade vi till en funktion för att ändra sortering för kolumner i en tabell. Den funktionen finns nu även för träd.

Du kan ändra kolumnordning i ett träd genom att dra kolumnrubriken eller så kan du ange den genom programmering.

Bild av omsorteringsbara kolumner

Exempel: kodstycke.

Förbättrade XP-temafunktioner

I Windows XP visas nu bakgrund med struktur i flikmappar. Grupper, etiketter, kryssrutor osv. är alla transparenta på bakgrunden. Dessutom visar nu anpassade kodstycken, till exempel StyledText, rätt kantlinje för det aktuella Windows XP-temat.

Bild av XP-temafunktioner

Anvisningar för hur du kör med ett Windows XP-skal finns i avsnittet med frågor och svar för SWT.

Animerade GIF-bilder

Animerade GIF-bilder kan sparas i en fil.

Bild av funktioner för animerade GIF-bilder

Exempel: se SWT-kodstycke.

Avisering om skrivbordsutseende

När utseendeinställningar, till exempel tema, teckensnitt eller standardfärger, ändras för skrivbordet utfärdas en SWT.Settings-händelse för Display.

Bild av en avisering om skrivbordsutseende

Borttagningsavisering

Tidigare gällde att när en SWT.Dispose-händelse togs emot för en överordnad sammansättning togs alla underordnade objekt bort och det gick därför inte att referera till dem. I 3.2 tas borttagningshändelsen emot innan de underordnade objekten har frigjorts i operativsystemet.

Verktygstips för kolumner

Verktygstipstext kan anges för en tabell- eller trädkolumnsrubrik med hjälp av TableColumn/TreeColumn.setTooltipText(String).

Vertikalt CoolBar

Ett vertikalt coolbar kan skapas med hjälp av formatet SWT.VERTICAL.

Bild av vertikalt CoolBar

Funktioner för OpenGL

Du kan nu använda OpenGL i SWT-program. OpenGL-gränssnittet kan användas för OpenGL-bibliotek från tredje part, till exempel LWJGL.

Bild av ett OpenGL-exempel

Exempel: se SWT-kodstycken

Virtuellt träd

Träd har nu funktioner för formatet SWT.VIRTUAL. Det gör det möjligt att snabbt skapa träd med stora mängder data. När TreeItems krävs skapas de på begäran.

Exempel: se SWT-kodstycke.

Knappar med bild och text

Det går nu att visa både bild och text på knappar. Funktionen kan användas i Windows XP, Mac OS X och GTK.

Bild av en knapp med en bild

HIView för Mac OS X

I SWT används nu HIView för Mac OS X. Det löser många beskärnings- och storleksproblem.

Bädda in objekt i text

Med hjälp av TextLayout är det nu möjligt att bädda in objekt, till exempel bilder eller kodstycken, i text. Glyfnyckeltal, till exempel stigning, sänkning och bredd, kan anges. Objekt radbryts med texten.

Bild av en bild inbäddad i text

Exempel: se SWT-kodstycke.

Indrag, justering och marginaljustering för text

TextLayout har nu funktioner för indrag, justering och marginaljustering av text.

Bild av text som justeras

Exempel: se SWT-kodstycke.

Stigning av textbaslinje

Med hjälp av TextLayout och TextStyle är det nu möjligt att ange baslinjestigning för ett textintervall.

Bild av text där baslinjestigning används

Exempel: se SWT-kodstycke.

Funktioner för NMI-färger

En färg kan skapas genom att nyans, mättnad och intensitet anges. Dessutom går det att ställa frågor om nyans, mättnad och intensitet för en viss färg.

Bild av funktioner för HSB

Exempel: se SWT-kodstycke

StyledText-justering, indrag, marginaljustering

StyledText har nu funktioner för indrag, justering och marginaljustering av text.

Bild av StyledText som justeras

Exempel: se SWT-kodstycke

Inbäddade objekt i StyledText

Med hjälp av StyledText kan du nu bädda in objekt, till exempel bilder eller kodstycken, i texten. Objekt radbryts med texten.

Bild av en inbäddad bild i text

Exempel: se SWT-kodstycke

Bakgrundsbild

En bakgrundsbild kan anges i en kontroll. Dessutom kan bakgrunden ärvas av underordnade gränssnittskontroller, till exempel etiketter.

Bild av bakgrundsbild i en kontroll

Exempel: se SWT-kodstycke

Intern bildinläsning

Konstruktorn Image(Device device, String filename) läser nu in bilder med hjälp av interna operativsystemsanrop. Det här har förbättrat prestanda för bildinläsning och ökat den största tillåtna storleken för bilder som kan läsas in.

Dra text

Om händelsen SWT.DragDetect används för Text eller StyledText tas markeringen inte bort när användaren drar från ett markerat textstycke. Det gör det möjligt att dra från gränssnittskontrollerna Text och StyledText.

Exempel: se SWT-kodstycke

Ny ExpandBar-gränssnittskontroll

Gränssnittskontrollen ExpandBar gör det möjligt för användaren att visa och dölja samlingar av gränssnittskontroller genom att klicka på en rubrik. ExpandBar innehåller flera objekt som vart och ett kan ha en bild och ett namn i rubriken.

Bild av gränssnittskontroller som döljs

Exempel: se SWT-kodstycke.

Punktlistor i StyledText

I StyledText kan listor visas i en mängd olika format, till exempel punktlistor, numrerade listor, versaler eller gemener och anpassade format.

Bild av en punktlista i StyledText

Exempel: se SWT-kodstycke.

Träd med anpassad ritning

Trädgränssnittskontrollen har nu funktioner för anpassad ritning för enskilda celler. Med hjälp av program kan du förbättra trädets utseende genom att anpassa återgivningen av data. Programmet har kontroll över radhöjden så att flera rader med text kan ritas. Dessutom kan du visa flera bilder i samma cell, ändra teckensnitt eller färg flera gånger och ändra hur markeringar ritas.

Bild av anpassad ritning för enskilda trädceller

Exempel: se följande kodstycken:

Tabell med anpassad ritning

Tabellgränssnittskontrollen har nu funktioner för anpassad ritning för enskilda celler. Användare kan, utan att ändra tabellens utseende, anpassa hur celler ritas för att visa data i ett annat format än text med bild, visa flera rader med text i en cell, ändra teckensnitt och färg flera gånger i samma cell, åsidosätta intern markeringsritning osv.

Bild av anpassad ritning för enskilda tabellceller

Exempel: se följande kodstycken:

Effekter vid dra-åtgärder för tabeller och träd

Tabell- och trädgränssnittskontrollerna ger nu visuell respons vid dra-åtgärder.

Bild av respons vid dra-åtgärd

Ny verktygstipsklass

Den nya verktygstipsklassen kan användas till att visa verktygstips som inte är direkt kopplade till en kontroll. Verktygstipsen kan placeras på valfri plats och antingen ha ett utseende som överensstämmer med plattformsstandard eller bubbelformat, som i bilden nedan.

Bild av verktygstips i bubbelformat