UI-formularer indeholder basisunderstøttelse til editorer med flere sider, som du kan bygge videre på.
Du skal begynde med at bygge en flersides-editor til UI-formularer ved at udvide FormEditor
:
public class SimpleFormEditor extends FormEditor { public SimpleFormEditor() { } protected FormToolkit createToolkit(Display display) { // Opret toolkit, hvis farver editorer kan være fælles om. return new FormToolkit(ExamplesPlugin.getDefault().getFormColors( display)); } protected void addPages() { try { addPage(new FreeFormPage(this)); addPage(new SecondPage(this)); addPage(new ThirdPage(this)); addPage(new MasterDetailsPage(this)); addPage(new PageWithSubPages(this)); } catch (PartInitException e) { // } } public void doSave(IProgressMonitor monitor) { } public void doSaveAs() { } public boolean isSaveAsAllowed() { return false; }
En meget enkel måde at komme i gang på er at oprette sider og tilføje dem som nævnt ovenfor.
Hver side skal implementere FormPage
og tilsidesætte metoden createFormContent(IManagedForm managedForm)
. Tilsyneladende er der allerede oprettet en styret formular på siden, så du skal oprette indholdet i den indrammede formular og desuden registrere alle de formulardele, der skal være en del af den styrede livscyklus.
Foruden formularsider kan du tilføje en eller flere teksteditorer som rå kilde og som alternativ til GUI-siderne.
Det kræver, at du kalder metoden 'addPage(IEditorPart, IEditorInput input)
' i superklassen.
Du kan skrive en formularbaseret editor på flere sider på mange måder. Måden afhænger hovedsageligt af, hvilken type indhold du redigerer, og af brugerniveauet. Du kan håndtere det på to måder:
Hvis de typiske brugere ikke benytter editoren ret ofte, hvis kilden er svær at redigere manuelt eller kompleks, hvis brugerne ikke er særligt teknisk velfunderede, osv., skal du udforme nogle fuldstændige sider, som kan redigere alle aspekter af indholdet uden behov for at støtte sig til den rå kilde. Med denne metoden bruges kildesiden kun til sporadisk validering og ikke til almindeligt arbejde. Her kan du nøjes med en editor til basistekst. Skemaeditoren til PDE-udvidelsespunkter hører til denne gruppe.
Hvis brugerne er mere tekniske, ikke har noget problem med at redigere filen manuelt, men gerne vil have hjælp en gang imellem, kan du overveje en blandet løsning - at udforme en god kildeeditor med alle addons, som f.eks. trinvis struktur, konteksthjælp, fremhævning af syntaks, osv. Derefter kan du tilføje kompleks 'value-added' funktionalitet på de formularsider, der er svære at hente fra kilden. Vi ved af erfaring, at det er meget vanskeligt at overbevise hærdede brugere om, at de skal gå bort fra kilderedigering, hvis værdiforøgelsen er marginal eller diskutabel. Imidlertid kunne funktioner, som kun var tilgængelige på grafiske brugergrænsefladesider og af meget høj kvalitet, nemt bruges.
At oprette en editor på flere sider af høj kvalitet og med blandede brugergrænseflade- og kildesider indebærer nogle udfordringer. Hvis man accepterer, at brugerne skifter side ofte, kræves der en god model af det underliggende indhold. Modellen skal være direkte knyttet til de(t) underliggende dokument(er), så den er synkroniseret, både når brugerne indtaster teksten direkte, og når de ændrer dens struktur via de grafiske brugergrænsefladesider (glem heller ikke de indirekte ændringer forårsaget af andre arbejdsbænkfunktioner, mens editoren stadig er oppe).