Jukselapper leder
brukeren gjennom en serie av komplekse oppgaver for å
oppnå et overordnet mål. En jukselapp kan for eksempel brukes for å lede brukeren gjennom alle
trinnene for opprettelse, kompilering og kjøring av et enkelt Java-program. Jukselapper startes via
menypunktet
Hjelp>Jukselapper.... Jukselappene kan også startes fra en introduksjonsside.
Jukselapper defineres ved hjelp av utvidelsespunktet org.eclipse.ui.cheatsheets.cheatSheetContent. Selve innholdet i jukselappen defineres i en separat fil slik at den enklere kan oversettes til andre språk.
Prosessen med å bidra med jukselapper er ganske enkel. La oss se på en jukselapp fra JDT for bygging av en enkel Java-applikasjon.
<extension point="org.eclipse.ui.cheatsheets.cheatSheetContent"> <cheatsheet name="%cheatsheet.helloworld.name" contentFile="$nl$/cheatsheets/HelloWorld.xml" id="org.eclipse.jdt.helloworld"> <description>%cheatsheet.helloworld.desc</description> </cheatsheet> ...På samme måte som med andre arbeidsbenkbidrag kan det oppgis et navn, en beskrivelse og en ID for jukselappen. Navnet og beskrivelsen vises når brukeren åpner listen via
Det virkelige arbeidet med jukselapper utføres i innholdsfilen. Innholdsfilen er en XML-fil med et navn og en plassering som er oppgitt i attributtet contentFile. Banen til filen er relativ til katalogen for plugin-modulen. (Merk deg bruken av $nl$-variabelen i katalognavnet, som betyr at filen ligger i en katalog som er spesifikk for språket i målmiljøet.)
Selve filformatet omfatter oversiktsinformasjon om jukselappen etterfulgt av en beskrivelse av hvert trinn (eller element) som brukeren skal utføre. I sin enkleste form er et element bare en detaljert beskrivelse av trinnet brukeren skal utføre. Elementet kan imidlertid også angi en handling som skal kjøres for å utføre trinnet på vegne av brukeren. La oss se på den første delen av innholdsfilen (HelloWorld.xml) for Java-jukselappen.
<?xml version="1.0" encoding="UTF-8" ?> <cheatsheet title="Simple Java Application"> <intro href="/org.eclipse.ui.cheatsheets.doc/tasks/tcheatst.htm"> <description> Welcome to the Hello, World Java tutorial. It will help you build the famous "hello world" application and try it out. You will create a java project, and a java class that will print "hello world" in the console when run. Let's get started! </description> </intro> <item href="/org.eclipse.platform.doc.user/concepts/concepts-4.htm" title="Open the Java Perspective"> <action pluginId="org.eclipse.ui.cheatsheets" class="org.eclipse.ui.internal.cheatsheets.actions.OpenPerspective" param1="org.eclipse.jdt.ui.JavaPerspective"/> <description> Select Window->Open Perspective->Java in the menu bar at the top of the workbench. This step changes the perspective to set up the Eclipse workbench for Java development. You can click the "Click to Perform" button to have the "Java" perspective opened automatically. </description> </item> ...
Tittelen og introduksjonsinformasjonen vises øverst i jukselappen. Deretter beskrives elementene. Det første elementet for denne jukselappen beskriver hvordan du åpner Java-perspektivet. Dessuten angir attributtet action en klasse som kan brukes til å kjøre handlingen på vegne av brukeren. Klassen må implementere IAction. Dette er praktisk i og med at du får mulighet til å bruke handlingsklassen som er skrevet for meny- eller verktøylinjebidrag, på nytt.
Klassen for handlingen kan eventuelt implementere ICheatSheetAction hvis handlingen bruker parametere eller må være oppmerksom på jukselappen og tilstanden i jukselappen. I så fall sendes handlingen en matrise over parametere og en referanse til ICheatSheetManager slik at den kan be om ytterligere informasjon om jukselappen. Alle nødvendige parametere kan sendes til handlingens kjøremetode ved hjelp av attributtene paramN.
Det anbefales på det sterkeste at handlinger som er aktivert fra jukselapper, rapporterer om vellykket/mislykket resultat hvis kjøring av handlingen kan mislykkes. (Det kan for eksempel hende at brukeren avbryter handlingen fra dialogboksen.) Du finner mer informasjon under IAction.notifyResult(boolean).
Elementer trenger ikke å definere handlinger. Hvis elementet skal utføres manuelt av brukeren, trenger du ikke å angi noen handling. Nedenfor ser du det tredje trinnet i Java-jukselappen. Her angis det simpelthen hvordan brukeren skal kode den enkle applikasjonen. Når det ikke angis noen handling, må elementbeskrivelsen angi at brukeren skal velge en knapp etter at oppgaven er utført.
<item href="/org.eclipse.jdt.doc.user/tasks/tasks-54.htm" title="Add a System.out.println line in your main method"> <description> Now that you have your HelloWorld class, In the "public static void main" method, add the following statement: System.out.println("Hello world!"); and save your changes. Press the "click when done" button below when finished. </description> </item>Ytterligere attributter styrer om det skal hoppes helt over elementet og hvilket dokument som skal startes hvis brukeren ber om hjelp med dette trinnet. Se dokumentasjonen for utvidelsespunktet org.eclipse.ui.cheatsheets.cheatSheetContent hvis du trenger en beskrivelse av alle attributtene som kan defineres i en jukselapp.
Det kan defineres underelementer for å ytterligere ordne presentasjonen av et element. I motsetning til elementer behøver ikke underelementer å besøkes i en bestemt rekkefølge. Underelementer kan også definere handlinger som automatisk utfører deloppgaven for brukeren. Deloppgavehandlinger beskrives på samme måte som elementhandlinger.
Betingede uttrykk kan brukes for å definere jukselappelementer som har et innhold eller funksjonalitet som avhenger av at en bestemt betingelse er oppfylt. Betingelser beskrives i condition-elementet for et underelement der vilkårlige strengverdier for hvert valg samsvares med when-attributtet. Betingelser refererer vanligvis til jukselappvariabler med formatet ${var}, der var refererer til navnet på en jukselappvariabel. Vi skal se på noen enkle eksempler på hvordan betingede uttrykk fungerer.
Betingede underelementer kan brukes til å velge et underelement fra en liste over mulige underelementer. Det er bare det første underelement som har et when-attributt som samsvarer med betingelsesattributtet, som tas med i jukselappen. Eksempel:
<item ...> <conditional-subitem condition="${v1}"> <subitem when="a" label="Step for A." /> <subitem when="b" label="Step for B." /> </conditional-subitem> </item>Elementet angir to mulige underelementer som avhenger av verdien i variabelen v1. Hvis variabelverdien er a, tas det første underelementet med. Hvis variabelverdien er b, tas det andre underelementet med. Hvis variabelen ikke har noen av verdiene, betraktes den som feil.
Betingede handlinger likner på betingede underelementer. Elementet perform-when angir en betingelse for utføring av en handling på en liste over mulige handlinger. Betingelsen beskrives på samme måte, ved hjelp av en vilkårlig streng som ofte refererer til en variabel. Handlingen som har et when-attributt som samsvarer med betingelsen, vil bli utført. Eksempel:
<item ...> <perform-when condition="${v1}"> <action when="a" class="com.example.actionA" pluginId-"com.example" /> <action when="b" class="com.example.actionB" pluginId-"com.example" /> </perform-when> </item>Handlingen som skal utføres velges på bakgrunn av verdien i v1-variabelen. Hvis variabelen verken har verdien a eller b, betraktes den som feil.
Gjentatte underelementer beskriver et underelement som kan utvides til 0, 1 eller flere liknende deltrinn. Deltrinnene gjøres individuelle ved hjelp av spesialvariabelen ${this}. Denne variabelen erstattes av verdiene som er angitt i values-attributtet. Verdiattributtet er en streng med verdier som er atskilt med komma. En variabel som utvides til en liste med verdier, kan brukes i verdiattributtet. Eksempel:
<item ...> <repeated-subitem values="${v1}"> <subitem label="Step ${this}" /> </repeated-subitem> </item>Hvis verdien i variabelen er 1,b,three, vil det bli vist tre underelementer på jukselappen med en unik etikett for hver av dem ("Step 1," "Step b," "Step three"). Variabelen kan brukes i etiketten eller handlingsparameterverdien. Den kan også hentes fra ICheatSheetManager, mens handlingen utføres.
Av og til vil du kanskje endre andre deler av brukergrensesnittet hvis en jukselapp er aktiv. Det kan for eksempel hende at du har et redigeringsprogram som viser spesialannotasjoner, hvis en jukselapp leder brukeren gjennom en redigeringsoppgave. I så fall kan det oppgis en lytter som et attributt for jukselappen. Dette attributtet må være et fullt kvalifiserte navn på Java-klassen som bruker CheatSheetListener som subklasse. Lyttere mottar melding sammen med en ICheatSheetEvent når det oppstår en endring i jukselappens livssyklus, for eksempel når den åpnes, lukkes eller fullføres.
Utvidelsen org.eclipse.ui.cheatsheets.cheatSheetItemExtension kan brukes til å oppgi vilkårlige attributter for en jukselapp som allerede finnes. Hensikten med dette utvidelsespunktet er å tillate at en plugin-modul legger til ytterligere knapper for å hjelpe brukeren med et bestemt trinn. Disse tilleggsknappene vises ved siden av hjelpeikonet.
Hvis du vil bruke denne mekanismen, kan du definere eventuelle vilkårlige attributter i en elementdefinisjon i XML-filen for jukselappen. Attributtnavnet samsvares med attributter som er oppgitt i utvidelser for org.eclipse.ui.cheatsheets.cheatSheetItemExtension. Du finner mer informasjon i dokumentasjonen for utvidelsespunktet.
Arbeide med jukselapper
Opprette sammensatte jukselapper
Forfatterretningslinjer
Utvidelsespunktet
org.eclipse.ui.cheatsheets.cheatSheetContent
Spesifikasjon av jukselappens innholdsfil