package org.docear.plugin.core.ui.ribbons; import java.util.Properties; import org.docear.plugin.core.actions.DocearSetNodePrivacyAction; import org.freeplane.core.ui.AFreeplaneAction; import org.freeplane.core.ui.ribbon.ARibbonContributor; import org.freeplane.core.ui.ribbon.IRibbonContributorFactory; import org.freeplane.core.ui.ribbon.RibbonActionContributorFactory; import org.freeplane.core.ui.ribbon.RibbonBuildContext; import org.pushingpixels.flamingo.api.common.JCommandButton; import org.pushingpixels.flamingo.api.ribbon.RibbonElementPriority; public class DocearNodePrivacyContributorFactory implements IRibbonContributorFactory { /*********************************************************************************** * CONSTRUCTORS **********************************************************************************/ /*********************************************************************************** * METHODS **********************************************************************************/ /*********************************************************************************** * REQUIRED METHODS FOR INTERFACES **********************************************************************************/ @Override public ARibbonContributor getContributor(final Properties attributes) { return new ARibbonContributor() { @Override public String getKey() { return attributes.getProperty("name"); } @Override public void contribute(RibbonBuildContext context, ARibbonContributor parent) { if("true".equals(System.getProperty("docear.debug", "false"))) { AFreeplaneAction action = context.getBuilder().getMode().getAction(DocearSetNodePrivacyAction.KEY); if(action != null) { JCommandButton button = RibbonActionContributorFactory.createCommandButton(action); RibbonActionContributorFactory.updateRichTooltip(button, action, context.getBuilder().getAcceleratorManager().getAccelerator(action.getKey())); ChildProperties childProps = new ChildProperties(parseOrderSettings(attributes.getProperty("orderPriority", ""))); childProps.set(RibbonElementPriority.class, RibbonElementPriority.MEDIUM); parent.addChild(button, childProps); } } } @Override public void addChild(Object child, ChildProperties properties) { } }; } }