All Downloads are FREE. Search and download functionalities are using the official Maven repository.

us.ihmc.scs2.sessionVisualizer.jfx.controllers.yoComposite.pattern.YoCompositePatternControllerTools Maven / Gradle / Ivy

package us.ihmc.scs2.sessionVisualizer.jfx.controllers.yoComposite.pattern;

import java.util.HashSet;
import java.util.List;
import java.util.stream.Collectors;

import us.ihmc.scs2.sessionVisualizer.jfx.controllers.chart.YoChartGroupModelEditorController;

public class YoCompositePatternControllerTools
{

   public static final int YO_COMPOSITE_CUSTOM_PATTERN_MIN_NUMBER_OF_COMPONENTS = 2;

   public static boolean areComponentIdentifierNamesValid(List componentIdentifierNames)
   {
      if (componentIdentifierNames == null || componentIdentifierNames.size() < YO_COMPOSITE_CUSTOM_PATTERN_MIN_NUMBER_OF_COMPONENTS)
         return false;
      return !YoCompositePatternControllerTools.isAnyEmpty(componentIdentifierNames) && YoCompositePatternControllerTools.areAllUnique(componentIdentifierNames);
   }

   public static boolean areChartGroupModelNamesValid(List controllerList)
   {
      if (controllerList.isEmpty())
         return true;
   
      List names = controllerList.stream().map(controller -> controller.configurationNameProperty().get()).collect(Collectors.toList());
   
      return !YoCompositePatternControllerTools.isAnyEmpty(names) && YoCompositePatternControllerTools.areAllUnique(names);
   }

   public static boolean isAnyEmpty(List stringList)
   {
      return stringList.stream().anyMatch(String::isEmpty);
   }

   public static boolean areAllUnique(List stringList)
   {
      return new HashSet<>(stringList).size() == stringList.size();
   }

   public static String getValidityStyleBorder(boolean valid)
   {
      if (valid)
         return "-fx-border-width:3;-fx-border-color:#89e0c0";
      else
         return "-fx-border-width:3;-fx-border-color:#edafb7";
   }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy