Package org.freeplane.core.ui.ribbon

Source Code of org.freeplane.core.ui.ribbon.RibbonTaskContributorFactory

package org.freeplane.core.ui.ribbon;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Properties;

import org.freeplane.core.util.TextUtils;
import org.pushingpixels.flamingo.api.ribbon.AbstractRibbonBand;
import org.pushingpixels.flamingo.api.ribbon.RibbonTask;

public class RibbonTaskContributorFactory implements IRibbonContributorFactory {

  public ARibbonContributor getContributor(final Properties attributes) {
    return new ARibbonContributor() {
      private List<ComparableContributorHull<AbstractRibbonBand<?>>> hulls = new ArrayList<ARibbonContributor.ComparableContributorHull<AbstractRibbonBand<?>>>();
     
      public String getKey() {
        return attributes.getProperty("name");       
      }
     
      public void contribute(RibbonBuildContext context, ARibbonContributor parent) {
        hulls.clear();
        context.processChildren(context.getCurrentPath(), this);
        if(!hulls.isEmpty()) {
          Collections.sort(hulls, comparator);
          AbstractRibbonBand<?>[] bands = new AbstractRibbonBand<?>[hulls.size()];
          int count = 0;
          for (ComparableContributorHull<AbstractRibbonBand<?>> hull : hulls) {
            bands[count++] = hull.getObject();
          }
         
          RibbonTask task = new RibbonTask(TextUtils.removeTranslateComment(TextUtils.getText("ribbon."+getKey())), bands);
          if(parent != null) {
            parent.addChild(task, new ChildProperties(parseOrderSettings(attributes.getProperty("orderPriority", ""))));
          }
        }
      }

      public void addChild(Object child, ChildProperties properties) {
        if(child instanceof AbstractRibbonBand) {
          hulls.add(new ComparableContributorHull<AbstractRibbonBand<?>>((AbstractRibbonBand<?>) child, properties.getOrderPriority()));
        }
       
      }
    };
  }

}
TOP

Related Classes of org.freeplane.core.ui.ribbon.RibbonTaskContributorFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.