From edc1fabbbd25d2c4eefdf35eb7b228402a66fc26 Mon Sep 17 00:00:00 2001 From: Yeongdo Park Date: Mon, 11 Mar 2019 04:24:40 +0900 Subject: [PATCH] Added ombustion Model Combo Box (UI only) --- .../combustion/CombustionSolutionView.java | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/eu/engys/combustion/CombustionSolutionView.java b/src/eu/engys/combustion/CombustionSolutionView.java index 98260c9..b600909 100644 --- a/src/eu/engys/combustion/CombustionSolutionView.java +++ b/src/eu/engys/combustion/CombustionSolutionView.java @@ -24,7 +24,17 @@ *******************************************************************************/ package eu.engys.combustion; +import java.awt.BorderLayout; +import java.awt.Component; +import java.util.Arrays; +import java.util.List; + +import javax.swing.DefaultComboBoxModel; import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.ListCellRenderer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,6 +55,8 @@ public class CombustionSolutionView extends AbstractSolutionView { private PanelBuilder builder; private JCheckBox reaction; + + JComboBox modelsCombo; public CombustionSolutionView(CombustionModule module) { this.module = module; @@ -54,6 +66,23 @@ public class CombustionSolutionView extends AbstractSolutionView { public void buildThermal(PanelBuilder builder) { this.builder = builder; this.reaction = (JCheckBox) builder.startCheck("Reaction"); + + modelsCombo = new JComboBox(); + modelsCombo.setPrototypeDisplayValue("Laminar"); + final ListCellRenderer renderer = modelsCombo.getRenderer(); + modelsCombo.setRenderer(new ListCellRenderer() { + @Override + public Component getListCellRendererComponent(JList list, String value, int index, boolean isSelected, boolean cellHasFocus) { + Component c = renderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); + if (c instanceof JLabel && value instanceof String) { + String model = (String) value; + ((JLabel) c).setText(model); + } + return c; + } + }); + + builder.addComponent("Combustion Model", modelsCombo); } @Override @@ -88,6 +117,25 @@ public class CombustionSolutionView extends AbstractSolutionView { } else { reaction.setEnabled(false); } + + String selectedItem = modelsCombo.getItemAt(modelsCombo.getSelectedIndex()); + + List models = Arrays.asList(new String[]{"Laminar", "PaSR"}); + + modelsCombo.removeAllItems(); + String laminar = null; + for (String combModel : models) { + modelsCombo.addItem(combModel); + if (combModel == "Laminar") { + laminar = combModel; + } + } + + if (((DefaultComboBoxModel) modelsCombo.getModel()).getIndexOf(selectedItem) < 0) { + modelsCombo.setSelectedItem(laminar); + } else { + modelsCombo.setSelectedItem(selectedItem); + } } }