+++ /dev/null
-/** @file\r
-\r
- The file is used to show a table with all defined PPIs\r
-\r
- Copyright (c) 2006, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
- **/\r
-package org.tianocore.frameworkwizard.common.find;\r
-\r
-import java.awt.Dimension;\r
-import java.awt.event.ActionEvent;\r
-import java.awt.event.ComponentEvent;\r
-import java.awt.event.WindowEvent;\r
-import java.util.Vector;\r
-\r
-import javax.swing.JButton;\r
-import javax.swing.JFrame;\r
-import javax.swing.JPanel;\r
-import javax.swing.JScrollPane;\r
-import javax.swing.JTable;\r
-import javax.swing.ListSelectionModel;\r
-import javax.swing.SwingConstants;\r
-import javax.swing.event.TableModelEvent;\r
-import javax.swing.event.TableModelListener;\r
-import javax.swing.table.DefaultTableCellRenderer;\r
-\r
-import org.tianocore.frameworkwizard.common.DataType;\r
-import org.tianocore.frameworkwizard.common.IDefaultTableModel;\r
-import org.tianocore.frameworkwizard.common.Log;\r
-import org.tianocore.frameworkwizard.common.Tools;\r
-import org.tianocore.frameworkwizard.common.ui.IFrame;\r
-\r
-public class FindResult extends IFrame implements TableModelListener {\r
-\r
- ///\r
- /// Define class Serial Version UID\r
- ///\r
- private static final long serialVersionUID = -2448484533878401714L;\r
-\r
- //\r
- // Define class members\r
- //\r
- private JTable jTable = null;\r
-\r
- private JPanel jContentPane = null;\r
-\r
- private JScrollPane jScrollPane = null;\r
-\r
- private JScrollPane jScrollPaneTable = null;\r
-\r
- private JButton jButtonClose = null;\r
-\r
- //\r
- // Not used by UI\r
- //\r
- private IDefaultTableModel model = null;\r
-\r
- private String method = "";\r
-\r
- private static FindResult findPpisResult = null;\r
-\r
- private static FindResult findProtocolsResult = null;\r
-\r
- private static FindResult findGuidsResult = null;\r
-\r
- private static FindResult findPcdsResult = null;\r
-\r
- private static FindResult findLibraryClassResult = null;\r
-\r
- /**\r
- * This is the default constructor\r
- */\r
- public FindResult(String method) {\r
- super();\r
- init(method);\r
- }\r
-\r
- /**\r
- * This method initializes this\r
- * \r
- * @return void\r
- */\r
- private void init(String method) {\r
- this.setSize(600, 500);\r
- this.setContentPane(getJScrollPane());\r
- this.setTitle("Find Result");\r
- this.setResizable(true);\r
- this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);\r
- this.centerWindow();\r
-\r
- //\r
- // max the window\r
- //\r
- //this.setExtendedState(JFrame.MAXIMIZED_BOTH);\r
- this.method = method;\r
- this.showTable();\r
- }\r
-\r
- /**\r
- * This method initializes jContentPane\r
- * \r
- * @return javax.swing.JPanel\r
- */\r
- private JPanel getJContentPane() {\r
- if (jContentPane == null) {\r
- jContentPane = new JPanel();\r
- jContentPane.setLayout(null);\r
- jContentPane.add(getJScrollPaneTable(), null);\r
- jContentPane.add(getJButtonClose(), null);\r
- jContentPane.setPreferredSize(new java.awt.Dimension(585, 445));\r
- }\r
- return jContentPane;\r
- }\r
-\r
- /**\r
- This method initializes jScrollPane \r
- \r
- @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPane() {\r
- if (jScrollPane == null) {\r
- jScrollPane = new JScrollPane();\r
- jScrollPane.setViewportView(getJContentPane());\r
- }\r
- return jScrollPane;\r
- }\r
-\r
- /**\r
- This method initializes jScrollPaneTable \r
- \r
- @return javax.swing.JScrollPane \r
- **/\r
- private JScrollPane getJScrollPaneTable() {\r
- if (jScrollPaneTable == null) {\r
- jScrollPaneTable = new JScrollPane();\r
- jScrollPaneTable.setBounds(new java.awt.Rectangle(0, 0, 585, 395));\r
- jScrollPaneTable.setPreferredSize(new Dimension(585, 395));\r
- jScrollPaneTable.setViewportView(getJTable());\r
- }\r
- return jScrollPaneTable;\r
- }\r
-\r
- /**\r
- This method initializes jTable \r
- \r
- @return javax.swing.JTable \r
- **/\r
- private JTable getJTable() {\r
- if (jTable == null) {\r
- model = new IDefaultTableModel();\r
- jTable = new JTable(model);\r
-\r
- model.addColumn("Name");\r
- model.addColumn("Type");\r
- model.addColumn("Produced by");\r
- model.addColumn("Consumed by");\r
- model.addColumn("Declared by");\r
-\r
- jTable.getColumn("Name").setCellRenderer(new MyTableCellRenderer());\r
- jTable.getColumn("Type").setCellRenderer(new MyTableCellRenderer());\r
- jTable.getColumn("Produced by").setCellRenderer(new MyTableCellRenderer());\r
- jTable.getColumn("Consumed by").setCellRenderer(new MyTableCellRenderer());\r
- jTable.getColumn("Declared by").setCellRenderer(new MyTableCellRenderer());\r
-\r
- jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
- jTable.getModel().addTableModelListener(this);\r
- }\r
- return jTable;\r
- }\r
-\r
- /**\r
- This method initializes jButtonAdd \r
- \r
- @return javax.swing.JButton jButtonAdd\r
- \r
- **/\r
- private JButton getJButtonClose() {\r
- if (jButtonClose == null) {\r
- jButtonClose = new JButton();\r
- jButtonClose.setText("Close");\r
- jButtonClose.addActionListener(this);\r
- jButtonClose.setBounds(new java.awt.Rectangle(255, 415, 80, 20));\r
- jButtonClose.setPreferredSize(new java.awt.Dimension(80, 20));\r
- }\r
- return jButtonClose;\r
- }\r
-\r
- public static FindResult getInstance(String method) {\r
- if (method.equals("PPI")) {\r
- if (findPpisResult == null) {\r
- findPpisResult = new FindResult(method);\r
- }\r
- findPpisResult.init(method);\r
- return findPpisResult;\r
- }\r
-\r
- if (method.equals("PROTOCOL")) {\r
- if (findProtocolsResult == null) {\r
- findProtocolsResult = new FindResult(method);\r
- }\r
- findProtocolsResult.init(method);\r
- return findProtocolsResult;\r
- }\r
-\r
- if (method.equals("GUID")) {\r
- if (findGuidsResult == null) {\r
- findGuidsResult = new FindResult(method);\r
- }\r
- findGuidsResult.init(method);\r
- return findGuidsResult;\r
- }\r
-\r
- if (method.equals("PCD")) {\r
- if (findPcdsResult == null) {\r
- findPcdsResult = new FindResult(method);\r
- }\r
- findPcdsResult.init(method);\r
- return findPcdsResult;\r
- }\r
-\r
- if (method.equals("LIBRARY_CLASS")) {\r
- if (findLibraryClassResult == null) {\r
- findLibraryClassResult = new FindResult(method);\r
- }\r
- findLibraryClassResult.init(method);\r
- return findLibraryClassResult;\r
- }\r
-\r
- return null;\r
- }\r
-\r
- /**\r
- Clear all table rows\r
- \r
- **/\r
- private void clearAll() {\r
- if (model != null) {\r
- for (int index = model.getRowCount() - 1; index >= 0; index--) {\r
- model.removeRow(index);\r
- }\r
- }\r
- }\r
-\r
- /**\r
- Read content of vector and put then into table\r
- \r
- **/\r
- private void showTable() {\r
- clearAll();\r
-\r
- if (this.method.equals("PPI")) {\r
- Vector<PpiId> vPpi = Find.getAllPpisForFind();\r
-\r
- if (vPpi.size() > 0) {\r
-\r
- for (int index = 0; index < vPpi.size(); index++) {\r
- Vector<String> v = new Vector<String>();\r
- v.addElement(vPpi.elementAt(index).getName());\r
- v.addElement(vPpi.elementAt(index).getType());\r
- String strProducedModules = vPpi.elementAt(index).getProducedModules();\r
- if (strProducedModules.indexOf("<br>") == 0) {\r
- strProducedModules = strProducedModules.substring("<br>".length());\r
- }\r
- int line1 = Tools.getSpecificStringCount(strProducedModules, "<br>");\r
- v.addElement("<html>" + strProducedModules + "</html>");\r
-\r
- String strConsumedModules = vPpi.elementAt(index).getConsumedModules();\r
- if (strConsumedModules.indexOf("<br>") == 0) {\r
- strConsumedModules = strConsumedModules.substring("<br>".length());\r
- }\r
- int line2 = Tools.getSpecificStringCount(strConsumedModules, "<br>");\r
- v.addElement("<html>" + strConsumedModules + "</html>");\r
-\r
- v.addElement(vPpi.elementAt(index).getDeclaredBy());\r
-\r
- model.addRow(v);\r
- jTable.setRowHeight(index, (Math.max(line1, line2) > 1 ? Math.max(line1, line2) : 1) * 18);\r
- }\r
- } else {\r
- Log.wrn("Find PPIs", "No PPI found!!!");\r
- }\r
- }\r
-\r
- if (this.method.equals("PROTOCOL")) {\r
- Vector<ProtocolId> vProtocol = Find.getAllProtocolsForFind();\r
-\r
- if (vProtocol.size() > 0) {\r
-\r
- for (int index = 0; index < vProtocol.size(); index++) {\r
- Vector<String> v = new Vector<String>();\r
- v.addElement(vProtocol.elementAt(index).getName());\r
- v.addElement(vProtocol.elementAt(index).getType());\r
- String strProducedModules = vProtocol.elementAt(index).getProducedModules();\r
- if (strProducedModules.indexOf("<br>") == 0) {\r
- strProducedModules = strProducedModules.substring("<br>".length());\r
- }\r
- int line1 = Tools.getSpecificStringCount(strProducedModules, "<br>");\r
- v.addElement("<html>" + strProducedModules + "</html>");\r
-\r
- String strConsumedModules = vProtocol.elementAt(index).getConsumedModules();\r
- if (strConsumedModules.indexOf("<br>") == 0) {\r
- strConsumedModules = strConsumedModules.substring("<br>".length());\r
- }\r
- int line2 = Tools.getSpecificStringCount(strConsumedModules, "<br>");\r
- v.addElement("<html>" + strConsumedModules + "</html>");\r
-\r
- v.addElement(vProtocol.elementAt(index).getDeclaredBy());\r
-\r
- model.addRow(v);\r
- jTable.setRowHeight(index, (Math.max(line1, line2) > 1 ? Math.max(line1, line2) : 1) * 18);\r
- }\r
- } else {\r
- Log.wrn("Find PROTOCOLs", "No PROTOCOL found!!!");\r
- }\r
- }\r
-\r
- if (this.method.equals("GUID")) {\r
- Vector<GuidId> vGuid = Find.getAllGuidsForFind();\r
-\r
- if (vGuid.size() > 0) {\r
-\r
- for (int index = 0; index < vGuid.size(); index++) {\r
- Vector<String> v = new Vector<String>();\r
- v.addElement(vGuid.elementAt(index).getName());\r
- v.addElement("GUID");\r
- String strProducedModules = vGuid.elementAt(index).getProducedModules();\r
- if (strProducedModules.indexOf("<br>") == 0) {\r
- strProducedModules = strProducedModules.substring("<br>".length());\r
- }\r
- int line1 = Tools.getSpecificStringCount(strProducedModules, "<br>");\r
- v.addElement("<html>" + strProducedModules + "</html>");\r
-\r
- String strConsumedModules = vGuid.elementAt(index).getConsumedModules();\r
- if (strConsumedModules.indexOf("<br>") == 0) {\r
- strConsumedModules = strConsumedModules.substring("<br>".length());\r
- }\r
- int line2 = Tools.getSpecificStringCount(strConsumedModules, "<br>");\r
- v.addElement("<html>" + strConsumedModules + "</html>");\r
-\r
- v.addElement(vGuid.elementAt(index).getDeclaredBy());\r
-\r
- model.addRow(v);\r
- jTable.setRowHeight(index, (Math.max(line1, line2) > 1 ? Math.max(line1, line2) : 1) * 18);\r
- }\r
- } else {\r
- Log.wrn("Find GUIDs", "No GUID found!!!");\r
- }\r
- }\r
-\r
- if (this.method.equals("PCD")) {\r
- Vector<PcdId> vPcd = Find.getAllPcdCodedForFind();\r
-\r
- if (vPcd.size() > 0) {\r
-\r
- for (int index = 0; index < vPcd.size(); index++) {\r
- Vector<String> v = new Vector<String>();\r
- v.addElement(vPcd.elementAt(index).getName());\r
- v.addElement(vPcd.elementAt(index).getType());\r
- String strProducedModules = vPcd.elementAt(index).getProducedModules();\r
- if (strProducedModules.indexOf("<br>") == 0) {\r
- strProducedModules = strProducedModules.substring("<br>".length());\r
- }\r
- int line1 = Tools.getSpecificStringCount(strProducedModules, "<br>");\r
- v.addElement("<html>" + strProducedModules + "</html>");\r
-\r
- String strConsumedModules = vPcd.elementAt(index).getConsumedModules();\r
- if (strConsumedModules.indexOf("<br>") == 0) {\r
- strConsumedModules = strConsumedModules.substring("<br>".length());\r
- }\r
- int line2 = Tools.getSpecificStringCount(strConsumedModules, "<br>");\r
- v.addElement("<html>" + strConsumedModules + "</html>");\r
-\r
- v.addElement(vPcd.elementAt(index).getDeclaredBy());\r
-\r
- model.addRow(v);\r
- jTable.setRowHeight(index, (Math.max(line1, line2) > 1 ? Math.max(line1, line2) : 1) * 18);\r
- }\r
- } else {\r
- Log.wrn("Find PCDs", "No PCD found!!!");\r
- }\r
- }\r
-\r
- if (this.method.equals("LIBRARY_CLASS")) {\r
- Vector<LibraryClassId> vLibraryClass = Find.getAllLibraryClassForFind();\r
-\r
- if (vLibraryClass.size() > 0) {\r
-\r
- for (int index = 0; index < vLibraryClass.size(); index++) {\r
- Vector<String> v = new Vector<String>();\r
- v.addElement(vLibraryClass.elementAt(index).getName());\r
- v.addElement(vLibraryClass.elementAt(index).getType());\r
- String strProducedModules = vLibraryClass.elementAt(index).getProducedModules();\r
- if (strProducedModules.indexOf("<br>") == 0) {\r
- strProducedModules = strProducedModules.substring("<br>".length());\r
- }\r
- int line1 = Tools.getSpecificStringCount(strProducedModules, "<br>");\r
- v.addElement("<html>" + strProducedModules + "</html>");\r
-\r
- String strConsumedModules = vLibraryClass.elementAt(index).getConsumedModules();\r
- if (strConsumedModules.indexOf("<br>") == 0) {\r
- strConsumedModules = strConsumedModules.substring("<br>".length());\r
- }\r
- int line2 = Tools.getSpecificStringCount(strConsumedModules, "<br>");\r
- v.addElement("<html>" + strConsumedModules + "</html>");\r
-\r
- v.addElement(vLibraryClass.elementAt(index).getDeclaredBy());\r
-\r
- model.addRow(v);\r
- jTable.setRowHeight(index, (Math.max(line1, line2) > 1 ? Math.max(line1, line2) : 1) * 18);\r
- }\r
- } else {\r
- Log.wrn("Find Library Classes", "No Library Class found!!!");\r
- }\r
- }\r
-\r
- this.jTable.repaint();\r
- this.jTable.updateUI();\r
- }\r
-\r
- public void tableChanged(TableModelEvent arg0) {\r
- // TODO Auto-generated method stub\r
-\r
- }\r
-\r
- public void actionPerformed(ActionEvent arg0) {\r
- if (arg0.getSource() == this.jButtonClose) {\r
-\r
- this.dispose();\r
- }\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
- * \r
- * Override componentResized to resize all components when frame's size is changed\r
- */\r
- public void componentResized(ComponentEvent arg0) {\r
- int intCurrentWidth = this.getJContentPane().getWidth();\r
- int intCurrentHeight = this.getJContentPane().getHeight();\r
- int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
- int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
-\r
- Tools.resizeComponent(this.jScrollPaneTable, intCurrentWidth, intCurrentHeight, intPreferredWidth,\r
- intPreferredHeight);\r
- Tools.centerComponent(this.jButtonClose, intCurrentWidth, intCurrentHeight, intPreferredHeight,\r
- DataType.SPACE_TO_BOTTOM_FOR_CLOSE_BUTTON);\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.WindowListener#windowClosing(java.awt.event.WindowEvent)\r
- *\r
- * Override windowClosing to popup warning message to confirm quit\r
- * \r
- */\r
- public void windowClosing(WindowEvent arg0) {\r
- this.dispose();\r
- }\r
-\r
- class MyTableCellRenderer extends DefaultTableCellRenderer {\r
- ///\r
- ///\r
- ///\r
- private static final long serialVersionUID = -2082787479305255946L;\r
-\r
- public void setValue(Object value) {\r
- this.setVerticalAlignment(SwingConstants.TOP);\r
- super.setValue(value);\r
- }\r
- }\r
-\r
-}\r