Search in sources :

Example 1 with RibbonBandResizePolicy

use of org.pushingpixels.flamingo.api.ribbon.resize.RibbonBandResizePolicy in project freeplane by freeplane.

the class ZoomContributorFactory method getContributor.

public ARibbonContributor getContributor(final Properties attributes) {
    return new ARibbonContributor() {

        public String getKey() {
            return attributes.getProperty("name");
        }

        public void contribute(final RibbonBuildContext context, ARibbonContributor parent) {
            if (parent == null) {
                return;
            }
            JFlowRibbonBand band = new JFlowRibbonBand(TextUtils.removeTranslateComment(TextUtils.getText("ribbon.band.zoom")), null, null);
            JComboBox zoomBox = ((MapViewController) Controller.getCurrentController().getMapViewManager()).createZoomBox();
            addDefaultToggleHandler(context, zoomBox);
            band.addFlowComponent(zoomBox);
            JCommandButtonStrip strip = new JCommandButtonStrip();
            AFreeplaneAction action = context.getBuilder().getMode().getAction("ZoomInAction");
            JCommandButton button = RibbonActionContributorFactory.createCommandButton(action);
            button.setDisplayState(CommandButtonDisplayState.SMALL);
            getAccelChangeListener().addAction(action.getKey(), button);
            addDefaultToggleHandler(context, action, button);
            strip.add(button);
            action = context.getBuilder().getMode().getAction("ZoomOutAction");
            button = RibbonActionContributorFactory.createCommandButton(action);
            button.setDisplayState(CommandButtonDisplayState.SMALL);
            getAccelChangeListener().addAction(action.getKey(), button);
            addDefaultToggleHandler(context, action, button);
            strip.add(button);
            action = context.getBuilder().getMode().getAction("FitToPage");
            button = RibbonActionContributorFactory.createCommandButton(action);
            button.setDisplayState(CommandButtonDisplayState.MEDIUM);
            getAccelChangeListener().addAction(action.getKey(), button);
            addDefaultToggleHandler(context, action, button);
            strip.add(button);
            band.addFlowComponent(strip);
            List<RibbonBandResizePolicy> policies = new ArrayList<RibbonBandResizePolicy>();
            policies.add(new CoreRibbonResizePolicies.FlowTwoRows(band.getControlPanel()));
            policies.add(new IconRibbonBandResizePolicy(band.getControlPanel()));
            band.setResizePolicies(policies);
            parent.addChild(band, new ChildProperties(parseOrderSettings(attributes.getProperty("orderPriority", ""))));
        }

        public void addChild(Object child, ChildProperties properties) {
        }
    };
}
Also used : ARibbonContributor(org.freeplane.core.ui.ribbon.ARibbonContributor) CoreRibbonResizePolicies(org.pushingpixels.flamingo.api.ribbon.resize.CoreRibbonResizePolicies) JComboBox(javax.swing.JComboBox) ArrayList(java.util.ArrayList) IconRibbonBandResizePolicy(org.pushingpixels.flamingo.api.ribbon.resize.IconRibbonBandResizePolicy) JCommandButton(org.pushingpixels.flamingo.api.common.JCommandButton) MapViewController(org.freeplane.view.swing.map.MapViewController) JFlowRibbonBand(org.pushingpixels.flamingo.api.ribbon.JFlowRibbonBand) IconRibbonBandResizePolicy(org.pushingpixels.flamingo.api.ribbon.resize.IconRibbonBandResizePolicy) RibbonBandResizePolicy(org.pushingpixels.flamingo.api.ribbon.resize.RibbonBandResizePolicy) AFreeplaneAction(org.freeplane.core.ui.AFreeplaneAction) RibbonBuildContext(org.freeplane.core.ui.ribbon.RibbonBuildContext) JCommandButtonStrip(org.pushingpixels.flamingo.api.common.JCommandButtonStrip)

Example 2 with RibbonBandResizePolicy

use of org.pushingpixels.flamingo.api.ribbon.resize.RibbonBandResizePolicy in project freeplane by freeplane.

the class FlowRibbonBandContributorFactory method getContributor.

public ARibbonContributor getContributor(final Properties attributes) {
    return new ARibbonContributor() {

        private JFlowRibbonBand band;

        public String getKey() {
            return attributes.getProperty("name");
        }

        public void contribute(RibbonBuildContext context, ARibbonContributor parent) {
            if (parent == null) {
                return;
            }
            band = new JFlowRibbonBand(TextUtils.removeTranslateComment(TextUtils.getText("ribbon.band." + attributes.getProperty("name"))), null);
            RibbonBandResizePolicy policy = band.getCurrentResizePolicy();
            band.setCurrentResizePolicy(policy);
            // read policies and sub-contributions
            context.processChildren(context.getCurrentPath(), this);
            parent.addChild(band, new ChildProperties(parseOrderSettings(attributes.getProperty("orderPriority", ""))));
            List<RibbonBandResizePolicy> policies = new ArrayList<RibbonBandResizePolicy>();
            policies.add(new CoreRibbonResizePolicies.FlowThreeRows(band.getControlPanel()));
            policies.add(new IconRibbonBandResizePolicy(band.getControlPanel()));
            band.setResizePolicies(policies);
        }

        public void addChild(Object child, ChildProperties properties) {
            if (child instanceof JComponent) {
                band.addFlowComponent((JComponent) child);
            }
        }
    };
}
Also used : JFlowRibbonBand(org.pushingpixels.flamingo.api.ribbon.JFlowRibbonBand) RibbonBandResizePolicy(org.pushingpixels.flamingo.api.ribbon.resize.RibbonBandResizePolicy) IconRibbonBandResizePolicy(org.pushingpixels.flamingo.api.ribbon.resize.IconRibbonBandResizePolicy) CoreRibbonResizePolicies(org.pushingpixels.flamingo.api.ribbon.resize.CoreRibbonResizePolicies) ArrayList(java.util.ArrayList) JComponent(javax.swing.JComponent) IconRibbonBandResizePolicy(org.pushingpixels.flamingo.api.ribbon.resize.IconRibbonBandResizePolicy)

