Οι "Φόρμες γραφικού περιβάλλοντος χρήστη" παρέχουν βασική υποστήριξη για λειτουργίες επεξεργασίας πολλαπλών σελίδων όπου μπορείτε να πραγματοποιήσετε δόμηση.
Θα πρέπει να ξεκινήσετε τη δόμηση μιας λειτουργίας επεξεργασίας πολλαπλών σελίδων για "Φόρμες γραφικού περιβάλλοντος χρήστη" επεκτείνοντας την κλάση FormEditor
:
public class SimpleFormEditor extends FormEditor { public SimpleFormEditor() { } protected FormToolkit createToolkit(Display display) { // Create a toolkit that shares colors between editors. 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; }
Ένας πολύ απλός τρόπος να ξεκινήσετε είναι να δημιουργήσετε σελίδες και να τις προσθέσετε όπως φαίνεται παραπάνω.
Κάθε σελίδα χρειάζεται να υλοποιεί την κλάση FormPage
και να αντικαθιστά τη μέθοδο createFormContent(IManagedForm managedForm)
. Προφανώς έχει ήδη δημιουργηθεί στη σελίδα μια διαχειριζόμενη φόρμα και θα πρέπει να δημιουργήσετε περιεχόμενα στην περιεχόμενη φόρμα και επίσης να καταχωρήσετε κάθε τμήμα φόρμας που χρειάζεται να αποτελέσει μέρος του διαχειριζόμενου κύκλου ζωής.
Εκτός από τις σελίδες φόρμας, μπορείτε να προσθέσετε μία ή περισσότερες λειτουργίες επεξεργασίας κειμένου ως εναλλακτικού αδιαμόρφωτου πρωτογενή κώδικα για τις σελίδες GUI. Για το σκοπό αυτό θα πρέπει να καλέσετε στην υπερκλάση τη μέθοδο 'addPage(IEditorPart, IEditorInput input)
'.
Υπάρχουν πολλοί τρόποι για να εγγράψετε μια λειτουργία επεξεργασίας πολλαπλών σελίδων για φόρμες. Εξαρτάται κυρίως από το είδος του περιεχομένου που επεξεργάζεστε και τις ικανότητες των χρηστών. Υπάρχουν δύο τρόποι προσέγγισης:
Αν οι τυπικοί χρήστες δε χρησιμοποιούν συχνά τη λειτουργία επεξεργασίας, είναι δύσκολη η τροποποίηση του αδιαμόρφωτου πρωτογενή κώδικα μη αυτόματα ή είναι σύνθετη, οι χρήστες δεν έχουν πολλές τεχνικές γνώσεις, κ.τ.λ., τότε θα πρέπει να δημιουργήσετε ΟΛΟΚΛΗΡΩΜΕΝΕΣ σελίδες, ικανές να τροποποιήσουν κάθε πτυχή του περιεχομένου χωρίς να χρειάζεται να ανατρέξει κανείς στον αδιαμόρφωτο πρωτογενή κώδικα. Σε αυτή την προσέγγιση, η σελίδα πρωτογενούς κώδικα υπάρχει μόνο για περιστασιακή επικύρωση και όχι για τακτική εργασία. Με αυτό τον τρόπο, μπορείτε να τα καταφέρετε μόνο με μια βασική λειτουργία επεξεργασίας κειμένου. Στην ομάδα αυτή ανήκει η λειτουργία επεξεργασίας σχήματος σημείου επέκτασης PDE.
Αν οι χρήστες έχουν βαθύτερες τεχνικές γνώσεις και δεν έχουν πρόβλημα να τροποποιήσουν το αρχείο μη αυτόματα, αλλά θα επιθυμούσαν κάποια βοήθεια περιστασιακά, εξετάστε την πιθανότητα να παρέχετε μια μεικτή εμπειρία - δημιουργήστε μια καλή λειτουργία επεξεργασίας πρωτογενούς κώδικα με όλες τις προσθήκες, όπως την αυξητική διάρθρωση, την αυτόματη συμπλήρωση περιεχομένου, την επισήμανση σύνταξης, κ.τ.λ.Στη συνέχεια, προσθέστε λειτουργίες με σύνθετη προσθήκη τιμής στις σελίδες φόρμας που είναι δύσκολο να πραγματοποιηθούν από τον πρωτογενή κώδικα. Η εμπειρία μας έχει δείξει ότι είναι δύσκολο να πείσει κανείς περιστασιακούς χρήστες να αλλάξουν απο την τροποποίηση πρωτογενούς κώδικα αν η προσθήκη τιμής είναι οριακή ή αμφισβητίσιμη. Ωστόσο, μια λειτουργία που ήταν διαθέσιμη σε σελίδες GUI και είχε υψηλή ποιότητα χρησιμοποιήθηκε χωρίς προβλήματα.
Η δημιουργία μιας λειτουργίας επεξεργασίας πολλαπλών σελίδων που έχει υψηλή ποιότητα με μεικτό GUI και σελίδες πρωτογενούς κώδικα αποτελεί πρόκληση. Θεωρώντας δεδομένο ότι οι χρήστες θα αλλάζουν συχνά σελίδες απαιτείται ένα καλό μοντέλο του υποκείμενου περιεχομένου. Το μοντέλο θα πρέπει να συνδέεται απευθείας με τα υποκείμενα έγγραφα έτσι ώστε να είναι συγχρονισμένο όταν οι χρήστες πληκτρολογούν απευθείας στο κείμενο αλλά και όταν αλλάζουν τη δομή του μέσα από τις σελίδες GUI (μην ξεχνάτε τις έμμεσες αλλαγές που προκαλούν άλλες ενέργειες του πάγκου εργασίας για όσο διάστημα είναι ενεργή η λειτουργία επεξεργασίας).