org.eclipse.ui.newWizards

Μπορείτε να προσθέσετε έναν οδηγό στις επιλογές μενού Αρχείο > Δημιουργία του πάγκου εργασίας χρησιμοποιώντας το σημείο επέκτασης org.eclipse.ui.newWizards. Το παράδειγμα του εργαλείου διαχείρισης αρχείων readme χρησιμοποιεί αυτό τον ορισμό του σημείου επέκτασης για να προσθέσει τον οδηγό αρχείου readme:

<extension
      point = "org.eclipse.ui.newWizards">
	<category
	   id = "org.eclipse.ui.examples.readmetool.new"
	   parentCategory="org.eclipse.ui.Examples"
	   name="%NewWizard.category">
	</category>
 	<wizard
	   id = "org.eclipse.ui.examples.readmetool.wizards.new.file"
      	   name = "%NewWizard.name"
	   class="org.eclipse.ui.examples.readmetool.ReadmeCreationWizard"
	   category="org.eclipse.ui.Examples/org.eclipse.ui.examples.readmetool.new"
	   icon="icons/obj16/newreadme_wiz.png">
    	   <description>%NewWizard.desc</description>
	   <selection class="org.eclipse.core.resources.IResource"/>
	</wizard>
</extension>

Η category περιγράφει την ομαδοποίηση του οδηγού.  Μια προαιρετική parentCategory καθιερώνει τη νέα κατηγορία ως το θυγατρικό μιας υπάρχουσας κατηγορίας.

Οι κατηγορίες ανωτέρου επιπέδου θα εμφανιστούν στο μενού Αρχείο > Δημιουργία .  Σε αυτό το παράδειγμα, η parentCategory ορίζεται σε μια κατηγορία "Παραδείγματα".  Από πού προήλθε η γονική κατηγορία;  Η πρόσθετη λειτουργία org.eclipse.ui ορίζει μια κατηγορία τυπικών παραδειγμάτων στη μορφοποίησή της:

<extension
        point="org.eclipse.ui.newWizards">
      <category
          name="%NewWizards.Category.Examples"
          id="org.eclipse.ui.Examples">
      </category>
    ...

Αυτή η κατηγορία εμφανίζεται στο μενού Αρχείο > Δημιουργία .

Νέο μενού με την κατηγορία "Παράδειγμα"

 

Η κατηγορία εργαλείου διαχείρισης αρχείων readme name ορίζει την ετικέτα που χρησιμοποιείται για το επόμενο επίπεδο ομαδοποίησης κάτω από τη γονική κατηγορία.  Αυτές οι κατηγορίες εμφανίζονται ως το δεύτερο επίπεδο στη διακλάδωση που εμφανίζεται στον οδηγό Δημιουργία παραδείγματος.  Το όνομα και το εικονίδιο του οδηγού εμφανίζονται από κάτω όταν αναπτύξετε την κατηγορία.  Η περιγραφή του επιλεγμένου οδηγού εμφανίζεται στην αρχή του οδηγού όταν τον επιλέξετε.

Οδηγός δημιουργίας παραδείγματος με καταχωρήσεις αρχείου readme

Αυτές οι πληροφορίες σχετικά με τον οδηγό εμφανίζονται μόνο λόγω της μορφοποίησης στο αρχείο plugin.xml.  Κανένα τμήμα του κώδικα της πρόσθετης λειτουργίας δεν εκτελείται μέχρι να επιλέξει ο χρήστης το κουμπί Επόμενο.  Μόλις γίνει αυτό, ο πάγκος εργασίας θα δημιουργήσει μια χρήση της class του οδηγού που προσδιορίζεται στη μορφοποίηση και θα της περάσει μια αναμενόμενη class επιλογής.

Η κλάση που ταυτοποιείται σε αυτή τη επέκταση (ReadmeCreationWizard) πρέπει να υλοποιεί τη διεπαφή INewWizard.  Αυτό συμβαίνει στους περισσότερους οδηγούς με την επέκταση της κλάσης Wizard της πλατφόρμας, παρόλο που αυτό αποτελεί ένα μηχανισμό υλοποίησης και δεν απαιτείται από το σημείο επέκτασης.

Ο οδηγός δεν κάνει τίποτα περισσότερο από το να δημιουργήσει τις σελίδες μέσα σε αυτόν. Ας εξετάσουμε πρώτα την υλοποίηση της σελίδας και κατόπιν θα επιστρέψουμε στον οδηγό.

Σελίδες

