PowerFlowAnalysisMenu.java 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package holeg.ui;
  2. import ui.controller.SimulationManager;
  3. import ui.controller.SingletonControl;
  4. import ui.model.Model;
  5. import javax.swing.*;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8. public class PowerFlowAnalysisMenu extends JMenu {
  9. private JMenuItem settingsMenu;
  10. private JMenuItem showFlow;
  11. private JMenuItem clearCache;
  12. private JMenuItem solve;
  13. private JMenuItem clearCacheAndSolve;
  14. private JCheckBoxMenuItem disableUpdates;
  15. private JCheckBoxMenuItem showResultMessageBox;
  16. private JCheckBoxMenuItem showDebugMessageBox;
  17. private static PowerFlowAnalysisMenu instance;
  18. private boolean overwriteDisableUpdatesToForceUpdates = false;
  19. public PowerFlowAnalysisMenu(Model model) {
  20. super("Power flow");
  21. settingsMenu = add(new JMenuItem("Settings"));
  22. showFlow = add(new JMenuItem("Show flow table"));
  23. addSeparator();
  24. clearCache = add(new JMenuItem("Clear cache"));
  25. solve = add(new JMenuItem("Solve"));
  26. clearCacheAndSolve = add(new JMenuItem("Clear cache and solve"));
  27. addSeparator();
  28. disableUpdates = (JCheckBoxMenuItem) add(new JCheckBoxMenuItem("Disable automatic updates"));
  29. showResultMessageBox = (JCheckBoxMenuItem) add(new JCheckBoxMenuItem("Show result message"));
  30. showDebugMessageBox = (JCheckBoxMenuItem) add(new JCheckBoxMenuItem("Show debug message"));
  31. clearCache.addActionListener((e) -> {
  32. SingletonControl.getInstance().getControl().getSimManager().getHolegPowerFlowContext().clearCache();
  33. });
  34. solve.addActionListener((e) -> {
  35. solve(false);
  36. });
  37. clearCacheAndSolve.addActionListener((e) -> {
  38. solve(true);
  39. });
  40. instance = this;
  41. }
  42. private void solve(boolean clearCache) {
  43. overwriteDisableUpdatesToForceUpdates = true;
  44. if (clearCache)
  45. SingletonControl.getInstance().getControl().getSimManager().getHolegPowerFlowContext().clearCache();
  46. SingletonControl.getInstance().getControl().calculateStateAndVisualForCurrentTimeStep();
  47. overwriteDisableUpdatesToForceUpdates = false;
  48. }
  49. public boolean areUpdatesDisabled() {
  50. return !overwriteDisableUpdatesToForceUpdates && disableUpdates.getState();
  51. }
  52. public boolean shouldShowResult() {
  53. return showResultMessageBox.getState();
  54. }
  55. public boolean shouldShowDebug() {
  56. return showDebugMessageBox.getState();
  57. }
  58. public static PowerFlowAnalysisMenu getInstance() {
  59. return instance;
  60. }
  61. }