Ενέργειες και συνεισφορές

Οι κλάσεις action επιτρέπουν τον ορισμό εντολών του χρήστη, ανεξάρτητα από την παρουσίασή τους στο περιβάλλον χρήστη. Αυτό σας δίνει την ευελιξία να αλλάζετε την παρουσίαση μιας ενέργειας στην πρόσθετη λειτουργία σας, χωρίς να αλλάζετε τον κώδικα ο οποίος στην πραγματικότητα εκτελεί την εντολή, αφού επιλεγεί. Οι κλάσεις contribution χρησιμοποιούνται για τη διαχείριση των πραγματικών στοιχείων περιβάλλοντος χρήστη που αναπαριστούν τις εντολές. Δεν μπορείτε να προγραμματίσετε στις κλάσεις contribution, αλλά τις βλέπετε σε ορισμένα API του πάγκου εργασίας και του JFace.

Ενέργειες

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

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

Όταν ο χρήστης ενεργοποιεί την ενέργεια στο περιβάλλον εργασίας, καλείται η μέθοδος εκτέλεσης της ενέργειας, η οποία εκτελεί την πραγματική εργασία. Ένα κοινό μοτίβο στη μέθοδο εκτέλεσης είναι η πραγματοποίηση ερωτήματος για τις επιλογές του πάγκου εργασίας και για το χειρισμό των αντικειμένων που έχουν επιλεγεί. Ένα άλλο κοινό μοτίβο είναι η εκκίνηση ενός οδηγού ή ενός πλαισίου διαλόγου, όταν επιλέγεται μια ενέργεια.

Δεν θα πρέπει να υλοποιείτε απευθείας τη διεπαφή IAction. Αντίθετα, θα πρέπει να δημιουργείτε υποκλάσεις στην κλάση Action. Με αναζήτηση στις υποκλάσεις της κλάσης αυτής θα δείτε πολλά από τα κοινά μοτίβα για τις ενέργειες. Ο παρακάτω κώδικας υλοποιεί την ενέργεια "About". Είναι μία από τις απλούστερες ενέργειες στον πάγκο εργασίας.

      public void run() {
      new AboutDialog(workbenchWindow.getShell()).open();
   }

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

Μπορείτε να υλοποιείτε τις δικές σας κλάσεις action, όποτε θέλετε να ορίσετε μια εντολή στην πρόσθετη λειτουργία σας. Εάν συνεισφέρετε ενέργειες σε άλλες λειτουργίες προβολής και λειτουργίες επεξεργασίας, μπορείτε να υλοποιείτε εκπροσώπους των κλάσεων action.

Στοιχεία συνεισφοράς

Ένα στοιχείο συνεισφοράς (IContributionItem) αναπαριστά το τμήμα περιβάλλοντος χρήστη για μία ενέργεια. Πιο συγκεκριμένα, αναπαριστά ένα στοιχείο το οποίο συνεισφέρεται σε έναν κοινόχρηστο πόρο του περιβάλλοντος χρήστη, όπως είναι ένα μενού ή μια γραμμή εργαλείων.

Τα στοιχεία συνεισφοράς γνωρίζουν τον τρόπο με τον οποίο πρέπει να συμπληρωθεί ένα συγκεκριμένο όργανο SWT με το κατάλληλο όργανο SWT το οποίο αναπαριστά τη συνεισφορά.

Δεν χρειάζεται να ανησυχείτε για τη δημιουργία ενός στοιχείου συνεισφοράς, όταν συνεισφέρετε ενέργειες στο περιβάλλον χρήστη του πάγκου εργασίας. Αυτό πραγματοποιείται εκ μέρους σας, όταν ο πάγκος εργασίας δημιουργεί στοιχεία περιβάλλοντος χρήστη για ενέργειες τις οποίες έχετε ορίσει εσείς.

Λειτουργίες διαχείρισης συνεισφορών

Μια λειτουργία διαχείρισης συνεισφορών (IContributionManager) αναπαριστά μια συλλογή στοιχείων συνεισφοράς, τα οποία θα παρουσιάζονται στο περιβάλλον χρήστη. Μπορείτε να προσθέσετε και να εισάγετε στοιχεία συνεισφοράς χρησιμοποιώντας τις ταυτότητες των συνεισφορών για να τοποθετήσετε τα στοιχεία με την κατάλληλη σειρά. Μπορείτε επίσης να βρίσκετε στοιχεία με βάση την ταυτότητα και να αφαιρείτε μεμονωμένα στοιχεία.

Κάθε υλοποίηση της διεπαφής IContributionManager γνωρίζει τον τρόπο με τον οποίο πρέπει να συμπληρωθεί ένα συγκεκριμένο όργανο SWT με τα στοιχεία του. Το JFace παρέχει λειτουργίες διαχείρισης συνεισφορών για μενού (IMenuManager), γραμμές εργαλείων (IToolBarManager) και γραμμές κατάστασης (IStatusLineManager).

Ως προγραμματιστής πρόσθετων λειτουργιών, δεν χρειάζεται να υλοποιείτε τις διεπαφές αυτές, αλλά θα βλέπετε παραπομπές σε ορισμένες από αυτές τις λειτουργίες διαχείρισης στις μεθόδους API.