Add no mouse support for table cell editors.

Add auto-search function in FrameworkModules tables by detecting keyboard typing.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1637 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
jlin16 2006-09-28 09:01:25 +00:00
parent 2c71f6e5ab
commit 2a06ac5bc6
7 changed files with 112 additions and 9 deletions

View File

@ -20,6 +20,7 @@ import javax.swing.JPanel;
import javax.swing.JDialog; import javax.swing.JDialog;
import java.awt.GridLayout; import java.awt.GridLayout;
import javax.swing.JComponent;
import javax.swing.JFrame; import javax.swing.JFrame;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import javax.swing.JTextField; import javax.swing.JTextField;
@ -27,12 +28,14 @@ import javax.swing.JLabel;
import javax.swing.JRadioButton; import javax.swing.JRadioButton;
import javax.swing.ButtonGroup; import javax.swing.ButtonGroup;
import javax.swing.JButton; import javax.swing.JButton;
import javax.swing.KeyStroke;
import org.tianocore.frameworkwizard.common.Tools; import org.tianocore.frameworkwizard.common.Tools;
import java.awt.FlowLayout; import java.awt.FlowLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter; import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent; import java.awt.event.WindowEvent;
@ -62,6 +65,7 @@ public class GenGuidDialog extends JDialog implements ActionListener{
private JButton jButtonCancel = null; private JButton jButtonCancel = null;
private JButton jButtonNew = null; private JButton jButtonNew = null;
private JButton jButtonOk = null; private JButton jButtonOk = null;
private ActionListener outerListener = null;
// private String guid = null; // private String guid = null;
@ -121,7 +125,7 @@ public class GenGuidDialog extends JDialog implements ActionListener{
// else { // else {
// JOptionPane.showMessageDialog(frame, "Incorrect GUID Value Format."); // JOptionPane.showMessageDialog(frame, "Incorrect GUID Value Format.");
// } // }
this.dispose(); // this.dispose();
} }
if (arg0.getSource() == jButtonCancel){ if (arg0.getSource() == jButtonCancel){
@ -227,6 +231,7 @@ public class GenGuidDialog extends JDialog implements ActionListener{
jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20)); jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20));
jButtonCancel.setText("Cancel"); jButtonCancel.setText("Cancel");
jButtonCancel.addActionListener(this); jButtonCancel.addActionListener(this);
jButtonCancel.registerKeyboardAction(this, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false), JComponent.WHEN_FOCUSED);
} }
return jButtonCancel; return jButtonCancel;
} }
@ -243,6 +248,7 @@ public class GenGuidDialog extends JDialog implements ActionListener{
jButtonNew.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING); jButtonNew.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);
jButtonNew.setText("New"); jButtonNew.setText("New");
jButtonNew.addActionListener(this); jButtonNew.addActionListener(this);
jButtonNew.registerKeyboardAction(this, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false), JComponent.WHEN_FOCUSED);
} }
return jButtonNew; return jButtonNew;
} }
@ -258,7 +264,9 @@ public class GenGuidDialog extends JDialog implements ActionListener{
jButtonOk.setPreferredSize(new java.awt.Dimension(80,20)); jButtonOk.setPreferredSize(new java.awt.Dimension(80,20));
jButtonOk.setText("Ok"); jButtonOk.setText("Ok");
jButtonOk.setActionCommand("GenGuidValue"); jButtonOk.setActionCommand("GenGuidValue");
jButtonOk.addActionListener(this); // jButtonOk.addActionListener(this);
jButtonOk.registerKeyboardAction(outerListener, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false), JComponent.WHEN_FOCUSED);
} }
return jButtonOk; return jButtonOk;
} }
@ -289,6 +297,7 @@ public class GenGuidDialog extends JDialog implements ActionListener{
public GenGuidDialog(ActionListener i){ public GenGuidDialog(ActionListener i){
super(); super();
outerListener = i;
initialize(); initialize();
jButtonOk.addActionListener(i); jButtonOk.addActionListener(i);
this.addWindowListener(new WindowAdapter(){ this.addWindowListener(new WindowAdapter(){

View File

@ -16,11 +16,14 @@ package org.tianocore.frameworkwizard.packaging.ui;
import java.awt.Component; import java.awt.Component;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
//import java.awt.event.KeyEvent;
import javax.swing.AbstractCellEditor; import javax.swing.AbstractCellEditor;
import javax.swing.JButton; import javax.swing.JButton;
//import javax.swing.JComponent;
import javax.swing.JFrame; import javax.swing.JFrame;
import javax.swing.JTable; import javax.swing.JTable;
//import javax.swing.KeyStroke;
import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellEditor;
@ -45,6 +48,7 @@ public class GuidEditor extends AbstractCellEditor implements TableCellEditor, A
button = new JButton(); button = new JButton();
button.setActionCommand(EDIT); button.setActionCommand(EDIT);
button.addActionListener(this); button.addActionListener(this);
// button.registerKeyboardAction(this, KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0, false), JComponent.WHEN_FOCUSED);
button.setBorderPainted(false); button.setBorderPainted(false);
@ -86,7 +90,8 @@ public class GuidEditor extends AbstractCellEditor implements TableCellEditor, A
} }
else { //User pressed dialog's "OK" button. else { //User pressed dialog's "OK" button.
currentGuid = dialog.getGuid(); currentGuid = dialog.getGuid();
// button.setText(currentGuid);
dialog.dispose();
} }
} }

View File

@ -38,6 +38,7 @@ import org.tianocore.frameworkwizard.platform.ui.global.WorkspaceProfile;
import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification; import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;
import java.awt.FlowLayout; import java.awt.FlowLayout;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
@ -52,6 +53,12 @@ public class FpdFrameworkModules extends IInternalFrame {
*/ */
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private static final int timeToWait = 3000;
private long savedMs = 0;
String searchField = "";
public static final int forceDbgColForFpdModTable = 7; public static final int forceDbgColForFpdModTable = 7;
static JFrame frame; static JFrame frame;
@ -309,11 +316,51 @@ public class FpdFrameworkModules extends IInternalFrame {
} }
} }
}); });
jTableAllModules.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
int selectedRow = jTableAllModules.getSelectedRow();
if (selectedRow < 0) {
return;
}
TableSorter sorter = (TableSorter) jTableAllModules.getModel();
selectedRow = sorter.getModelRowIndex(selectedRow);
addModuleIntoPlatform (selectedRow);
}
}
});
jTableAllModules.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent e) {
if (System.currentTimeMillis() - savedMs < timeToWait) {
searchField += e.getKeyChar();
}
else {
searchField = "" + e.getKeyChar();
}
int viewIndex = gotoFoundRow (searchField, (TableSorter) jTableAllModules.getModel());
if (viewIndex >= 0){
jTableAllModules.changeSelection(viewIndex, 0, false, false);
}
savedMs = System.currentTimeMillis();
}
});
} }
return jTableAllModules; return jTableAllModules;
} }
private int gotoFoundRow (String s, TableSorter model) {
for (int i = 0; i < model.getRowCount(); ++i) {
if (model.getValueAt(i, 0) != null && model.getValueAt(i, 0).toString().regionMatches(true, 0, s, 0, s.length())) {
return model.getViewIndexArray()[i];
}
}
return -1;
}
/** /**
* This method initializes jPanelTopSouth * This method initializes jPanelTopSouth
@ -560,6 +607,38 @@ public class FpdFrameworkModules extends IInternalFrame {
} }
}); });
jTableFpdModules.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
int selectedRow = jTableFpdModules.getSelectedRow();
if (selectedRow < 0) {
return;
}
TableSorter sorter = (TableSorter) jTableFpdModules.getModel();
selectedRow = sorter.getModelRowIndex(selectedRow);
showSettingsDlg (selectedRow);
}
}
});
jTableFpdModules.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent e) {
if (System.currentTimeMillis() - savedMs < timeToWait) {
searchField += e.getKeyChar();
}
else {
searchField = "" + e.getKeyChar();
}
int viewIndex = gotoFoundRow (searchField, (TableSorter) jTableFpdModules.getModel());
if (viewIndex >= 0){
jTableFpdModules.changeSelection(viewIndex, 0, false, false);
}
savedMs = System.currentTimeMillis();
}
});
jTableFpdModules.getModel().addTableModelListener(this); jTableFpdModules.getModel().addTableModelListener(this);
} }
return jTableFpdModules; return jTableFpdModules;

View File

@ -16,8 +16,10 @@ import java.awt.BorderLayout;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Toolkit; import java.awt.Toolkit;
import javax.swing.JComponent;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JDialog; import javax.swing.JDialog;
import javax.swing.KeyStroke;
import javax.swing.JButton; import javax.swing.JButton;
@ -25,6 +27,7 @@ import javax.swing.JButton;
import java.awt.FlowLayout; import java.awt.FlowLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.util.Vector; import java.util.Vector;
import javax.swing.JScrollPane; import javax.swing.JScrollPane;
@ -59,7 +62,7 @@ public class GenListDialog extends JDialog implements ActionListener{
if (arg0.getSource() == jButtonOk){ if (arg0.getSource() == jButtonOk){
this.dispose(); // this.dispose();
} }
if (arg0.getSource() == jButtonCancel){ if (arg0.getSource() == jButtonCancel){
@ -111,6 +114,7 @@ public class GenListDialog extends JDialog implements ActionListener{
jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20)); jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20));
jButtonCancel.setText("Cancel"); jButtonCancel.setText("Cancel");
jButtonCancel.addActionListener(this); jButtonCancel.addActionListener(this);
jButtonCancel.registerKeyboardAction(this, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false), JComponent.WHEN_FOCUSED);
} }
return jButtonCancel; return jButtonCancel;
} }
@ -185,7 +189,7 @@ public class GenListDialog extends JDialog implements ActionListener{
public GenListDialog(ActionListener i){ public GenListDialog(ActionListener i){
this(); this();
jButtonOk.addActionListener(i); jButtonOk.addActionListener(i);
jButtonOk.registerKeyboardAction(i, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false), JComponent.WHEN_FOCUSED);
} }
/** /**

View File

@ -16,13 +16,18 @@ import java.awt.BorderLayout;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Toolkit; import java.awt.Toolkit;
import javax.swing.JComponent;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JDialog; import javax.swing.JDialog;
import javax.swing.JTextArea; import javax.swing.JTextArea;
import javax.swing.JButton; import javax.swing.JButton;
import javax.swing.KeyStroke;
import java.awt.FlowLayout; import java.awt.FlowLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane; import javax.swing.JScrollPane;
@ -48,13 +53,11 @@ public class GenLongTextDialog extends JDialog implements ActionListener{
private JScrollPane jScrollPane = null; private JScrollPane jScrollPane = null;
public void actionPerformed(ActionEvent arg0) { public void actionPerformed(ActionEvent arg0) {
if (arg0.getSource() == jButtonOk){ if (arg0.getSource() == jButtonOk){
this.dispose(); // this.dispose();
} }
if (arg0.getSource() == jButtonCancel){ if (arg0.getSource() == jButtonCancel){
@ -107,6 +110,7 @@ public class GenLongTextDialog extends JDialog implements ActionListener{
jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20)); jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20));
jButtonCancel.setText("Cancel"); jButtonCancel.setText("Cancel");
jButtonCancel.addActionListener(this); jButtonCancel.addActionListener(this);
jButtonCancel.registerKeyboardAction(this, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false), JComponent.WHEN_FOCUSED);
} }
return jButtonCancel; return jButtonCancel;
} }
@ -170,7 +174,7 @@ public class GenLongTextDialog extends JDialog implements ActionListener{
public GenLongTextDialog(ActionListener i){ public GenLongTextDialog(ActionListener i){
this(); this();
jButtonOk.addActionListener(i); jButtonOk.addActionListener(i);
jButtonOk.registerKeyboardAction(i, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false), JComponent.WHEN_FOCUSED);
} }
/** /**

View File

@ -98,6 +98,7 @@ public class ListEditor extends AbstractCellEditor implements TableCellEditor, A
s += " "; s += " ";
} }
archs = s.trim(); archs = s.trim();
dialog.dispose();
} }
} }

View File

@ -86,6 +86,7 @@ public class LongTextEditor extends AbstractCellEditor implements TableCellEdito
else { //User pressed dialog's "OK" button. else { //User pressed dialog's "OK" button.
text = dialog.getText().trim(); text = dialog.getText().trim();
dialog.dispose();
} }
} }