From: Erik V. <ev...@us...> - 2009-01-08 19:59:51
|
Update of /cvsroot/rails/18xx/rails/ui/swing In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv15164/rails/ui/swing Modified Files: StartRoundWindow.java Log Message: Start item status tooltips & colours Index: StartRoundWindow.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/ui/swing/StartRoundWindow.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** StartRoundWindow.java 7 Jan 2009 21:03:24 -0000 1.28 --- StartRoundWindow.java 8 Jan 2009 19:59:39 -0000 1.29 *************** *** 33,36 **** --- 33,40 ---- private static final int WIDE_BOTTOM = 8; + private static final Color buyableColour = new Color (0, 128, 0); + private static final Color soldColour = new Color (128, 128, 128); + private static final Color defaultColour = Color.BLACK; + private final JPanel statusPanel; private final JPanel buttonPanel; *************** *** 55,58 **** --- 59,63 ---- private Field info[]; private int infoXOffset, infoYOffset; + private Field itemStatus[]; // Remains invisible, only used for status tooltip private Caption[] upperPlayerCaption; *************** *** 80,83 **** --- 85,94 ---- private JComponent f; + /** @see StartItem.statusName */ + public static final String[] itemStatusTextKeys = + new String[] { "Status_Unavailable", "Status_Biddable", "Status_Buyable", + "Status_Selectable", "Status_Auctioned", + "Status_NeedingSharePrice", "Status_Sold" }; + // Current state private int playerIndex = -1; *************** *** 190,193 **** --- 201,205 ---- bidPerPlayer = new Field[ni][np]; info = new Field[ni]; + itemStatus = new Field[ni]; upperPlayerCaption = new Caption[np]; lowerPlayerCaption = new Caption[np]; *************** *** 267,272 **** f = info[i] = new Field (infoIcon); ! f.setToolTipText(getStartItemDescription(items[i])); addField (f, infoXOffset, infoYOffset + i, 1, 1, WIDE_LEFT); } --- 279,287 ---- f = info[i] = new Field (infoIcon); ! f.setToolTipText(getStartItemDescription(si)); addField (f, infoXOffset, infoYOffset + i, 1, 1, WIDE_LEFT); + + // Invisible field, only used to hold current item status. + f = itemStatus[i] = new Field (si.getStatusModel()); } *************** *** 381,385 **** buyButton.setPossibleAction(action); } else { ! itemNameButton[i].setToolTipText(LocalText.getText("ClickToSelectForBuying")); itemNameButton[i].setPossibleAction(action); } --- 396,400 ---- buyButton.setPossibleAction(action); } else { ! //itemNameButton[i].setToolTipText(LocalText.getText("ClickToSelectForBuying")); itemNameButton[i].setPossibleAction(action); } *************** *** 423,427 **** spinnerModel.setValue(mb); } else { ! itemNameButton[i].setToolTipText(LocalText.getText("ClickToSelectForBidding")); itemNameButton[i].setPossibleAction(action); } --- 438,442 ---- spinnerModel.setValue(mb); } else { ! //itemNameButton[i].setToolTipText(LocalText.getText("ClickToSelectForBidding")); itemNameButton[i].setPossibleAction(action); } *************** *** 627,635 **** private void setItemNameButton(int i, boolean clickable) { itemName[i].setVisible(!clickable); itemNameButton[i].setVisible(clickable); } ! private String getStartItemDescription (StartItem item) { StringBuffer b = new StringBuffer("<html>"); b.append (item.getPrimary().toString()); --- 642,662 ---- private void setItemNameButton(int i, boolean clickable) { + itemName[i].setVisible(!clickable); itemNameButton[i].setVisible(clickable); + + int status = Integer.parseInt(itemStatus[i].getText()); + String tooltip = LocalText.getText(itemStatusTextKeys[status]); + + itemName[i].setToolTipText(clickable ? "" : tooltip); + itemNameButton[i].setToolTipText(clickable ? tooltip : ""); + + itemName[i].setForeground ( + status == StartItem.SOLD ? soldColour : defaultColour); + itemNameButton[i].setForeground ( + status == StartItem.BUYABLE ? buyableColour : defaultColour); } ! private String getStartItemDescription (StartItem item) { StringBuffer b = new StringBuffer("<html>"); b.append (item.getPrimary().toString()); |