+++ /dev/null
-package org.tianocore.frameworkwizard.platform.ui;\r
-\r
-import java.awt.BorderLayout;\r
-import java.awt.Dimension;\r
-import java.awt.Toolkit;\r
-\r
-import javax.swing.DefaultCellEditor;\r
-import javax.swing.JFrame;\r
-import javax.swing.JOptionPane;\r
-import javax.swing.JPanel;\r
-import javax.swing.JDialog;\r
-import javax.swing.JTabbedPane;\r
-import javax.swing.JLabel;\r
-import javax.swing.JScrollPane;\r
-import javax.swing.JTable;\r
-import javax.swing.JTextArea;\r
-import javax.swing.JSplitPane;\r
-import javax.swing.JButton;\r
-import javax.swing.ListSelectionModel;\r
-import javax.swing.event.ListSelectionEvent;\r
-import javax.swing.event.ListSelectionListener;\r
-import javax.swing.event.TableModelEvent;\r
-import javax.swing.event.TableModelListener;\r
-import javax.swing.table.DefaultTableModel;\r
-import javax.swing.table.TableModel;\r
-\r
-import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.GlobalData;\r
-import org.tianocore.frameworkwizard.common.IDefaultTableModel;\r
-import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
-import org.tianocore.frameworkwizard.platform.ui.global.WorkspaceProfile;\r
-import org.tianocore.frameworkwizard.platform.ui.global.SurfaceAreaQuery;\r
-import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
-import org.tianocore.frameworkwizard.packaging.PackageIdentification;\r
-\r
-import java.awt.FlowLayout;\r
-import java.awt.event.ActionEvent;\r
-import java.awt.event.ActionListener;\r
-import java.util.ArrayList;\r
-import java.util.HashMap;\r
-import java.util.Iterator;\r
-import java.util.ListIterator;\r
-import java.util.Vector;\r
-\r
-import javax.swing.JTextField;\r
-import java.awt.GridLayout;\r
-import javax.swing.JComboBox;\r
-\r
-public class FpdModuleSA extends JDialog implements ActionListener {\r
-\r
- /**\r
- * \r
- */\r
- private static final long serialVersionUID = 1L;\r
- static JFrame frame;\r
- private JPanel jContentPane = null;\r
- private JTabbedPane jTabbedPane = null;\r
- private JPanel jPanelPcd = null;\r
- private JPanel jPanelLibrary = null;\r
- private JLabel jLabelPcdData = null;\r
- private JScrollPane jScrollPaneTablePcd = null;\r
- private JTable jTablePcd = null;\r
- private JPanel jPanelPcdSouth = null;\r
- private JScrollPane jScrollPanePcdHelp = null;\r
- private JTextArea jTextAreaPcdHelp = null;\r
- private JPanel jPanelContentPaneSouth = null;\r
- private JSplitPane jSplitPane = null;\r
- private JPanel jPanelLibraryLeft = null;\r
- private JPanel jPanelLibraryRight = null;\r
- private JLabel jLabelLibClass = null;\r
- private JLabel jLabelQualifiedInstance = null;\r
- private JScrollPane jScrollPaneSelectedInstances = null;\r
- private JTable jTableSelectedInstances = null;\r
- private JScrollPane jScrollPaneLibClass = null;\r
- private JTable jTableLibClass = null;\r
- private JScrollPane jScrollPaneQualifiedInstance = null;\r
- private JTable jTableLibInstances = null;\r
- private JPanel jPanelLibrarySouth = null;\r
- private JPanel jPanelLibraryCenter = null;\r
- private JScrollPane jScrollPaneInstanceHelp = null;\r
- private JTextArea jTextAreaInstanceHelp = null;\r
- private JLabel jLabelSelectedInstances = null;\r
- private JLabel jLabelInstanceHelp = null;\r
- private JButton jButtonAdd = null;\r
- private JButton jButtonDeleteInstance = null;\r
- private JLabel jLabelPcdHelp = null;\r
- private JButton jButtonOk = null;\r
- private JButton jButtonCancel = null;\r
- private IDefaultTableModel model = null;\r
- private IDefaultTableModel selectedInstancesTableModel = null;\r
- private IDefaultTableModel libClassTableModel = null;\r
- private IDefaultTableModel libInstanceTableModel = null;\r
- private DefaultTableModel optionsTableModel = null;\r
- private FpdFileContents ffc = null;\r
- private String moduleKey = null;\r
- private int moduleSaNum = -1;\r
- private HashMap<String, ArrayList<String>> classInstanceMap = null;\r
- private ArrayList<String> classProduced = null;\r
- private HashMap<String, ArrayList<String>> classConsumed = null;\r
- private JPanel jPanelModuleSaOpts = null;\r
- private JLabel jLabelFvBinding = null;\r
- private JTextField jTextFieldFvBinding = null;\r
- private JLabel jLabelFfsFileGuid = null;\r
- private JTextField jTextFieldFileGuid = null;\r
- private JLabel jLabelFfsFormatKey = null;\r
- private JTextField jTextFieldFfsKey = null;\r
- private JScrollPane jScrollPaneModuleSaOptions = null;\r
- private JTable jTableModuleSaOptions = null;\r
- private JButton jButtonNew = null;\r
- private JButton jButtonDeleteOption = null;\r
- private JPanel jPanelPcdFields = null;\r
- private JPanel jPanelPcdFieldsSecondRow = null;\r
- private JPanel jPanelPcdFieldsThirdRow = null;\r
- private JPanel jPanelPcdFieldsFirstRow = null;\r
- private JLabel jLabelItemType = null;\r
- private JComboBox jComboBoxItemType = null;\r
- private JLabel jLabelMaxDatumSize = null;\r
- private JTextField jTextFieldMaxDatumSize = null;\r
- private JLabel jLabelPcdDefaultValue = null;\r
- private JTextField jTextFieldPcdDefault = null;\r
- private JButton jButtonUpdatePcd = null;\r
- private JComboBox jComboBoxFeatureFlagValue = null;\r
- private OpeningPlatformType docConsole = null;\r
- private JPanel jPanelCustomToolChain = null;\r
- private JPanel jPanelToolchainS = null;\r
- private JPanel jPanelLibraryCenterN = null;\r
- private JPanel jPanelLibraryCenterC = null; // @jve:decl-index=0:visual-constraint="20,224"\r
- /**\r
- * This is the default constructor\r
- */\r
- public FpdModuleSA() {\r
- super();\r
- initialize();\r
- }\r
- public FpdModuleSA(FpdFileContents ffc) {\r
- this();\r
- this.ffc = ffc;\r
- }\r
- \r
- public void setKey(String k, int i, OpeningPlatformType dc){\r
- this.moduleKey = k;\r
- moduleSaNum = i;\r
- this.docConsole = dc;\r
- classProduced = null;\r
- classConsumed = null;\r
- jTabbedPane.setSelectedIndex(0);\r
- initPcdBuildDefinition(i);\r
- }\r
-\r
- /**\r
- init will be called each time FpdModuleSA object is to be shown.\r
- @param key Module information.\r
- **/\r
- public void initPcdBuildDefinition(int i) {\r
- //\r
- // display pcd for key.\r
- //\r
- model.setRowCount(0);\r
- jTextAreaPcdHelp.setText("");\r
- jComboBoxItemType.setSelectedIndex(-1);\r
- jTextFieldMaxDatumSize.setText("");\r
- jTextFieldPcdDefault.setText("");\r
- int pcdCount = ffc.getPcdDataCount(i);\r
- if (pcdCount != 0) {\r
- String[][] saa = new String[pcdCount][7];\r
- ffc.getPcdData(i, saa);\r
- for (int j = 0; j < saa.length; ++j) {\r
- model.addRow(saa[j]);\r
- }\r
- }\r
- }\r
- \r
- public void initLibraries(String key) {\r
- //\r
- // display library classes that need to be resolved. also potential instances for them.\r
- //\r
- resolveLibraryInstances(moduleKey);\r
- //\r
- // display lib instances already selected for key\r
- //\r
- selectedInstancesTableModel.setRowCount(0);\r
- int instanceCount = ffc.getLibraryInstancesCount(key);\r
- if (instanceCount != 0) {\r
- String[][] saa = new String[instanceCount][5];\r
- ffc.getLibraryInstances(key, saa);\r
- for (int i = 0; i < saa.length; ++i) {\r
- ModuleIdentification mi = WorkspaceProfile.getModuleId(saa[i][1] + " " + saa[i][2] + " " + saa[i][3] + " " + saa[i][4]);\r
- if (mi != null) {\r
- saa[i][0] = mi.getName();\r
- saa[i][2] = mi.getVersion();\r
- saa[i][4] = mi.getPackageId().getVersion();\r
- //\r
- // re-evaluate lib instance usage when adding a already-selected lib instance.\r
- //\r
- resolveLibraryInstances(saa[i][1] + " " + saa[i][2] + " " + saa[i][3] + " " + saa[i][4]);\r
- selectedInstancesTableModel.addRow(saa[i]);\r
- }\r
- }\r
- }\r
- showClassToResolved();\r
- }\r
- \r
- public void initFvInfo (String key) {\r
- //\r
- // display module SA options\r
- //\r
- jTextFieldFvBinding.setText("");\r
- String fvBinding = ffc.getFvBinding(key);\r
- if (fvBinding != null) {\r
- jTextFieldFvBinding.setText(fvBinding);\r
- }\r
- jTextFieldFileGuid.setText("");\r
- String fileGuid = ffc.getFfsFileNameGuid(key);\r
- if (fileGuid != null) {\r
- jTextFieldFileGuid.setText(fileGuid);\r
- }\r
- jTextFieldFfsKey.setText("");\r
- String ffsKey = ffc.getFfsFormatKey(key);\r
- if (ffsKey != null) {\r
- jTextFieldFfsKey.setText(ffsKey);\r
- }\r
- }\r
- \r
- public void initToolChainOptions(String key) {\r
- \r
- optionsTableModel.setRowCount(0);\r
- String[][] saa = new String[ffc.getModuleSAOptionsCount(key)][6];\r
- ffc.getModuleSAOptions(key, saa);\r
- for (int i = 0; i < saa.length; ++i) {\r
- optionsTableModel.addRow(saa[i]);\r
- }\r
- }\r
- \r
- private void resolveLibraryInstances(String key) {\r
- ModuleIdentification mi = WorkspaceProfile.getModuleId(key);\r
- PackageIdentification[] depPkgList = null;\r
- try{\r
- //\r
- // Get dependency pkg list into which we will search lib instances.\r
- //\r
- depPkgList = SurfaceAreaQuery.getDependencePkg(null, mi);\r
- //\r
- // Get the lib class consumed, produced by this module itself.\r
- //\r
- Vector<String> vClassConsumed = SurfaceAreaQuery.getLibraryClasses("ALWAYS_CONSUMED", mi);\r
- \r
- if (this.classConsumed == null) {\r
- this.classConsumed = new HashMap<String, ArrayList<String>>();\r
- }\r
- \r
- for(int i = 0; i < vClassConsumed.size(); ++i){\r
- ArrayList<String> consumedBy = this.classConsumed.get(vClassConsumed.get(i));\r
- if (consumedBy == null) {\r
- consumedBy = new ArrayList<String>();\r
- }\r
- consumedBy.add(key);\r
- this.classConsumed.put(vClassConsumed.get(i), consumedBy);\r
- }\r
- \r
- Vector<String> vClassProduced = SurfaceAreaQuery.getLibraryClasses("ALWAYS_PRODUCED", mi);\r
- if (this.classProduced == null) {\r
- this.classProduced = new ArrayList<String>();\r
- }\r
- for(int i = 0; i < vClassProduced.size(); ++i){\r
- if (!this.classProduced.contains(vClassProduced.get(i))){\r
- this.classProduced.add(vClassProduced.get(i));\r
- }\r
- }\r
- \r
- //\r
- // find potential instances in all dependency pkgs for classes still in classConsumed.\r
- //\r
- if (classInstanceMap == null){\r
- classInstanceMap = new HashMap<String, ArrayList<String>>();\r
- }\r
- Iterator<String> lic = this.classConsumed.keySet().iterator();\r
- while(lic.hasNext()){\r
- String cls = lic.next();\r
- if (this.classProduced.contains(cls) || classInstanceMap.containsKey(cls)) {\r
- continue;\r
- }\r
- ArrayList<String> instances = getInstancesForClass(cls, depPkgList);\r
- if (instances.size() == 0){\r
- JOptionPane.showMessageDialog(frame, "No Applicable Instance for Library Class " + \r
- cls + ", Platform Build will Fail.");\r
- }\r
- classInstanceMap.put(cls, instances);\r
- \r
- }\r
- \r
-// showClassToResolved();\r
- }\r
- catch(Exception e) {\r
- e.printStackTrace();\r
- }\r
- }\r
- \r
- private ArrayList<String> getInstancesForClass(String cls, PackageIdentification[] depPkgList) throws Exception{\r
- ArrayList<String> al = new ArrayList<String>();\r
- \r
-// for (int i = 0; i < depPkgList.length; ++i) {\r
- Iterator ismi = GlobalData.vModuleList.iterator();\r
- while(ismi.hasNext()) {\r
- ModuleIdentification mi = (ModuleIdentification)ismi.next();\r
-// if (!mi.getPackageId().getGuid().equalsIgnoreCase(depPkgList[i].getGuid())) {\r
-// continue;\r
-// }\r
- String[] clsProduced = getClassProduced(mi);\r
- \r
- boolean isPotential = false;\r
- for (int j = 0; j < clsProduced.length; ++j) {\r
- if (clsProduced[j] == null) {\r
- continue;\r
- }\r
- if (clsProduced[j].equals(cls)){\r
- isPotential = true;\r
- }\r
- if (classProduced.contains(clsProduced[j])) {\r
- isPotential = false;\r
- break;\r
- }\r
- }\r
- if (isPotential) {\r
- al.add(mi.getGuid() + " " + mi.getVersion() + " " + \r
- mi.getPackageId().getGuid() + " " + mi.getPackageId().getVersion());\r
- }\r
- }\r
-// }\r
- \r
- return al;\r
- }\r
- \r
- private void removeInstance(String key) {\r
- ModuleIdentification mi = WorkspaceProfile.getModuleId(key); \r
- //\r
- // remove pcd information of instance from current ModuleSA\r
- //\r
- ffc.removePcdData(moduleKey, mi);\r
- //\r
- // remove class produced by this instance and add back these produced class to be bound.\r
- //\r
- String[] clsProduced = getClassProduced(mi);\r
- for (int i = 0; i < clsProduced.length; ++i) {\r
- \r
- classProduced.remove(clsProduced[i]);\r
- }\r
- //\r
- // remove class consumed by this instance. we do not need to bound it now.\r
- //\r
- String[] clsConsumed = getClassConsumed(mi);\r
- for (int i = 0; i < clsConsumed.length; ++i) {\r
- ArrayList<String> al = classConsumed.get(clsConsumed[i]);\r
- \r
- if (al == null ) {\r
- classConsumed.remove(clsConsumed[i]);\r
- continue;\r
- }\r
- al.remove(key);\r
- if (al.size() == 0) {\r
- classConsumed.remove(clsConsumed[i]);\r
- }\r
- \r
- }\r
-\r
- showClassToResolved();\r
- \r
- }\r
- \r
- \r
- private String[] getClassProduced(ModuleIdentification mi){\r
- \r
- try{\r
- Vector<String> clsProduced = SurfaceAreaQuery.getLibraryClasses("ALWAYS_PRODUCED", mi);\r
- String[] sClassProduced = new String[clsProduced.size()];\r
- for (int i = 0; i < clsProduced.size(); ++i) {\r
- sClassProduced[i] = clsProduced.get(i);\r
- }\r
- return sClassProduced;\r
- \r
- }catch (Exception e) {\r
- e.printStackTrace();\r
- }\r
- return new String[0];\r
- \r
- }\r
- \r
- private String[] getClassConsumed(ModuleIdentification mi){\r
- \r
- try{\r
- Vector<String> clsConsumed = SurfaceAreaQuery.getLibraryClasses("ALWAYS_CONSUMED", mi);\r
- String[] sClassConsumed = new String[clsConsumed.size()];\r
- for (int i = 0; i < clsConsumed.size(); ++i) {\r
- sClassConsumed[i] = clsConsumed.get(i);\r
- }\r
- return sClassConsumed;\r
- }catch (Exception e) {\r
- e.printStackTrace();\r
- }\r
- return new String[0];\r
- }\r
- \r
- private void showClassToResolved(){\r
- libClassTableModel.setRowCount(0);\r
- if (classConsumed.size() == 0) {\r
- return;\r
- }\r
- Iterator<String> li = classConsumed.keySet().iterator();\r
- while(li.hasNext()){\r
- \r
- String[] s = {li.next()};\r
-// if (classConsumed.get(s[0]) == null) {\r
-// continue;\r
-// }\r
-// if (classConsumed.get(s[0]).size() == 0) {\r
-// continue;\r
-// }\r
- if (!classProduced.contains(s[0])){\r
- libClassTableModel.addRow(s);\r
- }\r
- }\r
- libInstanceTableModel.setRowCount(0);\r
- }\r
- \r
- private void addLibInstance (ModuleIdentification libMi) throws Exception{\r
- \r
- //\r
- // Add pcd information of selected instance to current moduleSA\r
- //\r
- ffc.addFrameworkModulesPcdBuildDefs(libMi, null, ffc.getModuleSA(moduleKey));\r
- \r
- ffc.genLibraryInstance(libMi, moduleKey);\r
- }\r
- /**\r
- * This method initializes this\r
- * \r
- * @return void\r
- */\r
- private void initialize() {\r
- this.setSize(877, 555);\r
- this.setResizable(false);\r
- this.centerWindow();\r
- this.setModal(true);\r
- this.setTitle("Module Settings");\r
- this.setContentPane(getJContentPane());\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(new BorderLayout());\r
- jContentPane.add(getJTabbedPane(), java.awt.BorderLayout.CENTER);\r
- jContentPane.add(getJPanelContentPaneSouth(), java.awt.BorderLayout.SOUTH);\r
- }\r
- return jContentPane;\r
- }\r
-\r
- /**\r
- * This method initializes jTabbedPane \r
- * \r
- * @return javax.swing.JTabbedPane \r
- */\r
- private JTabbedPane getJTabbedPane() {\r
- if (jTabbedPane == null) {\r
- jTabbedPane = new JTabbedPane();\r
- jTabbedPane.addTab("PCD Build Definition", null, getJPanelPcd(), null);\r
- jTabbedPane.addTab("Libraries", null, getJPanelLibrary(), null);\r
- jTabbedPane.addTab("FV Info", null, getJPanelModuleSaOpts(), null);\r
- jTabbedPane.addTab("Custom Toolchain", null, getJPanelCustomToolChain(), null);\r
- \r
- }\r
- return jTabbedPane;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelPcd\r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelPcd() {\r
- if (jPanelPcd == null) {\r
- jLabelPcdData = new JLabel();\r
- jLabelPcdData.setText(" PCD Data");\r
- jPanelPcd = new JPanel();\r
- jPanelPcd.setLayout(new BorderLayout());\r
- jPanelPcd.add(jLabelPcdData, java.awt.BorderLayout.NORTH);\r
- jPanelPcd.add(getJScrollPaneTablePcd(), java.awt.BorderLayout.CENTER);\r
- jPanelPcd.add(getJPanelPcdSouth(), java.awt.BorderLayout.SOUTH);\r
- jPanelPcd.addComponentListener(new java.awt.event.ComponentAdapter() {\r
- public void componentShown(java.awt.event.ComponentEvent e) {\r
- initPcdBuildDefinition(moduleSaNum);\r
- }\r
- });\r
- \r
- }\r
- return jPanelPcd;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelLibrary\r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelLibrary() {\r
- if (jPanelLibrary == null) {\r
- jPanelLibrary = new JPanel();\r
- jPanelLibrary.setLayout(new BorderLayout());\r
- jPanelLibrary.add(getJSplitPane(), java.awt.BorderLayout.NORTH);\r
- jPanelLibrary.add(getJPanelLibrarySouth(), java.awt.BorderLayout.SOUTH);\r
- jPanelLibrary.add(getJPanelLibraryCenter(), java.awt.BorderLayout.CENTER);\r
- jPanelLibrary.addComponentListener(new java.awt.event.ComponentAdapter() {\r
- public void componentShown(java.awt.event.ComponentEvent e) {\r
- initLibraries(moduleKey);\r
- }\r
- });\r
- }\r
- return jPanelLibrary;\r
- }\r
-\r
- /**\r
- * This method initializes jScrollPaneTablePcd\r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneTablePcd() {\r
- if (jScrollPaneTablePcd == null) {\r
- jScrollPaneTablePcd = new JScrollPane();\r
- jScrollPaneTablePcd.setViewportView(getJTablePcd());\r
- }\r
- return jScrollPaneTablePcd;\r
- }\r
-\r
- /**\r
- * This method initializes jTable \r
- * \r
- * @return javax.swing.JTable \r
- */\r
- private JTable getJTablePcd() {\r
- if (jTablePcd == null) {\r
- model = new IDefaultTableModel();\r
- jTablePcd = new JTable(model);\r
- jTablePcd.setRowHeight(20);\r
- jTablePcd.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);\r
- model.addColumn("CName");\r
- model.addColumn("TokenSpaceGUID");\r
- model.addColumn("ItemType");\r
- model.addColumn("Token");\r
- model.addColumn("MaxDatumSize");\r
- model.addColumn("DataType");\r
- model.addColumn("DefaultValue");\r
- \r
- jTablePcd.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
- jTablePcd.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
- public void valueChanged(ListSelectionEvent e) {\r
- \r
- if (e.getValueIsAdjusting()){\r
- return;\r
- }\r
- ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
- if (lsm.isSelectionEmpty()) {\r
- return;\r
- }\r
- else{\r
- int selectedRow = lsm.getMinSelectionIndex();\r
- String cName = model.getValueAt(selectedRow, 0)+"";\r
- String tsGuid = model.getValueAt(selectedRow, 1)+"";\r
- String itemType = model.getValueAt(selectedRow, 2)+"";\r
- //\r
- // array for pcd related information: helpText, itemType, moduleType.\r
- //\r
- String[] pcdInfo = {"", "", ""};\r
- getPcdInfo(cName, tsGuid, pcdInfo);\r
- jTextAreaPcdHelp.setText(pcdInfo[0]);\r
- initComboBox(pcdInfo[1], pcdInfo[2]);\r
- jComboBoxItemType.setSelectedItem(itemType);\r
- jTextFieldMaxDatumSize.setEnabled(true);\r
- jTextFieldMaxDatumSize.setVisible(true);\r
- jTextFieldMaxDatumSize.setText(jTablePcd.getValueAt(selectedRow, 4)+"");\r
- jTextFieldPcdDefault.setEnabled(true);\r
- jTextFieldPcdDefault.setText(jTablePcd.getValueAt(selectedRow, 6)+"");\r
- if (model.getValueAt(selectedRow, 5).equals("VOID*")) {\r
- if (pcdInfo[1].equals("FEATURE_FLAG")) {\r
- jTextFieldMaxDatumSize.setVisible(false);\r
- }\r
- else if (pcdInfo[1].equals("FIXED_AT_BUILD")) {\r
- try{\r
- jTextFieldMaxDatumSize.setEnabled(false);\r
- jTextFieldMaxDatumSize.setText(ffc.setMaxSizeForPointer(jTablePcd.getValueAt(selectedRow, 6)+"")+"");\r
- }\r
- catch(Exception except){\r
- JOptionPane.showMessageDialog(frame, "Unacceptable PCD Value: " + except.getMessage());\r
- }\r
- }\r
- else{\r
- jTextFieldMaxDatumSize.setText(jTablePcd.getValueAt(selectedRow, 4)+"");\r
- }\r
- }\r
- else {\r
- jTextFieldMaxDatumSize.setEnabled(false);\r
- }\r
- \r
- if (!model.getValueAt(selectedRow, 2).equals("DYNAMIC") && !model.getValueAt(selectedRow, 2).equals("DYNAMIC_EX")) {\r
- jTextFieldPcdDefault.setText(model.getValueAt(selectedRow, 6)+"");\r
- if (model.getValueAt(selectedRow, 2).equals("FEATURE_FLAG")){\r
- jTextFieldPcdDefault.setVisible(false);\r
- jComboBoxFeatureFlagValue.setVisible(true);\r
- jComboBoxFeatureFlagValue.setSelectedItem(model.getValueAt(selectedRow, 6)+"");\r
- }\r
- else{\r
- jTextFieldPcdDefault.setVisible(true);\r
- jTextFieldPcdDefault.setEnabled(true);\r
- jComboBoxFeatureFlagValue.setVisible(false);\r
- }\r
- }\r
- else{\r
- jTextFieldPcdDefault.setEnabled(false);\r
- }\r
- }\r
- \r
- \r
- }\r
- });\r
- \r
- }\r
- return jTablePcd;\r
- }\r
- \r
- private void initComboBox(String originalType, String mType) {\r
- jComboBoxItemType.removeAllItems();\r
- jComboBoxItemType.addItem(originalType);\r
- if (originalType.equals("PATCHABLE_IN_MODULE") && mType.equalsIgnoreCase("false")) {\r
- jComboBoxItemType.addItem("FIXED_AT_BUILD");\r
- }\r
- if (originalType.equals("DYNAMIC")) {\r
- jComboBoxItemType.addItem("FIXED_AT_BUILD");\r
- jComboBoxItemType.addItem("PATCHABLE_IN_MODULE");\r
- }\r
- }\r
- \r
- private void getPcdInfo(String cName, String tsGuid, String[] sa) {\r
- String[][] saa = new String[ffc.getLibraryInstancesCount(moduleKey)][5];\r
- ffc.getLibraryInstances(moduleKey, saa);\r
- \r
- try{\r
- if (ffc.getPcdBuildDataInfo(WorkspaceProfile.getModuleId(moduleKey), cName, tsGuid, sa)) {\r
- return;\r
- }\r
- for (int j = 0; j < saa.length; ++j) {\r
- if (ffc.getPcdBuildDataInfo(WorkspaceProfile.getModuleId(saa[j][1] + " " + saa[j][2] + " " + saa[j][3] + " " + saa[j][4]),\r
- cName, tsGuid, sa)) {\r
- return;\r
- }\r
- }\r
- }\r
- catch(Exception e) {\r
- JOptionPane.showMessageDialog(this, "Get PCD details fail: " + e.getMessage());\r
- }\r
- }\r
-\r
- /**\r
- * This method initializes jPanelPcdSouth\r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelPcdSouth() {\r
- if (jPanelPcdSouth == null) {\r
- jLabelPcdHelp = new JLabel();\r
- jLabelPcdHelp.setText("PCD Description");\r
- jPanelPcdSouth = new JPanel();\r
- jPanelPcdSouth.setPreferredSize(new java.awt.Dimension(607,200));\r
- jPanelPcdSouth.add(jLabelPcdHelp, null);\r
- jPanelPcdSouth.add(getJScrollPanePcdHelp(), null);\r
- jPanelPcdSouth.add(getJPanelPcdFields(), null);\r
- }\r
- return jPanelPcdSouth;\r
- }\r
-\r
- /**\r
- * This method initializes jScrollPanePcdHelp\r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPanePcdHelp() {\r
- if (jScrollPanePcdHelp == null) {\r
- jScrollPanePcdHelp = new JScrollPane();\r
- jScrollPanePcdHelp.setPreferredSize(new java.awt.Dimension(500,100));\r
- jScrollPanePcdHelp.setViewportView(getJTextAreaPcdHelp());\r
- }\r
- return jScrollPanePcdHelp;\r
- }\r
-\r
- /**\r
- * This method initializes jTextAreaPcdHelp\r
- * \r
- * @return javax.swing.JTextArea \r
- */\r
- private JTextArea getJTextAreaPcdHelp() {\r
- if (jTextAreaPcdHelp == null) {\r
- jTextAreaPcdHelp = new JTextArea();\r
- jTextAreaPcdHelp.setEditable(false);\r
- }\r
- return jTextAreaPcdHelp;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelContentPaneSouth\r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelContentPaneSouth() {\r
- if (jPanelContentPaneSouth == null) {\r
- FlowLayout flowLayout = new FlowLayout();\r
- flowLayout.setAlignment(java.awt.FlowLayout.RIGHT);\r
- jPanelContentPaneSouth = new JPanel();\r
- jPanelContentPaneSouth.setLayout(flowLayout);\r
- jPanelContentPaneSouth.add(getJButtonOk(), null);\r
- jPanelContentPaneSouth.add(getJButtonCancel(), null);\r
- }\r
- return jPanelContentPaneSouth;\r
- }\r
-\r
- /**\r
- * This method initializes jSplitPane \r
- * \r
- * @return javax.swing.JSplitPane \r
- */\r
- private JSplitPane getJSplitPane() {\r
- if (jSplitPane == null) {\r
- jSplitPane = new JSplitPane();\r
- jSplitPane.setDividerLocation(200);\r
- jSplitPane.setLeftComponent(getJPanelLibraryLeft());\r
- jSplitPane.setRightComponent(getJPanelLibraryRight());\r
- jSplitPane.setPreferredSize(new java.awt.Dimension(202,200));\r
- }\r
- return jSplitPane;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelLibraryLeft\r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelLibraryLeft() {\r
- if (jPanelLibraryLeft == null) {\r
- jLabelLibClass = new JLabel();\r
- jLabelLibClass.setText("Library Classes Uninstantiated");\r
- jPanelLibraryLeft = new JPanel();\r
- jPanelLibraryLeft.add(jLabelLibClass, null);\r
- jPanelLibraryLeft.add(getJScrollPaneLibClass(), null);\r
- }\r
- return jPanelLibraryLeft;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelLibraryRight\r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelLibraryRight() {\r
- if (jPanelLibraryRight == null) {\r
- jLabelQualifiedInstance = new JLabel();\r
- jLabelQualifiedInstance.setText("Instances Available");\r
- jPanelLibraryRight = new JPanel();\r
- jPanelLibraryRight.add(jLabelQualifiedInstance, null);\r
- jPanelLibraryRight.add(getJScrollPaneQualifiedInstance(), null);\r
- }\r
- return jPanelLibraryRight;\r
- }\r
-\r
- /**\r
- * This method initializes jScrollPaneSelectedInstances\r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneSelectedInstances() {\r
- if (jScrollPaneSelectedInstances == null) {\r
- jScrollPaneSelectedInstances = new JScrollPane();\r
- jScrollPaneSelectedInstances.setPreferredSize(new java.awt.Dimension(600,150));\r
- jScrollPaneSelectedInstances.setViewportView(getJTableSelectedInstances());\r
- }\r
- return jScrollPaneSelectedInstances;\r
- }\r
-\r
- /**\r
- * This method initializes jTableSelectedInstances\r
- * \r
- * @return javax.swing.JTable \r
- */\r
- private JTable getJTableSelectedInstances() {\r
- if (jTableSelectedInstances == null) {\r
- selectedInstancesTableModel = new IDefaultTableModel();\r
- selectedInstancesTableModel.addColumn("Name");\r
- selectedInstancesTableModel.addColumn("ModuleGUID");\r
- selectedInstancesTableModel.addColumn("ModuleVersion");\r
- selectedInstancesTableModel.addColumn("PackageGUID");\r
- selectedInstancesTableModel.addColumn("PackageVersion");\r
- jTableSelectedInstances = new JTable(selectedInstancesTableModel);\r
- jTableSelectedInstances.setRowHeight(20);\r
- jTableSelectedInstances.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);\r
- jTableSelectedInstances.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
- \r
- }\r
- return jTableSelectedInstances;\r
- }\r
-\r
- /**\r
- * This method initializes jScrollPaneLibClass\r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneLibClass() {\r
- if (jScrollPaneLibClass == null) {\r
- jScrollPaneLibClass = new JScrollPane();\r
- jScrollPaneLibClass.setPreferredSize(new java.awt.Dimension(200,170));\r
- jScrollPaneLibClass.setViewportView(getJTableLibClass());\r
- }\r
- return jScrollPaneLibClass;\r
- }\r
-\r
- /**\r
- * This method initializes jTableLibClass\r
- * \r
- * @return javax.swing.JTable \r
- */\r
- private JTable getJTableLibClass() {\r
- if (jTableLibClass == null) {\r
- libClassTableModel = new IDefaultTableModel();\r
- libClassTableModel.addColumn("LibraryClass");\r
- jTableLibClass = new JTable(libClassTableModel);\r
- jTableLibClass.setRowHeight(20);\r
- jTableLibClass.setShowGrid(false);\r
- jTableLibClass.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
- jTableLibClass.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
- public void valueChanged(ListSelectionEvent e) {\r
- if (e.getValueIsAdjusting()){\r
- return;\r
- }\r
- ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
- if (lsm.isSelectionEmpty()) {\r
- return;\r
- }\r
- else{\r
- int selectedRow2 = lsm.getMinSelectionIndex();\r
- if (selectedRow2 < 0) {\r
- return;\r
- }\r
- //\r
- // display potential lib instances according to class selection\r
- //\r
- libInstanceTableModel.setRowCount(0);\r
- String cls = libClassTableModel.getValueAt(selectedRow2, 0).toString();\r
- ArrayList<String> al = classInstanceMap.get(cls);\r
- ListIterator<String> li = al.listIterator();\r
- while(li.hasNext()) {\r
- String instance = li.next();\r
- String[] s = {"", "", "", "", ""};\r
- if (WorkspaceProfile.getModuleId(instance) != null) {\r
- s[0] = WorkspaceProfile.getModuleId(instance).getName();\r
- }\r
- \r
- String[] instancePart = instance.split(" ");\r
- for (int i = 0; i < instancePart.length; ++i){\r
- s[i+1] = instancePart[i];\r
- }\r
- libInstanceTableModel.addRow(s);\r
- }\r
- \r
- }\r
- }\r
- });\r
- }\r
- return jTableLibClass;\r
- }\r
-\r
- /**\r
- * This method initializes jScrollPaneQualifiedInstance\r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneQualifiedInstance() {\r
- if (jScrollPaneQualifiedInstance == null) {\r
- jScrollPaneQualifiedInstance = new JScrollPane();\r
- jScrollPaneQualifiedInstance.setPreferredSize(new java.awt.Dimension(600,170));\r
- jScrollPaneQualifiedInstance.setViewportView(getJTableLibInstances());\r
- }\r
- return jScrollPaneQualifiedInstance;\r
- }\r
-\r
- /**\r
- * This method initializes jTableLibInstances\r
- * \r
- * @return javax.swing.JTable \r
- */\r
- private JTable getJTableLibInstances() {\r
- if (jTableLibInstances == null) {\r
- libInstanceTableModel = new IDefaultTableModel();\r
- libInstanceTableModel.addColumn("Name");\r
- libInstanceTableModel.addColumn("ModuleGUID");\r
- libInstanceTableModel.addColumn("ModuleVersion");\r
- libInstanceTableModel.addColumn("PackageGUID");\r
- libInstanceTableModel.addColumn("PackageVersion");\r
- jTableLibInstances = new JTable(libInstanceTableModel);\r
- jTableLibInstances.setRowHeight(20);\r
- jTableLibInstances.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);\r
- jTableLibInstances.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
- \r
- }\r
- return jTableLibInstances;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelLibrarySouth\r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelLibrarySouth() {\r
- if (jPanelLibrarySouth == null) {\r
- jPanelLibrarySouth = new JPanel();\r
- }\r
- return jPanelLibrarySouth;\r
- }\r
-\r
- /**\r
- * This method initializes jPanelLibraryCenter\r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelLibraryCenter() {\r
- if (jPanelLibraryCenter == null) {\r
- jLabelInstanceHelp = new JLabel();\r
- jLabelInstanceHelp.setText("Instance Description");\r
- jLabelSelectedInstances = new JLabel();\r
- jLabelSelectedInstances.setText("Selected Instances");\r
- jPanelLibraryCenter = new JPanel();\r
- jPanelLibraryCenter.setLayout(new BorderLayout());\r
-\r
- jPanelLibraryCenter.add(getJPanelLibraryCenterC(), java.awt.BorderLayout.CENTER);\r
- jPanelLibraryCenter.add(getJPanelLibraryCenterN(), java.awt.BorderLayout.NORTH);\r
-\r
- }\r
- return jPanelLibraryCenter;\r
- }\r
-\r
- /**\r
- * This method initializes jScrollPaneInstanceHelp\r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneInstanceHelp() {\r
- if (jScrollPaneInstanceHelp == null) {\r
- jScrollPaneInstanceHelp = new JScrollPane();\r
- jScrollPaneInstanceHelp.setPreferredSize(new java.awt.Dimension(400,50));\r
- jScrollPaneInstanceHelp.setViewportView(getJTextAreaInstanceHelp());\r
- }\r
- return jScrollPaneInstanceHelp;\r
- }\r
-\r
- /**\r
- * This method initializes jTextAreaInstanceHelp\r
- * \r
- * @return javax.swing.JTextArea \r
- */\r
- private JTextArea getJTextAreaInstanceHelp() {\r
- if (jTextAreaInstanceHelp == null) {\r
- jTextAreaInstanceHelp = new JTextArea();\r
- jTextAreaInstanceHelp.setEditable(false);\r
- }\r
- return jTextAreaInstanceHelp;\r
- }\r
-\r
- /**\r
- * This method initializes jButtonAdd\r
- * \r
- * @return javax.swing.JButton \r
- */\r
- private JButton getJButtonAdd() {\r
- if (jButtonAdd == null) {\r
- jButtonAdd = new JButton();\r
- jButtonAdd.setPreferredSize(new java.awt.Dimension(80,20));\r
- jButtonAdd.setText("Add");\r
- jButtonAdd.addActionListener(new java.awt.event.ActionListener() {\r
- public void actionPerformed(java.awt.event.ActionEvent e) {\r
- int row = jTableLibInstances.getSelectedRow();\r
- if (row < 0) {\r
- return;\r
- }\r
- \r
- String instanceValue = libInstanceTableModel.getValueAt(row, 1) + " " +\r
- libInstanceTableModel.getValueAt(row, 2) + " " +\r
- libInstanceTableModel.getValueAt(row, 3) + " " +\r
- libInstanceTableModel.getValueAt(row, 4);\r
- ModuleIdentification libMi = WorkspaceProfile.getModuleId(instanceValue);\r
- try {\r
- addLibInstance (libMi);\r
- }\r
- catch (Exception exception) {\r
- JOptionPane.showMessageDialog(frame, "Adding Instance" + libMi.getName() + ": "+ exception.getMessage());\r
- return;\r
- }\r
- docConsole.setSaved(false);\r
- Object[] s = {libInstanceTableModel.getValueAt(row, 0), libInstanceTableModel.getValueAt(row, 1),\r
- libInstanceTableModel.getValueAt(row, 2), libInstanceTableModel.getValueAt(row, 3),\r
- libInstanceTableModel.getValueAt(row, 4)};\r
- selectedInstancesTableModel.addRow(s);\r
- resolveLibraryInstances(instanceValue);\r
- showClassToResolved();\r
- }\r
- });\r
- }\r
- return jButtonAdd;\r
- }\r
-\r
- /**\r
- * This method initializes jButton1\r
- * \r
- * @return javax.swing.JButton \r
- */\r
- private JButton getJButtonDeleteInstance() {\r
- if (jButtonDeleteInstance == null) {\r
- jButtonDeleteInstance = new JButton();\r
- jButtonDeleteInstance.setPreferredSize(new java.awt.Dimension(80,20));\r
- jButtonDeleteInstance.setText("Delete");\r
- jButtonDeleteInstance.addActionListener(new java.awt.event.ActionListener() {\r
- public void actionPerformed(java.awt.event.ActionEvent e) {\r
- int row = jTableSelectedInstances.getSelectedRow();\r
- if (row < 0) {\r
- return;\r
- }\r
- docConsole.setSaved(false);\r
- removeInstance(selectedInstancesTableModel.getValueAt(row, 1) + " " +\r
- selectedInstancesTableModel.getValueAt(row, 2) + " " +\r
- selectedInstancesTableModel.getValueAt(row, 3) + " " +\r
- selectedInstancesTableModel.getValueAt(row, 4));\r
- ffc.removeLibraryInstance(moduleKey, row);\r
- selectedInstancesTableModel.removeRow(row);\r
- \r
- }\r
- });\r
- }\r
- return jButtonDeleteInstance;\r
- }\r
-\r
- /**\r
- * This method initializes jButton2 \r
- * \r
- * @return javax.swing.JButton \r
- */\r
- private JButton getJButtonOk() {\r
- if (jButtonOk == null) {\r
- jButtonOk = new JButton();\r
- jButtonOk.setPreferredSize(new java.awt.Dimension(80,20));\r
- jButtonOk.setText("Ok");\r
- jButtonOk.addActionListener(this);\r
- }\r
- return jButtonOk;\r
- }\r
-\r
- /**\r
- * This method initializes jButton3 \r
- * \r
- * @return javax.swing.JButton \r
- */\r
- private JButton getJButtonCancel() {\r
- if (jButtonCancel == null) {\r
- jButtonCancel = new JButton();\r
- jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20));\r
- jButtonCancel.setText("Cancel");\r
- jButtonCancel.setVisible(false);\r
- }\r
- return jButtonCancel;\r
- }\r
- public void actionPerformed(ActionEvent arg0) {\r
-\r
- if (arg0.getSource() == jButtonOk) {\r
- if (jTableModuleSaOptions.isEditing()) {\r
- jTableModuleSaOptions.getCellEditor().stopCellEditing();\r
- }\r
- this.setVisible(false);\r
- }\r
- }\r
- /**\r
- * This method initializes jPanelModuleSaOpts\r
- * \r
- * @return javax.swing.JPanel \r
- */\r
- private JPanel getJPanelModuleSaOpts() {\r
- if (jPanelModuleSaOpts == null) {\r
- FlowLayout flowLayout4 = new FlowLayout();\r
- flowLayout4.setAlignment(java.awt.FlowLayout.LEFT);\r
- jLabelFfsFormatKey = new JLabel();\r
- jLabelFfsFormatKey.setText("FFS Format Key");\r
- jLabelFfsFormatKey.setPreferredSize(new java.awt.Dimension(90,16));\r
- jLabelFfsFileGuid = new JLabel();\r
- jLabelFfsFileGuid.setText("FFS File GUID");\r
- jLabelFfsFileGuid.setPreferredSize(new java.awt.Dimension(90,16));\r
- jLabelFfsFileGuid.setVisible(false);\r
- jLabelFvBinding = new JLabel();\r
- jLabelFvBinding.setText("FV Binding");\r
- jLabelFvBinding.setPreferredSize(new java.awt.Dimension(90,16));\r
- jPanelModuleSaOpts = new JPanel();\r
- jPanelModuleSaOpts.setLayout(flowLayout4);\r
- jPanelModuleSaOpts.add(jLabelFvBinding, null);\r
- jPanelModuleSaOpts.add(getJTextFieldFvBinding(), null);\r
- jPanelModuleSaOpts.add(jLabelFfsFileGuid, null);\r
- jPanelModuleSaOpts.add(getJTextFieldFileGuid(), null);\r
- jPanelModuleSaOpts.add(jLabelFfsFormatKey, null);\r
- jPanelModuleSaOpts.add(getJTextFieldFfsKey(), null);\r
- jPanelModuleSaOpts.addComponentListener(new java.awt.event.ComponentAdapter() {\r
- public void componentShown(java.awt.event.ComponentEvent e) {\r
- initFvInfo(moduleKey);\r
- }\r
- });\r
- }\r
- return jPanelModuleSaOpts;\r
- }\r
- /**\r
- * This method initializes jTextField \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldFvBinding() {\r
- if (jTextFieldFvBinding == null) {\r
- jTextFieldFvBinding = new JTextField();\r
- jTextFieldFvBinding.setPreferredSize(new java.awt.Dimension(400,20));\r
- jTextFieldFvBinding.setEditable(true);\r
- jTextFieldFvBinding.addFocusListener(new java.awt.event.FocusAdapter() {\r
- public void focusLost(java.awt.event.FocusEvent e) {\r
- String originalFvBinding = ffc.getFvBinding(moduleKey);\r
- String newFvBinding = jTextFieldFvBinding.getText();\r
- if (newFvBinding.equals(originalFvBinding)) {\r
- return;\r
- }\r
- if (newFvBinding.length() == 0 && originalFvBinding == null) {\r
- return;\r
- }\r
- docConsole.setSaved(false);\r
- ffc.setFvBinding(moduleKey, newFvBinding);\r
- }\r
- });\r
- \r
- }\r
- return jTextFieldFvBinding;\r
- }\r
- /**\r
- * This method initializes jTextField1 \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldFileGuid() {\r
- if (jTextFieldFileGuid == null) {\r
- jTextFieldFileGuid = new JTextField();\r
- jTextFieldFileGuid.setPreferredSize(new java.awt.Dimension(300,20));\r
- jTextFieldFileGuid.setVisible(false);\r
- jTextFieldFileGuid.addFocusListener(new java.awt.event.FocusAdapter() {\r
- public void focusLost(java.awt.event.FocusEvent e) {\r
- String originalFileGuid = ffc.getFfsFileNameGuid(moduleKey);\r
- String newFileGuid = jTextFieldFileGuid.getText();\r
- if (newFileGuid.equals(originalFileGuid)) {\r
- return;\r
- }\r
- if (newFileGuid.length() == 0 && originalFileGuid == null) {\r
- return;\r
- }\r
- if (newFileGuid.length() > 0) {\r
- if (!DataValidation.isGuid(newFileGuid)) {\r
- JOptionPane.showMessageDialog(frame, "FFS File Guid is NOT GUID Type.");\r
- return;\r
- }\r
- }\r
- \r
- docConsole.setSaved(false);\r
- if (newFileGuid.length() == 0) {\r
- newFileGuid = null;\r
- }\r
- ffc.setFfsFileNameGuid(moduleKey, newFileGuid);\r
- }\r
- });\r
- \r
- }\r
- return jTextFieldFileGuid;\r
- }\r
- /**\r
- * This method initializes jTextFieldFfsKey \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldFfsKey() {\r
- if (jTextFieldFfsKey == null) {\r
- jTextFieldFfsKey = new JTextField();\r
- jTextFieldFfsKey.setPreferredSize(new java.awt.Dimension(250,20));\r
- jTextFieldFfsKey.addFocusListener(new java.awt.event.FocusAdapter() {\r
- public void focusLost(java.awt.event.FocusEvent e) {\r
- String originalFfsKey = ffc.getFfsFormatKey(moduleKey);\r
- String newFfsKey = jTextFieldFfsKey.getText();\r
- if (newFfsKey.equals(originalFfsKey)) {\r
- return;\r
- }\r
- if (newFfsKey.length() == 0 && originalFfsKey == null) {\r
- return;\r
- }\r
- docConsole.setSaved(false);\r
- ffc.setFfsFormatKey(moduleKey, newFfsKey);\r
- }\r
- });\r
- \r
- }\r
- return jTextFieldFfsKey;\r
- }\r
- /**\r
- * This method initializes jScrollPaneModuleSaOptions\r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneModuleSaOptions() {\r
- if (jScrollPaneModuleSaOptions == null) {\r
- jScrollPaneModuleSaOptions = new JScrollPane();\r
- jScrollPaneModuleSaOptions.setPreferredSize(new java.awt.Dimension(600,350));\r
- jScrollPaneModuleSaOptions.setViewportView(getJTableModuleSaOptions());\r
- }\r
- return jScrollPaneModuleSaOptions;\r
- }\r
- /**\r
- * This method initializes jTableModuleSaOptions\r
- * \r
- * @return javax.swing.JTable \r
- */\r
- private JTable getJTableModuleSaOptions() {\r
- if (jTableModuleSaOptions == null) {\r
- optionsTableModel = new DefaultTableModel();\r
- optionsTableModel.addColumn("BuildTargets");\r
- optionsTableModel.addColumn("ToolChainFamily");\r
- optionsTableModel.addColumn("TagName");\r
- optionsTableModel.addColumn("ToolCode");\r
- optionsTableModel.addColumn("SupportedArchs");\r
- optionsTableModel.addColumn("Contents");\r
- jTableModuleSaOptions = new JTable(optionsTableModel);\r
- jTableModuleSaOptions.setRowHeight(20);\r
- \r
-// javax.swing.table.TableColumn toolFamilyCol = jTableModuleSaOptions.getColumnModel().getColumn(1);\r
-// JComboBox cb = new JComboBox();\r
-// cb.addItem("MSFT");\r
-// cb.addItem("GCC");\r
-// cb.addItem("CYGWIN");\r
-// cb.addItem("INTEL");\r
-// cb.addItem("USER_DEFINED");\r
-// toolFamilyCol.setCellEditor(new DefaultCellEditor(cb));\r
- \r
- Vector<String> vArch = new Vector<String>();\r
- vArch.add("IA32");\r
- vArch.add("X64");\r
- vArch.add("IPF");\r
- vArch.add("EBC");\r
- vArch.add("ARM");\r
- vArch.add("PPC");\r
- jTableModuleSaOptions.getColumnModel().getColumn(4).setCellEditor(new ListEditor(vArch));\r
- \r
- jTableModuleSaOptions.getColumnModel().getColumn(5).setCellEditor(new LongTextEditor());\r
- \r
- jTableModuleSaOptions.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
- jTableModuleSaOptions.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);\r
- jTableModuleSaOptions.getModel().addTableModelListener(new TableModelListener() {\r
- public void tableChanged(TableModelEvent arg0) {\r
- // TODO Auto-generated method stub\r
- int row = arg0.getFirstRow();\r
- TableModel m = (TableModel)arg0.getSource();\r
- \r
- if (arg0.getType() == TableModelEvent.UPDATE){\r
- //ToDo Data Validition check.\r
- String targets = m.getValueAt(row, 0) + "";\r
- Vector<Object> targetName = null;\r
- if (targets.length() > 0) {\r
- targetName = new Vector<Object>();\r
- String[] sArray = targets.split(" ");\r
- for (int i = 0; i < sArray.length; ++i) {\r
- targetName.add(sArray[i]);\r
- }\r
- }\r
- \r
- String toolChain = m.getValueAt(row, 1) + "";\r
- String tagName = m.getValueAt(row, 2) + "";\r
- String toolCode = m.getValueAt(row, 3) + "";\r
- String archs = m.getValueAt(row, 4) + "";\r
- Vector<Object> supArch = null;\r
- if (archs.length() > 0) {\r
- supArch = new Vector<Object>();\r
- String[] sArray1 = archs.split(" ");\r
- for (int i = 0; i < sArray1.length; ++i) {\r
- supArch.add(sArray1[i]);\r
- }\r
- }\r
- \r
- String contents = m.getValueAt(row, 5) + "";\r
- docConsole.setSaved(false);\r
- ffc.updateModuleSAOptionsOpt(moduleKey, row, targetName, toolChain, tagName, toolCode, supArch, contents);\r
- }\r
- }\r
- });\r
- }\r
- return jTableModuleSaOptions;\r
- }\r
- /**\r
- * This method initializes jButtonNew\r
- * \r
- * @return javax.swing.JButton \r
- */\r
- private JButton getJButtonNew() {\r
- if (jButtonNew == null) {\r
- jButtonNew = new JButton();\r
- jButtonNew.setPreferredSize(new java.awt.Dimension(80,20));\r
- jButtonNew.setText("New");\r
- jButtonNew.addActionListener(new java.awt.event.ActionListener() {\r
- public void actionPerformed(java.awt.event.ActionEvent e) {\r
- String[] row = {"", "", "", "", "", ""};\r
- optionsTableModel.addRow(row);\r
- Vector<Object> v = new Vector<Object>();\r
- Vector<Object> v1 = null;\r
- docConsole.setSaved(false);\r
- ffc.genModuleSAOptionsOpt(moduleKey, v, "", "", "", v1, "");\r
- }\r
- });\r
- }\r
- return jButtonNew;\r
- }\r
- /**\r
- * This method initializes jButtonDelete\r
- * \r
- * @return javax.swing.JButton \r
- */\r
- private JButton getJButtonDeleteOption() {\r
- if (jButtonDeleteOption == null) {\r
- jButtonDeleteOption = new JButton();\r
- jButtonDeleteOption.setPreferredSize(new java.awt.Dimension(80,20));\r
- jButtonDeleteOption.setText("Delete");\r
- jButtonDeleteOption.addActionListener(new java.awt.event.ActionListener() {\r
- public void actionPerformed(java.awt.event.ActionEvent e) {\r
- if (jTableModuleSaOptions.getSelectedRow() < 0) {\r
- return;\r
- }\r
- docConsole.setSaved(false);\r
- ffc.removeModuleSAOptionsOpt(moduleKey, jTableModuleSaOptions.getSelectedRow());\r
- optionsTableModel.removeRow(jTableModuleSaOptions.getSelectedRow());\r
- }\r
- });\r
- }\r
- return jButtonDeleteOption;\r
- }\r
- \r
- /**\r
- Start the window at the center of screen\r
- \r
- **/\r
- protected void centerWindow(int intWidth, int intHeight) {\r
- Dimension d = Toolkit.getDefaultToolkit().getScreenSize();\r
- this.setLocation((d.width - intWidth) / 2, (d.height - intHeight) / 2);\r
- }\r
-\r
- /**\r
- Start the window at the center of screen\r
- \r
- **/\r
- protected void centerWindow() {\r
- centerWindow(this.getSize().width, this.getSize().height);\r
- }\r
-/**\r
- * This method initializes jPanelPcdFields\r
- * \r
- * @return javax.swing.JPanel \r
- */\r
-private JPanel getJPanelPcdFields() {\r
- if (jPanelPcdFields == null) {\r
- GridLayout gridLayout = new GridLayout();\r
- gridLayout.setRows(3);\r
- gridLayout.setColumns(2);\r
- jPanelPcdFields = new JPanel();\r
- jPanelPcdFields.setLayout(gridLayout);\r
- jPanelPcdFields.setPreferredSize(new java.awt.Dimension(600,90));\r
- jPanelPcdFields.add(getJPanelPcdFieldsFirstRow(), null);\r
- jPanelPcdFields.add(getJPanelPcdFieldsSecondRow(), null);\r
- jPanelPcdFields.add(getJPanelPcdFieldsThirdRow(), null);\r
- }\r
- return jPanelPcdFields;\r
-}\r
-/**\r
- * This method initializes jPanelPcdFieldsSecondRow\r
- * \r
- * @return javax.swing.JPanel \r
- */\r
-private JPanel getJPanelPcdFieldsSecondRow() {\r
- if (jPanelPcdFieldsSecondRow == null) {\r
- FlowLayout flowLayout2 = new FlowLayout();\r
- flowLayout2.setAlignment(java.awt.FlowLayout.LEFT);\r
- jLabelMaxDatumSize = new JLabel();\r
- jLabelMaxDatumSize.setText("Max Datum Size");\r
- jPanelPcdFieldsSecondRow = new JPanel();\r
- jPanelPcdFieldsSecondRow.setLayout(flowLayout2);\r
- jPanelPcdFieldsSecondRow.add(jLabelMaxDatumSize, null);\r
- jPanelPcdFieldsSecondRow.add(getJTextFieldMaxDatumSize(), null);\r
- }\r
- return jPanelPcdFieldsSecondRow;\r
-}\r
-/**\r
- * This method initializes jPanelPcdFieldsThirdRow\r
- * \r
- * @return javax.swing.JPanel \r
- */\r
-private JPanel getJPanelPcdFieldsThirdRow() {\r
- if (jPanelPcdFieldsThirdRow == null) {\r
- FlowLayout flowLayout3 = new FlowLayout();\r
- flowLayout3.setAlignment(java.awt.FlowLayout.LEFT);\r
- jLabelPcdDefaultValue = new JLabel();\r
- jLabelPcdDefaultValue.setText("Default Value");\r
- jLabelPcdDefaultValue.setPreferredSize(new java.awt.Dimension(91,16));\r
- jPanelPcdFieldsThirdRow = new JPanel();\r
- jPanelPcdFieldsThirdRow.setLayout(flowLayout3);\r
- jPanelPcdFieldsThirdRow.add(jLabelPcdDefaultValue, null);\r
- jPanelPcdFieldsThirdRow.add(getJTextFieldPcdDefault(), null);\r
- jPanelPcdFieldsThirdRow.add(getJComboBoxFeatureFlagValue(), null);\r
- jPanelPcdFieldsThirdRow.add(getJButtonUpdatePcd(), null);\r
- }\r
- return jPanelPcdFieldsThirdRow;\r
-}\r
-/**\r
- * This method initializes jPanelPcdFieldsFirstRow\r
- * \r
- * @return javax.swing.JPanel \r
- */\r
-private JPanel getJPanelPcdFieldsFirstRow() {\r
- if (jPanelPcdFieldsFirstRow == null) {\r
- FlowLayout flowLayout1 = new FlowLayout();\r
- flowLayout1.setAlignment(java.awt.FlowLayout.LEFT);\r
- jLabelItemType = new JLabel();\r
- jLabelItemType.setText("Item Type");\r
- jLabelItemType.setPreferredSize(new java.awt.Dimension(91,16));\r
- jPanelPcdFieldsFirstRow = new JPanel();\r
- jPanelPcdFieldsFirstRow.setLayout(flowLayout1);\r
- jPanelPcdFieldsFirstRow.add(jLabelItemType, null);\r
- jPanelPcdFieldsFirstRow.add(getJComboBoxItemType(), null);\r
- }\r
- return jPanelPcdFieldsFirstRow;\r
-}\r
-/**\r
- * This method initializes jComboBoxItemType\r
- * \r
- * @return javax.swing.JComboBox \r
- */\r
-private JComboBox getJComboBoxItemType() {\r
- if (jComboBoxItemType == null) {\r
- jComboBoxItemType = new JComboBox();\r
- jComboBoxItemType.setPreferredSize(new java.awt.Dimension(200,20));\r
- jComboBoxItemType.addItemListener(new java.awt.event.ItemListener() {\r
- public void itemStateChanged(java.awt.event.ItemEvent e) {\r
- int row = jTablePcd.getSelectedRow();\r
- if (row < 0 || model.getValueAt(row, 2).equals(jComboBoxItemType.getSelectedItem())) {\r
- return;\r
- }\r
- if (jComboBoxItemType.getItemCount() == 3) {\r
- if (!jComboBoxItemType.getSelectedItem().equals("DYNAMIC")) {\r
- \r
- if (jComboBoxItemType.getSelectedItem().equals("FIXED_AT_BUILD")) {\r
- jTextFieldPcdDefault.setText("");\r
- jTextFieldPcdDefault.setEnabled(true);\r
- }\r
- }\r
- else{\r
- \r
- }\r
- }\r
- }\r
- });\r
- }\r
- return jComboBoxItemType;\r
-}\r
-\r
-private void pcdDynamicToNonDynamic(String cName, String tsGuid) {\r
- String[][] saa = new String[ffc.getDynamicPcdBuildDataCount()][5];\r
- ffc.getDynamicPcdBuildData(saa);\r
- String maxSize = "";\r
- String value = "";\r
- for (int i = 0; i < saa.length; ++i) {\r
- if (saa[i][0].equals(cName) && saa[i][2].equals(tsGuid)) {\r
- maxSize = saa[i][3];\r
- value = ffc.getDynamicPcdBuildDataValue(i);\r
- break;\r
- }\r
- }\r
- \r
- ArrayList<String> al = ffc.getDynPcdMapValue(cName + " " + tsGuid);\r
- for (int i = 0; i < al.size(); ++i) {\r
- String mKey = moduleInfo (al.get(i));\r
- ffc.updatePcdData(mKey, cName, tsGuid, jComboBoxItemType.getSelectedItem()+"", maxSize, value);\r
- String itemType = jComboBoxItemType.getSelectedItem()+"";\r
- al.set(i, mKey + " " + itemType);\r
- }\r
- \r
- ffc.removeDynamicPcdBuildData(cName, tsGuid);\r
-}\r
-\r
-private void pcdNonDynamicToDynamic(String cName, String tsGuid) {\r
- ArrayList<String> al = ffc.getDynPcdMapValue(cName + " " + tsGuid);\r
- for (int i = 0; i < al.size(); ++i) {\r
- String mKey = moduleInfo (al.get(i));\r
- ffc.updatePcdData(mKey, cName, tsGuid, jComboBoxItemType.getSelectedItem()+"", jTextFieldMaxDatumSize.getText(), jTextFieldPcdDefault.isVisible() ? jTextFieldPcdDefault.getText() : jComboBoxFeatureFlagValue.getSelectedItem()+"");\r
- String itemType = jComboBoxItemType.getSelectedItem()+"";\r
- al.set(i, mKey + " " + itemType);\r
- }\r
- try{\r
- ffc.addDynamicPcdBuildData(cName, jTablePcd.getValueAt(jTablePcd.getSelectedRow(), 3), tsGuid, "DYNAMIC", jTablePcd.getValueAt(jTablePcd.getSelectedRow(), 5)+"", jTextFieldPcdDefault.isVisible() ? jTextFieldPcdDefault.getText() : jComboBoxFeatureFlagValue.getSelectedItem()+"");\r
- }\r
- catch(Exception e){\r
- JOptionPane.showMessageDialog(frame, "PCD value format: " + e.getMessage());\r
- }\r
-}\r
-\r
-private String moduleInfo (String pcdInfo) {\r
- \r
- return pcdInfo.substring(0, pcdInfo.lastIndexOf(" "));\r
-}\r
-\r
-/**\r
- * This method initializes jTextFieldMaxDatumSize\r
- * \r
- * @return javax.swing.JTextField \r
- */\r
-private JTextField getJTextFieldMaxDatumSize() {\r
- if (jTextFieldMaxDatumSize == null) {\r
- jTextFieldMaxDatumSize = new JTextField();\r
- jTextFieldMaxDatumSize.setPreferredSize(new java.awt.Dimension(200,20));\r
- }\r
- return jTextFieldMaxDatumSize;\r
-}\r
-/**\r
- * This method initializes jTextField4 \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
-private JTextField getJTextFieldPcdDefault() {\r
- if (jTextFieldPcdDefault == null) {\r
- jTextFieldPcdDefault = new JTextField();\r
- jTextFieldPcdDefault.setPreferredSize(new java.awt.Dimension(200,20));\r
- }\r
- return jTextFieldPcdDefault;\r
-}\r
-/**\r
- * This method initializes jButton6 \r
- * \r
- * @return javax.swing.JButton \r
- */\r
-private JButton getJButtonUpdatePcd() {\r
- if (jButtonUpdatePcd == null) {\r
- jButtonUpdatePcd = new JButton();\r
- jButtonUpdatePcd.setPreferredSize(new java.awt.Dimension(150,20));\r
- jButtonUpdatePcd.setText("Update PCD Data");\r
- jButtonUpdatePcd.addActionListener(new java.awt.event.ActionListener() {\r
- public void actionPerformed(java.awt.event.ActionEvent e) {\r
- int row = jTablePcd.getSelectedRow();\r
- if (row < 0) {\r
- return;\r
- }\r
- docConsole.setSaved(false);\r
- String oldItemType = model.getValueAt(row, 2)+"";\r
- String newItemType = jComboBoxItemType.getSelectedItem()+"";\r
- model.setValueAt(newItemType, row, 2);\r
- model.setValueAt(jTextFieldMaxDatumSize.getText(), row, 4);\r
- model.setValueAt(jTextFieldPcdDefault.isVisible()? jTextFieldPcdDefault.getText():jComboBoxFeatureFlagValue.getSelectedItem(), row, 6);\r
- if (oldItemType.equals("DYNAMIC") && !newItemType.equals("DYNAMIC")) {\r
- pcdDynamicToNonDynamic(model.getValueAt(row, 0)+"", model.getValueAt(row, 1)+"");\r
- }\r
- if (!oldItemType.equals("DYNAMIC") && newItemType.equals("DYNAMIC")) {\r
- pcdNonDynamicToDynamic(model.getValueAt(row, 0)+"", model.getValueAt(row, 1)+"");\r
- }\r
- ffc.updatePcdData(moduleKey, model.getValueAt(row, 0)+"", model.getValueAt(row, 1)+"", model.getValueAt(row, 2)+"", model.getValueAt(row, 4)+"", model.getValueAt(row, 6)+"");\r
- }\r
- });\r
- }\r
- return jButtonUpdatePcd;\r
-}\r
-/**\r
- * This method initializes jComboBoxFeatureFlagValue\r
- * \r
- * @return javax.swing.JComboBox \r
- */\r
-private JComboBox getJComboBoxFeatureFlagValue() {\r
- if (jComboBoxFeatureFlagValue == null) {\r
- jComboBoxFeatureFlagValue = new JComboBox();\r
- jComboBoxFeatureFlagValue.setPreferredSize(new java.awt.Dimension(100,20));\r
- jComboBoxFeatureFlagValue.setVisible(false);\r
- jComboBoxFeatureFlagValue.addItem("TRUE");\r
- jComboBoxFeatureFlagValue.addItem("FALSE");\r
- }\r
- return jComboBoxFeatureFlagValue;\r
-}\r
-/**\r
- * This method initializes jPanelCustomToolChain \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
-private JPanel getJPanelCustomToolChain() {\r
- if (jPanelCustomToolChain == null) {\r
- jPanelCustomToolChain = new JPanel();\r
- jPanelCustomToolChain.setLayout(new BorderLayout());\r
- jPanelCustomToolChain.add(getJPanelToolchainS(), java.awt.BorderLayout.SOUTH);\r
- jPanelCustomToolChain.add(getJScrollPaneModuleSaOptions(), java.awt.BorderLayout.CENTER);\r
- jPanelCustomToolChain.addComponentListener(new java.awt.event.ComponentAdapter() {\r
- public void componentShown(java.awt.event.ComponentEvent e) {\r
- initToolChainOptions(moduleKey);\r
- }\r
- });\r
- }\r
- return jPanelCustomToolChain;\r
-}\r
-/**\r
- * This method initializes jPanelToolchainS \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
-private JPanel getJPanelToolchainS() {\r
- if (jPanelToolchainS == null) {\r
- jPanelToolchainS = new JPanel();\r
- jPanelToolchainS.add(getJButtonNew(), null);\r
- jPanelToolchainS.add(getJButtonDeleteOption(), null);\r
- }\r
- return jPanelToolchainS;\r
-}\r
-\r
-/**\r
- * This method initializes jPanelLibraryCenterN \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
-private JPanel getJPanelLibraryCenterN() {\r
- if (jPanelLibraryCenterN == null) {\r
- FlowLayout flowLayout5 = new FlowLayout();\r
- flowLayout5.setAlignment(java.awt.FlowLayout.CENTER);\r
- flowLayout5.setHgap(10);\r
- jPanelLibraryCenterN = new JPanel();\r
- jPanelLibraryCenterN.setLayout(flowLayout5);\r
- jPanelLibraryCenterN.add(jLabelInstanceHelp, null);\r
- jPanelLibraryCenterN.add(getJScrollPaneInstanceHelp(), null);\r
- jPanelLibraryCenterN.add(getJButtonAdd(), null);\r
- jPanelLibraryCenterN.add(getJButtonDeleteInstance(), null);\r
- }\r
- return jPanelLibraryCenterN;\r
-}\r
-/**\r
- * This method initializes jPanelLibraryCenterC \r
- * \r
- * @return javax.swing.JPanel \r
- */\r
-private JPanel getJPanelLibraryCenterC() {\r
- if (jPanelLibraryCenterC == null) {\r
- jPanelLibraryCenterC = new JPanel();\r
- jPanelLibraryCenterC.add(jLabelSelectedInstances, null);\r
- jPanelLibraryCenterC.add(getJScrollPaneSelectedInstances(), null);\r
- }\r
- return jPanelLibraryCenterC;\r
-}\r
-\r
-\r
-} // @jve:decl-index=0:visual-constraint="10,10"\r