Example 3 with RibbonBandResizePolicy

use of org.pushingpixels.flamingo.api.ribbon.resize.RibbonBandResizePolicy in project freeplane by freeplane.

the class RibbonBandContributorFactory method getContributor.

public ARibbonContributor getContributor(final Properties attributes) {
    return new ARibbonContributor() {

        private JRibbonBand band;

        private boolean valid = false;

        public String getKey() {
            return attributes.getProperty("name");
        }

        public void contribute(RibbonBuildContext context, ARibbonContributor parent) {
            if (parent == null) {
                return;
            }
            band = new JRibbonBand(TextUtils.removeTranslateComment(TextUtils.getText("ribbon.band." + attributes.getProperty("name"))), null);
            // read policies and sub-contributions
            context.processChildren(context.getCurrentPath(), this);
            setResizePolicies(attributes.getProperty("resize_policies"));
            band.setFocusable(false);
            if (valid) {
                parent.addChild(band, new ChildProperties(parseOrderSettings(attributes.getProperty("orderPriority", ""))));
            }
        }

        public void addChild(Object child, ChildProperties properties) {
            if (child instanceof AbstractCommandButton) {
                RibbonElementPriority priority = properties.get(RibbonElementPriority.class);
                if (priority == null) {
                    priority = RibbonElementPriority.TOP;
                }
                band.addCommandButton((AbstractCommandButton) child, priority);
                valid = true;
            }
        }

        private void setResizePolicies(String policiesString) {
            if (policiesString != null) {
                String[] tokens = policiesString.split(",");
                List<RibbonBandResizePolicy> policyList = new ArrayList<RibbonBandResizePolicy>();
                for (String policyStr : tokens) {
                    if ("none".equals(policyStr.toLowerCase().trim())) {
                        policyList.add(new CoreRibbonResizePolicies.None(band.getControlPanel()));
                    } else if ("mirror".equals(policyStr.toLowerCase().trim())) {
                        policyList.add(new CoreRibbonResizePolicies.Mirror(band.getControlPanel()));
                    } else if ("high2low".equals(policyStr.toLowerCase().trim())) {
                        policyList.add(new CoreRibbonResizePolicies.High2Low(band.getControlPanel()));
                    } else if ("high2mid".equals(policyStr.toLowerCase().trim())) {
                        policyList.add(new CoreRibbonResizePolicies.High2Mid(band.getControlPanel()));
                    } else if ("mid2low".equals(policyStr.toLowerCase().trim())) {
                        policyList.add(new CoreRibbonResizePolicies.Mid2Low(band.getControlPanel()));
                    } else if ("mid2mid".equals(policyStr.toLowerCase().trim())) {
                        policyList.add(new CoreRibbonResizePolicies.Mid2Mid(band.getControlPanel()));
                    } else if ("low2mid".equals(policyStr.toLowerCase().trim())) {
                        policyList.add(new CoreRibbonResizePolicies.Low2Mid(band.getControlPanel()));
                    }
                }
                policyList.add(new IconRibbonBandResizePolicy(band.getControlPanel()));
                band.setResizePolicies(policyList);
                try {
                    FlamingoUtilities.checkResizePoliciesConsistency(band);
                } catch (Exception ignore) {
                    reorganizePolicies(band, true);
                }
            }
        }
    };
}
Also used : CoreRibbonResizePolicies(org.pushingpixels.flamingo.api.ribbon.resize.CoreRibbonResizePolicies) ArrayList(java.util.ArrayList) IconRibbonBandResizePolicy(org.pushingpixels.flamingo.api.ribbon.resize.IconRibbonBandResizePolicy) RibbonBandResizePolicy(org.pushingpixels.flamingo.api.ribbon.resize.RibbonBandResizePolicy) IconRibbonBandResizePolicy(org.pushingpixels.flamingo.api.ribbon.resize.IconRibbonBandResizePolicy) RibbonElementPriority(org.pushingpixels.flamingo.api.ribbon.RibbonElementPriority) JRibbonBand(org.pushingpixels.flamingo.api.ribbon.JRibbonBand) AbstractCommandButton(org.pushingpixels.flamingo.api.common.AbstractCommandButton)

