Colors in popup menus?

I am trying to set the text and background color in a popup menu via a script. This works, only the item of submenu 'Test2' keeps the default colors. What am I doing wrong? The script below is the script I used for testing.

from javax.swing import JMenuItem
from java.awt import Font
from java.awt import Cursor
from com.inductiveautomation.ignition.client.images import PathIcon
from javax.swing import JMenu

FONT_DROPDOWNITEMS=Font("Arial Narrow",Font.PLAIN,20)

def popupmenu( event ):	
	menu = system.gui.createPopupMenu([],[])
		
	# Menu item 1
	menuItem=JMenuItem()
	menuItem.text='Test1'
	menuItem.actionPerformed=dummyFunctie
	icon=PathIcon()
	icon.path='MOBZ/error-outline.png'
	menuItem.setIcon(icon)
	commonSettings(menuItem)	
	menu.add( menuItem ) 	
	
	# Menu item 2 (submenu)
	submenu=JMenu('Test2')
	
	# Submenu item 2a
	submenuItem=JMenuItem()
	submenuItem.text='Test2a'
	submenuItem.actionPerformed=dummyFunctie
	commonSettings(submenuItem)
	submenu.add(submenuItem)
	
	# Submenu item 2b
	submenuItem=JMenuItem()
	submenuItem.text='Test2b'
	submenuItem.actionPerformed=dummyFunctie
	commonSettings(submenuItem)
	submenu.add(submenuItem)
	
	submenu.setEnabled(True) 
	commonSettings(submenu)
	menu.add( submenu ) 									
	
	menu.show(event,0,0)

def commonSettings(menuitem):
	menuitem.background=system.gui.color('220,220,220')
	menuitem.foreground=system.gui.color('0,0,0')
	menuitem.setFont(FONT_DROPDOWNITEMS)	
	
def dummyFunctie(event):
	print 'dummy'
		
popupmenu(event)

Maybe a silly question, but would it not be easier to have a popup view and pass all the colour and text information to parameters?

Maybe, but that is not the question.

Have you tried settings it color and font before adding the nested entries?

Yes, before adding

Take a look at this thread:

1 Like