From: jlin16 Date: Mon, 4 Sep 2006 09:32:37 +0000 (+0000) Subject: a. Enhanced toolchain setting UI for ModuleSa build options and global build options. X-Git-Tag: edk2-stable201903~24434 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=98c207975ec9acc2a4a65fe8c5e3e4f5ab824349 a. Enhanced toolchain setting UI for ModuleSa build options and global build options. b. Fpd editor, Flash part UI FV operations. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1440 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdBuildOptions.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdBuildOptions.java index 6231d8aac3..57b7f2cba0 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdBuildOptions.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdBuildOptions.java @@ -1802,7 +1802,11 @@ public class FpdBuildOptions extends IInternalFrame { vArch.add("ARM"); vArch.add("PPC"); jTableOptions.getColumnModel().getColumn(2).setCellEditor(new ListEditor(vArch)); + + jTableOptions.getColumnModel().getColumn(5).setCellEditor(new LongTextEditor()); + jTableOptions.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + jTableOptions.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF); jTableOptions.getSelectionModel().addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { selectedRow = -1; diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java index 12dd2fd445..9e2f955599 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java @@ -988,7 +988,9 @@ public class FpdFileContents { if (opt.getSupArchList() != null){ saa[i][4] = listToString(opt.getSupArchList()); - + } + else { + saa[i][4] = ""; } saa[i][5] = opt.getStringValue(); @@ -2589,7 +2591,19 @@ public class FpdFileContents { } public void getFvImagesFvImageFvImageNames (Vector vImageNames) { + FvImagesDocument.FvImages fis = getfpdFlash().getFvImages(); + if (fis == null || fis.getFvImageList() == null) { + return; + } + ListIterator li = fis.getFvImageList().listIterator(); + while (li.hasNext()) { + FvImagesDocument.FvImages.FvImage fi = li.next(); + if (fi.getType().toString().equals("ImageName")) { + vImageNames.addAll(fi.getFvImageNamesList()); + return; + } + } } public void AddFvImageFvImageNames (String[] fvNames) { @@ -2672,6 +2686,10 @@ public class FpdFileContents { cursor.dispose(); } + /** + * @param oldFvName + * @param newFvName The New FV Name. If null, remove the old FvImageNames entry. + */ public void updateFvImageNameAll (String oldFvName, String newFvName) { if (getfpdFlash().getFvImages() == null || getfpdFlash().getFvImages().getFvImageList() == null) { return; @@ -2683,6 +2701,11 @@ public class FpdFileContents { } } + /** + * @param fi + * @param oldFvName The FV Name to be replaced. + * @param newFvName The New FV Name. If null, remove the old FvImageNames entry. + */ public void updateFvImageNamesInFvImage (FvImagesDocument.FvImages.FvImage fi, String oldFvName, String newFvName) { QName qFvImageNames = new QName(xmlNs, "FvImageNames"); XmlCursor cursor = fi.newCursor(); @@ -2690,7 +2713,18 @@ public class FpdFileContents { if (cursor.toChild(qFvImageNames)) { do { if (cursor.getTextValue().equals(oldFvName)){ - cursor.setTextValue(newFvName); + if (newFvName != null) { + cursor.setTextValue(newFvName); + } + else { + if (fi.getFvImageNamesList().size() == 1) { + removeElement(fi); + break; + } + else { + cursor.removeXml(); + } + } } }while (cursor.toNextSibling(qFvImageNames)); } @@ -2738,18 +2772,50 @@ public class FpdFileContents { cursor.dispose(); } - public int getFvImagesFvImageCount() { + public int getFvImagesFvImageCount(String type) { if (getfpdFlash().getFvImages() == null || getfpdFlash().getFvImages().getFvImageList() == null) { return 0; } - return getfpdFlash().getFvImages().getFvImageList().size(); + List l = getfpdFlash().getFvImages().getFvImageList(); + ListIterator li = l.listIterator(); + int i = 0; + while(li.hasNext()) { + FvImagesDocument.FvImages.FvImage fi = (FvImagesDocument.FvImages.FvImage)li.next(); + if (!fi.getType().toString().equals(type) && !type.equals("ALL")) { + continue; + } + + ++i; + } + + return i; } - /**Only Get Fv image setting - name and type. + public Vector getFvImagesFvImageWithName (String fvName, String type) { + Vector vFvImage = new Vector(); + if (getfpdFlash().getFvImages() == null || getfpdFlash().getFvImages().getFvImageList() == null) { + return vFvImage; + } + List l = getfpdFlash().getFvImages().getFvImageList(); + ListIterator li = l.listIterator(); + while(li.hasNext()) { + FvImagesDocument.FvImages.FvImage fi = (FvImagesDocument.FvImages.FvImage)li.next(); + if (!fi.getType().toString().equals(type) && !type.equals("ALL")) { + continue; + } + if (fi.getFvImageNamesList().contains(fvName)) { + vFvImage.add(fi); + } + } + + return vFvImage; + } + /** * @param saa + * @param type "ALL" means all FvImage types: ImageName, Options, Attributes, Components. */ - public void getFvImagesFvImages(String[][] saa) { + public void getFvImagesFvImages(String[][] saa, String type) { if (getfpdFlash().getFvImages() == null) { return; @@ -2762,6 +2828,9 @@ public class FpdFileContents { int i = 0; while(li.hasNext()) { FvImagesDocument.FvImages.FvImage fi = (FvImagesDocument.FvImages.FvImage)li.next(); + if (!fi.getType().toString().equals(type) && !type.equals("ALL")) { + continue; + } // // get FvImageNames array, space separated // @@ -2780,6 +2849,108 @@ public class FpdFileContents { } } + /**Add name-value pair to FvImage element with type. + * @param fvName FV name to add name-value pair. + * @param type FvImage attribute. + * @param name + * @param value + */ + public void setTypedNamedFvImageNameValue (String fvName, String type, String name, String value) { + if (getfpdFlash().getFvImages() == null) { + return; + } + List l = getfpdFlash().getFvImages().getFvImageList(); + if (l == null) { + return; + } + ListIterator li = l.listIterator(); + while(li.hasNext()) { + FvImagesDocument.FvImages.FvImage fi = (FvImagesDocument.FvImages.FvImage)li.next(); + if (!fi.getType().toString().equals(type) && !type.equals("ALL")) { + continue; + } + if (!fi.getFvImageNamesList().contains(fvName)) { + continue; + } + setFvImagesFvImageNameValue (fi, name, value, null); + } + } + + /**Add to all FvImage elements with type, the name-value pair. + * @param type + * @param name + * @param value + */ + public void setTypedFvImageNameValue (String type, String name, String value) { + if (getfpdFlash().getFvImages() == null) { + return; + } + List l = getfpdFlash().getFvImages().getFvImageList(); + if (l == null) { + return; + } + ListIterator li = l.listIterator(); + while(li.hasNext()) { + FvImagesDocument.FvImages.FvImage fi = (FvImagesDocument.FvImages.FvImage)li.next(); + if (!fi.getType().toString().equals(type) && !type.equals("ALL")) { + continue; + } + setFvImagesFvImageNameValue (fi, name, value, null); + } + } + + /**Add to FvImage the name-value pair, or replace old name with newName, or generate new name-value pair if not exists before. + * @param fi + * @param name + * @param value + * @param newName + */ + public void setFvImagesFvImageNameValue (FvImagesDocument.FvImages.FvImage fi, String name, String value, String newName) { + if (fi.getFvImageOptions() == null || fi.getFvImageOptions().getNameValueList() == null) { + return; + } + + XmlCursor cursor = fi.getFvImageOptions().newCursor(); + if (cursor.toFirstChild()) { + do { + FvImagesDocument.FvImages.FvImage.FvImageOptions.NameValue nv = (FvImagesDocument.FvImages.FvImage.FvImageOptions.NameValue)cursor.getObject(); + if (nv.getName().equals(name)) { + nv.setValue(value); + if (newName != null) { + nv.setName(newName); + } + cursor.dispose(); + return; + } + }while (cursor.toNextSibling()); + } + + FvImagesDocument.FvImages.FvImage.FvImageOptions.NameValue nv = fi.getFvImageOptions().addNewNameValue(); + nv.setName(name); + nv.setValue(value); + if (newName != null) { + nv.setName(newName); + } + cursor.dispose(); + } + + public void getFvImagesFvImageOptions (String fvName, Map m) { + Vector vFvImage = getFvImagesFvImageWithName (fvName, "Options"); + for (int i = 0; i < vFvImage.size(); ++i) { + FvImagesDocument.FvImages.FvImage fi = vFvImage.get(i); + if (fi == null || fi.getFvImageOptions() == null || fi.getFvImageOptions().getNameValueList() == null) { + continue; + } + + ListIterator li = fi.getFvImageOptions() + .getNameValueList() + .listIterator(); + while (li.hasNext()) { + FvImagesDocument.FvImages.FvImage.FvImageOptions.NameValue nv = li.next(); + m.put(nv.getName(), nv.getValue()); + } + } + } /**Get FvImage Options for FvImage i * @param i the ith FvImage */ diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java index a8d70e2ca3..e40caf9445 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java @@ -25,6 +25,7 @@ import javax.swing.JButton; import javax.swing.ListSelectionModel; import org.tianocore.PlatformSurfaceAreaDocument; +import org.tianocore.frameworkwizard.common.DataValidation; import org.tianocore.frameworkwizard.common.GlobalData; import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType; import org.tianocore.frameworkwizard.common.ui.IInternalFrame; @@ -152,13 +153,16 @@ public class FpdFlash extends IInternalFrame { private JButton jButtonFvInFdfOptions = null; private JScrollPane jScrollPaneFvAdditional = null; private JTable jTableFvAdditional = null; - private DefaultTableModel fvAddtionalTableModel = null; // @jve:decl-index=0:visual-constraint="" + private DefaultTableModel fvAdditionalTableModel = null; // @jve:decl-index=0:visual-constraint="" private JButton jButtonAddFv = null; private JButton jButtonDelFv = null; private JButton jButtonAddFvOptions = null; private int tabIndexForFv = -1; private int selectedRowInFvAdditionalTable = -1; private String oldFvName = null; + private Vector vBlockSize = new Vector(); + private String erasePolarity = null; + boolean memModified = false; public FpdFlash() { @@ -267,12 +271,12 @@ public class FpdFlash extends IInternalFrame { fvImageParaTableModel.setRowCount(0); fvPropertyTableModel.setRowCount(0); - if (ffc.getFvImagesFvImageCount() == 0) { + if (ffc.getFvImagesFvImageCount("Attributes") == 0) { return; } - String[][] saa = new String[ffc.getFvImagesFvImageCount()][2]; - ffc.getFvImagesFvImages(saa); - + String[][] saa = new String[ffc.getFvImagesFvImageCount("Attributes")][2]; + ffc.getFvImagesFvImages(saa, "Attributes"); + int i = 0; while (i < saa.length) { fvImageParaTableModel.addRow(saa[i]); @@ -622,10 +626,10 @@ public class FpdFlash extends IInternalFrame { private JComboBox getJComboBoxFvParaType() { if (jComboBoxFvParaType == null) { jComboBoxFvParaType = new JComboBox(); - jComboBoxFvParaType.addItem("ImageName"); +// jComboBoxFvParaType.addItem("ImageName"); jComboBoxFvParaType.addItem("Attributes"); jComboBoxFvParaType.addItem("Options"); - jComboBoxFvParaType.addItem("Components"); +// jComboBoxFvParaType.addItem("Components"); jComboBoxFvParaType.setPreferredSize(new java.awt.Dimension(180,20)); jComboBoxFvParaType.setEnabled(false); jComboBoxFvParaType.addItemListener(new ItemListener() { @@ -869,13 +873,13 @@ public class FpdFlash extends IInternalFrame { fvImageParaTableModel.addColumn("Type"); - TableColumn typeCol = jTableFvInfo.getColumnModel().getColumn(1); - JComboBox cb = new JComboBox(); - cb.addItem("ImageName"); - cb.addItem("Attributes"); - cb.addItem("Options"); - cb.addItem("Components"); - typeCol.setCellEditor(new DefaultCellEditor(cb)); +// TableColumn typeCol = jTableFvInfo.getColumnModel().getColumn(1); +// JComboBox cb = new JComboBox(); +// cb.addItem("ImageName"); +// cb.addItem("Attributes"); +// cb.addItem("Options"); +// cb.addItem("Components"); +// typeCol.setCellEditor(new DefaultCellEditor(cb)); jTableFvInfo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); jTableFvInfo.getSelectionModel().addListSelectionListener(new ListSelectionListener(){ @@ -931,7 +935,7 @@ public class FpdFlash extends IInternalFrame { if (jButtonDelFvImage == null) { jButtonDelFvImage = new JButton(); jButtonDelFvImage.setPreferredSize(new java.awt.Dimension(120,20)); -// jButton6.setEnabled(false); + jButtonDelFvImage.setEnabled(false); jButtonDelFvImage.setText("Delete Row"); jButtonDelFvImage.addActionListener(new AbstractAction() { /** @@ -1131,23 +1135,88 @@ public class FpdFlash extends IInternalFrame { } private void initFvAdditionalTable() { - + Vector vFvNames = new Vector(); + ffc.getFvImagesFvImageFvImageNames(vFvNames); + for (int i = 0; i < vFvNames.size(); ++i) { + String fvName = vFvNames.get(i); + if (fvNameExists(fvName)) { + continue; + } + HashMap mFvOpts = new HashMap(); + ffc.getFvImagesFvImageOptions(fvName, mFvOpts); + String bSize = ""; + String numBlks = ""; + String fvSize = ""; + String fvFile = ""; + if (mFvOpts.get("EFI_FILE_NAME") != null) { + fvFile = mFvOpts.get("EFI_FILE_NAME"); + } + if (mFvOpts.get("EFI_BLOCK_SIZE") != null && mFvOpts.get("EFI_NUM_BLOCKS") != null) { + bSize = mFvOpts.get("EFI_BLOCK_SIZE"); + numBlks = mFvOpts.get("EFI_NUM_BLOCKS"); + boolean blockSizeWellFormat = true; + boolean numOfBlockWellFormat = true; + if (!DataValidation.isHexDoubleWordDataType(bSize) && !DataValidation.isInt(bSize)) { + blockSizeWellFormat = false; + JOptionPane.showMessageDialog(frame, fvName + " block size bad format."); + } + if (!DataValidation.isHexDoubleWordDataType(numBlks) && !DataValidation.isInt(numBlks)) { + numOfBlockWellFormat = false; + JOptionPane.showMessageDialog(frame, fvName + " number of blocks bad format."); + } + if (blockSizeWellFormat && numOfBlockWellFormat) { + int size = Integer.decode(bSize); + int num = Integer.decode(numBlks); + fvSize = size*num + ""; + } + } + fvAdditionalTableModel.addRow(new String[]{fvName, fvSize, fvFile}); + addTabForFv(new FvInfoFromFdf(fvName, "", "")); + } } private void initFvInFdfTable(String fdfPath){ Vector vFvInfo = new Vector(); getFvInfoFromFdf(fdfPath, vFvInfo); + getFlashInfoFromFdf (fdfPath, vBlockSize, erasePolarity); + ffc.setTypedFvImageNameValue("Attributes", "ErasePolarity", erasePolarity); + // BugBug: assume all blocks have same size; + String blkSize = vBlockSize.get(0); + getFvInFdfTableModel().setRowCount(0); for (int j = 0; j < vFvInfo.size(); ++j) { FvInfoFromFdf fvInfo = vFvInfo.get(j); String[] row = {fvInfo.getFvName(), fvInfo.getSize(), fvInfo.getEfiFileName()}; getFvInFdfTableModel().addRow(row); + try { + int blockSize = Integer.decode(blkSize); + int fvSize = Integer.decode(row[1]); + int numBlocks = fvSize/blockSize; + // if no options for this FV before, generate a new options entry for this FV. + if (ffc.getFvImagesFvImageWithName(row[0], "Options") == null) { + HashMap mOptions = new HashMap(); + mOptions.put("EFI_BLOCK_SIZE", blkSize); + mOptions.put("EFI_NUM_BLOCKS", numBlocks+""); + mOptions.put("EFI_FILE_NAME", row[2]); + ffc.genFvImagesFvImage(new String[]{row[0]}, "Options", mOptions); + memModified = true; + } + else { + ffc.setTypedNamedFvImageNameValue(row[0], "Options", "EFI_BLOCK_SIZE", blkSize); + ffc.setTypedNamedFvImageNameValue(row[0], "Options", "EFI_NUM_BLOCKS", numBlocks + ""); + ffc.setTypedNamedFvImageNameValue(row[0], "Options", "EFI_FILE_NAME", row[2]); + } + } + catch (NumberFormatException e){ + JOptionPane.showMessageDialog(frame, e.getMessage()); + } } for (int k = 0; k < vFvInfo.size(); ++k) { FvInfoFromFdf fvInfo = vFvInfo.get(k); addTabForFv(fvInfo); } + } private void addTabForFv (FvInfoFromFdf fvInfo) { @@ -1300,6 +1369,7 @@ public class FpdFlash extends IInternalFrame { jButtonUpdateFvImage = new JButton(); jButtonUpdateFvImage.setPreferredSize(new Dimension(120, 20)); jButtonUpdateFvImage.setActionCommand("Update"); + jButtonUpdateFvImage.setEnabled(false); jButtonUpdateFvImage.setText("Update FV"); jButtonUpdateFvImage.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { @@ -1590,7 +1660,7 @@ public class FpdFlash extends IInternalFrame { jTableFvAdditional = new JTable(); jTableFvAdditional.setRowHeight(20); jTableFvAdditional.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - jTableFvAdditional.setModel(getFvAddtionalTableModel()); + jTableFvAdditional.setModel(getFvAdditionalTableModel()); jTableFvAdditional.getSelectionModel().addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { @@ -1653,14 +1723,22 @@ public class FpdFlash extends IInternalFrame { return jTableFvAdditional; } - private boolean fvNameExists (String fvName) { + private boolean fvNameExistsInFvInFdfTable (String fvName) { for (int i = 0; i < jTableFvInFdf.getRowCount(); ++i) { if (fvInFdfTableModel.getValueAt(i, 0).equals(fvName)) { return true; } } + return false; + } + + private boolean fvNameExists (String fvName) { + if (fvNameExistsInFvInFdfTable(fvName)) { + return true; + } + for (int j = 0; j < jTableFvAdditional.getRowCount(); ++j) { - if (fvAddtionalTableModel.getValueAt(j, 0).equals(fvName) && j != selectedRowInFvAdditionalTable) { + if (fvAdditionalTableModel.getValueAt(j, 0).equals(fvName) && j != selectedRowInFvAdditionalTable) { return true; } } @@ -1668,18 +1746,18 @@ public class FpdFlash extends IInternalFrame { } /** - * This method initializes fvAddtionalTableModel + * This method initializes fvAdditionalTableModel * * @return javax.swing.table.DefaultTableModel */ - private DefaultTableModel getFvAddtionalTableModel() { - if (fvAddtionalTableModel == null) { - fvAddtionalTableModel = new DefaultTableModel(); - fvAddtionalTableModel.addColumn("FV Name"); - fvAddtionalTableModel.addColumn("Size"); - fvAddtionalTableModel.addColumn("Corresponding File Name"); + private DefaultTableModel getFvAdditionalTableModel() { + if (fvAdditionalTableModel == null) { + fvAdditionalTableModel = new DefaultTableModel(); + fvAdditionalTableModel.addColumn("FV Name"); + fvAdditionalTableModel.addColumn("Size"); + fvAdditionalTableModel.addColumn("Corresponding File Name"); } - return fvAddtionalTableModel; + return fvAdditionalTableModel; } /** @@ -1699,7 +1777,7 @@ public class FpdFlash extends IInternalFrame { jTableFvAdditional.getCellEditor().stopCellEditing(); } String[] row = {"", "", ""}; - fvAddtionalTableModel.addRow(row); + fvAdditionalTableModel.addRow(row); } }); } @@ -1715,11 +1793,26 @@ public class FpdFlash extends IInternalFrame { if (jButtonDelFv == null) { jButtonDelFv = new JButton(); jButtonDelFv.setPreferredSize(new java.awt.Dimension(80,20)); - jButtonDelFv.setEnabled(false); + jButtonDelFv.setEnabled(true); jButtonDelFv.setText("Delete"); jButtonDelFv.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { - System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed() + //delete row in FvAdditional table. + int selectedRow = jTableFvAdditional.getSelectedRow(); + if (selectedRow < 0) { + return; + } + String fvName = fvAdditionalTableModel.getValueAt(selectedRow, 0) + ""; + fvAdditionalTableModel.removeRow(selectedRow); + // + //delete tab with selected FV name. + // + jTabbedPane.removeTabAt(jTabbedPane.indexOfTab(fvName)); + //delete FV Name from FvImages element. + ffc.updateFvImageNameAll(fvName, null); + //delete FvBinding from ModuleSA. + ffc.removeFvBindingAll(fvName); + docConsole.setSaved(false); } }); } @@ -1775,6 +1868,9 @@ public class FpdFlash extends IInternalFrame { if (jTableFvInfo.isEditing()) { jTableFvInfo.getCellEditor().stopCellEditing(); } + if (jTableFvAdditional.isEditing()) { + jTableFvAdditional.getCellEditor().stopCellEditing(); + } } }); } @@ -1815,6 +1911,53 @@ public class FpdFlash extends IInternalFrame { return jContentPane; } + private void getFlashInfoFromFdf (String fdfPath, Vector vBlockSize, String erasePolarity) { + File fdf = new File(fdfPath); + if (!fdf.exists()) { + return; + } + int lines = 0; + + try { + FileReader reader = new FileReader(fdf); + BufferedReader in = new BufferedReader(reader); + String str; + + while ((str = in.readLine()) != null) { + ++lines; + str = str.trim(); + // + // skip empty line, comment (start with //) + // + if (str.length() == 0 || str.startsWith("//")) { + continue; + } + // + // ErasePolarity + // + if (str.startsWith("ErasePolarity")) { + erasePolarity = str.substring(str.indexOf("=") + 1, str.lastIndexOf(",")); + } + // + // dig into Block section. + // + if (str.startsWith("Block") && str.endsWith("}")) { + String[] blockSec = str.split(","); + String nv = blockSec[1].trim(); + String[] sizeSec = nv.split("="); + vBlockSize.add(sizeSec[1].trim()); + } + + } + + reader.close(); + in.close(); + } + catch (Exception e) { + + } + } + private void getFvInfoFromFdf(String fdfPath, Vector vFvInfo) { File fdf = new File(fdfPath); if (!fdf.exists()) { @@ -2374,10 +2517,11 @@ class ImageParaTableModel extends DefaultTableModel { private static final long serialVersionUID = 1L; public boolean isCellEditable(int row, int col) { - if (getValueAt(row, 1).equals("ImageName") && col >=1) { - return false; - } - return true; +// if (getValueAt(row, 1).equals("ImageName") && col >=1) { +// return false; +// } +// return true; + return false; } } diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java index 6f591b7d32..14fd02499f 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java @@ -4,6 +4,7 @@ import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Toolkit; +import javax.swing.DefaultCellEditor; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; @@ -1241,6 +1242,16 @@ public class FpdModuleSA extends JDialog implements ActionListener { optionsTableModel.addColumn("Contents"); jTableModuleSaOptions = new JTable(optionsTableModel); jTableModuleSaOptions.setRowHeight(20); + + javax.swing.table.TableColumn toolFamilyCol = jTableModuleSaOptions.getColumnModel().getColumn(1); + JComboBox cb = new JComboBox(); + cb.addItem("MSFT"); + cb.addItem("GCC"); + cb.addItem("CYGWIN"); + cb.addItem("INTEL"); + cb.addItem("USER_DEFINED"); + toolFamilyCol.setCellEditor(new DefaultCellEditor(cb)); + Vector vArch = new Vector(); vArch.add("IA32"); vArch.add("X64"); @@ -1249,6 +1260,9 @@ public class FpdModuleSA extends JDialog implements ActionListener { vArch.add("ARM"); vArch.add("PPC"); jTableModuleSaOptions.getColumnModel().getColumn(4).setCellEditor(new ListEditor(vArch)); + + jTableModuleSaOptions.getColumnModel().getColumn(5).setCellEditor(new LongTextEditor()); + jTableModuleSaOptions.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); jTableModuleSaOptions.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF); jTableModuleSaOptions.getModel().addTableModelListener(new TableModelListener() {