Using .rules-variable as item label?

Heres My working set (note the sitemap items are descending so highest consumption at the top):

Items:

Group:Number:SUM gPower "Overall Power [%.2f KWh]" <energy> 
Number      Kitchen1_Dimmer_Energy "Bench Consumption [%.2f KWh]"  (gPower)	  { channel="zwave:device:Controller:node15:meter_kwh" }
Number      Kitchen2_Dimmer_Energy "Center Consumption [%.2f KWh]"  (gPower)	  { channel="zwave:device:Controller:node12:meter_kwh" }
...
Number      Lounge_3_Dimmer_Energy "3 Consumption [%.2f KWh]"  (gPower)	  { channel="zwave:device:Controller:node17:meter_kwh" }

//power consumption sort order
String Display_gPower_1 "power [%s]" <battery>
String Display_gPower_2 "power [%s]" <battery>
String Display_gPower_3 "power [%s]" <battery>
String Display_gPower_4 "power [%s]" <battery>
String Display_gPower_5 "power [%s]" <battery>
String Display_gPower_6 "power [%s]" <battery>
String Display_gPower_7 "power [%s]" <battery>
String Display_gPower_8 "power [%s]" <battery>
String Display_gPower_9 "power [%s]" <battery>
String Display_gPower_10 "power [%s]" <battery>
String Display_gPower_11 "power [%s]" <battery>
String Display_gPower_12 "power [%s]" <battery>
String Display_gPower_13 "power [%s]" <battery>

Rules


import java.util.ArrayList
import java.util.Map
import java.util.HashMap
//------------------------------------------------------------------------------------------------------------------------------------------------------------
//
// Rule: Retrieve and process power consumption information
//
//------------------------------------------------------------------------------------------------------------------------------------------------------------
rule "Retrieve and process power consumption information"
when
    Time cron "0 0/15 * * * ?" // Every 15 min.
 then
    val Map <String, Double> PowerMap = new HashMap<String, Double>() // power map = power item name -> power value
    var ArrayList<StringItem> DisplayItems =  new ArrayList<StringItem>()
    var Integer i
       
    // Build map with prices
    gPower?.members.forEach[ gPowerItem |       
        if (gPowerItem.state != NULL) {          
            PowerMap.put(gPowerItem.label, (gPowerItem.state as DecimalType).doubleValue)           
        } else {           
            PowerMap.put(gPowerItem.label, 0.0)           
        }
    ]
    
    // Build array with display items
    DisplayItems.add(0, Display_gPower_1)
    DisplayItems.add(1, Display_gPower_2)
    DisplayItems.add(2, Display_gPower_3)
    DisplayItems.add(3, Display_gPower_4)
    DisplayItems.add(4, Display_gPower_5)
    DisplayItems.add(5, Display_gPower_6)
    DisplayItems.add(6, Display_gPower_7)
    DisplayItems.add(7, Display_gPower_8)
    DisplayItems.add(8, Display_gPower_9)
    DisplayItems.add(9, Display_gPower_10)
    DisplayItems.add(10, Display_gPower_11)
    DisplayItems.add(11, Display_gPower_12)
    DisplayItems.add(12, Display_gPower_13)
    
    // Combine values with display items
    i = 0
    for (gPowerEntry : PowerMap.entrySet.sortBy[value]) {
        // Set the label of the display items
        DisplayItems.get(i).label = gPowerEntry.getKey()       
        // Set value according to label of display items
              DisplayItems.get(i).postUpdate(String::format("%.2f kWh", gPowerEntry.getValue()))     
        // Switch to next display items
        i = i+1        
    }

end	

Sitemap

Frame label="Power Consumption" {
			Text item=Display_gPower_13
			Text item=Display_gPower_12
			Text item=Display_gPower_11
			Text item=Display_gPower_10
			Text item=Display_gPower_9
			Text item=Display_gPower_8
			Text item=Display_gPower_7
			Text item=Display_gPower_6
			Text item=Display_gPower_5
			Text item=Display_gPower_4
			Text item=Display_gPower_3
			Text item=Display_gPower_2
			Text item=Display_gPower_1
		}