Search in sources :

Example 1 with PrimaryRolloverCallback

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;
        }
    };
}
Also used : ARibbonContributor(org.freeplane.core.ui.ribbon.ARibbonContributor) JPanel(javax.swing.JPanel) JRibbonApplicationMenuPopupPanelSecondary(org.pushingpixels.flamingo.internal.ui.ribbon.appmenu.JRibbonApplicationMenuPopupPanelSecondary) PrimaryRolloverCallback(org.pushingpixels.flamingo.api.ribbon.RibbonApplicationMenuEntryPrimary.PrimaryRolloverCallback) JScrollablePanel(org.pushingpixels.flamingo.api.common.JScrollablePanel) JCommandButton(org.pushingpixels.flamingo.api.common.JCommandButton) RibbonApplicationMenuEntryPrimary(org.pushingpixels.flamingo.api.ribbon.RibbonApplicationMenuEntryPrimary) RichTooltip(org.pushingpixels.flamingo.api.common.RichTooltip) AFreeplaneAction(org.freeplane.core.ui.AFreeplaneAction) StringTokenizer(java.util.StringTokenizer) BorderLayout(java.awt.BorderLayout) JCommandButtonPanel(org.pushingpixels.flamingo.api.common.JCommandButtonPanel) List(java.util.List) File(java.io.File) RibbonBuildContext(org.freeplane.core.ui.ribbon.RibbonBuildContext)

Aggregations

BorderLayout (java.awt.BorderLayout)1 File (java.io.File)1 List (java.util.List)1 StringTokenizer (java.util.StringTokenizer)1 JPanel (javax.swing.JPanel)1 AFreeplaneAction (org.freeplane.core.ui.AFreeplaneAction)1 ARibbonContributor (org.freeplane.core.ui.ribbon.ARibbonContributor)1 RibbonBuildContext (org.freeplane.core.ui.ribbon.RibbonBuildContext)1 JCommandButton (org.pushingpixels.flamingo.api.common.JCommandButton)1 JCommandButtonPanel (org.pushingpixels.flamingo.api.common.JCommandButtonPanel)1 JScrollablePanel (org.pushingpixels.flamingo.api.common.JScrollablePanel)1 RichTooltip (org.pushingpixels.flamingo.api.common.RichTooltip)1 RibbonApplicationMenuEntryPrimary (org.pushingpixels.flamingo.api.ribbon.RibbonApplicationMenuEntryPrimary)1 PrimaryRolloverCallback (org.pushingpixels.flamingo.api.ribbon.RibbonApplicationMenuEntryPrimary.PrimaryRolloverCallback)1 JRibbonApplicationMenuPopupPanelSecondary (org.pushingpixels.flamingo.internal.ui.ribbon.appmenu.JRibbonApplicationMenuPopupPanelSecondary)1