### Eclipse Workspace Patch 1.0
#P JMapViewer
Index: src/org/openstreetmap/gui/jmapviewer/checkBoxTree/CheckBoxNodeRenderer.java
===================================================================
--- src/org/openstreetmap/gui/jmapviewer/checkBoxTree/CheckBoxNodeRenderer.java	(revision 36494)
+++ src/org/openstreetmap/gui/jmapviewer/checkBoxTree/CheckBoxNodeRenderer.java	(working copy)
@@ -33,9 +33,14 @@
         final Font fontValue = UIManager.getFont("Tree.font");
         if (fontValue != null) panel.getLabel().setFont(fontValue);
 
+        
+        /*
         final Boolean focusPainted =
             (Boolean) UIManager.get("Tree.drawsFocusBorderAroundIcon");
         panel.check.setFocusPainted(focusPainted != null && focusPainted);
+        */
+        // Compact check for Focus Border
+        panel.check.setFocusPainted(Boolean.TRUE.equals(UIManager.get("Tree.drawsFocusBorderAroundIcon")));
 
         selectionForeground = UIManager.getColor("Tree.selectionForeground");
         selectionBackground = UIManager.getColor("Tree.selectionBackground");
@@ -69,11 +74,20 @@
         //final String stringValue =
         //    tree.convertValueToText(value, selected, expanded, leaf, row, false);
         //panel.label.setText(stringValue);
+        
+        // Order adjusted: Fallback to DefaultRenderer inserted further up the list if no CheckBox data is available.
+        if (data == null) {
+            // not a check box node; return default cell renderer
+            return defaultRenderer.getTreeCellRendererComponent(tree, value,
+                selected, expanded, leaf, row, hasFocus);
+        }
 
+        // 
         panel.setSelected(Boolean.FALSE);
 
         panel.setEnabled(tree.isEnabled());
 
+        /*
         if (selected) {
             panel.setForeground(selectionForeground);
             panel.setBackground(selectionBackground);
@@ -85,12 +99,17 @@
             panel.getLabel().setForeground(textForeground);
             panel.getLabel().setBackground(textBackground);
         }
+        */
+        // Centralized color management for improved readability.
+        updateColors(selected);
 
+        /*
         if (data == null) {
             // not a check box node; return default cell renderer
             return defaultRenderer.getTreeCellRendererComponent(tree, value,
                 selected, expanded, leaf, row, hasFocus);
         }
+        */
 
         //panel.label.setText(data.getText());
         panel.setData(data);
@@ -98,6 +117,17 @@
 
         return panel;
     }
+    
+    private void updateColors(boolean selected) {
+        Color fg = selected ? selectionForeground : textForeground;
+        Color bg = selected ? selectionBackground : textBackground;
+
+        panel.setForeground(fg);
+        panel.setBackground(bg);
+        panel.getLabel().setForeground(fg);
+        panel.getLabel().setBackground(bg);
+    }
+    
 /*
     private JPopupMenu createPopupMenu(final AbstractLayer layer) {
         JMenuItem menuItem;
