public JPopupMenu getPopupMenu(AdvancedCALEditor.PositionlessIdentifier identifier) {
// Determine if identifier is an argument, ambiguity or
// qualification
QualificationType qualificationType = identifier.getQualificationType();
// Argument ?
if (qualificationType == QualificationType.UnqualifiedArgument) {
gemCodePanel.getVariablesDisplay().selectPanelForArgument(identifier.getName());
gemCodePanel.getQualificationsDisplay().clearSelection();
JPopupMenu menu = getArgumentPopupMenu(identifier);
menu.addPopupMenuListener(editorMenuFocusListener);
return menu;
}
// Qualified symbol ?
if (qualificationType.isResolvedTopLevelSymbol()) {
gemCodePanel.getQualificationsDisplay().selectPanelForIdentifier(identifier);
gemCodePanel.getVariablesDisplay().clearSelection();
JPopupMenu menu = getQualificationPopupMenu(identifier);
menu.addPopupMenuListener(editorMenuFocusListener);
return menu;