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;h=5d26337411a6b7c22bcf4d3236e7249117ee81c2;hp=ac8841c7907ffa893a83895fbb0868f9ae93a033;hb=91621725935f62c2c50be3695f7fee4966f08ab0;hpb=92a4a910df99b2151e501b76f311575f2e1ebe9a 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 index ac8841c790..5d26337411 100644 --- 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 @@ -1282,6 +1282,19 @@ public class FpdModuleSA extends JDialog implements ActionListener { } 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 * @@ -1303,11 +1316,24 @@ public class FpdModuleSA extends JDialog implements ActionListener { return; } - ffc.setFvBinding(moduleKey, newFvBinding); + Vector oldFvList = getVectorFromString (originalFvBinding); + Vector newFvList = getVectorFromString (newFvBinding); String moduleInfo[] = moduleKey.split(" "); - String fvNames[] = newFvBinding.split(" "); - for (int i = 0; i < fvNames.length; ++i) { - ffc.addModuleIntoBuildOptionsUserExtensions(fvNames[i], moduleInfo[0], moduleInfo[1], moduleInfo[2], moduleInfo[3], moduleInfo[4]); + 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), 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), moduleInfo[0], moduleInfo[1], moduleInfo[2], moduleInfo[3], moduleInfo[4]); } docConsole.setSaved(false); }