Example 4 with RibbonBandResizePolicy

use of org.pushingpixels.flamingo.api.ribbon.resize.RibbonBandResizePolicy in project freeplane by freeplane.

the class RibbonBandContributorFactory method reorganizePolicies.

/**
 *********************************************************************************
 * CONSTRUCTORS
 *********************************************************************************
 */
@SuppressWarnings("unchecked")
protected void reorganizePolicies(JRibbonBand band, boolean tolerateExceptions) {
    Insets ins = band.getInsets();
    AbstractBandControlPanel controlPanel = band.getControlPanel();
    if (controlPanel == null)
        return;
    int height = controlPanel.getPreferredSize().height + band.getUI().getBandTitleHeight() + ins.top + ins.bottom;
    List<RibbonBandResizePolicy> resizePolicies = band.getResizePolicies();
    FlamingoUtilities.checkResizePoliciesConsistencyBase(band);
    int index = -1;
    while ((index = checkPolicies(band, height, resizePolicies)) > -1) {
        if (tolerateExceptions) {
            band.setResizePolicies(buildNewList(resizePolicies, index));
            break;
        } else {
            throw new IllegalStateException(getExceptionMessage(band, height, resizePolicies, index));
        }
    }
}
Also used : RibbonBandResizePolicy(org.pushingpixels.flamingo.api.ribbon.resize.RibbonBandResizePolicy) IconRibbonBandResizePolicy(org.pushingpixels.flamingo.api.ribbon.resize.IconRibbonBandResizePolicy) Insets(java.awt.Insets) AbstractBandControlPanel(org.pushingpixels.flamingo.internal.ui.ribbon.AbstractBandControlPanel)

Example 5 with RibbonBandResizePolicy

use of org.pushingpixels.flamingo.api.ribbon.resize.RibbonBandResizePolicy in project freeplane by freeplane.

the class RibbonBandContributorFactory method getExceptionMessage.

@SuppressWarnings("rawtypes")
private String getExceptionMessage(AbstractRibbonBand ribbonBand, int height, List<RibbonBandResizePolicy> resizePolicies, int errorIndex) {
    RibbonBandResizePolicy policy1 = resizePolicies.get(errorIndex - 1);
    RibbonBandResizePolicy policy2 = resizePolicies.get(errorIndex);
    int width1 = policy1.getPreferredWidth(height, 4);
    // create the trace message
    StringBuilder builder = new StringBuilder();
    builder.append("Inconsistent preferred widths\n");
    builder.append("Ribbon band '" + ribbonBand.getTitle() + "' has the following resize policies\n");
    for (int j = 0; j < resizePolicies.size(); j++) {
        RibbonBandResizePolicy policy = resizePolicies.get(j);
        int width = policy.getPreferredWidth(height, 4);
        builder.append("\t" + policy.getClass().getName() + " with preferred width " + width + "\n");
    }
    builder.append(policy1.getClass().getName() + " with pref width " + width1 + " is followed by resize policy " + policy2.getClass().getName() + " with larger pref width\n");
    return builder.toString();
}
Also used : RibbonBandResizePolicy(org.pushingpixels.flamingo.api.ribbon.resize.RibbonBandResizePolicy) IconRibbonBandResizePolicy(org.pushingpixels.flamingo.api.ribbon.resize.IconRibbonBandResizePolicy)

Aggregations

RibbonBandResizePolicy (org.pushingpixels.flamingo.api.ribbon.resize.RibbonBandResizePolicy)9 IconRibbonBandResizePolicy (org.pushingpixels.flamingo.api.ribbon.resize.IconRibbonBandResizePolicy)7 ArrayList (java.util.ArrayList)6 CoreRibbonResizePolicies (org.pushingpixels.flamingo.api.ribbon.resize.CoreRibbonResizePolicies)6 AFreeplaneAction (org.freeplane.core.ui.AFreeplaneAction)4 ARibbonContributor (org.freeplane.core.ui.ribbon.ARibbonContributor)4 RibbonBuildContext (org.freeplane.core.ui.ribbon.RibbonBuildContext)4 JCommandButton (org.pushingpixels.flamingo.api.common.JCommandButton)4 JFlowRibbonBand (org.pushingpixels.flamingo.api.ribbon.JFlowRibbonBand)3 JRibbonBand (org.pushingpixels.flamingo.api.ribbon.JRibbonBand)3 JCommandButtonStrip (org.pushingpixels.flamingo.api.common.JCommandButtonStrip)2 JCommandToggleMenuButton (org.pushingpixels.flamingo.api.common.JCommandToggleMenuButton)2 JCommandPopupMenu (org.pushingpixels.flamingo.api.common.popup.JCommandPopupMenu)2 JPopupPanel (org.pushingpixels.flamingo.api.common.popup.JPopupPanel)2 PopupPanelCallback (org.pushingpixels.flamingo.api.common.popup.PopupPanelCallback)2 Container (java.awt.Container)1 Insets (java.awt.Insets)1 ButtonGroup (javax.swing.ButtonGroup)1 JComboBox (javax.swing.JComboBox)1 JComponent (javax.swing.JComponent)1