package uk.ac.cam.cstibhotel.otcanalyser.gui; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.DefaultComboBoxModel; import javax.swing.MutableComboBoxModel; public class BaseProductChange implements ActionListener { TaxonomySelector tax; BaseProductChange(TaxonomySelector tax) { this.tax = tax; } public void updateBaseClass() { String selectedBaseClass = (String) tax.BaseClass.getSelectedItem(); String[] subClasses={"n/a"}; switch (selectedBaseClass) { case ("Single Name"): subClasses = TextStrings.CreditSingleNameSubProducts; break; case ("Index Tranche"): subClasses = TextStrings.CreditIndexTrancheSubProducts; break; case ("Index"): subClasses = TextStrings.CreditIndexSubProducts; break; case ("Swaptions"): subClasses = TextStrings.CreditSwaptionsSubProducts; break; case ("Exotic"): if (tax.Asset.getSelectedItem() == "Credit") subClasses = TextStrings.CreditExoticSubProducts; break; case ("IR Swap"): subClasses = TextStrings.InterestIRSwapSubProducts; break; case ("Cross Currency"): subClasses = TextStrings.InterestCrossCurrencySubProducts; break; case ("Option"): if (tax.Asset.getSelectedItem() == "Interest") subClasses = TextStrings.InterestOptionSubProducts; else subClasses = TextStrings.EquityOptionSubProducts; break; case ("Metals"): subClasses = TextStrings.CommodityMetalsSubProducts; break; case ("Energy"): subClasses = TextStrings.CommodityEnergySubProducts; break; case ("Agriculture"): subClasses = TextStrings.CommodityAgricultureSubProducts; break; case ("Environmental"): subClasses = TextStrings.CommodityEnvironmentalSubProducts; break; case ("Simple Exotic"): subClasses = TextStrings.ForexSimpleExoticSubProducts; break; case ("Swap"): subClasses = TextStrings.EquitySwapSubProducts; break; case ("Portfolio swap"): subClasses = TextStrings.EquityPortfolioSwapSubProducts; break; case ("Contract for difference"): subClasses = TextStrings.EquityContractForDifferenceSubProducts; break; case ("Forward"): subClasses = TextStrings.EquityForwardSubProducts; break; default:break; } MutableComboBoxModel<String> model = (MutableComboBoxModel<String>) tax.SubClass.getModel(); ((DefaultComboBoxModel<String>) model).removeAllElements(); for (String i:subClasses) { model.addElement(i); } } @Override public void actionPerformed(ActionEvent e) { if (TaxonomySelector.baseClassflag) updateBaseClass(); } }