Java Look & Feel with SAS Management Console on Linux

As someone who specialises in SAS® metadata security, I spend a lot of time using the Authorization tab in SAS Management Console. I also use Linux a great deal. When I run SAS Management Console on Linux, I’ve noticed that the check box background colours on the Authorization tab don’t render correctly (for me at least). I only ever see white background check boxes when I expect to also see green and gray ones: green indicating an ACT; white indicating an ACE; and gray indicating indirect. These colours are important indicators for the source of access controls so not being able to see them is a problem!

It occurred to me that I might be able to resolve this by specifying a Java System Property in the sasmc.ini file to change the Java Look & Feel.

I first tried changing the default look & feel (using ‑Dswing.defaultlaf) but that didn’t work. What did work is changing the default system look & feel (with ‑Dswing.systemlaf).

To change the default system look & feel, you can edit the sasmc.ini file (e.g. /opt/sas94m4/sashome/SASManagementConsole/9.4/sasmc.ini) and add a line to specify the swing.systemlaf system property. Inside the sasmc.ini file, locate the lines that all begin with JavaArgs_ and have an incrementing series of numbers. e.g.

...
JavaArgs_15=-Dsas.app.launch.picklist=picklist;help\primary.picklist
JavaArgs_16=
...

Find the last JavaArgs line. If it has a blank value after the equals sign, as in JavaArgs_16 above, then edit that line, otherwise add a new line after it with the next number in sequence. After these edits, the last JavaArgs line should be as follows, although the number and value may be different depending on your installation and look & feel choice:

...
JavaArgs_16=-Dswing.systemlaf=javax.swing.plaf.metal.MetalLookAndFeel
...

Save the modified sasmc.ini file and restart SAS Management Console to pick up the new look & feel.

The sections below show examples and screenshots of some of the look & feels available on Linux. I personally use the cross-platform Metal look & feel.

Default (GTK) Look & Feel

On my Linux installation, using the Gnome desktop environment, the default system look & feel is com.sun.java.swing.plaf.gtk.GTKLookAndFeel. This is the look & feel I see when I either don’t specify swing.systemlaf or use the explicit setting:

...
JavaArgs_16=-Dswing.systemlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
...

As shown in the screenshot below, the GTKLookAndFeel has a problem where the Authorization tab green and grey checkbox background colours are not shown. For this reason I don’t use the GTKLookAndFeel for SAS Management Console on Linux.

SAS Management Console Authorization Tab: Default GTK Look & Feel

Cross-Platform (Metal) Look & Feel

Metal (javax.swing.plaf.metal.MetalLookAndFeel) is a cross-platform look & feel that is available, and looks the same, on all platforms (Linux, Windows etc). It can be used with SAS Management Console with the following addition to the sasmc.ini file:

...
JavaArgs_16=-Dswing.systemlaf=javax.swing.plaf.metal.MetalLookAndFeel
...

As discussed above, you may need to use a different JavaArgs numeric suffix depending on what you find in your sasmc.ini file.

Using the Metal look & feel with SAS Management Console on Linux seems to correctly render the Authorization tab checkbox background colours as shown below. I personally use this look & feel because, in addition to correctly rendering the checkboxes, it’s also the one that looks best with the Gnome desktop theme I use.

SAS Management Console Authorization Tab: Metal Look & Feel

Motif Look & Feel

Motif (com.sun.java.swing.plaf.motif.MotifLookAndFeel) is another look & feel available on Linux that also appears to correctly render the Authorization tab checkbox background colours. It can be used with SAS Management Console on Linux with an addition to the sasmc.ini file like so:

...
JavaArgs_16=-Dswing.systemlaf=com.sun.java.swing.plaf.motif.MotifLookAndFeel
...

The screenshot below shows the SAS Management Console Authorization tab when using the Motif look & feel. Whilst it correctly renders the checkbox background colours, it does look a little dated. :)

SAS Management Console Authorization Tab: Motif Look & Feel

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.