X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Tools%2FJava%2FSource%2FFrameworkWizard%2Fsrc%2Forg%2Ftianocore%2Fframeworkwizard%2Fplatform%2Fui%2FFpdModuleSA.java;fp=Tools%2FJava%2FSource%2FFrameworkWizard%2Fsrc%2Forg%2Ftianocore%2Fframeworkwizard%2Fplatform%2Fui%2FFpdModuleSA.java;h=0000000000000000000000000000000000000000;hp=b2d577e4ddd09fc38d175bd3c2f776fcfa107372;hb=808def96aa4589fba9c2d0ea55837754a3b7a4f7;hpb=9216450d1143056a50a5f916984a2d7faf590488 diff --git a/Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java b/Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java deleted file mode 100644 index b2d577e4dd..0000000000 --- a/Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java +++ /dev/null @@ -1,2240 +0,0 @@ -package org.tianocore.frameworkwizard.platform.ui; - -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.Toolkit; - -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JDialog; -import javax.swing.JTabbedPane; -import javax.swing.JLabel; -import javax.swing.JScrollPane; -import javax.swing.JTable; -import javax.swing.JTextArea; -import javax.swing.JSplitPane; -import javax.swing.JButton; -import javax.swing.ListSelectionModel; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; -import javax.swing.event.TableModelEvent; -import javax.swing.event.TableModelListener; -import javax.swing.table.DefaultTableModel; -import javax.swing.table.TableColumn; -import javax.swing.table.TableModel; - -import org.tianocore.frameworkwizard.FrameworkWizardUI; -import org.tianocore.frameworkwizard.common.DataValidation; -import org.tianocore.frameworkwizard.common.GlobalData; -import org.tianocore.frameworkwizard.common.IDefaultTableModel; -import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType; -import org.tianocore.frameworkwizard.platform.ui.global.LibraryClassDescriptor; -import org.tianocore.frameworkwizard.platform.ui.global.WorkspaceProfile; -import org.tianocore.frameworkwizard.platform.ui.global.SurfaceAreaQuery; -import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification; -import org.tianocore.frameworkwizard.packaging.PackageIdentification; - -import java.awt.FlowLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.ListIterator; -import java.util.Set; -import java.util.Stack; -import java.util.Vector; - -import javax.swing.JTextField; -import java.awt.GridLayout; -import javax.swing.JComboBox; - -public class FpdModuleSA extends JDialog implements ActionListener { - - /** - * - */ - private static final long serialVersionUID = 1L; - private JPanel jContentPane = null; - private JTabbedPane jTabbedPane = null; - private JPanel jPanelPcd = null; - private JPanel jPanelLibrary = null; - private JLabel jLabelPcdData = null; - private JScrollPane jScrollPaneTablePcd = null; - private JTable jTablePcd = null; - private JPanel jPanelPcdSouth = null; - private JScrollPane jScrollPanePcdHelp = null; - private JTextArea jTextAreaPcdHelp = null; - private JPanel jPanelContentPaneSouth = null; - private JSplitPane jSplitPane = null; - private JPanel jPanelLibraryLeft = null; - private JPanel jPanelLibraryRight = null; - private JLabel jLabelLibClass = null; - private JLabel jLabelQualifiedInstance = null; - private JScrollPane jScrollPaneSelectedInstances = null; - private JTable jTableSelectedInstances = null; - private JScrollPane jScrollPaneLibClass = null; - private JTable jTableLibClass = null; - private JScrollPane jScrollPaneQualifiedInstance = null; - private JTable jTableLibInstances = null; - private JPanel jPanelLibrarySouth = null; - private JPanel jPanelLibraryCenter = null; - private JScrollPane jScrollPaneInstanceHelp = null; - private JTextArea jTextAreaInstanceHelp = null; - private JLabel jLabelSelectedInstances = null; - private JLabel jLabelInstanceHelp = null; - private JButton jButtonAdd = null; - private JButton jButtonDeleteInstance = null; - private JLabel jLabelPcdHelp = null; - private JButton jButtonOk = null; - private JButton jButtonCancel = null; - private IDefaultTableModel model = null; - private IDefaultTableModel selectedInstancesTableModel = null; - private IDefaultTableModel libClassTableModel = null; - private IDefaultTableModel libInstanceTableModel = null; - private DefaultTableModel optionsTableModel = null; - private FpdFileContents ffc = null; - private String moduleKey = null; - private ModuleIdentification moduleId = null; - private HashMap> classInstanceMap = null; - // - // map of <{libName, supArch, supMod}, list of Module information> - // - private HashMap> classConsumed = null; - private HashMap> classProduced = null; - - private JPanel jPanelModuleSaOpts = null; - private JLabel jLabelFvBinding = null; - private JTextField jTextFieldFvBinding = null; - private JLabel jLabelFfsFileGuid = null; - private JTextField jTextFieldFileGuid = null; - private JLabel jLabelFfsFormatKey = null; - private JTextField jTextFieldFfsKey = null; - private JScrollPane jScrollPaneModuleSaOptions = null; - private JTable jTableModuleSaOptions = null; - private JButton jButtonNew = null; - private JButton jButtonDeleteOption = null; - private JPanel jPanelPcdFields = null; - private JPanel jPanelPcdFieldsSecondRow = null; - private JPanel jPanelPcdFieldsThirdRow = null; - private JPanel jPanelPcdFieldsFirstRow = null; - private JLabel jLabelItemType = null; - private JComboBox jComboBoxItemType = null; - private JLabel jLabelMaxDatumSize = null; - private JTextField jTextFieldMaxDatumSize = null; - private JLabel jLabelPcdDefaultValue = null; - private JTextField jTextFieldPcdDefault = null; - private JButton jButtonUpdatePcd = null; - private JComboBox jComboBoxFeatureFlagValue = null; - private OpeningPlatformType docConsole = null; - private JPanel jPanelCustomToolChain = null; - private JPanel jPanelToolchainS = null; - private JPanel jPanelLibraryCenterN = null; - private JPanel jPanelLibraryCenterC = null; // @jve:decl-index=0:visual-constraint="20,224" - - private final int buildTargetWidth = 150; - private final int toolChainFamilyWidth = 150; - private final int supportArchWidth = 150; - private final int toolCmdCodeWidth = 200; - private final int tagNameWidth = 150; - private final int argWidth = 400; - - /** - * This is the default constructor - */ - public FpdModuleSA() { - super(FrameworkWizardUI.getInstance()); - initialize(); - } - public FpdModuleSA(FpdFileContents ffc) { - this(); - this.ffc = ffc; - } - - public void setKey(String k, int i, OpeningPlatformType dc){ - this.moduleKey = k; - this.docConsole = dc; - classInstanceMap = null; - classProduced = null; - classConsumed = null; - int tabIndex = jTabbedPane.indexOfTab("FV Info"); - jTabbedPane.setSelectedIndex(tabIndex); - initFvInfo(moduleKey); - initPcdBuildDefinition(moduleKey); - moduleId = WorkspaceProfile.getModuleId(moduleKey); - if (moduleId == null) { - return; - } - tabIndex = jTabbedPane.indexOfTab("Libraries"); - if (moduleId.isLibrary()) { - jTabbedPane.setEnabledAt(tabIndex, false); - } - else { - jTabbedPane.setEnabledAt(tabIndex, true); - } - } - - /** - init will be called each time FpdModuleSA object is to be shown. - @param key Module information. - **/ - public void initPcdBuildDefinition(String key) { - // - // display pcd for key. - // - model.setRowCount(0); - jTextAreaPcdHelp.setText(""); - jComboBoxItemType.setSelectedIndex(-1); - jTextFieldMaxDatumSize.setText(""); - jTextFieldPcdDefault.setText(""); - int pcdCount = ffc.getPcdDataCount(key); - if (pcdCount != 0) { - String[][] saa = new String[pcdCount][7]; - ffc.getPcdData(key, saa); - for (int j = 0; j < saa.length; ++j) { - model.addRow(saa[j]); - } - } - } - - public void initLibraries(String key) { - libClassTableModel.setRowCount(0); - libInstanceTableModel.setRowCount(0); - selectedInstancesTableModel.setRowCount(0); - Vector errorMsg = new Vector(); - Vector newInstances = new Vector(); - - addConsumedClassFromModule (key); - addProducedClassFromModule (key); - - int instanceCount = ffc.getLibraryInstancesCount(key); - if (instanceCount != 0) { - String[][] saa = new String[instanceCount][5]; - ffc.getLibraryInstances(key, saa); - for (int i = 0; i < saa.length; ++i) { - String libInstanceKey = saa[i][1] + " " + saa[i][2] + " " + saa[i][3] + " " + saa[i][4]; - ModuleIdentification mi = WorkspaceProfile.getModuleId(libInstanceKey); - if (mi != null) { - // - // ToDo: verify this instance first. - // - saa[i][0] = mi.getName(); - saa[i][2] = mi.getVersion(); - saa[i][4] = mi.getPackageId().getVersion(); - // - // re-evaluate lib instance usage when adding a already-selected lib instance. - // - addConsumedClassFromModule (libInstanceKey); - addProducedClassFromModule (libInstanceKey); - selectedInstancesTableModel.addRow(saa[i]); - } - } - } - - Set sLcd = this.classConsumed.keySet(); - Iterator iter = sLcd.iterator(); - Stack lcdStack = new Stack(); - while (iter.hasNext()) { - LibraryClassDescriptor lcd = iter.next(); - if (this.classConsumed.get(lcd) == null || this.classConsumed.get(lcd).size() == 0) { - continue; - } - if (isBoundedClass(lcd, errorMsg)) { - continue; - } - - if (!lcdStack.contains(lcd)) { - lcdStack.push(lcd); - } - } - - try { - resolveLibraryInstances(lcdStack, true, errorMsg, newInstances); - } catch (Exception e) { - String exceptionMsg = e.getCause() + " " + e.getMessage(); - if (!errorMsg.contains(exceptionMsg)) { - JOptionPane.showMessageDialog(FrameworkWizardUI.getInstance(), e.getCause() + " " + e.getMessage()); - } - } - - String newInstancesAddedMsg = "Library instance automatically added to this module :\n"; - for (int i = 0; i < newInstances.size(); ++i) { - ModuleIdentification libMi = newInstances.get(i); - newInstancesAddedMsg += libMi.getName(); - newInstancesAddedMsg += " "; - } - if (newInstances.size() > 0) { - JOptionPane.showMessageDialog(FrameworkWizardUI.getInstance(), newInstancesAddedMsg); - } - - showClassToResolved(); - - if (errorMsg.size() > 0) { - String errors = ""; - for (int i = 0; i < errorMsg.size(); ++i) { - errors += " " + errorMsg.get(i) + "\n"; - } - JOptionPane.showMessageDialog(FrameworkWizardUI.getInstance(), errors); - } - } - - public void initFvInfo (String key) { - // - // display module SA options - // - jTextFieldFvBinding.setText(""); - String fvBinding = ffc.getFvBinding(key); - if (fvBinding != null) { - jTextFieldFvBinding.setText(fvBinding); - } - jTextFieldFileGuid.setText(""); - String fileGuid = ffc.getFfsFileNameGuid(key); - if (fileGuid != null) { - jTextFieldFileGuid.setText(fileGuid); - } - jTextFieldFfsKey.setText(""); - String ffsKey = ffc.getFfsFormatKey(key); - if (ffsKey != null) { - jTextFieldFfsKey.setText(ffsKey); - } - } - - public void initToolChainOptions(String key) { - - optionsTableModel.setRowCount(0); - String[][] saa = new String[ffc.getModuleSAOptionsCount(key)][6]; - ffc.getModuleSAOptions(key, saa); - for (int i = 0; i < saa.length; ++i) { - optionsTableModel.addRow(saa[i]); - } - } - - private void filterClassConsumedByArch (Vector v) { - String[] moduleInfo = moduleKey.split(" "); - Vector vModuleArchs = new Vector(); - // - // Skip guid, version information, get archs to check. - // - for (int i = 4; i < moduleInfo.length; ++i) { - vModuleArchs.add(moduleInfo[i]); - } - // - // if module will be built on all platforms, no filter needed for lib classes. - // - if (vModuleArchs.size() == 0) { - return; - } - - Iterator iter = v.iterator(); - while (iter.hasNext()) { - LibraryClassDescriptor libInfo = iter.next(); - - Vector vSupArchs = libInfo.getVectorFromString(libInfo.supArchs); - - if (vSupArchs.size() == 0 || (vSupArchs.size() == 1 && vSupArchs.get(0).equalsIgnoreCase(""))) { - // - // update lib info to module archs only. - // - libInfo.supArchs = ""; - for (int i = 0; i < vModuleArchs.size(); ++i) { - libInfo.supArchs += vModuleArchs.get(i); - libInfo.supArchs += " "; - } - libInfo.supArchs.trim(); - continue; - } - // - // only retain those lib class used by module archs. - // - vSupArchs.retainAll(vModuleArchs); - if (vSupArchs.size() > 0) { - // - // update lib info to reflect which kind of arch need to select instance. - // - libInfo.supArchs = ""; - for (int i = 0; i < vSupArchs.size(); ++i) { - libInfo.supArchs += vSupArchs.get(i); - libInfo.supArchs += " "; - } - libInfo.supArchs.trim(); - continue; - } - // - // remove this lib definition if it supports no archs module will be built under. - // - iter.remove(); - } - } - - private void addProducedClassFromModule (String key) { - ModuleIdentification mi = WorkspaceProfile.getModuleId(key); - Vector vClassProduced = SurfaceAreaQuery.getLibraryClasses("ALWAYS_PRODUCED", mi); - if (this.classProduced == null) { - this.classProduced = new HashMap>(); - } - for (int i = 0; i < vClassProduced.size(); ++i) { - ArrayList producedBy = this.classProduced.get(vClassProduced.get(i)); - if (producedBy == null) { - producedBy = new ArrayList(); - } - // - // class already produced by previous module (lib instance). - /* - if (producedBy.size() == 1) { - String instanceKey = producedBy.get(0); - ModuleIdentification libMi = WorkspaceProfile.getModuleId(instanceKey); - throw new MultipleInstanceException (vClassProduced.get(i).className, libMi.getName(), mi.getName()); - } - Iterator lcdi = this.classProduced.keySet().iterator(); - while (lcdi.hasNext()) { - LibraryClassDescriptor lcd = lcdi.next(); - if (vClassProduced.get(i).hasInterSectionWith(lcd)) { - ArrayList alreadyProducedBy = this.classProduced.get(lcd); - String instanceKey = alreadyProducedBy.get(0); - ModuleIdentification libMi = WorkspaceProfile.getModuleId(instanceKey); - throw new MultipleInstanceException (vClassProduced.get(i).className, libMi.getName(), mi.getName()); - } - } - */ - // normal case. - // - producedBy.add(key); - this.classProduced.put(vClassProduced.get(i), producedBy); - - } - } - - private Vector addConsumedClassFromModule (String key) { - ModuleIdentification mi = WorkspaceProfile.getModuleId(key); -// PackageIdentification[] depPkgList = null; - - // - // Get dependency pkg list into which we will search lib instances. - // - //depPkgList = SurfaceAreaQuery.getDependencePkg(null, mi); - // - // Get the lib class consumed, produced by this module itself. - // - Vector vClassConsumed = SurfaceAreaQuery.getLibraryClasses("ALWAYS_CONSUMED", mi); - for (int i = 0; i < vClassConsumed.size(); ++i) { - vClassConsumed.get(i).supModTypes = WorkspaceProfile.getModuleType(moduleId); - } - filterClassConsumedByArch(vClassConsumed); - if (this.classConsumed == null) { - this.classConsumed = new HashMap>(); - } - - for (int i = 0; i < vClassConsumed.size(); ++i) { - ArrayList consumedBy = this.classConsumed.get(vClassConsumed.get(i)); - if (consumedBy == null) { - consumedBy = new ArrayList(); - } - consumedBy.add(key); - this.classConsumed.put(vClassConsumed.get(i), consumedBy); - } - - return vClassConsumed; - } - - private void resolveLibraryInstances(Stack lcdStack, boolean autoSelectSingleInstance, Vector errorMsg, Vector newInstances) throws MultipleInstanceException, NoInstanceException{ - - if (classInstanceMap == null) { - classInstanceMap = new HashMap>(); - } - while (!lcdStack.empty()) { - LibraryClassDescriptor cls = lcdStack.pop(); - if (isBoundedClass(cls, errorMsg)) { - continue; - } - ArrayList instances = getInstancesForClass(cls, null); - if (instances.size() == 0) { -// throw new NoInstanceException (cls.className); - String exceptionMsg = new NoInstanceException (cls.className).getMessage(); - if (!errorMsg.contains(exceptionMsg)) { - errorMsg.add(exceptionMsg); - } - - } - classInstanceMap.put(cls, instances); - if (instances.size() == 1 && autoSelectSingleInstance) { - String instanceInfo = instances.get(0); - ModuleIdentification libMi = WorkspaceProfile.getModuleId(instanceInfo); - try { - Object[] row = {libMi.getName(), libMi.getGuid(), libMi.getVersion(), - libMi.getPackageId().getGuid(), libMi.getPackageId().getVersion()}; - if (!ffc.instanceExistsInModuleSA(moduleKey, row[1]+"", row[2]+"", row[3]+"", row[4]+"")) { - addLibInstance(libMi); - newInstances.add(libMi); - docConsole.setSaved(false); - selectedInstancesTableModel.addRow(row); - addProducedClassFromModule (instanceInfo); - Vector vLcd = addConsumedClassFromModule(instanceInfo); - for (int i = 0; i < vLcd.size(); ++i) { - LibraryClassDescriptor lcd = vLcd.get(i); - if (!lcdStack.contains(lcd)) { - lcdStack.push(lcd); - } - } - } - } - catch (Exception e) { - if (!errorMsg.contains(e.getMessage())) { - errorMsg.add(e.getMessage()); - } - } - } - } - } -// - - /**Search classProduced map to see if this class has been produced by some instance (module). - * @param cls - * @return - */ - private boolean isBoundedClass (LibraryClassDescriptor cls, Vector errorMsg) { -// if (this.classProduced.containsKey(cls)) { -// return true; -// } - Iterator lcdi = this.classProduced.keySet().iterator(); - while (lcdi.hasNext()) { - LibraryClassDescriptor lcd = lcdi.next(); - if (cls.className.equals(lcd.className)) { - if (cls.isSubSetByArchs(lcd) && cls.isSubSetByModTypes(lcd)) { - return true; - } - else { - ArrayList producedBy = this.classProduced.get(lcd); - String instancesName = ""; - for (int i = 0; i < producedBy.size(); ++i) { - ModuleIdentification mi = WorkspaceProfile.getModuleId(producedBy.get(i)); - instancesName += mi.getName(); - instancesName += " "; - } - String msg = new ImproperInstanceException(lcd.className, instancesName, lcd.supArchs, lcd.supModTypes).getMessage(); - if (!errorMsg.contains(msg)) { - errorMsg.add(msg); - } - } - } - } - - return false; - } - - private ArrayList getInstancesForClass(LibraryClassDescriptor cls, PackageIdentification[] depPkgList){ - ArrayList al = new ArrayList(); - -// for (int i = 0; i < depPkgList.length; ++i) { - Iterator ismi = GlobalData.vModuleList.iterator(); - while(ismi.hasNext()) { - ModuleIdentification mi = (ModuleIdentification)ismi.next(); -// if (!mi.getPackageId().getGuid().equalsIgnoreCase(depPkgList[i].getGuid())) { -// continue; -// } - Vector clsProduced = SurfaceAreaQuery.getLibraryClasses("ALWAYS_PRODUCED", mi); - - boolean isPotential = false; - Iterator lcdi = clsProduced.iterator(); - while (lcdi.hasNext()) { - LibraryClassDescriptor lcd = lcdi.next(); - if (cls.isSubSetByArchs(lcd) && cls.isSubSetByModTypes(lcd)){ - isPotential = true; - } - - if (isPotential && hasBeenProduced(lcd)) { - isPotential = false; - break; - } - } - if (isPotential) { - al.add(mi.getGuid() + " " + mi.getVersion() + " " + - mi.getPackageId().getGuid() + " " + mi.getPackageId().getVersion()); - } - } -// } - - return al; - } - - private boolean hasBeenProduced (LibraryClassDescriptor cls) { - Iterator lcdi = this.classProduced.keySet().iterator(); - while (lcdi.hasNext()) { - LibraryClassDescriptor lcd = lcdi.next(); - if (cls.isSubSetByArchs(lcd) && cls.isSubSetByModTypes(lcd)) { - return true; - } - } - return false; - } - - private ArrayList getConsumedBy (String className) { - Iterator lcdi = this.classConsumed.keySet().iterator(); - while (lcdi.hasNext()) { - LibraryClassDescriptor lcd = lcdi.next(); - if ((lcd.className != null) && lcd.className.equals(className)) { - return this.classConsumed.get(lcd); - } - } - return null; - } - - private ArrayList getProducedBy (String className) { - Iterator lcdi = this.classProduced.keySet().iterator(); - while (lcdi.hasNext()) { - LibraryClassDescriptor lcd = lcdi.next(); - if ((lcd.className != null) && lcd.className.equals(className)) { - return this.classProduced.get(lcd); - } - } - return null; - } - // - // Get class name list related with instanceKey from HashMap m>. - // - private ArrayList getLibraryClassList (String instanceKey, HashMap> m) { - ArrayList libraryClass = new ArrayList(); - Iterator lcdi = m.keySet().iterator(); - while (lcdi.hasNext()) { - LibraryClassDescriptor lcd = lcdi.next(); - if ((m.get(lcd) != null) && m.get(lcd).contains(instanceKey)) { - libraryClass.add(lcd.className); - } - } - return libraryClass; - } - - private void removeInstance(String key) { - ModuleIdentification mi = WorkspaceProfile.getModuleId(key); - // - // remove pcd information of instance from current ModuleSA - // Note that Pcd data SHOULD be removed prior to library instance - // because Multi-Sourced PCD could not be removed, if we remove library instance first, - // it will impact the judgement of whether a PCD entry is Multi-Sourced. - // - ffc.removePcdData(moduleKey, mi); - ffc.removeLibraryInstance(moduleKey, key); - // - // remove class produced by this instance and add back these produced class to be bound. - // - Vector clsProduced = getClassProduced(mi); - for (int i = 0; i < clsProduced.size(); ++i) { - - classProduced.remove(clsProduced.get(i)); - } - // - // remove class consumed by this instance. we do not need to bound it now. - // - String[] clsConsumed = getClassConsumed(mi); - for (int i = 0; i < clsConsumed.length; ++i) { - ArrayList al = getConsumedBy (clsConsumed[i]); - - if (al == null ) { - continue; - } - al.remove(key); - if (al.size() == 0) { - ArrayList from = getProducedBy (clsConsumed[i]); - if (from == null) { - continue; - } - boolean noUse = true; - for (int j = 0; j < from.size(); ++j) { - ArrayList libClasses = getLibraryClassList(from.get(j), classProduced); - for (int k = 0; k < libClasses.size(); ++k) { - if (getConsumedBy (libClasses.get(k)) != null && getConsumedBy (libClasses.get(k)).size() > 0) { - noUse = false; - } - } - if (noUse) { - removeInstance(from.get(j)); - } - noUse = true; - } - } - } - - } - - - private Vector getClassProduced(ModuleIdentification mi){ - - Vector clsProduced = SurfaceAreaQuery.getLibraryClasses("ALWAYS_PRODUCED", mi); - return clsProduced; -// String[] sClassProduced = new String[clsProduced.size()]; -// for (int i = 0; i < clsProduced.size(); ++i) { -// sClassProduced[i] = clsProduced.get(i).className; -// } -// return sClassProduced; - } - - private String[] getClassConsumed(ModuleIdentification mi){ - - Vector clsConsumed = SurfaceAreaQuery.getLibraryClasses("ALWAYS_CONSUMED", mi); - String[] sClassConsumed = new String[clsConsumed.size()]; - for (int i = 0; i < clsConsumed.size(); ++i) { - sClassConsumed[i] = clsConsumed.get(i).className; - } - return sClassConsumed; - } - - private void showClassToResolved(){ - Vector errorMsg = new Vector(); - libClassTableModel.setRowCount(0); - libInstanceTableModel.setRowCount(0); - if (classConsumed == null || classConsumed.size() == 0) { - return; - } - - Iterator li = classConsumed.keySet().iterator(); - while(li.hasNext()){ - LibraryClassDescriptor lcd = li.next(); - if (classConsumed.get(lcd) == null || classConsumed.get(lcd).size() == 0) { - continue; - } - - if (!isBoundedClass(lcd, errorMsg)){ - - String[] s = { lcd.className, lcd.supArchs, lcd.supModTypes }; - libClassTableModel.addRow(s); - } - } - - if (errorMsg.size() > 0) { - String errors = ""; - for (int i = 0; i < errorMsg.size(); ++i) { - errors += " " + errorMsg.get(i) + "\n"; - } - JOptionPane.showMessageDialog(FrameworkWizardUI.getInstance(), errors); - } - } - - private String getModuleArch () { - String arch = ""; - String[] moduleInfo = moduleKey.split(" "); - for (int i = 4; i < moduleInfo.length; ++i) { - arch += moduleInfo[i]; - arch += " "; - } - return arch.trim(); - } - private void addLibInstance (ModuleIdentification libMi) throws Exception{ - - // - // Add pcd information of selected instance to current moduleSA - // - ffc.addFrameworkModulesPcdBuildDefs(libMi, getModuleArch(), ffc.getModuleSA(moduleKey)); - - ffc.genLibraryInstance(libMi, moduleKey); - } - /** - * This method initializes this - * - * @return void - */ - private void initialize() { - this.setSize(877, 555); - this.setResizable(false); - this.centerWindow(); - this.setModal(true); - this.setTitle("Module Settings"); - this.setContentPane(getJContentPane()); - } - - /** - * This method initializes jContentPane - * - * @return javax.swing.JPanel - */ - private JPanel getJContentPane() { - if (jContentPane == null) { - jContentPane = new JPanel(); - jContentPane.setLayout(new BorderLayout()); - jContentPane.add(getJTabbedPane(), java.awt.BorderLayout.CENTER); - jContentPane.add(getJPanelContentPaneSouth(), java.awt.BorderLayout.SOUTH); - } - return jContentPane; - } - - /** - * This method initializes jTabbedPane - * - * @return javax.swing.JTabbedPane - */ - private JTabbedPane getJTabbedPane() { - if (jTabbedPane == null) { - jTabbedPane = new JTabbedPane(); - jTabbedPane.addTab("PCD Build Definition", null, getJPanelPcd(), null); - jTabbedPane.addTab("Libraries", null, getJPanelLibrary(), null); - jTabbedPane.addTab("FV Info", null, getJPanelModuleSaOpts(), null); - jTabbedPane.addTab("Custom Toolchain", null, getJPanelCustomToolChain(), null); - - } - return jTabbedPane; - } - - /** - * This method initializes jPanelPcd - * - * @return javax.swing.JPanel - */ - private JPanel getJPanelPcd() { - if (jPanelPcd == null) { - jLabelPcdData = new JLabel(); - jLabelPcdData.setText(" PCD Data"); - jPanelPcd = new JPanel(); - jPanelPcd.setLayout(new BorderLayout()); - jPanelPcd.add(jLabelPcdData, java.awt.BorderLayout.NORTH); - jPanelPcd.add(getJScrollPaneTablePcd(), java.awt.BorderLayout.CENTER); - jPanelPcd.add(getJPanelPcdSouth(), java.awt.BorderLayout.SOUTH); - jPanelPcd.addComponentListener(new java.awt.event.ComponentAdapter() { - public void componentShown(java.awt.event.ComponentEvent e) { - initPcdBuildDefinition(moduleKey); - } - }); - - } - return jPanelPcd; - } - - /** - * This method initializes jPanelLibrary - * - * @return javax.swing.JPanel - */ - private JPanel getJPanelLibrary() { - if (jPanelLibrary == null) { - jPanelLibrary = new JPanel(); - jPanelLibrary.setLayout(new BorderLayout()); - jPanelLibrary.add(getJSplitPane(), java.awt.BorderLayout.NORTH); - jPanelLibrary.add(getJPanelLibrarySouth(), java.awt.BorderLayout.SOUTH); - jPanelLibrary.add(getJPanelLibraryCenter(), java.awt.BorderLayout.CENTER); - jPanelLibrary.addComponentListener(new java.awt.event.ComponentAdapter() { - public void componentShown(java.awt.event.ComponentEvent e) { - initLibraries(moduleKey); - } - }); - } - return jPanelLibrary; - } - - /** - * This method initializes jScrollPaneTablePcd - * - * @return javax.swing.JScrollPane - */ - private JScrollPane getJScrollPaneTablePcd() { - if (jScrollPaneTablePcd == null) { - jScrollPaneTablePcd = new JScrollPane(); - jScrollPaneTablePcd.setViewportView(getJTablePcd()); - } - return jScrollPaneTablePcd; - } - - /** - * This method initializes jTable - * - * @return javax.swing.JTable - */ - private JTable getJTablePcd() { - if (jTablePcd == null) { - model = new IDefaultTableModel(); - jTablePcd = new JTable(model); - jTablePcd.setRowHeight(20); - jTablePcd.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS); - model.addColumn("CName"); - model.addColumn("TokenSpaceGUID"); - model.addColumn("ItemType"); - model.addColumn("Token"); - model.addColumn("MaxDatumSize"); - model.addColumn("DataType"); - model.addColumn("DefaultValue"); - - jTablePcd.getColumnModel().getColumn(0).setMinWidth(250); - - TableColumn tokenColumn = jTablePcd.getColumnModel().getColumn(3); - jTablePcd.removeColumn(tokenColumn); - - jTablePcd.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - jTablePcd.getSelectionModel().addListSelectionListener(new ListSelectionListener(){ - public void valueChanged(ListSelectionEvent e) { - - if (e.getValueIsAdjusting()){ - return; - } - ListSelectionModel lsm = (ListSelectionModel)e.getSource(); - if (lsm.isSelectionEmpty()) { - return; - } - else{ - int selectedRow = lsm.getMinSelectionIndex(); - String cName = model.getValueAt(selectedRow, 0)+""; - String tsGuid = model.getValueAt(selectedRow, 1)+""; - String itemType = model.getValueAt(selectedRow, 2)+""; - // - // array for pcd related information: helpText, itemType, moduleType. - // - String[] pcdInfo = {"", "", ""}; - Vector validPcdTypes = new Vector(); - getPcdInfo(moduleKey, cName, tsGuid, pcdInfo, validPcdTypes); - jTextAreaPcdHelp.setText(pcdInfo[0]); - initComboBox(pcdInfo[1], pcdInfo[2], validPcdTypes); - jComboBoxItemType.setSelectedItem(itemType); - jTextFieldMaxDatumSize.setEnabled(true); - jTextFieldMaxDatumSize.setVisible(true); - jTextFieldMaxDatumSize.setText(model.getValueAt(selectedRow, 4)+""); - jTextFieldPcdDefault.setEnabled(true); - jTextFieldPcdDefault.setText(model.getValueAt(selectedRow, 6)+""); - if ((model.getValueAt(selectedRow, 5) != null) && model.getValueAt(selectedRow, 5).equals("VOID*")) { - if (pcdInfo[1].equals("FEATURE_FLAG")) { - jTextFieldMaxDatumSize.setVisible(false); - } - else if (pcdInfo[1].equals("FIXED_AT_BUILD")) { - try{ - jTextFieldMaxDatumSize.setEnabled(false); - jTextFieldMaxDatumSize.setText(ffc.setMaxSizeForPointer(model.getValueAt(selectedRow, 6)+"")+""); - } - catch(Exception except){ - JOptionPane.showMessageDialog(FpdModuleSA.this, "Unacceptable PCD Value: " + except.getMessage()); - } - } - else{ - jTextFieldMaxDatumSize.setText(model.getValueAt(selectedRow, 4)+""); - } - } - else { - jTextFieldMaxDatumSize.setEnabled(false); - } - - if (!model.getValueAt(selectedRow, 2).equals("DYNAMIC") && !model.getValueAt(selectedRow, 2).equals("DYNAMIC_EX")) { - jTextFieldPcdDefault.setText(model.getValueAt(selectedRow, 6)+""); - if (model.getValueAt(selectedRow, 2).equals("FEATURE_FLAG")){ - jTextFieldPcdDefault.setVisible(false); - jComboBoxFeatureFlagValue.setVisible(true); - jComboBoxFeatureFlagValue.setSelectedItem(model.getValueAt(selectedRow, 6)+""); - } - else{ - jTextFieldPcdDefault.setVisible(true); - jTextFieldPcdDefault.setEnabled(true); - jComboBoxFeatureFlagValue.setVisible(false); - } - } - else{ - jTextFieldPcdDefault.setEnabled(false); - } - } - - - } - }); - - } - return jTablePcd; - } - - private void initComboBox(String originalType, String mType, Vector validPcdTypes) { - jComboBoxItemType.removeAllItems(); - - if (originalType.equals("DYNAMIC")) { - for (int i = 0; i < validPcdTypes.size(); ++i) { - jComboBoxItemType.addItem(validPcdTypes.get(i)); - } - } - else { - jComboBoxItemType.addItem(originalType); - } - } - - /** - * @param cName - * @param tsGuid - * @param sa sa[0]: HelpText; sa[1]: itemType in Msa; sa[2]: isBinary; - */ - private void getPcdInfo(String moduleKey, String cName, String tsGuid, String[] sa, Vector validPcdTypes) { - String[][] saa = new String[ffc.getLibraryInstancesCount(moduleKey)][5]; - ffc.getLibraryInstances(moduleKey, saa); - - try{ - if (ffc.getPcdBuildDataInfo(WorkspaceProfile.getModuleId(moduleKey), cName, tsGuid, sa, validPcdTypes)) { - return; - } - for (int j = 0; j < saa.length; ++j) { - if (ffc.getPcdBuildDataInfo(WorkspaceProfile.getModuleId(saa[j][1] + " " + saa[j][2] + " " + saa[j][3] + " " + saa[j][4]), - cName, tsGuid, sa, validPcdTypes)) { - return; - } - } - } - catch(Exception e) { - JOptionPane.showMessageDialog(this, "Get PCD details fail: " + e.getMessage()); - } - } - - /** - * This method initializes jPanelPcdSouth - * - * @return javax.swing.JPanel - */ - private JPanel getJPanelPcdSouth() { - if (jPanelPcdSouth == null) { - jLabelPcdHelp = new JLabel(); - jLabelPcdHelp.setText("PCD Description"); - jPanelPcdSouth = new JPanel(); - jPanelPcdSouth.setPreferredSize(new java.awt.Dimension(607,200)); - jPanelPcdSouth.add(jLabelPcdHelp, null); - jPanelPcdSouth.add(getJScrollPanePcdHelp(), null); - jPanelPcdSouth.add(getJPanelPcdFields(), null); - } - return jPanelPcdSouth; - } - - /** - * This method initializes jScrollPanePcdHelp - * - * @return javax.swing.JScrollPane - */ - private JScrollPane getJScrollPanePcdHelp() { - if (jScrollPanePcdHelp == null) { - jScrollPanePcdHelp = new JScrollPane(); - jScrollPanePcdHelp.setPreferredSize(new java.awt.Dimension(500,100)); - jScrollPanePcdHelp.setViewportView(getJTextAreaPcdHelp()); - } - return jScrollPanePcdHelp; - } - - /** - * This method initializes jTextAreaPcdHelp - * - * @return javax.swing.JTextArea - */ - private JTextArea getJTextAreaPcdHelp() { - if (jTextAreaPcdHelp == null) { - jTextAreaPcdHelp = new JTextArea(); - jTextAreaPcdHelp.setEditable(false); - } - return jTextAreaPcdHelp; - } - - /** - * This method initializes jPanelContentPaneSouth - * - * @return javax.swing.JPanel - */ - private JPanel getJPanelContentPaneSouth() { - if (jPanelContentPaneSouth == null) { - FlowLayout flowLayout = new FlowLayout(); - flowLayout.setAlignment(java.awt.FlowLayout.RIGHT); - jPanelContentPaneSouth = new JPanel(); - jPanelContentPaneSouth.setLayout(flowLayout); - jPanelContentPaneSouth.add(getJButtonOk(), null); - jPanelContentPaneSouth.add(getJButtonCancel(), null); - } - return jPanelContentPaneSouth; - } - - /** - * This method initializes jSplitPane - * - * @return javax.swing.JSplitPane - */ - private JSplitPane getJSplitPane() { - if (jSplitPane == null) { - jSplitPane = new JSplitPane(); - jSplitPane.setDividerLocation(200); - jSplitPane.setLeftComponent(getJPanelLibraryLeft()); - jSplitPane.setRightComponent(getJPanelLibraryRight()); - jSplitPane.setPreferredSize(new java.awt.Dimension(202,200)); - } - return jSplitPane; - } - - /** - * This method initializes jPanelLibraryLeft - * - * @return javax.swing.JPanel - */ - private JPanel getJPanelLibraryLeft() { - if (jPanelLibraryLeft == null) { - jLabelLibClass = new JLabel(); - jLabelLibClass.setText("Library Classes Uninstantiated"); - jPanelLibraryLeft = new JPanel(); - jPanelLibraryLeft.add(jLabelLibClass, null); - jPanelLibraryLeft.add(getJScrollPaneLibClass(), null); - } - return jPanelLibraryLeft; - } - - /** - * This method initializes jPanelLibraryRight - * - * @return javax.swing.JPanel - */ - private JPanel getJPanelLibraryRight() { - if (jPanelLibraryRight == null) { - jLabelQualifiedInstance = new JLabel(); - jLabelQualifiedInstance.setText("Instances Available"); - jPanelLibraryRight = new JPanel(); - jPanelLibraryRight.add(jLabelQualifiedInstance, null); - jPanelLibraryRight.add(getJScrollPaneQualifiedInstance(), null); - } - return jPanelLibraryRight; - } - - /** - * This method initializes jScrollPaneSelectedInstances - * - * @return javax.swing.JScrollPane - */ - private JScrollPane getJScrollPaneSelectedInstances() { - if (jScrollPaneSelectedInstances == null) { - jScrollPaneSelectedInstances = new JScrollPane(); - jScrollPaneSelectedInstances.setPreferredSize(new java.awt.Dimension(600,150)); - jScrollPaneSelectedInstances.setViewportView(getJTableSelectedInstances()); - } - return jScrollPaneSelectedInstances; - } - - /** - * This method initializes jTableSelectedInstances - * - * @return javax.swing.JTable - */ - private JTable getJTableSelectedInstances() { - if (jTableSelectedInstances == null) { - selectedInstancesTableModel = new IDefaultTableModel(); - selectedInstancesTableModel.addColumn("Name"); - selectedInstancesTableModel.addColumn("ModuleGUID"); - selectedInstancesTableModel.addColumn("ModuleVersion"); - selectedInstancesTableModel.addColumn("PackageGUID"); - selectedInstancesTableModel.addColumn("PackageVersion"); - jTableSelectedInstances = new JTable(selectedInstancesTableModel); - jTableSelectedInstances.setRowHeight(20); - - jTableSelectedInstances.getColumnModel().getColumn(0).setMinWidth(250); - - jTableSelectedInstances.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS); - jTableSelectedInstances.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - - } - return jTableSelectedInstances; - } - - /** - * This method initializes jScrollPaneLibClass - * - * @return javax.swing.JScrollPane - */ - private JScrollPane getJScrollPaneLibClass() { - if (jScrollPaneLibClass == null) { - jScrollPaneLibClass = new JScrollPane(); - jScrollPaneLibClass.setPreferredSize(new java.awt.Dimension(200,170)); - jScrollPaneLibClass.setViewportView(getJTableLibClass()); - } - return jScrollPaneLibClass; - } - - /** - * This method initializes jTableLibClass - * - * @return javax.swing.JTable - */ - private JTable getJTableLibClass() { - if (jTableLibClass == null) { - libClassTableModel = new IDefaultTableModel(); - libClassTableModel.addColumn("LibraryClass"); - libClassTableModel.addColumn("Arch"); - libClassTableModel.addColumn("ModType"); - jTableLibClass = new JTable(libClassTableModel); - jTableLibClass.setRowHeight(20); - jTableLibClass.setShowGrid(false); - jTableLibClass.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - - TableColumn column = jTableLibClass.getColumnModel().getColumn(1); - jTableLibClass.getColumnModel().removeColumn(column); - column = jTableLibClass.getColumnModel().getColumn(1); - jTableLibClass.getColumnModel().removeColumn(column); - - jTableLibClass.getSelectionModel().addListSelectionListener(new ListSelectionListener(){ - public void valueChanged(ListSelectionEvent e) { - if (e.getValueIsAdjusting()){ - return; - } - ListSelectionModel lsm = (ListSelectionModel)e.getSource(); - if (lsm.isSelectionEmpty()) { - return; - } - else{ - int selectedRow2 = lsm.getMinSelectionIndex(); - if (selectedRow2 < 0) { - return; - } - // - // display potential lib instances according to class selection - // - libInstanceTableModel.setRowCount(0); - String cls = libClassTableModel.getValueAt(selectedRow2, 0).toString(); - String arch = libClassTableModel.getValueAt(selectedRow2, 1).toString(); - String modType = libClassTableModel.getValueAt(selectedRow2, 2).toString(); - LibraryClassDescriptor lcd = new LibraryClassDescriptor(cls, arch, modType); - ArrayList al = classInstanceMap.get(lcd); - if (al == null) { - al = getInstancesForClass(lcd, null); - if (al.size() != 0) { - classInstanceMap.put(lcd, al); - } - - } - ListIterator li = al.listIterator(); - while(li.hasNext()) { - String instance = li.next(); - String[] s = {"", "", "", "", ""}; - if (WorkspaceProfile.getModuleId(instance) != null) { - s[0] = WorkspaceProfile.getModuleId(instance).getName(); - } - - String[] instancePart = instance.split(" "); - for (int i = 0; i < instancePart.length; ++i){ - s[i+1] = instancePart[i]; - } - libInstanceTableModel.addRow(s); - } - - } - } - }); - } - return jTableLibClass; - } - - /** - * This method initializes jScrollPaneQualifiedInstance - * - * @return javax.swing.JScrollPane - */ - private JScrollPane getJScrollPaneQualifiedInstance() { - if (jScrollPaneQualifiedInstance == null) { - jScrollPaneQualifiedInstance = new JScrollPane(); - jScrollPaneQualifiedInstance.setPreferredSize(new java.awt.Dimension(600,170)); - jScrollPaneQualifiedInstance.setViewportView(getJTableLibInstances()); - } - return jScrollPaneQualifiedInstance; - } - - /** - * This method initializes jTableLibInstances - * - * @return javax.swing.JTable - */ - private JTable getJTableLibInstances() { - if (jTableLibInstances == null) { - libInstanceTableModel = new IDefaultTableModel(); - libInstanceTableModel.addColumn("Name"); - libInstanceTableModel.addColumn("ModuleGUID"); - libInstanceTableModel.addColumn("ModuleVersion"); - libInstanceTableModel.addColumn("PackageGUID"); - libInstanceTableModel.addColumn("PackageVersion"); - jTableLibInstances = new JTable(libInstanceTableModel); - jTableLibInstances.setRowHeight(20); - - jTableLibInstances.getColumnModel().getColumn(0).setMinWidth(250); - - jTableLibInstances.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS); - jTableLibInstances.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - - } - return jTableLibInstances; - } - - /** - * This method initializes jPanelLibrarySouth - * - * @return javax.swing.JPanel - */ - private JPanel getJPanelLibrarySouth() { - if (jPanelLibrarySouth == null) { - jPanelLibrarySouth = new JPanel(); - } - return jPanelLibrarySouth; - } - - /** - * This method initializes jPanelLibraryCenter - * - * @return javax.swing.JPanel - */ - private JPanel getJPanelLibraryCenter() { - if (jPanelLibraryCenter == null) { - jLabelInstanceHelp = new JLabel(); - jLabelInstanceHelp.setText("Instance Description"); - jLabelSelectedInstances = new JLabel(); - jLabelSelectedInstances.setText("Selected Instances"); - jPanelLibraryCenter = new JPanel(); - jPanelLibraryCenter.setLayout(new BorderLayout()); - - jPanelLibraryCenter.add(getJPanelLibraryCenterC(), java.awt.BorderLayout.CENTER); - jPanelLibraryCenter.add(getJPanelLibraryCenterN(), java.awt.BorderLayout.NORTH); - - } - return jPanelLibraryCenter; - } - - /** - * This method initializes jScrollPaneInstanceHelp - * - * @return javax.swing.JScrollPane - */ - private JScrollPane getJScrollPaneInstanceHelp() { - if (jScrollPaneInstanceHelp == null) { - jScrollPaneInstanceHelp = new JScrollPane(); - jScrollPaneInstanceHelp.setPreferredSize(new java.awt.Dimension(400,50)); - jScrollPaneInstanceHelp.setViewportView(getJTextAreaInstanceHelp()); - } - return jScrollPaneInstanceHelp; - } - - /** - * This method initializes jTextAreaInstanceHelp - * - * @return javax.swing.JTextArea - */ - private JTextArea getJTextAreaInstanceHelp() { - if (jTextAreaInstanceHelp == null) { - jTextAreaInstanceHelp = new JTextArea(); - jTextAreaInstanceHelp.setEditable(false); - } - return jTextAreaInstanceHelp; - } - - /** - * This method initializes jButtonAdd - * - * @return javax.swing.JButton - */ - private JButton getJButtonAdd() { - if (jButtonAdd == null) { - jButtonAdd = new JButton(); - jButtonAdd.setPreferredSize(new java.awt.Dimension(80,20)); - jButtonAdd.setText("Add"); - jButtonAdd.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent e) { - int row = jTableLibInstances.getSelectedRow(); - if (row < 0) { - return; - } - - String libInstanceKey = libInstanceTableModel.getValueAt(row, 1) + " " + - libInstanceTableModel.getValueAt(row, 2) + " " + - libInstanceTableModel.getValueAt(row, 3) + " " + - libInstanceTableModel.getValueAt(row, 4); - ModuleIdentification libMi = WorkspaceProfile.getModuleId(libInstanceKey); - try { - addLibInstance (libMi); - } - catch (Exception exception) { - JOptionPane.showMessageDialog(FpdModuleSA.this, "Adding Instance " + libMi.getName() + " : \n"+ exception.getMessage()); - return; - } - docConsole.setSaved(false); - Object[] s = {libInstanceTableModel.getValueAt(row, 0), libInstanceTableModel.getValueAt(row, 1), - libInstanceTableModel.getValueAt(row, 2), libInstanceTableModel.getValueAt(row, 3), - libInstanceTableModel.getValueAt(row, 4)}; - selectedInstancesTableModel.addRow(s); - - Vector vLcd = addConsumedClassFromModule (libInstanceKey); - addProducedClassFromModule (libInstanceKey); - - Vector errorMsg = new Vector(); - Vector newInstances = new Vector(); - Stack lcdStack = new Stack(); - for (int i = 0; i < vLcd.size(); ++i) { - LibraryClassDescriptor lcd = vLcd.get(i); - if (!lcdStack.contains(lcd)) { - lcdStack.push(lcd); - } - } - try { - resolveLibraryInstances(lcdStack, true, errorMsg, newInstances); - } - catch (Exception exp) { - JOptionPane.showMessageDialog(FpdModuleSA.this, exp.getMessage()); - } - - showClassToResolved(); - - if (errorMsg.size() > 0) { - String errors = ""; - for (int i = 0; i < errorMsg.size(); ++i) { - errors += " " + errorMsg.get(i) + "\n"; - } - JOptionPane.showMessageDialog(FpdModuleSA.this, errors); - } - } - }); - } - return jButtonAdd; - } - - /** - * This method initializes jButton1 - * - * @return javax.swing.JButton - */ - private JButton getJButtonDeleteInstance() { - if (jButtonDeleteInstance == null) { - jButtonDeleteInstance = new JButton(); - jButtonDeleteInstance.setPreferredSize(new java.awt.Dimension(80,20)); - jButtonDeleteInstance.setText("Delete"); - jButtonDeleteInstance.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent e) { - int row = jTableSelectedInstances.getSelectedRow(); - if (row < 0) { - return; - } - docConsole.setSaved(false); - String instanceKey = selectedInstancesTableModel.getValueAt(row, 1) + " " - + selectedInstancesTableModel.getValueAt(row, 2) + " " - + selectedInstancesTableModel.getValueAt(row, 3) + " " - + selectedInstancesTableModel.getValueAt(row, 4); - removeInstance(instanceKey); - - selectedInstancesTableModel.setRowCount(0); - int instanceCount = ffc.getLibraryInstancesCount(moduleKey); - if (instanceCount != 0) { - String[][] saa = new String[instanceCount][5]; - ffc.getLibraryInstances(moduleKey, saa); - for (int i = 0; i < saa.length; ++i) { - String libInstanceKey = saa[i][1] + " " + saa[i][2] + " " + saa[i][3] + " " + saa[i][4]; - ModuleIdentification mi = WorkspaceProfile.getModuleId(libInstanceKey); - if (mi != null) { - // - // ToDo: verify this instance first. - // - saa[i][0] = mi.getName(); - saa[i][2] = mi.getVersion(); - saa[i][4] = mi.getPackageId().getVersion(); - selectedInstancesTableModel.addRow(saa[i]); - } - } - } - showClassToResolved(); - } - }); - } - return jButtonDeleteInstance; - } - - /** - * This method initializes jButton2 - * - * @return javax.swing.JButton - */ - private JButton getJButtonOk() { - if (jButtonOk == null) { - jButtonOk = new JButton(); - jButtonOk.setPreferredSize(new java.awt.Dimension(80,20)); - jButtonOk.setText("Close"); - jButtonOk.addActionListener(this); - } - return jButtonOk; - } - - /** - * This method initializes jButton3 - * - * @return javax.swing.JButton - */ - private JButton getJButtonCancel() { - if (jButtonCancel == null) { - jButtonCancel = new JButton(); - jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20)); - jButtonCancel.setText("Cancel"); - jButtonCancel.setVisible(false); - } - return jButtonCancel; - } - public void actionPerformed(ActionEvent arg0) { - - if (arg0.getSource() == jButtonOk) { - if (jTableModuleSaOptions.isEditing()) { - jTableModuleSaOptions.getCellEditor().stopCellEditing(); - } - this.setVisible(false); - } - } - /** - * This method initializes jPanelModuleSaOpts - * - * @return javax.swing.JPanel - */ - private JPanel getJPanelModuleSaOpts() { - if (jPanelModuleSaOpts == null) { - FlowLayout flowLayout4 = new FlowLayout(); - flowLayout4.setAlignment(java.awt.FlowLayout.LEFT); - jLabelFfsFormatKey = new JLabel(); - jLabelFfsFormatKey.setText("FFS Format Key"); - jLabelFfsFormatKey.setPreferredSize(new java.awt.Dimension(90,16)); - jLabelFfsFileGuid = new JLabel(); - jLabelFfsFileGuid.setText("FFS File GUID"); - jLabelFfsFileGuid.setPreferredSize(new java.awt.Dimension(90,16)); - jLabelFfsFileGuid.setVisible(false); - jLabelFvBinding = new JLabel(); - jLabelFvBinding.setText("FV Binding"); - jLabelFvBinding.setPreferredSize(new java.awt.Dimension(90,16)); - jPanelModuleSaOpts = new JPanel(); - jPanelModuleSaOpts.setLayout(flowLayout4); - jPanelModuleSaOpts.add(jLabelFvBinding, null); - jPanelModuleSaOpts.add(getJTextFieldFvBinding(), null); - jPanelModuleSaOpts.add(jLabelFfsFileGuid, null); - jPanelModuleSaOpts.add(getJTextFieldFileGuid(), null); - jPanelModuleSaOpts.add(jLabelFfsFormatKey, null); - jPanelModuleSaOpts.add(getJTextFieldFfsKey(), null); - jPanelModuleSaOpts.addComponentListener(new java.awt.event.ComponentAdapter() { - public void componentShown(java.awt.event.ComponentEvent e) { - initFvInfo(moduleKey); - } - }); - } - return jPanelModuleSaOpts; - } - - private Vector getVectorFromString (String s) { - if (s == null || s.equals("null")) { - s = ""; - } - String[] sa1 = s.split(" "); - Vector v = new Vector(); - for (int i = 0; i < sa1.length; ++i) { - v.add(sa1[i]); - } - return v; - } - - /** - * This method initializes jTextField - * - * @return javax.swing.JTextField - */ - private JTextField getJTextFieldFvBinding() { - if (jTextFieldFvBinding == null) { - jTextFieldFvBinding = new JTextField(); - jTextFieldFvBinding.setPreferredSize(new java.awt.Dimension(400,20)); - jTextFieldFvBinding.setEditable(true); - jTextFieldFvBinding.addFocusListener(new java.awt.event.FocusAdapter() { - public void focusLost(java.awt.event.FocusEvent e) { - String originalFvBinding = ffc.getFvBinding(moduleKey); - String newFvBinding = jTextFieldFvBinding.getText(); - if (newFvBinding.equals(originalFvBinding)) { - return; - } - if (newFvBinding.length() == 0 && originalFvBinding == null) { - return; - } - - Vector oldFvList = getVectorFromString (originalFvBinding); - Vector newFvList = getVectorFromString (newFvBinding); - String moduleInfo[] = moduleKey.split(" "); - ffc.setFvBinding(moduleKey, newFvBinding); - // - // remove module from Fvs that not in newFvList now. - // - oldFvList.removeAll(newFvList); - for (int j = 0; j < oldFvList.size(); ++j) { - ffc.removeModuleInBuildOptionsUserExtensions(oldFvList.get(j), "IMAGES", "1", moduleInfo[0], moduleInfo[1], moduleInfo[2], moduleInfo[3], moduleInfo[4]); - } - // - // add module to Fvs that were not in oldFvList. - // - oldFvList = getVectorFromString (originalFvBinding); - newFvList.removeAll(oldFvList); - for (int i = 0; i < newFvList.size(); ++i) { - ffc.addModuleIntoBuildOptionsUserExtensions(newFvList.get(i), "IMAGES", "1", moduleInfo[0], moduleInfo[1], moduleInfo[2], moduleInfo[3], moduleInfo[4]); - } - docConsole.setSaved(false); - } - }); - - } - return jTextFieldFvBinding; - } - /** - * This method initializes jTextField1 - * - * @return javax.swing.JTextField - */ - private JTextField getJTextFieldFileGuid() { - if (jTextFieldFileGuid == null) { - jTextFieldFileGuid = new JTextField(); - jTextFieldFileGuid.setPreferredSize(new java.awt.Dimension(300,20)); - jTextFieldFileGuid.setVisible(false); - jTextFieldFileGuid.addFocusListener(new java.awt.event.FocusAdapter() { - public void focusLost(java.awt.event.FocusEvent e) { - String originalFileGuid = ffc.getFfsFileNameGuid(moduleKey); - String newFileGuid = jTextFieldFileGuid.getText(); - if (newFileGuid.equals(originalFileGuid)) { - return; - } - if (newFileGuid.length() == 0 && originalFileGuid == null) { - return; - } - if (newFileGuid.length() > 0) { - if (!DataValidation.isGuid(newFileGuid)) { - JOptionPane.showMessageDialog(FpdModuleSA.this, "FFS File Guid is NOT GUID Type."); - return; - } - } - - docConsole.setSaved(false); - if (newFileGuid.length() == 0) { - newFileGuid = null; - } - ffc.setFfsFileNameGuid(moduleKey, newFileGuid); - } - }); - - } - return jTextFieldFileGuid; - } - /** - * This method initializes jTextFieldFfsKey - * - * @return javax.swing.JTextField - */ - private JTextField getJTextFieldFfsKey() { - if (jTextFieldFfsKey == null) { - jTextFieldFfsKey = new JTextField(); - jTextFieldFfsKey.setPreferredSize(new java.awt.Dimension(250,20)); - jTextFieldFfsKey.addFocusListener(new java.awt.event.FocusAdapter() { - public void focusLost(java.awt.event.FocusEvent e) { - String originalFfsKey = ffc.getFfsFormatKey(moduleKey); - String newFfsKey = jTextFieldFfsKey.getText(); - if (newFfsKey.equals(originalFfsKey)) { - return; - } - if (newFfsKey.length() == 0 && originalFfsKey == null) { - return; - } - docConsole.setSaved(false); - ffc.setFfsFormatKey(moduleKey, newFfsKey); - } - }); - - } - return jTextFieldFfsKey; - } - /** - * This method initializes jScrollPaneModuleSaOptions - * - * @return javax.swing.JScrollPane - */ - private JScrollPane getJScrollPaneModuleSaOptions() { - if (jScrollPaneModuleSaOptions == null) { - jScrollPaneModuleSaOptions = new JScrollPane(); - jScrollPaneModuleSaOptions.setPreferredSize(new java.awt.Dimension(600,350)); - jScrollPaneModuleSaOptions.setViewportView(getJTableModuleSaOptions()); - } - return jScrollPaneModuleSaOptions; - } - /** - * This method initializes jTableModuleSaOptions - * - * @return javax.swing.JTable - */ - private JTable getJTableModuleSaOptions() { - if (jTableModuleSaOptions == null) { - optionsTableModel = new DefaultTableModel(); - optionsTableModel.addColumn("BuildTargets"); - optionsTableModel.addColumn("ToolChainFamily"); - optionsTableModel.addColumn("TagName"); - optionsTableModel.addColumn("ToolCode"); - optionsTableModel.addColumn("SupportedArchs"); - optionsTableModel.addColumn("Contents"); - jTableModuleSaOptions = new JTable(optionsTableModel); - jTableModuleSaOptions.setRowHeight(20); - - jTableModuleSaOptions.getColumnModel().getColumn(0).setMinWidth(buildTargetWidth); - jTableModuleSaOptions.getColumnModel().getColumn(1).setMinWidth(toolChainFamilyWidth); - jTableModuleSaOptions.getColumnModel().getColumn(2).setMinWidth(tagNameWidth); - jTableModuleSaOptions.getColumnModel().getColumn(3).setMinWidth(toolCmdCodeWidth); - jTableModuleSaOptions.getColumnModel().getColumn(4).setMinWidth(supportArchWidth); - jTableModuleSaOptions.getColumnModel().getColumn(5).setMinWidth(argWidth); -// 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"); - vArch.add("IPF"); - vArch.add("EBC"); - vArch.add("ARM"); - vArch.add("PPC"); - jTableModuleSaOptions.getColumnModel().getColumn(4).setCellEditor(new ListEditor(vArch, FrameworkWizardUI.getInstance())); - - jTableModuleSaOptions.getColumnModel().getColumn(5).setCellEditor(new LongTextEditor(FrameworkWizardUI.getInstance())); - - jTableModuleSaOptions.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - jTableModuleSaOptions.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF); - jTableModuleSaOptions.getModel().addTableModelListener(new TableModelListener() { - public void tableChanged(TableModelEvent arg0) { - // TODO Auto-generated method stub - int row = arg0.getFirstRow(); - TableModel m = (TableModel)arg0.getSource(); - - if (arg0.getType() == TableModelEvent.UPDATE){ - //ToDo Data Validition check. - String targets = m.getValueAt(row, 0) + ""; - Vector targetName = null; - if (targets.length() > 0) { - targetName = new Vector(); - String[] sArray = targets.split(" "); - for (int i = 0; i < sArray.length; ++i) { - targetName.add(sArray[i]); - } - } - - String toolChain = m.getValueAt(row, 1) + ""; - String tagName = m.getValueAt(row, 2) + ""; - String toolCode = m.getValueAt(row, 3) + ""; - String archs = m.getValueAt(row, 4) + ""; - Vector supArch = null; - if (archs.length() > 0) { - supArch = new Vector(); - String[] sArray1 = archs.split(" "); - for (int i = 0; i < sArray1.length; ++i) { - supArch.add(sArray1[i]); - } - } - - String contents = m.getValueAt(row, 5) + ""; - docConsole.setSaved(false); - ffc.updateModuleSAOptionsOpt(moduleKey, row, targetName, toolChain, tagName, toolCode, supArch, contents); - } - } - }); - } - return jTableModuleSaOptions; - } - /** - * This method initializes jButtonNew - * - * @return javax.swing.JButton - */ - private JButton getJButtonNew() { - if (jButtonNew == null) { - jButtonNew = new JButton(); - jButtonNew.setPreferredSize(new java.awt.Dimension(80,20)); - jButtonNew.setText("New"); - jButtonNew.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent e) { - String[] row = {"", "", "", "", "", ""}; - optionsTableModel.addRow(row); - Vector v = null; - Vector v1 = null; - docConsole.setSaved(false); - ffc.genModuleSAOptionsOpt(moduleKey, v, "", "", "", v1, ""); - } - }); - } - return jButtonNew; - } - /** - * This method initializes jButtonDelete - * - * @return javax.swing.JButton - */ - private JButton getJButtonDeleteOption() { - if (jButtonDeleteOption == null) { - jButtonDeleteOption = new JButton(); - jButtonDeleteOption.setPreferredSize(new java.awt.Dimension(80,20)); - jButtonDeleteOption.setText("Delete"); - jButtonDeleteOption.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent e) { - if (jTableModuleSaOptions.getSelectedRow() < 0) { - return; - } - docConsole.setSaved(false); - ffc.removeModuleSAOptionsOpt(moduleKey, jTableModuleSaOptions.getSelectedRow()); - optionsTableModel.removeRow(jTableModuleSaOptions.getSelectedRow()); - } - }); - } - return jButtonDeleteOption; - } - - /** - Start the window at the center of screen - - **/ - protected void centerWindow(int intWidth, int intHeight) { - Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); - this.setLocation((d.width - intWidth) / 2, (d.height - intHeight) / 2); - } - - /** - Start the window at the center of screen - - **/ - protected void centerWindow() { - centerWindow(this.getSize().width, this.getSize().height); - } -/** - * This method initializes jPanelPcdFields - * - * @return javax.swing.JPanel - */ -private JPanel getJPanelPcdFields() { - if (jPanelPcdFields == null) { - GridLayout gridLayout = new GridLayout(); - gridLayout.setRows(3); - gridLayout.setColumns(2); - jPanelPcdFields = new JPanel(); - jPanelPcdFields.setLayout(gridLayout); - jPanelPcdFields.setPreferredSize(new java.awt.Dimension(600,90)); - jPanelPcdFields.add(getJPanelPcdFieldsFirstRow(), null); - jPanelPcdFields.add(getJPanelPcdFieldsSecondRow(), null); - jPanelPcdFields.add(getJPanelPcdFieldsThirdRow(), null); - } - return jPanelPcdFields; -} -/** - * This method initializes jPanelPcdFieldsSecondRow - * - * @return javax.swing.JPanel - */ -private JPanel getJPanelPcdFieldsSecondRow() { - if (jPanelPcdFieldsSecondRow == null) { - FlowLayout flowLayout2 = new FlowLayout(); - flowLayout2.setAlignment(java.awt.FlowLayout.LEFT); - jLabelMaxDatumSize = new JLabel(); - jLabelMaxDatumSize.setText("Max Datum Size"); - jPanelPcdFieldsSecondRow = new JPanel(); - jPanelPcdFieldsSecondRow.setLayout(flowLayout2); - jPanelPcdFieldsSecondRow.add(jLabelMaxDatumSize, null); - jPanelPcdFieldsSecondRow.add(getJTextFieldMaxDatumSize(), null); - } - return jPanelPcdFieldsSecondRow; -} -/** - * This method initializes jPanelPcdFieldsThirdRow - * - * @return javax.swing.JPanel - */ -private JPanel getJPanelPcdFieldsThirdRow() { - if (jPanelPcdFieldsThirdRow == null) { - FlowLayout flowLayout3 = new FlowLayout(); - flowLayout3.setAlignment(java.awt.FlowLayout.LEFT); - jLabelPcdDefaultValue = new JLabel(); - jLabelPcdDefaultValue.setText("Default Value"); - jLabelPcdDefaultValue.setPreferredSize(new java.awt.Dimension(91,16)); - jPanelPcdFieldsThirdRow = new JPanel(); - jPanelPcdFieldsThirdRow.setLayout(flowLayout3); - jPanelPcdFieldsThirdRow.add(jLabelPcdDefaultValue, null); - jPanelPcdFieldsThirdRow.add(getJTextFieldPcdDefault(), null); - jPanelPcdFieldsThirdRow.add(getJComboBoxFeatureFlagValue(), null); - jPanelPcdFieldsThirdRow.add(getJButtonUpdatePcd(), null); - } - return jPanelPcdFieldsThirdRow; -} -/** - * This method initializes jPanelPcdFieldsFirstRow - * - * @return javax.swing.JPanel - */ -private JPanel getJPanelPcdFieldsFirstRow() { - if (jPanelPcdFieldsFirstRow == null) { - FlowLayout flowLayout1 = new FlowLayout(); - flowLayout1.setAlignment(java.awt.FlowLayout.LEFT); - jLabelItemType = new JLabel(); - jLabelItemType.setText("Item Type"); - jLabelItemType.setPreferredSize(new java.awt.Dimension(91,16)); - jPanelPcdFieldsFirstRow = new JPanel(); - jPanelPcdFieldsFirstRow.setLayout(flowLayout1); - jPanelPcdFieldsFirstRow.add(jLabelItemType, null); - jPanelPcdFieldsFirstRow.add(getJComboBoxItemType(), null); - } - return jPanelPcdFieldsFirstRow; -} -/** - * This method initializes jComboBoxItemType - * - * @return javax.swing.JComboBox - */ -private JComboBox getJComboBoxItemType() { - if (jComboBoxItemType == null) { - jComboBoxItemType = new JComboBox(); - jComboBoxItemType.setPreferredSize(new java.awt.Dimension(200,20)); - jComboBoxItemType.addItemListener(new java.awt.event.ItemListener() { - public void itemStateChanged(java.awt.event.ItemEvent e) { - - int row = jTablePcd.getSelectedRow(); - if (row < 0) { - return; - } - - if (jComboBoxItemType.getSelectedItem() != null && jComboBoxItemType.getSelectedItem().equals("FIXED_AT_BUILD")) { - jTextFieldPcdDefault.setEnabled(true); - } - else { - jTextFieldPcdDefault.setEnabled(false); - } - } - }); - } - return jComboBoxItemType; -} - -private void pcdDynamicToNonDynamic(String cName, String tsGuid) { - String[][] saa = new String[ffc.getDynamicPcdBuildDataCount()][5]; - ffc.getDynamicPcdBuildData(saa); - String maxSize = ""; - String value = ""; - for (int i = 0; i < saa.length; ++i) { - if (saa[i][0].equals(cName) && saa[i][2].equals(tsGuid)) { - maxSize = saa[i][3]; - value = ffc.getDynamicPcdBuildDataValue(i); - break; - } - } - - ArrayList al = ffc.getDynPcdMapValue(cName + " " + tsGuid); - for (int i = 0; i < al.size(); ++i) { - String mKey = moduleInfo (al.get(i)); - value = null; - String itemType = jComboBoxItemType.getSelectedItem()+""; - ffc.updatePcdData(mKey, cName, tsGuid, itemType, maxSize, value); - al.set(i, mKey + " " + itemType); - } - - ffc.removeDynamicPcdBuildData(cName, tsGuid); -} - -private void pcdNonDynamicToDynamic(String cName, String tsGuid) { - ArrayList al = ffc.getDynPcdMapValue(cName + " " + tsGuid); - for (int i = 0; i < al.size(); ++i) { - String mKey = moduleInfo (al.get(i)); - String itemType = jComboBoxItemType.getSelectedItem()+""; - ffc.updatePcdData(mKey, cName, tsGuid, itemType, jTextFieldMaxDatumSize.getText(), jTextFieldPcdDefault.isVisible() ? jTextFieldPcdDefault.getText() : jComboBoxFeatureFlagValue.getSelectedItem()+""); - al.set(i, mKey + " " + itemType); - } - try{ - ffc.addDynamicPcdBuildData(cName, model.getValueAt(jTablePcd.getSelectedRow(), 3), tsGuid, "DYNAMIC", model.getValueAt(jTablePcd.getSelectedRow(), 5)+"", jTextFieldPcdDefault.isVisible() ? jTextFieldPcdDefault.getText() : jComboBoxFeatureFlagValue.getSelectedItem()+""); - } - catch(Exception e){ - JOptionPane.showMessageDialog(FpdModuleSA.this, "PCD value format: " + e.getMessage()); - } -} - -private void changePcdTypeWithinSameCategory (String cName, String tsGuid) { - ArrayList al = ffc.getDynPcdMapValue(cName + " " + tsGuid); - for (int i = 0; i < al.size(); ++i) { - String mKey = moduleInfo (al.get(i)); - String itemType = jComboBoxItemType.getSelectedItem()+""; - ffc.updatePcdData(mKey, cName, tsGuid, itemType, null, null); - al.set(i, mKey + " " + itemType); - } -} - -private String moduleInfo (String pcdInfo) { - - return pcdInfo.substring(0, pcdInfo.lastIndexOf(" ")); -} - -/** - * This method initializes jTextFieldMaxDatumSize - * - * @return javax.swing.JTextField - */ -private JTextField getJTextFieldMaxDatumSize() { - if (jTextFieldMaxDatumSize == null) { - jTextFieldMaxDatumSize = new JTextField(); - jTextFieldMaxDatumSize.setPreferredSize(new java.awt.Dimension(200,20)); - } - return jTextFieldMaxDatumSize; -} -/** - * This method initializes jTextField4 - * - * @return javax.swing.JTextField - */ -private JTextField getJTextFieldPcdDefault() { - if (jTextFieldPcdDefault == null) { - jTextFieldPcdDefault = new JTextField(); - jTextFieldPcdDefault.setPreferredSize(new java.awt.Dimension(200,20)); - } - return jTextFieldPcdDefault; -} -/** - * This method initializes jButton6 - * - * @return javax.swing.JButton - */ -private JButton getJButtonUpdatePcd() { - if (jButtonUpdatePcd == null) { - jButtonUpdatePcd = new JButton(); - jButtonUpdatePcd.setPreferredSize(new java.awt.Dimension(150,20)); - jButtonUpdatePcd.setText("Update PCD Data"); - jButtonUpdatePcd.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent e) { - int row = jTablePcd.getSelectedRow(); - if (row < 0) { - return; - } - - String cName = model.getValueAt(row, 0)+""; - String tsGuid = model.getValueAt(row, 1)+""; - String oldItemType = model.getValueAt(row, 2)+""; - String dataType = model.getValueAt(row, 5)+""; - String newItemType = jComboBoxItemType.getSelectedItem()+""; - String newValue = jTextFieldPcdDefault.isVisible()? jTextFieldPcdDefault.getText():jComboBoxFeatureFlagValue.getSelectedItem()+""; - if (newValue.length() == 0){ - - if (dataType.equals("UINT8") || dataType.equals("UINT16") || dataType.equals("UINT32") || dataType.equals("UINT64")) { - newValue = "0"; - } - if (dataType.equals("BOOLEAN")){ - newValue = "FALSE"; - } - if (dataType.equals("VOID*")) { - newValue = "L\"\""; - } - } - - String[] pcdInfo = {"", "", ""}; - Vector validPcdTypes = new Vector(); - getPcdInfo (moduleKey, cName, tsGuid, pcdInfo, validPcdTypes); - if (pcdInfo[1].equals("FIXED_AT_BUILD") && model.getValueAt(row, 5).equals("VOID*")) { - try { - jTextFieldMaxDatumSize.setText(ffc.setMaxSizeForPointer(newValue)+""); - } - catch (Exception exp) { - JOptionPane.showMessageDialog(FpdModuleSA.this, "PCD Value MalFormed: " + exp.getMessage()); - return; - } - } - String newMaxDatumSize = jTextFieldMaxDatumSize.getText(); - - if (!newItemType.equals(oldItemType)) { - Vector moduleInfo = new Vector(); - try { - boolean changable = itemTypeCouldBeChanged (cName, tsGuid, newItemType, moduleInfo); - if (!changable) { - JOptionPane.showMessageDialog(FpdModuleSA.this, "Can NOT Change Pcd Type in: " + moduleInfo.get(0).getName() + " contained in package " + moduleInfo.get(0).getPackageId().getName()); - return; - } - } - catch (Exception exp) { - JOptionPane.showMessageDialog(FpdModuleSA.this, "Can NOT Change Pcd Type in: " + moduleInfo.get(0).getName() + " contained in package " + moduleInfo.get(0).getPackageId().getName() + " " + exp.getMessage()); - return; - } - - if ((oldItemType.equals("DYNAMIC") || oldItemType.equals("DYNAMIC_EX")) && !newItemType.equals("DYNAMIC") && !newItemType.equals("DYNAMIC_EX")) { - pcdDynamicToNonDynamic(cName, tsGuid); - } - if (!oldItemType.equals("DYNAMIC") && !oldItemType.equals("DYNAMIC_EX") && (newItemType.equals("DYNAMIC") || newItemType.equals("DYNAMIC_EX"))) { - pcdNonDynamicToDynamic(cName, tsGuid); - } - else { - changePcdTypeWithinSameCategory (cName, tsGuid); - } - model.setValueAt(newItemType, row, 2); - } - - ffc.updatePcdData(moduleKey, cName, tsGuid, model.getValueAt(row, 2)+"", newMaxDatumSize, newValue); - docConsole.setSaved(false); - model.setValueAt(newValue, row, 6); - model.setValueAt(newMaxDatumSize, row, 4); - - } - }); - } - return jButtonUpdatePcd; -} - -private boolean itemTypeCouldBeChanged (String cName, String tsGuid, String newItemType, Vector mi) throws Exception{ - ArrayList pcdConsumers = ffc.getDynPcdMapValue(cName + " " + tsGuid); - for (int i = 0; i < pcdConsumers.size(); ++i) { - String consumerInfo = moduleInfo (pcdConsumers.get(i)); - mi.removeAllElements(); - mi.add(WorkspaceProfile.getModuleId(consumerInfo)); - String[] sa = {"", "", ""}; - Vector validPcdTypes = new Vector(); - getPcdInfo (consumerInfo, cName, tsGuid, sa, validPcdTypes); - if (validPcdTypes.size() == 0) { - return false; - } - if (!sa[1].equals("DYNAMIC")) { - return false; - } - if (!validPcdTypes.contains(newItemType)) { - return false; - } - } - return true; -} - -/** - * This method initializes jComboBoxFeatureFlagValue - * - * @return javax.swing.JComboBox - */ -private JComboBox getJComboBoxFeatureFlagValue() { - if (jComboBoxFeatureFlagValue == null) { - jComboBoxFeatureFlagValue = new JComboBox(); - jComboBoxFeatureFlagValue.setPreferredSize(new java.awt.Dimension(100,20)); - jComboBoxFeatureFlagValue.setVisible(false); - jComboBoxFeatureFlagValue.addItem("TRUE"); - jComboBoxFeatureFlagValue.addItem("FALSE"); - } - return jComboBoxFeatureFlagValue; -} -/** - * This method initializes jPanelCustomToolChain - * - * @return javax.swing.JPanel - */ -private JPanel getJPanelCustomToolChain() { - if (jPanelCustomToolChain == null) { - jPanelCustomToolChain = new JPanel(); - jPanelCustomToolChain.setLayout(new BorderLayout()); - jPanelCustomToolChain.add(getJPanelToolchainS(), java.awt.BorderLayout.SOUTH); - jPanelCustomToolChain.add(getJScrollPaneModuleSaOptions(), java.awt.BorderLayout.CENTER); - jPanelCustomToolChain.addComponentListener(new java.awt.event.ComponentAdapter() { - public void componentShown(java.awt.event.ComponentEvent e) { - initToolChainOptions(moduleKey); - } - }); - } - return jPanelCustomToolChain; -} -/** - * This method initializes jPanelToolchainS - * - * @return javax.swing.JPanel - */ -private JPanel getJPanelToolchainS() { - if (jPanelToolchainS == null) { - jPanelToolchainS = new JPanel(); - jPanelToolchainS.add(getJButtonNew(), null); - jPanelToolchainS.add(getJButtonDeleteOption(), null); - } - return jPanelToolchainS; -} - -/** - * This method initializes jPanelLibraryCenterN - * - * @return javax.swing.JPanel - */ -private JPanel getJPanelLibraryCenterN() { - if (jPanelLibraryCenterN == null) { - FlowLayout flowLayout5 = new FlowLayout(); - flowLayout5.setAlignment(java.awt.FlowLayout.CENTER); - flowLayout5.setHgap(10); - jPanelLibraryCenterN = new JPanel(); - jPanelLibraryCenterN.setLayout(flowLayout5); - jPanelLibraryCenterN.add(jLabelInstanceHelp, null); - jPanelLibraryCenterN.add(getJScrollPaneInstanceHelp(), null); - jPanelLibraryCenterN.add(getJButtonAdd(), null); - jPanelLibraryCenterN.add(getJButtonDeleteInstance(), null); - } - return jPanelLibraryCenterN; -} -/** - * This method initializes jPanelLibraryCenterC - * - * @return javax.swing.JPanel - */ -private JPanel getJPanelLibraryCenterC() { - if (jPanelLibraryCenterC == null) { - jPanelLibraryCenterC = new JPanel(); - jPanelLibraryCenterC.add(jLabelSelectedInstances, null); - jPanelLibraryCenterC.add(getJScrollPaneSelectedInstances(), null); - } - return jPanelLibraryCenterC; -} - - -} // @jve:decl-index=0:visual-constraint="10,10" - -class MultipleInstanceException extends Exception { - - /** - * - */ - private static final long serialVersionUID = -9148463005930920297L; - private String className = null; - private String libInstance1 = null; - private String libInstance2 = null; - - MultipleInstanceException (String libClass, String instance1, String instance2) { - super(); - className = libClass; - libInstance1 = instance1; - libInstance2 = instance2; - } - - /* (non-Javadoc) - * @see java.lang.Throwable#getMessage() - */ - @Override - public String getMessage() { - // TODO Auto-generated method stub - return " Library Class " + className + "is Produced by Two Instances: " - + libInstance1 + " and " + libInstance2 + ". Platform Build will Fail."; - } - -} - -class ImproperInstanceException extends Exception { - - /** - * - */ - private static final long serialVersionUID = -5279700566993277033L; - private String className = null; - private String libInstance = null; - private String instanceSupArch = null; - private String instanceSupModType = null; - - ImproperInstanceException (String libClass, String instance1, String arch, String type) { - super(); - className = libClass; - libInstance = instance1; - instanceSupArch = arch; - instanceSupModType = type; - } - - /* (non-Javadoc) - * @see java.lang.Throwable#getMessage() - */ - @Override - public String getMessage() { - // TODO Auto-generated method stub - return " Library Class " + className + " Produced by Library Instance: " - + libInstance + "\nOnly Supports " + instanceSupArch + " and Module Type " + instanceSupModType + ".\n This instance should be removed.\n"; - } - -} - -class NoInstanceException extends Exception { - - /** - * - */ - private static final long serialVersionUID = 1987122786598970598L; - - private String className = null; - - NoInstanceException (String libClass) { - className = libClass; - } - - public String getMessage() { - return "No Applicable Instance for Library Class " + className - + ", Platform Build will Fail."; - } -}