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/StandardAttributePanel.java |   57 ++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 40 insertions(+), 17 deletions(-)

diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/ui/StandardAttributePanel.java b/opends/src/guitools/org/opends/guitools/controlpanel/ui/StandardAttributePanel.java
index 7311e87..2e64477 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/ui/StandardAttributePanel.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/ui/StandardAttributePanel.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;
@@ -213,32 +215,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)
-            {
-              Schema schema = getInfo().getServerDescriptor().getSchema();
-              if (schema != null)
-              {
-                ObjectClass oc = schema.getObjectClass(o.toLowerCase());
-                if (oc != null)
-                {
-                  notifySchemaSelectionListeners(oc);
-                }
-              }
-            }
+            objectClassSelected(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))
+          {
+            objectClassSelected(list);
+          }
+        }
+      };
+      list.addKeyListener(keyListener);
     }
   }
 
@@ -400,4 +406,21 @@
     }
     return mb.toMessage();
   }
+
+  private void objectClassSelected(JList list)
+  {
+    String o = (String)list.getSelectedValue();
+    if (o != null)
+    {
+      Schema schema = getInfo().getServerDescriptor().getSchema();
+      if (schema != null)
+      {
+        ObjectClass oc = schema.getObjectClass(o.toLowerCase());
+        if (oc != null)
+        {
+          notifySchemaSelectionListeners(oc);
+        }
+      }
+    }
+  }
 }

--
Gitblit v1.10.0