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) {
|