use of org.pushingpixels.flamingo.api.ribbon.RibbonApplicationMenuEntryPrimary.PrimaryRolloverCallback in project freeplane by freeplane.
the class LastOpenedMapsRibbonContributorFactory method getContributor.
public ARibbonContributor getContributor(final Properties attributes) {
return new ARibbonContributor() {
@Override
public String getKey() {
return "lastOpenedMaps";
}
private final String menuName = TextUtils.getText(attributes.getProperty("name_ref"));
@Override
public void contribute(RibbonBuildContext context, ARibbonContributor parent) {
RibbonApplicationMenuEntryPrimary primeEntry = new RibbonApplicationMenuEntryPrimary(null, menuName, null, CommandButtonKind.POPUP_ONLY);
primeEntry.setRolloverCallback(getCallback(primeEntry));
parent.addChild(primeEntry, new ChildProperties(parseOrderSettings(attributes.getProperty("orderPriority", ""))));
}
@Override
public void addChild(Object child, ChildProperties properties) {
}
private PrimaryRolloverCallback getCallback(final RibbonApplicationMenuEntryPrimary primeEntry) {
if (rolloverCallback == null) {
rolloverCallback = new PrimaryRolloverCallback() {
public void menuEntryActivated(JPanel targetPanel) {
targetPanel.removeAll();
targetPanel.setLayout(new BorderLayout());
JCommandButtonPanel secondary = new JRibbonApplicationMenuPopupPanelSecondary(primeEntry);
secondary.setToShowGroupLabels(false);
String groupDesc = menuName;
secondary.addButtonGroup(groupDesc);
List<AFreeplaneAction> openActions = lastOpenedList.createOpenLastMapActionList();
for (AFreeplaneAction action : openActions) {
String restoreable = (String) action.getValue(Action.DEFAULT);
StringTokenizer tokens = new StringTokenizer(restoreable, ";");
File file = lastOpenedList.createFileFromRestorable(tokens);
JCommandButton menuButton = new JCommandButton(file.getName());
menuButton.addActionListener(action);
menuButton.setCommandButtonKind(CommandButtonKind.ACTION_ONLY);
menuButton.setHorizontalAlignment(SwingUtilities.LEADING);
menuButton.setPopupOrientationKind(CommandButtonPopupOrientationKind.SIDEWARD);
menuButton.setEnabled(true);
menuButton.setActionRichTooltip(new RichTooltip((String) action.getValue(Action.SHORT_DESCRIPTION), file.toString()));
secondary.addButtonToLastGroup(menuButton);
}
JScrollablePanel<JCommandButtonPanel> scrollPanel = new JScrollablePanel<JCommandButtonPanel>(secondary, ScrollType.VERTICALLY);
targetPanel.add(scrollPanel, BorderLayout.CENTER);
}
};
}
return rolloverCallback;
}
};
}
Aggregations