package org.freeplane.core.ui.ribbon.special;
import java.util.Properties;
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.freeplane.core.util.TextUtils;
import org.pushingpixels.flamingo.api.common.JCommandButton;
import org.pushingpixels.flamingo.api.common.JCommandButton.CommandButtonKind;
import org.pushingpixels.flamingo.api.common.JCommandToggleMenuButton;
import org.pushingpixels.flamingo.api.common.popup.JCommandPopupMenu;
import org.pushingpixels.flamingo.api.common.popup.JPopupPanel;
import org.pushingpixels.flamingo.api.common.popup.PopupPanelCallback;
import org.pushingpixels.flamingo.api.ribbon.RibbonElementPriority;
public class FilterConditionsContributorFactory implements IRibbonContributorFactory {
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;
}
JCommandButton button = new JCommandButton(TextUtils.removeTranslateComment(TextUtils.getText("FilterCondition")));
button.setCommandButtonKind(CommandButtonKind.POPUP_ONLY);
button.setPopupCallback(new PopupPanelCallback() {
public JPopupPanel getPopupPanel(JCommandButton commandButton) {
JCommandPopupMenu popupmenu = new JCommandPopupMenu();
AFreeplaneAction action = context.getBuilder().getMode().getAction("ApplyToVisibleAction");
JCommandToggleMenuButton toggleButton = RibbonActionContributorFactory.createCommandToggleMenuButton(action);
action.setSelected();
toggleButton.getActionModel().setSelected(action.isSelected());
popupmenu.addMenuButton(toggleButton);
action = context.getBuilder().getMode().getAction("ShowAncestorsAction");
toggleButton = RibbonActionContributorFactory.createCommandToggleMenuButton(action);
action.setSelected();
toggleButton.getActionModel().setSelected(action.isSelected());
popupmenu.addMenuButton(toggleButton);
action = context.getBuilder().getMode().getAction("ShowDescendantsAction");
toggleButton = RibbonActionContributorFactory.createCommandToggleMenuButton(action);
action.setSelected();
toggleButton.getActionModel().setSelected(action.isSelected());
popupmenu.addMenuButton(toggleButton);
return popupmenu;
}
});
ChildProperties props = new ChildProperties(parseOrderSettings(attributes.getProperty("orderPriority", "")));
props.set(RibbonElementPriority.class, RibbonElementPriority.MEDIUM);
parent.addChild(button, props);
}
public void addChild(Object child, ChildProperties properties) {
}
};
}
/***********************************************************************************
* CONSTRUCTORS
**********************************************************************************/
/***********************************************************************************
* METHODS
**********************************************************************************/
/***********************************************************************************
* REQUIRED METHODS FOR INTERFACES
**********************************************************************************/
}