1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package holeg.ui;
- import ui.controller.SimulationManager;
- import ui.controller.SingletonControl;
- import ui.model.Model;
- import javax.swing.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- public class PowerFlowAnalysisMenu extends JMenu {
- private JMenuItem settingsMenu;
- private JMenuItem showFlow;
- private JMenuItem clearCache;
- private JMenuItem solve;
- private JMenuItem clearCacheAndSolve;
- private JCheckBoxMenuItem disableUpdates;
- private JCheckBoxMenuItem showResultMessageBox;
- private JCheckBoxMenuItem showDebugMessageBox;
- private static PowerFlowAnalysisMenu instance;
- private boolean overwriteDisableUpdatesToForceUpdates = false;
- public PowerFlowAnalysisMenu(Model model) {
- super("Power flow");
- settingsMenu = add(new JMenuItem("Settings"));
- showFlow = add(new JMenuItem("Show flow table"));
- addSeparator();
- clearCache = add(new JMenuItem("Clear cache"));
- solve = add(new JMenuItem("Solve"));
- clearCacheAndSolve = add(new JMenuItem("Clear cache and solve"));
- addSeparator();
- disableUpdates = (JCheckBoxMenuItem) add(new JCheckBoxMenuItem("Disable automatic updates"));
- showResultMessageBox = (JCheckBoxMenuItem) add(new JCheckBoxMenuItem("Show result message"));
- showDebugMessageBox = (JCheckBoxMenuItem) add(new JCheckBoxMenuItem("Show debug message"));
- clearCache.addActionListener((e) -> {
- SingletonControl.getInstance().getControl().getSimManager().getHolegPowerFlowContext().clearCache();
- });
- solve.addActionListener((e) -> {
- solve(false);
- });
- clearCacheAndSolve.addActionListener((e) -> {
- solve(true);
- });
- instance = this;
- }
- private void solve(boolean clearCache) {
- overwriteDisableUpdatesToForceUpdates = true;
- if (clearCache)
- SingletonControl.getInstance().getControl().getSimManager().getHolegPowerFlowContext().clearCache();
- SingletonControl.getInstance().getControl().calculateStateAndVisualForCurrentTimeStep();
- overwriteDisableUpdatesToForceUpdates = false;
- }
- public boolean areUpdatesDisabled() {
- return !overwriteDisableUpdatesToForceUpdates && disableUpdates.getState();
- }
- public boolean shouldShowResult() {
- return showResultMessageBox.getState();
- }
- public boolean shouldShowDebug() {
- return showDebugMessageBox.getState();
- }
- public static PowerFlowAnalysisMenu getInstance() {
- return instance;
- }
- }
|