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

us.ihmc.scs2.sessionVisualizer.jfx.controllers.menu.YoChartMenuController Maven / Gradle / Ivy

package us.ihmc.scs2.sessionVisualizer.jfx.controllers.menu;

import javafx.fxml.FXML;
import javafx.scene.control.MenuItem;
import javafx.stage.Window;
import javafx.util.Pair;
import org.kordamp.ikonli.javafx.FontIcon;
import us.ihmc.messager.javafx.JavaFXMessager;
import us.ihmc.scs2.sessionVisualizer.jfx.SessionVisualizerIOTools;
import us.ihmc.scs2.sessionVisualizer.jfx.SessionVisualizerTopics;
import us.ihmc.scs2.sessionVisualizer.jfx.controllers.VisualizerController;
import us.ihmc.scs2.sessionVisualizer.jfx.managers.SecondaryWindowManager.NewWindowRequest;
import us.ihmc.scs2.sessionVisualizer.jfx.managers.SessionVisualizerWindowToolkit;

import java.io.File;

public class YoChartMenuController implements VisualizerController
{
   private SessionVisualizerTopics topics;
   private JavaFXMessager messager;
   private Window owner;

   private boolean isYAxisVisible = false;

   @FXML
   private MenuItem toggleYAxisMenuItem;

   @FXML
   private FontIcon toggleYAxisIcon;

   @Override
   public void initialize(SessionVisualizerWindowToolkit toolkit)
   {
      topics = toolkit.getTopics();
      messager = toolkit.getMessager();
      owner = toolkit.getWindow();
   }

   @FXML
   public void toggleChartYAxis()
   {
      isYAxisVisible = !isYAxisVisible;
      messager.submitMessage(topics.getYoChartShowYAxis(), new Pair<>(owner, isYAxisVisible));
      updateMenuItemText();
   }

   private void updateMenuItemText()
   {
      if (isYAxisVisible)
      {
         toggleYAxisMenuItem.setText("Hide Charts Y-Axis");
         toggleYAxisIcon.getStyleClass().clear();
         toggleYAxisIcon.getStyleClass().addAll("hide-icon-view", "menu-item-icon-view");
      }
      else
      {
         toggleYAxisMenuItem.setText("Show Charts Y-Axis");
         toggleYAxisIcon.getStyleClass().clear();
         toggleYAxisIcon.getStyleClass().addAll("show-icon-view", "menu-item-icon-view");
      }
   }

   @FXML
   public void openPieChartWindow()
   {
      messager.submitMessage(topics.getOpenWindowRequest(), NewWindowRequest.pieChartWindow(owner));
   }

   @FXML
   public void loadChartGroup()
   {
      File result = SessionVisualizerIOTools.yoChartConfigurationOpenFileDialog(owner);
      if (result != null)
         messager.submitMessage(topics.getYoChartGroupLoadConfiguration(), new Pair<>(owner, result));
   }

   @FXML
   public void saveChartGroup()
   {
      File result = SessionVisualizerIOTools.yoChartConfigurationSaveFileDialog(owner);
      if (result != null)
         messager.submitMessage(topics.getYoChartGroupSaveConfiguration(), new Pair<>(owner, result));
   }

   @FXML
   public void newChartWindow()
   {
      messager.submitMessage(topics.getOpenWindowRequest(), NewWindowRequest.chartWindow(owner));
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy