} else { row = "<p>Purchase cost: $" + tile.getTerrainValue(w, point.x, point.y) + "</p>";
    public void setTerrainLocation(Point point) {	FreerailsTile tile = w.getTile(point.x, point.y);	TerrainType type = (TerrainType)w.get(KEY.TERRAIN_TYPES,		tile.getTerrainTypeNumber());              String row = "<p>Right-of-Way costs $" + type.getRightOfWay() + 	    " per mile. </p>";		if (! tile.getOwner().equals(Player.AUTHORITATIVE)) {	    NonNullElements i = new NonNullElements(KEY.PLAYERS, w,		    Player.AUTHORITATIVE);	    while (i.next()) {		Player player = (Player) i.getElement();		if (player.getPrincipal().equals(tile.getOwner())) {		    row += "<p>Owner: " + player.getName() + "<p>";		    break;		}	    }	}	        String tableString = "";        int cargosProduced = type.getProduction().length;        int cargosConsumed = type.getConsumption().length;        int cargosConverted = type.getConversion().length;        if((cargosProduced +  cargosConsumed+ cargosConverted) > 0){            //if the terrain type produces, consumes, or converts anything.            tableString = "<table width=\"75%\" >";            if(cargosProduced != 0){                tableString += "<tr> <td><strong>Supplies</strong></td> <td>&nbsp;</td> </tr>";                for(int i = 0; i < cargosProduced ; i++){                    Production p = type.getProduction()[i];                    CargoType c = (CargoType)w.get(KEY.CARGO_TYPES, p.getCargoType());                    String supply = String.valueOf(p.getRate());                    tableString += "<tr> <td>"+c.getDisplayName()+" </td><td>"+supply+"</td></tr>";                }            }            if(cargosConsumed != 0){                tableString += "<tr> <td><strong>Demands</strong></td> <td>&nbsp;</td> </tr>";                for(int i = 0; i < cargosConsumed ; i++){                    Consumption p = type.getConsumption()[i];                    CargoType c = (CargoType)w.get(KEY.CARGO_TYPES, p.getCargoType());                    tableString += "<tr> <td>"+c.getDisplayName()+" </td><td>&nbsp;</td></tr>";                }                            }            if(cargosConverted != 0){                tableString += "<tr> <td><strong>Converts</strong></td> <td>&nbsp;</td> </tr>";                for(int i = 0; i < cargosConverted ; i++){                    Conversion p = type.getConversion()[i];                    CargoType input = (CargoType)w.get(KEY.CARGO_TYPES, p.getInput());                    CargoType output = (CargoType)w.get(KEY.CARGO_TYPES, p.getOutput());                    tableString += "<tr> <td colspan=\"2\">"+input.getDisplayName()+" to "+output.getDisplayName()+"</td></tr>";                }                                }            tableString += "</table> ";        }        String labelString = "<html>" + row + tableString + "</html>";        terrainDescription.setText(labelString);        terrainName.setText(type. getDisplayName());                Image tileIcon = vl.getTileViewList().getTileViewWithNumber	    (tile.getTerrainTypeNumber()).getDefaultIcon();        terrainImage.setIcon(new ImageIcon(tileIcon));                repaint();    }