adding reactions panel, work in progress

This commit is contained in:
Yeongdo Park 2019-03-11 08:08:24 +09:00
parent edc1fabbbd
commit e3232940f1
6 changed files with 78 additions and 13 deletions

View file

@ -29,6 +29,9 @@ import java.util.Set;
import javax.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import eu.engys.core.dictionary.Dictionary;
import eu.engys.core.dictionary.FieldElement;
import eu.engys.core.modules.ApplicationModuleAdapter;
@ -39,13 +42,13 @@ import eu.engys.core.modules.solutionmodelling.SolutionView;
import eu.engys.core.modules.tree.TreeView;
import eu.engys.core.project.Model;
import eu.engys.core.project.defaults.DefaultsProvider;
import eu.engys.core.project.state.MultiphaseModel;
import eu.engys.core.project.state.Solver;
import eu.engys.core.project.state.State;
import eu.engys.core.project.state.StateBuilder;
import eu.engys.core.project.zero.fields.Fields;
import eu.engys.core.project.zero.fields.FieldsDefaults;
import eu.engys.gui.casesetup.phases.PhasesPanel;
import eu.engys.gui.casesetup.reactions.ReactionsPanel;
public class CombustionModule extends ApplicationModuleAdapter {
@ -59,6 +62,7 @@ public class CombustionModule extends ApplicationModuleAdapter {
private CombustionSolutionView solutionView;
private CombustionBoundaryConditionsView boundaryConditionsView;
private ReactionsPanel reactionsPanel;
private TreeView treeView;
private double sigma;
@ -74,7 +78,8 @@ public class CombustionModule extends ApplicationModuleAdapter {
this.solutionView = new CombustionSolutionView(this);
this.boundaryConditionsView = new CombustionBoundaryConditionsView(this);
this.treeView = new CombustionTreeView(this, null);
this.reactionsPanel = new ReactionsPanel(model, new CombustionReactionsView(this, model));
this.treeView = new CombustionTreeView(this, reactionsPanel);
this.reader = new CombustionReader(model, this);
@ -162,8 +167,19 @@ public class CombustionModule extends ApplicationModuleAdapter {
return boundaryConditionsView;
}
public void setReacting(boolean reacting) {
Logger logger = LoggerFactory.getLogger(CombustionReactionsView.class);
logger.debug("setting reacting on");
if (model != null && model.getState() != null) {
logger.debug("setting reacting done");
model.getState().setReacting(reacting);
}
}
public boolean isReacting() {
return false;
return model.getState().isReacting();
}
public void setSigma(double sigma) {

View file

@ -34,14 +34,15 @@ import eu.engys.core.dictionary.DimensionedScalar;
import eu.engys.core.dictionary.model.DictionaryModel;
import eu.engys.core.project.Model;
import eu.engys.gui.casesetup.phases.PhasesView;
import eu.engys.gui.casesetup.reactions.ReactionsView;
import eu.engys.util.DimensionalUnits;
import eu.engys.util.ui.builder.PanelBuilder;
public class CombustionPhasesView implements PhasesView {
public class CombustionReactionsView implements ReactionsView {
public static final String SURFACE_TENSION_LABEL = "Surface Tension [N/m]";
private static final Logger logger = LoggerFactory.getLogger(CombustionPhasesView.class);
private static final Logger logger = LoggerFactory.getLogger(CombustionReactionsView.class);
private Model model;
private CombustionModule module;
@ -49,7 +50,7 @@ public class CombustionPhasesView implements PhasesView {
private PanelBuilder parametersBuilder;
public CombustionPhasesView(CombustionModule module, Model model) {
public CombustionReactionsView(CombustionModule module, Model model) {
this.module = module;
this.model = model;
}

View file

@ -26,6 +26,7 @@ package eu.engys.combustion;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.ActionListener;
import java.util.Arrays;
import java.util.List;
@ -52,6 +53,7 @@ public class CombustionSolutionView extends AbstractSolutionView {
private static final Logger logger = LoggerFactory.getLogger(CombustionSolutionView.class);
private CombustionModule module;
private ActionListener listener;
private PanelBuilder builder;
private JCheckBox reaction;
@ -99,6 +101,8 @@ public class CombustionSolutionView extends AbstractSolutionView {
@Override
public void fixThermal(SolutionState ss, ThermalState ts) {
module.setReacting(ts.isReacting());
if (ss.areSolverTypeAndTimeAndFlowAndTurbulenceChoosen()) {
if (ss.isCoupled()) {
if (reaction.isSelected()) {
@ -137,5 +141,26 @@ public class CombustionSolutionView extends AbstractSolutionView {
modelsCombo.setSelectedItem(selectedItem);
}
}
@Override
public void setThermalListener(ActionListener listener) {
this.listener = listener;
}
}
@Override
public void addThermalListener() {
reaction.addActionListener(listener);
modelsCombo.addActionListener(listener);
}
@Override
public void removeThermalListener() {
reaction.removeActionListener(listener);
modelsCombo.removeActionListener(listener);
}
@Override
public void updateThermalState(ThermalState ts) {
ts.setReacting(reaction.isSelected());
}
}

View file

@ -28,23 +28,24 @@ import eu.engys.core.modules.ModulePanel;
import eu.engys.core.modules.tree.AbstractTreeViewAdapter;
import eu.engys.core.modules.tree.ModuleElementPanel;
import eu.engys.gui.casesetup.phases.PhasesPanel;
import eu.engys.gui.casesetup.reactions.ReactionsPanel;
public class CombustionTreeView extends AbstractTreeViewAdapter {
private CombustionModule module;
private ModulePanel phasesPanel;
private ModulePanel reactionsPanel;
public CombustionTreeView(CombustionModule module, PhasesPanel phasesPanel) {
public CombustionTreeView(CombustionModule module, ReactionsPanel reactionsPanel) {
this.module = module;
this.phasesPanel = phasesPanel;
this.reactionsPanel = reactionsPanel;
}
@Override
public void updateCaseSetupTree(ModuleElementPanel viewElementPanel) {
if (module.isReacting()) {
viewElementPanel.addPanel(phasesPanel);
viewElementPanel.addPanel(reactionsPanel);
} else {
viewElementPanel.removePanel(phasesPanel);
viewElementPanel.removePanel(reactionsPanel);
}
}

View file

@ -46,6 +46,7 @@ public class State {
private boolean buoyant;
private boolean radiation;
private boolean solar;
private boolean reacting;
private boolean adjoint;
@ -213,6 +214,14 @@ public class State {
public boolean isSolar() {
return solar;
}
public void setReacting(boolean reacting) {
this.reacting = reacting;
}
public boolean isReacting() {
return reacting;
}
public void setAdjoint(boolean adjoint) {
this.adjoint = adjoint;

View file

@ -29,17 +29,20 @@ public class ThermalState {
public static final String THERMAL = "Thermal";
public static final String ENERGY = "Energy";
public static final String BUOYANCY = "Buoyancy";
public static final String REACTING = "Reacting";
private boolean energy;
private boolean buoyancy;
private boolean radiation;
private boolean solar;
private boolean reacting;
public ThermalState() {
this.setEnergy(false);
this.setBuoyancy(false);
this.setBuoyancy(false);
this.setSolar(false);
this.setReacting(false);
}
public ThermalState(State state) {
@ -47,6 +50,7 @@ public class ThermalState {
this.setBuoyancy(state.isBuoyant());
this.setRadiation(state.isRadiation());
this.setSolar(state.isSolar());
this.setReacting(state.isReacting());
}
public boolean isEnergy() {
@ -81,8 +85,17 @@ public class ThermalState {
this.solar = solar;
}
public boolean isReacting() {
return reacting;
}
public void setReacting(boolean reacting) {
this.reacting = reacting;
}
@Override
public String toString() {
return "Energy: " + (isEnergy() ? "ON" : "OFF") + ", Buoyancy: " + (isBuoyancy() ? "ON" : "OFF") + ", Radiation: " + (isRadiation() ? "ON" : "OFF") + ", Solar: " + (isSolar() ? "ON" : "OFF");
return "Energy: " + (isEnergy() ? "ON" : "OFF") + ", Buoyancy: " + (isBuoyancy() ? "ON" : "OFF") + ", Radiation: " + (isRadiation() ? "ON" : "OFF") + ", Solar: " + (isSolar() ? "ON" : "OFF")
+ ", Reacting: " + (isReacting() ? "ON" : "OFF");
}
}