From 093e406859be8e3a49e48cfc14f0a5276bc70d5d Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Mon, 04 Jun 2007 19:51:10 +0000
Subject: [PATCH] Fix for issue 1601.
---
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ui/ProgressPanel.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 52 insertions(+), 0 deletions(-)
diff --git a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ui/ProgressPanel.java b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ui/ProgressPanel.java
index 13d8c4b..72e35eb 100644
--- a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ui/ProgressPanel.java
+++ b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/ui/ProgressPanel.java
@@ -32,6 +32,8 @@
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
import javax.swing.*;
import javax.swing.event.HyperlinkEvent;
@@ -60,6 +62,8 @@
private String lastText;
+ private Component lastFocusComponent;
+
/**
* ProgressPanel constructor.
* @param application Application this panel represents
@@ -89,6 +93,8 @@
getMsg("progressbar-initial-label"), UIFactory.PROGRESS_FONT);
progressBarLabel.setOpaque(false);
progressBarLabel.setEditable(false);
+ progressBarLabel.setFocusable(false);
+ progressBarLabel.setFocusCycleRoot(false);
CustomHTMLEditorKit htmlEditor = new CustomHTMLEditorKit();
htmlEditor.addActionListener(new ActionListener()
{
@@ -145,6 +151,8 @@
gbc.weighty = 1.0;
panel.add(scroll, gbc);
+ addFocusListeners();
+
return panel;
}
@@ -167,6 +175,17 @@
/**
* {@inheritDoc}
*/
+ public void endDisplay()
+ {
+ if (lastFocusComponent != null)
+ {
+ lastFocusComponent.requestFocusInWindow();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public void displayProgress(ProgressDescriptor descriptor)
{
ProgressStep status = descriptor.getProgressStep();
@@ -175,6 +194,7 @@
if (status.isLast()) {
progressBar.setVisible(false);
+ progressBarLabel.setFocusable(true);
btnCancel.setVisible(false);
if (!status.isError()) {
summaryText = "<form>"+summaryText+"</form>";
@@ -252,6 +272,38 @@
return panel;
}
+ /**
+ * Adds the required focus listeners to the fields.
+ */
+ private void addFocusListeners()
+ {
+ final FocusListener l = new FocusListener()
+ {
+ public void focusGained(FocusEvent e)
+ {
+ lastFocusComponent = e.getComponent();
+ }
+
+ public void focusLost(FocusEvent e)
+ {
+ }
+ };
+
+ JComponent[] comps =
+ {
+ progressBarLabel,
+ progressBar,
+ btnCancel,
+ detailsTextArea
+ };
+ for (int i = 0; i < comps.length; i++)
+ {
+ comps[i].addFocusListener(l);
+ }
+
+ lastFocusComponent = detailsTextArea;
+ }
+
// public static void main(String[] args) {
// final UserData ud = new UpgradeUserData();
// ud.setServerLocation("XXX/XXXXX/XX/XXXXXXXXXXXX/XXXX");
--
Gitblit v1.10.0