From: Stefan F. <ste...@us...> - 2010-04-16 16:38:29
|
Update of /cvsroot/rails/18xx/rails/ui/swing In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv2212/rails/ui/swing Modified Files: ORUIManager.java ORPanel.java Log Message: Updated revenue calculation: Pretty print and better thread support Index: ORUIManager.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/ui/swing/ORUIManager.java,v retrieving revision 1.66 retrieving revision 1.67 diff -C2 -d -r1.66 -r1.67 *** ORUIManager.java 15 Apr 2010 21:46:28 -0000 1.66 --- ORUIManager.java 16 Apr 2010 16:38:21 -0000 1.67 *************** *** 474,477 **** --- 474,478 ---- if (command.equals(ORPanel.SET_REVENUE_CMD)) { amount = orPanel.getRevenue(orCompIndex); + orPanel.stopRevenueUpdate(); log.debug("Set revenue amount is " + amount); action.setActualRevenue(amount); Index: ORPanel.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/ui/swing/ORPanel.java,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** ORPanel.java 15 Apr 2010 21:46:28 -0000 1.55 --- ORPanel.java 16 Apr 2010 16:38:21 -0000 1.56 *************** *** 110,113 **** --- 110,116 ---- private PublicCompanyI orComp = null; + + private RevenueAdapter revenueAdapter = null; + private Thread revenueThread = null; protected static Logger log = *************** *** 782,790 **** button1.setVisible(true); - // initialize and start the revenue adapter ! RevenueAdapter ra = initRevenueCalculation(orComp); ! ! new Thread(ra).start(); } --- 785,792 ---- button1.setVisible(true); // initialize and start the revenue adapter ! revenueAdapter = initRevenueCalculation(orComp); ! revenueThread = new Thread(revenueAdapter); ! revenueThread.start(); } *************** *** 827,834 **** } ! public void revenueUpdate(int revenue, boolean finalResult) { ! revenueSelect[orCompIndex].setValue(revenue); } public void initPayoutStep(int orCompIndex, SetDividend action, boolean withhold, boolean split, boolean payout) { --- 829,848 ---- } ! public void revenueUpdate(int bestRevenue, boolean finalResult) { ! revenueSelect[orCompIndex].setValue(bestRevenue); ! if (finalResult) { ! JOptionPane.showMessageDialog(orWindow, "Best Run Value = " + bestRevenue + ! "\n" + revenueAdapter.getOptimalRunPrettyPrint()); ! } } + public void stopRevenueUpdate() { + revenueAdapter.removeRevenueListener(); + revenueAdapter = null; + revenueThread.interrupt(); + revenueThread = null; + } + + public void initPayoutStep(int orCompIndex, SetDividend action, boolean withhold, boolean split, boolean payout) { |