Ο πάγκος εργασίας παρέχει βασικές κλάσεις σελίδων των οδηγών που υποστηρίζουν το είδος επεξεργασίας που εκτελείται για κάθε σημείο επέκτασης οδηγού. Μπορείτε να χρησιμοποιήσετε αυτές τις σελίδες ή να τις επεκτείνετε για να προσθέσετε επιπρόσθετη επεξεργασία.

Ο σκοπός της ReadmeCreationWizard είναι να δημιουργήσει ένα νέο αρχείο, να προσθέσει το απαιτούμενο περιεχόμενο στο αρχείο και, ως επιλογή, να ανοίξει μια λειτουργία επεξεργασίας στο αρχείο. Η σελίδα μας χρειάζεται να ορίσει τα στοιχεία ελέγχου που επιτρέπουν στον χρήστη να καθορίσει το περιεχόμενο που θα εισαχθεί στο αρχείο και το εάν θα πρέπει να εκκινήσει μια λειτουργία επεξεργασίας.

Δημιουργούμε την σελίδα οδηγού, ReadmeCreationPage, επεκτείνοντας την κλάση WizardNewFileCreationPage. Τα στοιχεία ελέγχου για μια σελίδα οδηγού ορίζονται με παρόμοιο τρόπο όπως αυτόν που γίνεται για τα στοιχεία ελέγχου για μια προβολή ή μια λειτουργία επεξεργασίας. Η σελίδα υλοποιεί μια μέθοδο createControl, δημιουργώντας τα απαραίτητα όργανα SWT ως θυγατρικά της παρεχόμενης κλάσης Composite. Εφόσον η υπερκλάση προσθέτει ήδη όργανα τα οποία υποστηρίζουν την επεξεργασία νέων αρχείων, χρειαζόμαστε μόνον να επεκτείνουμε τη μέθοδο createControl στη σελίδα του οδηγού μας για να προστεθούν τα επιπρόσθετα τετραγωνίδια επιλογής τα οποία ελέγχουν τη δημιουργία των ενοτήτων και το άνοιγμα της λειτουργίας επεξεργασίας.

    public void createControl(Composite parent) {
      // inherit default container and name specification widgets
      super.createControl(parent);
      Composite composite = (Composite)getControl();
      ...
      // sample section generation group
      Group group = new Group(composite,SWT.NONE);
      group.setLayout(new GridLayout());
      group.setText(MessageUtil.getString("Automatic_sample_section_generation"));
      group.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL |
         GridData.HORIZONTAL_ALIGN_FILL));
      ...
      // sample section generation checkboxes
      sectionCheckbox = new Button(group,SWT.CHECK);
      sectionCheckbox.setText(MessageUtil.getString("Generate_sample_section_titles"));
      sectionCheckbox.setSelection(true);
      sectionCheckbox.addListener(SWT.Selection,this);

      subsectionCheckbox = new Button(group,SWT.CHECK);
      subsectionCheckbox.setText(MessageUtil.getString("Generate_sample_subsection_titles"));
      subsectionCheckbox.setSelection(true);
      subsectionCheckbox.addListener(SWT.Selection,this);
      ...
      // open file for editing checkbox
      openFileCheckbox = new Button(composite,SWT.CHECK);
      openFileCheckbox.setText(MessageUtil.getString("Open_file_for_editing_when_done"));
      openFileCheckbox.setSelection(true);
      ...
   }

Θα πρέπει να μπορείτε να ακολουθήσετε αυτόν τον κώδικα, εάν κατανοείτε τις έννοιες στην ενότητα Standard Widget Toolkit.

Τα βασικά μοτίβα για την υλοποίηση μιας σελίδα περιλαμβάνουν:

Η κλάση ReadmeCreationPage κληρονομεί πολλά στοιχεία της συμπεριφοράς αυτής από την WizardNewFileCreationPage.  Εξετάστε την υλοποίηση αυτών των κλάσεων για περισσότερες πληροφορίες.

Τώρα που κατανοούμε τη λειτουργίας μιας σελίδας, ας εξετάσουμε ξανά τον οδηγό.

Οδηγός

Ο οδηγός ευθύνεται για τη δημιουργία των σελίδων και την παροχή της λογικής "finish".

Τα βασικά μοτίβα για την υλοποίηση ενός οδηγού περιλαμβάνουν:

Ο ολοκληρωμένος οδηγός έχει αυτή τη μορφή:

Σελίδα οδηγού δημιουργίας αρχείου readme