From 992cc296d8f812df0e68df14749b0a81d79f2a8f Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Wed, 28 Jan 2009 01:37:26 +0000
Subject: [PATCH] Add some key listeners to the different lists on the 'Browse Schema' panels.  This is done to make these panels 508 compliant by allowing the user to navigate using only the keyboard.

---
 opends/src/guitools/org/opends/guitools/controlpanel/ui/StandardObjectClassPanel.java |   49 ++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 36 insertions(+), 13 deletions(-)

diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/ui/StandardObjectClassPanel.java b/opends/src/guitools/org/opends/guitools/controlpanel/ui/StandardObjectClassPanel.java
index 203b6a8..7bb6650 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/ui/StandardObjectClassPanel.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/ui/StandardObjectClassPanel.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2008 Sun Microsystems, Inc.
+ *      Copyright 2008-2009 Sun Microsystems, Inc.
  */
 
 package org.opends.guitools.controlpanel.ui;
@@ -32,6 +32,8 @@
 import java.awt.Component;
 import java.awt.Container;
 import java.awt.GridBagConstraints;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.util.ArrayList;
@@ -225,28 +227,36 @@
       gbc.gridy ++;
 
       final JList list = lists[i];
-      MouseAdapter doubleClickListener = new MouseAdapter()
+      MouseAdapter clickListener = new MouseAdapter()
       {
         /**
          * {@inheritDoc}
          */
         public void mouseClicked(MouseEvent ev)
         {
-          if (ev.getClickCount() > 1)
+          if (ev.getClickCount() == 1)
           {
-            String o = (String)list.getSelectedValue();
-            if (o != null)
-            {
-              AttributeType attr = hmAttrs.get(o);
-              if (attr != null)
-              {
-                notifySchemaSelectionListeners(attr);
-              }
-            }
+            attrSelected(list);
           }
         }
       };
-      list.addMouseListener(doubleClickListener);
+      list.addMouseListener(clickListener);
+
+      KeyAdapter keyListener = new KeyAdapter()
+      {
+        /**
+         * {@inheritDoc}
+         */
+        public void keyTyped(KeyEvent ev)
+        {
+          if ((ev.getKeyChar() == KeyEvent.VK_SPACE) ||
+              (ev.getKeyChar() == KeyEvent.VK_ENTER))
+          {
+            attrSelected(list);
+          }
+        }
+      };
+      list.addKeyListener(keyListener);
     }
   }
 
@@ -456,4 +466,17 @@
     }
     return mb.toMessage();
   }
+
+  private void attrSelected(JList list)
+  {
+    String o = (String)list.getSelectedValue();
+    if (o != null)
+    {
+      AttributeType attr = hmAttrs.get(o);
+      if (attr != null)
+      {
+        notifySchemaSelectionListeners(attr);
+      }
+    }
+  }
 }

--
Gitblit v1.10.0