Η βασική προσαρμογή που παρέχεται από τον BrowserAdvisor στο παράδειγμα προγράμματος πλοήγησης είναι ο προσδιορισμός του περιεχομένου της γραμμής ενεργειών για το παράθυρο πάγκου εργασίας:
public void fillActionBars(IWorkbenchWindow window, IActionBarConfigurer configurer, int flags) {
...
BrowserActionBuilder builder = new BrowserActionBuilder(window);
getWorkbenchConfigurer().getWindowConfigurer(window).setData(BUILDER_KEY, builder);
builder.fillActionBars(configurer, flags);
}
Ας ρίξουμε μια ματιά στον τρόπο με τον οποίο προσδιορίζονται αυτές οι ενέργειες στην ενότητα BrowserActionBuilder. Ειδικότερα, ας δούμε τις ενέργειες τις οποίες χειρίζεται η προβολή του προγράμματος πλοήγησης.
private void makeActions() {
...
backAction = new RetargetAction("back", "&Back");
backAction.setToolTipText("Back");
backAction.setImageDescriptor(images.getImageDescriptor(ISharedImages.IMG_TOOL_BACK));
window.getPartService().addPartListener(backAction);
forwardAction = new RetargetAction("forward", "&Forward");
forwardAction.setToolTipText("Forward");
forwardAction.setImageDescriptor(images.getImageDescriptor(ISharedImages.IMG_TOOL_FORWARD));
window.getPartService().addPartListener(forwardAction);
stopAction = new RetargetAction("stop", "Sto&p");
stopAction.setToolTipText("Stop");
window.getPartService().addPartListener(stopAction);
refreshAction = new RetargetAction("refresh", "&Refresh");
refreshAction.setToolTipText("Refresh");
window.getPartService().addPartListener(refreshAction);
...
}
Οι ενέργειες αυτές καθορίζονται ως ενέργειες μεταβλητής εμβέλειας έτσι ώστε να είναι δυνατή η υλοποίηση των ενεργειών ρουτίνας χειρισμού από τις μεμονωμένες προβολές. Η Προβολή προγράμματος πλοήγησης συσχετίζει τις ενέργειες ρουτίνας χειρισμού με τις ενέργειες μεταβλητής εμβέλειας του παραθύρου κατά τη δημιουργία των στοιχείων ελέγχου για την προβολή:
private Browser createBrowser(Composite parent, final IActionBars actionBars) {
...
actionBars.setGlobalActionHandler("back", backAction);
actionBars.setGlobalActionHandler("forward", forwardAction);
actionBars.setGlobalActionHandler("stop", stopAction);
actionBars.setGlobalActionHandler("refresh", refreshAction);
...
}
Οι ενέργειες αυτές δημιουργούνται κατά την πρώτη δημιουργία της προβολής.
private Action backAction = new Action("Back") {
public void run() {
browser.back();
}
};
Για μια πλήρη ανάλυση των ενεργειών μεταβλητής εμβέλειας καθώς και του τρόπου καθορισμού και υλοποίησής τους, δείτε την ενότητα Ενέργειες μεταβλητής εμβέλειας.