/**\r
The class is used to define all used final variables\r
\r
-**/\r
+ **/\r
public class DataType {\r
\r
/**\r
public static void main(String[] args) {\r
\r
}\r
- \r
+\r
//\r
// Define all return types\r
//\r
public static final int RETURN_TYPE_OK = 1;\r
- \r
+\r
public static final int RETURN_TYPE_CANCEL = 2;\r
- \r
+\r
public static final int RETURN_TYPE_NEXT = 3;\r
- \r
+\r
public static final int RETURN_TYPE_BACK = 4;\r
- \r
+\r
public static final int RETURN_TYPE_MODULE_SURFACE_AREA = 11;\r
- \r
+\r
public static final int RETURN_TYPE_PACKAGE_SURFACE_AREA = 12;\r
- \r
+\r
public static final int RETURN_TYPE_PLATFORM_SURFACE_AREA = 13;\r
- \r
+\r
public static final int RETURN_TYPE_BUILD_XML = 14;\r
- \r
+\r
public static final int RETURN_TYPE_WORKSPACE = 15;\r
- \r
+\r
public static final int RETURN_TYPE_TEXT = 16;\r
- \r
- \r
+\r
//\r
// Define all used final variables\r
//\r
public static final String DOS_LINE_SEPARATOR = "\r\n";\r
\r
public static final String UNIX_LINE_SEPARATOR = "\n";\r
- \r
+\r
public static final String EMPTY_SELECT_ITEM = "----";\r
- \r
+\r
public static final String DOS_FILE_SEPARATOR = "\\";\r
- \r
+\r
public static final String UNIX_FILE_SEPARATOR = "/";\r
- \r
+\r
//\r
// Define xml files ext\r
//\r
public static final String COPY_OF = "Copy of ";\r
- \r
+\r
public static final String FILE_EXT_SEPARATOR = ".";\r
- \r
+\r
public static final String WORKSPACE = "Workspace";\r
- \r
+\r
public static final String MODULE_SURFACE_AREA = "Module Surface Area Description";\r
- \r
+\r
public static final String MODULE_SURFACE_AREA_EXT = "msa";\r
- \r
- public static final String MODULE_SURFACE_AREA_EXT_DESCRIPTION = MODULE_SURFACE_AREA + " (*." + MODULE_SURFACE_AREA_EXT + ")";\r
- \r
+\r
+ public static final String MODULE_SURFACE_AREA_EXT_DESCRIPTION = MODULE_SURFACE_AREA + " (*."\r
+ + MODULE_SURFACE_AREA_EXT + ")";\r
+\r
public static final String PACKAGE_SURFACE_AREA = "Package Surface Area Description";\r
- \r
+\r
public static final String PACKAGE_SURFACE_AREA_EXT = "spd";\r
- \r
- public static final String PACKAGE_SURFACE_AREA_EXT_DESCRIPTION = PACKAGE_SURFACE_AREA + " (*." + PACKAGE_SURFACE_AREA_EXT + ")";\r
- \r
+\r
+ public static final String PACKAGE_SURFACE_AREA_EXT_DESCRIPTION = PACKAGE_SURFACE_AREA + " (*."\r
+ + PACKAGE_SURFACE_AREA_EXT + ")";\r
+\r
public static final String PLATFORM_SURFACE_AREA = "Platform Surface Area Description";\r
- \r
+\r
public static final String PLATFORM_SURFACE_AREA_EXT = "fpd";\r
- \r
- public static final String PLATFORM_SURFACE_AREA_EXT_DESCRIPTION = PLATFORM_SURFACE_AREA + " (*." + PLATFORM_SURFACE_AREA_EXT + ")";\r
- \r
+\r
+ public static final String PLATFORM_SURFACE_AREA_EXT_DESCRIPTION = PLATFORM_SURFACE_AREA + " (*."\r
+ + PLATFORM_SURFACE_AREA_EXT + ")";\r
+\r
public static final String ANT_BUILD_FILE = "ANT Build File";\r
- \r
+\r
public static final String ANT_BUILD_FILE_EXT = "xml";\r
- \r
+\r
public static final String ANT_BUILD_FILE_EXT_DESCRIPTION = ANT_BUILD_FILE + " (*." + ANT_BUILD_FILE_EXT + ")";\r
- \r
+\r
public static final String TEXT_FILE = "Text File";\r
- \r
+\r
public static final String TEXT_FILE_EXT = "txt";\r
- \r
+\r
public static final String TEXT_FILE_EXT_DESCRIPTION = TEXT_FILE + " (*." + TEXT_FILE_EXT + ")";\r
- \r
+\r
//\r
// Define file separator for current OS\r
//\r
public static String FILE_SEPARATOR = System.getProperty("file.separator");\r
- \r
+\r
//\r
// Defien all used frame, container component's sizes\r
//\r
public static final int MAIN_FRAME_PREFERRED_SIZE_WIDTH = 800;\r
+\r
public static final int MAIN_FRAME_PREFERRED_SIZE_HEIGHT = 600;\r
+\r
public static final int MAIN_FRAME_MAX_SIZE_WIDTH = 1920;\r
+\r
public static final int MAIN_FRAME_MAX_SIZE_HEIGHT = 1200;\r
- \r
+\r
public static final int MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_WIDTH = 790;\r
+\r
public static final int MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_HEIGHT = 545;\r
- \r
- public static final int MAIN_FRAME_WIDTH_SPACING = MAIN_FRAME_PREFERRED_SIZE_WIDTH - MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_WIDTH;\r
- public static final int MAIN_FRAME_HEIGHT_SPACING = MAIN_FRAME_PREFERRED_SIZE_HEIGHT - MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_HEIGHT;\r
- \r
+\r
+ public static final int MAIN_FRAME_WIDTH_SPACING = MAIN_FRAME_PREFERRED_SIZE_WIDTH\r
+ - MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_WIDTH;\r
+\r
+ public static final int MAIN_FRAME_HEIGHT_SPACING = MAIN_FRAME_PREFERRED_SIZE_HEIGHT\r
+ - MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_HEIGHT;\r
+\r
public static final int MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH = 273;\r
+\r
public static final int MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT = 545;\r
- \r
+\r
public static final int MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH = 515;\r
+\r
public static final int MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT = 545;\r
+\r
public static final int MAIN_FRAME_EDITOR_PANEL_LOCATION_X = 260;\r
+\r
public static final int MAIN_FRAME_EDITOR_PANEL_LOCATION_Y = 1;\r
- \r
+\r
public static final int SPACE_TO_RIGHT_FOR_GENERATE_BUTTON = 10;\r
+\r
public static final int SPACE_TO_RIGHT_FOR_OK_BUTTON = 10;\r
+\r
public static final int SPACE_TO_RIGHT_FOR_ADD_BUTTON = 180;\r
+\r
public static final int SPACE_TO_RIGHT_FOR_REMOVE_BUTTON = 95;\r
+\r
public static final int SPACE_TO_RIGHT_FOR_UPDATE_BUTTON = 10;\r
- public static final int SPACE_TO_RIGHT_FOR_PROTOCOL_NOTIFY = 25;\r
\r
+ public static final int SPACE_TO_BOTTOM_FOR_ADD_BUTTON = 30;\r
+\r
+ public static final int SPACE_TO_BOTTOM_FOR_REMOVE_BUTTON = 30;\r
+\r
+ public static final int SPACE_TO_BOTTOM_FOR_UPDATE_BUTTON = 30;\r
+\r
+ public static final int SPACE_TO_RIGHT_FOR_PROTOCOL_NOTIFY = 25;\r
+\r
public static final int LEFT_WIDTH = 160;\r
+\r
public static final int LEFT_HEIGHT = 20;\r
- \r
+\r
public static final int RIGHT_WIDTH = 320;\r
+\r
public static final int RIGHT_HEIGHT = 20;\r
- \r
+\r
public static final int RIGHT_MULTIPLE_HEIGHT = 4 * RIGHT_HEIGHT;\r
- \r
+\r
public static final int BUTTON_GEN_WIDTH = 65;\r
+\r
public static final int BUTTON_GEN_HEIGHT = 20;\r
- \r
+\r
public static final int BUTTON_BROWSE_WIDTH = 65;\r
+\r
public static final int BUTTON_BROWSE_HEIGHT = 20;\r
- \r
+\r
public static final int BUTTON_ADD_WIDTH = 80;\r
+\r
public static final int BUTTON_ADD_HEIGHT = 20;\r
- \r
+\r
public static final int BUTTON_UPDATE_WIDTH = 80;\r
+\r
public static final int BUTTON_UPDATE_HEIGHT = 20;\r
- \r
+\r
public static final int BUTTON_REMOVE_WIDTH = 80;\r
+\r
public static final int BUTTON_REMOVE_HEIGHT = 20;\r
- \r
+\r
public static final int SCROLLBAR_WIDTH = 18;\r
+\r
public static final int SCROLLBAR_HEIGHT = 18;\r
- \r
+\r
//\r
// Common Help Text\r
// First defined here\r
// Will be replaced by resource file later\r
//\r
public static final String SUP_ARCH_LIST_HELP_TEXT = "Deselecting a checkbox will restrict this module for use with the selected architectures, based on the list of items that are checked. If all boxes are checked, then the module will support all current AND FUTURE architectures";\r
- \r
+\r
//\r
// Project name and version\r
//\r
public static final String PROJECT_NAME = "Framework Wizard";\r
- \r
+\r
public static final String PROJECT_VERSION = "1.0";\r
- \r
+\r
//\r
// Sort Type\r
//\r
public static final int SORT_TYPE_ASCENDING = 1;\r
- \r
+\r
public static final int SORT_TYPE_DESCENDING = 2;\r
- \r
+\r
//\r
// Module Type\r
//\r
public static final String MODULE_TYPE_LIBRARY = "Library";\r
- \r
+\r
public static final String MODULE_TYPE_MODULE = "Module";\r
}\r
//\r
// Static data\r
//\r
+ public final static String EXTERNS_PCD_IS_DRIVER = "Pcd Is Driver";\r
+ \r
public final static String EXTERNS_SPECIFICATION = "Specification";\r
\r
public final static String EXTERNS_MODULE_ENTRY_POINT = "ModuleEntryPoint";\r
\r
private void initExternTypes() {\r
vExternTypes.removeAllElements();\r
+ \r
+ vExternTypes.addElement(EnumerationData.EXTERNS_PCD_IS_DRIVER);\r
+\r
vExternTypes.addElement(EnumerationData.EXTERNS_SPECIFICATION);\r
\r
vExternTypes.addElement(EnumerationData.EXTERNS_MODULE_ENTRY_POINT);\r
--- /dev/null
+/** @file\r
+ \r
+ The file is used to provid 6 kinds of arch in one jpanel \r
+ \r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+ \r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ \r
+ **/\r
+\r
+package org.tianocore.frameworkwizard.common.ui;\r
+\r
+import java.util.Vector;\r
+\r
+import javax.swing.JPanel;\r
+import javax.swing.JCheckBox;\r
+\r
+public class ArchCheckBox extends JPanel {\r
+\r
+ ///\r
+ ///\r
+ ///\r
+ private static final long serialVersionUID = 4792669775676953990L;\r
+\r
+ private JCheckBox jCheckBoxIa32 = null;\r
+\r
+ private JCheckBox jCheckBoxX64 = null;\r
+\r
+ private JCheckBox jCheckBoxIpf = null;\r
+\r
+ private JCheckBox jCheckBoxEbc = null;\r
+\r
+ private JCheckBox jCheckBoxArm = null;\r
+\r
+ private JCheckBox jCheckBoxPpc = null;\r
+\r
+ /**\r
+ * This method initializes jCheckBoxIa32 \r
+ * \r
+ * @return javax.swing.JCheckBox \r
+ */\r
+ private JCheckBox getJCheckBoxIa32() {\r
+ if (jCheckBoxIa32 == null) {\r
+ jCheckBoxIa32 = new JCheckBox();\r
+ jCheckBoxIa32.setBounds(new java.awt.Rectangle(0, 0, 50, 20));\r
+ jCheckBoxIa32.setText("IA32");\r
+ }\r
+ return jCheckBoxIa32;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jCheckBoxX64 \r
+ * \r
+ * @return javax.swing.JCheckBox \r
+ */\r
+ private JCheckBox getJCheckBoxX64() {\r
+ if (jCheckBoxX64 == null) {\r
+ jCheckBoxX64 = new JCheckBox();\r
+ jCheckBoxX64.setBounds(new java.awt.Rectangle(50, 0, 50, 20));\r
+ jCheckBoxX64.setText("X64");\r
+ }\r
+ return jCheckBoxX64;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jCheckBoxIpf \r
+ * \r
+ * @return javax.swing.JCheckBox \r
+ */\r
+ private JCheckBox getJCheckBoxIpf() {\r
+ if (jCheckBoxIpf == null) {\r
+ jCheckBoxIpf = new JCheckBox();\r
+ jCheckBoxIpf.setBounds(new java.awt.Rectangle(100, 0, 50, 20));\r
+ jCheckBoxIpf.setText("IPF");\r
+ }\r
+ return jCheckBoxIpf;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jCheckBoxEbc \r
+ * \r
+ * @return javax.swing.JCheckBox \r
+ */\r
+ private JCheckBox getJCheckBoxEbc() {\r
+ if (jCheckBoxEbc == null) {\r
+ jCheckBoxEbc = new JCheckBox();\r
+ jCheckBoxEbc.setBounds(new java.awt.Rectangle(150, 0, 50, 20));\r
+ jCheckBoxEbc.setText("EBC");\r
+ }\r
+ return jCheckBoxEbc;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jCheckBoxArm \r
+ * \r
+ * @return javax.swing.JCheckBox \r
+ */\r
+ private JCheckBox getJCheckBoxArm() {\r
+ if (jCheckBoxArm == null) {\r
+ jCheckBoxArm = new JCheckBox();\r
+ jCheckBoxArm.setBounds(new java.awt.Rectangle(200, 0, 55, 20));\r
+ jCheckBoxArm.setText("ARM");\r
+ }\r
+ return jCheckBoxArm;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jCheckBoxPrc \r
+ * \r
+ * @return javax.swing.JCheckBox \r
+ */\r
+ private JCheckBox getJCheckBoxPpc() {\r
+ if (jCheckBoxPpc == null) {\r
+ jCheckBoxPpc = new JCheckBox();\r
+ jCheckBoxPpc.setBounds(new java.awt.Rectangle(255, 0, 50, 20));\r
+ jCheckBoxPpc.setText("PPC");\r
+ }\r
+ return jCheckBoxPpc;\r
+ }\r
+\r
+ /**\r
+ \r
+ @param args\r
+ \r
+ **/\r
+ public static void main(String[] args) {\r
+ // TODO Auto-generated method stub\r
+\r
+ }\r
+\r
+ /**\r
+ * This is the default constructor\r
+ */\r
+ public ArchCheckBox() {\r
+ super();\r
+ initialize();\r
+ }\r
+\r
+ /**\r
+ * This method initializes this\r
+ * \r
+ * @return void\r
+ */\r
+ private void initialize() {\r
+ this.setSize(320, 20);\r
+ this.setLayout(null);\r
+ this.add(getJCheckBoxIa32(), null);\r
+ this.add(getJCheckBoxX64(), null);\r
+ this.add(getJCheckBoxIpf(), null);\r
+ this.add(getJCheckBoxEbc(), null);\r
+ this.add(getJCheckBoxArm(), null);\r
+ this.add(getJCheckBoxPpc(), null);\r
+ }\r
+ \r
+ public Vector<String> getSelectedItemsVector() {\r
+ Vector<String> v = new Vector<String>();\r
+ if (this.jCheckBoxIa32.isSelected()) {\r
+ v.addElement(jCheckBoxIa32.getText());\r
+ }\r
+ if (this.jCheckBoxX64.isSelected()) {\r
+ v.addElement(jCheckBoxX64.getText());\r
+ }\r
+ if (this.jCheckBoxIpf.isSelected()) {\r
+ v.addElement(jCheckBoxIpf.getText());\r
+ }\r
+ if (this.jCheckBoxEbc.isSelected()) {\r
+ v.addElement(jCheckBoxEbc.getText());\r
+ }\r
+ if (this.jCheckBoxArm.isSelected()) {\r
+ v.addElement(jCheckBoxArm.getText());\r
+ }\r
+ if (this.jCheckBoxPpc.isSelected()) {\r
+ v.addElement(jCheckBoxPpc.getText());\r
+ }\r
+ return v;\r
+ }\r
+ \r
+ public String getSelectedItemsString() {\r
+ String s = "";\r
+ if (this.jCheckBoxIa32.isSelected()) {\r
+ s = s + jCheckBoxIa32.getText() + " ";\r
+ }\r
+ if (this.jCheckBoxX64.isSelected()) {\r
+ s = s + jCheckBoxX64.getText() + " ";\r
+ }\r
+ if (this.jCheckBoxIpf.isSelected()) {\r
+ s = s + jCheckBoxIpf.getText() + " ";\r
+ }\r
+ if (this.jCheckBoxEbc.isSelected()) {\r
+ s = s + jCheckBoxEbc.getText() + " ";\r
+ }\r
+ if (this.jCheckBoxArm.isSelected()) {\r
+ s = s + jCheckBoxArm.getText() + " ";\r
+ }\r
+ if (this.jCheckBoxPpc.isSelected()) {\r
+ s = s + jCheckBoxPpc.getText() + " ";\r
+ }\r
+ return s.trim();\r
+ }\r
+ \r
+ public void setAllItmesSelected(boolean isSelected) {\r
+ this.jCheckBoxIa32.setSelected(isSelected);\r
+ this.jCheckBoxX64.setSelected(isSelected);\r
+ this.jCheckBoxIpf.setSelected(isSelected);\r
+ this.jCheckBoxEbc.setSelected(isSelected);\r
+ this.jCheckBoxArm.setSelected(isSelected);\r
+ this.jCheckBoxPpc.setSelected(isSelected);\r
+ }\r
+ \r
+ public void setSelectedItems(Vector<String> v) {\r
+ setAllItmesSelected(false);\r
+ if (v != null) {\r
+ for (int index = 0; index < v.size(); index++) {\r
+ if (v.get(index).equals(this.jCheckBoxIa32.getText())) {\r
+ this.jCheckBoxIa32.setSelected(true);\r
+ continue;\r
+ }\r
+ if (v.get(index).equals(this.jCheckBoxIpf.getText())) {\r
+ this.jCheckBoxIpf.setSelected(true);\r
+ continue;\r
+ }\r
+ if (v.get(index).equals(this.jCheckBoxX64.getText())) {\r
+ this.jCheckBoxX64.setSelected(true);\r
+ continue;\r
+ }\r
+ if (v.get(index).equals(this.jCheckBoxEbc.getText())) {\r
+ this.jCheckBoxEbc.setSelected(true);\r
+ continue;\r
+ }\r
+ if (v.get(index).equals(this.jCheckBoxArm.getText())) {\r
+ this.jCheckBoxArm.setSelected(true);\r
+ continue;\r
+ }\r
+ if (v.get(index).equals(this.jCheckBoxPpc.getText())) {\r
+ this.jCheckBoxPpc.setSelected(true);\r
+ continue;\r
+ }\r
+ }\r
+ }\r
+ }\r
+}\r
vBootModes.addElement(arg0);\r
}\r
\r
- public void updateBootModes(BootModesIdentification arg0, int arg1) {\r
+ public void setBootModes(BootModesIdentification arg0, int arg1) {\r
vBootModes.setElementAt(arg0, arg1);\r
}\r
\r
public int size() {\r
return this.vBootModes.size();\r
}\r
-\r
+ \r
+ public Vector<String> toStringVector(int index) {\r
+ Vector<String> v = new Vector<String>();\r
+ v.addElement(getBootModes(index).getName());\r
+ v.addElement(getBootModes(index).getUsage());\r
+ return v;\r
+ }\r
}\r
vDataHubs.addElement(arg0);\r
}\r
\r
- public void updateDataHubs(DataHubsIdentification arg0, int arg1) {\r
+ public void setDataHubs(DataHubsIdentification arg0, int arg1) {\r
vDataHubs.setElementAt(arg0, arg1);\r
}\r
\r
public int size() {\r
return this.vDataHubs.size();\r
}\r
-\r
+ \r
+ public Vector<String> toStringVector(int index) {\r
+ Vector<String> v = new Vector<String>();\r
+ v.addElement(getDataHubs(index).getName());\r
+ v.addElement(getDataHubs(index).getUsage());\r
+ return v;\r
+ }\r
}\r
vEvents.addElement(arg0);\r
}\r
\r
- public void updateEvents(EventsIdentification arg0, int arg1) {\r
+ public void setEvents(EventsIdentification arg0, int arg1) {\r
vEvents.setElementAt(arg0, arg1);\r
}\r
\r
public int size() {\r
return this.vEvents.size();\r
}\r
-\r
+ \r
+ public Vector<String> toStringVector(int index) {\r
+ Vector<String> v = new Vector<String>();\r
+ v.addElement(getEvents(index).getName());\r
+ v.addElement(getEvents(index).getType());\r
+ v.addElement(getEvents(index).getUsage());\r
+ return v;\r
+ }\r
}\r
\r
import java.util.Vector;\r
\r
+import org.tianocore.frameworkwizard.common.EnumerationData;\r
+\r
public class ExternsVector {\r
\r
private Vector<ExternsIdentification> vExterns = new Vector<ExternsIdentification>();\r
}\r
\r
public void addExterns(ExternsIdentification arg0) {\r
- vExterns.addElement(arg0);\r
+ boolean isExistPcd = false;\r
+ if (arg0.getType().equals(EnumerationData.EXTERNS_PCD_IS_DRIVER)) {\r
+ for (int index = 0; index < size(); index++) {\r
+ if (getExterns(index).getType().equals(EnumerationData.EXTERNS_PCD_IS_DRIVER)) {\r
+ setExterns(arg0, index);\r
+ isExistPcd = true;\r
+ break;\r
+ }\r
+ }\r
+ if (!isExistPcd) {\r
+ vExterns.addElement(arg0); \r
+ }\r
+ } else {\r
+ vExterns.addElement(arg0);\r
+ }\r
}\r
\r
- public void updateExterns(ExternsIdentification arg0, int arg1) {\r
+ public void setExterns(ExternsIdentification arg0, int arg1) {\r
vExterns.setElementAt(arg0, arg1);\r
}\r
\r
return this.vExterns.size();\r
}\r
\r
+ public Vector<String> toStringVector(int index) {\r
+ Vector<String> v = new Vector<String>();\r
+ v.addElement(getExterns(index).getName());\r
+ v.addElement(getExterns(index).getType());\r
+ return v;\r
+ }\r
}\r
vGuids.addElement(arg0);\r
}\r
\r
- public void updateGuids(GuidsIdentification arg0, int arg1) {\r
+ public void setGuids(GuidsIdentification arg0, int arg1) {\r
vGuids.setElementAt(arg0, arg1);\r
}\r
\r
public int size() {\r
return this.vGuids.size();\r
}\r
+ \r
+ public Vector<String> toStringVector(int index) {\r
+ Vector<String> v = new Vector<String>();\r
+ v.addElement(getGuids(index).getName());\r
+ v.addElement(getGuids(index).getUsage());\r
+ return v;\r
+ }\r
\r
}\r
vHiiPackages.addElement(arg0);\r
}\r
\r
- public void updateHiiPackages(HiiPackagesIdentification arg0, int arg1) {\r
+ public void setHiiPackages(HiiPackagesIdentification arg0, int arg1) {\r
vHiiPackages.setElementAt(arg0, arg1);\r
}\r
\r
public int size() {\r
return this.vHiiPackages.size();\r
}\r
-\r
+ \r
+ public Vector<String> toStringVector(int index) {\r
+ Vector<String> v = new Vector<String>();\r
+ v.addElement(getHiiPackages(index).getName());\r
+ v.addElement(getHiiPackages(index).getUsage());\r
+ return v;\r
+ }\r
}\r
vHobs.addElement(arg0);\r
}\r
\r
- public void updateHobs(HobsIdentification arg0, int arg1) {\r
+ public void setHobs(HobsIdentification arg0, int arg1) {\r
vHobs.setElementAt(arg0, arg1);\r
}\r
\r
public int size() {\r
return this.vHobs.size();\r
}\r
-\r
+ \r
+ public Vector<String> toStringVector(int index) {\r
+ Vector<String> v = new Vector<String>();\r
+ v.addElement(getHobs(index).getName());\r
+ v.addElement(getHobs(index).getType());\r
+ v.addElement(getHobs(index).getUsage());\r
+ return v;\r
+ }\r
}\r
vLibraryClass.addElement(lib);\r
}\r
\r
- public void updateLibraryClass(LibraryClassIdentification lib, int index) {\r
+ public void setLibraryClass(LibraryClassIdentification lib, int index) {\r
vLibraryClass.setElementAt(lib, index);\r
}\r
\r
vPackageDependencies.addElement(arg0);\r
}\r
\r
- public void updatePackageDependencies(PackageDependenciesIdentification arg0, int arg1) {\r
+ public void setPackageDependencies(PackageDependenciesIdentification arg0, int arg1) {\r
vPackageDependencies.setElementAt(arg0, arg1);\r
}\r
\r
public int size() {\r
return this.vPackageDependencies.size();\r
}\r
+ \r
+ public Vector<String> toStringVector(int index) {\r
+ Vector<String> v = new Vector<String>();\r
+ v.addElement(getPackageDependencies(index).getName());\r
+ v.addElement(getPackageDependencies(index).getVersion());\r
+ return v;\r
+ }\r
\r
}\r
vPcdCoded.addElement(arg0);\r
}\r
\r
- public void updatePcdCoded(PcdCodedIdentification arg0, int arg1) {\r
+ public void setPcdCoded(PcdCodedIdentification arg0, int arg1) {\r
vPcdCoded.setElementAt(arg0, arg1);\r
}\r
\r
return this.vPcdCoded.size();\r
}\r
\r
+ public Vector<String> toStringVector(int index) {\r
+ Vector<String> v = new Vector<String>();\r
+ v.addElement(getPcdCoded(index).getName());\r
+ v.addElement(getPcdCoded(index).getType());\r
+ v.addElement(getPcdCoded(index).getValue());\r
+ return v;\r
+ }\r
}\r
vPpis.addElement(arg0);\r
}\r
\r
- public void updatePpis(PpisIdentification arg0, int arg1) {\r
+ public void setPpis(PpisIdentification arg0, int arg1) {\r
vPpis.setElementAt(arg0, arg1);\r
}\r
\r
public int size() {\r
return this.vPpis.size();\r
}\r
+ \r
+ public Vector<String> toStringVector(int index) {\r
+ Vector<String> v = new Vector<String>();\r
+ v.addElement(getPpis(index).getName());\r
+ v.addElement(getPpis(index).getType());\r
+ v.addElement(getPpis(index).getUsage());\r
+ return v;\r
+ }\r
\r
}\r
vProtocols.addElement(arg0);\r
}\r
\r
- public void updateProtocols(ProtocolsIdentification arg0, int arg1) {\r
+ public void setProtocols(ProtocolsIdentification arg0, int arg1) {\r
vProtocols.setElementAt(arg0, arg1);\r
}\r
\r
public int size() {\r
return this.vProtocols.size();\r
}\r
-\r
+ \r
+ public Vector<String> toStringVector(int index) {\r
+ Vector<String> v = new Vector<String>();\r
+ v.addElement(getProtocols(index).getName());\r
+ v.addElement(getProtocols(index).getType());\r
+ v.addElement(getProtocols(index).getUsage());\r
+ return v;\r
+ }\r
}\r
vSourceFiles.addElement(sfi);\r
}\r
\r
- public void updateSourceFiles(SourceFilesIdentification sfi, int index) {\r
+ public void setSourceFiles(SourceFilesIdentification sfi, int index) {\r
vSourceFiles.setElementAt(sfi, index);\r
}\r
\r
public int size() {\r
return this.vSourceFiles.size();\r
}\r
+ \r
+ public Vector<String> toStringVector(int index) {\r
+ Vector<String> v = new Vector<String>();\r
+ v.addElement(getSourceFiles(index).getFilename());\r
+ return v;\r
+ }\r
}\r
vSystemTables.addElement(arg0);\r
}\r
\r
- public void updateSystemTables(SystemTablesIdentification arg0, int arg1) {\r
+ public void setSystemTables(SystemTablesIdentification arg0, int arg1) {\r
vSystemTables.setElementAt(arg0, arg1);\r
}\r
\r
public int size() {\r
return this.vSystemTables.size();\r
}\r
-\r
+ \r
+ public Vector<String> toStringVector(int index) {\r
+ Vector<String> v = new Vector<String>();\r
+ v.addElement(getSystemTables(index).getName());\r
+ v.addElement(getSystemTables(index).getUsage());\r
+ return v;\r
+ }\r
}\r
vVariables.addElement(arg0);\r
}\r
\r
- public void updateVariables(VariablesIdentification arg0, int arg1) {\r
+ public void setVariables(VariablesIdentification arg0, int arg1) {\r
vVariables.setElementAt(arg0, arg1);\r
}\r
\r
public int size() {\r
return this.vVariables.size();\r
}\r
-\r
+ \r
+ public Vector<String> toStringVector(int index) {\r
+ Vector<String> v = new Vector<String>();\r
+ v.addElement(getVariables(index).getName());\r
+ v.addElement(getVariables(index).getGuid());\r
+ v.addElement(getVariables(index).getUsage());\r
+ return v;\r
+ }\r
}\r
\r
package org.tianocore.frameworkwizard.module.ui;\r
\r
+import java.awt.Dimension;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ComponentEvent;\r
-import java.awt.event.ItemEvent;\r
+import java.awt.event.MouseEvent;\r
import java.util.Vector;\r
\r
import javax.swing.JButton;\r
-import javax.swing.JComboBox;\r
-import javax.swing.JLabel;\r
import javax.swing.JPanel;\r
import javax.swing.JScrollPane;\r
-import javax.swing.JTextArea;\r
-import javax.swing.JTextField;\r
+import javax.swing.JTable;\r
+import javax.swing.ListSelectionModel;\r
+import javax.swing.event.ListSelectionEvent;\r
\r
import org.tianocore.BootModeNames;\r
import org.tianocore.BootModeUsage;\r
import org.tianocore.BootModesDocument.BootModes.BootMode;\r
import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea;\r
import org.tianocore.frameworkwizard.common.DataType;\r
-import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.IDefaultTableModel;\r
import org.tianocore.frameworkwizard.common.Log;\r
import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
-import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
-import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
import org.tianocore.frameworkwizard.module.Identifications.BootModes.BootModesIdentification;\r
import org.tianocore.frameworkwizard.module.Identifications.BootModes.BootModesVector;\r
+import org.tianocore.frameworkwizard.module.ui.dialog.BootModesDlg;\r
\r
/**\r
The class is used to create, update BootModes of MSA/MBD file\r
//\r
private JPanel jContentPane = null;\r
\r
- private JLabel jLabelBootModeName = null;\r
-\r
- private JComboBox jComboBoxBootModeName = null;\r
-\r
- private JLabel jLabelUsage = null;\r
-\r
- private JComboBox jComboBoxUsage = null;\r
-\r
- private StarLabel jStarLabel1 = null;\r
-\r
- private StarLabel jStarLabel2 = null;\r
-\r
- private JLabel jLabelFeatureFlag = null;\r
-\r
- private JTextField jTextFieldFeatureFlag = null;\r
-\r
- private JLabel jLabelArch = null;\r
-\r
- private JTextArea jTextAreaList = null;\r
-\r
- private JComboBox jComboBoxList = null;\r
-\r
private JButton jButtonAdd = null;\r
\r
private JButton jButtonRemove = null;\r
\r
private JScrollPane jScrollPane = null;\r
\r
- private JScrollPane jScrollPaneList = null;\r
-\r
- private ICheckBoxList iCheckBoxListArch = null;\r
+ private JScrollPane jScrollPaneTable = null;\r
\r
- private JScrollPane jScrollPaneArch = null;\r
- \r
- private JLabel jLabelHelpText = null;\r
-\r
- private JTextField jTextFieldHelpText = null;\r
+ private JTable jTable = null;\r
\r
//\r
// Not used by UI\r
//\r
- private int intSelectedItemId = 0;\r
-\r
private OpeningModuleType omt = null;\r
\r
private ModuleSurfaceArea msa = null;\r
\r
private BootModesVector vid = new BootModesVector();\r
\r
- private EnumerationData ed = new EnumerationData();\r
-\r
- /**\r
- This method initializes jComboBoxBootModeName \r
- \r
- @return javax.swing.JComboBox jComboBoxBootModeName\r
- \r
- **/\r
- private JComboBox getJComboBoxBootModeName() {\r
- if (jComboBoxBootModeName == null) {\r
- jComboBoxBootModeName = new JComboBox();\r
- jComboBoxBootModeName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
- jComboBoxBootModeName.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jComboBoxBootModeName;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxUsage \r
- \r
- @return javax.swing.JComboBox jComboBoxUsage\r
- \r
- **/\r
- private JComboBox getJComboBoxUsage() {\r
- if (jComboBoxUsage == null) {\r
- jComboBoxUsage = new JComboBox();\r
- jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
- jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jComboBoxUsage;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldFeatureFlag \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldFeatureFlag() {\r
- if (jTextFieldFeatureFlag == null) {\r
- jTextFieldFeatureFlag = new JTextField();\r
- jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
- jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jTextFieldFeatureFlag;\r
- }\r
+ private IDefaultTableModel model = null;\r
\r
- /**\r
- This method initializes jComboBoxFileList \r
- \r
- @return javax.swing.JComboBox jComboBoxFileList\r
- \r
- **/\r
- private JComboBox getJComboBoxList() {\r
- if (jComboBoxList == null) {\r
- jComboBoxList = new JComboBox();\r
- jComboBoxList.setBounds(new java.awt.Rectangle(15, 195, 210, 20));\r
- jComboBoxList.addItemListener(this);\r
- jComboBoxList.addActionListener(this);\r
- jComboBoxList.setPreferredSize(new java.awt.Dimension(210, 20));\r
- }\r
- return jComboBoxList;\r
- }\r
+ private int selectedRow = -1;\r
\r
/**\r
This method initializes jButtonAdd \r
jButtonUpdate = new JButton();\r
jButtonUpdate.setBounds(new java.awt.Rectangle(315, 195, 80, 20));\r
jButtonUpdate.setPreferredSize(new java.awt.Dimension(80, 20));\r
- jButtonUpdate.setText("Update");\r
+ jButtonUpdate.setText("Edit");\r
jButtonUpdate.addActionListener(this);\r
}\r
return jButtonUpdate;\r
}\r
\r
- /**\r
- * This method initializes jScrollPaneFileList \r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneList() {\r
- if (jScrollPaneList == null) {\r
- jScrollPaneList = new JScrollPane();\r
- jScrollPaneList.setBounds(new java.awt.Rectangle(15, 220, 465, 240));\r
- jScrollPaneList.setViewportView(getJTextAreaList());\r
- jScrollPaneList.setPreferredSize(new java.awt.Dimension(465, 240));\r
- }\r
- return jScrollPaneList;\r
- }\r
-\r
/**\r
This method initializes jScrollPane \r
\r
}\r
\r
/**\r
- * This method initializes jTextAreaFileList \r
- * \r
- * @return javax.swing.JTextArea \r
- */\r
- private JTextArea getJTextAreaList() {\r
- if (jTextAreaList == null) {\r
- jTextAreaList = new JTextArea();\r
- jTextAreaList.setEditable(false);\r
-\r
+ This method initializes jScrollPaneTable \r
+ \r
+ @return javax.swing.JScrollPane \r
+ **/\r
+ private JScrollPane getJScrollPaneTable() {\r
+ if (jScrollPaneTable == null) {\r
+ jScrollPaneTable = new JScrollPane();\r
+ jScrollPaneTable.setBounds(new java.awt.Rectangle(15, 10, 470, 420));\r
+ jScrollPaneTable.setPreferredSize(new Dimension(470, 420));\r
+ jScrollPaneTable.setViewportView(getJTable());\r
}\r
- return jTextAreaList;\r
+ return jScrollPaneTable;\r
}\r
\r
/**\r
- This method initializes iCheckBoxListArch \r
-\r
- @return ICheckBoxList \r
+ This method initializes jTable \r
+ \r
+ @return javax.swing.JTable \r
**/\r
- private ICheckBoxList getICheckBoxListSupportedArchitectures() {\r
- if (iCheckBoxListArch == null) {\r
- iCheckBoxListArch = new ICheckBoxList();\r
- iCheckBoxListArch.addFocusListener(this);\r
- iCheckBoxListArch.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
+ private JTable getJTable() {\r
+ if (jTable == null) {\r
+ jTable = new JTable();\r
+ model = new IDefaultTableModel();\r
+ jTable = new JTable(model);\r
+ jTable.setRowHeight(20);\r
+\r
+ model.addColumn("Name");\r
+ model.addColumn("Usage");\r
+\r
+ jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTable.getSelectionModel().addListSelectionListener(this);\r
+ jTable.getModel().addTableModelListener(this);\r
+ jTable.addMouseListener(this);\r
}\r
- return iCheckBoxListArch;\r
+ return jTable;\r
}\r
\r
- /**\r
- This method initializes jScrollPaneArch \r
-\r
- @return javax.swing.JScrollPane \r
+ public static void main(String[] args) {\r
+ }\r
\r
+ /**\r
+ This method initializes this\r
+ \r
**/\r
- private JScrollPane getJScrollPaneArch() {\r
- if (jScrollPaneArch == null) {\r
- jScrollPaneArch = new JScrollPane();\r
- jScrollPaneArch.setBounds(new java.awt.Rectangle(160, 110, 320, 80));\r
- jScrollPaneArch.setPreferredSize(new java.awt.Dimension(320, 80));\r
- jScrollPaneArch.setViewportView(getICheckBoxListSupportedArchitectures());\r
- }\r
- return jScrollPaneArch;\r
+ private void init() {\r
+ this.setSize(500, 515);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("Boot Modes");\r
}\r
- \r
+\r
/**\r
- This method initializes jTextFieldHelpText \r
- \r
- @return javax.swing.JTextField \r
- \r
- **/\r
- private JTextField getJTextFieldHelpText() {\r
- if (jTextFieldHelpText == null) {\r
- jTextFieldHelpText = new JTextField();\r
- jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
- jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jTextFieldHelpText;\r
- }\r
+ This method initializes this\r
+ Fill values to all fields if these values are not empty\r
+ \r
+ @param inBootModes\r
\r
- public static void main(String[] args) {\r
+ **/\r
+ private void init(BootModes inBootModes) {\r
+ init();\r
+ this.bootModes = inBootModes;\r
+\r
+ if (this.bootModes != null) {\r
+ if (this.bootModes.getBootModeList().size() > 0) {\r
+ for (int index = 0; index < this.bootModes.getBootModeList().size(); index++) {\r
+ String arg0 = null;\r
+ if (bootModes.getBootModeList().get(index).getBootModeName() != null) {\r
+ arg0 = bootModes.getBootModeList().get(index).getBootModeName().toString();\r
+ }\r
+ String arg1 = null;\r
+ if (bootModes.getBootModeList().get(index).getUsage() != null) {\r
+ arg1 = bootModes.getBootModeList().get(index).getUsage().toString();\r
+ }\r
+\r
+ String arg2 = bootModes.getBootModeList().get(index).getFeatureFlag();\r
+ Vector<String> arg3 = Tools.convertListToVector(bootModes.getBootModeList().get(index)\r
+ .getSupArchList());\r
+ String arg4 = bootModes.getBootModeList().get(index).getHelpText();\r
+\r
+ id = new BootModesIdentification(arg0, arg1, arg2, arg3, arg4);\r
+ vid.addBootModes(id);\r
+ }\r
+ }\r
+ }\r
+ showTable();\r
}\r
- \r
- /**\r
- This method initializes this\r
- \r
- **/\r
- private void init() {\r
- this.setSize(500, 515);\r
- this.setContentPane(getJScrollPane());\r
- this.setTitle("Boot Modes");\r
- initFrame();\r
- this.setViewMode(false);\r
- }\r
-\r
- /**\r
- This method initializes this\r
- Fill values to all fields if these values are not empty\r
- \r
- @param inPackageDependencies\r
-\r
- **/\r
- private void init(BootModes inBootModes) {\r
- init();\r
- this.bootModes = inBootModes;\r
-\r
- if (this.bootModes != null) {\r
- if (this.bootModes.getBootModeList().size() > 0) {\r
- for (int index = 0; index < this.bootModes.getBootModeList().size(); index++) {\r
- String arg0 = null;\r
- if (bootModes.getBootModeList().get(index).getBootModeName() != null) {\r
- arg0 = bootModes.getBootModeList().get(index).getBootModeName().toString();\r
- }\r
- String arg1 = null;\r
- if (bootModes.getBootModeList().get(index).getUsage() != null) {\r
- arg1 = bootModes.getBootModeList().get(index).getUsage().toString(); \r
- }\r
- \r
- String arg2 = bootModes.getBootModeList().get(index).getFeatureFlag();\r
- Vector<String> arg3 = Tools.convertListToVector(bootModes.getBootModeList().get(index).getSupArchList());\r
- String arg4 = bootModes.getBootModeList().get(index).getHelpText();\r
- \r
- id = new BootModesIdentification(arg0, arg1, arg2, arg3, arg4);\r
- vid.addBootModes(id);\r
- }\r
- }\r
- }\r
- //\r
- // Update the list\r
- //\r
- Tools.generateComboBoxByVector(jComboBoxList, vid.getBootModesName());\r
- reloadListArea();\r
- }\r
\r
/**\r
This is the default constructor\r
init(msa.getBootModes());\r
this.setVisible(true);\r
}\r
- \r
-\r
- /**\r
- Disable all components when the mode is view\r
- \r
- @param isView true - The view mode; false - The non-view mode\r
- \r
- **/\r
- public void setViewMode(boolean isView) {\r
- if (isView) {\r
- this.jComboBoxBootModeName.setEnabled(!isView);\r
- this.jComboBoxUsage.setEnabled(!isView);\r
- }\r
- }\r
\r
/**\r
This method initializes jContentPane\r
**/\r
private JPanel getJContentPane() {\r
if (jContentPane == null) {\r
- jLabelArch = new JLabel();\r
- jLabelArch.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
- jLabelArch.setText("Arch");\r
- jLabelFeatureFlag = new JLabel();\r
- jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
- jLabelFeatureFlag.setText("Feature Flag");\r
- jLabelUsage = new JLabel();\r
- jLabelUsage.setText("Usage");\r
- jLabelUsage.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
- jLabelBootModeName = new JLabel();\r
- jLabelBootModeName.setText("Boot Mode Name");\r
- jLabelBootModeName.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
- jLabelHelpText = new JLabel();\r
- jLabelHelpText.setBounds(new java.awt.Rectangle(14, 60, 140, 20));\r
- jLabelHelpText.setText("Help Text");\r
-\r
jContentPane = new JPanel();\r
jContentPane.setLayout(null);\r
- jContentPane.setPreferredSize(new java.awt.Dimension(490, 475));\r
-\r
- jContentPane.add(jLabelBootModeName, null);\r
- jContentPane.add(getJComboBoxBootModeName(), null);\r
- jContentPane.add(jLabelUsage, null);\r
- jContentPane.add(getJComboBoxUsage(), null);\r
- jStarLabel1 = new StarLabel();\r
- jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
- jStarLabel2 = new StarLabel();\r
- jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
-\r
- jContentPane.add(jStarLabel1, null);\r
- jContentPane.add(jStarLabel2, null);\r
- jContentPane.add(jLabelFeatureFlag, null);\r
- jContentPane.add(getJTextFieldFeatureFlag(), null);\r
- jContentPane.add(jLabelArch, null);\r
-\r
- jContentPane.add(getJComboBoxList(), null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 490));\r
+\r
jContentPane.add(getJButtonAdd(), null);\r
jContentPane.add(getJButtonRemove(), null);\r
jContentPane.add(getJButtonUpdate(), null);\r
- jContentPane.add(getJScrollPaneList(), null);\r
- jContentPane.add(getJScrollPaneArch(), null);\r
- jContentPane.add(jLabelHelpText, null);\r
- jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(getJScrollPaneTable(), null);\r
}\r
return jContentPane;\r
}\r
\r
+ private void showEdit(int index) {\r
+ BootModesDlg dlg = new BootModesDlg(vid.getBootModes(index), new IFrame());\r
+ int result = dlg.showDialog();\r
+ if (result == DataType.RETURN_TYPE_OK) {\r
+ if (index == -1) {\r
+ this.vid.addBootModes(dlg.getId());\r
+ } else {\r
+ this.vid.setBootModes(dlg.getId(), index);\r
+ }\r
+ this.showTable();\r
+ this.save();\r
+ dlg.dispose();\r
+ }\r
+ if (result == DataType.RETURN_TYPE_CANCEL) {\r
+ dlg.dispose();\r
+ }\r
+ }\r
+\r
+ /**\r
+ Clear all table rows\r
+ \r
+ **/\r
+ private void clearAll() {\r
+ if (model != null) {\r
+ for (int index = model.getRowCount() - 1; index >= 0; index--) {\r
+ model.removeRow(index);\r
+ }\r
+ }\r
+ }\r
+\r
/**\r
- This method initializes BootModeName groups and Usage type\r
+ Read content of vector and put then into table\r
\r
**/\r
- private void initFrame() {\r
- Tools.generateComboBoxByVector(jComboBoxBootModeName, ed.getVBootModeNames());\r
- Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVPpiUsage());\r
- \r
- this.iCheckBoxListArch.setAllItems(ed.getVSupportedArchitectures());\r
+ private void showTable() {\r
+ clearAll();\r
+\r
+ if (vid.size() > 0) {\r
+ for (int index = 0; index < vid.size(); index++) {\r
+ model.addRow(vid.toStringVector(index));\r
+ }\r
+ }\r
+ this.jTable.repaint();\r
+ this.jTable.updateUI();\r
}\r
\r
/* (non-Javadoc)\r
*/\r
public void actionPerformed(ActionEvent arg0) {\r
if (arg0.getSource() == jButtonAdd) {\r
- if (!checkAdd()) {\r
- return;\r
- }\r
- addToList();\r
- }\r
- if (arg0.getSource() == jButtonRemove) {\r
- removeFromList();\r
+ showEdit(-1);\r
}\r
if (arg0.getSource() == jButtonUpdate) {\r
- if (!checkAdd()) {\r
+ if (this.selectedRow < 0) {\r
+ Log.err("Please select one record first.");\r
return;\r
}\r
- updateForList();\r
+ showEdit(selectedRow);\r
}\r
- }\r
\r
- /**\r
- Data validation for all fields\r
- \r
- @retval true - All datas are valid\r
- @retval false - At least one data is invalid\r
- \r
- **/\r
- public boolean checkAdd() {\r
- //\r
- // Check if all fields have correct data types \r
- //\r
- \r
- //\r
- // Check FeatureFlag\r
- //\r
- if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
- if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
- Log.err("Incorrect data type for Feature Flag");\r
- return false;\r
+ if (arg0.getSource() == jButtonRemove) {\r
+ if (jTable.isEditing()) {\r
+ jTable.getCellEditor().stopCellEditing();\r
+ }\r
+ if (selectedRow > -1) {\r
+ this.model.removeRow(selectedRow);\r
+ this.vid.removeBootModes(selectedRow);\r
+ selectedRow = -1;\r
+ this.save();\r
}\r
}\r
-\r
- return true;\r
}\r
\r
/**\r
if (!isEmpty(vid.getBootModes(index).getFeatureFlag())) {\r
p.setFeatureFlag(vid.getBootModes(index).getFeatureFlag());\r
}\r
- if (vid.getBootModes(index).getSupArchList() != null && vid.getBootModes(index).getSupArchList().size() > 0) {\r
+ if (vid.getBootModes(index).getSupArchList() != null\r
+ && vid.getBootModes(index).getSupArchList().size() > 0) {\r
p.setSupArchList(vid.getBootModes(index).getSupArchList());\r
}\r
if (!isEmpty(vid.getBootModes(index).getHelp())) {\r
}\r
}\r
\r
+ /* (non-Javadoc)\r
+ * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)\r
+ *\r
+ */\r
+ public void valueChanged(ListSelectionEvent arg0) {\r
+ if (arg0.getValueIsAdjusting()) {\r
+ return;\r
+ }\r
+ ListSelectionModel lsm = (ListSelectionModel) arg0.getSource();\r
+ if (lsm.isSelectionEmpty()) {\r
+ return;\r
+ } else {\r
+ selectedRow = lsm.getMinSelectionIndex();\r
+ }\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
+ *\r
+ */\r
+ public void mouseClicked(MouseEvent arg0) {\r
+ if (arg0.getClickCount() == 2) {\r
+ if (this.selectedRow < 0) {\r
+ return;\r
+ } else {\r
+ showEdit(selectedRow);\r
+ }\r
+ }\r
+ }\r
+\r
/* (non-Javadoc)\r
* @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
* \r
int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
\r
- resizeComponentWidth(jComboBoxBootModeName, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jComboBoxUsage, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldHelpText, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldFeatureFlag, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jScrollPaneArch, intCurrentWidth, intPreferredWidth);\r
-\r
- resizeComponentWidth(jComboBoxList, intCurrentWidth, intPreferredWidth);\r
- resizeComponent(jScrollPaneList, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
-\r
- relocateComponentX(jButtonAdd, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON);\r
- relocateComponentX(jButtonRemove, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON);\r
- relocateComponentX(jButtonUpdate, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON);\r
- }\r
- \r
- private BootModesIdentification getCurrentBootModes() {\r
- String arg0 = this.jComboBoxBootModeName.getSelectedItem().toString();\r
- \r
- String arg1 = this.jComboBoxUsage.getSelectedItem().toString();\r
-\r
- String arg2 = this.jTextFieldFeatureFlag.getText();\r
- Vector<String> arg3 = this.iCheckBoxListArch.getAllCheckedItemsString();\r
- String arg4 = this.jTextFieldHelpText.getText();\r
- id = new BootModesIdentification(arg0, arg1, arg2, arg3, arg4);\r
- return id;\r
+ resizeComponent(this.jScrollPaneTable, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
+ relocateComponent(this.jButtonAdd, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_ADD_BUTTON);\r
+ relocateComponent(this.jButtonRemove, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_REMOVE_BUTTON);\r
+ relocateComponent(this.jButtonUpdate, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_UPDATE_BUTTON);\r
}\r
- \r
- /**\r
- Add current item to Vector\r
- \r
- **/\r
- private void addToList() {\r
- intSelectedItemId = vid.size();\r
-\r
- vid.addBootModes(getCurrentBootModes());\r
-\r
- jComboBoxList.addItem(id.getName());\r
- jComboBoxList.setSelectedItem(id.getName());\r
-\r
- //\r
- // Reset select item index\r
- //\r
- intSelectedItemId = vid.size();\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Remove current item from Vector\r
- \r
- **/\r
- private void removeFromList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
- return;\r
- }\r
-\r
- int intTempIndex = intSelectedItemId;\r
-\r
- jComboBoxList.removeItemAt(intSelectedItemId);\r
-\r
- vid.removeBootModes(intTempIndex);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Update current item of Vector\r
- \r
- **/\r
- private void updateForList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
- return;\r
- }\r
-\r
- //\r
- // Backup selected item index\r
- //\r
- int intTempIndex = intSelectedItemId;\r
-\r
- vid.updateBootModes(getCurrentBootModes(), intTempIndex);\r
-\r
- jComboBoxList.removeAllItems();\r
- for (int index = 0; index < vid.size(); index++) {\r
- jComboBoxList.addItem(vid.getBootModes(index).getName());\r
- }\r
-\r
- //\r
- // Restore selected item index\r
- //\r
- intSelectedItemId = intTempIndex;\r
-\r
- //\r
- // Reset select item index\r
- //\r
- jComboBoxList.setSelectedIndex(intSelectedItemId);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Refresh all fields' values of selected item of Vector\r
- \r
- **/\r
- private void reloadFromList() {\r
- if (vid.size() > 0) {\r
- //\r
- // Get selected item index\r
- //\r
- intSelectedItemId = jComboBoxList.getSelectedIndex();\r
-\r
- this.jComboBoxBootModeName.setSelectedItem(vid.getBootModes(intSelectedItemId).getName());\r
- this.jComboBoxUsage.setSelectedItem(vid.getBootModes(intSelectedItemId).getUsage());\r
- this.jTextFieldHelpText.setText(vid.getBootModes(intSelectedItemId).getHelp());\r
-\r
- jTextFieldFeatureFlag.setText(vid.getBootModes(intSelectedItemId).getFeatureFlag());\r
- iCheckBoxListArch.setAllItemsUnchecked();\r
- iCheckBoxListArch.initCheckedItem(true, vid.getBootModes(intSelectedItemId).getSupArchList());\r
-\r
- } else {\r
- }\r
-\r
- reloadListArea();\r
- }\r
-\r
- /**\r
- Update list area pane via the elements of Vector\r
- \r
- **/\r
- private void reloadListArea() {\r
- String strListItem = "";\r
- for (int index = 0; index < vid.size(); index++) {\r
- strListItem = strListItem + vid.getBootModes(index).getName() + DataType.UNIX_LINE_SEPARATOR;\r
- }\r
- this.jTextAreaList.setText(strListItem);\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
- *\r
- * Reflesh the frame when selected item changed\r
- * \r
- */\r
- public void itemStateChanged(ItemEvent arg0) {\r
- if (arg0.getSource() == this.jComboBoxList && arg0.getStateChange() == ItemEvent.SELECTED) {\r
- reloadFromList();\r
- }\r
- }\r
}\r
\r
package org.tianocore.frameworkwizard.module.ui;\r
\r
+import java.awt.Dimension;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ComponentEvent;\r
-import java.awt.event.ItemEvent;\r
+import java.awt.event.MouseEvent;\r
import java.util.Vector;\r
\r
import javax.swing.JButton;\r
-import javax.swing.JComboBox;\r
-import javax.swing.JLabel;\r
import javax.swing.JPanel;\r
import javax.swing.JScrollPane;\r
-import javax.swing.JTextArea;\r
-import javax.swing.JTextField;\r
+import javax.swing.JTable;\r
+import javax.swing.ListSelectionModel;\r
+import javax.swing.event.ListSelectionEvent;\r
\r
import org.tianocore.DataHubUsage;\r
import org.tianocore.DataHubsDocument;\r
import org.tianocore.DataHubsDocument.DataHubs.DataHubRecord;\r
import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea;\r
import org.tianocore.frameworkwizard.common.DataType;\r
-import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.IDefaultTableModel;\r
import org.tianocore.frameworkwizard.common.Log;\r
import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
-import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
-import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
import org.tianocore.frameworkwizard.module.Identifications.DataHubs.DataHubsIdentification;\r
import org.tianocore.frameworkwizard.module.Identifications.DataHubs.DataHubsVector;\r
+import org.tianocore.frameworkwizard.module.ui.dialog.DataHubsDlg;\r
\r
/**\r
The class is used to create, update DataHub of MSA/MBD file\r
//\r
private JPanel jContentPane = null;\r
\r
- private JLabel jLabelUsage = null;\r
-\r
- private JComboBox jComboBoxUsage = null;\r
-\r
- private JLabel jLabelDataHubRecord = null;\r
-\r
- private JTextField jTextFieldDataHubRecord = null;\r
-\r
- private StarLabel jStarLabel1 = null;\r
-\r
- private StarLabel jStarLabel2 = null;\r
-\r
- private JLabel jLabelFeatureFlag = null;\r
-\r
- private JTextField jTextFieldFeatureFlag = null;\r
-\r
- private JLabel jLabelArch = null;\r
-\r
- private JTextArea jTextAreaList = null;\r
-\r
- private JComboBox jComboBoxList = null;\r
-\r
private JButton jButtonAdd = null;\r
\r
private JButton jButtonRemove = null;\r
\r
private JScrollPane jScrollPane = null;\r
\r
- private JScrollPane jScrollPaneList = null;\r
-\r
- private ICheckBoxList iCheckBoxListArch = null;\r
+ private JScrollPane jScrollPaneTable = null;\r
\r
- private JScrollPane jScrollPaneArch = null;\r
-\r
- private JLabel jLabelHelpText = null;\r
-\r
- private JTextField jTextFieldHelpText = null;\r
+ private JTable jTable = null;\r
\r
//\r
// Not used by UI\r
//\r
- private int intSelectedItemId = 0;\r
-\r
private OpeningModuleType omt = null;\r
\r
private ModuleSurfaceArea msa = null;\r
\r
private DataHubsVector vid = new DataHubsVector();\r
\r
- private EnumerationData ed = new EnumerationData();\r
+ private IDefaultTableModel model = null;\r
\r
- /**\r
- This method initializes jComboBoxUsage \r
- \r
- @return javax.swing.JComboBox jComboBoxUsage\r
- \r
- **/\r
- private JComboBox getJComboBoxUsage() {\r
- if (jComboBoxUsage == null) {\r
- jComboBoxUsage = new JComboBox();\r
- jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
- jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jComboBoxUsage;\r
- }\r
-\r
- /**\r
- This method initializes jTextFieldDataHubRecord \r
- \r
- @return javax.swing.JTextField jTextFieldDataHubRecord\r
- \r
- **/\r
- private JTextField getJTextFieldDataHubRecord() {\r
- if (jTextFieldDataHubRecord == null) {\r
- jTextFieldDataHubRecord = new JTextField();\r
- jTextFieldDataHubRecord.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
- jTextFieldDataHubRecord.setPreferredSize(new java.awt.Dimension(320, 20));\r
- jTextFieldDataHubRecord.setToolTipText("Enter the C Name of the Data Hub Record");\r
- }\r
- return jTextFieldDataHubRecord;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldFeatureFlag \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldFeatureFlag() {\r
- if (jTextFieldFeatureFlag == null) {\r
- jTextFieldFeatureFlag = new JTextField();\r
- jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
- jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jTextFieldFeatureFlag;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxFileList \r
- \r
- @return javax.swing.JComboBox jComboBoxFileList\r
- \r
- **/\r
- private JComboBox getJComboBoxList() {\r
- if (jComboBoxList == null) {\r
- jComboBoxList = new JComboBox();\r
- jComboBoxList.setBounds(new java.awt.Rectangle(15, 195, 210, 20));\r
- jComboBoxList.addItemListener(this);\r
- jComboBoxList.addActionListener(this);\r
- jComboBoxList.setPreferredSize(new java.awt.Dimension(210, 20));\r
- }\r
- return jComboBoxList;\r
- }\r
+ private int selectedRow = -1;\r
\r
/**\r
This method initializes jButtonAdd \r
jButtonUpdate = new JButton();\r
jButtonUpdate.setBounds(new java.awt.Rectangle(315, 195, 80, 20));\r
jButtonUpdate.setPreferredSize(new java.awt.Dimension(80, 20));\r
- jButtonUpdate.setText("Update");\r
+ jButtonUpdate.setText("Edit");\r
jButtonUpdate.addActionListener(this);\r
}\r
return jButtonUpdate;\r
}\r
\r
- /**\r
- * This method initializes jScrollPaneFileList \r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneList() {\r
- if (jScrollPaneList == null) {\r
- jScrollPaneList = new JScrollPane();\r
- jScrollPaneList.setBounds(new java.awt.Rectangle(15, 220, 465, 240));\r
- jScrollPaneList.setViewportView(getJTextAreaList());\r
- jScrollPaneList.setPreferredSize(new java.awt.Dimension(465, 240));\r
- }\r
- return jScrollPaneList;\r
- }\r
-\r
/**\r
This method initializes jScrollPane \r
\r
}\r
\r
/**\r
- * This method initializes jTextAreaFileList \r
- * \r
- * @return javax.swing.JTextArea \r
- */\r
- private JTextArea getJTextAreaList() {\r
- if (jTextAreaList == null) {\r
- jTextAreaList = new JTextArea();\r
- jTextAreaList.setEditable(false);\r
-\r
- }\r
- return jTextAreaList;\r
- }\r
-\r
- /**\r
- This method initializes iCheckBoxListArch \r
-\r
- @return ICheckBoxList \r
- **/\r
- private ICheckBoxList getICheckBoxListSupportedArchitectures() {\r
- if (iCheckBoxListArch == null) {\r
- iCheckBoxListArch = new ICheckBoxList();\r
- iCheckBoxListArch.addFocusListener(this);\r
- iCheckBoxListArch.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
- }\r
- return iCheckBoxListArch;\r
- }\r
-\r
- /**\r
- This method initializes jScrollPaneArch \r
-\r
+ This method initializes jScrollPaneTable \r
+ \r
@return javax.swing.JScrollPane \r
-\r
**/\r
- private JScrollPane getJScrollPaneArch() {\r
- if (jScrollPaneArch == null) {\r
- jScrollPaneArch = new JScrollPane();\r
- jScrollPaneArch.setBounds(new java.awt.Rectangle(160, 110, 320, 80));\r
- jScrollPaneArch.setPreferredSize(new java.awt.Dimension(320, 80));\r
- jScrollPaneArch.setViewportView(getICheckBoxListSupportedArchitectures());\r
+ private JScrollPane getJScrollPaneTable() {\r
+ if (jScrollPaneTable == null) {\r
+ jScrollPaneTable = new JScrollPane();\r
+ jScrollPaneTable.setBounds(new java.awt.Rectangle(15, 10, 470, 420));\r
+ jScrollPaneTable.setPreferredSize(new Dimension(470, 420));\r
+ jScrollPaneTable.setViewportView(getJTable());\r
}\r
- return jScrollPaneArch;\r
+ return jScrollPaneTable;\r
}\r
\r
/**\r
- This method initializes jTextFieldHelpText \r
- \r
- @return javax.swing.JTextField \r
+ This method initializes jTable \r
\r
+ @return javax.swing.JTable \r
**/\r
- private JTextField getJTextFieldHelpText() {\r
- if (jTextFieldHelpText == null) {\r
- jTextFieldHelpText = new JTextField();\r
- jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
- jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ private JTable getJTable() {\r
+ if (jTable == null) {\r
+ jTable = new JTable();\r
+ model = new IDefaultTableModel();\r
+ jTable = new JTable(model);\r
+ jTable.setRowHeight(20);\r
+\r
+ model.addColumn("Data Hub C_Name");\r
+ model.addColumn("Usage");\r
+\r
+ jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTable.getSelectionModel().addListSelectionListener(this);\r
+ jTable.getModel().addTableModelListener(this);\r
+ jTable.addMouseListener(this);\r
}\r
- return jTextFieldHelpText;\r
+ return jTable;\r
}\r
\r
public static void main(String[] args) {\r
this.setSize(500, 515);\r
this.setContentPane(getJScrollPane());\r
this.setTitle("Data Hubs");\r
- initFrame();\r
- this.setViewMode(false);\r
}\r
\r
/**\r
String arg0 = dataHubs.getDataHubRecordList().get(index).getDataHubCName();\r
String arg1 = null;\r
if (dataHubs.getDataHubRecordList().get(index).getUsage() != null) {\r
- arg1 = dataHubs.getDataHubRecordList().get(index).getUsage().toString(); \r
+ arg1 = dataHubs.getDataHubRecordList().get(index).getUsage().toString();\r
}\r
- \r
+\r
String arg2 = dataHubs.getDataHubRecordList().get(index).getFeatureFlag();\r
Vector<String> arg3 = Tools.convertListToVector(dataHubs.getDataHubRecordList().get(index)\r
.getSupArchList());\r
String arg4 = dataHubs.getDataHubRecordList().get(index).getHelpText();\r
- \r
+\r
id = new DataHubsIdentification(arg0, arg1, arg2, arg3, arg4);\r
vid.addDataHubs(id);\r
}\r
}\r
}\r
- //\r
- // Update the list\r
- //\r
- Tools.generateComboBoxByVector(jComboBoxList, vid.getDataHubsName());\r
- reloadListArea();\r
+ showTable();\r
}\r
\r
/**\r
this.setVisible(true);\r
}\r
\r
- /**\r
- Disable all components when the mode is view\r
- \r
- @param isView true - The view mode; false - The non-view mode\r
- \r
- **/\r
- public void setViewMode(boolean isView) {\r
- if (isView) {\r
- this.jTextFieldDataHubRecord.setEnabled(!isView);\r
- this.jComboBoxUsage.setEnabled(!isView);\r
- }\r
- }\r
-\r
/**\r
This method initializes jContentPane\r
\r
**/\r
private JPanel getJContentPane() {\r
if (jContentPane == null) {\r
- jLabelDataHubRecord = new JLabel();\r
- jLabelDataHubRecord.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
- jLabelDataHubRecord.setText("Data Hub Record");\r
- jLabelUsage = new JLabel();\r
- jLabelUsage.setText("Usage");\r
- jLabelUsage.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
- jLabelArch = new JLabel();\r
- jLabelArch.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
- jLabelArch.setText("Arch");\r
- jLabelFeatureFlag = new JLabel();\r
- jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
- jLabelFeatureFlag.setText("Feature Flag");\r
- jLabelHelpText = new JLabel();\r
- jLabelHelpText.setBounds(new java.awt.Rectangle(14, 60, 140, 20));\r
- jLabelHelpText.setText("Help Text");\r
-\r
jContentPane = new JPanel();\r
jContentPane.setLayout(null);\r
- jContentPane.setPreferredSize(new java.awt.Dimension(490, 475));\r
-\r
- jContentPane.add(jLabelDataHubRecord, null);\r
- jContentPane.add(jLabelUsage, null);\r
- jContentPane.add(jLabelFeatureFlag, null);\r
- jContentPane.add(jLabelArch, null);\r
-\r
- jContentPane.add(getJTextFieldDataHubRecord(), null);\r
- jContentPane.add(getJComboBoxUsage(), null);\r
- jContentPane.add(getJTextFieldFeatureFlag(), null);\r
-\r
- jStarLabel1 = new StarLabel();\r
- jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
- jStarLabel2 = new StarLabel();\r
- jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 490));\r
\r
- jContentPane.add(jStarLabel1, null);\r
- jContentPane.add(jStarLabel2, null);\r
-\r
- jContentPane.add(getJComboBoxList(), null);\r
jContentPane.add(getJButtonAdd(), null);\r
jContentPane.add(getJButtonRemove(), null);\r
jContentPane.add(getJButtonUpdate(), null);\r
- jContentPane.add(getJScrollPaneList(), null);\r
- jContentPane.add(getJScrollPaneArch(), null);\r
- jContentPane.add(jLabelHelpText, null);\r
- jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(getJScrollPaneTable(), null);\r
}\r
return jContentPane;\r
}\r
\r
+ private void showEdit(int index) {\r
+ DataHubsDlg dlg = new DataHubsDlg(vid.getDataHubs(index), new IFrame());\r
+ int result = dlg.showDialog();\r
+ if (result == DataType.RETURN_TYPE_OK) {\r
+ if (index == -1) {\r
+ this.vid.addDataHubs(dlg.getId());\r
+ } else {\r
+ this.vid.setDataHubs(dlg.getId(), index);\r
+ }\r
+ this.showTable();\r
+ this.save();\r
+ dlg.dispose();\r
+ }\r
+ if (result == DataType.RETURN_TYPE_CANCEL) {\r
+ dlg.dispose();\r
+ }\r
+ }\r
+\r
/**\r
- This method initializes Usage type\r
+ Clear all table rows\r
\r
**/\r
- private void initFrame() {\r
- Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVDataHubUsage());\r
- this.iCheckBoxListArch.setAllItems(ed.getVSupportedArchitectures());\r
+ private void clearAll() {\r
+ if (model != null) {\r
+ for (int index = model.getRowCount() - 1; index >= 0; index--) {\r
+ model.removeRow(index);\r
+ }\r
+ }\r
+ }\r
+\r
+ /**\r
+ Read content of vector and put then into table\r
+ \r
+ **/\r
+ private void showTable() {\r
+ clearAll();\r
+\r
+ if (vid.size() > 0) {\r
+ for (int index = 0; index < vid.size(); index++) {\r
+ model.addRow(vid.toStringVector(index));\r
+ }\r
+ }\r
+ this.jTable.repaint();\r
+ this.jTable.updateUI();\r
}\r
\r
/* (non-Javadoc)\r
*/\r
public void actionPerformed(ActionEvent arg0) {\r
if (arg0.getSource() == jButtonAdd) {\r
- if (!checkAdd()) {\r
- return;\r
- }\r
- addToList();\r
- }\r
- if (arg0.getSource() == jButtonRemove) {\r
- removeFromList();\r
+ showEdit(-1);\r
}\r
if (arg0.getSource() == jButtonUpdate) {\r
- if (!checkAdd()) {\r
+ if (this.selectedRow < 0) {\r
+ Log.err("Please select one record first.");\r
return;\r
}\r
- updateForList();\r
- }\r
- }\r
-\r
- /**\r
- Data validation for all fields\r
- \r
- @retval true - All datas are valid\r
- @retval false - At least one data is invalid\r
- \r
- **/\r
- public boolean checkAdd() {\r
- //\r
- // Check if all fields have correct data types \r
- //\r
-\r
- //\r
- // Check DataHubRecord \r
- //\r
- if (isEmpty(this.jTextFieldDataHubRecord.getText())) {\r
- Log.err("Data Hub Record couldn't be empty");\r
- return false;\r
+ showEdit(selectedRow);\r
}\r
\r
- if (!isEmpty(this.jTextFieldDataHubRecord.getText())) {\r
- if (!DataValidation.isC_NameType(this.jTextFieldDataHubRecord.getText())) {\r
- Log.err("Incorrect data type for Data Hub Record");\r
- return false;\r
+ if (arg0.getSource() == jButtonRemove) {\r
+ if (jTable.isEditing()) {\r
+ jTable.getCellEditor().stopCellEditing();\r
}\r
- }\r
-\r
- //\r
- // Check FeatureFlag\r
- //\r
- if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
- if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
- Log.err("Incorrect data type for Feature Flag");\r
- return false;\r
+ if (selectedRow > -1) {\r
+ this.model.removeRow(selectedRow);\r
+ this.vid.removeDataHubs(selectedRow);\r
+ selectedRow = -1;\r
+ this.save();\r
}\r
}\r
-\r
- return true;\r
}\r
\r
/**\r
}\r
\r
/* (non-Javadoc)\r
- * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
- * \r
- * Override componentResized to resize all components when frame's size is changed\r
+ * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)\r
+ *\r
*/\r
- public void componentResized(ComponentEvent arg0) {\r
- int intCurrentWidth = this.getJContentPane().getWidth();\r
- int intCurrentHeight = this.getJContentPane().getHeight();\r
- int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
- int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
-\r
- resizeComponentWidth(jTextFieldDataHubRecord, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jComboBoxUsage, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldHelpText, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldFeatureFlag, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jScrollPaneArch, intCurrentWidth, intPreferredWidth);\r
-\r
- resizeComponentWidth(jComboBoxList, intCurrentWidth, intPreferredWidth);\r
- resizeComponent(jScrollPaneList, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
-\r
- relocateComponentX(jButtonAdd, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON);\r
- relocateComponentX(jButtonRemove, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON);\r
- relocateComponentX(jButtonUpdate, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON);\r
- }\r
-\r
- private DataHubsIdentification getCurrentDataHubs() {\r
- String arg0 = this.jTextFieldDataHubRecord.getText();\r
- String arg1 = this.jComboBoxUsage.getSelectedItem().toString();\r
-\r
- String arg2 = this.jTextFieldFeatureFlag.getText();\r
- Vector<String> arg3 = this.iCheckBoxListArch.getAllCheckedItemsString();\r
- String arg4 = this.jTextFieldHelpText.getText();\r
- \r
- id = new DataHubsIdentification(arg0, arg1, arg2, arg3, arg4);\r
- return id;\r
- }\r
-\r
- /**\r
- Add current item to Vector\r
- \r
- **/\r
- private void addToList() {\r
- intSelectedItemId = vid.size();\r
-\r
- vid.addDataHubs(getCurrentDataHubs());\r
-\r
- jComboBoxList.addItem(id.getName());\r
- jComboBoxList.setSelectedItem(id.getName());\r
-\r
- //\r
- // Reset select item index\r
- //\r
- intSelectedItemId = vid.size();\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Remove current item from Vector\r
- \r
- **/\r
- private void removeFromList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
+ public void valueChanged(ListSelectionEvent arg0) {\r
+ if (arg0.getValueIsAdjusting()) {\r
return;\r
}\r
-\r
- int intTempIndex = intSelectedItemId;\r
-\r
- jComboBoxList.removeItemAt(intSelectedItemId);\r
-\r
- vid.removeDataHubs(intTempIndex);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Update current item of Vector\r
- \r
- **/\r
- private void updateForList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
+ ListSelectionModel lsm = (ListSelectionModel) arg0.getSource();\r
+ if (lsm.isSelectionEmpty()) {\r
return;\r
- }\r
-\r
- //\r
- // Backup selected item index\r
- //\r
- int intTempIndex = intSelectedItemId;\r
-\r
- vid.updateDataHubs(getCurrentDataHubs(), intTempIndex);\r
-\r
- jComboBoxList.removeAllItems();\r
- for (int index = 0; index < vid.size(); index++) {\r
- jComboBoxList.addItem(vid.getDataHubs(index).getName());\r
- }\r
-\r
- //\r
- // Restore selected item index\r
- //\r
- intSelectedItemId = intTempIndex;\r
-\r
- //\r
- // Reset select item index\r
- //\r
- jComboBoxList.setSelectedIndex(intSelectedItemId);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Refresh all fields' values of selected item of Vector\r
- \r
- **/\r
- private void reloadFromList() {\r
- if (vid.size() > 0) {\r
- //\r
- // Get selected item index\r
- //\r
- intSelectedItemId = jComboBoxList.getSelectedIndex();\r
-\r
- this.jTextFieldDataHubRecord.setText(vid.getDataHubs(intSelectedItemId).getName());\r
- this.jComboBoxUsage.setSelectedItem(vid.getDataHubs(intSelectedItemId).getUsage());\r
- this.jTextFieldHelpText.setText(vid.getDataHubs(intSelectedItemId).getHelp());\r
-\r
- jTextFieldFeatureFlag.setText(vid.getDataHubs(intSelectedItemId).getFeatureFlag());\r
- iCheckBoxListArch.setAllItemsUnchecked();\r
- iCheckBoxListArch.initCheckedItem(true, vid.getDataHubs(intSelectedItemId).getSupArchList());\r
-\r
} else {\r
+ selectedRow = lsm.getMinSelectionIndex();\r
}\r
-\r
- reloadListArea();\r
}\r
\r
- /**\r
- Update list area pane via the elements of Vector\r
- \r
- **/\r
- private void reloadListArea() {\r
- String strListItem = "";\r
- for (int index = 0; index < vid.size(); index++) {\r
- strListItem = strListItem + vid.getDataHubs(index).getName() + DataType.UNIX_LINE_SEPARATOR;\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
+ *\r
+ */\r
+ public void mouseClicked(MouseEvent arg0) {\r
+ if (arg0.getClickCount() == 2) {\r
+ if (this.selectedRow < 0) {\r
+ return;\r
+ } else {\r
+ showEdit(selectedRow);\r
+ }\r
}\r
- this.jTextAreaList.setText(strListItem);\r
}\r
\r
/* (non-Javadoc)\r
- * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
- *\r
- * Reflesh the frame when selected item changed\r
+ * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
* \r
+ * Override componentResized to resize all components when frame's size is changed\r
*/\r
- public void itemStateChanged(ItemEvent arg0) {\r
- if (arg0.getSource() == this.jComboBoxList && arg0.getStateChange() == ItemEvent.SELECTED) {\r
- reloadFromList();\r
- }\r
+ public void componentResized(ComponentEvent arg0) {\r
+ int intCurrentWidth = this.getJContentPane().getWidth();\r
+ int intCurrentHeight = this.getJContentPane().getHeight();\r
+ int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
+ int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
+\r
+ resizeComponent(this.jScrollPaneTable, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
+ relocateComponent(this.jButtonAdd, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_ADD_BUTTON);\r
+ relocateComponent(this.jButtonRemove, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_REMOVE_BUTTON);\r
+ relocateComponent(this.jButtonUpdate, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_UPDATE_BUTTON);\r
}\r
}\r
**/\r
package org.tianocore.frameworkwizard.module.ui;\r
\r
+import java.awt.Dimension;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ComponentEvent;\r
-import java.awt.event.ItemEvent;\r
+import java.awt.event.MouseEvent;\r
import java.util.Vector;\r
\r
import javax.swing.JButton;\r
-import javax.swing.JComboBox;\r
-import javax.swing.JLabel;\r
import javax.swing.JPanel;\r
import javax.swing.JScrollPane;\r
-import javax.swing.JTextArea;\r
-import javax.swing.JTextField;\r
+import javax.swing.JTable;\r
+import javax.swing.ListSelectionModel;\r
+import javax.swing.event.ListSelectionEvent;\r
\r
import org.tianocore.EventsDocument;\r
import org.tianocore.ProtocolNotifyUsage;\r
import org.tianocore.EventsDocument.Events.SignalEvents;\r
import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea;\r
import org.tianocore.frameworkwizard.common.DataType;\r
-import org.tianocore.frameworkwizard.common.DataValidation;\r
import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.IDefaultTableModel;\r
import org.tianocore.frameworkwizard.common.Log;\r
import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
-import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
-import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
import org.tianocore.frameworkwizard.module.Identifications.Events.EventsIdentification;\r
import org.tianocore.frameworkwizard.module.Identifications.Events.EventsVector;\r
-import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
+import org.tianocore.frameworkwizard.module.ui.dialog.EventsDlg;\r
\r
/**\r
The class is used to create, update Event of MSA/MBD file\r
//\r
private JPanel jContentPane = null;\r
\r
- private JLabel jLabelEventType = null;\r
-\r
- private JLabel jLabelC_Name = null;\r
-\r
- private JComboBox jComboBoxGuidC_Name = null;\r
-\r
- private JLabel jLabelUsage = null;\r
-\r
- private JComboBox jComboBoxUsage = null;\r
-\r
- private StarLabel jStarLabel1 = null;\r
-\r
- private StarLabel jStarLabel2 = null;\r
-\r
- private JComboBox jComboBoxEventsType = null;\r
-\r
- private JTextArea jTextAreaList = null;\r
-\r
- private JComboBox jComboBoxList = null;\r
-\r
private JButton jButtonAdd = null;\r
\r
private JButton jButtonRemove = null;\r
\r
private JScrollPane jScrollPane = null;\r
\r
- private JScrollPane jScrollPaneList = null;\r
+ private JScrollPane jScrollPaneTable = null;\r
\r
- private JLabel jLabelArch = null;\r
-\r
- private ICheckBoxList iCheckBoxListArch = null;\r
-\r
- private JScrollPane jScrollPaneArch = null;\r
- \r
- private JLabel jLabelHelpText = null;\r
-\r
- private JTextField jTextFieldHelpText = null;\r
- \r
- private JLabel jLabelFeatureFlag = null;\r
-\r
- private JTextField jTextFieldFeatureFlag = null;\r
+ private JTable jTable = null;\r
\r
//\r
// Not used by UI\r
//\r
- private int intSelectedItemId = 0;\r
-\r
private OpeningModuleType omt = null;\r
\r
private ModuleSurfaceArea msa = null;\r
private EventsVector vid = new EventsVector();\r
\r
private EnumerationData ed = new EnumerationData();\r
- \r
- private WorkspaceTools wt = new WorkspaceTools();\r
\r
- /**\r
- This method initializes jTextFieldC_Name \r
- \r
- @return javax.swing.JTextField jTextFieldC_Name\r
- \r
- **/\r
- private JComboBox getJComboBoxGuidC_Name() {\r
- if (jComboBoxGuidC_Name == null) {\r
- jComboBoxGuidC_Name = new JComboBox();\r
- jComboBoxGuidC_Name.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
- jComboBoxGuidC_Name.setPreferredSize(new java.awt.Dimension(320, 20));\r
- jComboBoxGuidC_Name.setToolTipText("Select the GUID C Name of the Event");\r
- }\r
- return jComboBoxGuidC_Name;\r
- }\r
+ private IDefaultTableModel model = null;\r
\r
- /**\r
- This method initializes jComboBoxUsage \r
- \r
- @return javax.swing.JComboBox jComboBoxUsage\r
- \r
- **/\r
- private JComboBox getJComboBoxUsage() {\r
- if (jComboBoxUsage == null) {\r
- jComboBoxUsage = new JComboBox();\r
- jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
- jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jComboBoxUsage;\r
- }\r
-\r
- /**\r
- * This method initializes jComboBoxEventsType \r
- * \r
- * @return javax.swing.JComboBox \r
- */\r
- private JComboBox getJComboBoxEventsType() {\r
- if (jComboBoxEventsType == null) {\r
- jComboBoxEventsType = new JComboBox();\r
- jComboBoxEventsType.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
- jComboBoxEventsType.setPreferredSize(new java.awt.Dimension(320, 20));\r
- jComboBoxEventsType.setToolTipText("Select Create event if the Module has an event that is waiting to be signaled. Select Signal if the Module will signal all events in an event group. Signal Event The events are named by GUID.");\r
- }\r
- return jComboBoxEventsType;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxFileList \r
- \r
- @return javax.swing.JComboBox jComboBoxFileList\r
- \r
- **/\r
- private JComboBox getJComboBoxList() {\r
- if (jComboBoxList == null) {\r
- jComboBoxList = new JComboBox();\r
- jComboBoxList.setBounds(new java.awt.Rectangle(15, 220, 210, 20));\r
- jComboBoxList.addItemListener(this);\r
- jComboBoxList.addActionListener(this);\r
- jComboBoxList.setPreferredSize(new java.awt.Dimension(210, 20));\r
- }\r
- return jComboBoxList;\r
- }\r
+ private int selectedRow = -1;\r
\r
/**\r
This method initializes jButtonAdd \r
jButtonUpdate = new JButton();\r
jButtonUpdate.setBounds(new java.awt.Rectangle(315, 220, 80, 20));\r
jButtonUpdate.setPreferredSize(new java.awt.Dimension(80, 20));\r
- jButtonUpdate.setText("Update");\r
+ jButtonUpdate.setText("Edit");\r
jButtonUpdate.addActionListener(this);\r
}\r
return jButtonUpdate;\r
}\r
\r
- /**\r
- * This method initializes jScrollPaneFileList \r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneList() {\r
- if (jScrollPaneList == null) {\r
- jScrollPaneList = new JScrollPane();\r
- jScrollPaneList.setBounds(new java.awt.Rectangle(15, 245, 465, 240));\r
- jScrollPaneList.setViewportView(getJTextAreaList());\r
- jScrollPaneList.setPreferredSize(new java.awt.Dimension(465, 240));\r
- }\r
- return jScrollPaneList;\r
- }\r
-\r
/**\r
This method initializes jScrollPane \r
\r
}\r
\r
/**\r
- * This method initializes jTextAreaFileList \r
- * \r
- * @return javax.swing.JTextArea \r
- */\r
- private JTextArea getJTextAreaList() {\r
- if (jTextAreaList == null) {\r
- jTextAreaList = new JTextArea();\r
- jTextAreaList.setEditable(false);\r
-\r
+ This method initializes jScrollPaneTable \r
+ \r
+ @return javax.swing.JScrollPane \r
+ **/\r
+ private JScrollPane getJScrollPaneTable() {\r
+ if (jScrollPaneTable == null) {\r
+ jScrollPaneTable = new JScrollPane();\r
+ jScrollPaneTable.setBounds(new java.awt.Rectangle(15, 10, 470, 420));\r
+ jScrollPaneTable.setPreferredSize(new Dimension(470, 420));\r
+ jScrollPaneTable.setViewportView(getJTable());\r
}\r
- return jTextAreaList;\r
+ return jScrollPaneTable;\r
}\r
\r
/**\r
- This method initializes iCheckBoxListArch \r
+ This method initializes jTable \r
\r
- @return ICheckBoxList \r
+ @return javax.swing.JTable \r
**/\r
- private ICheckBoxList getICheckBoxListSupportedArchitectures() {\r
- if (iCheckBoxListArch == null) {\r
- iCheckBoxListArch = new ICheckBoxList();\r
- iCheckBoxListArch.addFocusListener(this);\r
- iCheckBoxListArch.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
+ private JTable getJTable() {\r
+ if (jTable == null) {\r
+ jTable = new JTable();\r
+ model = new IDefaultTableModel();\r
+ jTable = new JTable(model);\r
+ jTable.setRowHeight(20);\r
+\r
+ model.addColumn("Guid C_Name");\r
+ model.addColumn("Type");\r
+ model.addColumn("Usage");\r
+\r
+ jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTable.getSelectionModel().addListSelectionListener(this);\r
+ jTable.getModel().addTableModelListener(this);\r
+ jTable.addMouseListener(this);\r
}\r
- return iCheckBoxListArch;\r
+ return jTable;\r
+ }\r
+\r
+ public static void main(String[] args) {\r
+\r
}\r
\r
/**\r
- This method initializes jScrollPaneArch \r
- \r
- @return javax.swing.JScrollPane \r
+ This method initializes this\r
\r
**/\r
- private JScrollPane getJScrollPaneArch() {\r
- if (jScrollPaneArch == null) {\r
- jScrollPaneArch = new JScrollPane();\r
- jScrollPaneArch.setBounds(new java.awt.Rectangle(160, 135, 320, 80));\r
- jScrollPaneArch.setPreferredSize(new java.awt.Dimension(320, 80));\r
- jScrollPaneArch.setViewportView(getICheckBoxListSupportedArchitectures());\r
- }\r
- return jScrollPaneArch;\r
+ private void init() {\r
+ this.setSize(500, 515);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("Events");\r
}\r
\r
/**\r
- * This method initializes jTextFieldFeatureFlag \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldFeatureFlag() {\r
- if (jTextFieldFeatureFlag == null) {\r
- jTextFieldFeatureFlag = new JTextField();\r
- jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160,110,320,20));\r
- jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320,20));\r
- }\r
- return jTextFieldFeatureFlag;\r
- }\r
- \r
- /**\r
- This method initializes jTextFieldHelpText \r
- \r
- @return javax.swing.JTextField \r
- \r
- **/\r
- private JTextField getJTextFieldHelpText() {\r
- if (jTextFieldHelpText == null) {\r
- jTextFieldHelpText = new JTextField();\r
- jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
- jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jTextFieldHelpText;\r
- }\r
+ This method initializes this\r
+ Fill values to all fields if these values are not empty\r
+ \r
+ @param inPackageDependencies\r
\r
- public static void main(String[] args) {\r
+ **/\r
+ private void init(Events inEvents) {\r
+ init();\r
+ this.events = inEvents;\r
+\r
+ if (this.events != null) {\r
+ if (this.events.getCreateEvents() != null) {\r
+ if (this.events.getCreateEvents().getEventTypesList().size() > 0) {\r
+ for (int index = 0; index < this.events.getCreateEvents().getEventTypesList().size(); index++) {\r
+ String arg0 = events.getCreateEvents().getEventTypesList().get(index).getEventGuidCName();\r
+ String arg1 = ed.getVEventType().get(0);\r
+ String arg2 = null;\r
+ if (events.getCreateEvents().getEventTypesList().get(index).getUsage() != null) {\r
+ arg2 = events.getCreateEvents().getEventTypesList().get(index).getUsage().toString();\r
+ }\r
+\r
+ String arg3 = events.getCreateEvents().getEventTypesList().get(index).getFeatureFlag();\r
+ Vector<String> arg4 = Tools.convertListToVector(events.getCreateEvents().getEventTypesList()\r
+ .get(index).getSupArchList());\r
+ String arg5 = events.getCreateEvents().getEventTypesList().get(index).getHelpText();\r
+ id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
+ vid.addEvents(id);\r
+ }\r
+ }\r
+ }\r
+ if (this.events.getSignalEvents() != null) {\r
+ if (this.events.getSignalEvents().getEventTypesList().size() > 0) {\r
+ for (int index = 0; index < this.events.getSignalEvents().getEventTypesList().size(); index++) {\r
+ String arg0 = events.getSignalEvents().getEventTypesList().get(index).getEventGuidCName();\r
+ String arg1 = ed.getVEventType().get(1);\r
+ String arg2 = null;\r
+ if (events.getSignalEvents().getEventTypesList().get(index).getUsage() != null) {\r
+ arg2 = events.getSignalEvents().getEventTypesList().get(index).getUsage().toString();\r
+ }\r
\r
+ String arg3 = events.getSignalEvents().getEventTypesList().get(index).getFeatureFlag();\r
+ Vector<String> arg4 = Tools.convertListToVector(events.getSignalEvents().getEventTypesList()\r
+ .get(index).getSupArchList());\r
+ String arg5 = events.getSignalEvents().getEventTypesList().get(index).getHelpText();\r
+ id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
+ vid.addEvents(id);\r
+ }\r
+ }\r
+ }\r
+ }\r
+ showTable();\r
}\r
- \r
- /**\r
- This method initializes this\r
- \r
- **/\r
- private void init() {\r
- this.setSize(500, 515);\r
- this.setContentPane(getJScrollPane());\r
- this.setTitle("Events");\r
- initFrame();\r
- this.setViewMode(false);\r
- }\r
-\r
- /**\r
- This method initializes this\r
- Fill values to all fields if these values are not empty\r
- \r
- @param inPackageDependencies\r
-\r
- **/\r
- private void init(Events inEvents) {\r
- init();\r
- this.events = inEvents;\r
-\r
- if (this.events != null) {\r
- if (this.events.getCreateEvents() != null) {\r
- if (this.events.getCreateEvents().getEventTypesList().size() > 0) {\r
- for (int index = 0; index < this.events.getCreateEvents().getEventTypesList().size(); index++) {\r
- String arg0 = events.getCreateEvents().getEventTypesList().get(index).getEventGuidCName();\r
- String arg1 = ed.getVEventType().get(0);\r
- String arg2 = null;\r
- if (events.getCreateEvents().getEventTypesList().get(index).getUsage() != null) {\r
- arg2 = events.getCreateEvents().getEventTypesList().get(index).getUsage().toString(); \r
- }\r
- \r
- String arg3 = events.getCreateEvents().getEventTypesList().get(index).getFeatureFlag();\r
- Vector<String> arg4 = Tools.convertListToVector(events.getCreateEvents().getEventTypesList().get(index)\r
- .getSupArchList());\r
- String arg5 = events.getCreateEvents().getEventTypesList().get(index).getHelpText();\r
- id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
- vid.addEvents(id);\r
- }\r
- }\r
- }\r
- if (this.events.getSignalEvents() != null) {\r
- if (this.events.getSignalEvents().getEventTypesList().size() > 0) {\r
- for (int index = 0; index < this.events.getSignalEvents().getEventTypesList().size(); index++) {\r
- String arg0 = events.getSignalEvents().getEventTypesList().get(index).getEventGuidCName();\r
- String arg1 = ed.getVEventType().get(1);\r
- String arg2 = null;\r
- if (events.getSignalEvents().getEventTypesList().get(index).getUsage() != null) {\r
- arg2 = events.getSignalEvents().getEventTypesList().get(index).getUsage().toString(); \r
- }\r
-\r
- String arg3 = events.getSignalEvents().getEventTypesList().get(index).getFeatureFlag();\r
- Vector<String> arg4 = Tools.convertListToVector(events.getSignalEvents().getEventTypesList().get(index)\r
- .getSupArchList());\r
- String arg5 = events.getSignalEvents().getEventTypesList().get(index).getHelpText();\r
- id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
- vid.addEvents(id);\r
- }\r
- }\r
- }\r
- }\r
- //\r
- // Update the list\r
- //\r
- Tools.generateComboBoxByVector(jComboBoxList, vid.getEventsName());\r
- reloadListArea();\r
- }\r
\r
/**\r
This is the default constructor\r
this.setVisible(true);\r
}\r
\r
- /**\r
- Disable all components when the mode is view\r
- \r
- @param isView true - The view mode; false - The non-view mode\r
- \r
- **/\r
- public void setViewMode(boolean isView) {\r
- if (isView) {\r
- this.jComboBoxGuidC_Name.setEnabled(!isView);\r
- this.jComboBoxUsage.setEnabled(!isView);\r
- }\r
- }\r
-\r
/**\r
This method initializes jContentPane\r
\r
**/\r
private JPanel getJContentPane() {\r
if (jContentPane == null) {\r
- jLabelFeatureFlag = new JLabel();\r
- jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15,110,140,20));\r
- jLabelFeatureFlag.setText("Feature Flag");\r
- jLabelArch = new JLabel();\r
- jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 140, 20));\r
- jLabelArch.setText("Arch");\r
- jLabelUsage = new JLabel();\r
- jLabelUsage.setText("Usage");\r
- jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
- jLabelC_Name = new JLabel();\r
- jLabelC_Name.setText("Guid C_Name");\r
- jLabelC_Name.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
- jLabelEventType = new JLabel();\r
- jLabelEventType.setText("Event Type");\r
- jLabelEventType.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
- jLabelHelpText = new JLabel();\r
- jLabelHelpText.setBounds(new java.awt.Rectangle(14, 85, 140, 20));\r
- jLabelHelpText.setText("Help Text");\r
-\r
jContentPane = new JPanel();\r
jContentPane.setLayout(null);\r
jContentPane.setPreferredSize(new java.awt.Dimension(490, 490));\r
\r
- jContentPane.add(jLabelEventType, null);\r
- jContentPane.add(jLabelC_Name, null);\r
- jContentPane.add(getJComboBoxGuidC_Name(), null);\r
- jContentPane.add(jLabelUsage, null);\r
- jContentPane.add(getJComboBoxUsage(), null);\r
- jStarLabel1 = new StarLabel();\r
- jStarLabel1.setBounds(new java.awt.Rectangle(0, 10, 10, 20));\r
- jStarLabel2 = new StarLabel();\r
- jStarLabel2.setBounds(new java.awt.Rectangle(0, 35, 10, 20));\r
-\r
- jContentPane.add(jStarLabel1, null);\r
- jContentPane.add(jStarLabel2, null);\r
- jContentPane.add(getJComboBoxEventsType(), null);\r
-\r
- jContentPane.add(getJComboBoxList(), null);\r
jContentPane.add(getJButtonAdd(), null);\r
jContentPane.add(getJButtonRemove(), null);\r
jContentPane.add(getJButtonUpdate(), null);\r
- jContentPane.add(getJScrollPaneList(), null);\r
- jContentPane.add(jLabelArch, null);\r
- jContentPane.add(getJScrollPaneArch(), null);\r
- jContentPane.add(jLabelFeatureFlag, null);\r
- jContentPane.add(getJTextFieldFeatureFlag(), null);\r
- jContentPane.add(jLabelHelpText, null);\r
- jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(getJScrollPaneTable(), null);\r
}\r
return jContentPane;\r
}\r
+ \r
+ private void showEdit(int index) {\r
+ EventsDlg dlg = new EventsDlg(vid.getEvents(index), new IFrame());\r
+ int result = dlg.showDialog();\r
+ if (result == DataType.RETURN_TYPE_OK) {\r
+ if (index == -1) {\r
+ this.vid.addEvents(dlg.getId());\r
+ } else {\r
+ this.vid.setEvents(dlg.getId(), index);\r
+ }\r
+ this.showTable();\r
+ this.save();\r
+ dlg.dispose();\r
+ }\r
+ if (result == DataType.RETURN_TYPE_CANCEL) {\r
+ dlg.dispose();\r
+ }\r
+ }\r
\r
/**\r
- This method initializes events groups and usage type\r
+ Clear all table rows\r
\r
**/\r
- private void initFrame() {\r
- Tools.generateComboBoxByVector(jComboBoxEventsType, ed.getVEventType());\r
- Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVEventUsage());\r
- Tools.generateComboBoxByVector(jComboBoxGuidC_Name, wt.getAllGuidDeclarationsFromWorkspace());\r
- \r
- this.iCheckBoxListArch.setAllItems(ed.getVSupportedArchitectures());\r
+ private void clearAll() {\r
+ if (model != null) {\r
+ for (int index = model.getRowCount() - 1; index >= 0; index--) {\r
+ model.removeRow(index);\r
+ }\r
+ }\r
+ }\r
+\r
+ /**\r
+ Read content of vector and put then into table\r
+ \r
+ **/\r
+ private void showTable() {\r
+ clearAll();\r
+\r
+ if (vid.size() > 0) {\r
+ for (int index = 0; index < vid.size(); index++) {\r
+ model.addRow(vid.toStringVector(index));\r
+ }\r
+ }\r
+ this.jTable.repaint();\r
+ this.jTable.updateUI();\r
}\r
\r
/* (non-Javadoc)\r
*/\r
public void actionPerformed(ActionEvent arg0) {\r
if (arg0.getSource() == jButtonAdd) {\r
- if (!checkAdd()) {\r
- return;\r
- }\r
- addToList();\r
- }\r
- if (arg0.getSource() == jButtonRemove) {\r
- removeFromList();\r
+ showEdit(-1);\r
}\r
if (arg0.getSource() == jButtonUpdate) {\r
- if (!checkAdd()) {\r
+ if (this.selectedRow < 0) {\r
+ Log.err("Please select one record first.");\r
return;\r
}\r
- updateForList();\r
+ showEdit(selectedRow);\r
}\r
- }\r
\r
- /**\r
- Data validation for all fields\r
- \r
- @retval true - All datas are valid\r
- @retval false - At least one data is invalid\r
- \r
- **/\r
- public boolean checkAdd() {\r
- //\r
- // Check if all fields have correct data types \r
- //\r
-\r
- //\r
- // Check Name \r
- //\r
- if (isEmpty(this.jComboBoxGuidC_Name.getSelectedItem().toString())) {\r
- Log.err("Event Name couldn't be empty");\r
- return false;\r
- }\r
- \r
- if (!isEmpty(this.jComboBoxGuidC_Name.getSelectedItem().toString())) {\r
- if (!DataValidation.isC_NameType(this.jComboBoxGuidC_Name.getSelectedItem().toString())) {\r
- Log.err("Incorrect data type for Event Name");\r
- return false;\r
+ if (arg0.getSource() == jButtonRemove) {\r
+ if (jTable.isEditing()) {\r
+ jTable.getCellEditor().stopCellEditing();\r
}\r
- }\r
- \r
- //\r
- // Check FeatureFlag\r
- //\r
- if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
- if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
- Log.err("Incorrect data type for Feature Flag");\r
- return false;\r
+ if (selectedRow > -1) {\r
+ this.model.removeRow(selectedRow);\r
+ this.vid.removeEvents(selectedRow);\r
+ selectedRow = -1;\r
+ this.save();\r
}\r
}\r
-\r
- return true;\r
}\r
\r
/**\r
this.events = Events.Factory.newInstance();\r
CreateEvents ce = CreateEvents.Factory.newInstance();\r
SignalEvents se = SignalEvents.Factory.newInstance();\r
- \r
+\r
if (count > 0) {\r
for (int index = 0; index < count; index++) {\r
if (vid.getEvents(index).getType().equals(ed.getVEventType().get(0))) {\r
ce.addNewEventTypes();\r
ce.setEventTypesArray(ce.getEventTypesList().size() - 1, e);\r
}\r
- if (vid.getEvents(index).getType().equals("Protocol Notify")) {\r
+ if (vid.getEvents(index).getType().equals(ed.getVEventType().get(1))) {\r
SignalEvents.EventTypes e = SignalEvents.EventTypes.Factory.newInstance();\r
if (!isEmpty(vid.getEvents(index).getName())) {\r
e.setEventGuidCName(vid.getEvents(index).getName());\r
}\r
\r
/* (non-Javadoc)\r
- * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
- * \r
- * Override componentResized to resize all components when frame's size is changed\r
+ * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)\r
+ *\r
*/\r
- public void componentResized(ComponentEvent arg0) {\r
- int intCurrentWidth = this.getJContentPane().getWidth();\r
- int intCurrentHeight = this.getJContentPane().getHeight();\r
- int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
- int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
-\r
- resizeComponentWidth(jComboBoxEventsType, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jComboBoxGuidC_Name, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jComboBoxUsage, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldHelpText, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldFeatureFlag, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jScrollPaneArch, intCurrentWidth, intPreferredWidth);\r
- \r
- resizeComponentWidth(jComboBoxList, intCurrentWidth, intPreferredWidth);\r
- resizeComponent(jScrollPaneList, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
- relocateComponentX(jButtonAdd, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON);\r
- relocateComponentX(jButtonRemove, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON);\r
- relocateComponentX(jButtonUpdate, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON);\r
- }\r
- \r
- private EventsIdentification getCurrentEvents() {\r
- String arg0 = this.jComboBoxGuidC_Name.getSelectedItem().toString();\r
- String arg1 = this.jComboBoxEventsType.getSelectedItem().toString();\r
- String arg2 = this.jComboBoxUsage.getSelectedItem().toString();\r
-\r
- String arg3 = this.jTextFieldFeatureFlag.getText();\r
- Vector<String> arg4 = this.iCheckBoxListArch.getAllCheckedItemsString();\r
- String arg5 = this.jTextFieldHelpText.getText();\r
- id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
- return id;\r
- }\r
-\r
- /**\r
- Add current item to Vector\r
- \r
- **/\r
- private void addToList() {\r
- intSelectedItemId = vid.size();\r
-\r
- vid.addEvents(getCurrentEvents());\r
-\r
- jComboBoxList.addItem(id.getName());\r
- jComboBoxList.setSelectedItem(id.getName());\r
-\r
- //\r
- // Reset select item index\r
- //\r
- intSelectedItemId = vid.size();\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Remove current item from Vector\r
- \r
- **/\r
- private void removeFromList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
+ public void valueChanged(ListSelectionEvent arg0) {\r
+ if (arg0.getValueIsAdjusting()) {\r
return;\r
}\r
-\r
- int intTempIndex = intSelectedItemId;\r
-\r
- jComboBoxList.removeItemAt(intSelectedItemId);\r
-\r
- vid.removeEvents(intTempIndex);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Update current item of Vector\r
- \r
- **/\r
- private void updateForList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
+ ListSelectionModel lsm = (ListSelectionModel) arg0.getSource();\r
+ if (lsm.isSelectionEmpty()) {\r
return;\r
- }\r
-\r
- //\r
- // Backup selected item index\r
- //\r
- int intTempIndex = intSelectedItemId;\r
-\r
- vid.updateEvents(getCurrentEvents(), intTempIndex);\r
-\r
- jComboBoxList.removeAllItems();\r
- for (int index = 0; index < vid.size(); index++) {\r
- jComboBoxList.addItem(vid.getEvents(index).getName());\r
- }\r
-\r
- //\r
- // Restore selected item index\r
- //\r
- intSelectedItemId = intTempIndex;\r
-\r
- //\r
- // Reset select item index\r
- //\r
- jComboBoxList.setSelectedIndex(intSelectedItemId);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Refresh all fields' values of selected item of Vector\r
- \r
- **/\r
- private void reloadFromList() {\r
- if (vid.size() > 0) {\r
- //\r
- // Get selected item index\r
- //\r
- intSelectedItemId = jComboBoxList.getSelectedIndex();\r
-\r
- this.jComboBoxGuidC_Name.setSelectedItem(vid.getEvents(intSelectedItemId).getName());\r
- this.jComboBoxEventsType.setSelectedItem(vid.getEvents(intSelectedItemId).getType());\r
- this.jComboBoxUsage.setSelectedItem(vid.getEvents(intSelectedItemId).getUsage());\r
- this.jTextFieldHelpText.setText(vid.getEvents(intSelectedItemId).getHelp());\r
-\r
- jTextFieldFeatureFlag.setText(vid.getEvents(intSelectedItemId).getFeatureFlag());\r
- iCheckBoxListArch.setAllItemsUnchecked();\r
- iCheckBoxListArch.initCheckedItem(true, vid.getEvents(intSelectedItemId).getSupArchList());\r
-\r
} else {\r
+ selectedRow = lsm.getMinSelectionIndex();\r
}\r
-\r
- reloadListArea();\r
}\r
\r
- /**\r
- Update list area pane via the elements of Vector\r
- \r
- **/\r
- private void reloadListArea() {\r
- String strListItem = "";\r
- for (int index = 0; index < vid.size(); index++) {\r
- strListItem = strListItem + vid.getEvents(index).getName() + DataType.UNIX_LINE_SEPARATOR;\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
+ *\r
+ */\r
+ public void mouseClicked(MouseEvent arg0) {\r
+ if (arg0.getClickCount() == 2) {\r
+ if (this.selectedRow < 0) {\r
+ return;\r
+ } else {\r
+ showEdit(selectedRow);\r
+ }\r
}\r
- this.jTextAreaList.setText(strListItem);\r
}\r
\r
/* (non-Javadoc)\r
- * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
- *\r
- * Reflesh the frame when selected item changed\r
+ * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
* \r
+ * Override componentResized to resize all components when frame's size is changed\r
*/\r
- public void itemStateChanged(ItemEvent arg0) {\r
- if (arg0.getSource() == this.jComboBoxList && arg0.getStateChange() == ItemEvent.SELECTED) {\r
- reloadFromList();\r
- }\r
+ public void componentResized(ComponentEvent arg0) {\r
+ int intCurrentWidth = this.getJContentPane().getWidth();\r
+ int intCurrentHeight = this.getJContentPane().getHeight();\r
+ int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
+ int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
+\r
+ resizeComponent(this.jScrollPaneTable, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
+ relocateComponent(this.jButtonAdd, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_ADD_BUTTON);\r
+ relocateComponent(this.jButtonRemove, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_REMOVE_BUTTON);\r
+ relocateComponent(this.jButtonUpdate, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_UPDATE_BUTTON);\r
}\r
}\r
**/\r
package org.tianocore.frameworkwizard.module.ui;\r
\r
+import java.awt.Dimension;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ComponentEvent;\r
-import java.awt.event.ItemEvent;\r
import java.awt.event.ItemListener;\r
+import java.awt.event.MouseEvent;\r
import java.util.Vector;\r
\r
import javax.swing.JButton;\r
-import javax.swing.JComboBox;\r
-import javax.swing.JLabel;\r
import javax.swing.JPanel;\r
import javax.swing.JScrollPane;\r
-import javax.swing.JTextArea;\r
-import javax.swing.JTextField;\r
+import javax.swing.JTable;\r
+import javax.swing.ListSelectionModel;\r
+import javax.swing.event.ListSelectionEvent;\r
\r
import org.tianocore.ExternsDocument;\r
import org.tianocore.PcdDriverTypes;\r
import org.tianocore.ExternsDocument.Externs.Extern;\r
import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea;\r
import org.tianocore.frameworkwizard.common.DataType;\r
-import org.tianocore.frameworkwizard.common.DataValidation;\r
import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.IDefaultTableModel;\r
import org.tianocore.frameworkwizard.common.Log;\r
import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
-import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
import org.tianocore.frameworkwizard.module.Identifications.Externs.ExternsIdentification;\r
import org.tianocore.frameworkwizard.module.Identifications.Externs.ExternsVector;\r
+import org.tianocore.frameworkwizard.module.ui.dialog.ExternsDlg;\r
\r
/**\r
The class is used to create, update DataHub of MSA/MBD file \r
//\r
private JPanel jContentPane = null;\r
\r
- private JLabel jLabelName = null;\r
-\r
- private JComboBox jComboBoxType = null;\r
-\r
- private JTextArea jTextAreaList = null;\r
-\r
- private JComboBox jComboBoxList = null;\r
-\r
private JButton jButtonAdd = null;\r
\r
private JButton jButtonRemove = null;\r
\r
private JScrollPane jScrollPane = null;\r
\r
- private JScrollPane jScrollPaneList = null;\r
-\r
- private JLabel jLabelPcdIsDriver = null;\r
-\r
- private JComboBox jComboBoxPcdIsDriver = null;\r
-\r
- private JLabel jLabelC_Name = null;\r
-\r
- private JTextField jTextFieldC_Name = null;\r
-\r
- private JLabel jLabelFeatureFlag = null;\r
-\r
- private JLabel jLabelArch = null;\r
-\r
- private JTextField jTextFieldFeatureFlag = null;\r
-\r
- private ICheckBoxList iCheckBoxListArch = null;\r
+ private JScrollPane jScrollPaneTable = null;\r
\r
- private JScrollPane jScrollPaneArch = null;\r
+ private JTable jTable = null;\r
\r
//\r
// Not used by UI\r
//\r
- private int intSelectedItemId = 0;\r
-\r
private OpeningModuleType omt = null;\r
\r
private ModuleSurfaceArea msa = null;\r
\r
private ExternsVector vid = new ExternsVector();\r
\r
- private EnumerationData ed = new EnumerationData();\r
+ private IDefaultTableModel model = null;\r
\r
- /**\r
- This method initializes jComboBoxType \r
- \r
- @return javax.swing.JComboBox jComboBoxType\r
- \r
- **/\r
- private JComboBox getJComboBoxType() {\r
- if (jComboBoxType == null) {\r
- jComboBoxType = new JComboBox();\r
- jComboBoxType.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
- jComboBoxType.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jComboBoxType;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxFileList \r
- \r
- @return javax.swing.JComboBox jComboBoxFileList\r
- \r
- **/\r
- private JComboBox getJComboBoxList() {\r
- if (jComboBoxList == null) {\r
- jComboBoxList = new JComboBox();\r
- jComboBoxList.setBounds(new java.awt.Rectangle(15, 195, 210, 20));\r
- jComboBoxList.addItemListener(this);\r
- jComboBoxList.addActionListener(this);\r
- jComboBoxList.setPreferredSize(new java.awt.Dimension(210, 20));\r
- }\r
- return jComboBoxList;\r
- }\r
+ private int selectedRow = -1;\r
\r
/**\r
This method initializes jButtonAdd \r
jButtonUpdate = new JButton();\r
jButtonUpdate.setBounds(new java.awt.Rectangle(315, 195, 80, 20));\r
jButtonUpdate.setPreferredSize(new java.awt.Dimension(80, 20));\r
- jButtonUpdate.setText("Update");\r
+ jButtonUpdate.setText("Edit");\r
jButtonUpdate.addActionListener(this);\r
}\r
return jButtonUpdate;\r
}\r
\r
- /**\r
- * This method initializes jScrollPaneFileList \r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneList() {\r
- if (jScrollPaneList == null) {\r
- jScrollPaneList = new JScrollPane();\r
- jScrollPaneList.setBounds(new java.awt.Rectangle(15, 220, 465, 240));\r
- jScrollPaneList.setViewportView(getJTextAreaList());\r
- jScrollPaneList.setPreferredSize(new java.awt.Dimension(465, 240));\r
- }\r
- return jScrollPaneList;\r
- }\r
-\r
/**\r
This method initializes jScrollPane \r
\r
}\r
\r
/**\r
- * This method initializes jTextAreaFileList \r
- * \r
- * @return javax.swing.JTextArea \r
- */\r
- private JTextArea getJTextAreaList() {\r
- if (jTextAreaList == null) {\r
- jTextAreaList = new JTextArea();\r
- jTextAreaList.setEditable(false);\r
- }\r
- return jTextAreaList;\r
- }\r
-\r
- /**\r
- * This method initializes jComboBoxPcdIsDriver \r
- * \r
- * @return javax.swing.JComboBox \r
- */\r
- private JComboBox getJComboBoxPcdIsDriver() {\r
- if (jComboBoxPcdIsDriver == null) {\r
- jComboBoxPcdIsDriver = new JComboBox();\r
- jComboBoxPcdIsDriver.setLocation(new java.awt.Point(160, 10));\r
- jComboBoxPcdIsDriver.setPreferredSize(new java.awt.Dimension(320, 20));\r
- jComboBoxPcdIsDriver.setSize(new java.awt.Dimension(320, 20));\r
- jComboBoxPcdIsDriver.addItemListener(this);\r
- }\r
- return jComboBoxPcdIsDriver;\r
- }\r
-\r
- /**\r
- This method initializes jTextFieldC_Name \r
- \r
- @return javax.swing.JTextField \r
+ This method initializes jScrollPaneTable \r
\r
+ @return javax.swing.JScrollPane \r
**/\r
- private JTextField getJTextFieldC_Name() {\r
- if (jTextFieldC_Name == null) {\r
- jTextFieldC_Name = new JTextField();\r
- jTextFieldC_Name.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
- jTextFieldC_Name.setPreferredSize(new java.awt.Dimension(320,20));\r
+ private JScrollPane getJScrollPaneTable() {\r
+ if (jScrollPaneTable == null) {\r
+ jScrollPaneTable = new JScrollPane();\r
+ jScrollPaneTable.setBounds(new java.awt.Rectangle(15, 10, 470, 420));\r
+ jScrollPaneTable.setPreferredSize(new Dimension(470, 420));\r
+ jScrollPaneTable.setViewportView(getJTable());\r
}\r
- return jTextFieldC_Name;\r
+ return jScrollPaneTable;\r
}\r
\r
/**\r
- This method initializes jTextFieldFeatureFlag \r
- \r
- @return javax.swing.JTextField \r
+ This method initializes jTable \r
\r
+ @return javax.swing.JTable \r
**/\r
- private JTextField getJTextFieldFeatureFlag() {\r
- if (jTextFieldFeatureFlag == null) {\r
- jTextFieldFeatureFlag = new JTextField();\r
- jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
- jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ private JTable getJTable() {\r
+ if (jTable == null) {\r
+ jTable = new JTable();\r
+ model = new IDefaultTableModel();\r
+ jTable = new JTable(model);\r
+ jTable.setRowHeight(20);\r
+\r
+ model.addColumn("Name");\r
+ model.addColumn("Type");\r
+\r
+ jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTable.getSelectionModel().addListSelectionListener(this);\r
+ jTable.getModel().addTableModelListener(this);\r
+ jTable.addMouseListener(this);\r
}\r
- return jTextFieldFeatureFlag;\r
- }\r
-\r
- /**\r
- This method initializes iCheckBoxListArch \r
-\r
- @return ICheckBoxList \r
- **/\r
- private ICheckBoxList getICheckBoxListSupportedArchitectures() {\r
- if (iCheckBoxListArch == null) {\r
- iCheckBoxListArch = new ICheckBoxList();\r
- iCheckBoxListArch.addFocusListener(this);\r
- iCheckBoxListArch.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
- }\r
- return iCheckBoxListArch;\r
- }\r
-\r
- /**\r
- This method initializes jScrollPaneArch \r
-\r
- @return javax.swing.JScrollPane \r
-\r
- **/\r
- private JScrollPane getJScrollPaneArch() {\r
- if (jScrollPaneArch == null) {\r
- jScrollPaneArch = new JScrollPane();\r
- jScrollPaneArch.setBounds(new java.awt.Rectangle(160, 110, 320, 80));\r
- jScrollPaneArch.setPreferredSize(new java.awt.Dimension(320, 80));\r
- jScrollPaneArch.setViewportView(getICheckBoxListSupportedArchitectures());\r
- }\r
- return jScrollPaneArch;\r
+ return jTable;\r
}\r
\r
public static void main(String[] args) {\r
this.setSize(500, 515);\r
this.setContentPane(getJScrollPane());\r
this.setTitle("Externs");\r
- initFrame();\r
}\r
\r
/**\r
// Get PcdIsDriver\r
//\r
if (this.externs.getPcdIsDriver() != null) {\r
- this.jComboBoxPcdIsDriver.setSelectedItem(this.externs.getPcdIsDriver().toString());\r
+ String arg0 = this.externs.getPcdIsDriver().toString();\r
+ String arg1 = EnumerationData.EXTERNS_PCD_IS_DRIVER;\r
+\r
+ id = new ExternsIdentification(arg0, arg1, null, null);\r
+ vid.addExterns(id);\r
}\r
- \r
+\r
//\r
// Get specification\r
//\r
}\r
}\r
}\r
- //\r
- // Update the list\r
- //\r
- Tools.generateComboBoxByVector(jComboBoxList, vid.getExternsName());\r
- reloadListArea();\r
+ showTable();\r
}\r
\r
/**\r
**/\r
private JPanel getJContentPane() {\r
if (jContentPane == null) {\r
- jLabelC_Name = new JLabel();\r
- jLabelC_Name.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
- jLabelC_Name.setText("Value");\r
- jLabelPcdIsDriver = new JLabel();\r
- jLabelPcdIsDriver.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
- jLabelPcdIsDriver.setText("Pcd Is Driver");\r
- jLabelName = new JLabel();\r
- jLabelName.setText("Choose Type");\r
- jLabelName.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
- jLabelArch = new JLabel();\r
- jLabelArch.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
- jLabelArch.setText("Arch");\r
- jLabelFeatureFlag = new JLabel();\r
- jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
- jLabelFeatureFlag.setText("Feature Flag");\r
-\r
jContentPane = new JPanel();\r
jContentPane.setLayout(null);\r
- jContentPane.setPreferredSize(new java.awt.Dimension(490, 475));\r
-\r
- jContentPane.add(jLabelName, null);\r
- jContentPane.add(getJComboBoxType(), null);\r
- jContentPane.add(jLabelFeatureFlag, null);\r
- jContentPane.add(jLabelArch, null);\r
- jContentPane.add(getJTextFieldFeatureFlag(), null);\r
- jContentPane.add(getJScrollPaneArch(), null);\r
- \r
- jContentPane.add(getJComboBoxList(), null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 490));\r
+\r
jContentPane.add(getJButtonAdd(), null);\r
jContentPane.add(getJButtonRemove(), null);\r
jContentPane.add(getJButtonUpdate(), null);\r
- jContentPane.add(getJScrollPaneList(), null);\r
- jContentPane.add(jLabelPcdIsDriver, null);\r
- jContentPane.add(getJComboBoxPcdIsDriver(), null);\r
- jContentPane.add(jLabelC_Name, null);\r
- jContentPane.add(getJTextFieldC_Name(), null);\r
+ jContentPane.add(getJScrollPaneTable(), null);\r
}\r
return jContentPane;\r
}\r
\r
+ private void showEdit(int index) {\r
+ ExternsDlg dlg = new ExternsDlg(vid.getExterns(index), new IFrame());\r
+ int result = dlg.showDialog();\r
+ if (result == DataType.RETURN_TYPE_OK) {\r
+ if (index == -1) {\r
+ this.vid.addExterns(dlg.getId());\r
+ } else {\r
+ this.vid.setExterns(dlg.getId(), index);\r
+ }\r
+ this.showTable();\r
+ this.save();\r
+ dlg.dispose();\r
+ }\r
+ if (result == DataType.RETURN_TYPE_CANCEL) {\r
+ dlg.dispose();\r
+ }\r
+ }\r
+\r
+ /**\r
+ Clear all table rows\r
+ \r
+ **/\r
+ private void clearAll() {\r
+ if (model != null) {\r
+ for (int index = model.getRowCount() - 1; index >= 0; index--) {\r
+ model.removeRow(index);\r
+ }\r
+ }\r
+ }\r
+\r
/**\r
- This method initializes Usage type and Externs type\r
+ Read content of vector and put then into table\r
\r
**/\r
- private void initFrame() {\r
- Tools.generateComboBoxByVector(this.jComboBoxType, ed.getVExternTypes());\r
- Tools.generateComboBoxByVector(this.jComboBoxPcdIsDriver, ed.getVPcdDriverTypes());\r
- this.iCheckBoxListArch.setAllItems(ed.getVSupportedArchitectures());\r
+ private void showTable() {\r
+ clearAll();\r
+\r
+ if (vid.size() > 0) {\r
+ for (int index = 0; index < vid.size(); index++) {\r
+ model.addRow(vid.toStringVector(index));\r
+ }\r
+ }\r
+ this.jTable.repaint();\r
+ this.jTable.updateUI();\r
}\r
\r
/* (non-Javadoc)\r
*/\r
public void actionPerformed(ActionEvent arg0) {\r
if (arg0.getSource() == jButtonAdd) {\r
- if (!checkAdd()) {\r
- return;\r
- }\r
- addToList();\r
- }\r
- if (arg0.getSource() == jButtonRemove) {\r
- removeFromList();\r
+ showEdit(-1);\r
}\r
if (arg0.getSource() == jButtonUpdate) {\r
- if (!checkAdd()) {\r
+ if (this.selectedRow < 0) {\r
+ Log.err("Please select one record first.");\r
return;\r
}\r
- updateForList();\r
+ showEdit(selectedRow);\r
}\r
- }\r
\r
- /**\r
- Data validation for all fields\r
- \r
- @retval true - All datas are valid\r
- @retval false - At least one data is invalid\r
- \r
- **/\r
- public boolean checkAdd() {\r
- //\r
- // Check if all fields have correct data types \r
- //\r
-\r
- //\r
- // Check CName \r
- //\r
- if (isEmpty(this.jTextFieldC_Name.getText())) {\r
- Log.err("Value couldn't be empty");\r
- return false;\r
- }\r
-\r
- if (!isEmpty(this.jTextFieldC_Name.getText())) {\r
- if (this.jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_SPECIFICATION)) {\r
- if (!DataValidation.isSentence(this.jTextFieldC_Name.getText())) {\r
- Log.err("Incorrect data type for Specification");\r
- return false;\r
- } \r
- } else {\r
- if (!DataValidation.isC_NameType(this.jTextFieldC_Name.getText())) {\r
- Log.err("Incorrect data type for C_Name");\r
- return false;\r
- } \r
+ if (arg0.getSource() == jButtonRemove) {\r
+ if (jTable.isEditing()) {\r
+ jTable.getCellEditor().stopCellEditing();\r
}\r
- }\r
-\r
- //\r
- // Check FeatureFlag\r
- //\r
- if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
- if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
- Log.err("Incorrect data type for Feature Flag");\r
- return false;\r
+ if (selectedRow > -1) {\r
+ this.model.removeRow(selectedRow);\r
+ this.vid.removeExterns(selectedRow);\r
+ selectedRow = -1;\r
+ this.save();\r
}\r
}\r
-\r
- return true;\r
}\r
\r
/**\r
int count = this.vid.size();\r
\r
this.externs = Externs.Factory.newInstance();\r
- //\r
- // Save PcdIsDriver first\r
- //\r
- if (!this.jComboBoxPcdIsDriver.getSelectedItem().toString().equals(DataType.EMPTY_SELECT_ITEM)) {\r
- externs.setPcdIsDriver(PcdDriverTypes.Enum.forString(this.jComboBoxPcdIsDriver.getSelectedItem()\r
- .toString()));\r
- }\r
+ // //\r
+ // // Save PcdIsDriver first\r
+ // //\r
+ // if (!this.jComboBoxPcdIsDriver.getSelectedItem().toString().equals(DataType.EMPTY_SELECT_ITEM)) {\r
+ // externs.setPcdIsDriver(PcdDriverTypes.Enum.forString(this.jComboBoxPcdIsDriver.getSelectedItem()\r
+ // .toString()));\r
+ // }\r
\r
if (count > 0) {\r
for (int index = 0; index < count; index++) {\r
+ //\r
+ // Save Pcd Is Driver\r
+ //\r
+ if (vid.getExterns(index).getType().equals(EnumerationData.EXTERNS_PCD_IS_DRIVER)) {\r
+ externs.setPcdIsDriver(PcdDriverTypes.Enum.forString(vid.getExterns(index).getName()));\r
+ continue;\r
+ }\r
+\r
//\r
// Save specfication\r
//\r
}\r
\r
/* (non-Javadoc)\r
- * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
- * \r
- * Override componentResized to resize all components when frame's size is changed\r
+ * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)\r
+ *\r
*/\r
- public void componentResized(ComponentEvent arg0) {\r
- int intCurrentWidth = this.getJContentPane().getWidth();\r
- int intCurrentHeight = this.getJContentPane().getHeight();\r
- int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
- int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
-\r
- resizeComponentWidth(this.jComboBoxPcdIsDriver, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jComboBoxType, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldC_Name, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldFeatureFlag, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jScrollPaneArch, intCurrentWidth, intPreferredWidth);\r
-\r
- resizeComponentWidth(jComboBoxList, intCurrentWidth, intPreferredWidth);\r
- resizeComponent(jScrollPaneList, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
-\r
- relocateComponentX(jButtonAdd, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON);\r
- relocateComponentX(jButtonRemove, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON);\r
- relocateComponentX(jButtonUpdate, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON);\r
- }\r
-\r
- private ExternsIdentification getCurrentExterns() {\r
- String arg0 = this.jTextFieldC_Name.getText();\r
- String arg1 = this.jComboBoxType.getSelectedItem().toString();\r
-\r
- String arg2 = this.jTextFieldFeatureFlag.getText();\r
- Vector<String> arg3 = this.iCheckBoxListArch.getAllCheckedItemsString();\r
-\r
- id = new ExternsIdentification(arg0, arg1, arg2, arg3);\r
- return id;\r
- }\r
-\r
- /**\r
- Add current item to Vector\r
- \r
- **/\r
- private void addToList() {\r
- intSelectedItemId = vid.size();\r
-\r
- vid.addExterns(getCurrentExterns());\r
-\r
- jComboBoxList.addItem(id.getName());\r
- jComboBoxList.setSelectedItem(id.getName());\r
-\r
- //\r
- // Reset select item index\r
- //\r
- intSelectedItemId = vid.size();\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Remove current item from Vector\r
- \r
- **/\r
- private void removeFromList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
+ public void valueChanged(ListSelectionEvent arg0) {\r
+ if (arg0.getValueIsAdjusting()) {\r
return;\r
}\r
-\r
- int intTempIndex = intSelectedItemId;\r
-\r
- jComboBoxList.removeItemAt(intSelectedItemId);\r
-\r
- vid.removeExterns(intTempIndex);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Update current item of Vector\r
- \r
- **/\r
- private void updateForList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
+ ListSelectionModel lsm = (ListSelectionModel) arg0.getSource();\r
+ if (lsm.isSelectionEmpty()) {\r
return;\r
- }\r
-\r
- //\r
- // Backup selected item index\r
- //\r
- int intTempIndex = intSelectedItemId;\r
-\r
- vid.updateExterns(getCurrentExterns(), intTempIndex);\r
-\r
- jComboBoxList.removeAllItems();\r
- for (int index = 0; index < vid.size(); index++) {\r
- jComboBoxList.addItem(vid.getExterns(index).getName());\r
- }\r
-\r
- //\r
- // Restore selected item index\r
- //\r
- intSelectedItemId = intTempIndex;\r
-\r
- //\r
- // Reset select item index\r
- //\r
- jComboBoxList.setSelectedIndex(intSelectedItemId);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Refresh all fields' values of selected item of Vector\r
- \r
- **/\r
- private void reloadFromList() {\r
- if (vid.size() > 0) {\r
- //\r
- // Get selected item index\r
- //\r
- intSelectedItemId = jComboBoxList.getSelectedIndex();\r
-\r
- this.jTextFieldC_Name.setText(vid.getExterns(intSelectedItemId).getName());\r
- this.jComboBoxType.setSelectedItem(vid.getExterns(intSelectedItemId).getType());\r
-\r
- jTextFieldFeatureFlag.setText(vid.getExterns(intSelectedItemId).getFeatureFlag());\r
- iCheckBoxListArch.setAllItemsUnchecked();\r
- iCheckBoxListArch.initCheckedItem(true, vid.getExterns(intSelectedItemId).getSupArchList());\r
-\r
} else {\r
+ selectedRow = lsm.getMinSelectionIndex();\r
}\r
-\r
- reloadListArea();\r
- }\r
-\r
- /**\r
- Update list area pane via the elements of Vector\r
- \r
- **/\r
- private void reloadListArea() {\r
- String strListItem = "";\r
- for (int index = 0; index < vid.size(); index++) {\r
- strListItem = strListItem + vid.getExterns(index).getName() + DataType.UNIX_LINE_SEPARATOR;\r
- }\r
- this.jTextAreaList.setText(strListItem);\r
}\r
\r
/* (non-Javadoc)\r
- * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
+ * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
*\r
- * Reflesh the frame when selected item changed\r
- * \r
*/\r
- public void itemStateChanged(ItemEvent arg0) {\r
- if (arg0.getSource() == this.jComboBoxList && arg0.getStateChange() == ItemEvent.SELECTED) {\r
- reloadFromList();\r
- }\r
- if (arg0.getSource() == this.jComboBoxPcdIsDriver && arg0.getStateChange() == ItemEvent.SELECTED && externs != null) {\r
- String s = this.jComboBoxPcdIsDriver.getSelectedItem().toString();\r
- if (s.equals(DataType.EMPTY_SELECT_ITEM)) {\r
- this.externs.setPcdIsDriver(null);\r
+ public void mouseClicked(MouseEvent arg0) {\r
+ if (arg0.getClickCount() == 2) {\r
+ if (this.selectedRow < 0) {\r
+ return;\r
} else {\r
- this.externs.setPcdIsDriver(PcdDriverTypes.Enum.forString(s));\r
+ showEdit(selectedRow);\r
}\r
- this.msa.setExterns(externs);\r
- this.omt.setSaved(false);\r
}\r
}\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
+ * \r
+ * Override componentResized to resize all components when frame's size is changed\r
+ */\r
+ public void componentResized(ComponentEvent arg0) {\r
+ int intCurrentWidth = this.getJContentPane().getWidth();\r
+ int intCurrentHeight = this.getJContentPane().getHeight();\r
+ int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
+ int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
+\r
+ resizeComponent(this.jScrollPaneTable, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
+ relocateComponent(this.jButtonAdd, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_ADD_BUTTON);\r
+ relocateComponent(this.jButtonRemove, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_REMOVE_BUTTON);\r
+ relocateComponent(this.jButtonUpdate, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_UPDATE_BUTTON);\r
+ }\r
}\r
**/\r
package org.tianocore.frameworkwizard.module.ui;\r
\r
+import java.awt.Dimension;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ComponentEvent;\r
-import java.awt.event.ItemEvent;\r
+import java.awt.event.MouseEvent;\r
import java.util.Vector;\r
\r
import javax.swing.JButton;\r
-import javax.swing.JComboBox;\r
-import javax.swing.JLabel;\r
import javax.swing.JPanel;\r
import javax.swing.JScrollPane;\r
-import javax.swing.JTextArea;\r
-import javax.swing.JTextField;\r
+import javax.swing.JTable;\r
+import javax.swing.ListSelectionModel;\r
+import javax.swing.event.ListSelectionEvent;\r
\r
import org.tianocore.GuidUsage;\r
import org.tianocore.GuidsDocument;\r
import org.tianocore.GuidsDocument.Guids.GuidCNames;\r
import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea;\r
import org.tianocore.frameworkwizard.common.DataType;\r
-import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.IDefaultTableModel;\r
import org.tianocore.frameworkwizard.common.Log;\r
import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
-import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
-import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
import org.tianocore.frameworkwizard.module.Identifications.Guids.GuidsIdentification;\r
import org.tianocore.frameworkwizard.module.Identifications.Guids.GuidsVector;\r
-import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
+import org.tianocore.frameworkwizard.module.ui.dialog.GuidsDlg;\r
\r
/**\r
The class is used to create, update Guids of MSA/MBD file\r
It extends IInternalFrame\r
\r
-\r
-\r
**/\r
public class ModuleGuids extends IInternalFrame {\r
\r
//\r
private JPanel jContentPane = null;\r
\r
- private JLabel jLabelC_Name = null;\r
-\r
- private JComboBox jComboBoxCName = null;\r
-\r
- private JLabel jLabelUsage = null;\r
-\r
- private JComboBox jComboBoxUsage = null;\r
-\r
- private StarLabel jStarLabel1 = null;\r
-\r
- private StarLabel jStarLabel2 = null;\r
-\r
- private JLabel jLabelFeatureFlag = null;\r
-\r
- private JTextField jTextFieldFeatureFlag = null;\r
-\r
- private JLabel jLabelArch = null;\r
-\r
- private JTextArea jTextAreaList = null;\r
-\r
- private JComboBox jComboBoxList = null;\r
-\r
private JButton jButtonAdd = null;\r
\r
private JButton jButtonRemove = null;\r
\r
private JScrollPane jScrollPane = null;\r
\r
- private JScrollPane jScrollPaneList = null;\r
-\r
- private ICheckBoxList iCheckBoxListArch = null;\r
-\r
- private JScrollPane jScrollPaneArch = null;\r
+ private JScrollPane jScrollPaneTable = null;\r
\r
- private JLabel jLabelHelpText = null;\r
-\r
- private JTextField jTextFieldHelpText = null;\r
+ private JTable jTable = null;\r
\r
//\r
// Not used by UI\r
//\r
- private int intSelectedItemId = 0;\r
-\r
private OpeningModuleType omt = null;\r
\r
private ModuleSurfaceArea msa = null;\r
\r
private GuidsVector vid = new GuidsVector();\r
\r
- private EnumerationData ed = new EnumerationData();\r
-\r
- private WorkspaceTools wt = new WorkspaceTools();\r
-\r
- /**\r
- This method initializes jTextFieldC_Name \r
- \r
- @return javax.swing.JTextField jTextFieldC_Name\r
- \r
- **/\r
- private JComboBox getJComboBoxCName() {\r
- if (jComboBoxCName == null) {\r
- jComboBoxCName = new JComboBox();\r
- jComboBoxCName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
- jComboBoxCName.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jComboBoxCName;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxUsage \r
- \r
- @return javax.swing.JComboBox jComboBoxUsage\r
- \r
- **/\r
- private JComboBox getJComboBoxUsage() {\r
- if (jComboBoxUsage == null) {\r
- jComboBoxUsage = new JComboBox();\r
- jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
- jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jComboBoxUsage;\r
- }\r
+ private IDefaultTableModel model = null;\r
\r
- /**\r
- This method initializes jTextFieldFeatureFlag \r
- \r
- @return javax.swing.JTextField \r
- \r
- **/\r
- private JTextField getJTextFieldFeatureFlag() {\r
- if (jTextFieldFeatureFlag == null) {\r
- jTextFieldFeatureFlag = new JTextField();\r
- jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
- jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jTextFieldFeatureFlag;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxFileList \r
- \r
- @return javax.swing.JComboBox jComboBoxFileList\r
- \r
- **/\r
- private JComboBox getJComboBoxList() {\r
- if (jComboBoxList == null) {\r
- jComboBoxList = new JComboBox();\r
- jComboBoxList.setBounds(new java.awt.Rectangle(15, 195, 210, 20));\r
- jComboBoxList.addItemListener(this);\r
- jComboBoxList.addActionListener(this);\r
- jComboBoxList.setPreferredSize(new java.awt.Dimension(210, 20));\r
- }\r
- return jComboBoxList;\r
- }\r
+ private int selectedRow = -1;\r
\r
/**\r
This method initializes jButtonAdd \r
jButtonUpdate = new JButton();\r
jButtonUpdate.setBounds(new java.awt.Rectangle(315, 195, 80, 20));\r
jButtonUpdate.setPreferredSize(new java.awt.Dimension(80, 20));\r
- jButtonUpdate.setText("Update");\r
+ jButtonUpdate.setText("Edit");\r
jButtonUpdate.addActionListener(this);\r
}\r
return jButtonUpdate;\r
}\r
\r
- /**\r
- * This method initializes jScrollPaneFileList \r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneList() {\r
- if (jScrollPaneList == null) {\r
- jScrollPaneList = new JScrollPane();\r
- jScrollPaneList.setBounds(new java.awt.Rectangle(15, 220, 465, 240));\r
- jScrollPaneList.setViewportView(getJTextAreaList());\r
- jScrollPaneList.setPreferredSize(new java.awt.Dimension(465, 240));\r
- }\r
- return jScrollPaneList;\r
- }\r
-\r
/**\r
This method initializes jScrollPane \r
\r
}\r
\r
/**\r
- * This method initializes jTextAreaFileList \r
- * \r
- * @return javax.swing.JTextArea \r
- */\r
- private JTextArea getJTextAreaList() {\r
- if (jTextAreaList == null) {\r
- jTextAreaList = new JTextArea();\r
- jTextAreaList.setEditable(false);\r
-\r
- }\r
- return jTextAreaList;\r
- }\r
-\r
- /**\r
- This method initializes iCheckBoxListArch \r
-\r
- @return ICheckBoxList \r
- **/\r
- private ICheckBoxList getICheckBoxListSupportedArchitectures() {\r
- if (iCheckBoxListArch == null) {\r
- iCheckBoxListArch = new ICheckBoxList();\r
- iCheckBoxListArch.addFocusListener(this);\r
- iCheckBoxListArch.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
- }\r
- return iCheckBoxListArch;\r
- }\r
-\r
- /**\r
- This method initializes jScrollPaneArch \r
-\r
+ This method initializes jScrollPaneTable \r
+ \r
@return javax.swing.JScrollPane \r
-\r
**/\r
- private JScrollPane getJScrollPaneArch() {\r
- if (jScrollPaneArch == null) {\r
- jScrollPaneArch = new JScrollPane();\r
- jScrollPaneArch.setBounds(new java.awt.Rectangle(160, 110, 320, 80));\r
- jScrollPaneArch.setPreferredSize(new java.awt.Dimension(320, 80));\r
- jScrollPaneArch.setViewportView(getICheckBoxListSupportedArchitectures());\r
+ private JScrollPane getJScrollPaneTable() {\r
+ if (jScrollPaneTable == null) {\r
+ jScrollPaneTable = new JScrollPane();\r
+ jScrollPaneTable.setBounds(new java.awt.Rectangle(15, 10, 470, 420));\r
+ jScrollPaneTable.setPreferredSize(new Dimension(470, 420));\r
+ jScrollPaneTable.setViewportView(getJTable());\r
}\r
- return jScrollPaneArch;\r
+ return jScrollPaneTable;\r
}\r
\r
/**\r
- This method initializes jTextFieldHelpText \r
- \r
- @return javax.swing.JTextField \r
+ This method initializes jTable \r
\r
+ @return javax.swing.JTable \r
**/\r
- private JTextField getJTextFieldHelpText() {\r
- if (jTextFieldHelpText == null) {\r
- jTextFieldHelpText = new JTextField();\r
- jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
- jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ private JTable getJTable() {\r
+ if (jTable == null) {\r
+ jTable = new JTable();\r
+ model = new IDefaultTableModel();\r
+ jTable = new JTable(model);\r
+ jTable.setRowHeight(20);\r
+\r
+ model.addColumn("Guid C_Name");\r
+ model.addColumn("Usage");\r
+\r
+ jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTable.getSelectionModel().addListSelectionListener(this);\r
+ jTable.getModel().addTableModelListener(this);\r
+ jTable.addMouseListener(this);\r
}\r
- return jTextFieldHelpText;\r
+ return jTable;\r
}\r
\r
public static void main(String[] args) {\r
this.setSize(500, 515);\r
this.setContentPane(getJScrollPane());\r
this.setTitle("Guids");\r
- initFrame();\r
- this.setViewMode(false);\r
}\r
\r
/**\r
String arg0 = guids.getGuidCNamesList().get(index).getGuidCName();\r
String arg1 = null;\r
if (guids.getGuidCNamesList().get(index).getUsage() != null) {\r
- arg1 = guids.getGuidCNamesList().get(index).getUsage().toString(); \r
+ arg1 = guids.getGuidCNamesList().get(index).getUsage().toString();\r
}\r
\r
String arg2 = guids.getGuidCNamesList().get(index).getFeatureFlag();\r
}\r
}\r
}\r
- //\r
- // Update the list\r
- //\r
- Tools.generateComboBoxByVector(jComboBoxList, vid.getGuidsName());\r
- reloadListArea();\r
+ showTable();\r
}\r
\r
/**\r
this.setVisible(true);\r
}\r
\r
- /**\r
- Disable all components when the mode is view\r
- \r
- @param isView true - The view mode; false - The non-view mode\r
- \r
- **/\r
- public void setViewMode(boolean isView) {\r
- if (isView) {\r
- this.jComboBoxUsage.setEnabled(!isView);\r
- }\r
- }\r
-\r
/**\r
This method initializes jContentPane\r
\r
**/\r
private JPanel getJContentPane() {\r
if (jContentPane == null) {\r
- jLabelUsage = new JLabel();\r
- jLabelUsage.setText("Usage");\r
- jLabelUsage.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
- jLabelC_Name = new JLabel();\r
- jLabelC_Name.setText("C_Name");\r
- jLabelC_Name.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
- jLabelArch = new JLabel();\r
- jLabelArch.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
- jLabelArch.setText("Arch");\r
- jLabelFeatureFlag = new JLabel();\r
- jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
- jLabelFeatureFlag.setText("Feature Flag");\r
- jLabelHelpText = new JLabel();\r
- jLabelHelpText.setBounds(new java.awt.Rectangle(14, 60, 140, 20));\r
- jLabelHelpText.setText("Help Text");\r
-\r
jContentPane = new JPanel();\r
jContentPane.setLayout(null);\r
- jContentPane.setPreferredSize(new java.awt.Dimension(490, 475));\r
-\r
- jContentPane.add(jLabelC_Name, null);\r
- jContentPane.add(getJComboBoxCName(), null);\r
- jContentPane.add(jLabelUsage, null);\r
- jContentPane.add(getJComboBoxUsage(), null);\r
- jContentPane.add(jLabelFeatureFlag, null);\r
- jContentPane.add(jLabelArch, null);\r
- jContentPane.add(getJTextFieldFeatureFlag(), null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 490));\r
\r
- jStarLabel1 = new StarLabel();\r
- jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
- jStarLabel2 = new StarLabel();\r
- jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
-\r
- jContentPane.add(jStarLabel1, null);\r
- jContentPane.add(jStarLabel2, null);\r
-\r
- jContentPane.add(getJComboBoxList(), null);\r
jContentPane.add(getJButtonAdd(), null);\r
jContentPane.add(getJButtonRemove(), null);\r
jContentPane.add(getJButtonUpdate(), null);\r
- jContentPane.add(getJScrollPaneList(), null);\r
- jContentPane.add(getJScrollPaneArch(), null);\r
- jContentPane.add(jLabelHelpText, null);\r
- jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(getJScrollPaneTable(), null);\r
+ }\r
+ return jContentPane;\r
+ }\r
\r
- initFrame();\r
+ private void showEdit(int index) {\r
+ GuidsDlg dlg = new GuidsDlg(vid.getGuids(index), new IFrame());\r
+ int result = dlg.showDialog();\r
+ if (result == DataType.RETURN_TYPE_OK) {\r
+ if (index == -1) {\r
+ this.vid.addGuids(dlg.getId());\r
+ } else {\r
+ this.vid.setGuids(dlg.getId(), index);\r
+ }\r
+ this.showTable();\r
+ this.save();\r
+ dlg.dispose();\r
+ }\r
+ if (result == DataType.RETURN_TYPE_CANCEL) {\r
+ dlg.dispose();\r
+ }\r
+ }\r
\r
+ /**\r
+ Clear all table rows\r
+ \r
+ **/\r
+ private void clearAll() {\r
+ if (model != null) {\r
+ for (int index = model.getRowCount() - 1; index >= 0; index--) {\r
+ model.removeRow(index);\r
+ }\r
}\r
- return jContentPane;\r
}\r
\r
/**\r
- This method initializes Usage type\r
+ Read content of vector and put then into table\r
\r
**/\r
- private void initFrame() {\r
- Tools.generateComboBoxByVector(jComboBoxCName, wt.getAllGuidDeclarationsFromWorkspace());\r
- Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVGuidUsage());\r
- this.iCheckBoxListArch.setAllItems(ed.getVSupportedArchitectures());\r
+ private void showTable() {\r
+ clearAll();\r
+\r
+ if (vid.size() > 0) {\r
+ for (int index = 0; index < vid.size(); index++) {\r
+ model.addRow(vid.toStringVector(index));\r
+ }\r
+ }\r
+ this.jTable.repaint();\r
+ this.jTable.updateUI();\r
}\r
\r
/* (non-Javadoc)\r
*/\r
public void actionPerformed(ActionEvent arg0) {\r
if (arg0.getSource() == jButtonAdd) {\r
- if (!checkAdd()) {\r
- return;\r
- }\r
- addToList();\r
- }\r
- if (arg0.getSource() == jButtonRemove) {\r
- removeFromList();\r
+ showEdit(-1);\r
}\r
if (arg0.getSource() == jButtonUpdate) {\r
- if (!checkAdd()) {\r
+ if (this.selectedRow < 0) {\r
+ Log.err("Please select one record first.");\r
return;\r
}\r
- updateForList();\r
+ showEdit(selectedRow);\r
}\r
- }\r
\r
- /**\r
- Data validation for all fields\r
- \r
- @retval true - All datas are valid\r
- @retval false - At least one data is invalid\r
- \r
- **/\r
- public boolean checkAdd() {\r
- //\r
- // Check if all fields have correct data types \r
- //\r
-\r
- //\r
- // Check Name \r
- //\r
- if (!isEmpty(this.jComboBoxCName.getSelectedItem().toString())) {\r
- if (!DataValidation.isC_NameType(this.jComboBoxCName.getSelectedItem().toString())) {\r
- Log.err("Incorrect data type for Guid Name");\r
- return false;\r
+ if (arg0.getSource() == jButtonRemove) {\r
+ if (jTable.isEditing()) {\r
+ jTable.getCellEditor().stopCellEditing();\r
}\r
- }\r
-\r
- //\r
- // Check FeatureFlag\r
- //\r
- if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
- if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
- Log.err("Incorrect data type for Feature Flag");\r
- return false;\r
+ if (selectedRow > -1) {\r
+ this.model.removeRow(selectedRow);\r
+ this.vid.removeGuids(selectedRow);\r
+ selectedRow = -1;\r
+ this.save();\r
}\r
}\r
-\r
- return true;\r
}\r
\r
/**\r
}\r
\r
/* (non-Javadoc)\r
- * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
- * \r
- * Override componentResized to resize all components when frame's size is changed\r
+ * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)\r
+ *\r
*/\r
- public void componentResized(ComponentEvent arg0) {\r
- int intCurrentWidth = this.getJContentPane().getWidth();\r
- int intCurrentHeight = this.getJContentPane().getHeight();\r
- int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
- int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
-\r
- resizeComponentWidth(jComboBoxCName, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jComboBoxUsage, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldHelpText, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldFeatureFlag, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jScrollPaneArch, intCurrentWidth, intPreferredWidth);\r
-\r
- resizeComponentWidth(jComboBoxList, intCurrentWidth, intPreferredWidth);\r
- resizeComponent(jScrollPaneList, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
-\r
- relocateComponentX(jButtonAdd, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON);\r
- relocateComponentX(jButtonRemove, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON);\r
- relocateComponentX(jButtonUpdate, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON);\r
- }\r
-\r
- private GuidsIdentification getCurrentGuids() {\r
- String arg0 = this.jComboBoxCName.getSelectedItem().toString();\r
- String arg1 = this.jComboBoxUsage.getSelectedItem().toString();\r
-\r
- String arg2 = this.jTextFieldFeatureFlag.getText();\r
- Vector<String> arg3 = this.iCheckBoxListArch.getAllCheckedItemsString();\r
- String arg4 = this.jTextFieldHelpText.getText();\r
-\r
- id = new GuidsIdentification(arg0, arg1, arg2, arg3, arg4);\r
- return id;\r
- }\r
-\r
- /**\r
- Add current item to Vector\r
- \r
- **/\r
- private void addToList() {\r
- intSelectedItemId = vid.size();\r
-\r
- vid.addGuids(getCurrentGuids());\r
-\r
- jComboBoxList.addItem(id.getName());\r
- jComboBoxList.setSelectedItem(id.getName());\r
-\r
- //\r
- // Reset select item index\r
- //\r
- intSelectedItemId = vid.size();\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Remove current item from Vector\r
- \r
- **/\r
- private void removeFromList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
+ public void valueChanged(ListSelectionEvent arg0) {\r
+ if (arg0.getValueIsAdjusting()) {\r
return;\r
}\r
-\r
- int intTempIndex = intSelectedItemId;\r
-\r
- jComboBoxList.removeItemAt(intSelectedItemId);\r
-\r
- vid.removeGuids(intTempIndex);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Update current item of Vector\r
- \r
- **/\r
- private void updateForList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
+ ListSelectionModel lsm = (ListSelectionModel) arg0.getSource();\r
+ if (lsm.isSelectionEmpty()) {\r
return;\r
- }\r
-\r
- //\r
- // Backup selected item index\r
- //\r
- int intTempIndex = intSelectedItemId;\r
-\r
- vid.updateGuids(getCurrentGuids(), intTempIndex);\r
-\r
- jComboBoxList.removeAllItems();\r
- for (int index = 0; index < vid.size(); index++) {\r
- jComboBoxList.addItem(vid.getGuids(index).getName());\r
- }\r
-\r
- //\r
- // Restore selected item index\r
- //\r
- intSelectedItemId = intTempIndex;\r
-\r
- //\r
- // Reset select item index\r
- //\r
- jComboBoxList.setSelectedIndex(intSelectedItemId);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Refresh all fields' values of selected item of Vector\r
- \r
- **/\r
- private void reloadFromList() {\r
- if (vid.size() > 0) {\r
- //\r
- // Get selected item index\r
- //\r
- intSelectedItemId = jComboBoxList.getSelectedIndex();\r
-\r
- this.jComboBoxCName.setSelectedItem(vid.getGuids(intSelectedItemId).getName());\r
- this.jComboBoxUsage.setSelectedItem(vid.getGuids(intSelectedItemId).getUsage());\r
- this.jTextFieldHelpText.setText(vid.getGuids(intSelectedItemId).getHelp());\r
-\r
- jTextFieldFeatureFlag.setText(vid.getGuids(intSelectedItemId).getFeatureFlag());\r
- iCheckBoxListArch.setAllItemsUnchecked();\r
- iCheckBoxListArch.initCheckedItem(true, vid.getGuids(intSelectedItemId).getSupArchList());\r
-\r
} else {\r
+ selectedRow = lsm.getMinSelectionIndex();\r
}\r
-\r
- reloadListArea();\r
}\r
\r
- /**\r
- Update list area pane via the elements of Vector\r
- \r
- **/\r
- private void reloadListArea() {\r
- String strListItem = "";\r
- for (int index = 0; index < vid.size(); index++) {\r
- strListItem = strListItem + vid.getGuids(index).getName() + DataType.UNIX_LINE_SEPARATOR;\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
+ *\r
+ */\r
+ public void mouseClicked(MouseEvent arg0) {\r
+ if (arg0.getClickCount() == 2) {\r
+ if (this.selectedRow < 0) {\r
+ return;\r
+ } else {\r
+ showEdit(selectedRow);\r
+ }\r
}\r
- this.jTextAreaList.setText(strListItem);\r
}\r
\r
/* (non-Javadoc)\r
- * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
- *\r
- * Reflesh the frame when selected item changed\r
+ * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
* \r
+ * Override componentResized to resize all components when frame's size is changed\r
*/\r
- public void itemStateChanged(ItemEvent arg0) {\r
- if (arg0.getSource() == this.jComboBoxList && arg0.getStateChange() == ItemEvent.SELECTED) {\r
- reloadFromList();\r
- }\r
+ public void componentResized(ComponentEvent arg0) {\r
+ int intCurrentWidth = this.getJContentPane().getWidth();\r
+ int intCurrentHeight = this.getJContentPane().getHeight();\r
+ int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
+ int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
+\r
+ resizeComponent(this.jScrollPaneTable, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
+ relocateComponent(this.jButtonAdd, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_ADD_BUTTON);\r
+ relocateComponent(this.jButtonRemove, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_REMOVE_BUTTON);\r
+ relocateComponent(this.jButtonUpdate, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_UPDATE_BUTTON);\r
}\r
}\r
**/\r
package org.tianocore.frameworkwizard.module.ui;\r
\r
+import java.awt.Dimension;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ComponentEvent;\r
-import java.awt.event.ItemEvent;\r
+import java.awt.event.MouseEvent;\r
import java.util.Vector;\r
\r
import javax.swing.JButton;\r
-import javax.swing.JComboBox;\r
-import javax.swing.JLabel;\r
import javax.swing.JPanel;\r
import javax.swing.JScrollPane;\r
-import javax.swing.JTextArea;\r
-import javax.swing.JTextField;\r
+import javax.swing.JTable;\r
+import javax.swing.ListSelectionModel;\r
+import javax.swing.event.ListSelectionEvent;\r
\r
import org.tianocore.HiiPackageUsage;\r
import org.tianocore.HiiPackagesDocument;\r
import org.tianocore.HiiPackagesDocument.HiiPackages.HiiPackage;\r
import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea;\r
import org.tianocore.frameworkwizard.common.DataType;\r
-import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.IDefaultTableModel;\r
import org.tianocore.frameworkwizard.common.Log;\r
import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
-import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
-import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
import org.tianocore.frameworkwizard.module.Identifications.HiiPackages.HiiPackagesIdentification;\r
import org.tianocore.frameworkwizard.module.Identifications.HiiPackages.HiiPackagesVector;\r
+import org.tianocore.frameworkwizard.module.ui.dialog.HiiPackagesDlg;\r
\r
/**\r
The class is used to create, update Formset of MSA/MBD file\r
It extends IInternalFrame\r
- \r
-\r
\r
**/\r
public class ModuleHiiPackages extends IInternalFrame {\r
//\r
private JPanel jContentPane = null;\r
\r
- private JLabel jLabelName = null;\r
-\r
- private JTextField jTextFieldName = null;\r
-\r
- private JLabel jLabelUsage = null;\r
-\r
- private JComboBox jComboBoxUsage = null;\r
-\r
- private StarLabel jStarLabel1 = null;\r
-\r
- private StarLabel jStarLabel2 = null;\r
-\r
- private JLabel jLabelFeatureFlag = null;\r
-\r
- private JTextField jTextFieldFeatureFlag = null;\r
-\r
- private JLabel jLabelArch = null;\r
-\r
- private JTextArea jTextAreaList = null;\r
-\r
- private JComboBox jComboBoxList = null;\r
-\r
private JButton jButtonAdd = null;\r
\r
private JButton jButtonRemove = null;\r
\r
private JScrollPane jScrollPane = null;\r
\r
- private JScrollPane jScrollPaneList = null;\r
-\r
- private ICheckBoxList iCheckBoxListArch = null;\r
-\r
- private JScrollPane jScrollPaneArch = null;\r
+ private JScrollPane jScrollPaneTable = null;\r
\r
- private JLabel jLabelHelpText = null;\r
-\r
- private JTextField jTextFieldHelpText = null;\r
+ private JTable jTable = null;\r
\r
//\r
// Not used by UI\r
//\r
- private int intSelectedItemId = 0;\r
-\r
private OpeningModuleType omt = null;\r
\r
private ModuleSurfaceArea msa = null;\r
\r
private HiiPackagesVector vid = new HiiPackagesVector();\r
\r
- private EnumerationData ed = new EnumerationData();\r
-\r
- /**\r
- This method initializes jTextFieldName \r
- \r
- @return javax.swing.JTextField jTextFieldName\r
- \r
- **/\r
- private JTextField getJTextFieldName() {\r
- if (jTextFieldName == null) {\r
- jTextFieldName = new JTextField();\r
- jTextFieldName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
- jTextFieldName.setPreferredSize(new java.awt.Dimension(320, 20));\r
- jTextFieldName.setToolTipText("Enter the C Name of the HII Package");\r
- }\r
- return jTextFieldName;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxUsage \r
- \r
- @return javax.swing.JComboBox jComboBoxUsage\r
- \r
- **/\r
- private JComboBox getJComboBoxUsage() {\r
- if (jComboBoxUsage == null) {\r
- jComboBoxUsage = new JComboBox();\r
- jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
- jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jComboBoxUsage;\r
- }\r
+ private IDefaultTableModel model = null;\r
\r
- /**\r
- * This method initializes jTextFieldFeatureFlag \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldFeatureFlag() {\r
- if (jTextFieldFeatureFlag == null) {\r
- jTextFieldFeatureFlag = new JTextField();\r
- jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
- jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jTextFieldFeatureFlag;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxFileList \r
- \r
- @return javax.swing.JComboBox jComboBoxFileList\r
- \r
- **/\r
- private JComboBox getJComboBoxList() {\r
- if (jComboBoxList == null) {\r
- jComboBoxList = new JComboBox();\r
- jComboBoxList.setBounds(new java.awt.Rectangle(15, 195, 210, 20));\r
- jComboBoxList.addItemListener(this);\r
- jComboBoxList.addActionListener(this);\r
- jComboBoxList.setPreferredSize(new java.awt.Dimension(210, 20));\r
- }\r
- return jComboBoxList;\r
- }\r
+ private int selectedRow = -1;\r
\r
/**\r
This method initializes jButtonAdd \r
jButtonUpdate = new JButton();\r
jButtonUpdate.setBounds(new java.awt.Rectangle(315, 195, 80, 20));\r
jButtonUpdate.setPreferredSize(new java.awt.Dimension(80, 20));\r
- jButtonUpdate.setText("Update");\r
+ jButtonUpdate.setText("Edit");\r
jButtonUpdate.addActionListener(this);\r
}\r
return jButtonUpdate;\r
}\r
\r
- /**\r
- * This method initializes jScrollPaneFileList \r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneList() {\r
- if (jScrollPaneList == null) {\r
- jScrollPaneList = new JScrollPane();\r
- jScrollPaneList.setBounds(new java.awt.Rectangle(15, 220, 465, 240));\r
- jScrollPaneList.setViewportView(getJTextAreaList());\r
- jScrollPaneList.setPreferredSize(new java.awt.Dimension(465, 240));\r
- }\r
- return jScrollPaneList;\r
- }\r
-\r
/**\r
This method initializes jScrollPane \r
\r
}\r
\r
/**\r
- * This method initializes jTextAreaFileList \r
- * \r
- * @return javax.swing.JTextArea \r
- */\r
- private JTextArea getJTextAreaList() {\r
- if (jTextAreaList == null) {\r
- jTextAreaList = new JTextArea();\r
- jTextAreaList.setEditable(false);\r
-\r
- }\r
- return jTextAreaList;\r
- }\r
-\r
- /**\r
- This method initializes jTextFieldHelpText \r
- \r
- @return javax.swing.JTextField \r
+ This method initializes jScrollPaneTable \r
\r
+ @return javax.swing.JScrollPane \r
**/\r
- private JTextField getJTextFieldHelpText() {\r
- if (jTextFieldHelpText == null) {\r
- jTextFieldHelpText = new JTextField();\r
- jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
- jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jTextFieldHelpText;\r
- }\r
-\r
- /**\r
- This method initializes iCheckBoxListArch \r
-\r
- @return ICheckBoxList \r
- **/\r
- private ICheckBoxList getICheckBoxListSupportedArchitectures() {\r
- if (iCheckBoxListArch == null) {\r
- iCheckBoxListArch = new ICheckBoxList();\r
- iCheckBoxListArch.addFocusListener(this);\r
- iCheckBoxListArch.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
+ private JScrollPane getJScrollPaneTable() {\r
+ if (jScrollPaneTable == null) {\r
+ jScrollPaneTable = new JScrollPane();\r
+ jScrollPaneTable.setBounds(new java.awt.Rectangle(15, 10, 470, 420));\r
+ jScrollPaneTable.setPreferredSize(new Dimension(470, 420));\r
+ jScrollPaneTable.setViewportView(getJTable());\r
}\r
- return iCheckBoxListArch;\r
+ return jScrollPaneTable;\r
}\r
\r
/**\r
- This method initializes jScrollPaneArch \r
-\r
- @return javax.swing.JScrollPane \r
-\r
+ This method initializes jTable \r
+ \r
+ @return javax.swing.JTable \r
**/\r
- private JScrollPane getJScrollPaneArch() {\r
- if (jScrollPaneArch == null) {\r
- jScrollPaneArch = new JScrollPane();\r
- jScrollPaneArch.setBounds(new java.awt.Rectangle(160, 110, 320, 80));\r
- jScrollPaneArch.setPreferredSize(new java.awt.Dimension(320, 80));\r
- jScrollPaneArch.setViewportView(getICheckBoxListSupportedArchitectures());\r
+ private JTable getJTable() {\r
+ if (jTable == null) {\r
+ jTable = new JTable();\r
+ model = new IDefaultTableModel();\r
+ jTable = new JTable(model);\r
+ jTable.setRowHeight(20);\r
+\r
+ model.addColumn("Hii Package C_Name");\r
+ model.addColumn("Usage");\r
+\r
+ jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTable.getSelectionModel().addListSelectionListener(this);\r
+ jTable.getModel().addTableModelListener(this);\r
+ jTable.addMouseListener(this);\r
}\r
- return jScrollPaneArch;\r
+ return jTable;\r
}\r
\r
public static void main(String[] args) {\r
this.setSize(500, 515);\r
this.setContentPane(getJScrollPane());\r
this.setTitle("Hii Packages");\r
- initFrame();\r
- this.setViewMode(false);\r
}\r
\r
/**\r
String arg0 = hiiPackages.getHiiPackageList().get(index).getHiiCName();\r
String arg1 = null;\r
if (hiiPackages.getHiiPackageList().get(index).getUsage() != null) {\r
- arg1 = hiiPackages.getHiiPackageList().get(index).getUsage().toString(); \r
+ arg1 = hiiPackages.getHiiPackageList().get(index).getUsage().toString();\r
}\r
\r
String arg2 = hiiPackages.getHiiPackageList().get(index).getFeatureFlag();\r
Vector<String> arg3 = Tools.convertListToVector(hiiPackages.getHiiPackageList().get(index)\r
.getSupArchList());\r
String arg4 = hiiPackages.getHiiPackageList().get(index).getHelpText();\r
- \r
+\r
id = new HiiPackagesIdentification(arg0, arg1, arg2, arg3, arg4);\r
vid.addHiiPackages(id);\r
}\r
}\r
}\r
- //\r
- // Update the list\r
- //\r
- Tools.generateComboBoxByVector(jComboBoxList, vid.getHiiPackagesName());\r
- reloadListArea();\r
+ showTable();\r
}\r
\r
/**\r
this.setVisible(true);\r
}\r
\r
- /**\r
- Disable all components when the mode is view\r
- \r
- @param isView true - The view mode; false - The non-view mode\r
- \r
- **/\r
- public void setViewMode(boolean isView) {\r
- if (isView) {\r
- this.jTextFieldName.setEnabled(!isView);\r
- this.jComboBoxUsage.setEnabled(!isView);\r
- }\r
- }\r
-\r
/**\r
This method initializes jContentPane\r
\r
**/\r
private JPanel getJContentPane() {\r
if (jContentPane == null) {\r
- jLabelUsage = new JLabel();\r
- jLabelUsage.setText("Usage");\r
- jLabelUsage.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
- jLabelName = new JLabel();\r
- jLabelName.setText("Name");\r
- jLabelName.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
- jLabelArch = new JLabel();\r
- jLabelArch.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
- jLabelArch.setText("Arch");\r
- jLabelFeatureFlag = new JLabel();\r
- jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
- jLabelFeatureFlag.setText("Feature Flag");\r
- jLabelHelpText = new JLabel();\r
- jLabelHelpText.setBounds(new java.awt.Rectangle(14, 60, 140, 20));\r
- jLabelHelpText.setText("Help Text");\r
-\r
jContentPane = new JPanel();\r
jContentPane.setLayout(null);\r
- jContentPane.setPreferredSize(new java.awt.Dimension(490, 475));\r
-\r
- jContentPane.add(jLabelName, null);\r
- jContentPane.add(jLabelUsage, null);\r
- jContentPane.add(getJTextFieldName(), null);\r
- jContentPane.add(getJComboBoxUsage(), null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 490));\r
\r
- jContentPane.add(jLabelFeatureFlag, null);\r
- jContentPane.add(jLabelArch, null);\r
- jContentPane.add(getJTextFieldFeatureFlag(), null);\r
-\r
- jStarLabel1 = new StarLabel();\r
- jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
- jStarLabel2 = new StarLabel();\r
- jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
-\r
- jContentPane.add(jStarLabel1, null);\r
- jContentPane.add(jStarLabel2, null);\r
-\r
- jContentPane.add(getJComboBoxList(), null);\r
jContentPane.add(getJButtonAdd(), null);\r
jContentPane.add(getJButtonRemove(), null);\r
jContentPane.add(getJButtonUpdate(), null);\r
- jContentPane.add(getJScrollPaneList(), null);\r
- jContentPane.add(getJScrollPaneArch(), null);\r
- jContentPane.add(jLabelHelpText, null);\r
- jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(getJScrollPaneTable(), null);\r
}\r
return jContentPane;\r
}\r
\r
+ private void showEdit(int index) {\r
+ HiiPackagesDlg dlg = new HiiPackagesDlg(vid.getHiiPackages(index), new IFrame());\r
+ int result = dlg.showDialog();\r
+ if (result == DataType.RETURN_TYPE_OK) {\r
+ if (index == -1) {\r
+ this.vid.addHiiPackages(dlg.getId());\r
+ } else {\r
+ this.vid.setHiiPackages(dlg.getId(), index);\r
+ }\r
+ this.showTable();\r
+ this.save();\r
+ dlg.dispose();\r
+ }\r
+ if (result == DataType.RETURN_TYPE_CANCEL) {\r
+ dlg.dispose();\r
+ }\r
+ }\r
+\r
/**\r
- This method initializes Usage type\r
+ Clear all table rows\r
\r
**/\r
- private void initFrame() {\r
- Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVHiiPackageUsage());\r
- this.iCheckBoxListArch.setAllItems(ed.getVSupportedArchitectures());\r
+ private void clearAll() {\r
+ if (model != null) {\r
+ for (int index = model.getRowCount() - 1; index >= 0; index--) {\r
+ model.removeRow(index);\r
+ }\r
+ }\r
+ }\r
+\r
+ /**\r
+ Read content of vector and put then into table\r
+ \r
+ **/\r
+ private void showTable() {\r
+ clearAll();\r
+\r
+ if (vid.size() > 0) {\r
+ for (int index = 0; index < vid.size(); index++) {\r
+ model.addRow(vid.toStringVector(index));\r
+ }\r
+ }\r
+ this.jTable.repaint();\r
+ this.jTable.updateUI();\r
}\r
\r
/* (non-Javadoc)\r
*/\r
public void actionPerformed(ActionEvent arg0) {\r
if (arg0.getSource() == jButtonAdd) {\r
- if (!checkAdd()) {\r
- return;\r
- }\r
- addToList();\r
- }\r
- if (arg0.getSource() == jButtonRemove) {\r
- removeFromList();\r
+ showEdit(-1);\r
}\r
if (arg0.getSource() == jButtonUpdate) {\r
- if (!checkAdd()) {\r
+ if (this.selectedRow < 0) {\r
+ Log.err("Please select one record first.");\r
return;\r
}\r
- updateForList();\r
+ showEdit(selectedRow);\r
}\r
- }\r
\r
- /**\r
- Data validation for all fields\r
- \r
- @retval true - All datas are valid\r
- @retval false - At least one data is invalid\r
- \r
- **/\r
- public boolean checkAdd() {\r
- //\r
- // Check if all fields have correct data types \r
- //\r
-\r
- //\r
- // Check Hii Package Name \r
- //\r
- if (isEmpty(this.jTextFieldName.getText())) {\r
- Log.err("Hii Package Name Record couldn't be empty");\r
- return false;\r
- }\r
-\r
- if (!isEmpty(this.jTextFieldName.getText())) {\r
- if (!DataValidation.isC_NameType(this.jTextFieldName.getText())) {\r
- Log.err("Incorrect data type for Hii Package Name");\r
- return false;\r
+ if (arg0.getSource() == jButtonRemove) {\r
+ if (jTable.isEditing()) {\r
+ jTable.getCellEditor().stopCellEditing();\r
}\r
- }\r
-\r
- //\r
- // Check FeatureFlag\r
- //\r
- if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
- if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
- Log.err("Incorrect data type for Feature Flag");\r
- return false;\r
+ if (selectedRow > -1) {\r
+ this.model.removeRow(selectedRow);\r
+ this.vid.removeHiiPackages(selectedRow);\r
+ selectedRow = -1;\r
+ this.save();\r
}\r
}\r
-\r
- return true;\r
}\r
\r
/**\r
}\r
\r
/* (non-Javadoc)\r
- * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
- * \r
- * Override componentResized to resize all components when frame's size is changed\r
+ * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)\r
+ *\r
*/\r
- public void componentResized(ComponentEvent arg0) {\r
- int intCurrentWidth = this.getJContentPane().getWidth();\r
- int intCurrentHeight = this.getJContentPane().getHeight();\r
- int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
- int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
-\r
- resizeComponentWidth(jTextFieldName, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jComboBoxUsage, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldHelpText, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldFeatureFlag, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jScrollPaneArch, intCurrentWidth, intPreferredWidth);\r
-\r
- resizeComponentWidth(jComboBoxList, intCurrentWidth, intPreferredWidth);\r
- resizeComponent(jScrollPaneList, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
-\r
- relocateComponentX(jButtonAdd, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON);\r
- relocateComponentX(jButtonRemove, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON);\r
- relocateComponentX(jButtonUpdate, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON);\r
- }\r
-\r
- private HiiPackagesIdentification getCurrentHiiPackages() {\r
- String arg0 = this.jTextFieldName.getText();\r
- String arg1 = this.jComboBoxUsage.getSelectedItem().toString();\r
-\r
- String arg2 = this.jTextFieldFeatureFlag.getText();\r
- Vector<String> arg3 = this.iCheckBoxListArch.getAllCheckedItemsString();\r
- String arg4 = this.jTextFieldHelpText.getText();\r
- \r
- id = new HiiPackagesIdentification(arg0, arg1, arg2, arg3, arg4);\r
- return id;\r
- }\r
-\r
- /**\r
- Add current item to Vector\r
- \r
- **/\r
- private void addToList() {\r
- intSelectedItemId = vid.size();\r
-\r
- vid.addHiiPackages(getCurrentHiiPackages());\r
-\r
- jComboBoxList.addItem(id.getName());\r
- jComboBoxList.setSelectedItem(id.getName());\r
-\r
- //\r
- // Reset select item index\r
- //\r
- intSelectedItemId = vid.size();\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Remove current item from Vector\r
- \r
- **/\r
- private void removeFromList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
+ public void valueChanged(ListSelectionEvent arg0) {\r
+ if (arg0.getValueIsAdjusting()) {\r
return;\r
}\r
-\r
- int intTempIndex = intSelectedItemId;\r
-\r
- jComboBoxList.removeItemAt(intSelectedItemId);\r
-\r
- vid.removeHiiPackages(intTempIndex);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Update current item of Vector\r
- \r
- **/\r
- private void updateForList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
+ ListSelectionModel lsm = (ListSelectionModel) arg0.getSource();\r
+ if (lsm.isSelectionEmpty()) {\r
return;\r
- }\r
-\r
- //\r
- // Backup selected item index\r
- //\r
- int intTempIndex = intSelectedItemId;\r
-\r
- vid.updateHiiPackages(getCurrentHiiPackages(), intTempIndex);\r
-\r
- jComboBoxList.removeAllItems();\r
- for (int index = 0; index < vid.size(); index++) {\r
- jComboBoxList.addItem(vid.getHiiPackages(index).getName());\r
- }\r
-\r
- //\r
- // Restore selected item index\r
- //\r
- intSelectedItemId = intTempIndex;\r
-\r
- //\r
- // Reset select item index\r
- //\r
- jComboBoxList.setSelectedIndex(intSelectedItemId);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Refresh all fields' values of selected item of Vector\r
- \r
- **/\r
- private void reloadFromList() {\r
- if (vid.size() > 0) {\r
- //\r
- // Get selected item index\r
- //\r
- intSelectedItemId = jComboBoxList.getSelectedIndex();\r
-\r
- this.jTextFieldName.setText(vid.getHiiPackages(intSelectedItemId).getName());\r
- this.jComboBoxUsage.setSelectedItem(vid.getHiiPackages(intSelectedItemId).getUsage());\r
- this.jTextFieldHelpText.setText(vid.getHiiPackages(intSelectedItemId).getHelp());\r
-\r
- jTextFieldFeatureFlag.setText(vid.getHiiPackages(intSelectedItemId).getFeatureFlag());\r
- iCheckBoxListArch.setAllItemsUnchecked();\r
- iCheckBoxListArch.initCheckedItem(true, vid.getHiiPackages(intSelectedItemId).getSupArchList());\r
-\r
} else {\r
+ selectedRow = lsm.getMinSelectionIndex();\r
}\r
-\r
- reloadListArea();\r
}\r
\r
- /**\r
- Update list area pane via the elements of Vector\r
- \r
- **/\r
- private void reloadListArea() {\r
- String strListItem = "";\r
- for (int index = 0; index < vid.size(); index++) {\r
- strListItem = strListItem + vid.getHiiPackages(index).getName() + DataType.UNIX_LINE_SEPARATOR;\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
+ *\r
+ */\r
+ public void mouseClicked(MouseEvent arg0) {\r
+ if (arg0.getClickCount() == 2) {\r
+ if (this.selectedRow < 0) {\r
+ return;\r
+ } else {\r
+ showEdit(selectedRow);\r
+ }\r
}\r
- this.jTextAreaList.setText(strListItem);\r
}\r
\r
/* (non-Javadoc)\r
- * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
- *\r
- * Reflesh the frame when selected item changed\r
+ * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
* \r
+ * Override componentResized to resize all components when frame's size is changed\r
*/\r
- public void itemStateChanged(ItemEvent arg0) {\r
- if (arg0.getSource() == this.jComboBoxList && arg0.getStateChange() == ItemEvent.SELECTED) {\r
- reloadFromList();\r
- }\r
+ public void componentResized(ComponentEvent arg0) {\r
+ int intCurrentWidth = this.getJContentPane().getWidth();\r
+ int intCurrentHeight = this.getJContentPane().getHeight();\r
+ int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
+ int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
+\r
+ resizeComponent(this.jScrollPaneTable, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
+ relocateComponent(this.jButtonAdd, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_ADD_BUTTON);\r
+ relocateComponent(this.jButtonRemove, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_REMOVE_BUTTON);\r
+ relocateComponent(this.jButtonUpdate, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_UPDATE_BUTTON);\r
}\r
}\r
**/\r
package org.tianocore.frameworkwizard.module.ui;\r
\r
+import java.awt.Dimension;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ComponentEvent;\r
-import java.awt.event.ItemEvent;\r
+import java.awt.event.MouseEvent;\r
import java.util.Vector;\r
\r
import javax.swing.JButton;\r
-import javax.swing.JComboBox;\r
-import javax.swing.JLabel;\r
import javax.swing.JPanel;\r
import javax.swing.JScrollPane;\r
-import javax.swing.JTextArea;\r
-import javax.swing.JTextField;\r
+import javax.swing.JTable;\r
+import javax.swing.ListSelectionModel;\r
+import javax.swing.event.ListSelectionEvent;\r
\r
import org.tianocore.HobTypes;\r
import org.tianocore.HobUsage;\r
import org.tianocore.HobsDocument.Hobs;\r
import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea;\r
import org.tianocore.frameworkwizard.common.DataType;\r
-import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.IDefaultTableModel;\r
import org.tianocore.frameworkwizard.common.Log;\r
import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
-import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
-import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
import org.tianocore.frameworkwizard.module.Identifications.Hobs.HobsIdentification;\r
import org.tianocore.frameworkwizard.module.Identifications.Hobs.HobsVector;\r
-import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
+import org.tianocore.frameworkwizard.module.ui.dialog.HobsDlg;\r
\r
/**\r
The class is used to create, update Hob of MSA/MBD file\r
//\r
private JPanel jContentPane = null;\r
\r
- private JLabel jLabel = null;\r
-\r
- private JComboBox jComboBoxGuidC_Name = null;\r
-\r
- private JLabel jLabelUsage = null;\r
-\r
- private JLabel jLabelHobType = null;\r
-\r
- private JComboBox jComboBoxUsage = null;\r
-\r
- private JComboBox jComboBoxHobType = null;\r
-\r
- private StarLabel jStarLabel1 = null;\r
-\r
- private JLabel jLabelArch = null;\r
-\r
- private JTextArea jTextAreaList = null;\r
-\r
- private JComboBox jComboBoxList = null;\r
-\r
private JButton jButtonAdd = null;\r
\r
private JButton jButtonRemove = null;\r
\r
private JScrollPane jScrollPane = null;\r
\r
- private JScrollPane jScrollPaneList = null;\r
-\r
- private JLabel jLabelFeatureFlag = null;\r
-\r
- private JTextField jTextFieldFeatureFlag = null;\r
+ private JScrollPane jScrollPaneTable = null;\r
\r
- private ICheckBoxList iCheckBoxListArch = null;\r
-\r
- private JScrollPane jScrollPaneArch = null;\r
- \r
- private JLabel jLabelHelpText = null;\r
-\r
- private JTextField jTextFieldHelpText = null;\r
+ private JTable jTable = null;\r
\r
//\r
// Not used by UI\r
//\r
- private int intSelectedItemId = 0;\r
-\r
private OpeningModuleType omt = null;\r
\r
private ModuleSurfaceArea msa = null;\r
\r
private HobsVector vid = new HobsVector();\r
\r
- private EnumerationData ed = new EnumerationData();\r
- \r
- private WorkspaceTools wt = new WorkspaceTools();\r
-\r
- /**\r
- This method initializes jTextField \r
- \r
- @return javax.swing.JTextField jTextFieldC_Name\r
- \r
- **/\r
- private JComboBox getJComboBoxGuidC_Name() {\r
- if (jComboBoxGuidC_Name == null) {\r
- jComboBoxGuidC_Name = new JComboBox();\r
- jComboBoxGuidC_Name.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
- jComboBoxGuidC_Name.setPreferredSize(new java.awt.Dimension(320, 20));\r
- jComboBoxGuidC_Name.setToolTipText("Select the GUID C Name of the Hob");\r
- }\r
- return jComboBoxGuidC_Name;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxUsage \r
- \r
- @return javax.swing.JComboBox jComboBoxUsage\r
- \r
- **/\r
- private JComboBox getJComboBoxUsage() {\r
- if (jComboBoxUsage == null) {\r
- jComboBoxUsage = new JComboBox();\r
- jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
- jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jComboBoxUsage;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxHobType \r
- \r
- @return javax.swing.JComboBox jComboBoxHobType\r
- \r
- **/\r
- private JComboBox getJComboBoxHobType() {\r
- if (jComboBoxHobType == null) {\r
- jComboBoxHobType = new JComboBox();\r
- jComboBoxHobType.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
- jComboBoxHobType.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jComboBoxHobType;\r
- }\r
+ private IDefaultTableModel model = null;\r
\r
- /**\r
- This method initializes jComboBoxFileList \r
- \r
- @return javax.swing.JComboBox jComboBoxFileList\r
- \r
- **/\r
- private JComboBox getJComboBoxList() {\r
- if (jComboBoxList == null) {\r
- jComboBoxList = new JComboBox();\r
- jComboBoxList.setBounds(new java.awt.Rectangle(15, 220, 210, 20));\r
- jComboBoxList.addItemListener(this);\r
- jComboBoxList.addActionListener(this);\r
- jComboBoxList.setPreferredSize(new java.awt.Dimension(210, 20));\r
- }\r
- return jComboBoxList;\r
- }\r
+ private int selectedRow = -1;\r
\r
/**\r
This method initializes jButtonAdd \r
jButtonUpdate = new JButton();\r
jButtonUpdate.setBounds(new java.awt.Rectangle(315, 220, 80, 20));\r
jButtonUpdate.setPreferredSize(new java.awt.Dimension(80, 20));\r
- jButtonUpdate.setText("Update");\r
+ jButtonUpdate.setText("Edit");\r
jButtonUpdate.addActionListener(this);\r
}\r
return jButtonUpdate;\r
}\r
\r
- /**\r
- * This method initializes jScrollPaneFileList \r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneList() {\r
- if (jScrollPaneList == null) {\r
- jScrollPaneList = new JScrollPane();\r
- jScrollPaneList.setBounds(new java.awt.Rectangle(15, 245, 465, 240));\r
- jScrollPaneList.setViewportView(getJTextAreaList());\r
- jScrollPaneList.setPreferredSize(new java.awt.Dimension(465, 240));\r
- }\r
- return jScrollPaneList;\r
- }\r
-\r
/**\r
This method initializes jScrollPane \r
\r
}\r
\r
/**\r
- * This method initializes jTextAreaFileList \r
- * \r
- * @return javax.swing.JTextArea \r
- */\r
- private JTextArea getJTextAreaList() {\r
- if (jTextAreaList == null) {\r
- jTextAreaList = new JTextArea();\r
- jTextAreaList.setEditable(false);\r
-\r
- }\r
- return jTextAreaList;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldFeatureFlag \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldFeatureFlag() {\r
- if (jTextFieldFeatureFlag == null) {\r
- jTextFieldFeatureFlag = new JTextField();\r
- jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
- jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jTextFieldFeatureFlag;\r
- }\r
-\r
- /**\r
- This method initializes iCheckBoxListArch \r
-\r
- @return ICheckBoxList \r
+ This method initializes jScrollPaneTable \r
+ \r
+ @return javax.swing.JScrollPane \r
**/\r
- private ICheckBoxList getICheckBoxListSupportedArchitectures() {\r
- if (iCheckBoxListArch == null) {\r
- iCheckBoxListArch = new ICheckBoxList();\r
- iCheckBoxListArch.addFocusListener(this);\r
- iCheckBoxListArch.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
+ private JScrollPane getJScrollPaneTable() {\r
+ if (jScrollPaneTable == null) {\r
+ jScrollPaneTable = new JScrollPane();\r
+ jScrollPaneTable.setBounds(new java.awt.Rectangle(15, 10, 470, 420));\r
+ jScrollPaneTable.setPreferredSize(new Dimension(470, 420));\r
+ jScrollPaneTable.setViewportView(getJTable());\r
}\r
- return iCheckBoxListArch;\r
+ return jScrollPaneTable;\r
}\r
\r
/**\r
- This method initializes jScrollPaneArch \r
-\r
- @return javax.swing.JScrollPane \r
-\r
+ This method initializes jTable \r
+ \r
+ @return javax.swing.JTable \r
**/\r
- private JScrollPane getJScrollPaneArch() {\r
- if (jScrollPaneArch == null) {\r
- jScrollPaneArch = new JScrollPane();\r
- jScrollPaneArch.setBounds(new java.awt.Rectangle(160, 135, 320, 80));\r
- jScrollPaneArch.setPreferredSize(new java.awt.Dimension(320, 80));\r
- jScrollPaneArch.setViewportView(getICheckBoxListSupportedArchitectures());\r
+ private JTable getJTable() {\r
+ if (jTable == null) {\r
+ jTable = new JTable();\r
+ model = new IDefaultTableModel();\r
+ jTable = new JTable(model);\r
+ jTable.setRowHeight(20);\r
+\r
+ model.addColumn("Guid C_Name");\r
+ model.addColumn("Type");\r
+ model.addColumn("Usage");\r
+\r
+ jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTable.getSelectionModel().addListSelectionListener(this);\r
+ jTable.getModel().addTableModelListener(this);\r
+ jTable.addMouseListener(this);\r
}\r
- return jScrollPaneArch;\r
+ return jTable;\r
}\r
- \r
- /**\r
- This method initializes jTextFieldHelpText \r
- \r
- @return javax.swing.JTextField \r
- \r
- **/\r
- private JTextField getJTextFieldHelpText() {\r
- if (jTextFieldHelpText == null) {\r
- jTextFieldHelpText = new JTextField();\r
- jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
- jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jTextFieldHelpText;\r
- }\r
\r
public static void main(String[] args) {\r
\r
this.setSize(500, 515);\r
this.setContentPane(getJScrollPane());\r
this.setTitle("Hobs");\r
- initFrame();\r
- this.setViewMode(false);\r
}\r
\r
/**\r
String arg0 = hobs.getHobTypesList().get(index).getHobGuidCName();\r
String arg1 = null;\r
if (hobs.getHobTypesList().get(index).getHobType() != null) {\r
- arg1 = hobs.getHobTypesList().get(index).getHobType().toString(); \r
+ arg1 = hobs.getHobTypesList().get(index).getHobType().toString();\r
}\r
String arg2 = null;\r
if (hobs.getHobTypesList().get(index).getUsage() != null) {\r
- arg2 = hobs.getHobTypesList().get(index).getUsage().toString(); \r
+ arg2 = hobs.getHobTypesList().get(index).getUsage().toString();\r
}\r
- \r
+\r
String arg3 = hobs.getHobTypesList().get(index).getFeatureFlag();\r
Vector<String> arg4 = Tools.convertListToVector(hobs.getHobTypesList().get(index).getSupArchList());\r
String arg5 = hobs.getHobTypesList().get(index).getHelpText();\r
}\r
}\r
}\r
- //\r
- // Update the list\r
- //\r
- Tools.generateComboBoxByVector(jComboBoxList, vid.getHobsName());\r
- reloadListArea();\r
+ showTable();\r
}\r
\r
/**\r
this.setVisible(true);\r
}\r
\r
- /**\r
- Disable all components when the mode is view\r
- \r
- @param isView true - The view mode; false - The non-view mode\r
- \r
- **/\r
- public void setViewMode(boolean isView) {\r
- if (isView) {\r
- this.jComboBoxGuidC_Name.setEnabled(!isView);\r
- this.jComboBoxUsage.setEnabled(!isView);\r
- this.jComboBoxHobType.setEnabled(!isView);\r
- }\r
- }\r
-\r
/**\r
This method initializes jContentPane\r
\r
**/\r
public JPanel getJContentPane() {\r
if (jContentPane == null) {\r
- jLabelFeatureFlag = new JLabel();\r
- jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
- jLabelFeatureFlag.setText("Feature Flag");\r
- jLabelArch = new JLabel();\r
- jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 140, 20));\r
- jLabelArch.setText("Arch");\r
- jLabelHobType = new JLabel();\r
- jLabelHobType.setText("Hob Type");\r
- jLabelHobType.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
- jLabelUsage = new JLabel();\r
- jLabelUsage.setText("Usage");\r
- jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
- jLabel = new JLabel();\r
- jLabel.setText("C_Name");\r
- jLabel.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
- jLabelHelpText = new JLabel();\r
- jLabelHelpText.setBounds(new java.awt.Rectangle(14, 85, 140, 20));\r
- jLabelHelpText.setText("Help Text");\r
- \r
+\r
jContentPane = new JPanel();\r
jContentPane.setLayout(null);\r
- jContentPane.setPreferredSize(new java.awt.Dimension(490, 495));\r
-\r
- jContentPane.add(jLabel, null);\r
- jContentPane.add(getJComboBoxGuidC_Name(), null);\r
- jContentPane.add(jLabelUsage, null);\r
- jContentPane.add(jLabelHobType, null);\r
- jContentPane.add(getJComboBoxUsage(), null);\r
- jContentPane.add(getJComboBoxHobType(), null);\r
- jStarLabel1 = new StarLabel();\r
- jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
- jContentPane.add(jStarLabel1, null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 490));\r
\r
- jContentPane.add(jLabelArch, null);\r
-\r
- jContentPane.add(getJComboBoxList(), null);\r
jContentPane.add(getJButtonAdd(), null);\r
jContentPane.add(getJButtonRemove(), null);\r
jContentPane.add(getJButtonUpdate(), null);\r
- jContentPane.add(getJScrollPaneList(), null);\r
- jContentPane.add(jLabelFeatureFlag, null);\r
- jContentPane.add(getJTextFieldFeatureFlag(), null);\r
- jContentPane.add(getJScrollPaneArch(), null);\r
- jContentPane.add(jLabelHelpText, null);\r
- jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(getJScrollPaneTable(), null);\r
}\r
return jContentPane;\r
}\r
\r
+ private void showEdit(int index) {\r
+ HobsDlg dlg = new HobsDlg(vid.getHobs(index), new IFrame());\r
+ int result = dlg.showDialog();\r
+ if (result == DataType.RETURN_TYPE_OK) {\r
+ if (index == -1) {\r
+ this.vid.addHobs(dlg.getId());\r
+ } else {\r
+ this.vid.setHobs(dlg.getId(), index);\r
+ }\r
+ this.showTable();\r
+ this.save();\r
+ dlg.dispose();\r
+ }\r
+ if (result == DataType.RETURN_TYPE_CANCEL) {\r
+ dlg.dispose();\r
+ }\r
+ }\r
+\r
/**\r
- This method initializes Usage type and Hob type\r
+ Clear all table rows\r
\r
**/\r
- private void initFrame() {\r
- Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVHobUsage());\r
- Tools.generateComboBoxByVector(jComboBoxHobType, ed.getVHobType());\r
- Tools.generateComboBoxByVector(jComboBoxGuidC_Name, wt.getAllGuidDeclarationsFromWorkspace());\r
+ private void clearAll() {\r
+ if (model != null) {\r
+ for (int index = model.getRowCount() - 1; index >= 0; index--) {\r
+ model.removeRow(index);\r
+ }\r
+ }\r
+ }\r
\r
- this.iCheckBoxListArch.setAllItems(ed.getVSupportedArchitectures());\r
+ /**\r
+ Read content of vector and put then into table\r
+ \r
+ **/\r
+ private void showTable() {\r
+ clearAll();\r
+\r
+ if (vid.size() > 0) {\r
+ for (int index = 0; index < vid.size(); index++) {\r
+ model.addRow(vid.toStringVector(index));\r
+ }\r
+ }\r
+ this.jTable.repaint();\r
+ this.jTable.updateUI();\r
}\r
\r
/* (non-Javadoc)\r
*/\r
public void actionPerformed(ActionEvent arg0) {\r
if (arg0.getSource() == jButtonAdd) {\r
- if (!checkAdd()) {\r
- return;\r
- }\r
- addToList();\r
- }\r
- if (arg0.getSource() == jButtonRemove) {\r
- removeFromList();\r
+ showEdit(-1);\r
}\r
if (arg0.getSource() == jButtonUpdate) {\r
- if (!checkAdd()) {\r
+ if (this.selectedRow < 0) {\r
+ Log.err("Please select one record first.");\r
return;\r
}\r
- updateForList();\r
+ showEdit(selectedRow);\r
}\r
- }\r
\r
- /**\r
- Data validation for all fields\r
- \r
- @retval true - All datas are valid\r
- @retval false - At least one data is invalid\r
- \r
- **/\r
- public boolean checkAdd() {\r
- //\r
- // Check if all fields have correct data types \r
- //\r
-\r
- //\r
- // Check Name \r
- //\r
- if (isEmpty(this.jComboBoxGuidC_Name.getSelectedItem().toString())) {\r
- Log.err("Hob Name couldn't be empty");\r
- return false;\r
- }\r
- \r
- if (!isEmpty(this.jComboBoxGuidC_Name.getSelectedItem().toString())) {\r
- if (!DataValidation.isC_NameType(this.jComboBoxGuidC_Name.getSelectedItem().toString())) {\r
- Log.err("Incorrect data type for Hob Name");\r
- return false;\r
+ if (arg0.getSource() == jButtonRemove) {\r
+ if (jTable.isEditing()) {\r
+ jTable.getCellEditor().stopCellEditing();\r
}\r
- }\r
- \r
- //\r
- // Check FeatureFlag\r
- //\r
- if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
- if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
- Log.err("Incorrect data type for Feature Flag");\r
- return false;\r
+ if (selectedRow > -1) {\r
+ this.model.removeRow(selectedRow);\r
+ this.vid.removeHobs(selectedRow);\r
+ selectedRow = -1;\r
+ this.save();\r
}\r
}\r
-\r
- return true;\r
}\r
\r
/**\r
}\r
}\r
\r
+ /* (non-Javadoc)\r
+ * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)\r
+ *\r
+ */\r
+ public void valueChanged(ListSelectionEvent arg0) {\r
+ if (arg0.getValueIsAdjusting()) {\r
+ return;\r
+ }\r
+ ListSelectionModel lsm = (ListSelectionModel) arg0.getSource();\r
+ if (lsm.isSelectionEmpty()) {\r
+ return;\r
+ } else {\r
+ selectedRow = lsm.getMinSelectionIndex();\r
+ }\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
+ *\r
+ */\r
+ public void mouseClicked(MouseEvent arg0) {\r
+ if (arg0.getClickCount() == 2) {\r
+ if (this.selectedRow < 0) {\r
+ return;\r
+ } else {\r
+ showEdit(selectedRow);\r
+ }\r
+ }\r
+ }\r
+\r
/* (non-Javadoc)\r
* @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
* \r
int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
\r
- resizeComponentWidth(jComboBoxGuidC_Name, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jComboBoxHobType, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jComboBoxUsage, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldHelpText, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldFeatureFlag, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jScrollPaneArch, intCurrentWidth, intPreferredWidth);\r
-\r
- resizeComponentWidth(jComboBoxList, intCurrentWidth, intPreferredWidth);\r
- resizeComponent(jScrollPaneList, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
-\r
- relocateComponentX(jButtonAdd, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON);\r
- relocateComponentX(jButtonRemove, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON);\r
- relocateComponentX(jButtonUpdate, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON);\r
- }\r
- \r
- private HobsIdentification getCurrentHobs() {\r
- String arg0 = this.jComboBoxGuidC_Name.getSelectedItem().toString();\r
- String arg1 = this.jComboBoxHobType.getSelectedItem().toString();\r
- String arg2 = this.jComboBoxUsage.getSelectedItem().toString();\r
-\r
- String arg3 = this.jTextFieldFeatureFlag.getText();\r
- Vector<String> arg4 = this.iCheckBoxListArch.getAllCheckedItemsString();\r
- String arg5 = this.jTextFieldHelpText.getText();\r
- id = new HobsIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
- return id;\r
+ resizeComponent(this.jScrollPaneTable, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
+ relocateComponent(this.jButtonAdd, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_ADD_BUTTON);\r
+ relocateComponent(this.jButtonRemove, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_REMOVE_BUTTON);\r
+ relocateComponent(this.jButtonUpdate, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_UPDATE_BUTTON);\r
}\r
- \r
- /**\r
- Add current item to Vector\r
- \r
- **/\r
- private void addToList() {\r
- intSelectedItemId = vid.size();\r
-\r
- vid.addHobs(getCurrentHobs());\r
-\r
- jComboBoxList.addItem(id.getName());\r
- jComboBoxList.setSelectedItem(id.getName());\r
-\r
- //\r
- // Reset select item index\r
- //\r
- intSelectedItemId = vid.size();\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Remove current item from Vector\r
- \r
- **/\r
- private void removeFromList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
- return;\r
- }\r
-\r
- int intTempIndex = intSelectedItemId;\r
-\r
- jComboBoxList.removeItemAt(intSelectedItemId);\r
-\r
- vid.removeHobs(intTempIndex);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Update current item of Vector\r
- \r
- **/\r
- private void updateForList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
- return;\r
- }\r
-\r
- //\r
- // Backup selected item index\r
- //\r
- int intTempIndex = intSelectedItemId;\r
-\r
- vid.updateHobs(getCurrentHobs(), intTempIndex);\r
-\r
- jComboBoxList.removeAllItems();\r
- for (int index = 0; index < vid.size(); index++) {\r
- jComboBoxList.addItem(vid.getHobs(index).getName());\r
- }\r
-\r
- //\r
- // Restore selected item index\r
- //\r
- intSelectedItemId = intTempIndex;\r
-\r
- //\r
- // Reset select item index\r
- //\r
- jComboBoxList.setSelectedIndex(intSelectedItemId);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Refresh all fields' values of selected item of Vector\r
- \r
- **/\r
- private void reloadFromList() {\r
- if (vid.size() > 0) {\r
- //\r
- // Get selected item index\r
- //\r
- intSelectedItemId = jComboBoxList.getSelectedIndex();\r
-\r
- this.jComboBoxGuidC_Name.setSelectedItem(vid.getHobs(intSelectedItemId).getName());\r
- this.jComboBoxHobType.setSelectedItem(vid.getHobs(intSelectedItemId).getType());\r
- this.jComboBoxUsage.setSelectedItem(vid.getHobs(intSelectedItemId).getUsage());\r
- this.jTextFieldHelpText.setText(vid.getHobs(intSelectedItemId).getHelp());\r
-\r
- jTextFieldFeatureFlag.setText(vid.getHobs(intSelectedItemId).getFeatureFlag());\r
- iCheckBoxListArch.setAllItemsUnchecked();\r
- iCheckBoxListArch.initCheckedItem(true, vid.getHobs(intSelectedItemId).getSupArchList());\r
-\r
- } else {\r
- }\r
-\r
- reloadListArea();\r
- }\r
-\r
- /**\r
- Update list area pane via the elements of Vector\r
- \r
- **/\r
- private void reloadListArea() {\r
- String strListItem = "";\r
- for (int index = 0; index < vid.size(); index++) {\r
- strListItem = strListItem + vid.getHobs(index).getName() + DataType.UNIX_LINE_SEPARATOR;\r
- }\r
- this.jTextAreaList.setText(strListItem);\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
- *\r
- * Reflesh the frame when selected item changed\r
- * \r
- */\r
- public void itemStateChanged(ItemEvent arg0) {\r
- if (arg0.getSource() == this.jComboBoxList && arg0.getStateChange() == ItemEvent.SELECTED) {\r
- reloadFromList();\r
- }\r
- }\r
}\r
import java.awt.Dimension;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ComponentEvent;\r
-import java.awt.event.ItemEvent;\r
+import java.awt.event.MouseEvent;\r
import java.util.Vector;\r
\r
import javax.swing.JButton;\r
-import javax.swing.JComboBox;\r
-import javax.swing.JLabel;\r
import javax.swing.JPanel;\r
import javax.swing.JScrollPane;\r
-import javax.swing.JTextArea;\r
-import javax.swing.JTextField;\r
+import javax.swing.JTable;\r
+import javax.swing.ListSelectionModel;\r
+import javax.swing.event.ListSelectionEvent;\r
\r
import org.tianocore.LibraryClassDefinitionsDocument;\r
import org.tianocore.LibraryUsage;\r
import org.tianocore.LibraryClassDefinitionsDocument.LibraryClassDefinitions;\r
import org.tianocore.LibraryClassDocument.LibraryClass;\r
import org.tianocore.frameworkwizard.common.DataType;\r
-import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.IDefaultTableModel;\r
import org.tianocore.frameworkwizard.common.Log;\r
import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
-import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
-import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
import org.tianocore.frameworkwizard.module.Identifications.LibraryClass.LibraryClassIdentification;\r
import org.tianocore.frameworkwizard.module.Identifications.LibraryClass.LibraryClassVector;\r
-import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
+import org.tianocore.frameworkwizard.module.ui.dialog.LibraryClassDefsDlg;\r
\r
/**\r
The class is used to create, update Library Class Definition of MSA/MBD file\r
//\r
private JPanel jContentPane = null;\r
\r
- private JComboBox jComboBoxLibraryClassName = null;\r
-\r
- private JLabel jLabelUsage = null;\r
-\r
- private JComboBox jComboBoxUsage = null;\r
-\r
- private JComboBox jComboBoxList = null;\r
-\r
private JButton jButtonAdd = null;\r
\r
private JButton jButtonRemove = null;\r
\r
private JButton jButtonUpdate = null;\r
\r
- private JLabel jLabelLibraryClassName = null;\r
-\r
- private JScrollPane jScrollPaneList = null;\r
-\r
private JScrollPane jScrollPane = null;\r
\r
- private JTextArea jTextAreaList = null;\r
-\r
- private StarLabel jStarLabel1 = null;\r
-\r
- private StarLabel jStarLabel2 = null;\r
-\r
- private ICheckBoxList iCheckBoxListArch = null;\r
-\r
- private JScrollPane jScrollPaneArch = null;\r
-\r
- private JLabel jLabelRecommendedInstanceVersion = null;\r
-\r
- private JTextField jTextFieldRecommendedInstanceVersion = null;\r
-\r
- private JLabel jLabelRecommendedInstanceGuid = null;\r
-\r
- private JTextField jTextFieldRecommendedInstanceGuid = null;\r
-\r
- private JButton jButtonGenerateGuid = null;\r
-\r
- private JLabel jLabelFeatureFlag = null;\r
+ private JScrollPane jScrollPaneTable = null;\r
\r
- private JTextField jTextFieldFeatureFlag = null;\r
-\r
- private JLabel jLabelArch = null;\r
-\r
- private JLabel jLabelModuleList = null;\r
-\r
- private JScrollPane jScrollPaneModuleList = null;\r
-\r
- private ICheckBoxList iCheckBoxListModule = null;\r
-\r
- private JLabel jLabelHelpText = null;\r
-\r
- private JTextField jTextFieldHelpText = null;\r
+ private JTable jTable = null;\r
\r
//\r
// Not for UI\r
\r
private LibraryClassVector vLibraryClass = new LibraryClassVector();\r
\r
- private EnumerationData ed = new EnumerationData();\r
-\r
- private Vector<String> vLib = new Vector<String>();\r
-\r
- private int intSelectedItemId = 0;\r
-\r
- private WorkspaceTools wt = new WorkspaceTools();\r
-\r
- private LibraryClassIdentification lcid = null;\r
-\r
private OpeningModuleType omt = null;\r
\r
- /**\r
- This method initializes jComboBoxSelect \r
- \r
- @return javax.swing.JComboBox jComboBoxSelect\r
- \r
- **/\r
- private JComboBox getJComboBoxLibraryClassName() {\r
- if (jComboBoxLibraryClassName == null) {\r
- jComboBoxLibraryClassName = new JComboBox();\r
- jComboBoxLibraryClassName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
- jComboBoxLibraryClassName.setPreferredSize(new Dimension(320, 20));\r
- jComboBoxLibraryClassName.setEnabled(true);\r
- }\r
- return jComboBoxLibraryClassName;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxUsage \r
- \r
- @return javax.swing.JComboBox jComboBoxUsage\r
- \r
- **/\r
- private JComboBox getJComboBoxUsage() {\r
- if (jComboBoxUsage == null) {\r
- jComboBoxUsage = new JComboBox();\r
- jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
- jComboBoxUsage.setPreferredSize(new Dimension(320, 20));\r
- }\r
- return jComboBoxUsage;\r
- }\r
+ private IDefaultTableModel model = null;\r
\r
- /**\r
- This method initializes jComboBoxFileList \r
- \r
- @return javax.swing.JComboBox jComboBoxFileList\r
- \r
- **/\r
- private JComboBox getJComboBoxList() {\r
- if (jComboBoxList == null) {\r
- jComboBoxList = new JComboBox();\r
- jComboBoxList.setBounds(new java.awt.Rectangle(15, 330, 210, 20));\r
- jComboBoxList.setPreferredSize(new Dimension(210, 20));\r
- jComboBoxList.addItemListener(this);\r
- jComboBoxList.addActionListener(this);\r
- }\r
- return jComboBoxList;\r
- }\r
+ private int selectedRow = -1;\r
\r
/**\r
This method initializes jButtonAdd \r
if (jButtonUpdate == null) {\r
jButtonUpdate = new JButton();\r
jButtonUpdate.setBounds(new java.awt.Rectangle(315, 330, 80, 20));\r
- jButtonUpdate.setText("Update");\r
+ jButtonUpdate.setText("Edit");\r
jButtonUpdate.setPreferredSize(new Dimension(80, 20));\r
jButtonUpdate.addActionListener(this);\r
}\r
return jButtonUpdate;\r
}\r
\r
- /**\r
- This method initializes jScrollPane \r
- \r
- @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneList() {\r
- if (jScrollPaneList == null) {\r
- jScrollPaneList = new JScrollPane();\r
- jScrollPaneList.setBounds(new java.awt.Rectangle(15, 355, 465, 100));\r
- jScrollPaneList.setPreferredSize(new Dimension(465, 260));\r
- jScrollPaneList.setViewportView(getJTextAreaList());\r
- }\r
- return jScrollPaneList;\r
- }\r
-\r
/**\r
This method initializes jScrollPane \r
\r
}\r
\r
/**\r
- * This method initializes jTextAreaList \r
- * \r
- * @return javax.swing.JTextArea \r
- */\r
- private JTextArea getJTextAreaList() {\r
- if (jTextAreaList == null) {\r
- jTextAreaList = new JTextArea();\r
- jTextAreaList.setEditable(false);\r
- }\r
- return jTextAreaList;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldRecommendedInstanceVersion \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldRecommendedInstanceVersion() {\r
- if (jTextFieldRecommendedInstanceVersion == null) {\r
- jTextFieldRecommendedInstanceVersion = new JTextField();\r
- jTextFieldRecommendedInstanceVersion.setPreferredSize(new java.awt.Dimension(260, 20));\r
- jTextFieldRecommendedInstanceVersion.setSize(new java.awt.Dimension(260, 20));\r
- jTextFieldRecommendedInstanceVersion.setLocation(new java.awt.Point(220, 85));\r
- }\r
- return jTextFieldRecommendedInstanceVersion;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldRecommendedInstanceGuid \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldRecommendedInstanceGuid() {\r
- if (jTextFieldRecommendedInstanceGuid == null) {\r
- jTextFieldRecommendedInstanceGuid = new JTextField();\r
- jTextFieldRecommendedInstanceGuid.setBounds(new java.awt.Rectangle(220, 110, 190, 20));\r
- jTextFieldRecommendedInstanceGuid.setPreferredSize(new java.awt.Dimension(190, 20));\r
- }\r
- return jTextFieldRecommendedInstanceGuid;\r
- }\r
-\r
- /**\r
- * This method initializes jButtonGenerateGuid \r
- * \r
- * @return javax.swing.JButton \r
- */\r
- private JButton getJButtonGenerateGuid() {\r
- if (jButtonGenerateGuid == null) {\r
- jButtonGenerateGuid = new JButton();\r
- jButtonGenerateGuid.setBounds(new java.awt.Rectangle(415, 110, 65, 20));\r
- jButtonGenerateGuid.setPreferredSize(new java.awt.Dimension(65, 20));\r
- jButtonGenerateGuid.setText("GEN");\r
- jButtonGenerateGuid.addActionListener(this);\r
- }\r
- return jButtonGenerateGuid;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldFeatureFlag \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldFeatureFlag() {\r
- if (jTextFieldFeatureFlag == null) {\r
- jTextFieldFeatureFlag = new JTextField();\r
- jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 135, 320, 20));\r
- jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jTextFieldFeatureFlag;\r
- }\r
-\r
- /**\r
- This method initializes iCheckBoxListArch \r
+ This method initializes jScrollPaneTable \r
\r
- @return ICheckBoxList \r
+ @return javax.swing.JScrollPane \r
**/\r
- private ICheckBoxList getICheckBoxListSupportedArchitectures() {\r
- if (iCheckBoxListArch == null) {\r
- iCheckBoxListArch = new ICheckBoxList();\r
- iCheckBoxListArch.addFocusListener(this);\r
+ private JScrollPane getJScrollPaneTable() {\r
+ if (jScrollPaneTable == null) {\r
+ jScrollPaneTable = new JScrollPane();\r
+ jScrollPaneTable.setBounds(new java.awt.Rectangle(15, 10, 470, 420));\r
+ jScrollPaneTable.setPreferredSize(new Dimension(470, 420));\r
+ jScrollPaneTable.setViewportView(getJTable());\r
}\r
- return iCheckBoxListArch;\r
+ return jScrollPaneTable;\r
}\r
\r
/**\r
- This method initializes iCheckBoxListArch \r
+ This method initializes jTable \r
\r
- @return ICheckBoxList \r
+ @return javax.swing.JTable \r
**/\r
- private ICheckBoxList getICheckBoxListSupModuleList() {\r
- if (iCheckBoxListModule == null) {\r
- iCheckBoxListModule = new ICheckBoxList();\r
- }\r
- return iCheckBoxListModule;\r
- }\r
+ private JTable getJTable() {\r
+ if (jTable == null) {\r
+ jTable = new JTable();\r
+ model = new IDefaultTableModel();\r
+ jTable = new JTable(model);\r
+ jTable.setRowHeight(20);\r
\r
- /**\r
- This method initializes jScrollPaneArch \r
- \r
- @return javax.swing.JScrollPane \r
- \r
- **/\r
- private JScrollPane getJScrollPaneArch() {\r
- if (jScrollPaneArch == null) {\r
- jScrollPaneArch = new JScrollPane();\r
- jScrollPaneArch.setBounds(new java.awt.Rectangle(160, 160, 320, 80));\r
- jScrollPaneArch.setPreferredSize(new java.awt.Dimension(320, 80));\r
- jScrollPaneArch.setViewportView(getICheckBoxListSupportedArchitectures());\r
- }\r
- return jScrollPaneArch;\r
- }\r
-\r
- /**\r
- This method initializes jScrollPaneModuleList \r
- \r
- @return javax.swing.JScrollPane \r
- \r
- **/\r
- private JScrollPane getJScrollPaneModuleList() {\r
- if (jScrollPaneModuleList == null) {\r
- jScrollPaneModuleList = new JScrollPane();\r
- jScrollPaneModuleList.setBounds(new java.awt.Rectangle(160, 245, 320, 80));\r
- jScrollPaneModuleList.setPreferredSize(new java.awt.Dimension(320, 80));\r
- jScrollPaneModuleList.setViewportView(getICheckBoxListSupModuleList());\r
- }\r
- return jScrollPaneModuleList;\r
- }\r
+ model.addColumn("Library Class Name");\r
+ model.addColumn("Usage");\r
\r
- /**\r
- This method initializes jTextFieldHelpText \r
- \r
- @return javax.swing.JTextField \r
- \r
- **/\r
- private JTextField getJTextFieldHelpText() {\r
- if (jTextFieldHelpText == null) {\r
- jTextFieldHelpText = new JTextField();\r
- jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
- jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTable.getSelectionModel().addListSelectionListener(this);\r
+ jTable.getModel().addTableModelListener(this);\r
+ jTable.addMouseListener(this);\r
}\r
- return jTextFieldHelpText;\r
+ return jTable;\r
}\r
\r
public static void main(String[] args) {\r
super();\r
this.omt = inOmt;\r
this.msa = omt.getXmlMsa();\r
- initLibraryClass();\r
init(msa.getLibraryClassDefinitions());\r
this.setVisible(true);\r
}\r
\r
- // private void initLibraryClass(MsaHeaderDocument.MsaHeader msaHeader) {\r
- // Enum e = msaHeader.getModuleType();\r
- // if (e == ModuleTypeDef.BASE) {\r
- // vLib = ed.getVLibClassDefBase();\r
- // } else if (e == ModuleTypeDef.PEI_CORE) {\r
- // vLib = ed.getVLibClassDefPei();\r
- // } else if (e == ModuleTypeDef.PEIM) {\r
- // vLib = ed.getVLibClassDefPeim();\r
- // } else if (e == ModuleTypeDef.DXE_CORE) {\r
- // vLib = ed.getVLibClassDefDxeCore();\r
- // } else if (e == ModuleTypeDef.DXE_DRIVER) {\r
- // vLib = ed.getVLibClassDefDxeDriver();\r
- // } else if (e == ModuleTypeDef.DXE_SMM_DRIVER) {\r
- // vLib = ed.getVLibClassDefDxeSmmDriver();\r
- // } else if (e == ModuleTypeDef.UEFI_DRIVER) {\r
- // vLib = ed.getVLibClassDefUefiDriver();\r
- // } else {\r
- // //vLib = ed.getVLibClassDef();\r
- // }\r
- // }\r
-\r
- /**\r
- \r
- **/\r
- private void initLibraryClass() {\r
- vLib = wt.getAllLibraryClassDefinitionsFromWorkspace();\r
- }\r
-\r
/**\r
This method initializes this\r
Fill values to all fields if these values are not empty\r
String name = lcd.getLibraryClassList().get(index).getKeyword();\r
String usage = null;\r
if (lcd.getLibraryClassList().get(index).getUsage() != null) {\r
- usage = lcd.getLibraryClassList().get(index).getUsage().toString(); \r
+ usage = lcd.getLibraryClassList().get(index).getUsage().toString();\r
}\r
String version = lcd.getLibraryClassList().get(index).getRecommendedInstanceVersion();\r
String guid = lcd.getLibraryClassList().get(index).getRecommendedInstanceGuid();\r
//\r
// Update the list\r
//\r
- Tools.generateComboBoxByVector(jComboBoxList, vLibraryClass.getLibraryClassName());\r
- reloadListArea();\r
+ showTable();\r
}\r
\r
/**\r
this.setContentPane(getJScrollPane());\r
this.setTitle("Library Class Definitions");\r
this.setBounds(new java.awt.Rectangle(0, 0, 500, 515));\r
- initFrame();\r
- this.setViewMode(false);\r
- }\r
-\r
- /**\r
- Disable all components when the mode is view\r
- \r
- @param isView true - The view mode; false - The non-view mode\r
- \r
- **/\r
- public void setViewMode(boolean isView) {\r
- if (isView) {\r
- this.jComboBoxLibraryClassName.setEnabled(!isView);\r
- this.jComboBoxUsage.setEnabled(!isView);\r
- }\r
}\r
\r
/**\r
**/\r
private JPanel getJContentPane() {\r
if (jContentPane == null) {\r
- jLabelHelpText = new JLabel();\r
- jLabelHelpText.setBounds(new java.awt.Rectangle(14, 60, 140, 20));\r
- jLabelHelpText.setText("Help Text");\r
- jLabelModuleList = new JLabel();\r
- jLabelModuleList.setBounds(new java.awt.Rectangle(15, 245, 140, 20));\r
- jLabelModuleList.setText("Sup Module List");\r
- jLabelArch = new JLabel();\r
- jLabelArch.setBounds(new java.awt.Rectangle(15, 160, 140, 20));\r
- jLabelArch.setText("Sup Arch List");\r
- jLabelFeatureFlag = new JLabel();\r
- jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 135, 140, 20));\r
- jLabelFeatureFlag.setText("Feature Flag");\r
- jLabelRecommendedInstanceGuid = new JLabel();\r
- jLabelRecommendedInstanceGuid.setBounds(new java.awt.Rectangle(15, 110, 200, 20));\r
- jLabelRecommendedInstanceGuid.setText("Recommended Instance Guid");\r
- jLabelRecommendedInstanceVersion = new JLabel();\r
- jLabelRecommendedInstanceVersion.setBounds(new java.awt.Rectangle(15, 85, 200, 20));\r
- jLabelRecommendedInstanceVersion.setText("Recommended Instance Version");\r
- jLabelLibraryClassName = new JLabel();\r
- jLabelLibraryClassName.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
- jLabelLibraryClassName.setText("Library Class Name");\r
- jLabelUsage = new JLabel();\r
- jLabelUsage.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
- jLabelUsage.setText("Usage");\r
jContentPane = new JPanel();\r
jContentPane.setLayout(null);\r
- jContentPane.setPreferredSize(new java.awt.Dimension(490, 465));\r
-\r
- jContentPane.add(getJComboBoxLibraryClassName(), null);\r
- jContentPane.add(jLabelUsage, null);\r
- jContentPane.add(getJComboBoxUsage(), null);\r
- jContentPane.add(jLabelLibraryClassName, null);\r
- jContentPane.add(getJScrollPaneList(), null);\r
- jContentPane.add(getJComboBoxList(), null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 490));\r
+\r
jContentPane.add(getJButtonAdd(), null);\r
jContentPane.add(getJButtonRemove(), null);\r
jContentPane.add(getJButtonUpdate(), null);\r
- jContentPane.add(jLabelRecommendedInstanceVersion, null);\r
- jContentPane.add(getJTextFieldRecommendedInstanceVersion(), null);\r
- jContentPane.add(jLabelRecommendedInstanceGuid, null);\r
- jContentPane.add(getJTextFieldRecommendedInstanceGuid(), null);\r
- jContentPane.add(getJButtonGenerateGuid(), null);\r
- jContentPane.add(jLabelFeatureFlag, null);\r
- jContentPane.add(getJTextFieldFeatureFlag(), null);\r
- jContentPane.add(jLabelArch, null);\r
- jContentPane.add(getJScrollPaneArch(), null);\r
- jStarLabel1 = new StarLabel();\r
- jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
- jStarLabel2 = new StarLabel();\r
- jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
-\r
- jContentPane.add(jStarLabel1, null);\r
- jContentPane.add(jStarLabel2, null);\r
- jContentPane.add(jLabelModuleList, null);\r
- jContentPane.add(getJScrollPaneModuleList(), null);\r
- jContentPane.add(jLabelHelpText, null);\r
- jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(getJScrollPaneTable(), null);\r
}\r
return jContentPane;\r
}\r
\r
- /**\r
- This method initializes all existing libraries and usage types\r
- \r
- **/\r
- private void initFrame() {\r
- Tools.generateComboBoxByVector(jComboBoxLibraryClassName, vLib);\r
- Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVLibraryUsage());\r
- this.iCheckBoxListArch.setAllItems(ed.getVSupportedArchitectures());\r
- this.iCheckBoxListModule.setAllItems(ed.getVFrameworkModuleTypes());\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
- *\r
- * Override actionPerformed to listen all actions\r
- * \r
- */\r
- public void actionPerformed(ActionEvent arg0) {\r
- if (arg0.getSource() == jButtonAdd) {\r
- if (!checkAdd()) {\r
- return;\r
- }\r
- addToList();\r
- }\r
- if (arg0.getSource() == jButtonRemove) {\r
- removeFromList();\r
- }\r
- if (arg0.getSource() == jButtonUpdate) {\r
- updateForList();\r
- }\r
- if (arg0.getSource() == jButtonGenerateGuid) {\r
- this.jTextFieldRecommendedInstanceGuid.setText(Tools.generateUuidString());\r
- }\r
- }\r
-\r
- /**\r
- Data validation for all fields\r
- \r
- @retval true - All datas are valid\r
- @retval false - At least one data is invalid\r
- \r
- **/\r
- public boolean checkAdd() {\r
- //\r
- // Check LibraryClass\r
- //\r
- if (this.jComboBoxLibraryClassName.getSelectedItem() == null) {\r
- Log.err("No Library Class can be added");\r
- return false;\r
- }\r
- if (!DataValidation.isLibraryClass(this.jComboBoxLibraryClassName.getSelectedItem().toString())) {\r
- Log.err("Incorrect data type for Library Class");\r
- return false;\r
- }\r
-\r
- //\r
- // Check RecommendedInstanceVersion\r
- //\r
- if (!isEmpty(this.jTextFieldRecommendedInstanceVersion.getText())) {\r
- if (!DataValidation.isRecommendedInstanceVersion(this.jTextFieldRecommendedInstanceVersion.getText())) {\r
- Log.err("Incorrect data type for Recommended Instance Version");\r
- return false;\r
- }\r
- }\r
-\r
- //\r
- // Check RecommendedInstanceGuid\r
- //\r
- if (!isEmpty(this.jTextFieldRecommendedInstanceGuid.getText())) {\r
- if (!DataValidation.isGuid(this.jTextFieldRecommendedInstanceGuid.getText())) {\r
- Log.err("Incorrect data type for Recommended Instance Guid");\r
- return false;\r
- }\r
- }\r
-\r
- //\r
- // Check FeatureFlag\r
- //\r
- if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
- if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
- Log.err("Incorrect data type for Feature Flag");\r
- return false;\r
- }\r
- }\r
-\r
- if (this.vLibraryClass.findLibraryClass(this.jComboBoxLibraryClassName.getSelectedItem().toString()) > -1) {\r
- Log.err("The Library Class has been added already!");\r
- return false;\r
- }\r
- return true;\r
- }\r
-\r
/**\r
Save all components of Mbd Header\r
if exists mbdHeader, set the value directly\r
}\r
}\r
\r
- private LibraryClassIdentification getCurrentLibraryClass() {\r
- String name = this.jComboBoxLibraryClassName.getSelectedItem().toString();\r
- String usage = this.jComboBoxUsage.getSelectedItem().toString();\r
- String version = this.jTextFieldRecommendedInstanceVersion.getText();\r
- String guid = this.jTextFieldRecommendedInstanceGuid.getText();\r
- String featureFlag = this.jTextFieldFeatureFlag.getText();\r
- Vector<String> arch = this.iCheckBoxListArch.getAllCheckedItemsString();\r
- Vector<String> module = this.iCheckBoxListModule.getAllCheckedItemsString();\r
- String help = this.jTextFieldHelpText.getText();\r
- lcid = new LibraryClassIdentification(name, usage, version, guid, arch, featureFlag, module, help);\r
- return lcid;\r
- }\r
-\r
- /**\r
- Add current item to Vector\r
- \r
- **/\r
- private void addToList() {\r
- intSelectedItemId = vLibraryClass.size();\r
-\r
- vLibraryClass.addLibraryClass(getCurrentLibraryClass());\r
-\r
- jComboBoxList.addItem(lcid.getLibraryClassName());\r
- jComboBoxList.setSelectedItem(lcid.getLibraryClassName());\r
-\r
- //\r
- // Reset select item index\r
- //\r
- intSelectedItemId = vLibraryClass.size();\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
+ private void showEdit(int index) {\r
+ LibraryClassDefsDlg mcdd = new LibraryClassDefsDlg(vLibraryClass.getLibraryClass(index), new IFrame());\r
+ int result = mcdd.showDialog();\r
+ if (result == DataType.RETURN_TYPE_OK) {\r
+ if (index == -1) {\r
+ this.vLibraryClass.addLibraryClass(mcdd.getLcid());\r
+ } else {\r
+ this.vLibraryClass.setLibraryClass(mcdd.getLcid(), index);\r
+ }\r
+ this.showTable();\r
+ this.save();\r
+ mcdd.dispose();\r
+ }\r
+ if (result == DataType.RETURN_TYPE_CANCEL) {\r
+ mcdd.dispose();\r
+ }\r
}\r
\r
- /**\r
- Remove current item from Vector\r
- \r
- **/\r
- private void removeFromList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vLibraryClass.size() < 1) {\r
- return;\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ *\r
+ * Override actionPerformed to listen all actions\r
+ * \r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ if (arg0.getSource() == jButtonAdd) {\r
+ showEdit(-1);\r
+ }\r
+ if (arg0.getSource() == jButtonUpdate) {\r
+ if (this.selectedRow < 0) {\r
+ Log.err("Please select one record first.");\r
+ return;\r
+ }\r
+ showEdit(selectedRow);\r
}\r
\r
- int intTempIndex = intSelectedItemId;\r
-\r
- jComboBoxList.removeItemAt(intSelectedItemId);\r
-\r
- vLibraryClass.removeLibraryClass(intTempIndex);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
+ if (arg0.getSource() == jButtonRemove) {\r
+ if (jTable.isEditing()) {\r
+ jTable.getCellEditor().stopCellEditing();\r
+ }\r
+ if (selectedRow > -1) {\r
+ this.model.removeRow(selectedRow);\r
+ this.vLibraryClass.removeLibraryClass(selectedRow);\r
+ selectedRow = -1;\r
+ this.save();\r
+ }\r
+ }\r
}\r
\r
/**\r
- Update current item of Vector\r
+ Clear all table rows\r
\r
**/\r
- private void updateForList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vLibraryClass.size() < 1) {\r
- return;\r
- }\r
-\r
- //\r
- // Backup selected item index\r
- //\r
- int intTempIndex = intSelectedItemId;\r
-\r
- vLibraryClass.updateLibraryClass(getCurrentLibraryClass(), intTempIndex);\r
-\r
- jComboBoxList.removeAllItems();\r
- for (int index = 0; index < vLibraryClass.size(); index++) {\r
- jComboBoxList.addItem(vLibraryClass.getLibraryClass(index).getLibraryClassName());\r
+ private void clearAll() {\r
+ if (model != null) {\r
+ for (int index = model.getRowCount() - 1; index >= 0; index--) {\r
+ model.removeRow(index);\r
+ }\r
}\r
-\r
- //\r
- // Restore selected item index\r
- //\r
- intSelectedItemId = intTempIndex;\r
-\r
- //\r
- // Reset select item index\r
- //\r
- jComboBoxList.setSelectedIndex(intSelectedItemId);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
}\r
\r
/**\r
- Refresh all fields' values of selected item of Vector\r
+ Read content of vector and put then into table\r
\r
**/\r
- private void reloadFromList() {\r
+ private void showTable() {\r
+ clearAll();\r
+\r
if (vLibraryClass.size() > 0) {\r
- //\r
- // Get selected item index\r
- //\r
- intSelectedItemId = jComboBoxList.getSelectedIndex();\r
-\r
- this.jComboBoxLibraryClassName.setSelectedItem(vLibraryClass.getLibraryClass(intSelectedItemId)\r
- .getLibraryClassName());\r
- this.jComboBoxUsage.setSelectedItem(vLibraryClass.getLibraryClass(intSelectedItemId).getUsage());\r
- this.jTextFieldRecommendedInstanceVersion.setText(vLibraryClass.getLibraryClass(intSelectedItemId)\r
- .getRecommendedInstanceVersion());\r
- this.jTextFieldRecommendedInstanceGuid.setText(vLibraryClass.getLibraryClass(intSelectedItemId)\r
- .getRecommendedInstanceGuid());\r
- this.jTextFieldFeatureFlag.setText(vLibraryClass.getLibraryClass(intSelectedItemId).getFeatureFlag());\r
- this.iCheckBoxListArch.setAllItemsUnchecked();\r
- this.iCheckBoxListArch.initCheckedItem(true, vLibraryClass.getLibraryClass(intSelectedItemId)\r
- .getSupArchList());\r
- this.iCheckBoxListModule.setAllItemsUnchecked();\r
- this.iCheckBoxListModule.initCheckedItem(true, vLibraryClass.getLibraryClass(intSelectedItemId)\r
- .getSupModuleList());\r
- this.jTextFieldHelpText.setText(vLibraryClass.getLibraryClass(intSelectedItemId).getHelp());\r
- } else {\r
+ for (int index = 0; index < vLibraryClass.size(); index++) {\r
+ model.addRow(vLibraryClass.toStringVector(index));\r
+ }\r
}\r
-\r
- reloadListArea();\r
+ this.jTable.repaint();\r
+ this.jTable.updateUI();\r
+ //this.jScrollPane.setViewportView(this.jTable);\r
}\r
\r
- /**\r
- Update list area pane via the elements of Vector\r
- \r
- **/\r
- private void reloadListArea() {\r
- String strListItem = "";\r
- for (int index = 0; index < vLibraryClass.size(); index++) {\r
- strListItem = strListItem + vLibraryClass.getLibraryClass(index).getLibraryClassName()\r
- + DataType.UNIX_LINE_SEPARATOR;\r
+ /* (non-Javadoc)\r
+ * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)\r
+ *\r
+ */\r
+ public void valueChanged(ListSelectionEvent arg0) {\r
+ if (arg0.getValueIsAdjusting()) {\r
+ return;\r
+ }\r
+ ListSelectionModel lsm = (ListSelectionModel) arg0.getSource();\r
+ if (lsm.isSelectionEmpty()) {\r
+ return;\r
+ } else {\r
+ selectedRow = lsm.getMinSelectionIndex();\r
}\r
- this.jTextAreaList.setText(strListItem);\r
}\r
\r
/* (non-Javadoc)\r
- * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
+ * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
*\r
- * Reflesh the frame when selected item changed\r
- * \r
*/\r
- public void itemStateChanged(ItemEvent arg0) {\r
- if (arg0.getStateChange() == ItemEvent.SELECTED) {\r
- reloadFromList();\r
+ public void mouseClicked(MouseEvent arg0) {\r
+ if (arg0.getClickCount() == 2) {\r
+ if (this.selectedRow < 0) {\r
+ return;\r
+ } else {\r
+ showEdit(selectedRow);\r
+ }\r
}\r
}\r
\r
int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
\r
- resizeComponentWidth(this.jComboBoxLibraryClassName, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jComboBoxUsage, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldHelpText, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldRecommendedInstanceVersion, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldRecommendedInstanceGuid, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldFeatureFlag, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jScrollPaneArch, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jScrollPaneModuleList, intCurrentWidth, intPreferredWidth);\r
-\r
- relocateComponentX(this.jButtonGenerateGuid, intCurrentWidth, intPreferredWidth,\r
- DataType.SPACE_TO_RIGHT_FOR_GENERATE_BUTTON);\r
-\r
- resizeComponentWidth(this.jComboBoxList, intCurrentWidth, intPreferredWidth);\r
- resizeComponent(this.jScrollPaneList, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
- relocateComponentX(this.jButtonAdd, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON);\r
- relocateComponentX(this.jButtonRemove, intCurrentWidth, intPreferredWidth,\r
- DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON);\r
- relocateComponentX(this.jButtonUpdate, intCurrentWidth, intPreferredWidth,\r
- DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON);\r
+ resizeComponent(this.jScrollPaneTable, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
+ relocateComponent(this.jButtonAdd, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_ADD_BUTTON);\r
+ relocateComponent(this.jButtonRemove, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_REMOVE_BUTTON);\r
+ relocateComponent(this.jButtonUpdate, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_UPDATE_BUTTON);\r
}\r
}\r
**/\r
package org.tianocore.frameworkwizard.module.ui;\r
\r
+import java.awt.Dimension;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ComponentEvent;\r
-import java.awt.event.ItemEvent;\r
+import java.awt.event.MouseEvent;\r
import java.util.Vector;\r
\r
import javax.swing.JButton;\r
-import javax.swing.JComboBox;\r
-import javax.swing.JLabel;\r
import javax.swing.JPanel;\r
import javax.swing.JScrollPane;\r
-import javax.swing.JTextArea;\r
-import javax.swing.JTextField;\r
+import javax.swing.JTable;\r
+import javax.swing.ListSelectionModel;\r
+import javax.swing.event.ListSelectionEvent;\r
\r
import org.tianocore.PcdCodedDocument;\r
import org.tianocore.PcdItemTypes;\r
import org.tianocore.PcdCodedDocument.PcdCoded;\r
import org.tianocore.PcdCodedDocument.PcdCoded.PcdEntry;\r
import org.tianocore.frameworkwizard.common.DataType;\r
-import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.IDefaultTableModel;\r
import org.tianocore.frameworkwizard.common.Log;\r
import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
-import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
-import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
import org.tianocore.frameworkwizard.module.Identifications.PcdCoded.PcdCodedIdentification;\r
import org.tianocore.frameworkwizard.module.Identifications.PcdCoded.PcdCodedVector;\r
-import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
+import org.tianocore.frameworkwizard.module.ui.dialog.PCDsDlg;\r
\r
/**\r
The class is used to create, update PCD of MSA/MBD file\r
//\r
private JPanel jContentPane = null;\r
\r
- private JLabel jLabelItemType = null;\r
-\r
- private JLabel jLabelC_Name = null;\r
-\r
- private JComboBox jComboBoxItemType = null;\r
-\r
- private JComboBox jComboBoxCName = null;\r
-\r
- private JLabel jLabelDefaultValue = null;\r
-\r
- private JTextField jTextFieldDefaultValue = null;\r
-\r
- private StarLabel jStarLabel1 = null;\r
-\r
- private StarLabel jStarLabel2 = null;\r
-\r
- private StarLabel jStarLabel3 = null;\r
-\r
- private JLabel jLabelHelpText = null;\r
-\r
- private JTextField jTextFieldHelpText = null;\r
-\r
- private JTextArea jTextAreaList = null;\r
-\r
- private JComboBox jComboBoxList = null;\r
-\r
private JButton jButtonAdd = null;\r
\r
private JButton jButtonRemove = null;\r
\r
private JScrollPane jScrollPane = null;\r
\r
- private JScrollPane jScrollPaneList = null;\r
-\r
- private JLabel jLabelTokenSpaceGuid = null;\r
-\r
- private JTextField jTextFieldTokenSpaceGuid = null;\r
-\r
- private JLabel jLabelFeatureFlag = null;\r
-\r
- private JTextField jTextFieldFeatureFlag = null;\r
-\r
- private JLabel jLabelArch = null;\r
-\r
- private ICheckBoxList iCheckBoxListArch = null;\r
+ private JScrollPane jScrollPaneTable = null;\r
\r
- private JScrollPane jScrollPaneArch = null;\r
+ private JTable jTable = null;\r
\r
//\r
// Not used by UI\r
//\r
- private int intSelectedItemId = 0;\r
-\r
private OpeningModuleType omt = null;\r
\r
private ModuleSurfaceArea msa = null;\r
\r
private PcdCodedVector vid = new PcdCodedVector();\r
\r
- private EnumerationData ed = new EnumerationData();\r
- \r
- private WorkspaceTools wt = new WorkspaceTools();\r
+ private IDefaultTableModel model = null;\r
\r
- /**\r
- This method initializes jComboBoxItemType \r
- \r
- @return javax.swing.JComboBox jComboBoxItemType\r
- \r
- **/\r
- private JComboBox getJComboBoxItemType() {\r
- if (jComboBoxItemType == null) {\r
- jComboBoxItemType = new JComboBox();\r
- jComboBoxItemType.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
- jComboBoxItemType.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jComboBoxItemType;\r
- }\r
-\r
- /**\r
- This method initializes jTextFieldC_Name \r
- \r
- @return javax.swing.JTextField jTextFieldC_Name\r
- \r
- **/\r
- private JComboBox getJComboBoxCName() {\r
- if (jComboBoxCName == null) {\r
- jComboBoxCName = new JComboBox();\r
- jComboBoxCName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
- jComboBoxCName.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jComboBoxCName;\r
- }\r
-\r
- /**\r
- This method initializes jTextFieldDefaultValue \r
- \r
- @return javax.swing.JTextField jTextFieldDefaultValue\r
- \r
- **/\r
- private JTextField getJTextFieldDefaultValue() {\r
- if (jTextFieldDefaultValue == null) {\r
- jTextFieldDefaultValue = new JTextField();\r
- jTextFieldDefaultValue.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
- jTextFieldDefaultValue.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jTextFieldDefaultValue;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldHelpText \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldHelpText() {\r
- if (jTextFieldHelpText == null) {\r
- jTextFieldHelpText = new JTextField();\r
- jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
- jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jTextFieldHelpText;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxFileList \r
- \r
- @return javax.swing.JComboBox jComboBoxFileList\r
- \r
- **/\r
- private JComboBox getJComboBoxList() {\r
- if (jComboBoxList == null) {\r
- jComboBoxList = new JComboBox();\r
- jComboBoxList.setBounds(new java.awt.Rectangle(15, 245, 210, 20));\r
- jComboBoxList.addItemListener(this);\r
- jComboBoxList.addActionListener(this);\r
- jComboBoxList.setPreferredSize(new java.awt.Dimension(210, 20));\r
- }\r
- return jComboBoxList;\r
- }\r
+ private int selectedRow = -1;\r
\r
/**\r
This method initializes jButtonAdd \r
jButtonUpdate = new JButton();\r
jButtonUpdate.setBounds(new java.awt.Rectangle(315, 245, 80, 20));\r
jButtonUpdate.setPreferredSize(new java.awt.Dimension(80, 20));\r
- jButtonUpdate.setText("Update");\r
+ jButtonUpdate.setText("Edit");\r
jButtonUpdate.addActionListener(this);\r
}\r
return jButtonUpdate;\r
}\r
\r
- /**\r
- * This method initializes jScrollPaneFileList \r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneList() {\r
- if (jScrollPaneList == null) {\r
- jScrollPaneList = new JScrollPane();\r
- jScrollPaneList.setBounds(new java.awt.Rectangle(15, 270, 465, 240));\r
- jScrollPaneList.setViewportView(getJTextAreaList());\r
- jScrollPaneList.setPreferredSize(new java.awt.Dimension(465, 240));\r
- }\r
- return jScrollPaneList;\r
- }\r
-\r
/**\r
This method initializes jScrollPane \r
\r
}\r
\r
/**\r
- * This method initializes jTextAreaFileList \r
- * \r
- * @return javax.swing.JTextArea \r
- */\r
- private JTextArea getJTextAreaList() {\r
- if (jTextAreaList == null) {\r
- jTextAreaList = new JTextArea();\r
- jTextAreaList.setEditable(false);\r
-\r
+ This method initializes jScrollPaneTable \r
+ \r
+ @return javax.swing.JScrollPane \r
+ **/\r
+ private JScrollPane getJScrollPaneTable() {\r
+ if (jScrollPaneTable == null) {\r
+ jScrollPaneTable = new JScrollPane();\r
+ jScrollPaneTable.setBounds(new java.awt.Rectangle(15, 10, 470, 420));\r
+ jScrollPaneTable.setPreferredSize(new Dimension(470, 420));\r
+ jScrollPaneTable.setViewportView(getJTable());\r
}\r
- return jTextAreaList;\r
+ return jScrollPaneTable;\r
}\r
\r
/**\r
- * This method initializes jTextFieldTokenSpaceGuid \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldTokenSpaceGuid() {\r
- if (jTextFieldTokenSpaceGuid == null) {\r
- jTextFieldTokenSpaceGuid = new JTextField();\r
- jTextFieldTokenSpaceGuid.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
- jTextFieldTokenSpaceGuid.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ This method initializes jTable \r
+ \r
+ @return javax.swing.JTable \r
+ **/\r
+ private JTable getJTable() {\r
+ if (jTable == null) {\r
+ jTable = new JTable();\r
+ model = new IDefaultTableModel();\r
+ jTable = new JTable(model);\r
+ jTable.setRowHeight(20);\r
+\r
+ model.addColumn("Name");\r
+ model.addColumn("Type");\r
+ model.addColumn("Value");\r
+\r
+ jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTable.getSelectionModel().addListSelectionListener(this);\r
+ jTable.getModel().addTableModelListener(this);\r
+ jTable.addMouseListener(this);\r
}\r
- return jTextFieldTokenSpaceGuid;\r
+ return jTable;\r
}\r
\r
- /**\r
- * This method initializes jTextFieldFeatureFlag \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldFeatureFlag() {\r
- if (jTextFieldFeatureFlag == null) {\r
- jTextFieldFeatureFlag = new JTextField();\r
- jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 135, 320, 20));\r
- jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jTextFieldFeatureFlag;\r
+ public static void main(String[] args) {\r
+\r
}\r
\r
/**\r
- This method initializes iCheckBoxListArch \r
-\r
- @return ICheckBoxList \r
+ This method initializes this\r
+ \r
**/\r
- private ICheckBoxList getICheckBoxListSupportedArchitectures() {\r
- if (iCheckBoxListArch == null) {\r
- iCheckBoxListArch = new ICheckBoxList();\r
- iCheckBoxListArch.addFocusListener(this);\r
- iCheckBoxListArch.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
- }\r
- return iCheckBoxListArch;\r
+ private void init() {\r
+ this.setSize(500, 515);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("Pcd Coded");\r
}\r
\r
/**\r
- This method initializes jScrollPaneArch \r
-\r
- @return javax.swing.JScrollPane \r
+ This method initializes this\r
+ Fill values to all fields if these values are not empty\r
+ \r
+ @param inPackageDependencies\r
\r
**/\r
- private JScrollPane getJScrollPaneArch() {\r
- if (jScrollPaneArch == null) {\r
- jScrollPaneArch = new JScrollPane();\r
- jScrollPaneArch.setBounds(new java.awt.Rectangle(160, 160, 320, 80));\r
- jScrollPaneArch.setPreferredSize(new java.awt.Dimension(320, 80));\r
- jScrollPaneArch.setViewportView(getICheckBoxListSupportedArchitectures());\r
- }\r
- return jScrollPaneArch;\r
- }\r
-\r
- public static void main(String[] args) {\r
+ private void init(PcdCoded inPcdCodeds) {\r
+ init();\r
+ this.pcds = inPcdCodeds;\r
+\r
+ if (this.pcds != null) {\r
+ if (this.pcds.getPcdEntryList().size() > 0) {\r
+ for (int index = 0; index < this.pcds.getPcdEntryList().size(); index++) {\r
+ String arg0 = pcds.getPcdEntryList().get(index).getCName();\r
+ String arg1 = pcds.getPcdEntryList().get(index).getTokenSpaceGuidCName();\r
+\r
+ String arg2 = pcds.getPcdEntryList().get(index).getFeatureFlag();\r
+ Vector<String> arg3 = Tools.convertListToVector(pcds.getPcdEntryList().get(index).getSupArchList());\r
+\r
+ String arg4 = pcds.getPcdEntryList().get(index).getDefaultValue();\r
+ String arg5 = pcds.getPcdEntryList().get(index).getHelpText();\r
+ String arg6 = null;\r
+ if (pcds.getPcdEntryList().get(index).getPcdItemType() != null) {\r
+ arg6 = pcds.getPcdEntryList().get(index).getPcdItemType().toString();\r
+ }\r
\r
+ id = new PcdCodedIdentification(arg0, arg1, arg2, arg3, arg4, arg5, arg6);\r
+ vid.addPcdCoded(id);\r
+ }\r
+ }\r
+ }\r
+ showTable();\r
}\r
\r
- /**\r
- This method initializes this\r
- \r
- **/\r
- private void init() {\r
- this.setSize(500, 515);\r
- this.setContentPane(getJScrollPane());\r
- this.setTitle("Pcd Coded");\r
- initFrame();\r
- this.setViewMode(false);\r
- }\r
-\r
- /**\r
- This method initializes this\r
- Fill values to all fields if these values are not empty\r
- \r
- @param inPackageDependencies\r
-\r
- **/\r
- private void init(PcdCoded inPcdCodeds) {\r
- init();\r
- this.pcds = inPcdCodeds;\r
-\r
- if (this.pcds != null) {\r
- if (this.pcds.getPcdEntryList().size() > 0) {\r
- for (int index = 0; index < this.pcds.getPcdEntryList().size(); index++) {\r
- String arg0 = pcds.getPcdEntryList().get(index).getCName();\r
- String arg1 = pcds.getPcdEntryList().get(index).getTokenSpaceGuidCName();\r
- \r
-\r
- String arg2 = pcds.getPcdEntryList().get(index).getFeatureFlag();\r
- Vector<String> arg3 = Tools.convertListToVector(pcds.getPcdEntryList().get(index).getSupArchList());\r
- \r
- String arg4 = pcds.getPcdEntryList().get(index).getDefaultValue();\r
- String arg5 = pcds.getPcdEntryList().get(index).getHelpText();\r
- String arg6 = null;\r
- if (pcds.getPcdEntryList().get(index).getPcdItemType() != null) {\r
- arg6 = pcds.getPcdEntryList().get(index).getPcdItemType().toString();\r
- }\r
- \r
- id = new PcdCodedIdentification(arg0, arg1, arg2, arg3, arg4, arg5, arg6);\r
- vid.addPcdCoded(id);\r
- }\r
- }\r
- }\r
- //\r
- // Update the list\r
- //\r
- Tools.generateComboBoxByVector(jComboBoxList, vid.getPcdCodedName());\r
- reloadListArea();\r
- }\r
- \r
/**\r
This is the default constructor\r
\r
this.setVisible(true);\r
}\r
\r
- /**\r
- Disable all components when the mode is view\r
- \r
- @param isView true - The view mode; false - The non-view mode\r
- \r
- **/\r
- public void setViewMode(boolean isView) {\r
- if (isView) {\r
- this.jTextFieldDefaultValue.setEnabled(!isView);\r
- this.jComboBoxItemType.setEnabled(!isView);\r
- }\r
- }\r
-\r
/**\r
This method initializes jContentPane\r
\r
**/\r
private JPanel getJContentPane() {\r
if (jContentPane == null) {\r
- jLabelArch = new JLabel();\r
- jLabelArch.setBounds(new java.awt.Rectangle(15, 160, 140, 20));\r
- jLabelArch.setText("Sup Arch List");\r
- jLabelFeatureFlag = new JLabel();\r
- jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 135, 140, 20));\r
- jLabelFeatureFlag.setText("Feature Flag");\r
- jLabelTokenSpaceGuid = new JLabel();\r
- jLabelTokenSpaceGuid.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
- jLabelTokenSpaceGuid.setText("Token Space C_Name");\r
- jLabelHelpText = new JLabel();\r
- jLabelHelpText.setBounds(new java.awt.Rectangle(15, 110, 137, 19));\r
- jLabelHelpText.setText("Help Text");\r
- jLabelC_Name = new JLabel();\r
- jLabelC_Name.setText("C_Name");\r
- jLabelC_Name.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
- jLabelDefaultValue = new JLabel();\r
- jLabelDefaultValue.setText("Default Value");\r
- jLabelDefaultValue.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
- jLabelItemType = new JLabel();\r
- jLabelItemType.setText("Item Type");\r
- jLabelItemType.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
-\r
jContentPane = new JPanel();\r
jContentPane.setLayout(null);\r
- jContentPane.setPreferredSize(new java.awt.Dimension(490, 520));\r
-\r
- jContentPane.add(jLabelItemType, null);\r
- jContentPane.add(jLabelC_Name, null);\r
- jContentPane.add(getJComboBoxCName(), null);\r
- jContentPane.add(jLabelDefaultValue, null);\r
- jContentPane.add(getJTextFieldDefaultValue(), null);\r
- jContentPane.add(getJComboBoxItemType(), null);\r
- jStarLabel1 = new StarLabel();\r
- jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
- jStarLabel2 = new StarLabel();\r
- jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
- jStarLabel3 = new StarLabel();\r
- jStarLabel3.setLocation(new java.awt.Point(0, 110));\r
- jContentPane.add(jStarLabel1, null);\r
- jContentPane.add(jStarLabel2, null);\r
- jContentPane.add(jStarLabel3, null);\r
- jContentPane.add(jLabelHelpText, null);\r
- jContentPane.add(getJTextFieldHelpText(), null);\r
-\r
- jContentPane.add(getJComboBoxList(), null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 490));\r
+\r
jContentPane.add(getJButtonAdd(), null);\r
jContentPane.add(getJButtonRemove(), null);\r
jContentPane.add(getJButtonUpdate(), null);\r
- jContentPane.add(getJScrollPaneList(), null);\r
- jContentPane.add(jLabelTokenSpaceGuid, null);\r
- jContentPane.add(getJTextFieldTokenSpaceGuid(), null);\r
- jContentPane.add(jLabelFeatureFlag, null);\r
- jContentPane.add(getJTextFieldFeatureFlag(), null);\r
- jContentPane.add(jLabelArch, null);\r
- jContentPane.add(getJScrollPaneArch(), null);\r
+ jContentPane.add(getJScrollPaneTable(), null);\r
}\r
return jContentPane;\r
}\r
\r
+ private void showEdit(int index) {\r
+ PCDsDlg dlg = new PCDsDlg(vid.getPcdCoded(index), new IFrame());\r
+ int result = dlg.showDialog();\r
+ if (result == DataType.RETURN_TYPE_OK) {\r
+ if (index == -1) {\r
+ this.vid.addPcdCoded(dlg.getId());\r
+ } else {\r
+ this.vid.setPcdCoded(dlg.getId(), index);\r
+ }\r
+ this.showTable();\r
+ this.save();\r
+ dlg.dispose();\r
+ }\r
+ if (result == DataType.RETURN_TYPE_CANCEL) {\r
+ dlg.dispose();\r
+ }\r
+ }\r
+\r
/**\r
- This method initializes Usage type, Item type and Datum type\r
+ Clear all table rows\r
\r
**/\r
- private void initFrame() {\r
- Tools.generateComboBoxByVector(jComboBoxCName, wt.getAllPcdDeclarationsFromWorkspace());\r
- Tools.generateComboBoxByVector(jComboBoxItemType, ed.getVPcdItemTypes());\r
- this.iCheckBoxListArch.setAllItems(ed.getVSupportedArchitectures());\r
+ private void clearAll() {\r
+ if (model != null) {\r
+ for (int index = model.getRowCount() - 1; index >= 0; index--) {\r
+ model.removeRow(index);\r
+ }\r
+ }\r
+ }\r
+\r
+ /**\r
+ Read content of vector and put then into table\r
+ \r
+ **/\r
+ private void showTable() {\r
+ clearAll();\r
+\r
+ if (vid.size() > 0) {\r
+ for (int index = 0; index < vid.size(); index++) {\r
+ model.addRow(vid.toStringVector(index));\r
+ }\r
+ }\r
+ this.jTable.repaint();\r
+ this.jTable.updateUI();\r
}\r
\r
/* (non-Javadoc)\r
*/\r
public void actionPerformed(ActionEvent arg0) {\r
if (arg0.getSource() == jButtonAdd) {\r
- if (!checkAdd()) {\r
- return;\r
- }\r
- addToList();\r
- }\r
- if (arg0.getSource() == jButtonRemove) {\r
- removeFromList();\r
+ showEdit(-1);\r
}\r
if (arg0.getSource() == jButtonUpdate) {\r
- if (!checkAdd()) {\r
+ if (this.selectedRow < 0) {\r
+ Log.err("Please select one record first.");\r
return;\r
}\r
- updateForList();\r
+ showEdit(selectedRow);\r
}\r
- }\r
\r
- /**\r
- Data validation for all fields\r
- \r
- @retval true - All datas are valid\r
- @retval false - At least one data is invalid\r
- \r
- **/\r
- public boolean checkAdd() {\r
- //\r
- // Check if all fields have correct data types \r
- //\r
-\r
- //\r
- // Check C_Name \r
- //\r
- if (!isEmpty(this.jComboBoxCName.getSelectedItem().toString())) {\r
- if (!DataValidation.isC_NameType(this.jComboBoxCName.getSelectedItem().toString())) {\r
- Log.err("Incorrect data type for C_Name");\r
- return false;\r
- }\r
- }\r
- \r
- //\r
- // Check TokenSpaceGuid\r
- //\r
- if (!isEmpty(this.jTextFieldTokenSpaceGuid.getText())) {\r
- if (!DataValidation.isC_NameType(this.jTextFieldTokenSpaceGuid.getText())) {\r
- Log.err("Incorrect data type for Token Space C_Name");\r
- return false;\r
- }\r
- }\r
- \r
- //\r
- // Check DefaultValue\r
- //\r
- if (!isEmpty(this.jTextFieldDefaultValue.getText())) {\r
- if (!DataValidation.isDefaultValueType(this.jTextFieldDefaultValue.getText())) {\r
- Log.err("Incorrect data type for Default Value");\r
- return false;\r
+ if (arg0.getSource() == jButtonRemove) {\r
+ if (jTable.isEditing()) {\r
+ jTable.getCellEditor().stopCellEditing();\r
}\r
- }\r
- \r
- //\r
- // Check HelpText\r
- //\r
- if (isEmpty(this.jTextFieldHelpText.getText())) {\r
- Log.err("Help Text couldn't be empty");\r
- return false;\r
- }\r
- \r
- //\r
- // Check FeatureFlag\r
- //\r
- if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
- if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
- Log.err("Incorrect data type for Feature Flag");\r
- return false;\r
+ if (selectedRow > -1) {\r
+ this.model.removeRow(selectedRow);\r
+ this.vid.removePcdCoded(selectedRow);\r
+ selectedRow = -1;\r
+ this.save();\r
}\r
}\r
- \r
- return true;\r
}\r
\r
/**\r
if (!isEmpty(vid.getPcdCoded(index).getFeatureFlag())) {\r
p.setFeatureFlag(vid.getPcdCoded(index).getFeatureFlag());\r
}\r
- if (vid.getPcdCoded(index).getSupArchList() != null && vid.getPcdCoded(index).getSupArchList().size() > 0) {\r
+ if (vid.getPcdCoded(index).getSupArchList() != null\r
+ && vid.getPcdCoded(index).getSupArchList().size() > 0) {\r
p.setSupArchList(vid.getPcdCoded(index).getSupArchList());\r
}\r
if (!isEmpty(vid.getPcdCoded(index).getValue())) {\r
}\r
}\r
\r
+ /* (non-Javadoc)\r
+ * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)\r
+ *\r
+ */\r
+ public void valueChanged(ListSelectionEvent arg0) {\r
+ if (arg0.getValueIsAdjusting()) {\r
+ return;\r
+ }\r
+ ListSelectionModel lsm = (ListSelectionModel) arg0.getSource();\r
+ if (lsm.isSelectionEmpty()) {\r
+ return;\r
+ } else {\r
+ selectedRow = lsm.getMinSelectionIndex();\r
+ }\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
+ *\r
+ */\r
+ public void mouseClicked(MouseEvent arg0) {\r
+ if (arg0.getClickCount() == 2) {\r
+ if (this.selectedRow < 0) {\r
+ return;\r
+ } else {\r
+ showEdit(selectedRow);\r
+ }\r
+ }\r
+ }\r
+\r
/* (non-Javadoc)\r
* @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
* \r
int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
\r
- resizeComponentWidth(jComboBoxCName, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldTokenSpaceGuid, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jComboBoxItemType, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldDefaultValue, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldHelpText, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldFeatureFlag, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jScrollPaneArch, intCurrentWidth, intPreferredWidth);\r
-\r
- resizeComponentWidth(jComboBoxList, intCurrentWidth, intPreferredWidth);\r
- resizeComponent(jScrollPaneList, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
-\r
- relocateComponentX(jButtonAdd, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON);\r
- relocateComponentX(jButtonRemove, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON);\r
- relocateComponentX(jButtonUpdate, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON);\r
+ resizeComponent(this.jScrollPaneTable, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
+ relocateComponent(this.jButtonAdd, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_ADD_BUTTON);\r
+ relocateComponent(this.jButtonRemove, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_REMOVE_BUTTON);\r
+ relocateComponent(this.jButtonUpdate, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_UPDATE_BUTTON);\r
}\r
- \r
- private PcdCodedIdentification getCurrentPcdCoded() {\r
- String arg0 = this.jComboBoxCName.getSelectedItem().toString();\r
- String arg1 = this.jTextFieldTokenSpaceGuid.getText();\r
- \r
-\r
- String arg2 = this.jTextFieldFeatureFlag.getText();\r
- Vector<String> arg3 = this.iCheckBoxListArch.getAllCheckedItemsString();\r
- \r
- String arg4 = this.jTextFieldDefaultValue.getText();\r
- String arg5 = this.jTextFieldHelpText.getText();\r
- String arg6 = this.jComboBoxItemType.getSelectedItem().toString();\r
- id = new PcdCodedIdentification(arg0, arg1, arg2, arg3, arg4, arg5, arg6);\r
- return id;\r
- }\r
- \r
- /**\r
- Add current item to Vector\r
- \r
- **/\r
- private void addToList() {\r
- intSelectedItemId = vid.size();\r
-\r
- vid.addPcdCoded(getCurrentPcdCoded());\r
-\r
- jComboBoxList.addItem(id.getName());\r
- jComboBoxList.setSelectedItem(id.getName());\r
-\r
- //\r
- // Reset select item index\r
- //\r
- intSelectedItemId = vid.size();\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Remove current item from Vector\r
- \r
- **/\r
- private void removeFromList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
- return;\r
- }\r
-\r
- int intTempIndex = intSelectedItemId;\r
-\r
- jComboBoxList.removeItemAt(intSelectedItemId);\r
-\r
- vid.removePcdCoded(intTempIndex);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Update current item of Vector\r
- \r
- **/\r
- private void updateForList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
- return;\r
- }\r
-\r
- //\r
- // Backup selected item index\r
- //\r
- int intTempIndex = intSelectedItemId;\r
-\r
- vid.updatePcdCoded(getCurrentPcdCoded(), intTempIndex);\r
-\r
- jComboBoxList.removeAllItems();\r
- for (int index = 0; index < vid.size(); index++) {\r
- jComboBoxList.addItem(vid.getPcdCoded(index).getName());\r
- }\r
-\r
- //\r
- // Restore selected item index\r
- //\r
- intSelectedItemId = intTempIndex;\r
-\r
- //\r
- // Reset select item index\r
- //\r
- jComboBoxList.setSelectedIndex(intSelectedItemId);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Refresh all fields' values of selected item of Vector\r
- \r
- **/\r
- private void reloadFromList() {\r
- if (vid.size() > 0) {\r
- //\r
- // Get selected item index\r
- //\r
- intSelectedItemId = jComboBoxList.getSelectedIndex();\r
-\r
- this.jComboBoxCName.setSelectedItem(vid.getPcdCoded(intSelectedItemId).getName());\r
- this.jTextFieldTokenSpaceGuid.setText(vid.getPcdCoded(intSelectedItemId).getGuid());\r
- \r
- this.jTextFieldDefaultValue.setText(vid.getPcdCoded(intSelectedItemId).getValue());\r
- this.jTextFieldHelpText.setText(vid.getPcdCoded(intSelectedItemId).getHelp());\r
- this.jComboBoxItemType.setSelectedItem(vid.getPcdCoded(intSelectedItemId).getType());\r
-\r
- jTextFieldFeatureFlag.setText(vid.getPcdCoded(intSelectedItemId).getFeatureFlag());\r
- iCheckBoxListArch.setAllItemsUnchecked();\r
- iCheckBoxListArch.initCheckedItem(true, vid.getPcdCoded(intSelectedItemId).getSupArchList());\r
-\r
- } else {\r
- }\r
-\r
- reloadListArea();\r
- }\r
-\r
- /**\r
- Update list area pane via the elements of Vector\r
- \r
- **/\r
- private void reloadListArea() {\r
- String strListItem = "";\r
- for (int index = 0; index < vid.size(); index++) {\r
- strListItem = strListItem + vid.getPcdCoded(index).getName() + DataType.UNIX_LINE_SEPARATOR;\r
- }\r
- this.jTextAreaList.setText(strListItem);\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
- *\r
- * Reflesh the frame when selected item changed\r
- * \r
- */\r
- public void itemStateChanged(ItemEvent arg0) {\r
- if (arg0.getSource() == this.jComboBoxList && arg0.getStateChange() == ItemEvent.SELECTED) {\r
- reloadFromList();\r
- }\r
- }\r
}\r
**/\r
package org.tianocore.frameworkwizard.module.ui;\r
\r
+import java.awt.Dimension;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ComponentEvent;\r
-import java.awt.event.ItemEvent;\r
-import java.awt.event.ItemListener;\r
+import java.awt.event.MouseEvent;\r
import java.util.Vector;\r
\r
import javax.swing.JButton;\r
-import javax.swing.JComboBox;\r
-import javax.swing.JLabel;\r
import javax.swing.JPanel;\r
import javax.swing.JScrollPane;\r
-import javax.swing.JTextArea;\r
-import javax.swing.JTextField;\r
+import javax.swing.JTable;\r
+import javax.swing.ListSelectionModel;\r
+import javax.swing.event.ListSelectionEvent;\r
\r
-import org.tianocore.PackageDependenciesDocument;\r
import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea;\r
import org.tianocore.PackageDependenciesDocument.PackageDependencies;\r
import org.tianocore.PackageDependenciesDocument.PackageDependencies.Package;\r
import org.tianocore.frameworkwizard.common.DataType;\r
-import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.IDefaultTableModel;\r
import org.tianocore.frameworkwizard.common.Log;\r
import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
-import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
-import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
import org.tianocore.frameworkwizard.module.Identifications.PackageDependencies.PackageDependenciesIdentification;\r
import org.tianocore.frameworkwizard.module.Identifications.PackageDependencies.PackageDependenciesVector;\r
+import org.tianocore.frameworkwizard.module.ui.dialog.PackageDepDlg;\r
import org.tianocore.frameworkwizard.packaging.PackageIdentification;\r
import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
\r
\r
\r
**/\r
-public class ModulePackageDependencies extends IInternalFrame implements ItemListener {\r
+public class ModulePackageDependencies extends IInternalFrame {\r
\r
///\r
/// Define class Serial Version UID\r
//\r
private JPanel jContentPane = null;\r
\r
- private JLabel jLabelPackageName = null;\r
-\r
- private StarLabel jStarLabel1 = null;\r
-\r
- private JComboBox jComboBoxPackageName = null;\r
-\r
- private JLabel jLabelPackageGuid = null;\r
-\r
- private JTextField jTextFieldPackageGuid = null;\r
-\r
- private JButton jButtonGenerateGuid = null;\r
-\r
- private JLabel jLabelPackageVersion = null;\r
-\r
- private JTextField jTextFieldPackageVersion = null;\r
-\r
- private JLabel jLabelFeatureFlag = null;\r
-\r
- private JTextField jTextFieldFeatureFlag = null;\r
-\r
- private JTextArea jTextAreaList = null;\r
-\r
- private JComboBox jComboBoxList = null;\r
-\r
private JButton jButtonAdd = null;\r
\r
private JButton jButtonRemove = null;\r
\r
private JScrollPane jScrollPane = null;\r
\r
- private JScrollPane jScrollPaneList = null;\r
+ private JScrollPane jScrollPaneTable = null;\r
\r
- private JLabel jLabelArch = null;\r
-\r
- private ICheckBoxList iCheckBoxListArch = null;\r
-\r
- private JScrollPane jScrollPaneArch = null;\r
+ private JTable jTable = null;\r
\r
//\r
// Not used by UI\r
//\r
- private int intSelectedItemId = 0;\r
-\r
private OpeningModuleType omt = null;\r
\r
private ModuleSurfaceArea msa = null;\r
\r
- private PackageDependenciesIdentification id = null;\r
+ private PackageDependencies pd = null;\r
\r
- private PackageDependenciesVector vid = new PackageDependenciesVector();\r
+ private PackageDependenciesIdentification pdid = null;\r
\r
- private PackageDependenciesDocument.PackageDependencies packageDependencies = null;\r
+ private PackageDependenciesVector vid = new PackageDependenciesVector();\r
\r
private WorkspaceTools wt = new WorkspaceTools();\r
\r
private Vector<PackageIdentification> vPackage = wt.getAllPackages();\r
\r
- /**\r
- * This method initializes jComboBoxPackageName \r
- * \r
- * @return javax.swing.JComboBox \r
- */\r
- private JComboBox getJComboBoxPackageName() {\r
- if (jComboBoxPackageName == null) {\r
- jComboBoxPackageName = new JComboBox();\r
- jComboBoxPackageName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
- jComboBoxPackageName.setPreferredSize(new java.awt.Dimension(320, 20));\r
- jComboBoxPackageName.setToolTipText("If your Module requires a package list that here.");\r
- jComboBoxPackageName.addItemListener(this);\r
- }\r
- return jComboBoxPackageName;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldPackageGuid \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldPackageGuid() {\r
- if (jTextFieldPackageGuid == null) {\r
- jTextFieldPackageGuid = new JTextField();\r
- jTextFieldPackageGuid.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
- jTextFieldPackageGuid.setPreferredSize(new java.awt.Dimension(320, 20));\r
- jTextFieldPackageGuid.setEditable(false);\r
- }\r
- return jTextFieldPackageGuid;\r
- }\r
-\r
- /**\r
- * This method initializes jButtonGenerateGuid \r
- * \r
- * @return javax.swing.JButton \r
- */\r
- private JButton getJButtonGenerateGuid() {\r
- if (jButtonGenerateGuid == null) {\r
- jButtonGenerateGuid = new JButton();\r
- jButtonGenerateGuid.setBounds(new java.awt.Rectangle(415, 35, 65, 20));\r
- jButtonGenerateGuid.setPreferredSize(new java.awt.Dimension(65, 20));\r
- jButtonGenerateGuid.setText("GEN");\r
- jButtonGenerateGuid.addActionListener(this);\r
- jButtonGenerateGuid.setVisible(false);\r
- }\r
- return jButtonGenerateGuid;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldPackageVersion \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldPackageVersion() {\r
- if (jTextFieldPackageVersion == null) {\r
- jTextFieldPackageVersion = new JTextField();\r
- jTextFieldPackageVersion.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
- jTextFieldPackageVersion.setPreferredSize(new java.awt.Dimension(320, 20));\r
- jTextFieldPackageVersion\r
- .setToolTipText("If this module depends on a specific version of a package, enter the package version here. If the module can use the latest version that does not break backward compatibility, leave this field blank");\r
- }\r
- return jTextFieldPackageVersion;\r
- }\r
+ private IDefaultTableModel model = null;\r
\r
- /**\r
- * This method initializes jTextFieldFeatureFlag \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldFeatureFlag() {\r
- if (jTextFieldFeatureFlag == null) {\r
- jTextFieldFeatureFlag = new JTextField();\r
- jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
- jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jTextFieldFeatureFlag;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxFileList \r
- \r
- @return javax.swing.JComboBox jComboBoxFileList\r
- \r
- **/\r
- private JComboBox getJComboBoxList() {\r
- if (jComboBoxList == null) {\r
- jComboBoxList = new JComboBox();\r
- jComboBoxList.setBounds(new java.awt.Rectangle(15, 195, 210, 20));\r
- jComboBoxList.addItemListener(this);\r
- jComboBoxList.addActionListener(this);\r
- jComboBoxList.setPreferredSize(new java.awt.Dimension(210, 20));\r
- }\r
- return jComboBoxList;\r
- }\r
+ private int selectedRow = -1;\r
\r
/**\r
This method initializes jButtonAdd \r
private JButton getJButtonAdd() {\r
if (jButtonAdd == null) {\r
jButtonAdd = new JButton();\r
- jButtonAdd.setBounds(new java.awt.Rectangle(230, 195, 80, 20));\r
+ jButtonAdd.setBounds(new java.awt.Rectangle(230, 445, 80, 20));\r
jButtonAdd.setText("Add");\r
jButtonAdd.addActionListener(this);\r
jButtonAdd.setPreferredSize(new java.awt.Dimension(80, 20));\r
private JButton getJButtonRemove() {\r
if (jButtonRemove == null) {\r
jButtonRemove = new JButton();\r
- jButtonRemove.setBounds(new java.awt.Rectangle(400, 195, 80, 20));\r
+ jButtonRemove.setBounds(new java.awt.Rectangle(400, 445, 80, 20));\r
jButtonRemove.setText("Remove");\r
jButtonRemove.addActionListener(this);\r
jButtonRemove.setPreferredSize(new java.awt.Dimension(80, 20));\r
private JButton getJButtonUpdate() {\r
if (jButtonUpdate == null) {\r
jButtonUpdate = new JButton();\r
- jButtonUpdate.setBounds(new java.awt.Rectangle(315, 195, 80, 20));\r
+ jButtonUpdate.setBounds(new java.awt.Rectangle(315, 445, 80, 20));\r
jButtonUpdate.setPreferredSize(new java.awt.Dimension(80, 20));\r
- jButtonUpdate.setText("Update");\r
+ jButtonUpdate.setText("Edit");\r
jButtonUpdate.addActionListener(this);\r
}\r
return jButtonUpdate;\r
}\r
\r
- /**\r
- * This method initializes jScrollPaneFileList \r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneList() {\r
- if (jScrollPaneList == null) {\r
- jScrollPaneList = new JScrollPane();\r
- jScrollPaneList.setBounds(new java.awt.Rectangle(15, 220, 465, 240));\r
- jScrollPaneList.setViewportView(getJTextAreaList());\r
- jScrollPaneList.setPreferredSize(new java.awt.Dimension(465, 240));\r
- }\r
- return jScrollPaneList;\r
- }\r
-\r
/**\r
This method initializes jScrollPane \r
\r
}\r
\r
/**\r
- * This method initializes jTextAreaFileList \r
- * \r
- * @return javax.swing.JTextArea \r
- */\r
- private JTextArea getJTextAreaList() {\r
- if (jTextAreaList == null) {\r
- jTextAreaList = new JTextArea();\r
- jTextAreaList.setEditable(false);\r
+ This method initializes jScrollPaneTable \r
+ \r
+ @return javax.swing.JScrollPane \r
+ **/\r
+ private JScrollPane getJScrollPaneTable() {\r
+ if (jScrollPaneTable == null) {\r
+ jScrollPaneTable = new JScrollPane();\r
+ jScrollPaneTable.setBounds(new java.awt.Rectangle(15, 10, 470, 420));\r
+ jScrollPaneTable.setPreferredSize(new Dimension(470, 420));\r
+ jScrollPaneTable.setViewportView(getJTable());\r
}\r
- return jTextAreaList;\r
+ return jScrollPaneTable;\r
}\r
\r
/**\r
- This method initializes iCheckBoxListArch \r
+ This method initializes jTable \r
\r
- @return ICheckBoxList \r
+ @return javax.swing.JTable \r
**/\r
- private ICheckBoxList getICheckBoxListSupportedArchitectures() {\r
- if (iCheckBoxListArch == null) {\r
- iCheckBoxListArch = new ICheckBoxList();\r
- iCheckBoxListArch.addFocusListener(this);\r
- iCheckBoxListArch.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
+ private JTable getJTable() {\r
+ if (jTable == null) {\r
+ jTable = new JTable();\r
+ model = new IDefaultTableModel();\r
+ jTable = new JTable(model);\r
+ jTable.setRowHeight(20);\r
+\r
+ model.addColumn("Packge Name");\r
+ model.addColumn("Package Version");\r
+\r
+ jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTable.getSelectionModel().addListSelectionListener(this);\r
+ jTable.getModel().addTableModelListener(this);\r
+ jTable.addMouseListener(this);\r
}\r
- return iCheckBoxListArch;\r
+ return jTable;\r
+ }\r
+\r
+ public static void main(String[] args) {\r
+\r
}\r
\r
/**\r
- This method initializes jScrollPaneArch \r
- \r
- @return javax.swing.JScrollPane \r
+ This is the default constructor\r
\r
**/\r
- private JScrollPane getJScrollPaneArch() {\r
- if (jScrollPaneArch == null) {\r
- jScrollPaneArch = new JScrollPane();\r
- jScrollPaneArch.setBounds(new java.awt.Rectangle(160, 110, 320, 80));\r
- jScrollPaneArch.setPreferredSize(new java.awt.Dimension(320, 80));\r
- jScrollPaneArch.setViewportView(getICheckBoxListSupportedArchitectures());\r
- }\r
- return jScrollPaneArch;\r
+ public ModulePackageDependencies() {\r
+ super();\r
+ init();\r
+ this.setVisible(true);\r
}\r
\r
- public static void main(String[] args) {\r
-\r
+ /**\r
+ This is the override edit constructor\r
+ \r
+ @param \r
+ \r
+ **/\r
+ public ModulePackageDependencies(OpeningModuleType inOmt) {\r
+ super();\r
+ this.omt = inOmt;\r
+ this.msa = omt.getXmlMsa();\r
+ init(msa.getPackageDependencies());\r
+ this.setVisible(true);\r
}\r
\r
/**\r
private void init() {\r
this.setSize(500, 515);\r
this.setContentPane(getJScrollPane());\r
- this.setTitle("Includes");\r
- initFrame();\r
- this.setViewMode(false);\r
+ this.setTitle("Package Dependencies");\r
}\r
\r
/**\r
**/\r
private void init(PackageDependencies inPackageDependencies) {\r
init();\r
- this.packageDependencies = inPackageDependencies;\r
+ this.pd = inPackageDependencies;\r
\r
- if (this.packageDependencies != null) {\r
- if (this.packageDependencies.getPackageList().size() > 0) {\r
- for (int index = 0; index < this.packageDependencies.getPackageList().size(); index++) {\r
+ if (this.pd != null) {\r
+ if (this.pd.getPackageList().size() > 0) {\r
+ for (int index = 0; index < this.pd.getPackageList().size(); index++) {\r
String arg0 = "";\r
- String arg1 = packageDependencies.getPackageList().get(index).getPackageVersion();\r
- String arg2 = packageDependencies.getPackageList().get(index).getPackageGuid();\r
+ String arg1 = pd.getPackageList().get(index).getPackageVersion();\r
+ String arg2 = pd.getPackageList().get(index).getPackageGuid();\r
//\r
// If no guid, skip current item\r
//\r
arg0 = vPackage.get(indexJ).getName();\r
}\r
}\r
- String arg3 = packageDependencies.getPackageList().get(index).getFeatureFlag();\r
- Vector<String> arg4 = Tools.convertListToVector(packageDependencies.getPackageList().get(index)\r
- .getSupArchList());\r
- id = new PackageDependenciesIdentification(arg0, arg1, arg2, arg3, arg4);\r
- vid.addPackageDependencies(id);\r
+ String arg3 = pd.getPackageList().get(index).getFeatureFlag();\r
+ Vector<String> arg4 = Tools.convertListToVector(pd.getPackageList().get(index).getSupArchList());\r
+ pdid = new PackageDependenciesIdentification(arg0, arg1, arg2, arg3, arg4);\r
+ vid.addPackageDependencies(pdid);\r
}\r
}\r
}\r
- //\r
- // Update the list\r
- //\r
- Tools.generateComboBoxByVector(jComboBoxList, vid.getPackageDependenciesName());\r
- reloadListArea();\r
- }\r
-\r
- /**\r
- This is the default constructor\r
- \r
- **/\r
- public ModulePackageDependencies() {\r
- super();\r
- init();\r
- this.setVisible(true);\r
- }\r
-\r
- /**\r
- This is the override constructor\r
- \r
- **/\r
- public ModulePackageDependencies(OpeningModuleType inOmt) {\r
- super();\r
- this.omt = inOmt;\r
- this.msa = omt.getXmlMsa();\r
- init(msa.getPackageDependencies());\r
- this.setVisible(true);\r
- }\r
-\r
- /**\r
- Disable all components when the mode is view\r
- \r
- @param isView true - The view mode; false - The non-view mode\r
- \r
- **/\r
- public void setViewMode(boolean isView) {\r
- if (isView) {\r
- this.jComboBoxPackageName.setEnabled(!isView);\r
- this.jButtonAdd.setEnabled(!isView);\r
- this.jButtonUpdate.setEnabled(!isView);\r
- this.jButtonRemove.setEnabled(!isView);\r
- }\r
+ showTable();\r
}\r
\r
/**\r
**/\r
private JPanel getJContentPane() {\r
if (jContentPane == null) {\r
- jLabelArch = new JLabel();\r
- jLabelArch.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
- jLabelArch.setText("Sup Arch List");\r
- jLabelPackageVersion = new JLabel();\r
- jLabelPackageVersion.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
- jLabelPackageVersion.setText("Package Version");\r
- jLabelPackageGuid = new JLabel();\r
- jLabelPackageGuid.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
- jLabelPackageGuid.setText("Package Guid");\r
- jLabelPackageName = new JLabel();\r
- jLabelPackageName.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
- jLabelPackageName.setText("Package Name");\r
-\r
jContentPane = new JPanel();\r
jContentPane.setLayout(null);\r
- jContentPane.setPreferredSize(new java.awt.Dimension(490, 470));\r
-\r
- jContentPane.add(jLabelPackageName, null);\r
- jStarLabel1 = new StarLabel();\r
- jStarLabel1.setLocation(new java.awt.Point(0, 35));\r
-\r
- jContentPane.add(jStarLabel1, null);\r
- jContentPane.add(getJComboBoxPackageName(), null);\r
- jContentPane.add(jLabelPackageGuid, null);\r
- jContentPane.add(getJTextFieldPackageGuid(), null);\r
- jContentPane.add(getJButtonGenerateGuid(), null);\r
- jContentPane.add(jLabelPackageVersion, null);\r
- jContentPane.add(getJTextFieldPackageVersion(), null);\r
-\r
- jLabelFeatureFlag = new JLabel();\r
- jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
- jLabelFeatureFlag.setText("Feature Flag");\r
- jContentPane.add(jLabelFeatureFlag, null);\r
- jContentPane.add(getJTextFieldFeatureFlag(), null);\r
-\r
- jContentPane.add(getJComboBoxList(), null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 490));\r
+\r
jContentPane.add(getJButtonAdd(), null);\r
jContentPane.add(getJButtonRemove(), null);\r
jContentPane.add(getJButtonUpdate(), null);\r
- jContentPane.add(getJScrollPaneList(), null);\r
- jContentPane.add(jLabelArch, null);\r
- jContentPane.add(getJScrollPaneArch(), null);\r
+ jContentPane.add(getJScrollPaneTable(), null);\r
}\r
return jContentPane;\r
}\r
\r
- /* (non-Javadoc)\r
- * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
- *\r
- * Override actionPerformed to listen all actions\r
- * \r
- */\r
- public void actionPerformed(ActionEvent arg0) {\r
- if (arg0.getSource() == jButtonAdd) {\r
- if (!checkAdd()) {\r
- return;\r
+ private void showEdit(int index) {\r
+ PackageDepDlg pdd = new PackageDepDlg(vid.getPackageDependencies(index), new IFrame());\r
+ int result = pdd.showDialog();\r
+ if (result == DataType.RETURN_TYPE_OK) {\r
+ if (index == -1) {\r
+ this.vid.addPackageDependencies(pdd.getPdid());\r
+ } else {\r
+ this.vid.setPackageDependencies(pdd.getPdid(), index);\r
}\r
- addToList();\r
+ this.showTable();\r
+ this.save();\r
+ pdd.dispose();\r
}\r
- if (arg0.getSource() == jButtonRemove) {\r
- removeFromList();\r
- }\r
- if (arg0.getSource() == jButtonUpdate) {\r
- if (!checkAdd()) {\r
- return;\r
- }\r
- updateForList();\r
+ if (result == DataType.RETURN_TYPE_CANCEL) {\r
+ pdd.dispose();\r
}\r
}\r
\r
/**\r
- This method initializes Usage type, Package type and Arch type\r
+ Clear all table rows\r
\r
**/\r
- private void initFrame() {\r
- EnumerationData ed = new EnumerationData();\r
-\r
- this.iCheckBoxListArch.setAllItems(ed.getVSupportedArchitectures());\r
-\r
- for (int index = 0; index < vPackage.size(); index++) {\r
- jComboBoxPackageName.addItem(vPackage.elementAt(index).getName());\r
+ private void clearAll() {\r
+ if (model != null) {\r
+ for (int index = model.getRowCount() - 1; index >= 0; index--) {\r
+ model.removeRow(index);\r
+ }\r
}\r
- //jComboBoxPackageName.addItemListener(this);\r
}\r
\r
/**\r
- Data validation for all fields\r
- \r
- @retval true - All datas are valid\r
- @retval false - At least one data is invalid\r
+ Read content of vector and put then into table\r
\r
**/\r
- public boolean check() {\r
- return true;\r
- }\r
+ private void showTable() {\r
+ clearAll();\r
\r
- /**\r
- Data validation for all fields before add current item to Vector\r
- \r
- @retval true - All datas are valid\r
- @retval false - At least one data is invalid\r
- \r
- **/\r
- public boolean checkAdd() {\r
- //\r
- // Check if all fields have correct data types \r
- //\r
- \r
- //\r
- // Check PackageGuid \r
- //\r
- if (!isEmpty(this.jTextFieldPackageGuid.getText())) {\r
- if (!DataValidation.isGuid(this.jTextFieldPackageGuid.getText())) {\r
- Log.err("Incorrect data type for Package Guid");\r
- return false;\r
+ if (vid.size() > 0) {\r
+ for (int index = 0; index < vid.size(); index++) {\r
+ model.addRow(vid.toStringVector(index));\r
}\r
}\r
- \r
- //\r
- // Check PackageVersion \r
- //\r
- if (!isEmpty(this.jTextFieldPackageVersion.getText())) {\r
- if (!DataValidation.isVersion(this.jTextFieldPackageVersion.getText())) {\r
- Log.err("Incorrect data type for Package Version");\r
- return false;\r
+ this.jTable.repaint();\r
+ this.jTable.updateUI();\r
+ //this.jScrollPane.setViewportView(this.jTable);\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ *\r
+ * Override actionPerformed to listen all actions\r
+ * \r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ if (arg0.getSource() == jButtonAdd) {\r
+ showEdit(-1);\r
+ }\r
+ if (arg0.getSource() == jButtonUpdate) {\r
+ if (this.selectedRow < 0) {\r
+ Log.err("Please select one record first.");\r
+ return;\r
}\r
+ showEdit(selectedRow);\r
}\r
- \r
- //\r
- // Check FeatureFlag\r
- //\r
- if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
- if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
- Log.err("Incorrect data type for Feature Flag");\r
- return false;\r
+\r
+ if (arg0.getSource() == jButtonRemove) {\r
+ if (jTable.isEditing()) {\r
+ jTable.getCellEditor().stopCellEditing();\r
+ }\r
+ if (selectedRow > -1) {\r
+ this.model.removeRow(selectedRow);\r
+ this.vid.removePackageDependencies(selectedRow);\r
+ selectedRow = -1;\r
+ this.save();\r
}\r
}\r
- \r
- return true;\r
}\r
+\r
/**\r
Save all components of Includes\r
if exists includes, set the value directly\r
//\r
int count = this.vid.size();\r
\r
- this.packageDependencies = PackageDependencies.Factory.newInstance();\r
+ this.pd = PackageDependencies.Factory.newInstance();\r
if (count > 0) {\r
for (int index = 0; index < count; index++) {\r
Package p = Package.Factory.newInstance();\r
p.setSupArchList(vid.getPackageDependencies(index).getSupArchList());\r
}\r
\r
- this.packageDependencies.addNewPackage();\r
- this.packageDependencies.setPackageArray(index, p);\r
+ this.pd.addNewPackage();\r
+ this.pd.setPackageArray(index, p);\r
}\r
}\r
- this.msa.setPackageDependencies(packageDependencies);\r
+ this.msa.setPackageDependencies(pd);\r
this.omt.setSaved(false);\r
} catch (Exception e) {\r
e.printStackTrace();\r
}\r
\r
/* (non-Javadoc)\r
- * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
- * \r
- * Override componentResized to resize all components when frame's size is changed\r
+ * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)\r
+ *\r
*/\r
- public void componentResized(ComponentEvent arg0) {\r
- int intCurrentWidth = this.getJContentPane().getWidth();\r
- int intCurrentHeight = this.getJContentPane().getHeight();\r
- int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
- int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
-\r
- resizeComponentWidth(this.jComboBoxPackageName, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldPackageGuid, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldPackageVersion, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldFeatureFlag, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jScrollPaneArch, intCurrentWidth, intPreferredWidth);\r
-\r
- resizeComponentWidth(jComboBoxList, intCurrentWidth, intPreferredWidth);\r
- resizeComponent(jScrollPaneList, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
- relocateComponentX(jButtonAdd, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON);\r
- relocateComponentX(jButtonRemove, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON);\r
- relocateComponentX(jButtonUpdate, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON);\r
- relocateComponentX(this.jButtonGenerateGuid, intCurrentWidth, intPreferredWidth,\r
- DataType.SPACE_TO_RIGHT_FOR_GENERATE_BUTTON);\r
- }\r
-\r
- private PackageDependenciesIdentification getCurrentPackageDependencies() {\r
- String arg0 = this.jComboBoxPackageName.getSelectedItem().toString();\r
- String arg1 = this.jTextFieldPackageVersion.getText();\r
- String arg2 = this.jTextFieldPackageGuid.getText();\r
-\r
- String arg3 = this.jTextFieldFeatureFlag.getText();\r
- Vector<String> arg4 = this.iCheckBoxListArch.getAllCheckedItemsString();\r
- id = new PackageDependenciesIdentification(arg0, arg1, arg2, arg3, arg4);\r
- return id;\r
- }\r
-\r
- /**\r
- Add current item to Vector\r
- \r
- **/\r
- private void addToList() {\r
- intSelectedItemId = vid.size();\r
-\r
- vid.addPackageDependencies(getCurrentPackageDependencies());\r
-\r
- jComboBoxList.addItem(id.getName());\r
- jComboBoxList.setSelectedItem(id.getName());\r
-\r
- //\r
- // Reset select item index\r
- //\r
- intSelectedItemId = vid.size();\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Remove current item from Vector\r
- \r
- **/\r
- private void removeFromList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
+ public void valueChanged(ListSelectionEvent arg0) {\r
+ if (arg0.getValueIsAdjusting()) {\r
return;\r
}\r
-\r
- int intTempIndex = intSelectedItemId;\r
-\r
- jComboBoxList.removeItemAt(intSelectedItemId);\r
-\r
- vid.removePackageDependencies(intTempIndex);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Update current item of Vector\r
- \r
- **/\r
- private void updateForList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
+ ListSelectionModel lsm = (ListSelectionModel) arg0.getSource();\r
+ if (lsm.isSelectionEmpty()) {\r
return;\r
- }\r
-\r
- //\r
- // Backup selected item index\r
- //\r
- int intTempIndex = intSelectedItemId;\r
-\r
- vid.updatePackageDependencies(getCurrentPackageDependencies(), intTempIndex);\r
-\r
- jComboBoxList.removeAllItems();\r
- for (int index = 0; index < vid.size(); index++) {\r
- jComboBoxList.addItem(vid.getPackageDependencies(index).getName());\r
- }\r
-\r
- //\r
- // Restore selected item index\r
- //\r
- intSelectedItemId = intTempIndex;\r
-\r
- //\r
- // Reset select item index\r
- //\r
- jComboBoxList.setSelectedIndex(intSelectedItemId);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Refresh all fields' values of selected item of Vector\r
- \r
- **/\r
- private void reloadFromList() {\r
- if (vid.size() > 0) {\r
- //\r
- // Get selected item index\r
- //\r
- intSelectedItemId = jComboBoxList.getSelectedIndex();\r
-\r
- this.jComboBoxPackageName.setSelectedItem(vid.getPackageDependencies(intSelectedItemId).getName());\r
- this.jTextFieldPackageVersion.setText(vid.getPackageDependencies(intSelectedItemId).getVersion());\r
- this.jTextFieldPackageGuid.setText(vid.getPackageDependencies(intSelectedItemId).getGuid());\r
-\r
- jTextFieldFeatureFlag.setText(vid.getPackageDependencies(intSelectedItemId).getFeatureFlag());\r
- iCheckBoxListArch.setAllItemsUnchecked();\r
- iCheckBoxListArch.initCheckedItem(true, vid.getPackageDependencies(intSelectedItemId).getSupArchList());\r
-\r
} else {\r
+ selectedRow = lsm.getMinSelectionIndex();\r
}\r
-\r
- reloadListArea();\r
- }\r
-\r
- /**\r
- Update list area pane via the elements of Vector\r
- \r
- **/\r
- private void reloadListArea() {\r
- String strListItem = "";\r
- for (int index = 0; index < vid.size(); index++) {\r
- strListItem = strListItem + vid.getPackageDependencies(index).getName() + DataType.UNIX_LINE_SEPARATOR;\r
- }\r
- this.jTextAreaList.setText(strListItem);\r
}\r
\r
/* (non-Javadoc)\r
- * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
+ * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
*\r
- * Reflesh the frame when selected item changed\r
- * \r
*/\r
- public void itemStateChanged(ItemEvent arg0) {\r
- if (arg0.getSource() == this.jComboBoxList && arg0.getStateChange() == ItemEvent.SELECTED) {\r
- reloadFromList();\r
- }\r
- if (arg0.getSource() == this.jComboBoxPackageName && arg0.getStateChange() == ItemEvent.SELECTED) {\r
- for (int index = 0; index < vPackage.size(); index++) {\r
- if (this.jComboBoxPackageName.getSelectedItem().toString().equals(vPackage.get(index).getName())) {\r
- this.jTextFieldPackageGuid.setText(vPackage.get(index).getGuid());\r
- }\r
+ public void mouseClicked(MouseEvent arg0) {\r
+ if (arg0.getClickCount() == 2) {\r
+ if (this.selectedRow < 0) {\r
+ return;\r
+ } else {\r
+ showEdit(selectedRow);\r
}\r
}\r
}\r
\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
+ * \r
+ * Override componentResized to resize all components when frame's size is changed\r
+ */\r
+ public void componentResized(ComponentEvent arg0) {\r
+ int intCurrentWidth = this.getJContentPane().getWidth();\r
+ int intCurrentHeight = this.getJContentPane().getHeight();\r
+ int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
+ int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
+\r
+ resizeComponent(this.jScrollPaneTable, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
+ relocateComponent(this.jButtonAdd, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_ADD_BUTTON);\r
+ relocateComponent(this.jButtonRemove, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_REMOVE_BUTTON);\r
+ relocateComponent(this.jButtonUpdate, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_UPDATE_BUTTON);\r
+ }\r
}\r
**/\r
package org.tianocore.frameworkwizard.module.ui;\r
\r
+import java.awt.Dimension;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ComponentEvent;\r
-import java.awt.event.ItemEvent;\r
+import java.awt.event.MouseEvent;\r
import java.util.Vector;\r
\r
import javax.swing.JButton;\r
-import javax.swing.JComboBox;\r
-import javax.swing.JLabel;\r
import javax.swing.JPanel;\r
import javax.swing.JScrollPane;\r
-import javax.swing.JTextArea;\r
-import javax.swing.JTextField;\r
+import javax.swing.JTable;\r
+import javax.swing.ListSelectionModel;\r
+import javax.swing.event.ListSelectionEvent;\r
\r
import org.tianocore.PPIsDocument;\r
import org.tianocore.PpiNotifyUsage;\r
import org.tianocore.PPIsDocument.PPIs.Ppi;\r
import org.tianocore.PPIsDocument.PPIs.PpiNotify;\r
import org.tianocore.frameworkwizard.common.DataType;\r
-import org.tianocore.frameworkwizard.common.DataValidation;\r
import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.IDefaultTableModel;\r
import org.tianocore.frameworkwizard.common.Log;\r
import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
-import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
-import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
import org.tianocore.frameworkwizard.module.Identifications.Ppis.PpisIdentification;\r
import org.tianocore.frameworkwizard.module.Identifications.Ppis.PpisVector;\r
-import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
+import org.tianocore.frameworkwizard.module.ui.dialog.PpisDlg;\r
\r
/**\r
The class is used to create, update Ppi of MSA/MBD file\r
//\r
private JPanel jContentPane = null;\r
\r
- private JLabel jLabelC_Name = null;\r
-\r
- private JComboBox jComboBoxCName = null;\r
-\r
- private JTextField jTextFieldFeatureFlag = null;\r
-\r
- private JLabel jLabelFeatureFlag = null;\r
-\r
- private JLabel jLabelUsage = null;\r
-\r
- private JComboBox jComboBoxUsage = null;\r
-\r
- private JLabel jLabelPpiType = null;\r
-\r
- private StarLabel jStarLabel1 = null;\r
-\r
- private StarLabel jStarLabel2 = null;\r
-\r
- private JComboBox jComboBoxPpiType = null;\r
-\r
- private JLabel jLabelArch = null;\r
-\r
- private JTextArea jTextAreaList = null;\r
-\r
- private JComboBox jComboBoxList = null;\r
-\r
private JButton jButtonAdd = null;\r
\r
private JButton jButtonRemove = null;\r
\r
private JScrollPane jScrollPane = null;\r
\r
- private JScrollPane jScrollPaneList = null;\r
- \r
- private ICheckBoxList iCheckBoxListArch = null;\r
+ private JScrollPane jScrollPaneTable = null;\r
\r
- private JScrollPane jScrollPaneArch = null;\r
- \r
- private JLabel jLabelHelpText = null;\r
-\r
- private JTextField jTextFieldHelpText = null;\r
+ private JTable jTable = null;\r
\r
//\r
// Not used by UI\r
//\r
- private int intSelectedItemId = 0;\r
\r
private OpeningModuleType omt = null;\r
\r
\r
private PpisVector vid = new PpisVector();\r
\r
- private WorkspaceTools wt = new WorkspaceTools();\r
-\r
private EnumerationData ed = new EnumerationData();\r
\r
- /**\r
- This method initializes jTextFieldC_Name \r
- \r
- @return javax.swing.JTextField jTextFieldC_Name\r
- \r
- **/\r
- private JComboBox getJComboBoxCName() {\r
- if (jComboBoxCName == null) {\r
- jComboBoxCName = new JComboBox();\r
- jComboBoxCName.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
- jComboBoxCName.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jComboBoxCName;\r
- }\r
-\r
- /**\r
- This method initializes jTextFieldFeatureFlag \r
- \r
- @return javax.swing.JTextField jTextFieldFeatureFlag\r
- \r
- **/\r
- private JTextField getJTextFieldFeatureFlag() {\r
- if (jTextFieldFeatureFlag == null) {\r
- jTextFieldFeatureFlag = new JTextField();\r
- jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
- jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jTextFieldFeatureFlag;\r
- }\r
-\r
- /**\r
- This method initializes jComboBox\r
- \r
- @return javax.swing.JComboBox jComboBoxUsage\r
- \r
- **/\r
- private JComboBox getJComboBox() {\r
- if (jComboBoxUsage == null) {\r
- jComboBoxUsage = new JComboBox();\r
- jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
- jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jComboBoxUsage;\r
- }\r
-\r
- /**\r
- * This method initializes jComboBoxPpiType \r
- * \r
- * @return javax.swing.JComboBox \r
- */\r
- private JComboBox getJComboBoxPpiType() {\r
- if (jComboBoxPpiType == null) {\r
- jComboBoxPpiType = new JComboBox();\r
- jComboBoxPpiType.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
- jComboBoxPpiType.setPreferredSize(new java.awt.Dimension(320, 20));\r
- jComboBoxPpiType.addItemListener(this);\r
- }\r
- return jComboBoxPpiType;\r
- }\r
+ private IDefaultTableModel model = null;\r
\r
- /**\r
- This method initializes jComboBoxFileList \r
- \r
- @return javax.swing.JComboBox jComboBoxFileList\r
- \r
- **/\r
- private JComboBox getJComboBoxList() {\r
- if (jComboBoxList == null) {\r
- jComboBoxList = new JComboBox();\r
- jComboBoxList.setBounds(new java.awt.Rectangle(15, 220, 210, 20));\r
- jComboBoxList.addItemListener(this);\r
- jComboBoxList.addActionListener(this);\r
- jComboBoxList.setPreferredSize(new java.awt.Dimension(210, 20));\r
- }\r
- return jComboBoxList;\r
- }\r
+ private int selectedRow = -1;\r
\r
/**\r
This method initializes jButtonAdd \r
jButtonUpdate = new JButton();\r
jButtonUpdate.setBounds(new java.awt.Rectangle(315, 220, 80, 20));\r
jButtonUpdate.setPreferredSize(new java.awt.Dimension(80, 20));\r
- jButtonUpdate.setText("Update");\r
+ jButtonUpdate.setText("Edit");\r
jButtonUpdate.addActionListener(this);\r
}\r
return jButtonUpdate;\r
}\r
\r
- /**\r
- * This method initializes jScrollPaneFileList \r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneList() {\r
- if (jScrollPaneList == null) {\r
- jScrollPaneList = new JScrollPane();\r
- jScrollPaneList.setBounds(new java.awt.Rectangle(15, 245, 465, 240));\r
- jScrollPaneList.setViewportView(getJTextAreaList());\r
- jScrollPaneList.setPreferredSize(new java.awt.Dimension(465, 240));\r
- }\r
- return jScrollPaneList;\r
- }\r
-\r
/**\r
This method initializes jScrollPane \r
\r
}\r
\r
/**\r
- * This method initializes jTextAreaFileList \r
- * \r
- * @return javax.swing.JTextArea \r
- */\r
- private JTextArea getJTextAreaList() {\r
- if (jTextAreaList == null) {\r
- jTextAreaList = new JTextArea();\r
- jTextAreaList.setEditable(false);\r
-\r
+ This method initializes jScrollPaneTable \r
+ \r
+ @return javax.swing.JScrollPane \r
+ **/\r
+ private JScrollPane getJScrollPaneTable() {\r
+ if (jScrollPaneTable == null) {\r
+ jScrollPaneTable = new JScrollPane();\r
+ jScrollPaneTable.setBounds(new java.awt.Rectangle(15, 10, 470, 420));\r
+ jScrollPaneTable.setPreferredSize(new Dimension(470, 420));\r
+ jScrollPaneTable.setViewportView(getJTable());\r
}\r
- return jTextAreaList;\r
+ return jScrollPaneTable;\r
}\r
\r
/**\r
- This method initializes iCheckBoxListArch \r
+ This method initializes jTable \r
\r
- @return ICheckBoxList \r
+ @return javax.swing.JTable \r
**/\r
- private ICheckBoxList getICheckBoxListSupportedArchitectures() {\r
- if (iCheckBoxListArch == null) {\r
- iCheckBoxListArch = new ICheckBoxList();\r
- iCheckBoxListArch.addFocusListener(this);\r
- iCheckBoxListArch.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
+ private JTable getJTable() {\r
+ if (jTable == null) {\r
+ jTable = new JTable();\r
+ model = new IDefaultTableModel();\r
+ jTable = new JTable(model);\r
+ jTable.setRowHeight(20);\r
+\r
+ model.addColumn("Guid C_Name");\r
+ model.addColumn("Type");\r
+ model.addColumn("Usage");\r
+\r
+ jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTable.getSelectionModel().addListSelectionListener(this);\r
+ jTable.getModel().addTableModelListener(this);\r
+ jTable.addMouseListener(this);\r
}\r
- return iCheckBoxListArch;\r
+ return jTable;\r
+ }\r
+\r
+ public static void main(String[] args) {\r
+\r
}\r
\r
/**\r
- This method initializes jScrollPaneArch \r
- \r
- @return javax.swing.JScrollPane \r
+ This method initializes this\r
\r
**/\r
- private JScrollPane getJScrollPaneArch() {\r
- if (jScrollPaneArch == null) {\r
- jScrollPaneArch = new JScrollPane();\r
- jScrollPaneArch.setBounds(new java.awt.Rectangle(160, 135, 320, 80));\r
- jScrollPaneArch.setPreferredSize(new java.awt.Dimension(320, 80));\r
- jScrollPaneArch.setViewportView(getICheckBoxListSupportedArchitectures());\r
- }\r
- return jScrollPaneArch;\r
+ private void init() {\r
+ this.setSize(500, 515);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("Ppis");\r
}\r
- \r
+\r
/**\r
- This method initializes jTextFieldHelpText \r
- \r
- @return javax.swing.JTextField \r
- \r
- **/\r
- private JTextField getJTextFieldHelpText() {\r
- if (jTextFieldHelpText == null) {\r
- jTextFieldHelpText = new JTextField();\r
- jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
- jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jTextFieldHelpText;\r
- }\r
+ This method initializes this\r
+ Fill values to all fields if these values are not empty\r
+ \r
+ @param inPackageDependencies\r
\r
- public static void main(String[] args) {\r
+ **/\r
+ private void init(PPIs inPpis) {\r
+ init();\r
+ this.ppis = inPpis;\r
+\r
+ if (this.ppis != null) {\r
+ if (this.ppis.getPpiList().size() > 0) {\r
+ for (int index = 0; index < this.ppis.getPpiList().size(); index++) {\r
+ String arg0 = ppis.getPpiList().get(index).getPpiCName();\r
+ String arg1 = ed.getVPpiType().get(0);\r
+ String arg2 = null;\r
+ if (ppis.getPpiList().get(index).getUsage() != null) {\r
+ arg2 = ppis.getPpiList().get(index).getUsage().toString();\r
+ }\r
+\r
+ String arg3 = ppis.getPpiList().get(index).getFeatureFlag();\r
+ Vector<String> arg4 = Tools.convertListToVector(ppis.getPpiList().get(index).getSupArchList());\r
+ String arg5 = ppis.getPpiList().get(index).getHelpText();\r
+\r
+ id = new PpisIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
+ vid.addPpis(id);\r
+ }\r
+ }\r
+ if (this.ppis.getPpiNotifyList().size() > 0) {\r
+ for (int index = 0; index < this.ppis.getPpiNotifyList().size(); index++) {\r
+ String arg0 = ppis.getPpiNotifyList().get(index).getPpiNotifyCName();\r
+ String arg1 = ed.getVPpiType().get(1);\r
+ String arg2 = null;\r
+ if (ppis.getPpiNotifyList().get(index).getUsage() != null) {\r
+ arg2 = ppis.getPpiNotifyList().get(index).getUsage().toString();\r
+ }\r
+\r
+ String arg3 = ppis.getPpiNotifyList().get(index).getFeatureFlag();\r
+ Vector<String> arg4 = Tools\r
+ .convertListToVector(ppis.getPpiNotifyList().get(index).getSupArchList());\r
+ String arg5 = ppis.getPpiNotifyList().get(index).getHelpText();\r
\r
+ id = new PpisIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
+ vid.addPpis(id);\r
+ }\r
+ }\r
+ }\r
+ showTable();\r
}\r
- \r
- /**\r
- This method initializes this\r
- \r
- **/\r
- private void init() {\r
- this.setSize(500, 515);\r
- this.setContentPane(getJScrollPane());\r
- this.setTitle("Ppis");\r
- initFrame();\r
- this.setViewMode(false);\r
- }\r
-\r
- /**\r
- This method initializes this\r
- Fill values to all fields if these values are not empty\r
- \r
- @param inPackageDependencies\r
-\r
- **/\r
- private void init(PPIs inPpis) {\r
- init();\r
- this.ppis = inPpis;\r
-\r
- if (this.ppis != null) {\r
- if (this.ppis.getPpiList().size() > 0) {\r
- for (int index = 0; index < this.ppis.getPpiList().size(); index++) {\r
- String arg0 = ppis.getPpiList().get(index).getPpiCName();\r
- String arg1 = ed.getVPpiType().get(0);\r
- String arg2 = null;\r
- if (ppis.getPpiList().get(index).getUsage() != null) {\r
- arg2 = ppis.getPpiList().get(index).getUsage().toString(); \r
- }\r
- \r
- String arg3 = ppis.getPpiList().get(index).getFeatureFlag();\r
- Vector<String> arg4 = Tools.convertListToVector(ppis.getPpiList().get(index)\r
- .getSupArchList());\r
- String arg5 = ppis.getPpiList().get(index).getHelpText();\r
- \r
- id = new PpisIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
- vid.addPpis(id);\r
- }\r
- }\r
- if (this.ppis.getPpiNotifyList().size() > 0) {\r
- for (int index = 0; index < this.ppis.getPpiNotifyList().size(); index++) {\r
- String arg0 = ppis.getPpiNotifyList().get(index).getPpiNotifyCName();\r
- String arg1 = ed.getVPpiType().get(1);\r
- String arg2 = null;\r
- if (ppis.getPpiNotifyList().get(index).getUsage() != null) {\r
- arg2 = ppis.getPpiNotifyList().get(index).getUsage().toString(); \r
- }\r
-\r
- String arg3 = ppis.getPpiNotifyList().get(index).getFeatureFlag();\r
- Vector<String> arg4 = Tools.convertListToVector(ppis.getPpiNotifyList().get(index)\r
- .getSupArchList());\r
- String arg5 = ppis.getPpiNotifyList().get(index).getHelpText();\r
- \r
- id = new PpisIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
- vid.addPpis(id);\r
- }\r
- }\r
- }\r
- //\r
- // Update the list\r
- //\r
- Tools.generateComboBoxByVector(jComboBoxList, vid.getPpisName());\r
- reloadListArea();\r
- }\r
\r
/**\r
This is the default constructor\r
this.setVisible(true);\r
}\r
\r
- /**\r
- Disable all components when the mode is view\r
- \r
- @param isView true - The view mode; false - The non-view mode\r
- \r
- **/\r
- public void setViewMode(boolean isView) {\r
- if (isView) {\r
- this.jComboBoxCName.setEnabled(!isView);\r
- this.jComboBoxUsage.setEnabled(!isView);\r
- this.jTextFieldFeatureFlag.setEnabled(!isView);\r
- }\r
- }\r
-\r
/**\r
This method initializes jContentPane\r
\r
**/\r
private JPanel getJContentPane() {\r
if (jContentPane == null) {\r
- jLabelArch = new JLabel();\r
- jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 140, 20));\r
- jLabelArch.setText("Arch");\r
- jLabelPpiType = new JLabel();\r
- jLabelPpiType.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
- jLabelPpiType.setText("Ppi Type");\r
- jLabelUsage = new JLabel();\r
- jLabelUsage.setText("Usage");\r
- jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
- jLabelFeatureFlag = new JLabel();\r
- jLabelFeatureFlag.setText("Feature Flag");\r
- jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
- jLabelC_Name = new JLabel();\r
- jLabelC_Name.setText("C_Name Type");\r
- jLabelC_Name.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
- jLabelHelpText = new JLabel();\r
- jLabelHelpText.setBounds(new java.awt.Rectangle(14, 85, 140, 20));\r
- jLabelHelpText.setText("Help Text");\r
-\r
jContentPane = new JPanel();\r
jContentPane.setLayout(null);\r
- jContentPane.setPreferredSize(new java.awt.Dimension(490, 495));\r
-\r
- jContentPane.add(jLabelC_Name, null);\r
- jContentPane.add(getJComboBoxCName(), null);\r
- jContentPane.add(getJTextFieldFeatureFlag(), null);\r
- jContentPane.add(jLabelFeatureFlag, null);\r
- jContentPane.add(jLabelUsage, null);\r
- jContentPane.add(getJComboBox(), null);\r
- jContentPane.add(getJComboBoxPpiType(), null);\r
- jContentPane.add(jLabelArch, null);\r
- jContentPane.add(jLabelPpiType, null);\r
- jStarLabel1 = new StarLabel();\r
- jStarLabel1.setBounds(new java.awt.Rectangle(0, 10, 10, 20));\r
- jStarLabel2 = new StarLabel();\r
- jStarLabel2.setBounds(new java.awt.Rectangle(0, 35, 10, 20));\r
-\r
- jContentPane.add(jStarLabel1, null);\r
- jContentPane.add(jStarLabel2, null);\r
-\r
- jContentPane.add(getJComboBoxList(), null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 490));\r
+\r
jContentPane.add(getJButtonAdd(), null);\r
jContentPane.add(getJButtonRemove(), null);\r
jContentPane.add(getJButtonUpdate(), null);\r
- jContentPane.add(getJScrollPaneList(), null);\r
- jContentPane.add(getJScrollPaneArch(), null);\r
- jContentPane.add(jLabelHelpText, null);\r
- jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(getJScrollPaneTable(), null);\r
}\r
return jContentPane;\r
}\r
\r
+ private void showEdit(int index) {\r
+ PpisDlg dlg = new PpisDlg(vid.getPpis(index), new IFrame());\r
+ int result = dlg.showDialog();\r
+ if (result == DataType.RETURN_TYPE_OK) {\r
+ if (index == -1) {\r
+ this.vid.addPpis(dlg.getId());\r
+ } else {\r
+ this.vid.setPpis(dlg.getId(), index);\r
+ }\r
+ this.showTable();\r
+ this.save();\r
+ dlg.dispose();\r
+ }\r
+ if (result == DataType.RETURN_TYPE_CANCEL) {\r
+ dlg.dispose();\r
+ }\r
+ }\r
+\r
+ /**\r
+ Clear all table rows\r
+ \r
+ **/\r
+ private void clearAll() {\r
+ if (model != null) {\r
+ for (int index = model.getRowCount() - 1; index >= 0; index--) {\r
+ model.removeRow(index);\r
+ }\r
+ }\r
+ }\r
+\r
/**\r
- This method initializes Usage type\r
+ Read content of vector and put then into table\r
\r
**/\r
- private void initFrame() {\r
- EnumerationData ed = new EnumerationData();\r
-\r
- Tools.generateComboBoxByVector(jComboBoxCName, wt.getAllPpiDeclarationsFromWorkspace());\r
- Tools.generateComboBoxByVector(jComboBoxPpiType, ed.getVPpiType());\r
- Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVPpiUsage());\r
- \r
- this.iCheckBoxListArch.setAllItems(ed.getVSupportedArchitectures());\r
+ private void showTable() {\r
+ clearAll();\r
+\r
+ if (vid.size() > 0) {\r
+ for (int index = 0; index < vid.size(); index++) {\r
+ model.addRow(vid.toStringVector(index));\r
+ }\r
+ }\r
+ this.jTable.repaint();\r
+ this.jTable.updateUI();\r
}\r
\r
/* (non-Javadoc)\r
*/\r
public void actionPerformed(ActionEvent arg0) {\r
if (arg0.getSource() == jButtonAdd) {\r
- if (!checkAdd()) {\r
- return;\r
- }\r
- addToList();\r
- }\r
- if (arg0.getSource() == jButtonRemove) {\r
- removeFromList();\r
+ showEdit(-1);\r
}\r
if (arg0.getSource() == jButtonUpdate) {\r
- if (!checkAdd()) {\r
+ if (this.selectedRow < 0) {\r
+ Log.err("Please select one record first.");\r
return;\r
}\r
- updateForList();\r
+ showEdit(selectedRow);\r
}\r
- }\r
\r
- /**\r
- Data validation for all fields\r
- \r
- @retval true - All datas are valid\r
- @retval false - At least one data is invalid\r
- \r
- **/\r
- public boolean checkAdd() {\r
- //\r
- // Check if all fields have correct data types \r
- //\r
-\r
- //\r
- // Check Name \r
- //\r
- if (!isEmpty(this.jComboBoxCName.getSelectedItem().toString())) {\r
- if (!DataValidation.isC_NameType(this.jComboBoxCName.getSelectedItem().toString())) {\r
- Log.err("Incorrect data type for Ppi/PpiNotify Name");\r
- return false;\r
+ if (arg0.getSource() == jButtonRemove) {\r
+ if (jTable.isEditing()) {\r
+ jTable.getCellEditor().stopCellEditing();\r
}\r
- }\r
- \r
- //\r
- // Check FeatureFlag\r
- //\r
- if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
- if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
- Log.err("Incorrect data type for Feature Flag");\r
- return false;\r
+ if (selectedRow > -1) {\r
+ this.model.removeRow(selectedRow);\r
+ this.vid.removePpis(selectedRow);\r
+ selectedRow = -1;\r
+ this.save();\r
}\r
}\r
-\r
- return true;\r
}\r
\r
/**\r
}\r
}\r
\r
+ /* (non-Javadoc)\r
+ * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)\r
+ *\r
+ */\r
+ public void valueChanged(ListSelectionEvent arg0) {\r
+ if (arg0.getValueIsAdjusting()) {\r
+ return;\r
+ }\r
+ ListSelectionModel lsm = (ListSelectionModel) arg0.getSource();\r
+ if (lsm.isSelectionEmpty()) {\r
+ return;\r
+ } else {\r
+ selectedRow = lsm.getMinSelectionIndex();\r
+ }\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
+ *\r
+ */\r
+ public void mouseClicked(MouseEvent arg0) {\r
+ if (arg0.getClickCount() == 2) {\r
+ if (this.selectedRow < 0) {\r
+ return;\r
+ } else {\r
+ showEdit(selectedRow);\r
+ }\r
+ }\r
+ }\r
+\r
/* (non-Javadoc)\r
* @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
* \r
int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
\r
- resizeComponentWidth(jComboBoxPpiType, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jComboBoxCName, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jComboBoxUsage, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldHelpText, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldFeatureFlag, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jScrollPaneArch, intCurrentWidth, intPreferredWidth);\r
- \r
- resizeComponentWidth(jComboBoxList, intCurrentWidth, intPreferredWidth);\r
- resizeComponent(jScrollPaneList, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
- relocateComponentX(jButtonAdd, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON);\r
- relocateComponentX(jButtonRemove, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON);\r
- relocateComponentX(jButtonUpdate, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON);\r
+ resizeComponent(this.jScrollPaneTable, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
+ relocateComponent(this.jButtonAdd, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_ADD_BUTTON);\r
+ relocateComponent(this.jButtonRemove, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_REMOVE_BUTTON);\r
+ relocateComponent(this.jButtonUpdate, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_UPDATE_BUTTON);\r
}\r
- \r
- private PpisIdentification getCurrentPpis() {\r
- String arg0 = this.jComboBoxCName.getSelectedItem().toString();\r
- String arg1 = this.jComboBoxPpiType.getSelectedItem().toString();\r
- String arg2 = this.jComboBoxUsage.getSelectedItem().toString();\r
-\r
- String arg3 = this.jTextFieldFeatureFlag.getText();\r
- Vector<String> arg4 = this.iCheckBoxListArch.getAllCheckedItemsString();\r
- String arg5 = this.jTextFieldHelpText.getText();\r
- \r
- id = new PpisIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
- return id;\r
- }\r
- \r
- /**\r
- Add current item to Vector\r
- \r
- **/\r
- private void addToList() {\r
- intSelectedItemId = vid.size();\r
-\r
- vid.addPpis(getCurrentPpis());\r
-\r
- jComboBoxList.addItem(id.getName());\r
- jComboBoxList.setSelectedItem(id.getName());\r
-\r
- //\r
- // Reset select item index\r
- //\r
- intSelectedItemId = vid.size();\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Remove current item from Vector\r
- \r
- **/\r
- private void removeFromList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
- return;\r
- }\r
-\r
- int intTempIndex = intSelectedItemId;\r
-\r
- jComboBoxList.removeItemAt(intSelectedItemId);\r
-\r
- vid.removePpis(intTempIndex);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Update current item of Vector\r
- \r
- **/\r
- private void updateForList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
- return;\r
- }\r
-\r
- //\r
- // Backup selected item index\r
- //\r
- int intTempIndex = intSelectedItemId;\r
-\r
- vid.updatePpis(getCurrentPpis(), intTempIndex);\r
-\r
- jComboBoxList.removeAllItems();\r
- for (int index = 0; index < vid.size(); index++) {\r
- jComboBoxList.addItem(vid.getPpis(index).getName());\r
- }\r
-\r
- //\r
- // Restore selected item index\r
- //\r
- intSelectedItemId = intTempIndex;\r
-\r
- //\r
- // Reset select item index\r
- //\r
- jComboBoxList.setSelectedIndex(intSelectedItemId);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Refresh all fields' values of selected item of Vector\r
- \r
- **/\r
- private void reloadFromList() {\r
- if (vid.size() > 0) {\r
- //\r
- // Get selected item index\r
- //\r
- intSelectedItemId = jComboBoxList.getSelectedIndex();\r
-\r
- this.jComboBoxCName.setSelectedItem(vid.getPpis(intSelectedItemId).getName());\r
- this.jComboBoxPpiType.setSelectedItem(vid.getPpis(intSelectedItemId).getType());\r
- this.jComboBoxUsage.setSelectedItem(vid.getPpis(intSelectedItemId).getUsage());\r
- this.jTextFieldHelpText.setText(vid.getPpis(intSelectedItemId).getHelp());\r
-\r
- jTextFieldFeatureFlag.setText(vid.getPpis(intSelectedItemId).getFeatureFlag());\r
- iCheckBoxListArch.setAllItemsUnchecked();\r
- iCheckBoxListArch.initCheckedItem(true, vid.getPpis(intSelectedItemId).getSupArchList());\r
-\r
- } else {\r
- }\r
-\r
- reloadListArea();\r
- }\r
-\r
- /**\r
- Update list area pane via the elements of Vector\r
- \r
- **/\r
- private void reloadListArea() {\r
- String strListItem = "";\r
- for (int index = 0; index < vid.size(); index++) {\r
- strListItem = strListItem + vid.getPpis(index).getName() + DataType.UNIX_LINE_SEPARATOR;\r
- }\r
- this.jTextAreaList.setText(strListItem);\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
- *\r
- * Reflesh the frame when selected item changed\r
- * \r
- */\r
- public void itemStateChanged(ItemEvent arg0) {\r
- if (arg0.getSource() == this.jComboBoxList && arg0.getStateChange() == ItemEvent.SELECTED) {\r
- reloadFromList();\r
- }\r
- if (arg0.getSource() == this.jComboBoxPpiType && arg0.getStateChange() == ItemEvent.SELECTED) {\r
- if (this.jComboBoxPpiType.getSelectedItem().toString().equals(ed.getVPpiType().get(0))) {\r
- Tools.generateComboBoxByVector(this.jComboBoxUsage, ed.getVPpiUsage());\r
- } else {\r
- Tools.generateComboBoxByVector(this.jComboBoxUsage, ed.getVPpiNotifyUsage());\r
- }\r
- }\r
- }\r
}\r
\r
package org.tianocore.frameworkwizard.module.ui;\r
\r
+import java.awt.Dimension;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ComponentEvent;\r
-import java.awt.event.ItemEvent;\r
+import java.awt.event.MouseEvent;\r
import java.util.Vector;\r
\r
import javax.swing.JButton;\r
-import javax.swing.JComboBox;\r
-import javax.swing.JLabel;\r
import javax.swing.JPanel;\r
import javax.swing.JScrollPane;\r
-import javax.swing.JTextArea;\r
-import javax.swing.JTextField;\r
+import javax.swing.JTable;\r
+import javax.swing.ListSelectionModel;\r
+import javax.swing.event.ListSelectionEvent;\r
\r
import org.tianocore.ProtocolNotifyUsage;\r
import org.tianocore.ProtocolUsage;\r
import org.tianocore.ProtocolsDocument.Protocols.Protocol;\r
import org.tianocore.ProtocolsDocument.Protocols.ProtocolNotify;\r
import org.tianocore.frameworkwizard.common.DataType;\r
-import org.tianocore.frameworkwizard.common.DataValidation;\r
import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.IDefaultTableModel;\r
import org.tianocore.frameworkwizard.common.Log;\r
import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
-import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
-import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
import org.tianocore.frameworkwizard.module.Identifications.Protocols.ProtocolsIdentification;\r
import org.tianocore.frameworkwizard.module.Identifications.Protocols.ProtocolsVector;\r
-import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
+import org.tianocore.frameworkwizard.module.ui.dialog.ProtocolsDlg;\r
\r
/**\r
The class is used to create, update Protocol of MSA/MBD file\r
//\r
private JPanel jContentPane = null;\r
\r
- private JLabel jLabelC_Name = null;\r
-\r
- private JLabel jLabelFeatureFlag = null;\r
-\r
- private JTextField jTextFieldFeatureFlag = null;\r
-\r
- private JLabel jLabelUsage = null;\r
-\r
- private JComboBox jComboBoxUsage = null;\r
-\r
- private StarLabel jStarLabel1 = null;\r
-\r
- private StarLabel jStarLabel2 = null;\r
-\r
- private JLabel jLabelProtocolType = null;\r
-\r
- private JLabel jLabelArch = null;\r
-\r
- private JTextArea jTextAreaList = null;\r
-\r
- private JComboBox jComboBoxList = null;\r
-\r
private JButton jButtonAdd = null;\r
\r
private JButton jButtonRemove = null;\r
\r
private JScrollPane jScrollPane = null;\r
\r
- private JScrollPane jScrollPaneList = null;\r
-\r
- private JComboBox jComboBoxProtocolType = null;\r
+ private JScrollPane jScrollPaneTable = null;\r
\r
- private JComboBox jComboBoxCName = null;\r
-\r
- private ICheckBoxList iCheckBoxListArch = null;\r
-\r
- private JScrollPane jScrollPaneArch = null;\r
- \r
- private JLabel jLabelHelpText = null;\r
-\r
- private JTextField jTextFieldHelpText = null;\r
+ private JTable jTable = null;\r
\r
//\r
// Not used by UI\r
//\r
- private int intSelectedItemId = 0;\r
-\r
private OpeningModuleType omt = null;\r
\r
private ModuleSurfaceArea msa = null;\r
\r
private ProtocolsVector vid = new ProtocolsVector();\r
\r
- private WorkspaceTools wt = new WorkspaceTools();\r
-\r
private EnumerationData ed = new EnumerationData();\r
\r
- /**\r
- This method initializes jTextFieldFeatureFlag \r
- \r
- @return javax.swing.JTextField jTextFieldFeatureFlag\r
- \r
- **/\r
- private JTextField getJTextFieldFeatureFlag() {\r
- if (jTextFieldFeatureFlag == null) {\r
- jTextFieldFeatureFlag = new JTextField();\r
- jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
- jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jTextFieldFeatureFlag;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxUsage \r
- \r
- @return javax.swing.JComboBox jComboBoxUsage\r
- \r
- **/\r
- private JComboBox getJComboBoxProtocolUsage() {\r
- if (jComboBoxUsage == null) {\r
- jComboBoxUsage = new JComboBox();\r
- jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
- jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jComboBoxUsage;\r
- }\r
+ private IDefaultTableModel model = null;\r
\r
- /**\r
- This method initializes jComboBoxFileList \r
- \r
- @return javax.swing.JComboBox jComboBoxFileList\r
- \r
- **/\r
- private JComboBox getJComboBoxList() {\r
- if (jComboBoxList == null) {\r
- jComboBoxList = new JComboBox();\r
- jComboBoxList.setBounds(new java.awt.Rectangle(15, 220, 210, 20));\r
- jComboBoxList.addItemListener(this);\r
- jComboBoxList.addActionListener(this);\r
- jComboBoxList.setPreferredSize(new java.awt.Dimension(210, 20));\r
- }\r
- return jComboBoxList;\r
- }\r
+ private int selectedRow = -1;\r
\r
/**\r
This method initializes jButtonAdd \r
jButtonUpdate = new JButton();\r
jButtonUpdate.setBounds(new java.awt.Rectangle(315, 220, 80, 20));\r
jButtonUpdate.setPreferredSize(new java.awt.Dimension(80, 20));\r
- jButtonUpdate.setText("Update");\r
+ jButtonUpdate.setText("Edit");\r
jButtonUpdate.addActionListener(this);\r
}\r
return jButtonUpdate;\r
}\r
\r
- /**\r
- * This method initializes jScrollPaneFileList \r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneList() {\r
- if (jScrollPaneList == null) {\r
- jScrollPaneList = new JScrollPane();\r
- jScrollPaneList.setBounds(new java.awt.Rectangle(15, 245, 465, 240));\r
- jScrollPaneList.setViewportView(getJTextAreaList());\r
- jScrollPaneList.setPreferredSize(new java.awt.Dimension(465, 240));\r
- }\r
- return jScrollPaneList;\r
- }\r
-\r
/**\r
This method initializes jScrollPane \r
\r
}\r
\r
/**\r
- * This method initializes jTextAreaFileList \r
- * \r
- * @return javax.swing.JTextArea \r
- */\r
- private JTextArea getJTextAreaList() {\r
- if (jTextAreaList == null) {\r
- jTextAreaList = new JTextArea();\r
- jTextAreaList.setEditable(false);\r
-\r
- }\r
- return jTextAreaList;\r
- }\r
-\r
- /**\r
- * This method initializes jComboBoxProtocolType \r
- * \r
- * @return javax.swing.JComboBox \r
- */\r
- private JComboBox getJComboBoxProtocolType() {\r
- if (jComboBoxProtocolType == null) {\r
- jComboBoxProtocolType = new JComboBox();\r
- jComboBoxProtocolType.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
- jComboBoxProtocolType.setPreferredSize(new java.awt.Dimension(320, 20));\r
- jComboBoxProtocolType.addItemListener(this);\r
- jComboBoxProtocolType.setToolTipText("Select Protocol Type");\r
- }\r
- return jComboBoxProtocolType;\r
- }\r
-\r
- /**\r
- * This method initializes jComboBoxCName \r
- * \r
- * @return javax.swing.JComboBox \r
- */\r
- private JComboBox getJComboBoxCName() {\r
- if (jComboBoxCName == null) {\r
- jComboBoxCName = new JComboBox();\r
- jComboBoxCName.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
- jComboBoxCName.setPreferredSize(new java.awt.Dimension(320, 20));\r
-\r
- }\r
- return jComboBoxCName;\r
- }\r
-\r
- /**\r
- This method initializes iCheckBoxListArch \r
+ This method initializes jScrollPaneTable \r
\r
- @return ICheckBoxList \r
+ @return javax.swing.JScrollPane \r
**/\r
- private ICheckBoxList getICheckBoxListSupportedArchitectures() {\r
- if (iCheckBoxListArch == null) {\r
- iCheckBoxListArch = new ICheckBoxList();\r
- iCheckBoxListArch.addFocusListener(this);\r
- iCheckBoxListArch.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
+ private JScrollPane getJScrollPaneTable() {\r
+ if (jScrollPaneTable == null) {\r
+ jScrollPaneTable = new JScrollPane();\r
+ jScrollPaneTable.setBounds(new java.awt.Rectangle(15, 10, 470, 420));\r
+ jScrollPaneTable.setPreferredSize(new Dimension(470, 420));\r
+ jScrollPaneTable.setViewportView(getJTable());\r
}\r
- return iCheckBoxListArch;\r
+ return jScrollPaneTable;\r
}\r
\r
/**\r
- This method initializes jScrollPaneArch \r
- \r
- @return javax.swing.JScrollPane \r
+ This method initializes jTable \r
\r
+ @return javax.swing.JTable \r
**/\r
- private JScrollPane getJScrollPaneArch() {\r
- if (jScrollPaneArch == null) {\r
- jScrollPaneArch = new JScrollPane();\r
- jScrollPaneArch.setBounds(new java.awt.Rectangle(160, 135, 320, 80));\r
- jScrollPaneArch.setPreferredSize(new java.awt.Dimension(320, 80));\r
- jScrollPaneArch.setViewportView(getICheckBoxListSupportedArchitectures());\r
+ private JTable getJTable() {\r
+ if (jTable == null) {\r
+ jTable = new JTable();\r
+ model = new IDefaultTableModel();\r
+ jTable = new JTable(model);\r
+ jTable.setRowHeight(20);\r
+\r
+ model.addColumn("Guid C_Name");\r
+ model.addColumn("Type");\r
+ model.addColumn("Usage");\r
+\r
+ jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTable.getSelectionModel().addListSelectionListener(this);\r
+ jTable.getModel().addTableModelListener(this);\r
+ jTable.addMouseListener(this);\r
}\r
- return jScrollPaneArch;\r
+ return jTable;\r
}\r
- \r
- /**\r
- This method initializes jTextFieldHelpText \r
- \r
- @return javax.swing.JTextField \r
- \r
- **/\r
- private JTextField getJTextFieldHelpText() {\r
- if (jTextFieldHelpText == null) {\r
- jTextFieldHelpText = new JTextField();\r
- jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
- jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jTextFieldHelpText;\r
- }\r
\r
public static void main(String[] args) {\r
\r
this.setSize(500, 515);\r
this.setContentPane(getJScrollPane());\r
this.setTitle("Protocols");\r
- initFrame();\r
- this.setViewMode(false);\r
}\r
\r
/**\r
String arg1 = ed.getVProtocolType().get(0);\r
String arg2 = null;\r
if (protocols.getProtocolList().get(index).getUsage() != null) {\r
- arg2 = protocols.getProtocolList().get(index).getUsage().toString(); \r
+ arg2 = protocols.getProtocolList().get(index).getUsage().toString();\r
}\r
- \r
+\r
String arg3 = protocols.getProtocolList().get(index).getFeatureFlag();\r
Vector<String> arg4 = Tools.convertListToVector(protocols.getProtocolList().get(index)\r
.getSupArchList());\r
String arg1 = ed.getVProtocolType().get(1);\r
String arg2 = null;\r
if (protocols.getProtocolNotifyList().get(index).getUsage() != null) {\r
- arg2 = protocols.getProtocolNotifyList().get(index).getUsage().toString(); \r
+ arg2 = protocols.getProtocolNotifyList().get(index).getUsage().toString();\r
}\r
- \r
+\r
String arg3 = protocols.getProtocolNotifyList().get(index).getFeatureFlag();\r
Vector<String> arg4 = Tools.convertListToVector(protocols.getProtocolNotifyList().get(index)\r
.getSupArchList());\r
}\r
}\r
}\r
- //\r
- // Update the list\r
- //\r
- Tools.generateComboBoxByVector(jComboBoxList, vid.getProtocolsName());\r
- reloadListArea();\r
+ showTable();\r
}\r
\r
/**\r
this.setVisible(true);\r
}\r
\r
- /**\r
- Disable all components when the mode is view\r
- \r
- @param isView true - The view mode; false - The non-view mode\r
- \r
- **/\r
- public void setViewMode(boolean isView) {\r
- if (isView) {\r
- this.jComboBoxUsage.setEnabled(!isView);\r
- this.jTextFieldFeatureFlag.setEnabled(!isView);\r
- }\r
- }\r
-\r
/**\r
This method initializes jContentPane\r
\r
**/\r
private JPanel getJContentPane() {\r
if (jContentPane == null) {\r
- jLabelHelpText = new JLabel();\r
- jLabelHelpText.setBounds(new java.awt.Rectangle(14, 85, 140, 20));\r
- jLabelHelpText.setText("Help Text");\r
- jLabelArch = new JLabel();\r
- jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 140, 20));\r
- jLabelArch.setText("Arch Type");\r
- jLabelProtocolType = new JLabel();\r
- jLabelProtocolType.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
- jLabelProtocolType.setText("Protocol Type");\r
- jLabelUsage = new JLabel();\r
- jLabelUsage.setText("Usage");\r
- jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
- jLabelFeatureFlag = new JLabel();\r
- jLabelFeatureFlag.setText("Feature Flag");\r
- jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
- jLabelC_Name = new JLabel();\r
- jLabelC_Name.setText("C_Name Type");\r
- jLabelC_Name.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
-\r
jContentPane = new JPanel();\r
jContentPane.setLayout(null);\r
- jContentPane.setPreferredSize(new java.awt.Dimension(490, 495));\r
-\r
- jContentPane.add(jLabelC_Name, null);\r
- jContentPane.add(jLabelFeatureFlag, null);\r
- jContentPane.add(getJTextFieldFeatureFlag(), null);\r
- jContentPane.add(jLabelUsage, null);\r
- jContentPane.add(getJComboBoxProtocolUsage(), null);\r
- jContentPane.add(jLabelProtocolType, null);\r
-\r
- jStarLabel1 = new StarLabel();\r
- jStarLabel1.setBounds(new java.awt.Rectangle(0, 10, 10, 20));\r
- jStarLabel2 = new StarLabel();\r
- jStarLabel2.setBounds(new java.awt.Rectangle(0, 35, 10, 20));\r
-\r
- jContentPane.add(jStarLabel1, null);\r
- jContentPane.add(jStarLabel2, null);\r
- jContentPane.add(jLabelArch, null);\r
- jContentPane.add(getJComboBoxList(), null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 490));\r
+\r
jContentPane.add(getJButtonAdd(), null);\r
jContentPane.add(getJButtonRemove(), null);\r
jContentPane.add(getJButtonUpdate(), null);\r
- jContentPane.add(getJScrollPaneList(), null);\r
-\r
- jContentPane.add(getJComboBoxProtocolType(), null);\r
- jContentPane.add(getJComboBoxCName(), null);\r
- jContentPane.add(getJScrollPaneArch(), null);\r
- jContentPane.add(jLabelHelpText, null);\r
- jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(getJScrollPaneTable(), null);\r
}\r
return jContentPane;\r
}\r
+ \r
+ private void showEdit(int index) {\r
+ ProtocolsDlg dlg = new ProtocolsDlg(vid.getProtocols(index), new IFrame());\r
+ int result = dlg.showDialog();\r
+ if (result == DataType.RETURN_TYPE_OK) {\r
+ if (index == -1) {\r
+ this.vid.addProtocols(dlg.getId());\r
+ } else {\r
+ this.vid.setProtocols(dlg.getId(), index);\r
+ }\r
+ this.showTable();\r
+ this.save();\r
+ dlg.dispose();\r
+ }\r
+ if (result == DataType.RETURN_TYPE_CANCEL) {\r
+ dlg.dispose();\r
+ }\r
+ }\r
+\r
+ /**\r
+ Clear all table rows\r
+ \r
+ **/\r
+ private void clearAll() {\r
+ if (model != null) {\r
+ for (int index = model.getRowCount() - 1; index >= 0; index--) {\r
+ model.removeRow(index);\r
+ }\r
+ }\r
+ }\r
\r
/**\r
- This method initializes Usage type\r
+ Read content of vector and put then into table\r
\r
**/\r
- private void initFrame() {\r
- Tools.generateComboBoxByVector(jComboBoxProtocolType, ed.getVProtocolType());\r
- Tools.generateComboBoxByVector(jComboBoxCName, wt.getAllProtocolDeclarationsFromWorkspace());\r
- Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVProtocolUsage());\r
+ private void showTable() {\r
+ clearAll();\r
\r
- this.iCheckBoxListArch.setAllItems(ed.getVSupportedArchitectures());\r
+ if (vid.size() > 0) {\r
+ for (int index = 0; index < vid.size(); index++) {\r
+ model.addRow(vid.toStringVector(index));\r
+ }\r
+ }\r
+ this.jTable.repaint();\r
+ this.jTable.updateUI();\r
}\r
\r
/* (non-Javadoc)\r
*/\r
public void actionPerformed(ActionEvent arg0) {\r
if (arg0.getSource() == jButtonAdd) {\r
- if (!checkAdd()) {\r
- return;\r
- }\r
- addToList();\r
- }\r
- if (arg0.getSource() == jButtonRemove) {\r
- removeFromList();\r
+ showEdit(-1);\r
}\r
if (arg0.getSource() == jButtonUpdate) {\r
- if (!checkAdd()) {\r
+ if (this.selectedRow < 0) {\r
+ Log.err("Please select one record first.");\r
return;\r
}\r
- updateForList();\r
+ showEdit(selectedRow);\r
}\r
- }\r
\r
- /**\r
- Data validation for all fields\r
- \r
- @retval true - All datas are valid\r
- @retval false - At least one data is invalid\r
- \r
- **/\r
- public boolean checkAdd() {\r
- //\r
- // Check if all fields have correct data types \r
- //\r
-\r
- //\r
- // Check Name \r
- //\r
- if (!isEmpty(this.jComboBoxCName.getSelectedItem().toString())) {\r
- if (!DataValidation.isC_NameType(this.jComboBoxCName.getSelectedItem().toString())) {\r
- Log.err("Incorrect data type for Protocol/ProtocolNotify Name");\r
- return false;\r
+ if (arg0.getSource() == jButtonRemove) {\r
+ if (jTable.isEditing()) {\r
+ jTable.getCellEditor().stopCellEditing();\r
}\r
- }\r
- \r
- //\r
- // Check FeatureFlag\r
- //\r
- if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
- if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
- Log.err("Incorrect data type for Feature Flag");\r
- return false;\r
+ if (selectedRow > -1) {\r
+ this.model.removeRow(selectedRow);\r
+ this.vid.removeProtocols(selectedRow);\r
+ selectedRow = -1;\r
+ this.save();\r
}\r
}\r
-\r
- return true;\r
}\r
\r
/**\r
Log.err("Update Protocols", e.getMessage());\r
}\r
}\r
-\r
+ \r
/* (non-Javadoc)\r
- * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
- * \r
- * Override componentResized to resize all components when frame's size is changed\r
+ * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)\r
+ *\r
*/\r
- public void componentResized(ComponentEvent arg0) {\r
- int intCurrentWidth = this.getJContentPane().getWidth();\r
- int intCurrentHeight = this.getJContentPane().getHeight();\r
- int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
- int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
-\r
- resizeComponentWidth(this.jComboBoxProtocolType, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jComboBoxCName, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jComboBoxUsage, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldHelpText, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldFeatureFlag, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jScrollPaneArch, intCurrentWidth, intPreferredWidth);\r
-\r
- resizeComponentWidth(this.jComboBoxList, intCurrentWidth, intPreferredWidth);\r
- resizeComponent(this.jScrollPaneList, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
-\r
- relocateComponentX(this.jButtonAdd, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON);\r
- relocateComponentX(this.jButtonRemove, intCurrentWidth, intPreferredWidth,\r
- DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON);\r
- relocateComponentX(this.jButtonUpdate, intCurrentWidth, intPreferredWidth,\r
- DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON);\r
- }\r
-\r
- private ProtocolsIdentification getCurrentProtocols() {\r
- String arg0 = this.jComboBoxCName.getSelectedItem().toString();\r
- String arg1 = this.jComboBoxProtocolType.getSelectedItem().toString();\r
- String arg2 = this.jComboBoxUsage.getSelectedItem().toString();\r
-\r
- String arg3 = this.jTextFieldFeatureFlag.getText();\r
- Vector<String> arg4 = this.iCheckBoxListArch.getAllCheckedItemsString();\r
- String arg5 = this.jTextFieldHelpText.getText();\r
- id = new ProtocolsIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
- return id;\r
- }\r
-\r
- /**\r
- Add current item to Vector\r
- \r
- **/\r
- private void addToList() {\r
- intSelectedItemId = vid.size();\r
-\r
- vid.addProtocols(getCurrentProtocols());\r
-\r
- jComboBoxList.addItem(id.getName());\r
- jComboBoxList.setSelectedItem(id.getName());\r
-\r
- //\r
- // Reset select item index\r
- //\r
- intSelectedItemId = vid.size();\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Remove current item from Vector\r
- \r
- **/\r
- private void removeFromList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
+ public void valueChanged(ListSelectionEvent arg0) {\r
+ if (arg0.getValueIsAdjusting()) {\r
return;\r
}\r
-\r
- int intTempIndex = intSelectedItemId;\r
-\r
- jComboBoxList.removeItemAt(intSelectedItemId);\r
-\r
- vid.removeProtocols(intTempIndex);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Update current item of Vector\r
- \r
- **/\r
- private void updateForList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
+ ListSelectionModel lsm = (ListSelectionModel) arg0.getSource();\r
+ if (lsm.isSelectionEmpty()) {\r
return;\r
- }\r
-\r
- //\r
- // Backup selected item index\r
- //\r
- int intTempIndex = intSelectedItemId;\r
-\r
- vid.updateProtocols(getCurrentProtocols(), intTempIndex);\r
-\r
- jComboBoxList.removeAllItems();\r
- for (int index = 0; index < vid.size(); index++) {\r
- jComboBoxList.addItem(vid.getProtocols(index).getName());\r
- }\r
-\r
- //\r
- // Restore selected item index\r
- //\r
- intSelectedItemId = intTempIndex;\r
-\r
- //\r
- // Reset select item index\r
- //\r
- jComboBoxList.setSelectedIndex(intSelectedItemId);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Refresh all fields' values of selected item of Vector\r
- \r
- **/\r
- private void reloadFromList() {\r
- if (vid.size() > 0) {\r
- //\r
- // Get selected item index\r
- //\r
- intSelectedItemId = jComboBoxList.getSelectedIndex();\r
-\r
- this.jComboBoxCName.setSelectedItem(vid.getProtocols(intSelectedItemId).getName());\r
- this.jComboBoxProtocolType.setSelectedItem(vid.getProtocols(intSelectedItemId).getType());\r
- this.jComboBoxUsage.setSelectedItem(vid.getProtocols(intSelectedItemId).getUsage());\r
- this.jTextFieldHelpText.setText(vid.getProtocols(intSelectedItemId).getHelp());\r
- \r
- jTextFieldFeatureFlag.setText(vid.getProtocols(intSelectedItemId).getFeatureFlag());\r
- iCheckBoxListArch.setAllItemsUnchecked();\r
- iCheckBoxListArch.initCheckedItem(true, vid.getProtocols(intSelectedItemId).getSupArchList());\r
- \r
-\r
} else {\r
+ selectedRow = lsm.getMinSelectionIndex();\r
}\r
-\r
- reloadListArea();\r
- }\r
-\r
- /**\r
- Update list area pane via the elements of Vector\r
- \r
- **/\r
- private void reloadListArea() {\r
- String strListItem = "";\r
- for (int index = 0; index < vid.size(); index++) {\r
- strListItem = strListItem + vid.getProtocols(index).getName() + DataType.UNIX_LINE_SEPARATOR;\r
- }\r
- this.jTextAreaList.setText(strListItem);\r
}\r
\r
/* (non-Javadoc)\r
- * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
+ * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
*\r
- * Reflesh the frame when selected item changed\r
- * \r
*/\r
- public void itemStateChanged(ItemEvent arg0) {\r
- if (arg0.getSource() == this.jComboBoxList && arg0.getStateChange() == ItemEvent.SELECTED) {\r
- reloadFromList();\r
- }\r
- if (arg0.getSource() == this.jComboBoxProtocolType && arg0.getStateChange() == ItemEvent.SELECTED) {\r
- if (this.jComboBoxProtocolType.getSelectedItem().toString().equals(ed.getVProtocolType().get(0))) {\r
- Tools.generateComboBoxByVector(this.jComboBoxUsage, ed.getVProtocolUsage());\r
+ public void mouseClicked(MouseEvent arg0) {\r
+ if (arg0.getClickCount() == 2) {\r
+ if (this.selectedRow < 0) {\r
+ return;\r
} else {\r
- Tools.generateComboBoxByVector(this.jComboBoxUsage, ed.getVProtocolNotifyUsage());\r
+ showEdit(selectedRow);\r
}\r
}\r
}\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
+ * \r
+ * Override componentResized to resize all components when frame's size is changed\r
+ */\r
+ public void componentResized(ComponentEvent arg0) {\r
+ int intCurrentWidth = this.getJContentPane().getWidth();\r
+ int intCurrentHeight = this.getJContentPane().getHeight();\r
+ int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
+ int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
+\r
+ resizeComponent(this.jScrollPaneTable, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
+ relocateComponent(this.jButtonAdd, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_ADD_BUTTON);\r
+ relocateComponent(this.jButtonRemove, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_REMOVE_BUTTON);\r
+ relocateComponent(this.jButtonUpdate, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_UPDATE_BUTTON);\r
+ }\r
}\r
**/\r
package org.tianocore.frameworkwizard.module.ui;\r
\r
+import java.awt.Dimension;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ComponentEvent;\r
-import java.awt.event.ItemEvent;\r
+import java.awt.event.MouseEvent;\r
import java.util.Vector;\r
\r
import javax.swing.JButton;\r
import javax.swing.JCheckBox;\r
-import javax.swing.JComboBox;\r
-import javax.swing.JFileChooser;\r
-import javax.swing.JLabel;\r
import javax.swing.JPanel;\r
import javax.swing.JScrollPane;\r
-import javax.swing.JTextArea;\r
-import javax.swing.JTextField;\r
+import javax.swing.JTable;\r
+import javax.swing.ListSelectionModel;\r
+import javax.swing.event.ListSelectionEvent;\r
\r
import org.tianocore.SourceFilesDocument;\r
import org.tianocore.FilenameDocument.Filename;\r
import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea;\r
import org.tianocore.SourceFilesDocument.SourceFiles;\r
import org.tianocore.frameworkwizard.common.DataType;\r
-import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.IDefaultTableModel;\r
import org.tianocore.frameworkwizard.common.Log;\r
import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
-import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
-import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
import org.tianocore.frameworkwizard.module.Identifications.SourceFiles.SourceFilesIdentification;\r
import org.tianocore.frameworkwizard.module.Identifications.SourceFiles.SourceFilesVector;\r
-import org.tianocore.frameworkwizard.workspace.Workspace;\r
+import org.tianocore.frameworkwizard.module.ui.dialog.SourceFilesDlg;\r
\r
/**\r
The class is used to create, update SourceFile of MSA/MBD file\r
It extends IInternalFrame\r
\r
-\r
-\r
**/\r
public class ModuleSourceFiles extends IInternalFrame {\r
\r
//\r
private SourceFilesDocument.SourceFiles sourceFiles = null;\r
\r
- private int intSelectedItemId = 0;\r
-\r
private JPanel jContentPane = null;\r
\r
- private JLabel jLabelFileName = null;\r
-\r
- private JTextField jTextFieldFileName = null;\r
-\r
- private JButton jButtonOpenFile = null;\r
-\r
- private JLabel jLabelToolChainFamily = null;\r
-\r
- private StarLabel jStarLabel1 = null;\r
-\r
- private JComboBox jComboBoxList = null;\r
-\r
private JButton jButtonAdd = null;\r
\r
private JButton jButtonRemove = null;\r
\r
private JCheckBox jCheckBoxArch = null;\r
\r
- private JScrollPane jScrollPaneList = null;\r
-\r
- private JTextArea jTextAreaList = null;\r
-\r
- private JLabel jLabelArch = null;\r
-\r
private JScrollPane jScrollPane = null;\r
\r
- private JLabel jLabelTagName = null;\r
-\r
- private JTextField jTextFieldTagName = null;\r
-\r
- private JLabel jLabelToolCode = null;\r
-\r
- private JTextField jTextFieldToolCode = null;\r
+ private JScrollPane jScrollPaneTable = null;\r
\r
- private JTextField jTextFieldToolChainFamily = null;\r
-\r
- private JLabel jLabelFeatureFlag = null;\r
-\r
- private JTextField jTextFieldFeatureFlag = null;\r
-\r
- private ICheckBoxList iCheckBoxListArch = null;\r
-\r
- private JScrollPane jScrollPaneArch = null;\r
+ private JTable jTable = null;\r
\r
//\r
// Not used by UI\r
//\r
private OpeningModuleType omt = null;\r
- \r
- private ModuleSurfaceArea msa = null;\r
\r
- private SourceFilesIdentification sfid = null;\r
+ private ModuleSurfaceArea msa = null;\r
\r
private SourceFilesVector vSourceFiles = new SourceFilesVector();\r
\r
- /**\r
- This method initializes jTextFieldFileName \r
- \r
- @return javax.swing.JTextField jTextFieldFileName\r
- \r
- **/\r
- private JTextField getJTextFieldSourceFilesDirectory() {\r
- if (jTextFieldFileName == null) {\r
- jTextFieldFileName = new JTextField();\r
- jTextFieldFileName.setBounds(new java.awt.Rectangle(140, 10, 250, 20));\r
- jTextFieldFileName.setPreferredSize(new java.awt.Dimension(250, 20));\r
- jTextFieldFileName.setToolTipText("Path is relative to the MSA file and must include the file name");\r
- }\r
- return jTextFieldFileName;\r
- }\r
+ private IDefaultTableModel model = null;\r
\r
- /**\r
- This method initializes jButtonOpenFile \r
- \r
- @return javax.swing.JButton jButtonOpenFile\r
- \r
- **/\r
- private JButton getJButtonOpenFile() {\r
- if (jButtonOpenFile == null) {\r
- jButtonOpenFile = new JButton();\r
- jButtonOpenFile.setText("Browse");\r
- jButtonOpenFile.setBounds(new java.awt.Rectangle(395, 10, 85, 20));\r
- jButtonOpenFile.setPreferredSize(new java.awt.Dimension(85, 20));\r
- jButtonOpenFile.addActionListener(this);\r
- }\r
- return jButtonOpenFile;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxFileList \r
- \r
- @return javax.swing.JComboBox jComboBoxFileList\r
- \r
- **/\r
- private JComboBox getJComboBoxList() {\r
- if (jComboBoxList == null) {\r
- jComboBoxList = new JComboBox();\r
- jComboBoxList.setBounds(new java.awt.Rectangle(15, 220, 210, 20));\r
- jComboBoxList.addItemListener(this);\r
- jComboBoxList.addActionListener(this);\r
- jComboBoxList.setPreferredSize(new java.awt.Dimension(210, 20));\r
- }\r
- return jComboBoxList;\r
- }\r
+ private int selectedRow = -1;\r
\r
/**\r
This method initializes jButtonAdd \r
jButtonUpdate = new JButton();\r
jButtonUpdate.setBounds(new java.awt.Rectangle(315, 220, 80, 20));\r
jButtonUpdate.setPreferredSize(new java.awt.Dimension(80, 20));\r
- jButtonUpdate.setText("Update");\r
+ jButtonUpdate.setText("Edit");\r
jButtonUpdate.addActionListener(this);\r
}\r
return jButtonUpdate;\r
}\r
\r
- /**\r
- * This method initializes jScrollPaneFileList \r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneList() {\r
- if (jScrollPaneList == null) {\r
- jScrollPaneList = new JScrollPane();\r
- jScrollPaneList.setBounds(new java.awt.Rectangle(15, 245, 465, 240));\r
- jScrollPaneList.setViewportView(getJTextAreaList());\r
- jScrollPaneList.setPreferredSize(new java.awt.Dimension(465, 240));\r
- }\r
- return jScrollPaneList;\r
- }\r
-\r
- /**\r
- * This method initializes jTextAreaFileList \r
- * \r
- * @return javax.swing.JTextArea \r
- */\r
- private JTextArea getJTextAreaList() {\r
- if (jTextAreaList == null) {\r
- jTextAreaList = new JTextArea();\r
- jTextAreaList.setEditable(false);\r
-\r
- }\r
- return jTextAreaList;\r
- }\r
-\r
/**\r
This method initializes jScrollPane \r
\r
}\r
\r
/**\r
- * This method initializes jTextFieldTagName \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldTagName() {\r
- if (jTextFieldTagName == null) {\r
- jTextFieldTagName = new JTextField();\r
- jTextFieldTagName.setBounds(new java.awt.Rectangle(140, 35, 340, 20));\r
- jTextFieldTagName.setPreferredSize(new java.awt.Dimension(340, 20));\r
- jTextFieldTagName.setToolTipText("You may specify a specific tool chain tag name, such as BILL1");\r
- }\r
- return jTextFieldTagName;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldToolCode \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldToolCode() {\r
- if (jTextFieldToolCode == null) {\r
- jTextFieldToolCode = new JTextField();\r
- jTextFieldToolCode.setBounds(new java.awt.Rectangle(140, 60, 340, 20));\r
- jTextFieldToolCode.setPreferredSize(new java.awt.Dimension(340, 20));\r
- jTextFieldToolCode.setToolTipText("You may specify a specific tool command, such as ASM");\r
- }\r
- return jTextFieldToolCode;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldToolChainFamily \r
- * \r
- * @return javax.swing.JTextField \r
+ * This method initializes jScrollPaneTable \r
+ * \r
+ * @return javax.swing.JScrollPane \r
*/\r
- private JTextField getJTextFieldToolChainFamily() {\r
- if (jTextFieldToolChainFamily == null) {\r
- jTextFieldToolChainFamily = new JTextField();\r
- jTextFieldToolChainFamily.setBounds(new java.awt.Rectangle(140, 85, 340, 20));\r
- jTextFieldToolChainFamily.setPreferredSize(new java.awt.Dimension(340, 20));\r
- jTextFieldToolChainFamily.setToolTipText("You may specify a specific tool chain family, such as GCC");\r
+ private JScrollPane getJScrollPaneTable() {\r
+ if (jScrollPaneTable == null) {\r
+ jScrollPaneTable = new JScrollPane();\r
+ jScrollPaneTable.setBounds(new java.awt.Rectangle(15, 10, 470, 420));\r
+ jScrollPaneTable.setPreferredSize(new Dimension(470, 420));\r
+ jScrollPaneTable.setViewportView(getJTable());\r
}\r
- return jTextFieldToolChainFamily;\r
+ return jScrollPaneTable;\r
}\r
\r
/**\r
- * This method initializes jTextFieldFeatureFlag \r
- * \r
- * @return javax.swing.JTextField \r
+ * This method initializes jTable \r
+ * \r
+ * @return javax.swing.JTable \r
*/\r
- private JTextField getJTextFieldFeatureFlag() {\r
- if (jTextFieldFeatureFlag == null) {\r
- jTextFieldFeatureFlag = new JTextField();\r
- jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(140, 110, 340, 20));\r
- jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(340, 20));\r
- jTextFieldFeatureFlag.setToolTipText("RESERVED FOR FUTURE USE");\r
- }\r
- return jTextFieldFeatureFlag;\r
- }\r
+ private JTable getJTable() {\r
+ if (jTable == null) {\r
+ jTable = new JTable();\r
+ model = new IDefaultTableModel();\r
+ jTable = new JTable(model);\r
+ jTable.setRowHeight(20);\r
\r
- /**\r
- This method initializes iCheckBoxListArch \r
- \r
- @return ICheckBoxList \r
- **/\r
- private ICheckBoxList getICheckBoxListSupportedArchitectures() {\r
- if (iCheckBoxListArch == null) {\r
- iCheckBoxListArch = new ICheckBoxList();\r
- iCheckBoxListArch.addFocusListener(this);\r
- iCheckBoxListArch.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
- }\r
- return iCheckBoxListArch;\r
- }\r
+ model.addColumn("File Name");\r
\r
- /**\r
- This method initializes jScrollPaneArch \r
- \r
- @return javax.swing.JScrollPane \r
- \r
- **/\r
- private JScrollPane getJScrollPaneArch() {\r
- if (jScrollPaneArch == null) {\r
- jScrollPaneArch = new JScrollPane();\r
- jScrollPaneArch.setBounds(new java.awt.Rectangle(140, 135, 340, 80));\r
- jScrollPaneArch.setPreferredSize(new java.awt.Dimension(340, 80));\r
- jScrollPaneArch.setViewportView(getICheckBoxListSupportedArchitectures());\r
+ jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTable.getSelectionModel().addListSelectionListener(this);\r
+ jTable.getModel().addTableModelListener(this);\r
+ jTable.addMouseListener(this);\r
}\r
- return jScrollPaneArch;\r
+ return jTable;\r
}\r
\r
public static void main(String[] args) {\r
public ModuleSourceFiles(OpeningModuleType inOmt) {\r
super();\r
this.omt = inOmt;\r
- this.msa = inOmt.getXmlMsa();\r
+ this.msa = omt.getXmlMsa();\r
init(msa.getSourceFiles());\r
this.setVisible(true);\r
}\r
}\r
}\r
}\r
- //\r
- // Update the list\r
- //\r
- Tools.generateComboBoxByVector(jComboBoxList, vSourceFiles.getSourceFilesName());\r
- reloadListArea();\r
+ showTable();\r
}\r
\r
/**\r
this.setSize(500, 515);\r
this.setContentPane(getJScrollPane());\r
this.setTitle("Source Files");\r
- initFrame();\r
this.setViewMode(false);\r
}\r
\r
**/\r
public void setViewMode(boolean isView) {\r
if (isView) {\r
- this.jTextFieldFileName.setEnabled(!isView);\r
- this.jButtonOpenFile.setEnabled(!isView);\r
-\r
this.jButtonAdd.setEnabled(!isView);\r
this.jButtonRemove.setEnabled(!isView);\r
this.jButtonUpdate.setEnabled(!isView);\r
**/\r
private JPanel getJContentPane() {\r
if (jContentPane == null) {\r
- jLabelFeatureFlag = new JLabel();\r
- jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 110, 120, 20));\r
- jLabelFeatureFlag.setText("Feature Flag");\r
- jLabelToolCode = new JLabel();\r
- jLabelToolCode.setBounds(new java.awt.Rectangle(15, 60, 120, 20));\r
- jLabelToolCode.setText("Tool Code");\r
- jLabelTagName = new JLabel();\r
- jLabelTagName.setBounds(new java.awt.Rectangle(15, 35, 120, 20));\r
- jLabelTagName.setText("Tag Name");\r
- jLabelArch = new JLabel();\r
- jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 120, 20));\r
- jLabelArch.setText("Sup Arch List");\r
- jLabelToolChainFamily = new JLabel();\r
- jLabelToolChainFamily.setBounds(new java.awt.Rectangle(15, 85, 120, 20));\r
- jLabelToolChainFamily.setText("Tool Chain Family");\r
- jLabelFileName = new JLabel();\r
- jLabelFileName.setText("File Name");\r
- jLabelFileName.setBounds(new java.awt.Rectangle(15, 10, 120, 20));\r
-\r
jContentPane = new JPanel();\r
jContentPane.setLayout(null);\r
jContentPane.setPreferredSize(new java.awt.Dimension(490, 490));\r
\r
- jContentPane.add(jLabelFileName, null);\r
- jContentPane.add(getJTextFieldSourceFilesDirectory(), null);\r
- jContentPane.add(getJButtonOpenFile(), null);\r
- jContentPane.add(jLabelToolChainFamily, null);\r
- jStarLabel1 = new StarLabel();\r
- jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
-\r
- jContentPane.add(jStarLabel1, null);\r
- jContentPane.add(getJComboBoxList(), null);\r
jContentPane.add(getJButtonAdd(), null);\r
jContentPane.add(getJButtonRemove(), null);\r
jContentPane.add(getJButtonUpdate(), null);\r
- jContentPane.add(getJScrollPaneList(), null);\r
- jContentPane.add(jLabelArch, null);\r
- jContentPane.add(jLabelTagName, null);\r
- jContentPane.add(getJTextFieldTagName(), null);\r
- jContentPane.add(jLabelToolCode, null);\r
- jContentPane.add(getJTextFieldToolCode(), null);\r
- jContentPane.add(getJTextFieldToolChainFamily(), null);\r
- jContentPane.add(jLabelFeatureFlag, null);\r
- jContentPane.add(getJTextFieldFeatureFlag(), null);\r
- jContentPane.add(getJScrollPaneArch(), null);\r
+ jContentPane.add(getJScrollPaneTable(), null);\r
}\r
return jContentPane;\r
}\r
\r
- /* (non-Javadoc)\r
- * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
- *\r
- * Override actionPerformed to listen all actions\r
- * \r
- */\r
- public void actionPerformed(ActionEvent arg0) {\r
- if (arg0.getSource() == jButtonOpenFile) {\r
- selectFile();\r
- }\r
- if (arg0.getSource() == jButtonAdd) {\r
- if (!checkAdd()) {\r
- return;\r
- }\r
- addToList();\r
- }\r
- if (arg0.getSource() == jButtonRemove) {\r
- removeFromList();\r
- }\r
- if (arg0.getSource() == jButtonUpdate) {\r
- if (!checkAdd()) {\r
- return;\r
- }\r
- updateForList();\r
- }\r
- }\r
-\r
- /**\r
- This method initializes Usage type and Arch type\r
- \r
- **/\r
- private void initFrame() {\r
- EnumerationData ed = new EnumerationData();\r
-\r
- this.iCheckBoxListArch.setAllItems(ed.getVSupportedArchitectures());\r
- }\r
-\r
- private SourceFilesIdentification getCurrentSourceFiles() {\r
- String name = this.jTextFieldFileName.getText();\r
- String tagName = this.jTextFieldTagName.getText();\r
- String toolCode = this.jTextFieldToolCode.getText();\r
- String tcf = this.jTextFieldToolChainFamily.getText();\r
- String featureFlag = this.jTextFieldFeatureFlag.getText();\r
- Vector<String> arch = this.iCheckBoxListArch.getAllCheckedItemsString();\r
- sfid = new SourceFilesIdentification(name, tagName, toolCode, tcf, featureFlag, arch);\r
- return sfid;\r
- }\r
-\r
- /**\r
- Add current item to Vector\r
- \r
- **/\r
- private void addToList() {\r
- intSelectedItemId = vSourceFiles.size();\r
-\r
- vSourceFiles.addSourceFiles(getCurrentSourceFiles());\r
-\r
- jComboBoxList.addItem(sfid.getFilename());\r
- jComboBoxList.setSelectedItem(sfid.getFilename());\r
-\r
- //\r
- // Reset select item index\r
- //\r
- intSelectedItemId = vSourceFiles.size();\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Remove current item from Vector\r
- \r
- **/\r
- private void removeFromList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vSourceFiles.size() < 1) {\r
- return;\r
- }\r
-\r
- int intTempIndex = intSelectedItemId;\r
-\r
- jComboBoxList.removeItemAt(intSelectedItemId);\r
-\r
- vSourceFiles.removeSourceFiles(intTempIndex);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Update current item of Vector\r
- \r
- **/\r
- private void updateForList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vSourceFiles.size() < 1) {\r
- return;\r
- }\r
-\r
- //\r
- // Backup selected item index\r
- //\r
- int intTempIndex = intSelectedItemId;\r
-\r
- vSourceFiles.updateSourceFiles(getCurrentSourceFiles(), intTempIndex);\r
-\r
- jComboBoxList.removeAllItems();\r
- for (int index = 0; index < vSourceFiles.size(); index++) {\r
- jComboBoxList.addItem(vSourceFiles.getSourceFiles(index).getFilename());\r
- }\r
-\r
- //\r
- // Restore selected item index\r
- //\r
- intSelectedItemId = intTempIndex;\r
-\r
- //\r
- // Reset select item index\r
- //\r
- jComboBoxList.setSelectedIndex(intSelectedItemId);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Refresh all fields' values of selected item of Vector\r
- \r
- **/\r
- private void reloadFromList() {\r
- if (vSourceFiles.size() > 0) {\r
- //\r
- // Get selected item index\r
- //\r
- intSelectedItemId = jComboBoxList.getSelectedIndex();\r
-\r
- this.jTextFieldFileName.setText(vSourceFiles.getSourceFiles(intSelectedItemId).getFilename());\r
- this.jTextFieldTagName.setText(vSourceFiles.getSourceFiles(intSelectedItemId).getTagName());\r
- this.jTextFieldToolCode.setText(vSourceFiles.getSourceFiles(intSelectedItemId).getToolCode());\r
- this.jTextFieldToolChainFamily.setText(vSourceFiles.getSourceFiles(intSelectedItemId).getToolChainFamily());\r
- jTextFieldFeatureFlag.setText(vSourceFiles.getSourceFiles(intSelectedItemId).getFeatureFlag());\r
- iCheckBoxListArch.setAllItemsUnchecked();\r
- iCheckBoxListArch.initCheckedItem(true, vSourceFiles.getSourceFiles(intSelectedItemId).getSupArchList());\r
-\r
- } else {\r
- }\r
-\r
- reloadListArea();\r
- }\r
-\r
- /**\r
- Update list area pane via the elements of Vector\r
- \r
- **/\r
- private void reloadListArea() {\r
- String strListItem = "";\r
- for (int index = 0; index < vSourceFiles.size(); index++) {\r
- strListItem = strListItem + vSourceFiles.getSourceFiles(index).getFilename() + DataType.UNIX_LINE_SEPARATOR;\r
- }\r
- this.jTextAreaList.setText(strListItem);\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
- *\r
- * Reflesh the frame when selected item changed\r
- * \r
- */\r
- public void itemStateChanged(ItemEvent arg0) {\r
- if (arg0.getStateChange() == ItemEvent.SELECTED) {\r
- reloadFromList();\r
- }\r
- }\r
-\r
- /**\r
- Data validation for all fields\r
- \r
- @retval true - All datas are valid\r
- @retval false - At least one data is invalid\r
- \r
- **/\r
- public boolean checkAdd() {\r
- //\r
- // Check Filename\r
- //\r
- if (isEmpty(this.jTextFieldFileName.getText())) {\r
- Log.err("File Name couldn't be empty");\r
- return false;\r
- }\r
- if (!DataValidation.isFilename(this.jTextFieldFileName.getText())) {\r
- Log.err("Incorrect data type for File Name");\r
- return false;\r
- }\r
- \r
- //\r
- // Check TagName \r
- //\r
- if (!isEmpty(this.jTextFieldTagName.getText())) {\r
- if (!DataValidation.isTagName(this.jTextFieldTagName.getText())) {\r
- Log.err("Incorrect data type for Tag Name");\r
- return false;\r
- }\r
- }\r
- \r
- //\r
- // Check ToolCode \r
- //\r
- if (!isEmpty(this.jTextFieldToolCode.getText())) {\r
- if (!DataValidation.isToolCode(this.jTextFieldToolCode.getText())) {\r
- Log.err("Incorrect data type for Tool Code");\r
- return false;\r
- }\r
- }\r
- \r
- //\r
- // Check ToolChainFamily \r
- //\r
- if (!isEmpty(this.jTextFieldToolChainFamily.getText())) {\r
- if (!DataValidation.isToolChainFamily(this.jTextFieldToolChainFamily.getText())) {\r
- Log.err("Incorrect data type for Tool Chain Family");\r
- return false;\r
- }\r
- }\r
- \r
- //\r
- // Check FeatureFlag\r
- //\r
- if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
- if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
- Log.err("Incorrect data type for Feature Flag");\r
- return false;\r
- }\r
- }\r
- \r
- return true;\r
- }\r
-\r
/**\r
Save all components of SourceFiles\r
if exists sourceFiles, set the value directly\r
this.msa.setSourceFiles(sourceFiles);\r
this.omt.setSaved(false);\r
} catch (Exception e) {\r
- e.printStackTrace();\r
Log.err("Update Source Files", e.getMessage());\r
}\r
}\r
\r
+ private void showEdit(int index) {\r
+ SourceFilesDlg sfd = new SourceFilesDlg(this.vSourceFiles.getSourceFiles(index), new IFrame());\r
+ int result = sfd.showDialog();\r
+ if (result == DataType.RETURN_TYPE_OK) {\r
+ if (index == -1) {\r
+ this.vSourceFiles.addSourceFiles(sfd.getSfid());\r
+ } else {\r
+ this.vSourceFiles.setSourceFiles(sfd.getSfid(), index);\r
+ }\r
+ this.showTable();\r
+ this.save();\r
+ sfd.dispose();\r
+ }\r
+ if (result == DataType.RETURN_TYPE_CANCEL) {\r
+ sfd.dispose();\r
+ }\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ *\r
+ * Override actionPerformed to listen all actions\r
+ * \r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ if (arg0.getSource() == jButtonAdd) {\r
+ showEdit(-1);\r
+ }\r
+ if (arg0.getSource() == jButtonUpdate) {\r
+ if (this.selectedRow < 0) {\r
+ Log.err("Please select one record first.");\r
+ return;\r
+ }\r
+ showEdit(selectedRow);\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonRemove) {\r
+ if (jTable.isEditing()) {\r
+ jTable.getCellEditor().stopCellEditing();\r
+ }\r
+ if (selectedRow > -1) {\r
+ this.model.removeRow(selectedRow);\r
+ this.vSourceFiles.removeSourceFiles(selectedRow);\r
+ selectedRow = -1;\r
+ this.save();\r
+ }\r
+ }\r
+ }\r
+\r
/**\r
- Display a file open browser to let user select file\r
+ Clear all table rows\r
\r
**/\r
- private void selectFile() {\r
- JFileChooser fc = new JFileChooser(Workspace.getCurrentWorkspace());\r
+ private void clearAll() {\r
+ if (model != null) {\r
+ for (int index = model.getRowCount() - 1; index >= 0; index--) {\r
+ model.removeRow(index);\r
+ }\r
+ }\r
+ }\r
\r
- int result = fc.showOpenDialog(new JPanel());\r
- if (result == JFileChooser.APPROVE_OPTION) {\r
- this.jTextFieldFileName.setText(fc.getSelectedFile().getName());\r
+ /**\r
+ Read content of vector and put then into table\r
+ \r
+ **/\r
+ private void showTable() {\r
+ clearAll();\r
+\r
+ if (vSourceFiles.size() > 0) {\r
+ for (int index = 0; index < vSourceFiles.size(); index++) {\r
+ model.addRow(vSourceFiles.toStringVector(index));\r
+ }\r
+ }\r
+ this.jTable.repaint();\r
+ this.jTable.updateUI();\r
+ //this.jScrollPane.setViewportView(this.jTable);\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)\r
+ *\r
+ */\r
+ public void valueChanged(ListSelectionEvent arg0) {\r
+ if (arg0.getValueIsAdjusting()) {\r
+ return;\r
+ }\r
+ ListSelectionModel lsm = (ListSelectionModel) arg0.getSource();\r
+ if (lsm.isSelectionEmpty()) {\r
+ return;\r
+ } else {\r
+ selectedRow = lsm.getMinSelectionIndex();\r
+ }\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
+ *\r
+ */\r
+ public void mouseClicked(MouseEvent arg0) {\r
+ if (arg0.getClickCount() == 2) {\r
+ if (this.selectedRow < 0) {\r
+ return;\r
+ } else {\r
+ showEdit(selectedRow);\r
+ }\r
}\r
}\r
\r
int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
\r
- resizeComponentWidth(this.jTextFieldFileName, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldTagName, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldToolCode, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldToolChainFamily, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jTextFieldFeatureFlag, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(this.jScrollPaneArch, intCurrentWidth, intPreferredWidth);\r
-\r
- resizeComponentWidth(this.jComboBoxList, intCurrentWidth, intPreferredWidth);\r
- resizeComponent(this.jScrollPaneList, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
- relocateComponentX(this.jButtonAdd, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON);\r
- relocateComponentX(this.jButtonOpenFile, intCurrentWidth, intPreferredWidth,\r
- DataType.SPACE_TO_RIGHT_FOR_GENERATE_BUTTON);\r
- relocateComponentX(this.jButtonRemove, intCurrentWidth, intPreferredWidth,\r
- DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON);\r
- relocateComponentX(this.jButtonUpdate, intCurrentWidth, intPreferredWidth,\r
- DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON);\r
+ resizeComponent(this.jScrollPaneTable, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
+ relocateComponent(this.jButtonAdd, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_ADD_BUTTON);\r
+ relocateComponent(this.jButtonRemove, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_REMOVE_BUTTON);\r
+ relocateComponent(this.jButtonUpdate, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_UPDATE_BUTTON);\r
}\r
}\r
**/\r
package org.tianocore.frameworkwizard.module.ui;\r
\r
+import java.awt.Dimension;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ComponentEvent;\r
-import java.awt.event.ItemEvent;\r
+import java.awt.event.MouseEvent;\r
import java.util.Vector;\r
\r
import javax.swing.JButton;\r
-import javax.swing.JComboBox;\r
-import javax.swing.JLabel;\r
import javax.swing.JPanel;\r
import javax.swing.JScrollPane;\r
-import javax.swing.JTextArea;\r
-import javax.swing.JTextField;\r
+import javax.swing.JTable;\r
+import javax.swing.ListSelectionModel;\r
+import javax.swing.event.ListSelectionEvent;\r
\r
import org.tianocore.SystemTableUsage;\r
import org.tianocore.SystemTablesDocument;\r
import org.tianocore.SystemTablesDocument.SystemTables;\r
import org.tianocore.SystemTablesDocument.SystemTables.SystemTableCNames;\r
import org.tianocore.frameworkwizard.common.DataType;\r
-import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.IDefaultTableModel;\r
import org.tianocore.frameworkwizard.common.Log;\r
import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
-import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
-import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
import org.tianocore.frameworkwizard.module.Identifications.SystemTables.SystemTablesIdentification;\r
import org.tianocore.frameworkwizard.module.Identifications.SystemTables.SystemTablesVector;\r
+import org.tianocore.frameworkwizard.module.ui.dialog.SystemTablesDlg;\r
\r
/**\r
The class is used to create, update SystemTable of MSA/MBD file\r
//\r
private JPanel jContentPane = null;\r
\r
- private JLabel jLabelEntry = null;\r
-\r
- private JTextField jTextFieldGuidC_Name = null;\r
-\r
- private JLabel jLabelUsage = null;\r
-\r
- private JComboBox jComboBoxUsage = null;\r
-\r
- private StarLabel jStarLabel1 = null;\r
- \r
- private StarLabel jStarLabel2 = null;\r
-\r
- private JLabel jLabelFeatureFlag = null;\r
-\r
- private JTextField jTextFieldFeatureFlag = null;\r
-\r
- private JLabel jLabelArch = null;\r
-\r
- private JTextArea jTextAreaList = null;\r
-\r
- private JComboBox jComboBoxList = null;\r
-\r
private JButton jButtonAdd = null;\r
\r
private JButton jButtonRemove = null;\r
\r
private JScrollPane jScrollPane = null;\r
\r
- private JScrollPane jScrollPaneList = null;\r
- \r
- private ICheckBoxList iCheckBoxListArch = null;\r
+ private JScrollPane jScrollPaneTable = null;\r
\r
- private JScrollPane jScrollPaneArch = null;\r
- \r
- private JLabel jLabelHelpText = null;\r
-\r
- private JTextField jTextFieldHelpText = null;\r
+ private JTable jTable = null;\r
\r
//\r
// Not used by UI\r
//\r
- private int intSelectedItemId = 0;\r
-\r
private OpeningModuleType omt = null;\r
\r
private ModuleSurfaceArea msa = null;\r
\r
private SystemTablesVector vid = new SystemTablesVector();\r
\r
- private EnumerationData ed = new EnumerationData();\r
-\r
- /**\r
- This method initializes jTextFieldEntry \r
- \r
- @return javax.swing.JTextField jTextFieldEntry\r
- \r
- **/\r
- private JTextField getJTextFieldEntry() {\r
- if (jTextFieldGuidC_Name == null) {\r
- jTextFieldGuidC_Name = new JTextField();\r
- jTextFieldGuidC_Name.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
- jTextFieldGuidC_Name.setPreferredSize(new java.awt.Dimension(320,20));\r
- jTextFieldGuidC_Name.setToolTipText("Enter the C Name of the System Table");\r
- }\r
- return jTextFieldGuidC_Name;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxUsage \r
- \r
- @return javax.swing.JComboBox jComboBoxUsage\r
- \r
- **/\r
- private JComboBox getJComboBoxUsage() {\r
- if (jComboBoxUsage == null) {\r
- jComboBoxUsage = new JComboBox();\r
- jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
- jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320,20));\r
- }\r
- return jComboBoxUsage;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldFeatureFlag \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldFeatureFlag() {\r
- if (jTextFieldFeatureFlag == null) {\r
- jTextFieldFeatureFlag = new JTextField();\r
- jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
- jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320,20));\r
- }\r
- return jTextFieldFeatureFlag;\r
- }\r
+ private IDefaultTableModel model = null;\r
\r
- /**\r
- This method initializes jComboBoxFileList \r
- \r
- @return javax.swing.JComboBox jComboBoxFileList\r
- \r
- **/\r
- private JComboBox getJComboBoxList() {\r
- if (jComboBoxList == null) {\r
- jComboBoxList = new JComboBox();\r
- jComboBoxList.setBounds(new java.awt.Rectangle(15, 195, 210, 20));\r
- jComboBoxList.addItemListener(this);\r
- jComboBoxList.addActionListener(this);\r
- jComboBoxList.setPreferredSize(new java.awt.Dimension(210, 20));\r
- }\r
- return jComboBoxList;\r
- }\r
+ private int selectedRow = -1;\r
\r
/**\r
This method initializes jButtonAdd \r
jButtonUpdate = new JButton();\r
jButtonUpdate.setBounds(new java.awt.Rectangle(315, 195, 80, 20));\r
jButtonUpdate.setPreferredSize(new java.awt.Dimension(80, 20));\r
- jButtonUpdate.setText("Update");\r
+ jButtonUpdate.setText("Edit");\r
jButtonUpdate.addActionListener(this);\r
}\r
return jButtonUpdate;\r
}\r
\r
- /**\r
- * This method initializes jScrollPaneFileList \r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneList() {\r
- if (jScrollPaneList == null) {\r
- jScrollPaneList = new JScrollPane();\r
- jScrollPaneList.setBounds(new java.awt.Rectangle(15, 220, 465, 240));\r
- jScrollPaneList.setViewportView(getJTextAreaList());\r
- jScrollPaneList.setPreferredSize(new java.awt.Dimension(465, 240));\r
- }\r
- return jScrollPaneList;\r
- }\r
-\r
/**\r
This method initializes jScrollPane \r
\r
}\r
\r
/**\r
- * This method initializes jTextAreaFileList \r
- * \r
- * @return javax.swing.JTextArea \r
- */\r
- private JTextArea getJTextAreaList() {\r
- if (jTextAreaList == null) {\r
- jTextAreaList = new JTextArea();\r
- jTextAreaList.setEditable(false);\r
-\r
+ This method initializes jScrollPaneTable \r
+ \r
+ @return javax.swing.JScrollPane \r
+ **/\r
+ private JScrollPane getJScrollPaneTable() {\r
+ if (jScrollPaneTable == null) {\r
+ jScrollPaneTable = new JScrollPane();\r
+ jScrollPaneTable.setBounds(new java.awt.Rectangle(15, 10, 470, 420));\r
+ jScrollPaneTable.setPreferredSize(new Dimension(470, 420));\r
+ jScrollPaneTable.setViewportView(getJTable());\r
}\r
- return jTextAreaList;\r
+ return jScrollPaneTable;\r
}\r
- \r
+\r
/**\r
- This method initializes iCheckBoxListArch \r
-\r
- @return ICheckBoxList \r
- **/\r
- private ICheckBoxList getICheckBoxListSupportedArchitectures() {\r
- if (iCheckBoxListArch == null) {\r
- iCheckBoxListArch = new ICheckBoxList();\r
- iCheckBoxListArch.addFocusListener(this);\r
- iCheckBoxListArch.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
- }\r
- return iCheckBoxListArch;\r
- }\r
-\r
- /**\r
- This method initializes jScrollPaneArch \r
-\r
- @return javax.swing.JScrollPane \r
-\r
- **/\r
- private JScrollPane getJScrollPaneArch() {\r
- if (jScrollPaneArch == null) {\r
- jScrollPaneArch = new JScrollPane();\r
- jScrollPaneArch.setBounds(new java.awt.Rectangle(160, 110, 320, 80));\r
- jScrollPaneArch.setPreferredSize(new java.awt.Dimension(320, 80));\r
- jScrollPaneArch.setViewportView(getICheckBoxListSupportedArchitectures());\r
- }\r
- return jScrollPaneArch;\r
- }\r
- \r
- /**\r
- This method initializes jTextFieldHelpText \r
- \r
- @return javax.swing.JTextField \r
+ This method initializes jTable \r
\r
+ @return javax.swing.JTable \r
**/\r
- private JTextField getJTextFieldHelpText() {\r
- if (jTextFieldHelpText == null) {\r
- jTextFieldHelpText = new JTextField();\r
- jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
- jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ private JTable getJTable() {\r
+ if (jTable == null) {\r
+ jTable = new JTable();\r
+ model = new IDefaultTableModel();\r
+ jTable = new JTable(model);\r
+ jTable.setRowHeight(20);\r
+\r
+ model.addColumn("Guid C_Name");\r
+ model.addColumn("Usage");\r
+\r
+ jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTable.getSelectionModel().addListSelectionListener(this);\r
+ jTable.getModel().addTableModelListener(this);\r
+ jTable.addMouseListener(this);\r
}\r
- return jTextFieldHelpText;\r
+ return jTable;\r
}\r
\r
public static void main(String[] args) {\r
\r
}\r
- \r
+\r
/**\r
- This method initializes this\r
- \r
- **/\r
- private void init() {\r
- this.setSize(500, 515);\r
- this.setContentPane(getJScrollPane());\r
- this.setTitle("System Tables");\r
- initFrame();\r
- this.setViewMode(false);\r
- }\r
-\r
- /**\r
- This method initializes this\r
- Fill values to all fields if these values are not empty\r
- \r
- @param inPackageDependencies\r
-\r
- **/\r
- private void init(SystemTables inSystemTables) {\r
- init();\r
- this.systemTables = inSystemTables;\r
-\r
- if (this.systemTables != null) {\r
- if (this.systemTables.getSystemTableCNamesList().size() > 0) {\r
- for (int index = 0; index < this.systemTables.getSystemTableCNamesList().size(); index++) {\r
- String arg0 = systemTables.getSystemTableCNamesList().get(index).getSystemTableCName();\r
- String arg1 = null;\r
- if (systemTables.getSystemTableCNamesList().get(index).getUsage() != null) {\r
- arg1 = systemTables.getSystemTableCNamesList().get(index).getUsage().toString(); \r
- }\r
- \r
- String arg2 = systemTables.getSystemTableCNamesList().get(index).getFeatureFlag();\r
- Vector<String> arg3 = Tools.convertListToVector(systemTables.getSystemTableCNamesList().get(index).getSupArchList());\r
- String arg4 = systemTables.getSystemTableCNamesList().get(index).getHelpText();\r
- \r
- id = new SystemTablesIdentification(arg0, arg1, arg2, arg3, arg4);\r
- vid.addSystemTables(id);\r
- }\r
- }\r
- }\r
- //\r
- // Update the list\r
- //\r
- Tools.generateComboBoxByVector(jComboBoxList, vid.getSystemTablesName());\r
- reloadListArea();\r
- }\r
+ This method initializes this\r
+ \r
+ **/\r
+ private void init() {\r
+ this.setSize(500, 515);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("System Tables");\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ Fill values to all fields if these values are not empty\r
+ \r
+ @param inSystemTables\r
+\r
+ **/\r
+ private void init(SystemTables inSystemTables) {\r
+ init();\r
+ this.systemTables = inSystemTables;\r
+\r
+ if (this.systemTables != null) {\r
+ if (this.systemTables.getSystemTableCNamesList().size() > 0) {\r
+ for (int index = 0; index < this.systemTables.getSystemTableCNamesList().size(); index++) {\r
+ String arg0 = systemTables.getSystemTableCNamesList().get(index).getSystemTableCName();\r
+ String arg1 = null;\r
+ if (systemTables.getSystemTableCNamesList().get(index).getUsage() != null) {\r
+ arg1 = systemTables.getSystemTableCNamesList().get(index).getUsage().toString();\r
+ }\r
+\r
+ String arg2 = systemTables.getSystemTableCNamesList().get(index).getFeatureFlag();\r
+ Vector<String> arg3 = Tools.convertListToVector(systemTables.getSystemTableCNamesList().get(index)\r
+ .getSupArchList());\r
+ String arg4 = systemTables.getSystemTableCNamesList().get(index).getHelpText();\r
+\r
+ id = new SystemTablesIdentification(arg0, arg1, arg2, arg3, arg4);\r
+ vid.addSystemTables(id);\r
+ }\r
+ }\r
+ }\r
+ showTable();\r
+ }\r
\r
/**\r
This is the default constructor\r
this.setVisible(true);\r
}\r
\r
- /**\r
- Disable all components when the mode is view\r
- \r
- @param isView true - The view mode; false - The non-view mode\r
- \r
- **/\r
- public void setViewMode(boolean isView) {\r
- if (isView) {\r
- this.jTextFieldGuidC_Name.setEnabled(!isView);\r
- this.jComboBoxUsage.setEnabled(!isView);\r
- }\r
- }\r
-\r
/**\r
This method initializes jContentPane\r
\r
**/\r
private JPanel getJContentPane() {\r
if (jContentPane == null) {\r
- jLabelArch = new JLabel();\r
- jLabelArch.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
- jLabelArch.setText("Arch");\r
- jLabelFeatureFlag = new JLabel();\r
- jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
- jLabelFeatureFlag.setText("Feature Flag");\r
- jLabelUsage = new JLabel();\r
- jLabelUsage.setText("Usage");\r
- jLabelUsage.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
- jLabelEntry = new JLabel();\r
- jLabelEntry.setText("Guid C_Name");\r
- jLabelEntry.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
- jLabelHelpText = new JLabel();\r
- jLabelHelpText.setBounds(new java.awt.Rectangle(14, 60, 140, 20));\r
- jLabelHelpText.setText("Help Text");\r
- \r
+\r
jContentPane = new JPanel();\r
jContentPane.setLayout(null);\r
- jContentPane.setPreferredSize(new java.awt.Dimension(490, 475));\r
- \r
- jContentPane.add(jLabelEntry, null);\r
- jContentPane.add(getJTextFieldEntry(), null);\r
- jContentPane.add(jLabelFeatureFlag, null);\r
- jContentPane.add(getJTextFieldFeatureFlag(), null);\r
- jContentPane.add(jLabelArch, null);\r
- jContentPane.add(jLabelUsage, null);\r
- jContentPane.add(getJComboBoxUsage(), null);\r
- jStarLabel1 = new StarLabel();\r
- jStarLabel1.setBounds(new java.awt.Rectangle(0, 10, 10, 20));\r
- jStarLabel2 = new StarLabel();\r
- jStarLabel2.setBounds(new java.awt.Rectangle(0, 35, 10, 20));\r
-\r
- jContentPane.add(jStarLabel1, null);\r
- jContentPane.add(jStarLabel2, null);\r
- \r
- jContentPane.add(getJComboBoxList(), null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 490));\r
+\r
jContentPane.add(getJButtonAdd(), null);\r
jContentPane.add(getJButtonRemove(), null);\r
jContentPane.add(getJButtonUpdate(), null);\r
- jContentPane.add(getJScrollPaneList(), null);\r
- jContentPane.add(getJScrollPaneArch(), null);\r
- jContentPane.add(jLabelHelpText, null);\r
- jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(getJScrollPaneTable(), null);\r
}\r
return jContentPane;\r
}\r
\r
+ private void showEdit(int index) {\r
+ SystemTablesDlg dlg = new SystemTablesDlg(vid.getSystemTables(index), new IFrame());\r
+ int result = dlg.showDialog();\r
+ if (result == DataType.RETURN_TYPE_OK) {\r
+ if (index == -1) {\r
+ this.vid.addSystemTables(dlg.getId());\r
+ } else {\r
+ this.vid.setSystemTables(dlg.getId(), index);\r
+ }\r
+ this.showTable();\r
+ this.save();\r
+ dlg.dispose();\r
+ }\r
+ if (result == DataType.RETURN_TYPE_CANCEL) {\r
+ dlg.dispose();\r
+ }\r
+ }\r
+\r
/**\r
- This method initializes Usage type\r
+ Clear all table rows\r
\r
**/\r
- private void initFrame() {\r
- Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVSystemTableUsage());\r
- \r
- this.iCheckBoxListArch.setAllItems(ed.getVSupportedArchitectures());\r
+ private void clearAll() {\r
+ if (model != null) {\r
+ for (int index = model.getRowCount() - 1; index >= 0; index--) {\r
+ model.removeRow(index);\r
+ }\r
+ }\r
+ }\r
+\r
+ /**\r
+ Read content of vector and put then into table\r
+ \r
+ **/\r
+ private void showTable() {\r
+ clearAll();\r
+\r
+ if (vid.size() > 0) {\r
+ for (int index = 0; index < vid.size(); index++) {\r
+ model.addRow(vid.toStringVector(index));\r
+ }\r
+ }\r
+ this.jTable.repaint();\r
+ this.jTable.updateUI();\r
}\r
\r
/* (non-Javadoc)\r
*/\r
public void actionPerformed(ActionEvent arg0) {\r
if (arg0.getSource() == jButtonAdd) {\r
- if (!checkAdd()) {\r
- return;\r
- }\r
- addToList();\r
- }\r
- if (arg0.getSource() == jButtonRemove) {\r
- removeFromList();\r
+ showEdit(-1);\r
}\r
if (arg0.getSource() == jButtonUpdate) {\r
- if (!checkAdd()) {\r
+ if (this.selectedRow < 0) {\r
+ Log.err("Please select one record first.");\r
return;\r
}\r
- updateForList();\r
+ showEdit(selectedRow);\r
}\r
- }\r
\r
- /**\r
- Data validation for all fields\r
- \r
- @retval true - All datas are valid\r
- @retval false - At least one data is invalid\r
- \r
- **/\r
- public boolean checkAdd() {\r
- //\r
- // Check if all fields have correct data types \r
- //\r
-\r
- //\r
- // Check GuidC_Name \r
- //\r
- if (isEmpty(this.jTextFieldGuidC_Name.getText())) {\r
- Log.err("Guid C_Name couldn't be empty");\r
- return false;\r
- }\r
- \r
- if (!isEmpty(this.jTextFieldGuidC_Name.getText())) {\r
- if (!DataValidation.isC_NameType(this.jTextFieldGuidC_Name.getText())) {\r
- Log.err("Incorrect data type for Guid C_Name");\r
- return false;\r
+ if (arg0.getSource() == jButtonRemove) {\r
+ if (jTable.isEditing()) {\r
+ jTable.getCellEditor().stopCellEditing();\r
}\r
- }\r
- \r
- //\r
- // Check FeatureFlag\r
- //\r
- if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
- if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
- Log.err("Incorrect data type for Feature Flag");\r
- return false;\r
+ if (selectedRow > -1) {\r
+ this.model.removeRow(selectedRow);\r
+ this.vid.removeSystemTables(selectedRow);\r
+ selectedRow = -1;\r
+ this.save();\r
}\r
}\r
- \r
- return true;\r
}\r
\r
/**\r
if (!isEmpty(vid.getSystemTables(index).getFeatureFlag())) {\r
p.setFeatureFlag(vid.getSystemTables(index).getFeatureFlag());\r
}\r
- if (vid.getSystemTables(index).getSupArchList() != null && vid.getSystemTables(index).getSupArchList().size() > 0) {\r
+ if (vid.getSystemTables(index).getSupArchList() != null\r
+ && vid.getSystemTables(index).getSupArchList().size() > 0) {\r
p.setSupArchList(vid.getSystemTables(index).getSupArchList());\r
}\r
if (!isEmpty(vid.getSystemTables(index).getHelp())) {\r
Log.err("Update System Tables", e.getMessage());\r
}\r
}\r
- \r
+\r
+ /* (non-Javadoc)\r
+ * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)\r
+ *\r
+ */\r
+ public void valueChanged(ListSelectionEvent arg0) {\r
+ if (arg0.getValueIsAdjusting()) {\r
+ return;\r
+ }\r
+ ListSelectionModel lsm = (ListSelectionModel) arg0.getSource();\r
+ if (lsm.isSelectionEmpty()) {\r
+ return;\r
+ } else {\r
+ selectedRow = lsm.getMinSelectionIndex();\r
+ }\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
+ *\r
+ */\r
+ public void mouseClicked(MouseEvent arg0) {\r
+ if (arg0.getClickCount() == 2) {\r
+ if (this.selectedRow < 0) {\r
+ return;\r
+ } else {\r
+ showEdit(selectedRow);\r
+ }\r
+ }\r
+ }\r
+\r
/* (non-Javadoc)\r
* @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
* \r
int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
\r
- resizeComponentWidth(jTextFieldGuidC_Name, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jComboBoxUsage, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldHelpText, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldFeatureFlag, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jScrollPaneArch, intCurrentWidth, intPreferredWidth);\r
- \r
- resizeComponentWidth(jComboBoxList, intCurrentWidth, intPreferredWidth);\r
- resizeComponent(jScrollPaneList, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
- \r
- relocateComponentX(jButtonAdd, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON);\r
- relocateComponentX(jButtonRemove, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON);\r
- relocateComponentX(jButtonUpdate, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON);\r
- }\r
- \r
- private SystemTablesIdentification getCurrentSystemTables() {\r
- String arg0 = this.jTextFieldGuidC_Name.getText();\r
- String arg1 = this.jComboBoxUsage.getSelectedItem().toString();\r
-\r
- String arg2 = this.jTextFieldFeatureFlag.getText();\r
- Vector<String> arg3 = this.iCheckBoxListArch.getAllCheckedItemsString();\r
- String arg4 = this.jTextFieldHelpText.getText();\r
- \r
- id = new SystemTablesIdentification(arg0, arg1, arg2, arg3, arg4);\r
- return id;\r
+ resizeComponent(this.jScrollPaneTable, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
+ relocateComponent(this.jButtonAdd, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_ADD_BUTTON);\r
+ relocateComponent(this.jButtonRemove, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_REMOVE_BUTTON);\r
+ relocateComponent(this.jButtonUpdate, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_UPDATE_BUTTON);\r
}\r
- \r
- /**\r
- Add current item to Vector\r
- \r
- **/\r
- private void addToList() {\r
- intSelectedItemId = vid.size();\r
-\r
- vid.addSystemTables(getCurrentSystemTables());\r
-\r
- jComboBoxList.addItem(id.getName());\r
- jComboBoxList.setSelectedItem(id.getName());\r
-\r
- //\r
- // Reset select item index\r
- //\r
- intSelectedItemId = vid.size();\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Remove current item from Vector\r
- \r
- **/\r
- private void removeFromList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
- return;\r
- }\r
-\r
- int intTempIndex = intSelectedItemId;\r
-\r
- jComboBoxList.removeItemAt(intSelectedItemId);\r
-\r
- vid.removeSystemTables(intTempIndex);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Update current item of Vector\r
- \r
- **/\r
- private void updateForList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
- return;\r
- }\r
-\r
- //\r
- // Backup selected item index\r
- //\r
- int intTempIndex = intSelectedItemId;\r
-\r
- vid.updateSystemTables(getCurrentSystemTables(), intTempIndex);\r
-\r
- jComboBoxList.removeAllItems();\r
- for (int index = 0; index < vid.size(); index++) {\r
- jComboBoxList.addItem(vid.getSystemTables(index).getName());\r
- }\r
-\r
- //\r
- // Restore selected item index\r
- //\r
- intSelectedItemId = intTempIndex;\r
-\r
- //\r
- // Reset select item index\r
- //\r
- jComboBoxList.setSelectedIndex(intSelectedItemId);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Refresh all fields' values of selected item of Vector\r
- \r
- **/\r
- private void reloadFromList() {\r
- if (vid.size() > 0) {\r
- //\r
- // Get selected item index\r
- //\r
- intSelectedItemId = jComboBoxList.getSelectedIndex();\r
-\r
- this.jTextFieldGuidC_Name.setText(vid.getSystemTables(intSelectedItemId).getName());\r
- this.jComboBoxUsage.setSelectedItem(vid.getSystemTables(intSelectedItemId).getUsage());\r
- this.jTextFieldHelpText.setText(vid.getSystemTables(intSelectedItemId).getHelp());\r
-\r
- jTextFieldFeatureFlag.setText(vid.getSystemTables(intSelectedItemId).getFeatureFlag());\r
- iCheckBoxListArch.setAllItemsUnchecked();\r
- iCheckBoxListArch.initCheckedItem(true, vid.getSystemTables(intSelectedItemId).getSupArchList());\r
-\r
- } else {\r
- }\r
-\r
- reloadListArea();\r
- }\r
-\r
- /**\r
- Update list area pane via the elements of Vector\r
- \r
- **/\r
- private void reloadListArea() {\r
- String strListItem = "";\r
- for (int index = 0; index < vid.size(); index++) {\r
- strListItem = strListItem + vid.getSystemTables(index).getName() + DataType.UNIX_LINE_SEPARATOR;\r
- }\r
- this.jTextAreaList.setText(strListItem);\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
- *\r
- * Reflesh the frame when selected item changed\r
- * \r
- */\r
- public void itemStateChanged(ItemEvent arg0) {\r
- if (arg0.getSource() == this.jComboBoxList && arg0.getStateChange() == ItemEvent.SELECTED) {\r
- reloadFromList();\r
- }\r
- }\r
}\r
\r
package org.tianocore.frameworkwizard.module.ui;\r
\r
+import java.awt.Dimension;\r
import java.awt.event.ActionEvent;\r
import java.awt.event.ComponentEvent;\r
-import java.awt.event.ItemEvent;\r
+import java.awt.event.MouseEvent;\r
import java.util.Vector;\r
\r
import javax.swing.JButton;\r
-import javax.swing.JComboBox;\r
-import javax.swing.JLabel;\r
import javax.swing.JPanel;\r
import javax.swing.JScrollPane;\r
-import javax.swing.JTextArea;\r
-import javax.swing.JTextField;\r
+import javax.swing.JTable;\r
+import javax.swing.ListSelectionModel;\r
+import javax.swing.event.ListSelectionEvent;\r
\r
import org.tianocore.VariableUsage;\r
import org.tianocore.VariablesDocument;\r
import org.tianocore.VariablesDocument.Variables;\r
import org.tianocore.VariablesDocument.Variables.Variable;\r
import org.tianocore.frameworkwizard.common.DataType;\r
-import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.IDefaultTableModel;\r
import org.tianocore.frameworkwizard.common.Log;\r
import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
-import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
-import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
import org.tianocore.frameworkwizard.module.Identifications.Variables.VariablesIdentification;\r
import org.tianocore.frameworkwizard.module.Identifications.Variables.VariablesVector;\r
+import org.tianocore.frameworkwizard.module.ui.dialog.VariablesDlg;\r
\r
/**\r
The class is used to create, update Variable of MSA/MBD file\r
//\r
private JPanel jContentPane = null;\r
\r
- private JLabel jLabelVariableName = null;\r
-\r
- private JTextField jTextFieldVariableName = null;\r
-\r
- private JLabel jLabelUsage = null;\r
-\r
- private JComboBox jComboBoxUsage = null;\r
-\r
- private StarLabel jStarLabel1 = null;\r
-\r
- private StarLabel jStarLabel2 = null;\r
-\r
- private JTextArea jTextAreaList = null;\r
-\r
- private JComboBox jComboBoxList = null;\r
-\r
private JButton jButtonAdd = null;\r
\r
private JButton jButtonRemove = null;\r
\r
private JScrollPane jScrollPane = null;\r
\r
- private JScrollPane jScrollPaneList = null;\r
-\r
- private JLabel jLabelGuidCName = null;\r
+ private JScrollPane jScrollPaneTable = null;\r
\r
- private JTextField jTextFieldGuidC_Name = null;\r
-\r
- private JTextField jTextFieldFeatureFlag = null;\r
-\r
- private JLabel jLabelFeatureFlag = null;\r
-\r
- private JLabel jLabelArch = null;\r
-\r
- private ICheckBoxList iCheckBoxListArch = null;\r
-\r
- private JScrollPane jScrollPaneArch = null;\r
- \r
- private JLabel jLabelHelpText = null;\r
-\r
- private JTextField jTextFieldHelpText = null;\r
+ private JTable jTable = null;\r
\r
//\r
// Not used by UI\r
//\r
- private int intSelectedItemId = 0;\r
-\r
private OpeningModuleType omt = null;\r
\r
private ModuleSurfaceArea msa = null;\r
\r
private VariablesVector vid = new VariablesVector();\r
\r
- private EnumerationData ed = new EnumerationData();\r
+ private IDefaultTableModel model = null;\r
\r
- /**\r
- This method initializes jTextFieldString \r
- \r
- @return javax.swing.JTextField jTextFieldString\r
- \r
- **/\r
- private JTextField getJTextFieldString() {\r
- if (jTextFieldVariableName == null) {\r
- jTextFieldVariableName = new JTextField();\r
- jTextFieldVariableName.setSize(new java.awt.Dimension(320, 20));\r
- jTextFieldVariableName.setPreferredSize(new java.awt.Dimension(320, 20));\r
- jTextFieldVariableName.setLocation(new java.awt.Point(160, 10));\r
- jTextFieldVariableName.setToolTipText("Enter a Hex Word Array, you must provide leading Zeros. 0x000a, 0x0010, ¡");\r
- }\r
- return jTextFieldVariableName;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxUsage \r
- \r
- @return javax.swing.JComboBox jComboBoxUsage\r
- \r
- **/\r
- private JComboBox getJComboBoxUsage() {\r
- if (jComboBoxUsage == null) {\r
- jComboBoxUsage = new JComboBox();\r
- jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
- jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jComboBoxUsage;\r
- }\r
-\r
- /**\r
- This method initializes jComboBoxFileList \r
- \r
- @return javax.swing.JComboBox jComboBoxFileList\r
- \r
- **/\r
- private JComboBox getJComboBoxList() {\r
- if (jComboBoxList == null) {\r
- jComboBoxList = new JComboBox();\r
- jComboBoxList.setBounds(new java.awt.Rectangle(15, 220, 210, 20));\r
- jComboBoxList.addItemListener(this);\r
- jComboBoxList.addActionListener(this);\r
- jComboBoxList.setPreferredSize(new java.awt.Dimension(210, 20));\r
- }\r
- return jComboBoxList;\r
- }\r
+ private int selectedRow = -1;\r
\r
/**\r
This method initializes jButtonAdd \r
jButtonUpdate = new JButton();\r
jButtonUpdate.setBounds(new java.awt.Rectangle(315, 220, 80, 20));\r
jButtonUpdate.setPreferredSize(new java.awt.Dimension(80, 20));\r
- jButtonUpdate.setText("Update");\r
+ jButtonUpdate.setText("Edit");\r
jButtonUpdate.addActionListener(this);\r
}\r
return jButtonUpdate;\r
}\r
\r
- /**\r
- * This method initializes jScrollPaneFileList \r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPaneList() {\r
- if (jScrollPaneList == null) {\r
- jScrollPaneList = new JScrollPane();\r
- jScrollPaneList.setBounds(new java.awt.Rectangle(15, 245, 465, 240));\r
- jScrollPaneList.setViewportView(getJTextAreaList());\r
- jScrollPaneList.setPreferredSize(new java.awt.Dimension(465, 240));\r
- }\r
- return jScrollPaneList;\r
- }\r
-\r
/**\r
This method initializes jScrollPane \r
\r
}\r
\r
/**\r
- * This method initializes jTextAreaFileList \r
- * \r
- * @return javax.swing.JTextArea \r
- */\r
- private JTextArea getJTextAreaList() {\r
- if (jTextAreaList == null) {\r
- jTextAreaList = new JTextArea();\r
- jTextAreaList.setEditable(false);\r
-\r
- }\r
- return jTextAreaList;\r
- }\r
-\r
- /**\r
- * This method initializes jTextFieldGuidCName \r
- * \r
- * @return javax.swing.JTextField \r
- */\r
- private JTextField getJTextFieldGuidC_Name() {\r
- if (jTextFieldGuidC_Name == null) {\r
- jTextFieldGuidC_Name = new JTextField();\r
- jTextFieldGuidC_Name.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
- jTextFieldGuidC_Name.setPreferredSize(new java.awt.Dimension(320, 20));\r
- jTextFieldGuidC_Name.setToolTipText("Enter the C Name for the Variable Guid");\r
+ This method initializes jScrollPaneTable \r
+ \r
+ @return javax.swing.JScrollPane \r
+ **/\r
+ private JScrollPane getJScrollPaneTable() {\r
+ if (jScrollPaneTable == null) {\r
+ jScrollPaneTable = new JScrollPane();\r
+ jScrollPaneTable.setBounds(new java.awt.Rectangle(15, 10, 470, 420));\r
+ jScrollPaneTable.setPreferredSize(new Dimension(470, 420));\r
+ jScrollPaneTable.setViewportView(getJTable());\r
}\r
- return jTextFieldGuidC_Name;\r
+ return jScrollPaneTable;\r
}\r
\r
/**\r
- This method initializes jTextFieldFeatureFlag \r
- \r
- @return javax.swing.JTextField jTextFieldFeatureFlag\r
+ This method initializes jTable \r
\r
+ @return javax.swing.JTable \r
**/\r
- private JTextField getJTextFieldFeatureFlag() {\r
- if (jTextFieldFeatureFlag == null) {\r
- jTextFieldFeatureFlag = new JTextField();\r
- jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
- jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ private JTable getJTable() {\r
+ if (jTable == null) {\r
+ jTable = new JTable();\r
+ model = new IDefaultTableModel();\r
+ jTable = new JTable(model);\r
+ jTable.setRowHeight(20);\r
+\r
+ model.addColumn("Name");\r
+ model.addColumn("Guid C_Name");\r
+ model.addColumn("Usage");\r
+\r
+ jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTable.getSelectionModel().addListSelectionListener(this);\r
+ jTable.getModel().addTableModelListener(this);\r
+ jTable.addMouseListener(this);\r
}\r
- return jTextFieldFeatureFlag;\r
+ return jTable;\r
}\r
\r
- /**\r
- This method initializes iCheckBoxListArch \r
+ public static void main(String[] args) {\r
\r
- @return ICheckBoxList \r
- **/\r
- private ICheckBoxList getICheckBoxListSupportedArchitectures() {\r
- if (iCheckBoxListArch == null) {\r
- iCheckBoxListArch = new ICheckBoxList();\r
- iCheckBoxListArch.addFocusListener(this);\r
- iCheckBoxListArch.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
- }\r
- return iCheckBoxListArch;\r
}\r
\r
/**\r
- This method initializes jScrollPaneArch \r
-\r
- @return javax.swing.JScrollPane \r
-\r
+ This method initializes this\r
+ \r
**/\r
- private JScrollPane getJScrollPaneArch() {\r
- if (jScrollPaneArch == null) {\r
- jScrollPaneArch = new JScrollPane();\r
- jScrollPaneArch.setBounds(new java.awt.Rectangle(160, 135, 320, 80));\r
- jScrollPaneArch.setPreferredSize(new java.awt.Dimension(320, 80));\r
- jScrollPaneArch.setViewportView(getICheckBoxListSupportedArchitectures());\r
- }\r
- return jScrollPaneArch;\r
+ private void init() {\r
+ this.setSize(500, 515);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("Variables");\r
}\r
- \r
+\r
/**\r
- This method initializes jTextFieldHelpText \r
- \r
- @return javax.swing.JTextField \r
- \r
- **/\r
- private JTextField getJTextFieldHelpText() {\r
- if (jTextFieldHelpText == null) {\r
- jTextFieldHelpText = new JTextField();\r
- jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
- jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
- }\r
- return jTextFieldHelpText;\r
- }\r
+ This method initializes this\r
+ Fill values to all fields if these values are not empty\r
+ \r
+ @param inPackageDependencies\r
\r
- public static void main(String[] args) {\r
+ **/\r
+ private void init(Variables inVariables) {\r
+ init();\r
+ this.variables = inVariables;\r
+\r
+ if (this.variables != null) {\r
+ if (this.variables.getVariableList().size() > 0) {\r
+ for (int index = 0; index < this.variables.getVariableList().size(); index++) {\r
+ String arg0 = variables.getVariableList().get(index).getVariableName();\r
+ String arg1 = variables.getVariableList().get(index).getGuidCName();\r
+ String arg2 = null;\r
+ if (variables.getVariableList().get(index).getUsage() != null) {\r
+ arg2 = variables.getVariableList().get(index).getUsage().toString();\r
+ }\r
\r
+ String arg3 = variables.getVariableList().get(index).getFeatureFlag();\r
+ Vector<String> arg4 = Tools.convertListToVector(variables.getVariableList().get(index)\r
+ .getSupArchList());\r
+ String arg5 = variables.getVariableList().get(index).getHelpText();\r
+ id = new VariablesIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
+ vid.addVariables(id);\r
+ }\r
+ }\r
+ }\r
+ showTable();\r
}\r
- \r
- /**\r
- This method initializes this\r
- \r
- **/\r
- private void init() {\r
- this.setSize(500, 515);\r
- this.setContentPane(getJScrollPane());\r
- this.setTitle("Variables");\r
- initFrame();\r
- this.setViewMode(false);\r
- }\r
-\r
- /**\r
- This method initializes this\r
- Fill values to all fields if these values are not empty\r
- \r
- @param inPackageDependencies\r
-\r
- **/\r
- private void init(Variables inVariables) {\r
- init();\r
- this.variables = inVariables;\r
-\r
- if (this.variables != null) {\r
- if (this.variables.getVariableList().size() > 0) {\r
- for (int index = 0; index < this.variables.getVariableList().size(); index++) {\r
- String arg0 = variables.getVariableList().get(index).getVariableName();\r
- String arg1 = variables.getVariableList().get(index).getGuidCName();\r
- String arg2 = null;\r
- if (variables.getVariableList().get(index).getUsage() != null) {\r
- arg2 = variables.getVariableList().get(index).getUsage().toString(); \r
- }\r
- \r
- String arg3 = variables.getVariableList().get(index).getFeatureFlag();\r
- Vector<String> arg4 = Tools.convertListToVector(variables.getVariableList().get(index).getSupArchList());\r
- String arg5 = variables.getVariableList().get(index).getHelpText();\r
- id = new VariablesIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
- vid.addVariables(id);\r
- }\r
- }\r
- }\r
- //\r
- // Update the list\r
- //\r
- Tools.generateComboBoxByVector(jComboBoxList, vid.getVariablesName());\r
- reloadListArea();\r
- }\r
\r
/**\r
This is the default constructor\r
this.setVisible(true);\r
}\r
\r
- /**\r
- Disable all components when the mode is view\r
- \r
- @param isView true - The view mode; false - The non-view mode\r
- \r
- **/\r
- public void setViewMode(boolean isView) {\r
- if (isView) {\r
- this.jTextFieldVariableName.setEnabled(!isView);\r
- this.jComboBoxUsage.setEnabled(!isView);\r
- }\r
- }\r
-\r
/**\r
This method initializes jContentPane\r
\r
**/\r
private JPanel getJContentPane() {\r
if (jContentPane == null) {\r
- jLabelGuidCName = new JLabel();\r
- jLabelGuidCName.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
- jLabelGuidCName.setText("Guid C_Name");\r
- jLabelUsage = new JLabel();\r
- jLabelUsage.setText("Usage");\r
- jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
- jLabelVariableName = new JLabel();\r
- jLabelVariableName.setText("Variable Name");\r
- jLabelVariableName.setLocation(new java.awt.Point(15, 10));\r
- jLabelVariableName.setSize(new java.awt.Dimension(140, 20));\r
- jLabelArch = new JLabel();\r
- jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 140, 20));\r
- jLabelArch.setText("Arch");\r
- jLabelFeatureFlag = new JLabel();\r
- jLabelFeatureFlag.setText("Feature Flag");\r
- jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
-\r
jContentPane = new JPanel();\r
jContentPane.setLayout(null);\r
- jContentPane.setPreferredSize(new java.awt.Dimension(490, 495));\r
-\r
- jContentPane.add(jLabelVariableName, null);\r
- jContentPane.add(jLabelGuidCName, null);\r
- jContentPane.add(getJTextFieldGuidC_Name(), null);\r
- jContentPane.add(getJTextFieldString(), null);\r
- jContentPane.add(jLabelUsage, null);\r
- jContentPane.add(getJComboBoxUsage(), null);\r
- jStarLabel1 = new StarLabel();\r
- jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
- jStarLabel2 = new StarLabel();\r
- jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
- jLabelHelpText = new JLabel();\r
- jLabelHelpText.setBounds(new java.awt.Rectangle(14, 85, 140, 20));\r
- jLabelHelpText.setText("Help Text");\r
-\r
- jContentPane.add(jStarLabel1, null);\r
- jContentPane.add(jStarLabel2, null);\r
-\r
- jContentPane.add(getJComboBoxList(), null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 490));\r
+\r
jContentPane.add(getJButtonAdd(), null);\r
jContentPane.add(getJButtonRemove(), null);\r
jContentPane.add(getJButtonUpdate(), null);\r
- jContentPane.add(getJScrollPaneList(), null);\r
-\r
- jContentPane.add(jLabelArch, null);\r
- jContentPane.add(jLabelFeatureFlag, null);\r
- jContentPane.add(getJTextFieldFeatureFlag(), null);\r
- jContentPane.add(getJScrollPaneArch(), null);\r
- jContentPane.add(jLabelHelpText, null);\r
- jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(getJScrollPaneTable(), null);\r
}\r
return jContentPane;\r
}\r
\r
- /* (non-Javadoc)\r
- * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
- *\r
- * Override actionPerformed to listen all actions\r
- * \r
- */\r
- public void actionPerformed(ActionEvent arg0) {\r
- if (arg0.getSource() == jButtonAdd) {\r
- if (!checkAdd()) {\r
- return;\r
+ private void showEdit(int index) {\r
+ VariablesDlg dlg = new VariablesDlg(vid.getVariables(index), new IFrame());\r
+ int result = dlg.showDialog();\r
+ if (result == DataType.RETURN_TYPE_OK) {\r
+ if (index == -1) {\r
+ this.vid.addVariables(dlg.getId());\r
+ } else {\r
+ this.vid.setVariables(dlg.getId(), index);\r
}\r
- addToList();\r
- }\r
- if (arg0.getSource() == jButtonRemove) {\r
- removeFromList();\r
+ this.showTable();\r
+ this.save();\r
+ dlg.dispose();\r
}\r
- if (arg0.getSource() == jButtonUpdate) {\r
- if (!checkAdd()) {\r
- return;\r
- }\r
- updateForList();\r
+ if (result == DataType.RETURN_TYPE_CANCEL) {\r
+ dlg.dispose();\r
}\r
}\r
\r
/**\r
- This method initializes Usage type\r
+ Clear all table rows\r
\r
**/\r
- private void initFrame() {\r
- Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVPpiUsage());\r
- this.iCheckBoxListArch.setAllItems(ed.getVSupportedArchitectures());\r
+ private void clearAll() {\r
+ if (model != null) {\r
+ for (int index = model.getRowCount() - 1; index >= 0; index--) {\r
+ model.removeRow(index);\r
+ }\r
+ }\r
}\r
\r
/**\r
- Data validation for all fields\r
- \r
- @retval true - All datas are valid\r
- @retval false - At least one data is invalid\r
+ Read content of vector and put then into table\r
\r
**/\r
- public boolean checkAdd() {\r
- //\r
- // Check if all fields have correct data types \r
- //\r
-\r
- //\r
- // Check VariableName \r
- //\r
- if (isEmpty(this.jTextFieldVariableName.getText())) {\r
- Log.err("Variable Name couldn't be empty");\r
- return false;\r
- }\r
- \r
- if (!isEmpty(this.jTextFieldVariableName.getText())) {\r
- if (!DataValidation.isHexWordArrayType(this.jTextFieldVariableName.getText())) {\r
- Log.err("Incorrect data type for Variable Name");\r
- return false;\r
+ private void showTable() {\r
+ clearAll();\r
+\r
+ if (vid.size() > 0) {\r
+ for (int index = 0; index < vid.size(); index++) {\r
+ model.addRow(vid.toStringVector(index));\r
}\r
}\r
- \r
- //\r
- // Check GuidC_Name \r
- //\r
- if (isEmpty(this.jTextFieldGuidC_Name.getText())) {\r
- Log.err("Guid C_Name couldn't be empty");\r
- return false;\r
+ this.jTable.repaint();\r
+ this.jTable.updateUI();\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ *\r
+ * Override actionPerformed to listen all actions\r
+ * \r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ if (arg0.getSource() == jButtonAdd) {\r
+ showEdit(-1);\r
}\r
- \r
- if (!isEmpty(this.jTextFieldGuidC_Name.getText())) {\r
- if (!DataValidation.isC_NameType(this.jTextFieldGuidC_Name.getText())) {\r
- Log.err("Incorrect data type for Guid C_Name");\r
- return false;\r
+ if (arg0.getSource() == jButtonUpdate) {\r
+ if (this.selectedRow < 0) {\r
+ Log.err("Please select one record first.");\r
+ return;\r
}\r
+ showEdit(selectedRow);\r
}\r
- \r
- //\r
- // Check FeatureFlag\r
- //\r
- if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
- if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
- Log.err("Incorrect data type for Feature Flag");\r
- return false;\r
+\r
+ if (arg0.getSource() == jButtonRemove) {\r
+ if (jTable.isEditing()) {\r
+ jTable.getCellEditor().stopCellEditing();\r
+ }\r
+ if (selectedRow > -1) {\r
+ this.model.removeRow(selectedRow);\r
+ this.vid.removeVariables(selectedRow);\r
+ selectedRow = -1;\r
+ this.save();\r
}\r
}\r
-\r
- return true;\r
}\r
\r
/**\r
if (!isEmpty(vid.getVariables(index).getFeatureFlag())) {\r
p.setFeatureFlag(vid.getVariables(index).getFeatureFlag());\r
}\r
- if (vid.getVariables(index).getSupArchList() != null && vid.getVariables(index).getSupArchList().size() > 0) {\r
+ if (vid.getVariables(index).getSupArchList() != null\r
+ && vid.getVariables(index).getSupArchList().size() > 0) {\r
p.setSupArchList(vid.getVariables(index).getSupArchList());\r
}\r
if (!isEmpty(vid.getVariables(index).getHelp())) {\r
}\r
}\r
\r
+ /* (non-Javadoc)\r
+ * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)\r
+ *\r
+ */\r
+ public void valueChanged(ListSelectionEvent arg0) {\r
+ if (arg0.getValueIsAdjusting()) {\r
+ return;\r
+ }\r
+ ListSelectionModel lsm = (ListSelectionModel) arg0.getSource();\r
+ if (lsm.isSelectionEmpty()) {\r
+ return;\r
+ } else {\r
+ selectedRow = lsm.getMinSelectionIndex();\r
+ }\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
+ *\r
+ */\r
+ public void mouseClicked(MouseEvent arg0) {\r
+ if (arg0.getClickCount() == 2) {\r
+ if (this.selectedRow < 0) {\r
+ return;\r
+ } else {\r
+ showEdit(selectedRow);\r
+ }\r
+ }\r
+ }\r
+\r
/* (non-Javadoc)\r
* @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
* \r
int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
\r
- resizeComponentWidth(jTextFieldVariableName, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldGuidC_Name, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jComboBoxUsage, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldHelpText, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jTextFieldFeatureFlag, intCurrentWidth, intPreferredWidth);\r
- resizeComponentWidth(jScrollPaneArch, intCurrentWidth, intPreferredWidth);\r
-\r
- resizeComponentWidth(jComboBoxList, intCurrentWidth, intPreferredWidth);\r
- resizeComponent(jScrollPaneList, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
- relocateComponentX(jButtonAdd, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON);\r
- relocateComponentX(jButtonRemove, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON);\r
- relocateComponentX(jButtonUpdate, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON);\r
+ resizeComponent(this.jScrollPaneTable, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight);\r
+ relocateComponent(this.jButtonAdd, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_ADD_BUTTON);\r
+ relocateComponent(this.jButtonRemove, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_REMOVE_BUTTON);\r
+ relocateComponent(this.jButtonUpdate, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight,\r
+ DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON, DataType.SPACE_TO_BOTTOM_FOR_UPDATE_BUTTON);\r
}\r
- \r
- private VariablesIdentification getCurrentVariables() {\r
- String arg0 = this.jTextFieldVariableName.getText();\r
- String arg1 = this.jTextFieldGuidC_Name.getText();\r
- String arg2 = this.jComboBoxUsage.getSelectedItem().toString();\r
-\r
- String arg3 = this.jTextFieldFeatureFlag.getText();\r
- Vector<String> arg4 = this.iCheckBoxListArch.getAllCheckedItemsString();\r
- String arg5 = this.jTextFieldHelpText.getText();\r
- \r
- id = new VariablesIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
- return id;\r
- }\r
- \r
- /**\r
- Add current item to Vector\r
- \r
- **/\r
- private void addToList() {\r
- intSelectedItemId = vid.size();\r
-\r
- vid.addVariables(getCurrentVariables());\r
-\r
- jComboBoxList.addItem(id.getName());\r
- jComboBoxList.setSelectedItem(id.getName());\r
-\r
- //\r
- // Reset select item index\r
- //\r
- intSelectedItemId = vid.size();\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Remove current item from Vector\r
- \r
- **/\r
- private void removeFromList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
- return;\r
- }\r
-\r
- int intTempIndex = intSelectedItemId;\r
-\r
- jComboBoxList.removeItemAt(intSelectedItemId);\r
-\r
- vid.removeVariables(intTempIndex);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Update current item of Vector\r
- \r
- **/\r
- private void updateForList() {\r
- //\r
- // Check if exist items\r
- //\r
- if (this.vid.size() < 1) {\r
- return;\r
- }\r
-\r
- //\r
- // Backup selected item index\r
- //\r
- int intTempIndex = intSelectedItemId;\r
-\r
- vid.updateVariables(getCurrentVariables(), intTempIndex);\r
-\r
- jComboBoxList.removeAllItems();\r
- for (int index = 0; index < vid.size(); index++) {\r
- jComboBoxList.addItem(vid.getVariables(index).getName());\r
- }\r
-\r
- //\r
- // Restore selected item index\r
- //\r
- intSelectedItemId = intTempIndex;\r
-\r
- //\r
- // Reset select item index\r
- //\r
- jComboBoxList.setSelectedIndex(intSelectedItemId);\r
-\r
- //\r
- // Reload all fields of selected item\r
- //\r
- reloadFromList();\r
-\r
- // \r
- // Save to memory\r
- //\r
- save();\r
- }\r
-\r
- /**\r
- Refresh all fields' values of selected item of Vector\r
- \r
- **/\r
- private void reloadFromList() {\r
- if (vid.size() > 0) {\r
- //\r
- // Get selected item index\r
- //\r
- intSelectedItemId = jComboBoxList.getSelectedIndex();\r
-\r
- this.jTextFieldVariableName.setText(vid.getVariables(intSelectedItemId).getName());\r
- this.jTextFieldGuidC_Name.setText(vid.getVariables(intSelectedItemId).getGuid());\r
- this.jComboBoxUsage.setSelectedItem(vid.getVariables(intSelectedItemId).getUsage());\r
- this.jTextFieldHelpText.setText(vid.getVariables(intSelectedItemId).getHelp());\r
-\r
- jTextFieldFeatureFlag.setText(vid.getVariables(intSelectedItemId).getFeatureFlag());\r
- iCheckBoxListArch.setAllItemsUnchecked();\r
- iCheckBoxListArch.initCheckedItem(true, vid.getVariables(intSelectedItemId).getSupArchList());\r
-\r
- } else {\r
- }\r
-\r
- reloadListArea();\r
- }\r
-\r
- /**\r
- Update list area pane via the elements of Vector\r
- \r
- **/\r
- private void reloadListArea() {\r
- String strListItem = "";\r
- for (int index = 0; index < vid.size(); index++) {\r
- strListItem = strListItem + vid.getVariables(index).getName() + DataType.UNIX_LINE_SEPARATOR;\r
- }\r
- this.jTextAreaList.setText(strListItem);\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
- *\r
- * Reflesh the frame when selected item changed\r
- * \r
- */\r
- public void itemStateChanged(ItemEvent arg0) {\r
- if (arg0.getSource() == this.jComboBoxList && arg0.getStateChange() == ItemEvent.SELECTED) {\r
- reloadFromList();\r
- }\r
- }\r
}\r
--- /dev/null
+/** @file\r
+ \r
+ The file is used to create, update BootModes of MSA/MBD file\r
+ \r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+ \r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ \r
+ **/\r
+\r
+package org.tianocore.frameworkwizard.module.ui.dialog;\r
+\r
+import java.awt.event.ActionEvent;\r
+import java.util.Vector;\r
+\r
+import javax.swing.JButton;\r
+import javax.swing.JComboBox;\r
+import javax.swing.JLabel;\r
+import javax.swing.JPanel;\r
+import javax.swing.JScrollPane;\r
+import javax.swing.JTextField;\r
+\r
+import org.tianocore.frameworkwizard.common.DataType;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.Log;\r
+import org.tianocore.frameworkwizard.common.Tools;\r
+import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
+import org.tianocore.frameworkwizard.common.ui.IDialog;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
+import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
+import org.tianocore.frameworkwizard.module.Identifications.BootModes.BootModesIdentification;\r
+\r
+/**\r
+ The class is used to create, update BootModes of MSA/MBD file\r
+ It extends IDialog\r
+ \r
+\r
+\r
+ **/\r
+public class BootModesDlg extends IDialog {\r
+\r
+ ///\r
+ /// Define class Serial Version UID\r
+ ///\r
+ private static final long serialVersionUID = -3888558623432442561L;\r
+\r
+ //\r
+ //Define class members\r
+ //\r
+ private JPanel jContentPane = null;\r
+\r
+ private JLabel jLabelBootModeName = null;\r
+\r
+ private JComboBox jComboBoxBootModeName = null;\r
+\r
+ private JLabel jLabelUsage = null;\r
+\r
+ private JComboBox jComboBoxUsage = null;\r
+\r
+ private StarLabel jStarLabel1 = null;\r
+\r
+ private StarLabel jStarLabel2 = null;\r
+\r
+ private JLabel jLabelFeatureFlag = null;\r
+\r
+ private JTextField jTextFieldFeatureFlag = null;\r
+\r
+ private JLabel jLabelArch = null;\r
+\r
+ private JScrollPane jScrollPane = null;\r
+\r
+ private JLabel jLabelHelpText = null;\r
+\r
+ private JTextField jTextFieldHelpText = null;\r
+\r
+ private ArchCheckBox jArchCheckBox = null;\r
+\r
+ private JButton jButtonOk = null;\r
+\r
+ private JButton jButtonCancel = null;\r
+\r
+ //\r
+ // Not used by UI\r
+ //\r
+ private BootModesIdentification id = null;\r
+\r
+ private EnumerationData ed = new EnumerationData();\r
+\r
+ /**\r
+ This method initializes jComboBoxBootModeName \r
+ \r
+ @return javax.swing.JComboBox jComboBoxBootModeName\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxBootModeName() {\r
+ if (jComboBoxBootModeName == null) {\r
+ jComboBoxBootModeName = new JComboBox();\r
+ jComboBoxBootModeName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
+ jComboBoxBootModeName.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jComboBoxBootModeName;\r
+ }\r
+\r
+ /**\r
+ This method initializes jComboBoxUsage \r
+ \r
+ @return javax.swing.JComboBox jComboBoxUsage\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxUsage() {\r
+ if (jComboBoxUsage == null) {\r
+ jComboBoxUsage = new JComboBox();\r
+ jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
+ jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jComboBoxUsage;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldFeatureFlag \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldFeatureFlag() {\r
+ if (jTextFieldFeatureFlag == null) {\r
+ jTextFieldFeatureFlag = new JTextField();\r
+ jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
+ jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldFeatureFlag;\r
+ }\r
+\r
+ /**\r
+ This method initializes jScrollPane \r
+ \r
+ @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPane() {\r
+ if (jScrollPane == null) {\r
+ jScrollPane = new JScrollPane();\r
+ jScrollPane.setViewportView(getJContentPane());\r
+ }\r
+ return jScrollPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldHelpText \r
+ \r
+ @return javax.swing.JTextField \r
+ \r
+ **/\r
+ private JTextField getJTextFieldHelpText() {\r
+ if (jTextFieldHelpText == null) {\r
+ jTextFieldHelpText = new JTextField();\r
+ jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
+ jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldHelpText;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonOk \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonOk() {\r
+ if (jButtonOk == null) {\r
+ jButtonOk = new JButton();\r
+ jButtonOk.setBounds(new java.awt.Rectangle(290, 140, 90, 20));\r
+ jButtonOk.setText("Ok");\r
+ jButtonOk.addActionListener(this);\r
+ }\r
+ return jButtonOk;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonCancel \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonCancel() {\r
+ if (jButtonCancel == null) {\r
+ jButtonCancel = new JButton();\r
+ jButtonCancel.setBounds(new java.awt.Rectangle(390, 140, 90, 20));\r
+ jButtonCancel.setText("Cancel");\r
+ jButtonCancel.addActionListener(this);\r
+ }\r
+ return jButtonCancel;\r
+ }\r
+\r
+ public static void main(String[] args) {\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ \r
+ **/\r
+ private void init() {\r
+ this.setSize(500, 200);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("Boot Modes");\r
+ initFrame();\r
+ this.setViewMode(false);\r
+ this.centerWindow();\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ Fill values to all fields if these values are not empty\r
+ \r
+ @param inBootModesId\r
+\r
+ **/\r
+ private void init(BootModesIdentification inBootModesId) {\r
+ init();\r
+ this.id = inBootModesId;\r
+\r
+ if (this.id != null) {\r
+ this.jComboBoxBootModeName.setSelectedItem(id.getName());\r
+ this.jComboBoxUsage.setSelectedItem(id.getUsage());\r
+ this.jTextFieldHelpText.setText(id.getHelp());\r
+ this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());\r
+ this.jArchCheckBox.setSelectedItems(id.getSupArchList());\r
+ }\r
+ }\r
+\r
+ /**\r
+ This is the override edit constructor\r
+ \r
+ @param inBootModesIdentification\r
+ @param iFrame\r
+ \r
+ **/\r
+ public BootModesDlg(BootModesIdentification inBootModesIdentification, IFrame iFrame) {\r
+ super(iFrame, true);\r
+ init(inBootModesIdentification);\r
+ }\r
+\r
+ /**\r
+ Disable all components when the mode is view\r
+ \r
+ @param isView true - The view mode; false - The non-view mode\r
+ \r
+ **/\r
+ public void setViewMode(boolean isView) {\r
+ if (isView) {\r
+ this.jComboBoxBootModeName.setEnabled(!isView);\r
+ this.jComboBoxUsage.setEnabled(!isView);\r
+ }\r
+ }\r
+\r
+ /**\r
+ This method initializes jContentPane\r
+ \r
+ @return javax.swing.JPanel jContentPane\r
+ \r
+ **/\r
+ private JPanel getJContentPane() {\r
+ if (jContentPane == null) {\r
+ jArchCheckBox = new ArchCheckBox();\r
+ jArchCheckBox.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
+ jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jLabelArch = new JLabel();\r
+ jLabelArch.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
+ jLabelArch.setText("Arch");\r
+ jLabelFeatureFlag = new JLabel();\r
+ jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
+ jLabelFeatureFlag.setText("Feature Flag");\r
+ jLabelUsage = new JLabel();\r
+ jLabelUsage.setText("Usage");\r
+ jLabelUsage.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
+ jLabelBootModeName = new JLabel();\r
+ jLabelBootModeName.setText("Boot Mode Name");\r
+ jLabelBootModeName.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
+ jLabelHelpText = new JLabel();\r
+ jLabelHelpText.setBounds(new java.awt.Rectangle(14, 60, 140, 20));\r
+ jLabelHelpText.setText("Help Text");\r
+\r
+ jContentPane = new JPanel();\r
+ jContentPane.setLayout(null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 165));\r
+\r
+ jContentPane.add(jLabelBootModeName, null);\r
+ jContentPane.add(getJComboBoxBootModeName(), null);\r
+ jContentPane.add(jLabelUsage, null);\r
+ jContentPane.add(getJComboBoxUsage(), null);\r
+ jStarLabel1 = new StarLabel();\r
+ jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
+ jStarLabel2 = new StarLabel();\r
+ jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
+\r
+ jContentPane.add(jStarLabel1, null);\r
+ jContentPane.add(jStarLabel2, null);\r
+ jContentPane.add(jLabelFeatureFlag, null);\r
+ jContentPane.add(getJTextFieldFeatureFlag(), null);\r
+ jContentPane.add(jLabelArch, null);\r
+\r
+ jContentPane.add(jLabelHelpText, null);\r
+ jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(jArchCheckBox, null);\r
+ jContentPane.add(getJButtonOk(), null);\r
+ jContentPane.add(getJButtonCancel(), null);\r
+ }\r
+ return jContentPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes BootModeName groups and Usage type\r
+ \r
+ **/\r
+ private void initFrame() {\r
+ Tools.generateComboBoxByVector(jComboBoxBootModeName, ed.getVBootModeNames());\r
+ Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVPpiUsage());\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ *\r
+ * Override actionPerformed to listen all actions\r
+ * \r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ if (arg0.getSource() == jButtonOk) {\r
+ if (checkAdd()) {\r
+ getCurrentBootModes();\r
+ this.returnType = DataType.RETURN_TYPE_OK;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonCancel) {\r
+ this.returnType = DataType.RETURN_TYPE_CANCEL;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ /**\r
+ Data validation for all fields\r
+ \r
+ @retval true - All datas are valid\r
+ @retval false - At least one data is invalid\r
+ \r
+ **/\r
+ public boolean checkAdd() {\r
+ //\r
+ // Check if all fields have correct data types \r
+ //\r
+\r
+ //\r
+ // Check FeatureFlag\r
+ //\r
+ if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
+ if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
+ Log.err("Incorrect data type for Feature Flag");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ private BootModesIdentification getCurrentBootModes() {\r
+ String arg0 = this.jComboBoxBootModeName.getSelectedItem().toString();\r
+\r
+ String arg1 = this.jComboBoxUsage.getSelectedItem().toString();\r
+\r
+ String arg2 = this.jTextFieldFeatureFlag.getText();\r
+ Vector<String> arg3 = this.jArchCheckBox.getSelectedItemsVector();\r
+ String arg4 = this.jTextFieldHelpText.getText();\r
+ id = new BootModesIdentification(arg0, arg1, arg2, arg3, arg4);\r
+ return id;\r
+ }\r
+\r
+ public BootModesIdentification getId() {\r
+ return id;\r
+ }\r
+\r
+ public void setId(BootModesIdentification id) {\r
+ this.id = id;\r
+ }\r
+}\r
--- /dev/null
+/** @file\r
+ \r
+ The file is used to create, update DataHub of MSA/MBD file\r
+ \r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+ \r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ \r
+ **/\r
+\r
+package org.tianocore.frameworkwizard.module.ui.dialog;\r
+\r
+import java.awt.event.ActionEvent;\r
+import java.util.Vector;\r
+\r
+import javax.swing.JButton;\r
+import javax.swing.JComboBox;\r
+import javax.swing.JLabel;\r
+import javax.swing.JPanel;\r
+import javax.swing.JScrollPane;\r
+import javax.swing.JTextField;\r
+\r
+import org.tianocore.frameworkwizard.common.DataType;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.Log;\r
+import org.tianocore.frameworkwizard.common.Tools;\r
+import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
+import org.tianocore.frameworkwizard.common.ui.IDialog;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
+import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
+import org.tianocore.frameworkwizard.module.Identifications.DataHubs.DataHubsIdentification;\r
+\r
+/**\r
+ The class is used to create, update DataHub of MSA/MBD file\r
+ It extends IInternalFrame\r
+ \r
+\r
+\r
+ **/\r
+public class DataHubsDlg extends IDialog {\r
+\r
+ ///\r
+ /// Define class Serial Version UID\r
+ ///\r
+ private static final long serialVersionUID = -3667906991966638892L;\r
+\r
+ //\r
+ //Define class members\r
+ //\r
+ private JPanel jContentPane = null;\r
+\r
+ private JLabel jLabelUsage = null;\r
+\r
+ private JComboBox jComboBoxUsage = null;\r
+\r
+ private JLabel jLabelDataHubRecord = null;\r
+\r
+ private JTextField jTextFieldDataHubRecord = null;\r
+\r
+ private StarLabel jStarLabel1 = null;\r
+\r
+ private StarLabel jStarLabel2 = null;\r
+\r
+ private JLabel jLabelFeatureFlag = null;\r
+\r
+ private JTextField jTextFieldFeatureFlag = null;\r
+\r
+ private JLabel jLabelArch = null;\r
+\r
+ private JScrollPane jScrollPane = null;\r
+\r
+ private JLabel jLabelHelpText = null;\r
+\r
+ private JTextField jTextFieldHelpText = null;\r
+\r
+ private ArchCheckBox jArchCheckBox = null;\r
+\r
+ private JButton jButtonOk = null;\r
+\r
+ private JButton jButtonCancel = null;\r
+\r
+ //\r
+ // Not used by UI\r
+ //\r
+ private DataHubsIdentification id = null;\r
+\r
+ private EnumerationData ed = new EnumerationData();\r
+\r
+ /**\r
+ This method initializes jComboBoxUsage \r
+ \r
+ @return javax.swing.JComboBox jComboBoxUsage\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxUsage() {\r
+ if (jComboBoxUsage == null) {\r
+ jComboBoxUsage = new JComboBox();\r
+ jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
+ jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jComboBoxUsage;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldDataHubRecord \r
+ \r
+ @return javax.swing.JTextField jTextFieldDataHubRecord\r
+ \r
+ **/\r
+ private JTextField getJTextFieldDataHubRecord() {\r
+ if (jTextFieldDataHubRecord == null) {\r
+ jTextFieldDataHubRecord = new JTextField();\r
+ jTextFieldDataHubRecord.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
+ jTextFieldDataHubRecord.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jTextFieldDataHubRecord.setToolTipText("Enter the C Name of the Data Hub Record");\r
+ }\r
+ return jTextFieldDataHubRecord;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldFeatureFlag \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldFeatureFlag() {\r
+ if (jTextFieldFeatureFlag == null) {\r
+ jTextFieldFeatureFlag = new JTextField();\r
+ jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
+ jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldFeatureFlag;\r
+ }\r
+\r
+ /**\r
+ This method initializes jScrollPane \r
+ \r
+ @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPane() {\r
+ if (jScrollPane == null) {\r
+ jScrollPane = new JScrollPane();\r
+ jScrollPane.setViewportView(getJContentPane());\r
+ }\r
+ return jScrollPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldHelpText \r
+ \r
+ @return javax.swing.JTextField \r
+ \r
+ **/\r
+ private JTextField getJTextFieldHelpText() {\r
+ if (jTextFieldHelpText == null) {\r
+ jTextFieldHelpText = new JTextField();\r
+ jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
+ jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldHelpText;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonOk \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonOk() {\r
+ if (jButtonOk == null) {\r
+ jButtonOk = new JButton();\r
+ jButtonOk.setBounds(new java.awt.Rectangle(290, 140, 90, 20));\r
+ jButtonOk.setText("Ok");\r
+ jButtonOk.addActionListener(this);\r
+ }\r
+ return jButtonOk;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonCancel \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonCancel() {\r
+ if (jButtonCancel == null) {\r
+ jButtonCancel = new JButton();\r
+ jButtonCancel.setBounds(new java.awt.Rectangle(390, 140, 90, 20));\r
+ jButtonCancel.setText("Cancel");\r
+ jButtonCancel.addActionListener(this);\r
+ }\r
+ return jButtonCancel;\r
+ }\r
+\r
+ public static void main(String[] args) {\r
+\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ \r
+ **/\r
+ private void init() {\r
+ this.setSize(500, 200);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("Data Hubs");\r
+ initFrame();\r
+ this.setViewMode(false);\r
+ this.centerWindow();\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ Fill values to all fields if these values are not empty\r
+ \r
+ @param inDataHubsId\r
+\r
+ **/\r
+ private void init(DataHubsIdentification inDataHubsId) {\r
+ init();\r
+ this.id = inDataHubsId;\r
+\r
+ if (this.id != null) {\r
+ this.jTextFieldDataHubRecord.setText(id.getName());\r
+ this.jComboBoxUsage.setSelectedItem(id.getUsage());\r
+ this.jTextFieldHelpText.setText(id.getHelp());\r
+ this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());\r
+ this.jArchCheckBox.setSelectedItems(id.getSupArchList());\r
+ }\r
+ }\r
+\r
+ /**\r
+ This is the override edit constructor\r
+ \r
+ @param inDataHubsIdentification\r
+ @param iFrame\r
+ \r
+ **/\r
+ public DataHubsDlg(DataHubsIdentification inDataHubsIdentification, IFrame iFrame) {\r
+ super(iFrame, true);\r
+ init(inDataHubsIdentification);\r
+ }\r
+\r
+ /**\r
+ Disable all components when the mode is view\r
+ \r
+ @param isView true - The view mode; false - The non-view mode\r
+ \r
+ **/\r
+ public void setViewMode(boolean isView) {\r
+ if (isView) {\r
+ this.jTextFieldDataHubRecord.setEnabled(!isView);\r
+ this.jComboBoxUsage.setEnabled(!isView);\r
+ }\r
+ }\r
+\r
+ /**\r
+ This method initializes jContentPane\r
+ \r
+ @return javax.swing.JPanel jContentPane\r
+ \r
+ **/\r
+ private JPanel getJContentPane() {\r
+ if (jContentPane == null) {\r
+ jArchCheckBox = new ArchCheckBox();\r
+ jArchCheckBox.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
+ jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jLabelDataHubRecord = new JLabel();\r
+ jLabelDataHubRecord.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
+ jLabelDataHubRecord.setText("Data Hub Record");\r
+ jLabelUsage = new JLabel();\r
+ jLabelUsage.setText("Usage");\r
+ jLabelUsage.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
+ jLabelArch = new JLabel();\r
+ jLabelArch.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
+ jLabelArch.setText("Arch");\r
+ jLabelFeatureFlag = new JLabel();\r
+ jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
+ jLabelFeatureFlag.setText("Feature Flag");\r
+ jLabelHelpText = new JLabel();\r
+ jLabelHelpText.setBounds(new java.awt.Rectangle(14, 60, 140, 20));\r
+ jLabelHelpText.setText("Help Text");\r
+\r
+ jContentPane = new JPanel();\r
+ jContentPane.setLayout(null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 165));\r
+\r
+ jContentPane.add(jLabelDataHubRecord, null);\r
+ jContentPane.add(jLabelUsage, null);\r
+ jContentPane.add(jLabelFeatureFlag, null);\r
+ jContentPane.add(jLabelArch, null);\r
+\r
+ jContentPane.add(getJTextFieldDataHubRecord(), null);\r
+ jContentPane.add(getJComboBoxUsage(), null);\r
+ jContentPane.add(getJTextFieldFeatureFlag(), null);\r
+\r
+ jStarLabel1 = new StarLabel();\r
+ jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
+ jStarLabel2 = new StarLabel();\r
+ jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
+\r
+ jContentPane.add(jStarLabel1, null);\r
+ jContentPane.add(jStarLabel2, null);\r
+\r
+ jContentPane.add(jLabelHelpText, null);\r
+ jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(jArchCheckBox, null);\r
+ jContentPane.add(getJButtonOk(), null);\r
+ jContentPane.add(getJButtonCancel(), null);\r
+ }\r
+ return jContentPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes Usage type\r
+ \r
+ **/\r
+ private void initFrame() {\r
+ Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVDataHubUsage());\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ *\r
+ * Override actionPerformed to listen all actions\r
+ * \r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ if (arg0.getSource() == jButtonOk) {\r
+ if (checkAdd()) {\r
+ getCurrentDataHubs();\r
+ this.returnType = DataType.RETURN_TYPE_OK;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonCancel) {\r
+ this.returnType = DataType.RETURN_TYPE_CANCEL;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ /**\r
+ Data validation for all fields\r
+ \r
+ @retval true - All datas are valid\r
+ @retval false - At least one data is invalid\r
+ \r
+ **/\r
+ public boolean checkAdd() {\r
+ //\r
+ // Check if all fields have correct data types \r
+ //\r
+\r
+ //\r
+ // Check DataHubRecord \r
+ //\r
+ if (isEmpty(this.jTextFieldDataHubRecord.getText())) {\r
+ Log.err("Data Hub Record couldn't be empty");\r
+ return false;\r
+ }\r
+\r
+ if (!isEmpty(this.jTextFieldDataHubRecord.getText())) {\r
+ if (!DataValidation.isC_NameType(this.jTextFieldDataHubRecord.getText())) {\r
+ Log.err("Incorrect data type for Data Hub Record");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ //\r
+ // Check FeatureFlag\r
+ //\r
+ if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
+ if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
+ Log.err("Incorrect data type for Feature Flag");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ private DataHubsIdentification getCurrentDataHubs() {\r
+ String arg0 = this.jTextFieldDataHubRecord.getText();\r
+ String arg1 = this.jComboBoxUsage.getSelectedItem().toString();\r
+\r
+ String arg2 = this.jTextFieldFeatureFlag.getText();\r
+ Vector<String> arg3 = this.jArchCheckBox.getSelectedItemsVector();\r
+ String arg4 = this.jTextFieldHelpText.getText();\r
+\r
+ id = new DataHubsIdentification(arg0, arg1, arg2, arg3, arg4);\r
+ return id;\r
+ }\r
+\r
+ public DataHubsIdentification getId() {\r
+ return id;\r
+ }\r
+\r
+ public void setId(DataHubsIdentification id) {\r
+ this.id = id;\r
+ }\r
+}\r
--- /dev/null
+/** @file\r
+ \r
+ The file is used to create, update Event of MSA/MBD file\r
+ \r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+ \r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ \r
+ **/\r
+package org.tianocore.frameworkwizard.module.ui.dialog;\r
+\r
+import java.awt.event.ActionEvent;\r
+import java.util.Vector;\r
+\r
+import javax.swing.JButton;\r
+import javax.swing.JComboBox;\r
+import javax.swing.JLabel;\r
+import javax.swing.JPanel;\r
+import javax.swing.JScrollPane;\r
+import javax.swing.JTextField;\r
+\r
+import org.tianocore.frameworkwizard.common.DataType;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.Log;\r
+import org.tianocore.frameworkwizard.common.Tools;\r
+import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
+import org.tianocore.frameworkwizard.common.ui.IDialog;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
+import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
+import org.tianocore.frameworkwizard.module.Identifications.Events.EventsIdentification;\r
+import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
+\r
+/**\r
+ The class is used to create, update Event of MSA/MBD file\r
+ It extends IInternalFrame\r
+ \r
+ @since ModuleEditor 1.0\r
+\r
+ **/\r
+public class EventsDlg extends IDialog {\r
+\r
+ ///\r
+ /// Define class Serial Version UID\r
+ ///\r
+ private static final long serialVersionUID = -4396143706422842331L;\r
+\r
+ //\r
+ //Define class members\r
+ //\r
+ private JPanel jContentPane = null;\r
+\r
+ private JLabel jLabelEventType = null;\r
+\r
+ private JLabel jLabelC_Name = null;\r
+\r
+ private JComboBox jComboBoxGuidC_Name = null;\r
+\r
+ private JLabel jLabelUsage = null;\r
+\r
+ private JComboBox jComboBoxUsage = null;\r
+\r
+ private StarLabel jStarLabel1 = null;\r
+\r
+ private StarLabel jStarLabel2 = null;\r
+\r
+ private JComboBox jComboBoxEventsType = null;\r
+\r
+ private JScrollPane jScrollPane = null;\r
+\r
+ private JLabel jLabelArch = null;\r
+\r
+ private JLabel jLabelHelpText = null;\r
+\r
+ private JTextField jTextFieldHelpText = null;\r
+\r
+ private JLabel jLabelFeatureFlag = null;\r
+\r
+ private JTextField jTextFieldFeatureFlag = null;\r
+\r
+ private ArchCheckBox jArchCheckBox = null;\r
+\r
+ private JButton jButtonOk = null;\r
+\r
+ private JButton jButtonCancel = null;\r
+\r
+ //\r
+ // Not used by UI\r
+ //\r
+ private EventsIdentification id = null;\r
+\r
+ private EnumerationData ed = new EnumerationData();\r
+\r
+ private WorkspaceTools wt = new WorkspaceTools();\r
+\r
+ /**\r
+ This method initializes jTextFieldC_Name \r
+ \r
+ @return javax.swing.JTextField jTextFieldC_Name\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxGuidC_Name() {\r
+ if (jComboBoxGuidC_Name == null) {\r
+ jComboBoxGuidC_Name = new JComboBox();\r
+ jComboBoxGuidC_Name.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
+ jComboBoxGuidC_Name.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jComboBoxGuidC_Name.setToolTipText("Select the GUID C Name of the Event");\r
+ }\r
+ return jComboBoxGuidC_Name;\r
+ }\r
+\r
+ /**\r
+ This method initializes jComboBoxUsage \r
+ \r
+ @return javax.swing.JComboBox jComboBoxUsage\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxUsage() {\r
+ if (jComboBoxUsage == null) {\r
+ jComboBoxUsage = new JComboBox();\r
+ jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
+ jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jComboBoxUsage;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jComboBoxEventsType \r
+ * \r
+ * @return javax.swing.JComboBox \r
+ */\r
+ private JComboBox getJComboBoxEventsType() {\r
+ if (jComboBoxEventsType == null) {\r
+ jComboBoxEventsType = new JComboBox();\r
+ jComboBoxEventsType.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
+ jComboBoxEventsType.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jComboBoxEventsType\r
+ .setToolTipText("Select Create event if the Module has an event that is waiting to be signaled. Select Signal if the Module will signal all events in an event group. Signal Event The events are named by GUID.");\r
+ }\r
+ return jComboBoxEventsType;\r
+ }\r
+\r
+ /**\r
+ This method initializes jScrollPane \r
+ \r
+ @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPane() {\r
+ if (jScrollPane == null) {\r
+ jScrollPane = new JScrollPane();\r
+ jScrollPane.setViewportView(getJContentPane());\r
+ }\r
+ return jScrollPane;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldFeatureFlag \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldFeatureFlag() {\r
+ if (jTextFieldFeatureFlag == null) {\r
+ jTextFieldFeatureFlag = new JTextField();\r
+ jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
+ jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldFeatureFlag;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldHelpText \r
+ \r
+ @return javax.swing.JTextField \r
+ \r
+ **/\r
+ private JTextField getJTextFieldHelpText() {\r
+ if (jTextFieldHelpText == null) {\r
+ jTextFieldHelpText = new JTextField();\r
+ jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
+ jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldHelpText;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonOk \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonOk() {\r
+ if (jButtonOk == null) {\r
+ jButtonOk = new JButton();\r
+ jButtonOk.setBounds(new java.awt.Rectangle(290, 165, 90, 20));\r
+ jButtonOk.setText("Ok");\r
+ jButtonOk.addActionListener(this);\r
+ }\r
+ return jButtonOk;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonCancel \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonCancel() {\r
+ if (jButtonCancel == null) {\r
+ jButtonCancel = new JButton();\r
+ jButtonCancel.setBounds(new java.awt.Rectangle(390, 165, 90, 20));\r
+ jButtonCancel.setText("Cancel");\r
+ jButtonCancel.addActionListener(this);\r
+ }\r
+ return jButtonCancel;\r
+ }\r
+\r
+ public static void main(String[] args) {\r
+\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ \r
+ **/\r
+ private void init() {\r
+ this.setSize(500, 225);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("Events");\r
+ initFrame();\r
+ this.setViewMode(false);\r
+ this.centerWindow();\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ Fill values to all fields if these values are not empty\r
+ \r
+ @param inEventsId\r
+\r
+ **/\r
+ private void init(EventsIdentification inEventsId) {\r
+ init();\r
+ this.id = inEventsId;\r
+\r
+ if (this.id != null) {\r
+ this.jComboBoxGuidC_Name.setSelectedItem(id.getName());\r
+ this.jComboBoxEventsType.setSelectedItem(id.getType());\r
+ this.jComboBoxUsage.setSelectedItem(id.getUsage());\r
+ this.jTextFieldHelpText.setText(id.getHelp());\r
+\r
+ jTextFieldFeatureFlag.setText(id.getFeatureFlag());\r
+ this.jArchCheckBox.setSelectedItems(id.getSupArchList());\r
+ }\r
+ }\r
+\r
+ /**\r
+ This is the override edit constructor\r
+ \r
+ @param inEventsIdentification\r
+ @param iFrame\r
+ \r
+ **/\r
+ public EventsDlg(EventsIdentification inEventsIdentification, IFrame iFrame) {\r
+ super(iFrame, true);\r
+ init(inEventsIdentification);\r
+ }\r
+\r
+ /**\r
+ Disable all components when the mode is view\r
+ \r
+ @param isView true - The view mode; false - The non-view mode\r
+ \r
+ **/\r
+ public void setViewMode(boolean isView) {\r
+ if (isView) {\r
+ this.jComboBoxGuidC_Name.setEnabled(!isView);\r
+ this.jComboBoxUsage.setEnabled(!isView);\r
+ }\r
+ }\r
+\r
+ /**\r
+ This method initializes jContentPane\r
+ \r
+ @return javax.swing.JPanel jContentPane\r
+ \r
+ **/\r
+ private JPanel getJContentPane() {\r
+ if (jContentPane == null) {\r
+ jArchCheckBox = new ArchCheckBox();\r
+ jArchCheckBox.setBounds(new java.awt.Rectangle(160, 135, 320, 20));\r
+ jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jLabelFeatureFlag = new JLabel();\r
+ jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
+ jLabelFeatureFlag.setText("Feature Flag");\r
+ jLabelArch = new JLabel();\r
+ jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 140, 20));\r
+ jLabelArch.setText("Arch");\r
+ jLabelUsage = new JLabel();\r
+ jLabelUsage.setText("Usage");\r
+ jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
+ jLabelC_Name = new JLabel();\r
+ jLabelC_Name.setText("Guid C_Name");\r
+ jLabelC_Name.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
+ jLabelEventType = new JLabel();\r
+ jLabelEventType.setText("Event Type");\r
+ jLabelEventType.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
+ jLabelHelpText = new JLabel();\r
+ jLabelHelpText.setBounds(new java.awt.Rectangle(14, 85, 140, 20));\r
+ jLabelHelpText.setText("Help Text");\r
+\r
+ jContentPane = new JPanel();\r
+ jContentPane.setLayout(null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 190));\r
+\r
+ jContentPane.add(jLabelEventType, null);\r
+ jContentPane.add(jLabelC_Name, null);\r
+ jContentPane.add(getJComboBoxGuidC_Name(), null);\r
+ jContentPane.add(jLabelUsage, null);\r
+ jContentPane.add(getJComboBoxUsage(), null);\r
+ jStarLabel1 = new StarLabel();\r
+ jStarLabel1.setBounds(new java.awt.Rectangle(0, 10, 10, 20));\r
+ jStarLabel2 = new StarLabel();\r
+ jStarLabel2.setBounds(new java.awt.Rectangle(0, 35, 10, 20));\r
+\r
+ jContentPane.add(jStarLabel1, null);\r
+ jContentPane.add(jStarLabel2, null);\r
+ jContentPane.add(getJComboBoxEventsType(), null);\r
+\r
+ jContentPane.add(jLabelArch, null);\r
+ jContentPane.add(jLabelFeatureFlag, null);\r
+ jContentPane.add(getJTextFieldFeatureFlag(), null);\r
+ jContentPane.add(jLabelHelpText, null);\r
+ jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(jArchCheckBox, null);\r
+ jContentPane.add(getJButtonOk(), null);\r
+ jContentPane.add(getJButtonCancel(), null);\r
+ }\r
+ return jContentPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes events groups and usage type\r
+ \r
+ **/\r
+ private void initFrame() {\r
+ Tools.generateComboBoxByVector(jComboBoxEventsType, ed.getVEventType());\r
+ Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVEventUsage());\r
+ Tools.generateComboBoxByVector(jComboBoxGuidC_Name, wt.getAllGuidDeclarationsFromWorkspace());\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ *\r
+ * Override actionPerformed to listen all actions\r
+ * \r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ if (arg0.getSource() == jButtonOk) {\r
+ if (checkAdd()) {\r
+ getCurrentEvents();\r
+ this.returnType = DataType.RETURN_TYPE_OK;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonCancel) {\r
+ this.returnType = DataType.RETURN_TYPE_CANCEL;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ /**\r
+ Data validation for all fields\r
+ \r
+ @retval true - All datas are valid\r
+ @retval false - At least one data is invalid\r
+ \r
+ **/\r
+ public boolean checkAdd() {\r
+ //\r
+ // Check if all fields have correct data types \r
+ //\r
+\r
+ //\r
+ // Check Name \r
+ //\r
+ if (isEmpty(this.jComboBoxGuidC_Name.getSelectedItem().toString())) {\r
+ Log.err("Event Name couldn't be empty");\r
+ return false;\r
+ }\r
+\r
+ if (!isEmpty(this.jComboBoxGuidC_Name.getSelectedItem().toString())) {\r
+ if (!DataValidation.isC_NameType(this.jComboBoxGuidC_Name.getSelectedItem().toString())) {\r
+ Log.err("Incorrect data type for Event Name");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ //\r
+ // Check FeatureFlag\r
+ //\r
+ if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
+ if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
+ Log.err("Incorrect data type for Feature Flag");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ private EventsIdentification getCurrentEvents() {\r
+ String arg0 = this.jComboBoxGuidC_Name.getSelectedItem().toString();\r
+ String arg1 = this.jComboBoxEventsType.getSelectedItem().toString();\r
+ String arg2 = this.jComboBoxUsage.getSelectedItem().toString();\r
+\r
+ String arg3 = this.jTextFieldFeatureFlag.getText();\r
+ Vector<String> arg4 = this.jArchCheckBox.getSelectedItemsVector();\r
+ String arg5 = this.jTextFieldHelpText.getText();\r
+ id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
+ return id;\r
+ }\r
+\r
+ public EventsIdentification getId() {\r
+ return id;\r
+ }\r
+\r
+ public void setId(EventsIdentification id) {\r
+ this.id = id;\r
+ }\r
+}\r
--- /dev/null
+/** @file\r
+ \r
+ The file is used to create, update DataHub of MSA/MBD file\r
+ \r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+ \r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ \r
+ **/\r
+package org.tianocore.frameworkwizard.module.ui.dialog;\r
+\r
+import java.awt.event.ActionEvent;\r
+import java.awt.event.ItemEvent;\r
+import java.awt.event.ItemListener;\r
+import java.util.Vector;\r
+\r
+import javax.swing.JButton;\r
+import javax.swing.JComboBox;\r
+import javax.swing.JLabel;\r
+import javax.swing.JPanel;\r
+import javax.swing.JScrollPane;\r
+import javax.swing.JTextField;\r
+\r
+import org.tianocore.frameworkwizard.common.DataType;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.Log;\r
+import org.tianocore.frameworkwizard.common.Tools;\r
+import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
+import org.tianocore.frameworkwizard.common.ui.IDialog;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
+import org.tianocore.frameworkwizard.module.Identifications.Externs.ExternsIdentification;\r
+\r
+/**\r
+ The class is used to create, update DataHub of MSA/MBD file \r
+ It extends IInternalFrame\r
+ \r
+\r
+\r
+ **/\r
+public class ExternsDlg extends IDialog implements ItemListener {\r
+\r
+ ///\r
+ /// Define class Serial Version UID\r
+ ///\r
+ private static final long serialVersionUID = -7382008402932047191L;\r
+\r
+ //\r
+ //Define class members\r
+ //\r
+ private JPanel jContentPane = null;\r
+\r
+ private JLabel jLabelName = null;\r
+\r
+ private JComboBox jComboBoxType = null;\r
+\r
+ private JScrollPane jScrollPane = null;\r
+\r
+ private JComboBox jComboBoxPcdIsDriver = null;\r
+\r
+ private JLabel jLabelC_Name = null;\r
+\r
+ private JTextField jTextFieldC_Name = null;\r
+\r
+ private JLabel jLabelFeatureFlag = null;\r
+\r
+ private JLabel jLabelArch = null;\r
+\r
+ private JTextField jTextFieldFeatureFlag = null;\r
+\r
+ private ArchCheckBox jArchCheckBox = null;\r
+\r
+ private JButton jButtonOk = null;\r
+\r
+ private JButton jButtonCancel = null;\r
+\r
+ //\r
+ // Not used by UI\r
+ //\r
+ private ExternsIdentification id = null;\r
+\r
+ private EnumerationData ed = new EnumerationData();\r
+\r
+ /**\r
+ This method initializes jComboBoxType \r
+ \r
+ @return javax.swing.JComboBox jComboBoxType\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxType() {\r
+ if (jComboBoxType == null) {\r
+ jComboBoxType = new JComboBox();\r
+ jComboBoxType.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
+ jComboBoxType.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jComboBoxType.addItemListener(this);\r
+ }\r
+ return jComboBoxType;\r
+ }\r
+\r
+ /**\r
+ This method initializes jScrollPane \r
+ \r
+ @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPane() {\r
+ if (jScrollPane == null) {\r
+ jScrollPane = new JScrollPane();\r
+ jScrollPane.setViewportView(getJContentPane());\r
+ }\r
+ return jScrollPane;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jComboBoxPcdIsDriver \r
+ * \r
+ * @return javax.swing.JComboBox \r
+ */\r
+ private JComboBox getJComboBoxPcdIsDriver() {\r
+ if (jComboBoxPcdIsDriver == null) {\r
+ jComboBoxPcdIsDriver = new JComboBox();\r
+ jComboBoxPcdIsDriver.setLocation(new java.awt.Point(160, 35));\r
+ jComboBoxPcdIsDriver.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jComboBoxPcdIsDriver.setSize(new java.awt.Dimension(320, 20));\r
+ jComboBoxPcdIsDriver.addItemListener(this);\r
+ }\r
+ return jComboBoxPcdIsDriver;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldC_Name \r
+ \r
+ @return javax.swing.JTextField \r
+ \r
+ **/\r
+ private JTextField getJTextFieldC_Name() {\r
+ if (jTextFieldC_Name == null) {\r
+ jTextFieldC_Name = new JTextField();\r
+ jTextFieldC_Name.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
+ jTextFieldC_Name.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldC_Name;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldFeatureFlag \r
+ \r
+ @return javax.swing.JTextField \r
+ \r
+ **/\r
+ private JTextField getJTextFieldFeatureFlag() {\r
+ if (jTextFieldFeatureFlag == null) {\r
+ jTextFieldFeatureFlag = new JTextField();\r
+ jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
+ jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldFeatureFlag;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonOk \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonOk() {\r
+ if (jButtonOk == null) {\r
+ jButtonOk = new JButton();\r
+ jButtonOk.setBounds(new java.awt.Rectangle(290, 120, 90, 20));\r
+ jButtonOk.setText("Ok");\r
+ jButtonOk.addActionListener(this);\r
+ }\r
+ return jButtonOk;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonCancel \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonCancel() {\r
+ if (jButtonCancel == null) {\r
+ jButtonCancel = new JButton();\r
+ jButtonCancel.setBounds(new java.awt.Rectangle(390, 120, 90, 20));\r
+ jButtonCancel.setText("Cancel");\r
+ jButtonCancel.addActionListener(this);\r
+ }\r
+ return jButtonCancel;\r
+ }\r
+\r
+ public static void main(String[] args) {\r
+\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ \r
+ **/\r
+ private void init() {\r
+ this.setSize(500, 180);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("Externs");\r
+ initFrame();\r
+ this.centerWindow();\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ Fill values to all fields if these values are not empty\r
+ \r
+ @param inExternsId\r
+\r
+ **/\r
+ private void init(ExternsIdentification inExternsId) {\r
+ init();\r
+ this.id = inExternsId;\r
+\r
+ if (this.id != null) {\r
+ if (id.getType().equals(EnumerationData.EXTERNS_PCD_IS_DRIVER)) {\r
+ this.jComboBoxPcdIsDriver.setSelectedItem(id.getName());\r
+ } else {\r
+ this.jTextFieldC_Name.setText(id.getName()); \r
+ }\r
+ this.jComboBoxType.setSelectedItem(id.getType());\r
+ this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());\r
+ this.jArchCheckBox.setSelectedItems(id.getSupArchList());\r
+ }\r
+ }\r
+\r
+ /**\r
+ This is the override edit constructor\r
+ \r
+ @param inBootModesIdentification\r
+ @param iFrame\r
+ \r
+ **/\r
+ public ExternsDlg(ExternsIdentification inExternsIdentification, IFrame iFrame) {\r
+ super(iFrame, true);\r
+ init(inExternsIdentification);\r
+ }\r
+\r
+ /**\r
+ This method initializes jContentPane\r
+ \r
+ @return javax.swing.JPanel jContentPane\r
+ \r
+ **/\r
+ private JPanel getJContentPane() {\r
+ if (jContentPane == null) {\r
+ jArchCheckBox = new ArchCheckBox();\r
+ jArchCheckBox.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
+ jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jLabelC_Name = new JLabel();\r
+ jLabelC_Name.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
+ jLabelC_Name.setText("Value");\r
+ jLabelName = new JLabel();\r
+ jLabelName.setText("Choose Type");\r
+ jLabelName.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
+ jLabelArch = new JLabel();\r
+ jLabelArch.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
+ jLabelArch.setText("Arch");\r
+ jLabelFeatureFlag = new JLabel();\r
+ jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
+ jLabelFeatureFlag.setText("Feature Flag");\r
+\r
+ jContentPane = new JPanel();\r
+ jContentPane.setLayout(null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 145));\r
+\r
+ jContentPane.add(jLabelName, null);\r
+ jContentPane.add(getJComboBoxType(), null);\r
+ jContentPane.add(jLabelFeatureFlag, null);\r
+ jContentPane.add(jLabelArch, null);\r
+ jContentPane.add(getJTextFieldFeatureFlag(), null);\r
+\r
+ jContentPane.add(getJComboBoxPcdIsDriver(), null);\r
+ jContentPane.add(jLabelC_Name, null);\r
+ jContentPane.add(getJTextFieldC_Name(), null);\r
+ jContentPane.add(jArchCheckBox, null);\r
+ jContentPane.add(getJButtonOk(), null);\r
+ jContentPane.add(getJButtonCancel(), null);\r
+ }\r
+ return jContentPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes Usage type and Externs type\r
+ \r
+ **/\r
+ private void initFrame() {\r
+ Tools.generateComboBoxByVector(this.jComboBoxType, ed.getVExternTypes());\r
+ Tools.generateComboBoxByVector(this.jComboBoxPcdIsDriver, ed.getVPcdDriverTypes());\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ *\r
+ * Override actionPerformed to listen all actions\r
+ * \r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ if (arg0.getSource() == jButtonOk) {\r
+ if (checkAdd()) {\r
+ getCurrentExterns();\r
+ this.returnType = DataType.RETURN_TYPE_OK;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonCancel) {\r
+ this.returnType = DataType.RETURN_TYPE_CANCEL;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ /**\r
+ Data validation for all fields\r
+ \r
+ @retval true - All datas are valid\r
+ @retval false - At least one data is invalid\r
+ \r
+ **/\r
+ public boolean checkAdd() {\r
+ //\r
+ // Check if all fields have correct data types \r
+ //\r
+\r
+ //\r
+ // When and only When type is not "Pcd Is Driver"\r
+ //\r
+ if (!this.jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_PCD_IS_DRIVER)) {\r
+ //\r
+ // Check CName \r
+ //\r
+ if (isEmpty(this.jTextFieldC_Name.getText())) {\r
+ Log.err("Value couldn't be empty");\r
+ return false;\r
+ }\r
+\r
+ if (!isEmpty(this.jTextFieldC_Name.getText())) {\r
+ if (this.jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_SPECIFICATION)) {\r
+ if (!DataValidation.isSentence(this.jTextFieldC_Name.getText())) {\r
+ Log.err("Incorrect data type for Specification");\r
+ return false;\r
+ }\r
+ } else {\r
+ if (!DataValidation.isC_NameType(this.jTextFieldC_Name.getText())) {\r
+ Log.err("Incorrect data type for C_Name");\r
+ return false;\r
+ }\r
+ }\r
+ }\r
+\r
+ //\r
+ // Check FeatureFlag\r
+ //\r
+ if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
+ if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
+ Log.err("Incorrect data type for Feature Flag");\r
+ return false;\r
+ }\r
+ }\r
+ } else {\r
+ if (this.jComboBoxPcdIsDriver.getSelectedItem().toString().equals(DataType.EMPTY_SELECT_ITEM)) {\r
+ Log.err("You must select one PCD DRIVER type");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ private ExternsIdentification getCurrentExterns() {\r
+ String arg0 = "";\r
+ if (this.jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_PCD_IS_DRIVER)) {\r
+ arg0 = this.jComboBoxPcdIsDriver.getSelectedItem().toString();\r
+ } else {\r
+ arg0 = this.jTextFieldC_Name.getText(); \r
+ }\r
+ String arg1 = this.jComboBoxType.getSelectedItem().toString();\r
+\r
+ String arg2 = this.jTextFieldFeatureFlag.getText();\r
+ Vector<String> arg3 = this.jArchCheckBox.getSelectedItemsVector();\r
+\r
+ id = new ExternsIdentification(arg0, arg1, arg2, arg3);\r
+ return id;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
+ *\r
+ * Reflesh the frame when selected item changed\r
+ * \r
+ */\r
+ public void itemStateChanged(ItemEvent arg0) {\r
+ if (arg0.getSource() == jComboBoxType && arg0.getStateChange() == ItemEvent.SELECTED) {\r
+ if (jComboBoxType.getSelectedItem().toString().equals(EnumerationData.EXTERNS_PCD_IS_DRIVER)) {\r
+ this.jComboBoxPcdIsDriver.setVisible(true);\r
+ this.jTextFieldC_Name.setVisible(false);\r
+ } else {\r
+ this.jComboBoxPcdIsDriver.setVisible(false);\r
+ this.jTextFieldC_Name.setVisible(true);\r
+ }\r
+ }\r
+ }\r
+\r
+ public ExternsIdentification getId() {\r
+ return id;\r
+ }\r
+\r
+ public void setId(ExternsIdentification id) {\r
+ this.id = id;\r
+ }\r
+}\r
--- /dev/null
+/** @file\r
+ \r
+ The file is used to create, update Guids of MSA/MBD file\r
+ \r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+ \r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ \r
+ **/\r
+package org.tianocore.frameworkwizard.module.ui.dialog;\r
+\r
+import java.awt.event.ActionEvent;\r
+import java.util.Vector;\r
+\r
+import javax.swing.JButton;\r
+import javax.swing.JComboBox;\r
+import javax.swing.JLabel;\r
+import javax.swing.JPanel;\r
+import javax.swing.JScrollPane;\r
+import javax.swing.JTextField;\r
+\r
+import org.tianocore.frameworkwizard.common.DataType;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.Log;\r
+import org.tianocore.frameworkwizard.common.Tools;\r
+import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
+import org.tianocore.frameworkwizard.common.ui.IDialog;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
+import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
+import org.tianocore.frameworkwizard.module.Identifications.Guids.GuidsIdentification;\r
+import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
+\r
+/**\r
+ The class is used to create, update Guids of MSA/MBD file\r
+ It extends IInternalFrame\r
+ \r
+\r
+\r
+ **/\r
+public class GuidsDlg extends IDialog {\r
+\r
+ ///\r
+ /// Define class Serial Version UID\r
+ ///\r
+ private static final long serialVersionUID = 6710858997766979803L;\r
+\r
+ //\r
+ //Define class members\r
+ //\r
+ private JPanel jContentPane = null;\r
+\r
+ private JLabel jLabelC_Name = null;\r
+\r
+ private JComboBox jComboBoxCName = null;\r
+\r
+ private JLabel jLabelUsage = null;\r
+\r
+ private JComboBox jComboBoxUsage = null;\r
+\r
+ private StarLabel jStarLabel1 = null;\r
+\r
+ private StarLabel jStarLabel2 = null;\r
+\r
+ private JLabel jLabelFeatureFlag = null;\r
+\r
+ private JTextField jTextFieldFeatureFlag = null;\r
+\r
+ private JLabel jLabelArch = null;\r
+\r
+ private JScrollPane jScrollPane = null;\r
+\r
+ private JLabel jLabelHelpText = null;\r
+\r
+ private JTextField jTextFieldHelpText = null;\r
+\r
+ private ArchCheckBox jArchCheckBox = null;\r
+\r
+ private JButton jButtonOk = null;\r
+\r
+ private JButton jButtonCancel = null;\r
+\r
+ //\r
+ // Not used by UI\r
+ //\r
+ private GuidsIdentification id = null;\r
+\r
+ private EnumerationData ed = new EnumerationData();\r
+\r
+ private WorkspaceTools wt = new WorkspaceTools();\r
+\r
+ /**\r
+ This method initializes jTextFieldC_Name \r
+ \r
+ @return javax.swing.JTextField jTextFieldC_Name\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxCName() {\r
+ if (jComboBoxCName == null) {\r
+ jComboBoxCName = new JComboBox();\r
+ jComboBoxCName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
+ jComboBoxCName.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jComboBoxCName;\r
+ }\r
+\r
+ /**\r
+ This method initializes jComboBoxUsage \r
+ \r
+ @return javax.swing.JComboBox jComboBoxUsage\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxUsage() {\r
+ if (jComboBoxUsage == null) {\r
+ jComboBoxUsage = new JComboBox();\r
+ jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
+ jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jComboBoxUsage;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldFeatureFlag \r
+ \r
+ @return javax.swing.JTextField \r
+ \r
+ **/\r
+ private JTextField getJTextFieldFeatureFlag() {\r
+ if (jTextFieldFeatureFlag == null) {\r
+ jTextFieldFeatureFlag = new JTextField();\r
+ jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
+ jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldFeatureFlag;\r
+ }\r
+\r
+ /**\r
+ This method initializes jScrollPane \r
+ \r
+ @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPane() {\r
+ if (jScrollPane == null) {\r
+ jScrollPane = new JScrollPane();\r
+ jScrollPane.setViewportView(getJContentPane());\r
+ }\r
+ return jScrollPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldHelpText \r
+ \r
+ @return javax.swing.JTextField \r
+ \r
+ **/\r
+ private JTextField getJTextFieldHelpText() {\r
+ if (jTextFieldHelpText == null) {\r
+ jTextFieldHelpText = new JTextField();\r
+ jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
+ jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldHelpText;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonOk \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonOk() {\r
+ if (jButtonOk == null) {\r
+ jButtonOk = new JButton();\r
+ jButtonOk.setBounds(new java.awt.Rectangle(290, 140, 90, 20));\r
+ jButtonOk.setText("Ok");\r
+ jButtonOk.addActionListener(this);\r
+ }\r
+ return jButtonOk;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonCancel \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonCancel() {\r
+ if (jButtonCancel == null) {\r
+ jButtonCancel = new JButton();\r
+ jButtonCancel.setBounds(new java.awt.Rectangle(390, 140, 90, 20));\r
+ jButtonCancel.setText("Cancel");\r
+ jButtonCancel.addActionListener(this);\r
+ }\r
+ return jButtonCancel;\r
+ }\r
+\r
+ public static void main(String[] args) {\r
+\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ \r
+ **/\r
+ private void init() {\r
+ this.setSize(500, 200);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("Guids");\r
+ initFrame();\r
+ this.setViewMode(false);\r
+ this.centerWindow();\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ Fill values to all fields if these values are not empty\r
+ \r
+ @param inGuidsId\r
+\r
+ **/\r
+ private void init(GuidsIdentification inGuidsId) {\r
+ init();\r
+ this.id = inGuidsId;\r
+\r
+ if (this.id != null) {\r
+ this.jComboBoxCName.setSelectedItem(id.getName());\r
+ this.jComboBoxUsage.setSelectedItem(id.getUsage());\r
+ this.jTextFieldHelpText.setText(id.getHelp());\r
+ this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());\r
+ this.jArchCheckBox.setSelectedItems(id.getSupArchList());\r
+ }\r
+ }\r
+\r
+ /**\r
+ This is the override edit constructor\r
+ \r
+ @param inGuidsIdentification\r
+ @param iFrame\r
+ \r
+ **/\r
+ public GuidsDlg(GuidsIdentification inGuidsIdentification, IFrame iFrame) {\r
+ super(iFrame, true);\r
+ init(inGuidsIdentification);\r
+ }\r
+\r
+ /**\r
+ Disable all components when the mode is view\r
+ \r
+ @param isView true - The view mode; false - The non-view mode\r
+ \r
+ **/\r
+ public void setViewMode(boolean isView) {\r
+ if (isView) {\r
+ this.jComboBoxUsage.setEnabled(!isView);\r
+ }\r
+ }\r
+\r
+ /**\r
+ This method initializes jContentPane\r
+ \r
+ @return javax.swing.JPanel jContentPane\r
+ \r
+ **/\r
+ private JPanel getJContentPane() {\r
+ if (jContentPane == null) {\r
+ jArchCheckBox = new ArchCheckBox();\r
+ jArchCheckBox.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
+ jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jLabelUsage = new JLabel();\r
+ jLabelUsage.setText("Usage");\r
+ jLabelUsage.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
+ jLabelC_Name = new JLabel();\r
+ jLabelC_Name.setText("C_Name");\r
+ jLabelC_Name.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
+ jLabelArch = new JLabel();\r
+ jLabelArch.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
+ jLabelArch.setText("Arch");\r
+ jLabelFeatureFlag = new JLabel();\r
+ jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
+ jLabelFeatureFlag.setText("Feature Flag");\r
+ jLabelHelpText = new JLabel();\r
+ jLabelHelpText.setBounds(new java.awt.Rectangle(14, 60, 140, 20));\r
+ jLabelHelpText.setText("Help Text");\r
+\r
+ jContentPane = new JPanel();\r
+ jContentPane.setLayout(null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 165));\r
+\r
+ jContentPane.add(jLabelC_Name, null);\r
+ jContentPane.add(getJComboBoxCName(), null);\r
+ jContentPane.add(jLabelUsage, null);\r
+ jContentPane.add(getJComboBoxUsage(), null);\r
+ jContentPane.add(jLabelFeatureFlag, null);\r
+ jContentPane.add(jLabelArch, null);\r
+ jContentPane.add(getJTextFieldFeatureFlag(), null);\r
+\r
+ jStarLabel1 = new StarLabel();\r
+ jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
+ jStarLabel2 = new StarLabel();\r
+ jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
+\r
+ jContentPane.add(jStarLabel1, null);\r
+ jContentPane.add(jStarLabel2, null);\r
+\r
+ jContentPane.add(jLabelHelpText, null);\r
+ jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(jArchCheckBox, null);\r
+ jContentPane.add(getJButtonOk(), null);\r
+ jContentPane.add(getJButtonCancel(), null);\r
+ }\r
+ return jContentPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes Usage type\r
+ \r
+ **/\r
+ private void initFrame() {\r
+ Tools.generateComboBoxByVector(jComboBoxCName, wt.getAllGuidDeclarationsFromWorkspace());\r
+ Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVGuidUsage());\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ *\r
+ * Override actionPerformed to listen all actions\r
+ * \r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ if (arg0.getSource() == jButtonOk) {\r
+ if (checkAdd()) {\r
+ getCurrentGuids();\r
+ this.returnType = DataType.RETURN_TYPE_OK;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonCancel) {\r
+ this.returnType = DataType.RETURN_TYPE_CANCEL;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ /**\r
+ Data validation for all fields\r
+ \r
+ @retval true - All datas are valid\r
+ @retval false - At least one data is invalid\r
+ \r
+ **/\r
+ public boolean checkAdd() {\r
+ //\r
+ // Check if all fields have correct data types \r
+ //\r
+\r
+ //\r
+ // Check Name \r
+ //\r
+ if (!isEmpty(this.jComboBoxCName.getSelectedItem().toString())) {\r
+ if (!DataValidation.isC_NameType(this.jComboBoxCName.getSelectedItem().toString())) {\r
+ Log.err("Incorrect data type for Guid Name");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ //\r
+ // Check FeatureFlag\r
+ //\r
+ if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
+ if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
+ Log.err("Incorrect data type for Feature Flag");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ private GuidsIdentification getCurrentGuids() {\r
+ String arg0 = this.jComboBoxCName.getSelectedItem().toString();\r
+ String arg1 = this.jComboBoxUsage.getSelectedItem().toString();\r
+\r
+ String arg2 = this.jTextFieldFeatureFlag.getText();\r
+ Vector<String> arg3 = this.jArchCheckBox.getSelectedItemsVector();\r
+ String arg4 = this.jTextFieldHelpText.getText();\r
+\r
+ id = new GuidsIdentification(arg0, arg1, arg2, arg3, arg4);\r
+ return id;\r
+ }\r
+\r
+ public GuidsIdentification getId() {\r
+ return id;\r
+ }\r
+\r
+ public void setId(GuidsIdentification id) {\r
+ this.id = id;\r
+ }\r
+}\r
--- /dev/null
+/** @file\r
+ \r
+ The file is used to create, update Formset of MSA/MBD file\r
+ \r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+ \r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ \r
+ **/\r
+package org.tianocore.frameworkwizard.module.ui.dialog;\r
+\r
+import java.awt.event.ActionEvent;\r
+import java.util.Vector;\r
+\r
+import javax.swing.JButton;\r
+import javax.swing.JComboBox;\r
+import javax.swing.JLabel;\r
+import javax.swing.JPanel;\r
+import javax.swing.JScrollPane;\r
+import javax.swing.JTextField;\r
+\r
+import org.tianocore.frameworkwizard.common.DataType;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.Log;\r
+import org.tianocore.frameworkwizard.common.Tools;\r
+import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
+import org.tianocore.frameworkwizard.common.ui.IDialog;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
+import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
+import org.tianocore.frameworkwizard.module.Identifications.HiiPackages.HiiPackagesIdentification;\r
+\r
+/**\r
+ The class is used to create, update Formset of MSA/MBD file\r
+ It extends IInternalFrame\r
+ \r
+\r
+\r
+ **/\r
+public class HiiPackagesDlg extends IDialog {\r
+\r
+ ///\r
+ /// Define class Serial Version UID\r
+ ///\r
+ private static final long serialVersionUID = -6851574146786158116L;\r
+\r
+ //\r
+ //Define class members\r
+ //\r
+ private JPanel jContentPane = null;\r
+\r
+ private JLabel jLabelName = null;\r
+\r
+ private JTextField jTextFieldName = null;\r
+\r
+ private JLabel jLabelUsage = null;\r
+\r
+ private JComboBox jComboBoxUsage = null;\r
+\r
+ private StarLabel jStarLabel1 = null;\r
+\r
+ private StarLabel jStarLabel2 = null;\r
+\r
+ private JLabel jLabelFeatureFlag = null;\r
+\r
+ private JTextField jTextFieldFeatureFlag = null;\r
+\r
+ private JLabel jLabelArch = null;\r
+\r
+ private JScrollPane jScrollPane = null;\r
+\r
+ private JLabel jLabelHelpText = null;\r
+\r
+ private JTextField jTextFieldHelpText = null;\r
+\r
+ private ArchCheckBox jArchCheckBox = null;\r
+\r
+ private JButton jButtonOk = null;\r
+\r
+ private JButton jButtonCancel = null;\r
+\r
+ //\r
+ // Not used by UI\r
+ //\r
+ private HiiPackagesIdentification id = null;\r
+\r
+ private EnumerationData ed = new EnumerationData();\r
+\r
+ /**\r
+ This method initializes jTextFieldName \r
+ \r
+ @return javax.swing.JTextField jTextFieldName\r
+ \r
+ **/\r
+ private JTextField getJTextFieldName() {\r
+ if (jTextFieldName == null) {\r
+ jTextFieldName = new JTextField();\r
+ jTextFieldName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
+ jTextFieldName.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jTextFieldName.setToolTipText("Enter the C Name of the HII Package");\r
+ }\r
+ return jTextFieldName;\r
+ }\r
+\r
+ /**\r
+ This method initializes jComboBoxUsage \r
+ \r
+ @return javax.swing.JComboBox jComboBoxUsage\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxUsage() {\r
+ if (jComboBoxUsage == null) {\r
+ jComboBoxUsage = new JComboBox();\r
+ jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
+ jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jComboBoxUsage;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldFeatureFlag \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldFeatureFlag() {\r
+ if (jTextFieldFeatureFlag == null) {\r
+ jTextFieldFeatureFlag = new JTextField();\r
+ jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
+ jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldFeatureFlag;\r
+ }\r
+\r
+ /**\r
+ This method initializes jScrollPane \r
+ \r
+ @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPane() {\r
+ if (jScrollPane == null) {\r
+ jScrollPane = new JScrollPane();\r
+ jScrollPane.setViewportView(getJContentPane());\r
+ }\r
+ return jScrollPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldHelpText \r
+ \r
+ @return javax.swing.JTextField \r
+ \r
+ **/\r
+ private JTextField getJTextFieldHelpText() {\r
+ if (jTextFieldHelpText == null) {\r
+ jTextFieldHelpText = new JTextField();\r
+ jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
+ jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldHelpText;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonOk \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonOk() {\r
+ if (jButtonOk == null) {\r
+ jButtonOk = new JButton();\r
+ jButtonOk.setBounds(new java.awt.Rectangle(290, 140, 90, 20));\r
+ jButtonOk.setText("Ok");\r
+ jButtonOk.addActionListener(this);\r
+ }\r
+ return jButtonOk;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonCancel \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonCancel() {\r
+ if (jButtonCancel == null) {\r
+ jButtonCancel = new JButton();\r
+ jButtonCancel.setBounds(new java.awt.Rectangle(390, 140, 90, 20));\r
+ jButtonCancel.setText("Cancel");\r
+ jButtonCancel.addActionListener(this);\r
+ }\r
+ return jButtonCancel;\r
+ }\r
+\r
+ public static void main(String[] args) {\r
+\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ \r
+ **/\r
+ private void init() {\r
+ this.setSize(500, 200);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("Hii Packages");\r
+ initFrame();\r
+ this.setViewMode(false);\r
+ this.centerWindow();\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ Fill values to all fields if these values are not empty\r
+ \r
+ @param inHiiPackagesId\r
+\r
+ **/\r
+ private void init(HiiPackagesIdentification inHiiPackagesId) {\r
+ init();\r
+ this.id = inHiiPackagesId;\r
+\r
+ if (this.id != null) {\r
+ this.jTextFieldName.setText(id.getName());\r
+ this.jComboBoxUsage.setSelectedItem(id.getUsage());\r
+ this.jTextFieldHelpText.setText(id.getHelp());\r
+ this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());\r
+ this.jArchCheckBox.setSelectedItems(id.getSupArchList());\r
+ }\r
+ }\r
+\r
+ /**\r
+ This is the override edit constructor\r
+ \r
+ @param inHiiPackagesIdentification\r
+ @param iFrame\r
+ \r
+ **/\r
+ public HiiPackagesDlg(HiiPackagesIdentification inHiiPackagesIdentification, IFrame iFrame) {\r
+ super(iFrame, true);\r
+ init(inHiiPackagesIdentification);\r
+ }\r
+\r
+ /**\r
+ Disable all components when the mode is view\r
+ \r
+ @param isView true - The view mode; false - The non-view mode\r
+ \r
+ **/\r
+ public void setViewMode(boolean isView) {\r
+ if (isView) {\r
+ this.jTextFieldName.setEnabled(!isView);\r
+ this.jComboBoxUsage.setEnabled(!isView);\r
+ }\r
+ }\r
+\r
+ /**\r
+ This method initializes jContentPane\r
+ \r
+ @return javax.swing.JPanel jContentPane\r
+ \r
+ **/\r
+ private JPanel getJContentPane() {\r
+ if (jContentPane == null) {\r
+ jArchCheckBox = new ArchCheckBox();\r
+ jArchCheckBox.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
+ jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jLabelUsage = new JLabel();\r
+ jLabelUsage.setText("Usage");\r
+ jLabelUsage.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
+ jLabelName = new JLabel();\r
+ jLabelName.setText("Name");\r
+ jLabelName.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
+ jLabelArch = new JLabel();\r
+ jLabelArch.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
+ jLabelArch.setText("Arch");\r
+ jLabelFeatureFlag = new JLabel();\r
+ jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
+ jLabelFeatureFlag.setText("Feature Flag");\r
+ jLabelHelpText = new JLabel();\r
+ jLabelHelpText.setBounds(new java.awt.Rectangle(14, 60, 140, 20));\r
+ jLabelHelpText.setText("Help Text");\r
+\r
+ jContentPane = new JPanel();\r
+ jContentPane.setLayout(null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 165));\r
+\r
+ jContentPane.add(jLabelName, null);\r
+ jContentPane.add(jLabelUsage, null);\r
+ jContentPane.add(getJTextFieldName(), null);\r
+ jContentPane.add(getJComboBoxUsage(), null);\r
+\r
+ jContentPane.add(jLabelFeatureFlag, null);\r
+ jContentPane.add(jLabelArch, null);\r
+ jContentPane.add(getJTextFieldFeatureFlag(), null);\r
+\r
+ jStarLabel1 = new StarLabel();\r
+ jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
+ jStarLabel2 = new StarLabel();\r
+ jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
+\r
+ jContentPane.add(jStarLabel1, null);\r
+ jContentPane.add(jStarLabel2, null);\r
+\r
+ jContentPane.add(jLabelHelpText, null);\r
+ jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(jArchCheckBox, null);\r
+ jContentPane.add(getJButtonOk(), null);\r
+ jContentPane.add(getJButtonCancel(), null);\r
+ }\r
+ return jContentPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes Usage type\r
+ \r
+ **/\r
+ private void initFrame() {\r
+ Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVHiiPackageUsage());\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ *\r
+ * Override actionPerformed to listen all actions\r
+ * \r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ if (arg0.getSource() == jButtonOk) {\r
+ if (checkAdd()) {\r
+ getCurrentHiiPackages();\r
+ this.returnType = DataType.RETURN_TYPE_OK;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonCancel) {\r
+ this.returnType = DataType.RETURN_TYPE_CANCEL;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ /**\r
+ Data validation for all fields\r
+ \r
+ @retval true - All datas are valid\r
+ @retval false - At least one data is invalid\r
+ \r
+ **/\r
+ public boolean checkAdd() {\r
+ //\r
+ // Check if all fields have correct data types \r
+ //\r
+\r
+ //\r
+ // Check Hii Package Name \r
+ //\r
+ if (isEmpty(this.jTextFieldName.getText())) {\r
+ Log.err("Hii Package Name Record couldn't be empty");\r
+ return false;\r
+ }\r
+\r
+ if (!isEmpty(this.jTextFieldName.getText())) {\r
+ if (!DataValidation.isC_NameType(this.jTextFieldName.getText())) {\r
+ Log.err("Incorrect data type for Hii Package Name");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ //\r
+ // Check FeatureFlag\r
+ //\r
+ if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
+ if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
+ Log.err("Incorrect data type for Feature Flag");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ private HiiPackagesIdentification getCurrentHiiPackages() {\r
+ String arg0 = this.jTextFieldName.getText();\r
+ String arg1 = this.jComboBoxUsage.getSelectedItem().toString();\r
+\r
+ String arg2 = this.jTextFieldFeatureFlag.getText();\r
+ Vector<String> arg3 = this.jArchCheckBox.getSelectedItemsVector();\r
+ String arg4 = this.jTextFieldHelpText.getText();\r
+\r
+ id = new HiiPackagesIdentification(arg0, arg1, arg2, arg3, arg4);\r
+ return id;\r
+ }\r
+\r
+ public HiiPackagesIdentification getId() {\r
+ return id;\r
+ }\r
+\r
+ public void setId(HiiPackagesIdentification id) {\r
+ this.id = id;\r
+ }\r
+}\r
--- /dev/null
+/** @file\r
+ \r
+ The file is used to create, update Hob of MSA/MBD file\r
+ \r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+ \r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ \r
+ **/\r
+package org.tianocore.frameworkwizard.module.ui.dialog;\r
+\r
+import java.awt.event.ActionEvent;\r
+import java.util.Vector;\r
+\r
+import javax.swing.JButton;\r
+import javax.swing.JComboBox;\r
+import javax.swing.JLabel;\r
+import javax.swing.JPanel;\r
+import javax.swing.JScrollPane;\r
+import javax.swing.JTextField;\r
+\r
+import org.tianocore.frameworkwizard.common.DataType;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.Log;\r
+import org.tianocore.frameworkwizard.common.Tools;\r
+import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
+import org.tianocore.frameworkwizard.common.ui.IDialog;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
+import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
+import org.tianocore.frameworkwizard.module.Identifications.Hobs.HobsIdentification;\r
+import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
+\r
+/**\r
+ The class is used to create, update Hob of MSA/MBD file\r
+ It extends IInternalFrame\r
+ \r
+ **/\r
+public class HobsDlg extends IDialog {\r
+\r
+ ///\r
+ /// Define class Serial Version UID\r
+ ///\r
+ private static final long serialVersionUID = -553473437579358325L;\r
+\r
+ //\r
+ //Define class members\r
+ //\r
+ private JPanel jContentPane = null;\r
+\r
+ private JLabel jLabel = null;\r
+\r
+ private JComboBox jComboBoxGuidC_Name = null;\r
+\r
+ private JLabel jLabelUsage = null;\r
+\r
+ private JLabel jLabelHobType = null;\r
+\r
+ private JComboBox jComboBoxUsage = null;\r
+\r
+ private JComboBox jComboBoxHobType = null;\r
+\r
+ private StarLabel jStarLabel1 = null;\r
+\r
+ private JLabel jLabelArch = null;\r
+\r
+ private JScrollPane jScrollPane = null;\r
+\r
+ private JLabel jLabelFeatureFlag = null;\r
+\r
+ private JTextField jTextFieldFeatureFlag = null;\r
+\r
+ private JLabel jLabelHelpText = null;\r
+\r
+ private JTextField jTextFieldHelpText = null;\r
+\r
+ private ArchCheckBox jArchCheckBox = null;\r
+\r
+ private JButton jButtonOk = null;\r
+\r
+ private JButton jButtonCancel = null;\r
+\r
+ //\r
+ // Not used by UI\r
+ //\r
+ private HobsIdentification id = null;\r
+\r
+ private EnumerationData ed = new EnumerationData();\r
+\r
+ private WorkspaceTools wt = new WorkspaceTools();\r
+\r
+ /**\r
+ This method initializes jTextField \r
+ \r
+ @return javax.swing.JTextField jTextFieldC_Name\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxGuidC_Name() {\r
+ if (jComboBoxGuidC_Name == null) {\r
+ jComboBoxGuidC_Name = new JComboBox();\r
+ jComboBoxGuidC_Name.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
+ jComboBoxGuidC_Name.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jComboBoxGuidC_Name.setToolTipText("Select the GUID C Name of the Hob");\r
+ }\r
+ return jComboBoxGuidC_Name;\r
+ }\r
+\r
+ /**\r
+ This method initializes jComboBoxUsage \r
+ \r
+ @return javax.swing.JComboBox jComboBoxUsage\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxUsage() {\r
+ if (jComboBoxUsage == null) {\r
+ jComboBoxUsage = new JComboBox();\r
+ jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
+ jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jComboBoxUsage;\r
+ }\r
+\r
+ /**\r
+ This method initializes jComboBoxHobType \r
+ \r
+ @return javax.swing.JComboBox jComboBoxHobType\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxHobType() {\r
+ if (jComboBoxHobType == null) {\r
+ jComboBoxHobType = new JComboBox();\r
+ jComboBoxHobType.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
+ jComboBoxHobType.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jComboBoxHobType;\r
+ }\r
+\r
+ /**\r
+ This method initializes jScrollPane \r
+ \r
+ @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPane() {\r
+ if (jScrollPane == null) {\r
+ jScrollPane = new JScrollPane();\r
+ jScrollPane.setViewportView(getJContentPane());\r
+ }\r
+ return jScrollPane;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldFeatureFlag \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldFeatureFlag() {\r
+ if (jTextFieldFeatureFlag == null) {\r
+ jTextFieldFeatureFlag = new JTextField();\r
+ jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
+ jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldFeatureFlag;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldHelpText \r
+ \r
+ @return javax.swing.JTextField \r
+ \r
+ **/\r
+ private JTextField getJTextFieldHelpText() {\r
+ if (jTextFieldHelpText == null) {\r
+ jTextFieldHelpText = new JTextField();\r
+ jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
+ jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldHelpText;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonOk \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonOk() {\r
+ if (jButtonOk == null) {\r
+ jButtonOk = new JButton();\r
+ jButtonOk.setBounds(new java.awt.Rectangle(290, 165, 90, 20));\r
+ jButtonOk.setText("Ok");\r
+ jButtonOk.addActionListener(this);\r
+ }\r
+ return jButtonOk;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonCancel \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonCancel() {\r
+ if (jButtonCancel == null) {\r
+ jButtonCancel = new JButton();\r
+ jButtonCancel.setBounds(new java.awt.Rectangle(390, 165, 90, 20));\r
+ jButtonCancel.setText("Cancel");\r
+ jButtonCancel.addActionListener(this);\r
+ }\r
+ return jButtonCancel;\r
+ }\r
+\r
+ public static void main(String[] args) {\r
+\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ \r
+ **/\r
+ private void init() {\r
+ this.setSize(500, 225);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("Hobs");\r
+ initFrame();\r
+ this.setViewMode(false);\r
+ this.centerWindow();\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ Fill values to all fields if these values are not empty\r
+ \r
+ @param inHobsId\r
+\r
+ **/\r
+ private void init(HobsIdentification inHobsId) {\r
+ init();\r
+ this.id = inHobsId;\r
+\r
+ if (this.id != null) {\r
+ this.jComboBoxGuidC_Name.setSelectedItem(id.getName());\r
+ this.jComboBoxHobType.setSelectedItem(id.getType());\r
+ this.jComboBoxUsage.setSelectedItem(id.getUsage());\r
+ this.jTextFieldHelpText.setText(id.getHelp());\r
+ this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());\r
+ this.jArchCheckBox.setSelectedItems(id.getSupArchList());\r
+ }\r
+ }\r
+\r
+ /**\r
+ This is the override edit constructor\r
+ \r
+ @param inHobsIdentification\r
+ @param iFrame\r
+ \r
+ **/\r
+ public HobsDlg(HobsIdentification inHobsIdentification, IFrame iFrame) {\r
+ super(iFrame, true);\r
+ init(inHobsIdentification);\r
+ }\r
+\r
+ /**\r
+ Disable all components when the mode is view\r
+ \r
+ @param isView true - The view mode; false - The non-view mode\r
+ \r
+ **/\r
+ public void setViewMode(boolean isView) {\r
+ if (isView) {\r
+ this.jComboBoxGuidC_Name.setEnabled(!isView);\r
+ this.jComboBoxUsage.setEnabled(!isView);\r
+ this.jComboBoxHobType.setEnabled(!isView);\r
+ }\r
+ }\r
+\r
+ /**\r
+ This method initializes jContentPane\r
+ \r
+ @return javax.swing.JPanel jContentPane\r
+ \r
+ **/\r
+ public JPanel getJContentPane() {\r
+ if (jContentPane == null) {\r
+ jArchCheckBox = new ArchCheckBox();\r
+ jArchCheckBox.setBounds(new java.awt.Rectangle(160, 135, 320, 20));\r
+ jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jLabelFeatureFlag = new JLabel();\r
+ jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
+ jLabelFeatureFlag.setText("Feature Flag");\r
+ jLabelArch = new JLabel();\r
+ jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 140, 20));\r
+ jLabelArch.setText("Arch");\r
+ jLabelHobType = new JLabel();\r
+ jLabelHobType.setText("Hob Type");\r
+ jLabelHobType.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
+ jLabelUsage = new JLabel();\r
+ jLabelUsage.setText("Usage");\r
+ jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
+ jLabel = new JLabel();\r
+ jLabel.setText("Guid C_Name");\r
+ jLabel.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
+ jLabelHelpText = new JLabel();\r
+ jLabelHelpText.setBounds(new java.awt.Rectangle(14, 85, 140, 20));\r
+ jLabelHelpText.setText("Help Text");\r
+\r
+ jContentPane = new JPanel();\r
+ jContentPane.setLayout(null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 190));\r
+\r
+ jContentPane.add(jLabel, null);\r
+ jContentPane.add(getJComboBoxGuidC_Name(), null);\r
+ jContentPane.add(jLabelUsage, null);\r
+ jContentPane.add(jLabelHobType, null);\r
+ jContentPane.add(getJComboBoxUsage(), null);\r
+ jContentPane.add(getJComboBoxHobType(), null);\r
+ jStarLabel1 = new StarLabel();\r
+ jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
+ jContentPane.add(jStarLabel1, null);\r
+\r
+ jContentPane.add(jLabelArch, null);\r
+\r
+ jContentPane.add(jLabelFeatureFlag, null);\r
+ jContentPane.add(getJTextFieldFeatureFlag(), null);\r
+ jContentPane.add(jLabelHelpText, null);\r
+ jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(jArchCheckBox, null);\r
+ jContentPane.add(getJButtonOk(), null);\r
+ jContentPane.add(getJButtonCancel(), null);\r
+ }\r
+ return jContentPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes Usage type and Hob type\r
+ \r
+ **/\r
+ private void initFrame() {\r
+ Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVHobUsage());\r
+ Tools.generateComboBoxByVector(jComboBoxHobType, ed.getVHobType());\r
+ Tools.generateComboBoxByVector(jComboBoxGuidC_Name, wt.getAllGuidDeclarationsFromWorkspace());\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ *\r
+ * Override actionPerformed to listen all actions\r
+ * \r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ if (arg0.getSource() == jButtonOk) {\r
+ if (checkAdd()) {\r
+ getCurrentHobs();\r
+ this.returnType = DataType.RETURN_TYPE_OK;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonCancel) {\r
+ this.returnType = DataType.RETURN_TYPE_CANCEL;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ /**\r
+ Data validation for all fields\r
+ \r
+ @retval true - All datas are valid\r
+ @retval false - At least one data is invalid\r
+ \r
+ **/\r
+ public boolean checkAdd() {\r
+ //\r
+ // Check if all fields have correct data types \r
+ //\r
+\r
+ //\r
+ // Check Name \r
+ //\r
+ if (isEmpty(this.jComboBoxGuidC_Name.getSelectedItem().toString())) {\r
+ Log.err("Hob Name couldn't be empty");\r
+ return false;\r
+ }\r
+\r
+ if (!isEmpty(this.jComboBoxGuidC_Name.getSelectedItem().toString())) {\r
+ if (!DataValidation.isC_NameType(this.jComboBoxGuidC_Name.getSelectedItem().toString())) {\r
+ Log.err("Incorrect data type for Hob Name");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ //\r
+ // Check FeatureFlag\r
+ //\r
+ if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
+ if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
+ Log.err("Incorrect data type for Feature Flag");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ private HobsIdentification getCurrentHobs() {\r
+ String arg0 = this.jComboBoxGuidC_Name.getSelectedItem().toString();\r
+ String arg1 = this.jComboBoxHobType.getSelectedItem().toString();\r
+ String arg2 = this.jComboBoxUsage.getSelectedItem().toString();\r
+\r
+ String arg3 = this.jTextFieldFeatureFlag.getText();\r
+ Vector<String> arg4 = this.jArchCheckBox.getSelectedItemsVector();\r
+ String arg5 = this.jTextFieldHelpText.getText();\r
+ id = new HobsIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
+ return id;\r
+ }\r
+\r
+ public HobsIdentification getId() {\r
+ return id;\r
+ }\r
+\r
+ public void setId(HobsIdentification id) {\r
+ this.id = id;\r
+ }\r
+}\r
--- /dev/null
+/** @file\r
+ \r
+ The file is used to create, update Library Class Definition of MSA/MBD file\r
+ \r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+ \r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ \r
+ **/\r
+package org.tianocore.frameworkwizard.module.ui.dialog;\r
+\r
+import java.awt.Dimension;\r
+import java.awt.event.ActionEvent;\r
+import java.util.Vector;\r
+\r
+import javax.swing.JButton;\r
+import javax.swing.JComboBox;\r
+import javax.swing.JLabel;\r
+import javax.swing.JPanel;\r
+import javax.swing.JScrollPane;\r
+import javax.swing.JTextField;\r
+\r
+import org.tianocore.frameworkwizard.common.DataType;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.Log;\r
+import org.tianocore.frameworkwizard.common.Tools;\r
+import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
+import org.tianocore.frameworkwizard.common.ui.IDialog;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
+import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
+import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
+import org.tianocore.frameworkwizard.module.Identifications.LibraryClass.LibraryClassIdentification;\r
+import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
+\r
+/**\r
+ The class is used to create, update Library Class Definition of MSA/MBD file\r
+ It extends IInternalFrame\r
+ \r
+ **/\r
+public class LibraryClassDefsDlg extends IDialog {\r
+\r
+ ///\r
+ /// Define class Serial Version UID\r
+ ///\r
+ private static final long serialVersionUID = -1743248695411382857L;\r
+\r
+ //\r
+ //Define class members\r
+ //\r
+ private JPanel jContentPane = null;\r
+\r
+ private JComboBox jComboBoxLibraryClassName = null;\r
+\r
+ private JLabel jLabelUsage = null;\r
+\r
+ private JComboBox jComboBoxUsage = null;\r
+\r
+ private JLabel jLabelLibraryClassName = null;\r
+\r
+ private JScrollPane jScrollPane = null;\r
+\r
+ private StarLabel jStarLabel1 = null;\r
+\r
+ private StarLabel jStarLabel2 = null;\r
+\r
+ private JLabel jLabelRecommendedInstanceVersion = null;\r
+\r
+ private JTextField jTextFieldRecommendedInstanceVersion = null;\r
+\r
+ private JLabel jLabelRecommendedInstanceGuid = null;\r
+\r
+ private JTextField jTextFieldRecommendedInstanceGuid = null;\r
+\r
+ private JButton jButtonGenerateGuid = null;\r
+\r
+ private JLabel jLabelFeatureFlag = null;\r
+\r
+ private JTextField jTextFieldFeatureFlag = null;\r
+\r
+ private JLabel jLabelArch = null;\r
+\r
+ private JLabel jLabelModuleList = null;\r
+\r
+ private JScrollPane jScrollPaneModuleList = null;\r
+\r
+ private ICheckBoxList iCheckBoxListModule = null;\r
+\r
+ private JLabel jLabelHelpText = null;\r
+\r
+ private JTextField jTextFieldHelpText = null;\r
+\r
+ private ArchCheckBox jArchCheckBox = null;\r
+ \r
+ private JButton jButtonOk = null;\r
+\r
+ private JButton jButtonCancel = null;\r
+\r
+ //\r
+ // Not for UI\r
+ //\r
+ private EnumerationData ed = new EnumerationData();\r
+\r
+ private WorkspaceTools wt = new WorkspaceTools();\r
+\r
+ private LibraryClassIdentification lcid = null;\r
+\r
+ /**\r
+ This method initializes jComboBoxSelect \r
+ \r
+ @return javax.swing.JComboBox jComboBoxSelect\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxLibraryClassName() {\r
+ if (jComboBoxLibraryClassName == null) {\r
+ jComboBoxLibraryClassName = new JComboBox();\r
+ jComboBoxLibraryClassName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
+ jComboBoxLibraryClassName.setPreferredSize(new Dimension(320, 20));\r
+ jComboBoxLibraryClassName.setEnabled(true);\r
+ }\r
+ return jComboBoxLibraryClassName;\r
+ }\r
+\r
+ /**\r
+ This method initializes jComboBoxUsage \r
+ \r
+ @return javax.swing.JComboBox jComboBoxUsage\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxUsage() {\r
+ if (jComboBoxUsage == null) {\r
+ jComboBoxUsage = new JComboBox();\r
+ jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
+ jComboBoxUsage.setPreferredSize(new Dimension(320, 20));\r
+ }\r
+ return jComboBoxUsage;\r
+ }\r
+\r
+ /**\r
+ This method initializes jScrollPane \r
+ \r
+ @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPane() {\r
+ if (jScrollPane == null) {\r
+ jScrollPane = new JScrollPane();\r
+ jScrollPane.setViewportView(getJContentPane());\r
+ }\r
+ return jScrollPane;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldRecommendedInstanceVersion \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldRecommendedInstanceVersion() {\r
+ if (jTextFieldRecommendedInstanceVersion == null) {\r
+ jTextFieldRecommendedInstanceVersion = new JTextField();\r
+ jTextFieldRecommendedInstanceVersion.setPreferredSize(new java.awt.Dimension(260, 20));\r
+ jTextFieldRecommendedInstanceVersion.setSize(new java.awt.Dimension(260, 20));\r
+ jTextFieldRecommendedInstanceVersion.setLocation(new java.awt.Point(220, 85));\r
+ jTextFieldRecommendedInstanceVersion.setVisible(false);\r
+ }\r
+ return jTextFieldRecommendedInstanceVersion;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldRecommendedInstanceGuid \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldRecommendedInstanceGuid() {\r
+ if (jTextFieldRecommendedInstanceGuid == null) {\r
+ jTextFieldRecommendedInstanceGuid = new JTextField();\r
+ jTextFieldRecommendedInstanceGuid.setBounds(new java.awt.Rectangle(220, 110, 190, 20));\r
+ jTextFieldRecommendedInstanceGuid.setPreferredSize(new java.awt.Dimension(190, 20));\r
+ jTextFieldRecommendedInstanceGuid.setVisible(false);\r
+ }\r
+ return jTextFieldRecommendedInstanceGuid;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonGenerateGuid \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonGenerateGuid() {\r
+ if (jButtonGenerateGuid == null) {\r
+ jButtonGenerateGuid = new JButton();\r
+ jButtonGenerateGuid.setBounds(new java.awt.Rectangle(415, 110, 65, 20));\r
+ jButtonGenerateGuid.setPreferredSize(new java.awt.Dimension(65, 20));\r
+ jButtonGenerateGuid.setText("GEN");\r
+ jButtonGenerateGuid.setVisible(false);\r
+ jButtonGenerateGuid.addActionListener(this);\r
+ }\r
+ return jButtonGenerateGuid;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldFeatureFlag \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldFeatureFlag() {\r
+ if (jTextFieldFeatureFlag == null) {\r
+ jTextFieldFeatureFlag = new JTextField();\r
+ jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
+ jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldFeatureFlag;\r
+ }\r
+\r
+ /**\r
+ This method initializes iCheckBoxListArch \r
+ \r
+ @return ICheckBoxList \r
+ **/\r
+ private ICheckBoxList getICheckBoxListSupModuleList() {\r
+ if (iCheckBoxListModule == null) {\r
+ iCheckBoxListModule = new ICheckBoxList();\r
+ }\r
+ return iCheckBoxListModule;\r
+ }\r
+\r
+ /**\r
+ This method initializes jScrollPaneModuleList \r
+ \r
+ @return javax.swing.JScrollPane \r
+ \r
+ **/\r
+ private JScrollPane getJScrollPaneModuleList() {\r
+ if (jScrollPaneModuleList == null) {\r
+ jScrollPaneModuleList = new JScrollPane();\r
+ jScrollPaneModuleList.setBounds(new java.awt.Rectangle(160, 135, 320, 80));\r
+ jScrollPaneModuleList.setPreferredSize(new java.awt.Dimension(320, 80));\r
+ jScrollPaneModuleList.setViewportView(getICheckBoxListSupModuleList());\r
+ }\r
+ return jScrollPaneModuleList;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldHelpText \r
+ \r
+ @return javax.swing.JTextField \r
+ \r
+ **/\r
+ private JTextField getJTextFieldHelpText() {\r
+ if (jTextFieldHelpText == null) {\r
+ jTextFieldHelpText = new JTextField();\r
+ jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
+ jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldHelpText;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonOk \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonOk() {\r
+ if (jButtonOk == null) {\r
+ jButtonOk = new JButton();\r
+ jButtonOk.setBounds(new java.awt.Rectangle(290, 225, 90, 20));\r
+ jButtonOk.setText("Ok");\r
+ jButtonOk.addActionListener(this);\r
+ }\r
+ return jButtonOk;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonCancel \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonCancel() {\r
+ if (jButtonCancel == null) {\r
+ jButtonCancel = new JButton();\r
+ jButtonCancel.setBounds(new java.awt.Rectangle(390, 225, 90, 20));\r
+ jButtonCancel.setText("Cancel");\r
+ jButtonCancel.addActionListener(this);\r
+ }\r
+ return jButtonCancel;\r
+ }\r
+\r
+ public static void main(String[] args) {\r
+\r
+ }\r
+\r
+ /**\r
+ This is the default constructor\r
+ \r
+ **/\r
+ public LibraryClassDefsDlg(LibraryClassIdentification inLibraryClassIdentification, IFrame iFrame) {\r
+ super(iFrame, true);\r
+ init(inLibraryClassIdentification);\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ \r
+ **/\r
+ private void init() {\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("Library Class Definitions");\r
+ this.setBounds(new java.awt.Rectangle(0, 0, 500, 295));\r
+ initFrame();\r
+ this.setViewMode(false);\r
+ this.centerWindow();\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ \r
+ **/\r
+ private void init(LibraryClassIdentification inLibraryClassIdentification) {\r
+ init();\r
+ this.lcid = inLibraryClassIdentification;\r
+ if (lcid != null) {\r
+ this.jComboBoxLibraryClassName.setSelectedItem(lcid.getLibraryClassName());\r
+ this.jComboBoxUsage.setSelectedItem(lcid.getUsage());\r
+ this.jTextFieldRecommendedInstanceVersion.setText(lcid.getRecommendedInstanceVersion());\r
+ this.jTextFieldRecommendedInstanceGuid.setText(lcid.getRecommendedInstanceGuid());\r
+ this.jTextFieldFeatureFlag.setText(lcid.getFeatureFlag());\r
+ this.jArchCheckBox.setSelectedItems(lcid.getSupArchList());\r
+ this.iCheckBoxListModule.setAllItemsUnchecked();\r
+ this.iCheckBoxListModule.initCheckedItem(true, lcid.getSupModuleList());\r
+ this.jTextFieldHelpText.setText(lcid.getHelp());\r
+ }\r
+ }\r
+\r
+ /**\r
+ Disable all components when the mode is view\r
+ \r
+ @param isView true - The view mode; false - The non-view mode\r
+ \r
+ **/\r
+ public void setViewMode(boolean isView) {\r
+ if (isView) {\r
+ this.jComboBoxLibraryClassName.setEnabled(!isView);\r
+ this.jComboBoxUsage.setEnabled(!isView);\r
+ }\r
+ }\r
+\r
+ /**\r
+ This method initializes jContentPane\r
+ \r
+ @return javax.swing.JPanel jContentPane\r
+ \r
+ **/\r
+ private JPanel getJContentPane() {\r
+ if (jContentPane == null) {\r
+ jArchCheckBox = new ArchCheckBox();\r
+ jArchCheckBox.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
+ jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jLabelHelpText = new JLabel();\r
+ jLabelHelpText.setBounds(new java.awt.Rectangle(14, 60, 140, 20));\r
+ jLabelHelpText.setText("Help Text");\r
+ jLabelModuleList = new JLabel();\r
+ jLabelModuleList.setBounds(new java.awt.Rectangle(15, 135, 140, 20));\r
+ jLabelModuleList.setText("Sup Module List");\r
+ jLabelArch = new JLabel();\r
+ jLabelArch.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
+ jLabelArch.setText("Sup Arch List");\r
+ jLabelFeatureFlag = new JLabel();\r
+ jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
+ jLabelFeatureFlag.setText("Feature Flag");\r
+ jLabelRecommendedInstanceGuid = new JLabel();\r
+ jLabelRecommendedInstanceGuid.setBounds(new java.awt.Rectangle(15, 110, 200, 20));\r
+ jLabelRecommendedInstanceGuid.setText("Recommended Instance Guid");\r
+ jLabelRecommendedInstanceGuid.setVisible(false);\r
+ jLabelRecommendedInstanceVersion = new JLabel();\r
+ jLabelRecommendedInstanceVersion.setBounds(new java.awt.Rectangle(15, 85, 200, 20));\r
+ jLabelRecommendedInstanceVersion.setText("Recommended Instance Version");\r
+ jLabelRecommendedInstanceVersion.setVisible(false);\r
+ jLabelLibraryClassName = new JLabel();\r
+ jLabelLibraryClassName.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
+ jLabelLibraryClassName.setText("Library Class Name");\r
+ jLabelUsage = new JLabel();\r
+ jLabelUsage.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
+ jLabelUsage.setText("Usage");\r
+ jContentPane = new JPanel();\r
+ jContentPane.setLayout(null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 245));\r
+\r
+ jContentPane.add(getJComboBoxLibraryClassName(), null);\r
+ jContentPane.add(jLabelUsage, null);\r
+ jContentPane.add(getJComboBoxUsage(), null);\r
+ jContentPane.add(jLabelLibraryClassName, null);\r
+ jContentPane.add(jLabelRecommendedInstanceVersion, null);\r
+ jContentPane.add(getJTextFieldRecommendedInstanceVersion(), null);\r
+ jContentPane.add(jLabelRecommendedInstanceGuid, null);\r
+ jContentPane.add(getJTextFieldRecommendedInstanceGuid(), null);\r
+ jContentPane.add(getJButtonGenerateGuid(), null);\r
+ jContentPane.add(jLabelFeatureFlag, null);\r
+ jContentPane.add(getJTextFieldFeatureFlag(), null);\r
+ jContentPane.add(jLabelArch, null);\r
+ jStarLabel1 = new StarLabel();\r
+ jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
+ jStarLabel2 = new StarLabel();\r
+ jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
+\r
+ jContentPane.add(jStarLabel1, null);\r
+ jContentPane.add(jStarLabel2, null);\r
+ jContentPane.add(jLabelModuleList, null);\r
+ jContentPane.add(getJScrollPaneModuleList(), null);\r
+ jContentPane.add(jLabelHelpText, null);\r
+ jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(jArchCheckBox, null);\r
+ jContentPane.add(getJButtonOk(), null);\r
+ jContentPane.add(getJButtonCancel(), null);\r
+ }\r
+ return jContentPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes all existing libraries and usage types\r
+ \r
+ **/\r
+ private void initFrame() {\r
+ Tools.generateComboBoxByVector(jComboBoxLibraryClassName, wt.getAllLibraryClassDefinitionsFromWorkspace());\r
+ Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVLibraryUsage());\r
+ this.iCheckBoxListModule.setAllItems(ed.getVFrameworkModuleTypes());\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ *\r
+ * Override actionPerformed to listen all actions\r
+ * \r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ if (arg0.getSource() == jButtonGenerateGuid) {\r
+ this.jTextFieldRecommendedInstanceGuid.setText(Tools.generateUuidString());\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonOk) {\r
+ if (checkAdd()) {\r
+ getCurrentLibraryClass();\r
+ this.returnType = DataType.RETURN_TYPE_OK;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonCancel) {\r
+ this.returnType = DataType.RETURN_TYPE_CANCEL;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ /**\r
+ Data validation for all fields\r
+ \r
+ @retval true - All datas are valid\r
+ @retval false - At least one data is invalid\r
+ \r
+ **/\r
+ public boolean checkAdd() {\r
+ //\r
+ // Check LibraryClass\r
+ //\r
+ if (this.jComboBoxLibraryClassName.getSelectedItem() == null) {\r
+ Log.err("No Library Class can be added");\r
+ return false;\r
+ }\r
+ if (!DataValidation.isLibraryClass(this.jComboBoxLibraryClassName.getSelectedItem().toString())) {\r
+ Log.err("Incorrect data type for Library Class");\r
+ return false;\r
+ }\r
+\r
+ //\r
+ // Check RecommendedInstanceVersion\r
+ //\r
+ // if (!isEmpty(this.jTextFieldRecommendedInstanceVersion.getText())) {\r
+ // if (!DataValidation.isRecommendedInstanceVersion(this.jTextFieldRecommendedInstanceVersion.getText())) {\r
+ // Log.err("Incorrect data type for Recommended Instance Version");\r
+ // return false;\r
+ // }\r
+ // }\r
+\r
+ //\r
+ // Check RecommendedInstanceGuid\r
+ //\r
+ // if (!isEmpty(this.jTextFieldRecommendedInstanceGuid.getText())) {\r
+ // if (!DataValidation.isGuid(this.jTextFieldRecommendedInstanceGuid.getText())) {\r
+ // Log.err("Incorrect data type for Recommended Instance Guid");\r
+ // return false;\r
+ // }\r
+ // }\r
+\r
+ //\r
+ // Check FeatureFlag\r
+ //\r
+ if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
+ if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
+ Log.err("Incorrect data type for Feature Flag");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ private LibraryClassIdentification getCurrentLibraryClass() {\r
+ String name = this.jComboBoxLibraryClassName.getSelectedItem().toString();\r
+ String usage = this.jComboBoxUsage.getSelectedItem().toString();\r
+ String version = this.jTextFieldRecommendedInstanceVersion.getText();\r
+ String guid = this.jTextFieldRecommendedInstanceGuid.getText();\r
+ String featureFlag = this.jTextFieldFeatureFlag.getText();\r
+ Vector<String> arch = this.jArchCheckBox.getSelectedItemsVector();\r
+ Vector<String> module = this.iCheckBoxListModule.getAllCheckedItemsString();\r
+ String help = this.jTextFieldHelpText.getText();\r
+ lcid = new LibraryClassIdentification(name, usage, version, guid, arch, featureFlag, module, help);\r
+ return lcid;\r
+ }\r
+\r
+ public LibraryClassIdentification getLcid() {\r
+ return lcid;\r
+ }\r
+\r
+ public void setLcid(LibraryClassIdentification lcid) {\r
+ this.lcid = lcid;\r
+ }\r
+}\r
--- /dev/null
+/** @file\r
+ \r
+ The file is used to create, update PCD of MSA/MBD file\r
+ \r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+ \r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ \r
+ **/\r
+package org.tianocore.frameworkwizard.module.ui.dialog;\r
+\r
+import java.awt.event.ActionEvent;\r
+import java.util.Vector;\r
+\r
+import javax.swing.JButton;\r
+import javax.swing.JComboBox;\r
+import javax.swing.JLabel;\r
+import javax.swing.JPanel;\r
+import javax.swing.JScrollPane;\r
+import javax.swing.JTextField;\r
+\r
+import org.tianocore.frameworkwizard.common.DataType;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.Log;\r
+import org.tianocore.frameworkwizard.common.Tools;\r
+import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
+import org.tianocore.frameworkwizard.common.ui.IDialog;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
+import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
+import org.tianocore.frameworkwizard.module.Identifications.PcdCoded.PcdCodedIdentification;\r
+import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
+\r
+/**\r
+ The class is used to create, update PCD of MSA/MBD file\r
+ It extends IInternalFrame\r
+ \r
+\r
+\r
+ **/\r
+public class PCDsDlg extends IDialog {\r
+\r
+ ///\r
+ /// Define class Serial Version UID\r
+ ///\r
+ private static final long serialVersionUID = 2227717658188438696L;\r
+\r
+ //\r
+ //Define class members\r
+ //\r
+ private JPanel jContentPane = null;\r
+\r
+ private JLabel jLabelItemType = null;\r
+\r
+ private JLabel jLabelC_Name = null;\r
+\r
+ private JComboBox jComboBoxItemType = null;\r
+\r
+ private JComboBox jComboBoxCName = null;\r
+\r
+ private JLabel jLabelDefaultValue = null;\r
+\r
+ private JTextField jTextFieldDefaultValue = null;\r
+\r
+ private StarLabel jStarLabel1 = null;\r
+\r
+ private StarLabel jStarLabel2 = null;\r
+\r
+ private StarLabel jStarLabel3 = null;\r
+\r
+ private JLabel jLabelHelpText = null;\r
+\r
+ private JTextField jTextFieldHelpText = null;\r
+\r
+ private JScrollPane jScrollPane = null;\r
+\r
+ private JLabel jLabelTokenSpaceGuid = null;\r
+\r
+ private JTextField jTextFieldTokenSpaceGuid = null;\r
+\r
+ private JLabel jLabelFeatureFlag = null;\r
+\r
+ private JTextField jTextFieldFeatureFlag = null;\r
+\r
+ private JLabel jLabelArch = null;\r
+\r
+ private ArchCheckBox jArchCheckBox = null;\r
+\r
+ private JButton jButtonOk = null;\r
+\r
+ private JButton jButtonCancel = null;\r
+\r
+ //\r
+ // Not used by UI\r
+ //\r
+ private PcdCodedIdentification id = null;\r
+\r
+ private EnumerationData ed = new EnumerationData();\r
+\r
+ private WorkspaceTools wt = new WorkspaceTools();\r
+\r
+ /**\r
+ This method initializes jComboBoxItemType \r
+ \r
+ @return javax.swing.JComboBox jComboBoxItemType\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxItemType() {\r
+ if (jComboBoxItemType == null) {\r
+ jComboBoxItemType = new JComboBox();\r
+ jComboBoxItemType.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
+ jComboBoxItemType.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jComboBoxItemType;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldC_Name \r
+ \r
+ @return javax.swing.JTextField jTextFieldC_Name\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxCName() {\r
+ if (jComboBoxCName == null) {\r
+ jComboBoxCName = new JComboBox();\r
+ jComboBoxCName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
+ jComboBoxCName.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jComboBoxCName;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldDefaultValue \r
+ \r
+ @return javax.swing.JTextField jTextFieldDefaultValue\r
+ \r
+ **/\r
+ private JTextField getJTextFieldDefaultValue() {\r
+ if (jTextFieldDefaultValue == null) {\r
+ jTextFieldDefaultValue = new JTextField();\r
+ jTextFieldDefaultValue.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
+ jTextFieldDefaultValue.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldDefaultValue;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldHelpText \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldHelpText() {\r
+ if (jTextFieldHelpText == null) {\r
+ jTextFieldHelpText = new JTextField();\r
+ jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
+ jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldHelpText;\r
+ }\r
+\r
+ /**\r
+ This method initializes jScrollPane \r
+ \r
+ @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPane() {\r
+ if (jScrollPane == null) {\r
+ jScrollPane = new JScrollPane();\r
+ jScrollPane.setViewportView(getJContentPane());\r
+ }\r
+ return jScrollPane;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldTokenSpaceGuid \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldTokenSpaceGuid() {\r
+ if (jTextFieldTokenSpaceGuid == null) {\r
+ jTextFieldTokenSpaceGuid = new JTextField();\r
+ jTextFieldTokenSpaceGuid.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
+ jTextFieldTokenSpaceGuid.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jTextFieldTokenSpaceGuid.setVisible(false);\r
+ }\r
+ return jTextFieldTokenSpaceGuid;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldFeatureFlag \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldFeatureFlag() {\r
+ if (jTextFieldFeatureFlag == null) {\r
+ jTextFieldFeatureFlag = new JTextField();\r
+ jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
+ jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldFeatureFlag;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonOk \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonOk() {\r
+ if (jButtonOk == null) {\r
+ jButtonOk = new JButton();\r
+ jButtonOk.setBounds(new java.awt.Rectangle(290, 165, 90, 20));\r
+ jButtonOk.setText("Ok");\r
+ jButtonOk.addActionListener(this);\r
+ }\r
+ return jButtonOk;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonCancel \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonCancel() {\r
+ if (jButtonCancel == null) {\r
+ jButtonCancel = new JButton();\r
+ jButtonCancel.setBounds(new java.awt.Rectangle(390, 165, 90, 20));\r
+ jButtonCancel.setText("Cancel");\r
+ jButtonCancel.addActionListener(this);\r
+ }\r
+ return jButtonCancel;\r
+ }\r
+\r
+ public static void main(String[] args) {\r
+\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ \r
+ **/\r
+ private void init() {\r
+ this.setSize(500, 225);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("Pcd Coded");\r
+ initFrame();\r
+ this.setViewMode(false);\r
+ this.centerWindow();\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ Fill values to all fields if these values are not empty\r
+ \r
+ @param inPcdCodedId\r
+\r
+ **/\r
+ private void init(PcdCodedIdentification inPcdCodedId) {\r
+ init();\r
+ this.id = inPcdCodedId;\r
+\r
+ if (this.id != null) {\r
+ this.jComboBoxCName.setSelectedItem(id.getName());\r
+ this.jTextFieldTokenSpaceGuid.setText(id.getGuid());\r
+ this.jTextFieldDefaultValue.setText(id.getValue());\r
+ this.jTextFieldHelpText.setText(id.getHelp());\r
+ this.jComboBoxItemType.setSelectedItem(id.getType());\r
+ this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());\r
+ this.jArchCheckBox.setSelectedItems(id.getSupArchList());\r
+ }\r
+ }\r
+\r
+ /**\r
+ This is the override edit constructor\r
+ \r
+ @param inPcdCodedId\r
+ @param iFrame\r
+ \r
+ **/\r
+ public PCDsDlg(PcdCodedIdentification inPcdCodedId, IFrame iFrame) {\r
+ super(iFrame, true);\r
+ init(inPcdCodedId);\r
+ }\r
+\r
+ /**\r
+ Disable all components when the mode is view\r
+ \r
+ @param isView true - The view mode; false - The non-view mode\r
+ \r
+ **/\r
+ public void setViewMode(boolean isView) {\r
+ if (isView) {\r
+ this.jTextFieldDefaultValue.setEnabled(!isView);\r
+ this.jComboBoxItemType.setEnabled(!isView);\r
+ }\r
+ }\r
+\r
+ /**\r
+ This method initializes jContentPane\r
+ \r
+ @return javax.swing.JPanel jContentPane\r
+ \r
+ **/\r
+ private JPanel getJContentPane() {\r
+ if (jContentPane == null) {\r
+ jArchCheckBox = new ArchCheckBox();\r
+ jArchCheckBox.setBounds(new java.awt.Rectangle(160, 135, 320, 20));\r
+ jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jLabelArch = new JLabel();\r
+ jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 140, 20));\r
+ jLabelArch.setText("Sup Arch List");\r
+ jLabelFeatureFlag = new JLabel();\r
+ jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
+ jLabelFeatureFlag.setText("Feature Flag");\r
+ jLabelTokenSpaceGuid = new JLabel();\r
+ jLabelTokenSpaceGuid.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
+ jLabelTokenSpaceGuid.setText("Token Space C_Name");\r
+ jLabelTokenSpaceGuid.setVisible(false);\r
+ jLabelHelpText = new JLabel();\r
+ jLabelHelpText.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
+ jLabelHelpText.setText("Help Text");\r
+ jLabelC_Name = new JLabel();\r
+ jLabelC_Name.setText("C_Name");\r
+ jLabelC_Name.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
+ jLabelDefaultValue = new JLabel();\r
+ jLabelDefaultValue.setText("Default Value");\r
+ jLabelDefaultValue.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
+ jLabelItemType = new JLabel();\r
+ jLabelItemType.setText("Item Type");\r
+ jLabelItemType.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
+\r
+ jContentPane = new JPanel();\r
+ jContentPane.setLayout(null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 190));\r
+\r
+ jContentPane.add(jLabelItemType, null);\r
+ jContentPane.add(jLabelC_Name, null);\r
+ jContentPane.add(getJComboBoxCName(), null);\r
+ jContentPane.add(jLabelDefaultValue, null);\r
+ jContentPane.add(getJTextFieldDefaultValue(), null);\r
+ jContentPane.add(getJComboBoxItemType(), null);\r
+ jStarLabel1 = new StarLabel();\r
+ jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
+ jStarLabel2 = new StarLabel();\r
+ jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
+ jStarLabel3 = new StarLabel();\r
+ jStarLabel3.setLocation(new java.awt.Point(0, 85));\r
+ jContentPane.add(jStarLabel1, null);\r
+ jContentPane.add(jStarLabel2, null);\r
+ jContentPane.add(jStarLabel3, null);\r
+ jContentPane.add(jLabelHelpText, null);\r
+ jContentPane.add(getJTextFieldHelpText(), null);\r
+\r
+ jContentPane.add(jLabelTokenSpaceGuid, null);\r
+ jContentPane.add(getJTextFieldTokenSpaceGuid(), null);\r
+ jContentPane.add(jLabelFeatureFlag, null);\r
+ jContentPane.add(getJTextFieldFeatureFlag(), null);\r
+ jContentPane.add(jLabelArch, null);\r
+ jContentPane.add(jArchCheckBox, null);\r
+ jContentPane.add(getJButtonOk(), null);\r
+ jContentPane.add(getJButtonCancel(), null);\r
+ }\r
+ return jContentPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes Usage type, Item type and Datum type\r
+ \r
+ **/\r
+ private void initFrame() {\r
+ Tools.generateComboBoxByVector(jComboBoxCName, wt.getAllPcdDeclarationsFromWorkspace());\r
+ Tools.generateComboBoxByVector(jComboBoxItemType, ed.getVPcdItemTypes());\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ *\r
+ * Override actionPerformed to listen all actions\r
+ * \r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ if (arg0.getSource() == jButtonOk) {\r
+ if (checkAdd()) {\r
+ getCurrentPcdCoded();\r
+ this.returnType = DataType.RETURN_TYPE_OK;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonCancel) {\r
+ this.returnType = DataType.RETURN_TYPE_CANCEL;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ /**\r
+ Data validation for all fields\r
+ \r
+ @retval true - All datas are valid\r
+ @retval false - At least one data is invalid\r
+ \r
+ **/\r
+ public boolean checkAdd() {\r
+ //\r
+ // Check if all fields have correct data types \r
+ //\r
+\r
+ //\r
+ // Check C_Name \r
+ //\r
+ if (!isEmpty(this.jComboBoxCName.getSelectedItem().toString())) {\r
+ if (!DataValidation.isC_NameType(this.jComboBoxCName.getSelectedItem().toString())) {\r
+ Log.err("Incorrect data type for C_Name");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ //\r
+ // Check TokenSpaceGuid\r
+ //\r
+ // if (!isEmpty(this.jTextFieldTokenSpaceGuid.getText())) {\r
+ // if (!DataValidation.isC_NameType(this.jTextFieldTokenSpaceGuid.getText())) {\r
+ // Log.err("Incorrect data type for Token Space C_Name");\r
+ // return false;\r
+ // }\r
+ // }\r
+\r
+ //\r
+ // Check DefaultValue\r
+ //\r
+ if (!isEmpty(this.jTextFieldDefaultValue.getText())) {\r
+ if (!DataValidation.isDefaultValueType(this.jTextFieldDefaultValue.getText())) {\r
+ Log.err("Incorrect data type for Default Value");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ //\r
+ // Check HelpText\r
+ //\r
+ if (isEmpty(this.jTextFieldHelpText.getText())) {\r
+ Log.err("Help Text couldn't be empty");\r
+ return false;\r
+ }\r
+\r
+ //\r
+ // Check FeatureFlag\r
+ //\r
+ if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
+ if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
+ Log.err("Incorrect data type for Feature Flag");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ private PcdCodedIdentification getCurrentPcdCoded() {\r
+ String arg0 = this.jComboBoxCName.getSelectedItem().toString();\r
+ String arg1 = this.jTextFieldTokenSpaceGuid.getText();\r
+\r
+ String arg2 = this.jTextFieldFeatureFlag.getText();\r
+ Vector<String> arg3 = this.jArchCheckBox.getSelectedItemsVector();\r
+\r
+ String arg4 = this.jTextFieldDefaultValue.getText();\r
+ String arg5 = this.jTextFieldHelpText.getText();\r
+ String arg6 = this.jComboBoxItemType.getSelectedItem().toString();\r
+ id = new PcdCodedIdentification(arg0, arg1, arg2, arg3, arg4, arg5, arg6);\r
+ return id;\r
+ }\r
+\r
+ public PcdCodedIdentification getId() {\r
+ return id;\r
+ }\r
+\r
+ public void setId(PcdCodedIdentification id) {\r
+ this.id = id;\r
+ }\r
+}\r
--- /dev/null
+/** @file\r
+ \r
+ The file is used to create, update Include of MSA/MBD file\r
+ \r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+ \r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ \r
+ **/\r
+package org.tianocore.frameworkwizard.module.ui.dialog;\r
+\r
+import java.awt.event.ActionEvent;\r
+import java.awt.event.ItemEvent;\r
+import java.awt.event.ItemListener;\r
+import java.util.Vector;\r
+\r
+import javax.swing.JButton;\r
+import javax.swing.JComboBox;\r
+import javax.swing.JLabel;\r
+import javax.swing.JPanel;\r
+import javax.swing.JScrollPane;\r
+import javax.swing.JTextField;\r
+\r
+import org.tianocore.frameworkwizard.common.DataType;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.Log;\r
+import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
+import org.tianocore.frameworkwizard.common.ui.IDialog;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
+import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
+import org.tianocore.frameworkwizard.module.Identifications.PackageDependencies.PackageDependenciesIdentification;\r
+import org.tianocore.frameworkwizard.packaging.PackageIdentification;\r
+import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
+\r
+/**\r
+ The class is used to create, update Include of MSA/MBD file\r
+ It extends IInternalFrame\r
+ \r
+\r
+\r
+ **/\r
+public class PackageDepDlg extends IDialog implements ItemListener {\r
+\r
+ ///\r
+ /// Define class Serial Version UID\r
+ ///\r
+ private static final long serialVersionUID = 3465193035145152131L;\r
+\r
+ //\r
+ //Define class members\r
+ //\r
+ private JPanel jContentPane = null;\r
+\r
+ private JLabel jLabelPackageName = null;\r
+\r
+ private StarLabel jStarLabel1 = null;\r
+\r
+ private JComboBox jComboBoxPackageName = null;\r
+\r
+ private JLabel jLabelPackageGuid = null;\r
+\r
+ private JTextField jTextFieldPackageGuid = null;\r
+\r
+ private JButton jButtonGenerateGuid = null;\r
+\r
+ private JLabel jLabelPackageVersion = null;\r
+\r
+ private JTextField jTextFieldPackageVersion = null;\r
+\r
+ private JLabel jLabelFeatureFlag = null;\r
+\r
+ private JTextField jTextFieldFeatureFlag = null;\r
+\r
+ private JScrollPane jScrollPane = null;\r
+\r
+ private JLabel jLabelArch = null;\r
+\r
+ private ArchCheckBox jArchCheckBox = null;\r
+\r
+ private JButton jButtonOk = null;\r
+\r
+ private JButton jButtonCancel = null;\r
+\r
+ //\r
+ // Not used by UI\r
+ //\r
+ private PackageDependenciesIdentification pdid = null;\r
+\r
+ private WorkspaceTools wt = new WorkspaceTools();\r
+\r
+ private Vector<PackageIdentification> vPackage = wt.getAllPackages();\r
+\r
+ /**\r
+ * This method initializes jComboBoxPackageName \r
+ * \r
+ * @return javax.swing.JComboBox \r
+ */\r
+ private JComboBox getJComboBoxPackageName() {\r
+ if (jComboBoxPackageName == null) {\r
+ jComboBoxPackageName = new JComboBox();\r
+ jComboBoxPackageName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
+ jComboBoxPackageName.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jComboBoxPackageName.setToolTipText("If your Module requires a package list that here.");\r
+ jComboBoxPackageName.addItemListener(this);\r
+ }\r
+ return jComboBoxPackageName;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldPackageGuid \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldPackageGuid() {\r
+ if (jTextFieldPackageGuid == null) {\r
+ jTextFieldPackageGuid = new JTextField();\r
+ jTextFieldPackageGuid.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
+ jTextFieldPackageGuid.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jTextFieldPackageGuid.setEditable(false);\r
+ jTextFieldPackageGuid.setVisible(false);\r
+ }\r
+ return jTextFieldPackageGuid;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jButtonGenerateGuid \r
+ * \r
+ * @return javax.swing.JButton \r
+ */\r
+ private JButton getJButtonGenerateGuid() {\r
+ if (jButtonGenerateGuid == null) {\r
+ jButtonGenerateGuid = new JButton();\r
+ jButtonGenerateGuid.setBounds(new java.awt.Rectangle(415, 35, 65, 20));\r
+ jButtonGenerateGuid.setPreferredSize(new java.awt.Dimension(65, 20));\r
+ jButtonGenerateGuid.setText("GEN");\r
+ jButtonGenerateGuid.addActionListener(this);\r
+ jButtonGenerateGuid.setVisible(false);\r
+ }\r
+ return jButtonGenerateGuid;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldPackageVersion \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldPackageVersion() {\r
+ if (jTextFieldPackageVersion == null) {\r
+ jTextFieldPackageVersion = new JTextField();\r
+ jTextFieldPackageVersion.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
+ jTextFieldPackageVersion.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jTextFieldPackageVersion\r
+ .setToolTipText("If this module depends on a specific version of a package, enter the package version here. If the module can use the latest version that does not break backward compatibility, leave this field blank");\r
+ }\r
+ return jTextFieldPackageVersion;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldFeatureFlag \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldFeatureFlag() {\r
+ if (jTextFieldFeatureFlag == null) {\r
+ jTextFieldFeatureFlag = new JTextField();\r
+ jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
+ jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldFeatureFlag;\r
+ }\r
+\r
+ /**\r
+ This method initializes jScrollPane \r
+ \r
+ @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPane() {\r
+ if (jScrollPane == null) {\r
+ jScrollPane = new JScrollPane();\r
+ jScrollPane.setViewportView(getJContentPane());\r
+ }\r
+ return jScrollPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonOk \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonOk() {\r
+ if (jButtonOk == null) {\r
+ jButtonOk = new JButton();\r
+ jButtonOk.setBounds(new java.awt.Rectangle(290, 115, 90, 20));\r
+ jButtonOk.setText("Ok");\r
+ jButtonOk.addActionListener(this);\r
+ }\r
+ return jButtonOk;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonCancel \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonCancel() {\r
+ if (jButtonCancel == null) {\r
+ jButtonCancel = new JButton();\r
+ jButtonCancel.setBounds(new java.awt.Rectangle(390, 115, 90, 20));\r
+ jButtonCancel.setText("Cancel");\r
+ jButtonCancel.addActionListener(this);\r
+ }\r
+ return jButtonCancel;\r
+ }\r
+\r
+ public static void main(String[] args) {\r
+\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ \r
+ **/\r
+ private void init() {\r
+ this.setSize(500, 175);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("Package Dependencies");\r
+ initFrame();\r
+ this.setViewMode(false);\r
+ this.centerWindow();\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ \r
+ **/\r
+ private void init(PackageDependenciesIdentification inPackageDependenciesIdentification) {\r
+ init();\r
+ this.pdid = inPackageDependenciesIdentification;\r
+ if (pdid != null) {\r
+ this.jComboBoxPackageName.setSelectedItem(pdid.getName());\r
+ this.jTextFieldPackageVersion.setText(pdid.getVersion());\r
+ this.jTextFieldPackageGuid.setText(pdid.getGuid());\r
+ jTextFieldFeatureFlag.setText(pdid.getFeatureFlag());\r
+ this.jArchCheckBox.setSelectedItems(pdid.getSupArchList());\r
+ }\r
+ }\r
+\r
+ /**\r
+ This is the default constructor\r
+ \r
+ **/\r
+ public PackageDepDlg(PackageDependenciesIdentification inPackageDependenciesIdentification, IFrame iFrame) {\r
+ super(iFrame, true);\r
+ init(inPackageDependenciesIdentification);\r
+ }\r
+\r
+ /**\r
+ Disable all components when the mode is view\r
+ \r
+ @param isView true - The view mode; false - The non-view mode\r
+ \r
+ **/\r
+ public void setViewMode(boolean isView) {\r
+ if (isView) {\r
+ this.jComboBoxPackageName.setEnabled(!isView);\r
+ }\r
+ }\r
+\r
+ /**\r
+ This method initializes jContentPane\r
+ \r
+ @return javax.swing.JPanel jContentPane\r
+ \r
+ **/\r
+ private JPanel getJContentPane() {\r
+ if (jContentPane == null) {\r
+ jArchCheckBox = new ArchCheckBox();\r
+ jArchCheckBox.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
+ jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jLabelArch = new JLabel();\r
+ jLabelArch.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
+ jLabelArch.setText("Sup Arch List");\r
+ jLabelPackageVersion = new JLabel();\r
+ jLabelPackageVersion.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
+ jLabelPackageVersion.setText("Package Version");\r
+ jLabelPackageGuid = new JLabel();\r
+ jLabelPackageGuid.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
+ jLabelPackageGuid.setText("Package Guid");\r
+ jLabelPackageGuid.setVisible(false);\r
+ jLabelPackageName = new JLabel();\r
+ jLabelPackageName.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
+ jLabelPackageName.setText("Package Name");\r
+\r
+ jContentPane = new JPanel();\r
+ jContentPane.setLayout(null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 140));\r
+\r
+ jContentPane.add(jLabelPackageName, null);\r
+ jStarLabel1 = new StarLabel();\r
+ jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
+\r
+ jContentPane.add(jStarLabel1, null);\r
+ jContentPane.add(getJComboBoxPackageName(), null);\r
+ jContentPane.add(jLabelPackageGuid, null);\r
+ jContentPane.add(getJTextFieldPackageGuid(), null);\r
+ jContentPane.add(getJButtonGenerateGuid(), null);\r
+ jContentPane.add(jLabelPackageVersion, null);\r
+ jContentPane.add(getJTextFieldPackageVersion(), null);\r
+\r
+ jLabelFeatureFlag = new JLabel();\r
+ jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
+ jLabelFeatureFlag.setText("Feature Flag");\r
+ jContentPane.add(jLabelFeatureFlag, null);\r
+ jContentPane.add(getJTextFieldFeatureFlag(), null);\r
+\r
+ jContentPane.add(jLabelArch, null);\r
+ jContentPane.add(jArchCheckBox, null);\r
+ jContentPane.add(getJButtonOk(), null);\r
+ jContentPane.add(getJButtonCancel(), null);\r
+ }\r
+ return jContentPane;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ *\r
+ * Override actionPerformed to listen all actions\r
+ * \r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ if (arg0.getSource() == jButtonOk) {\r
+ if (checkAdd()) {\r
+ getCurrentPackageDependencies();\r
+ this.returnType = DataType.RETURN_TYPE_OK;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonCancel) {\r
+ this.returnType = DataType.RETURN_TYPE_CANCEL;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ /**\r
+ This method initializes Usage type, Package type and Arch type\r
+ \r
+ **/\r
+ private void initFrame() {\r
+ for (int index = 0; index < vPackage.size(); index++) {\r
+ jComboBoxPackageName.addItem(vPackage.elementAt(index).getName());\r
+ }\r
+ }\r
+\r
+ /**\r
+ Data validation for all fields before add current item to Vector\r
+ \r
+ @retval true - All datas are valid\r
+ @retval false - At least one data is invalid\r
+ \r
+ **/\r
+ public boolean checkAdd() {\r
+ //\r
+ // Check if all fields have correct data types \r
+ //\r
+\r
+ //\r
+ // Check PackageGuid \r
+ //\r
+// if (!isEmpty(this.jTextFieldPackageGuid.getText())) {\r
+// if (!DataValidation.isGuid(this.jTextFieldPackageGuid.getText())) {\r
+// Log.err("Incorrect data type for Package Guid");\r
+// return false;\r
+// }\r
+// }\r
+\r
+ //\r
+ // Check PackageVersion \r
+ //\r
+ if (!isEmpty(this.jTextFieldPackageVersion.getText())) {\r
+ if (!DataValidation.isVersion(this.jTextFieldPackageVersion.getText())) {\r
+ Log.err("Incorrect data type for Package Version");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ //\r
+ // Check FeatureFlag\r
+ //\r
+ if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
+ if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
+ Log.err("Incorrect data type for Feature Flag");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ return true;\r
+ }\r
+ \r
+\r
+ private PackageDependenciesIdentification getCurrentPackageDependencies() {\r
+ String arg0 = this.jComboBoxPackageName.getSelectedItem().toString();\r
+ String arg1 = this.jTextFieldPackageVersion.getText();\r
+ String arg2 = this.jTextFieldPackageGuid.getText();\r
+\r
+ String arg3 = this.jTextFieldFeatureFlag.getText();\r
+ Vector<String> arg4 = this.jArchCheckBox.getSelectedItemsVector();\r
+ pdid = new PackageDependenciesIdentification(arg0, arg1, arg2, arg3, arg4);\r
+ return pdid;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
+ *\r
+ * Reflesh the frame when selected item changed\r
+ * \r
+ */\r
+ public void itemStateChanged(ItemEvent arg0) {\r
+ if (arg0.getSource() == this.jComboBoxPackageName && arg0.getStateChange() == ItemEvent.SELECTED) {\r
+ for (int index = 0; index < vPackage.size(); index++) {\r
+ if (this.jComboBoxPackageName.getSelectedItem().toString().equals(vPackage.get(index).getName())) {\r
+ this.jTextFieldPackageGuid.setText(vPackage.get(index).getGuid());\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ public PackageDependenciesIdentification getPdid() {\r
+ return pdid;\r
+ }\r
+\r
+ public void setPdid(PackageDependenciesIdentification pdid) {\r
+ this.pdid = pdid;\r
+ }\r
+\r
+}\r
--- /dev/null
+/** @file\r
+ \r
+ The file is used to create, update Ppi of MSA/MBD file\r
+ \r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+ \r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ \r
+ **/\r
+package org.tianocore.frameworkwizard.module.ui.dialog;\r
+\r
+import java.awt.event.ActionEvent;\r
+import java.awt.event.ItemEvent;\r
+import java.awt.event.ItemListener;\r
+import java.util.Vector;\r
+\r
+import javax.swing.JButton;\r
+import javax.swing.JComboBox;\r
+import javax.swing.JLabel;\r
+import javax.swing.JPanel;\r
+import javax.swing.JScrollPane;\r
+import javax.swing.JTextField;\r
+\r
+import org.tianocore.frameworkwizard.common.DataType;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.Log;\r
+import org.tianocore.frameworkwizard.common.Tools;\r
+import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
+import org.tianocore.frameworkwizard.common.ui.IDialog;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
+import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
+import org.tianocore.frameworkwizard.module.Identifications.Ppis.PpisIdentification;\r
+import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
+\r
+/**\r
+ The class is used to create, update Ppi of MSA/MBD file\r
+ It extends IInternalFrame\r
+ \r
+ **/\r
+public class PpisDlg extends IDialog implements ItemListener {\r
+\r
+ ///\r
+ /// Define class Serial Version UID\r
+ ///\r
+ private static final long serialVersionUID = -4284901202357037724L;\r
+\r
+ //\r
+ //Define class members\r
+ //\r
+ private JPanel jContentPane = null;\r
+\r
+ private JLabel jLabelC_Name = null;\r
+\r
+ private JComboBox jComboBoxCName = null;\r
+\r
+ private JTextField jTextFieldFeatureFlag = null;\r
+\r
+ private JLabel jLabelFeatureFlag = null;\r
+\r
+ private JLabel jLabelUsage = null;\r
+\r
+ private JComboBox jComboBoxUsage = null;\r
+\r
+ private JLabel jLabelPpiType = null;\r
+\r
+ private StarLabel jStarLabel1 = null;\r
+\r
+ private StarLabel jStarLabel2 = null;\r
+\r
+ private JComboBox jComboBoxPpiType = null;\r
+\r
+ private JLabel jLabelArch = null;\r
+\r
+ private JScrollPane jScrollPane = null;\r
+\r
+ private JLabel jLabelHelpText = null;\r
+\r
+ private JTextField jTextFieldHelpText = null;\r
+\r
+ private ArchCheckBox jArchCheckBox = null;\r
+\r
+ private JButton jButtonOk = null;\r
+\r
+ private JButton jButtonCancel = null;\r
+\r
+ //\r
+ // Not used by UI\r
+ //\r
+ private PpisIdentification id = null;\r
+\r
+ private WorkspaceTools wt = new WorkspaceTools();\r
+\r
+ private EnumerationData ed = new EnumerationData();\r
+\r
+ /**\r
+ This method initializes jTextFieldC_Name \r
+ \r
+ @return javax.swing.JTextField jTextFieldC_Name\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxCName() {\r
+ if (jComboBoxCName == null) {\r
+ jComboBoxCName = new JComboBox();\r
+ jComboBoxCName.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
+ jComboBoxCName.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jComboBoxCName;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldFeatureFlag \r
+ \r
+ @return javax.swing.JTextField jTextFieldFeatureFlag\r
+ \r
+ **/\r
+ private JTextField getJTextFieldFeatureFlag() {\r
+ if (jTextFieldFeatureFlag == null) {\r
+ jTextFieldFeatureFlag = new JTextField();\r
+ jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
+ jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldFeatureFlag;\r
+ }\r
+\r
+ /**\r
+ This method initializes jComboBox\r
+ \r
+ @return javax.swing.JComboBox jComboBoxUsage\r
+ \r
+ **/\r
+ private JComboBox getJComboBox() {\r
+ if (jComboBoxUsage == null) {\r
+ jComboBoxUsage = new JComboBox();\r
+ jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
+ jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jComboBoxUsage;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jComboBoxPpiType \r
+ * \r
+ * @return javax.swing.JComboBox \r
+ */\r
+ private JComboBox getJComboBoxPpiType() {\r
+ if (jComboBoxPpiType == null) {\r
+ jComboBoxPpiType = new JComboBox();\r
+ jComboBoxPpiType.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
+ jComboBoxPpiType.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jComboBoxPpiType.addItemListener(this);\r
+ }\r
+ return jComboBoxPpiType;\r
+ }\r
+\r
+ /**\r
+ This method initializes jScrollPane \r
+ \r
+ @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPane() {\r
+ if (jScrollPane == null) {\r
+ jScrollPane = new JScrollPane();\r
+ jScrollPane.setViewportView(getJContentPane());\r
+ }\r
+ return jScrollPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldHelpText \r
+ \r
+ @return javax.swing.JTextField \r
+ \r
+ **/\r
+ private JTextField getJTextFieldHelpText() {\r
+ if (jTextFieldHelpText == null) {\r
+ jTextFieldHelpText = new JTextField();\r
+ jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
+ jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldHelpText;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonOk \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonOk() {\r
+ if (jButtonOk == null) {\r
+ jButtonOk = new JButton();\r
+ jButtonOk.setBounds(new java.awt.Rectangle(290, 165, 90, 20));\r
+ jButtonOk.setText("Ok");\r
+ jButtonOk.addActionListener(this);\r
+ }\r
+ return jButtonOk;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonCancel \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonCancel() {\r
+ if (jButtonCancel == null) {\r
+ jButtonCancel = new JButton();\r
+ jButtonCancel.setBounds(new java.awt.Rectangle(390, 165, 90, 20));\r
+ jButtonCancel.setText("Cancel");\r
+ jButtonCancel.addActionListener(this);\r
+ }\r
+ return jButtonCancel;\r
+ }\r
+\r
+ public static void main(String[] args) {\r
+\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ \r
+ **/\r
+ private void init() {\r
+ this.setSize(500, 225);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("Ppis");\r
+ initFrame();\r
+ this.centerWindow();\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ Fill values to all fields if these values are not empty\r
+ \r
+ @param inProtocolsId\r
+\r
+ **/\r
+ private void init(PpisIdentification inPpisId) {\r
+ init();\r
+ this.id = inPpisId;\r
+\r
+ if (this.id != null) {\r
+ this.jComboBoxCName.setSelectedItem(id.getName());\r
+ this.jComboBoxPpiType.setSelectedItem(id.getType());\r
+ this.jComboBoxUsage.setSelectedItem(id.getUsage());\r
+ this.jTextFieldHelpText.setText(id.getHelp());\r
+ this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());\r
+ this.jArchCheckBox.setSelectedItems(id.getSupArchList());\r
+ }\r
+ }\r
+\r
+ /**\r
+ This is the override edit constructor\r
+ \r
+ @param inProtocolsIdentification\r
+ @param iFrame\r
+ \r
+ **/\r
+ public PpisDlg(PpisIdentification inPpisIdentification, IFrame iFrame) {\r
+ super(iFrame, true);\r
+ init(inPpisIdentification);\r
+ }\r
+\r
+ /**\r
+ This method initializes jContentPane\r
+ \r
+ @return javax.swing.JPanel jContentPane\r
+ \r
+ **/\r
+ private JPanel getJContentPane() {\r
+ if (jContentPane == null) {\r
+ jArchCheckBox = new ArchCheckBox();\r
+ jArchCheckBox.setBounds(new java.awt.Rectangle(160, 135, 320, 20));\r
+ jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jLabelArch = new JLabel();\r
+ jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 140, 20));\r
+ jLabelArch.setText("Arch");\r
+ jLabelPpiType = new JLabel();\r
+ jLabelPpiType.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
+ jLabelPpiType.setText("Ppi Type");\r
+ jLabelUsage = new JLabel();\r
+ jLabelUsage.setText("Usage");\r
+ jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
+ jLabelFeatureFlag = new JLabel();\r
+ jLabelFeatureFlag.setText("Feature Flag");\r
+ jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
+ jLabelC_Name = new JLabel();\r
+ jLabelC_Name.setText("C_Name Type");\r
+ jLabelC_Name.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
+ jLabelHelpText = new JLabel();\r
+ jLabelHelpText.setBounds(new java.awt.Rectangle(14, 85, 140, 20));\r
+ jLabelHelpText.setText("Help Text");\r
+\r
+ jContentPane = new JPanel();\r
+ jContentPane.setLayout(null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 190));\r
+\r
+ jContentPane.add(jLabelC_Name, null);\r
+ jContentPane.add(getJComboBoxCName(), null);\r
+ jContentPane.add(getJTextFieldFeatureFlag(), null);\r
+ jContentPane.add(jLabelFeatureFlag, null);\r
+ jContentPane.add(jLabelUsage, null);\r
+ jContentPane.add(getJComboBox(), null);\r
+ jContentPane.add(getJComboBoxPpiType(), null);\r
+ jContentPane.add(jLabelArch, null);\r
+ jContentPane.add(jLabelPpiType, null);\r
+ jStarLabel1 = new StarLabel();\r
+ jStarLabel1.setBounds(new java.awt.Rectangle(0, 10, 10, 20));\r
+ jStarLabel2 = new StarLabel();\r
+ jStarLabel2.setBounds(new java.awt.Rectangle(0, 35, 10, 20));\r
+\r
+ jContentPane.add(jStarLabel1, null);\r
+ jContentPane.add(jStarLabel2, null);\r
+\r
+ jContentPane.add(jLabelHelpText, null);\r
+ jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(jArchCheckBox, null);\r
+ jContentPane.add(getJButtonOk(), null);\r
+ jContentPane.add(getJButtonCancel(), null);\r
+ }\r
+ return jContentPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes Usage type\r
+ \r
+ **/\r
+ private void initFrame() {\r
+ Tools.generateComboBoxByVector(jComboBoxCName, wt.getAllPpiDeclarationsFromWorkspace());\r
+ Tools.generateComboBoxByVector(jComboBoxPpiType, ed.getVPpiType());\r
+ Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVPpiUsage());\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ *\r
+ * Override actionPerformed to listen all actions\r
+ * \r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ if (arg0.getSource() == jButtonOk) {\r
+ if (checkAdd()) {\r
+ getCurrentPpis();\r
+ this.returnType = DataType.RETURN_TYPE_OK;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonCancel) {\r
+ this.returnType = DataType.RETURN_TYPE_CANCEL;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ /**\r
+ Data validation for all fields\r
+ \r
+ @retval true - All datas are valid\r
+ @retval false - At least one data is invalid\r
+ \r
+ **/\r
+ public boolean checkAdd() {\r
+ //\r
+ // Check if all fields have correct data types \r
+ //\r
+\r
+ //\r
+ // Check Name \r
+ //\r
+ if (!isEmpty(this.jComboBoxCName.getSelectedItem().toString())) {\r
+ if (!DataValidation.isC_NameType(this.jComboBoxCName.getSelectedItem().toString())) {\r
+ Log.err("Incorrect data type for Ppi/PpiNotify Name");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ //\r
+ // Check FeatureFlag\r
+ //\r
+ if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
+ if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
+ Log.err("Incorrect data type for Feature Flag");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ private PpisIdentification getCurrentPpis() {\r
+ String arg0 = this.jComboBoxCName.getSelectedItem().toString();\r
+ String arg1 = this.jComboBoxPpiType.getSelectedItem().toString();\r
+ String arg2 = this.jComboBoxUsage.getSelectedItem().toString();\r
+\r
+ String arg3 = this.jTextFieldFeatureFlag.getText();\r
+ Vector<String> arg4 = this.jArchCheckBox.getSelectedItemsVector();\r
+ String arg5 = this.jTextFieldHelpText.getText();\r
+\r
+ id = new PpisIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
+ return id;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
+ *\r
+ * Reflesh the frame when selected item changed\r
+ * \r
+ */\r
+ public void itemStateChanged(ItemEvent arg0) {\r
+ if (arg0.getSource() == this.jComboBoxPpiType && arg0.getStateChange() == ItemEvent.SELECTED) {\r
+ if (this.jComboBoxPpiType.getSelectedItem().toString().equals(ed.getVPpiType().get(0))) {\r
+ Tools.generateComboBoxByVector(this.jComboBoxUsage, ed.getVPpiUsage());\r
+ } else {\r
+ Tools.generateComboBoxByVector(this.jComboBoxUsage, ed.getVPpiNotifyUsage());\r
+ }\r
+ }\r
+ }\r
+\r
+ public PpisIdentification getId() {\r
+ return id;\r
+ }\r
+\r
+ public void setId(PpisIdentification id) {\r
+ this.id = id;\r
+ }\r
+}\r
--- /dev/null
+/** @file\r
+ \r
+ The file is used to create, update Protocol of MSA/MBD file\r
+ \r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+ \r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ \r
+ **/\r
+\r
+package org.tianocore.frameworkwizard.module.ui.dialog;\r
+\r
+import java.awt.event.ActionEvent;\r
+import java.awt.event.ItemEvent;\r
+import java.awt.event.ItemListener;\r
+import java.util.Vector;\r
+\r
+import javax.swing.JButton;\r
+import javax.swing.JComboBox;\r
+import javax.swing.JLabel;\r
+import javax.swing.JPanel;\r
+import javax.swing.JScrollPane;\r
+import javax.swing.JTextField;\r
+\r
+import org.tianocore.frameworkwizard.common.DataType;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.Log;\r
+import org.tianocore.frameworkwizard.common.Tools;\r
+import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
+import org.tianocore.frameworkwizard.common.ui.IDialog;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
+import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
+import org.tianocore.frameworkwizard.module.Identifications.Protocols.ProtocolsIdentification;\r
+import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
+\r
+/**\r
+ The class is used to create, update Protocol of MSA/MBD file\r
+ It extends IInternalFrame\r
+ \r
+\r
+\r
+ **/\r
+public class ProtocolsDlg extends IDialog implements ItemListener {\r
+\r
+ ///\r
+ /// Define class Serial Version UID\r
+ ///\r
+ private static final long serialVersionUID = -9084913640747858848L;\r
+\r
+ //\r
+ //Define class members\r
+ //\r
+ private JPanel jContentPane = null;\r
+\r
+ private JLabel jLabelC_Name = null;\r
+\r
+ private JLabel jLabelFeatureFlag = null;\r
+\r
+ private JTextField jTextFieldFeatureFlag = null;\r
+\r
+ private JLabel jLabelUsage = null;\r
+\r
+ private JComboBox jComboBoxUsage = null;\r
+\r
+ private StarLabel jStarLabel1 = null;\r
+\r
+ private StarLabel jStarLabel2 = null;\r
+\r
+ private JLabel jLabelProtocolType = null;\r
+\r
+ private JLabel jLabelArch = null;\r
+\r
+ private JScrollPane jScrollPane = null;\r
+\r
+ private JComboBox jComboBoxProtocolType = null;\r
+\r
+ private JComboBox jComboBoxCName = null;\r
+\r
+ private JLabel jLabelHelpText = null;\r
+\r
+ private JTextField jTextFieldHelpText = null;\r
+\r
+ private ArchCheckBox jArchCheckBox = null;\r
+ \r
+ private JButton jButtonOk = null;\r
+\r
+ private JButton jButtonCancel = null;\r
+\r
+ //\r
+ // Not used by UI\r
+ //\r
+ private ProtocolsIdentification id = null;\r
+\r
+ private WorkspaceTools wt = new WorkspaceTools();\r
+\r
+ private EnumerationData ed = new EnumerationData();\r
+\r
+ /**\r
+ This method initializes jTextFieldFeatureFlag \r
+ \r
+ @return javax.swing.JTextField jTextFieldFeatureFlag\r
+ \r
+ **/\r
+ private JTextField getJTextFieldFeatureFlag() {\r
+ if (jTextFieldFeatureFlag == null) {\r
+ jTextFieldFeatureFlag = new JTextField();\r
+ jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
+ jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldFeatureFlag;\r
+ }\r
+\r
+ /**\r
+ This method initializes jComboBoxUsage \r
+ \r
+ @return javax.swing.JComboBox jComboBoxUsage\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxProtocolUsage() {\r
+ if (jComboBoxUsage == null) {\r
+ jComboBoxUsage = new JComboBox();\r
+ jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
+ jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jComboBoxUsage;\r
+ }\r
+\r
+ /**\r
+ This method initializes jScrollPane \r
+ \r
+ @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPane() {\r
+ if (jScrollPane == null) {\r
+ jScrollPane = new JScrollPane();\r
+ jScrollPane.setViewportView(getJContentPane());\r
+ }\r
+ return jScrollPane;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jComboBoxProtocolType \r
+ * \r
+ * @return javax.swing.JComboBox \r
+ */\r
+ private JComboBox getJComboBoxProtocolType() {\r
+ if (jComboBoxProtocolType == null) {\r
+ jComboBoxProtocolType = new JComboBox();\r
+ jComboBoxProtocolType.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
+ jComboBoxProtocolType.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jComboBoxProtocolType.addItemListener(this);\r
+ jComboBoxProtocolType.setToolTipText("Select Protocol Type");\r
+ }\r
+ return jComboBoxProtocolType;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jComboBoxCName \r
+ * \r
+ * @return javax.swing.JComboBox \r
+ */\r
+ private JComboBox getJComboBoxCName() {\r
+ if (jComboBoxCName == null) {\r
+ jComboBoxCName = new JComboBox();\r
+ jComboBoxCName.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
+ jComboBoxCName.setPreferredSize(new java.awt.Dimension(320, 20));\r
+\r
+ }\r
+ return jComboBoxCName;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldHelpText \r
+ \r
+ @return javax.swing.JTextField \r
+ \r
+ **/\r
+ private JTextField getJTextFieldHelpText() {\r
+ if (jTextFieldHelpText == null) {\r
+ jTextFieldHelpText = new JTextField();\r
+ jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
+ jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldHelpText;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonOk \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonOk() {\r
+ if (jButtonOk == null) {\r
+ jButtonOk = new JButton();\r
+ jButtonOk.setBounds(new java.awt.Rectangle(290, 165, 90, 20));\r
+ jButtonOk.setText("Ok");\r
+ jButtonOk.addActionListener(this);\r
+ }\r
+ return jButtonOk;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonCancel \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonCancel() {\r
+ if (jButtonCancel == null) {\r
+ jButtonCancel = new JButton();\r
+ jButtonCancel.setBounds(new java.awt.Rectangle(390, 165, 90, 20));\r
+ jButtonCancel.setText("Cancel");\r
+ jButtonCancel.addActionListener(this);\r
+ }\r
+ return jButtonCancel;\r
+ }\r
+\r
+ public static void main(String[] args) {\r
+\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ \r
+ **/\r
+ private void init() {\r
+ this.setSize(500, 225);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("Protocols");\r
+ initFrame();\r
+ this.setViewMode(false);\r
+ this.centerWindow();\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ Fill values to all fields if these values are not empty\r
+ \r
+ @param inProtocolsId\r
+\r
+ **/\r
+ private void init(ProtocolsIdentification inProtocolsId) {\r
+ init();\r
+ this.id = inProtocolsId;\r
+\r
+ if (this.id != null) {\r
+ this.jComboBoxCName.setSelectedItem(id.getName());\r
+ this.jComboBoxProtocolType.setSelectedItem(id.getType());\r
+ this.jComboBoxUsage.setSelectedItem(id.getUsage());\r
+ this.jTextFieldHelpText.setText(id.getHelp());\r
+\r
+ jTextFieldFeatureFlag.setText(id.getFeatureFlag());\r
+ this.jArchCheckBox.setSelectedItems(id.getSupArchList());\r
+ }\r
+ }\r
+\r
+ /**\r
+ This is the override edit constructor\r
+ \r
+ @param inProtocolsIdentification\r
+ @param iFrame\r
+ \r
+ **/\r
+ public ProtocolsDlg(ProtocolsIdentification inProtocolsIdentification, IFrame iFrame) {\r
+ super(iFrame, true);\r
+ init(inProtocolsIdentification);\r
+ }\r
+\r
+ /**\r
+ Disable all components when the mode is view\r
+ \r
+ @param isView true - The view mode; false - The non-view mode\r
+ \r
+ **/\r
+ public void setViewMode(boolean isView) {\r
+ if (isView) {\r
+ this.jComboBoxUsage.setEnabled(!isView);\r
+ this.jTextFieldFeatureFlag.setEnabled(!isView);\r
+ }\r
+ }\r
+\r
+ /**\r
+ This method initializes jContentPane\r
+ \r
+ @return javax.swing.JPanel jContentPane\r
+ \r
+ **/\r
+ private JPanel getJContentPane() {\r
+ if (jContentPane == null) {\r
+ jArchCheckBox = new ArchCheckBox();\r
+ jArchCheckBox.setBounds(new java.awt.Rectangle(160, 135, 320, 20));\r
+ jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jLabelHelpText = new JLabel();\r
+ jLabelHelpText.setBounds(new java.awt.Rectangle(14, 85, 140, 20));\r
+ jLabelHelpText.setText("Help Text");\r
+ jLabelArch = new JLabel();\r
+ jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 140, 20));\r
+ jLabelArch.setText("Arch Type");\r
+ jLabelProtocolType = new JLabel();\r
+ jLabelProtocolType.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
+ jLabelProtocolType.setText("Protocol Type");\r
+ jLabelUsage = new JLabel();\r
+ jLabelUsage.setText("Usage");\r
+ jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
+ jLabelFeatureFlag = new JLabel();\r
+ jLabelFeatureFlag.setText("Feature Flag");\r
+ jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
+ jLabelC_Name = new JLabel();\r
+ jLabelC_Name.setText("C_Name Type");\r
+ jLabelC_Name.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
+\r
+ jContentPane = new JPanel();\r
+ jContentPane.setLayout(null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 190));\r
+\r
+ jContentPane.add(jLabelC_Name, null);\r
+ jContentPane.add(jLabelFeatureFlag, null);\r
+ jContentPane.add(getJTextFieldFeatureFlag(), null);\r
+ jContentPane.add(jLabelUsage, null);\r
+ jContentPane.add(getJComboBoxProtocolUsage(), null);\r
+ jContentPane.add(jLabelProtocolType, null);\r
+\r
+ jStarLabel1 = new StarLabel();\r
+ jStarLabel1.setBounds(new java.awt.Rectangle(0, 10, 10, 20));\r
+ jStarLabel2 = new StarLabel();\r
+ jStarLabel2.setBounds(new java.awt.Rectangle(0, 35, 10, 20));\r
+\r
+ jContentPane.add(jStarLabel1, null);\r
+ jContentPane.add(jStarLabel2, null);\r
+ jContentPane.add(jLabelArch, null);\r
+ jContentPane.add(getJComboBoxProtocolType(), null);\r
+ jContentPane.add(getJComboBoxCName(), null);\r
+ jContentPane.add(jLabelHelpText, null);\r
+ jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(jArchCheckBox, null);\r
+ jContentPane.add(getJButtonOk(), null);\r
+ jContentPane.add(getJButtonCancel(), null);\r
+ }\r
+ return jContentPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes Usage type\r
+ \r
+ **/\r
+ private void initFrame() {\r
+ Tools.generateComboBoxByVector(jComboBoxProtocolType, ed.getVProtocolType());\r
+ Tools.generateComboBoxByVector(jComboBoxCName, wt.getAllProtocolDeclarationsFromWorkspace());\r
+ Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVProtocolUsage());\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ *\r
+ * Override actionPerformed to listen all actions\r
+ * \r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ if (arg0.getSource() == jButtonOk) {\r
+ if (checkAdd()) {\r
+ getCurrentProtocols();\r
+ this.returnType = DataType.RETURN_TYPE_OK;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonCancel) {\r
+ this.returnType = DataType.RETURN_TYPE_CANCEL;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ /**\r
+ Data validation for all fields\r
+ \r
+ @retval true - All datas are valid\r
+ @retval false - At least one data is invalid\r
+ \r
+ **/\r
+ public boolean checkAdd() {\r
+ //\r
+ // Check if all fields have correct data types \r
+ //\r
+\r
+ //\r
+ // Check Name \r
+ //\r
+ if (!isEmpty(this.jComboBoxCName.getSelectedItem().toString())) {\r
+ if (!DataValidation.isC_NameType(this.jComboBoxCName.getSelectedItem().toString())) {\r
+ Log.err("Incorrect data type for Protocol/ProtocolNotify Name");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ //\r
+ // Check FeatureFlag\r
+ //\r
+ if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
+ if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
+ Log.err("Incorrect data type for Feature Flag");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ private ProtocolsIdentification getCurrentProtocols() {\r
+ String arg0 = this.jComboBoxCName.getSelectedItem().toString();\r
+ String arg1 = this.jComboBoxProtocolType.getSelectedItem().toString();\r
+ String arg2 = this.jComboBoxUsage.getSelectedItem().toString();\r
+\r
+ String arg3 = this.jTextFieldFeatureFlag.getText();\r
+ Vector<String> arg4 = this.jArchCheckBox.getSelectedItemsVector();\r
+ String arg5 = this.jTextFieldHelpText.getText();\r
+ id = new ProtocolsIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
+ return id;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
+ *\r
+ * Reflesh the frame when selected item changed\r
+ * \r
+ */\r
+ public void itemStateChanged(ItemEvent arg0) {\r
+ if (arg0.getSource() == this.jComboBoxProtocolType && arg0.getStateChange() == ItemEvent.SELECTED) {\r
+ if (this.jComboBoxProtocolType.getSelectedItem().toString().equals(ed.getVProtocolType().get(0))) {\r
+ Tools.generateComboBoxByVector(this.jComboBoxUsage, ed.getVProtocolUsage());\r
+ } else {\r
+ Tools.generateComboBoxByVector(this.jComboBoxUsage, ed.getVProtocolNotifyUsage());\r
+ }\r
+ }\r
+ }\r
+\r
+ public ProtocolsIdentification getId() {\r
+ return id;\r
+ }\r
+\r
+ public void setId(ProtocolsIdentification id) {\r
+ this.id = id;\r
+ }\r
+}\r
--- /dev/null
+/** @file\r
+ \r
+ The file is used to create, update SourceFile of MSA/MBD file\r
+ \r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+ \r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ \r
+ **/\r
+package org.tianocore.frameworkwizard.module.ui.dialog;\r
+\r
+import java.awt.event.ActionEvent;\r
+import java.util.Vector;\r
+\r
+import javax.swing.JButton;\r
+import javax.swing.JFileChooser;\r
+import javax.swing.JLabel;\r
+import javax.swing.JPanel;\r
+import javax.swing.JScrollPane;\r
+import javax.swing.JTextField;\r
+\r
+import org.tianocore.frameworkwizard.common.DataType;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.Log;\r
+import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
+import org.tianocore.frameworkwizard.common.ui.IDialog;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
+import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
+import org.tianocore.frameworkwizard.module.Identifications.SourceFiles.SourceFilesIdentification;\r
+import org.tianocore.frameworkwizard.workspace.Workspace;\r
+\r
+/**\r
+ The class is used to create, update SourceFile of MSA/MBD file\r
+ It extends IInternalFrame\r
+ \r
+\r
+\r
+ **/\r
+public class SourceFilesDlg extends IDialog {\r
+\r
+ ///\r
+ /// Define class Serial Version UID\r
+ ///\r
+ private static final long serialVersionUID = -6765742852142775378L;\r
+\r
+ //\r
+ // Define class members\r
+ //\r
+ private JPanel jContentPane = null;\r
+\r
+ private JLabel jLabelFileName = null;\r
+\r
+ private JTextField jTextFieldFileName = null;\r
+\r
+ private JButton jButtonOpenFile = null;\r
+\r
+ private JLabel jLabelToolChainFamily = null;\r
+\r
+ private StarLabel jStarLabel1 = null;\r
+\r
+ private JLabel jLabelArch = null;\r
+\r
+ private JScrollPane jScrollPane = null;\r
+\r
+ private JLabel jLabelTagName = null;\r
+\r
+ private JTextField jTextFieldTagName = null;\r
+\r
+ private JLabel jLabelToolCode = null;\r
+\r
+ private JTextField jTextFieldToolCode = null;\r
+\r
+ private JTextField jTextFieldToolChainFamily = null;\r
+\r
+ private JLabel jLabelFeatureFlag = null;\r
+\r
+ private JTextField jTextFieldFeatureFlag = null;\r
+\r
+ private ArchCheckBox jArchCheckBox = null;\r
+\r
+ //\r
+ // Not used by UI\r
+ //\r
+ private SourceFilesIdentification sfid = null;\r
+\r
+ private JButton jButtonOk = null;\r
+\r
+ private JButton jButtonCancel = null;\r
+\r
+ /**\r
+ This method initializes jTextFieldFileName \r
+ \r
+ @return javax.swing.JTextField jTextFieldFileName\r
+ \r
+ **/\r
+ private JTextField getJTextFieldSourceFilesDirectory() {\r
+ if (jTextFieldFileName == null) {\r
+ jTextFieldFileName = new JTextField();\r
+ jTextFieldFileName.setBounds(new java.awt.Rectangle(140, 10, 250, 20));\r
+ jTextFieldFileName.setPreferredSize(new java.awt.Dimension(250, 20));\r
+ jTextFieldFileName.setToolTipText("Path is relative to the MSA file and must include the file name");\r
+ }\r
+ return jTextFieldFileName;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonOpenFile \r
+ \r
+ @return javax.swing.JButton jButtonOpenFile\r
+ \r
+ **/\r
+ private JButton getJButtonOpenFile() {\r
+ if (jButtonOpenFile == null) {\r
+ jButtonOpenFile = new JButton();\r
+ jButtonOpenFile.setText("Browse");\r
+ jButtonOpenFile.setBounds(new java.awt.Rectangle(395, 10, 85, 20));\r
+ jButtonOpenFile.setPreferredSize(new java.awt.Dimension(85, 20));\r
+ jButtonOpenFile.addActionListener(this);\r
+ }\r
+ return jButtonOpenFile;\r
+ }\r
+\r
+ /**\r
+ This method initializes jScrollPane \r
+ \r
+ @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPane() {\r
+ if (jScrollPane == null) {\r
+ jScrollPane = new JScrollPane();\r
+ jScrollPane.setViewportView(getJContentPane());\r
+ }\r
+ return jScrollPane;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldTagName \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldTagName() {\r
+ if (jTextFieldTagName == null) {\r
+ jTextFieldTagName = new JTextField();\r
+ jTextFieldTagName.setBounds(new java.awt.Rectangle(140, 35, 340, 20));\r
+ jTextFieldTagName.setPreferredSize(new java.awt.Dimension(340, 20));\r
+ jTextFieldTagName.setToolTipText("You may specify a specific tool chain tag name, such as BILL1");\r
+ }\r
+ return jTextFieldTagName;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldToolCode \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldToolCode() {\r
+ if (jTextFieldToolCode == null) {\r
+ jTextFieldToolCode = new JTextField();\r
+ jTextFieldToolCode.setBounds(new java.awt.Rectangle(140, 60, 340, 20));\r
+ jTextFieldToolCode.setPreferredSize(new java.awt.Dimension(340, 20));\r
+ jTextFieldToolCode.setToolTipText("You may specify a specific tool command, such as ASM");\r
+ }\r
+ return jTextFieldToolCode;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldToolChainFamily \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldToolChainFamily() {\r
+ if (jTextFieldToolChainFamily == null) {\r
+ jTextFieldToolChainFamily = new JTextField();\r
+ jTextFieldToolChainFamily.setBounds(new java.awt.Rectangle(140, 85, 340, 20));\r
+ jTextFieldToolChainFamily.setPreferredSize(new java.awt.Dimension(340, 20));\r
+ jTextFieldToolChainFamily.setToolTipText("You may specify a specific tool chain family, such as GCC");\r
+ }\r
+ return jTextFieldToolChainFamily;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldFeatureFlag \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldFeatureFlag() {\r
+ if (jTextFieldFeatureFlag == null) {\r
+ jTextFieldFeatureFlag = new JTextField();\r
+ jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(140, 110, 340, 20));\r
+ jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(340, 20));\r
+ jTextFieldFeatureFlag.setToolTipText("RESERVED FOR FUTURE USE");\r
+ }\r
+ return jTextFieldFeatureFlag;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonOk \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonOk() {\r
+ if (jButtonOk == null) {\r
+ jButtonOk = new JButton();\r
+ jButtonOk.setBounds(new java.awt.Rectangle(290, 165, 90, 20));\r
+ jButtonOk.setText("Ok");\r
+ jButtonOk.addActionListener(this);\r
+ }\r
+ return jButtonOk;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonCancel \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonCancel() {\r
+ if (jButtonCancel == null) {\r
+ jButtonCancel = new JButton();\r
+ jButtonCancel.setBounds(new java.awt.Rectangle(390, 165, 90, 20));\r
+ jButtonCancel.setText("Cancel");\r
+ jButtonCancel.addActionListener(this);\r
+ }\r
+ return jButtonCancel;\r
+ }\r
+\r
+ public static void main(String[] args) {\r
+\r
+ }\r
+\r
+ /**\r
+ This is the default constructor\r
+ \r
+ **/\r
+ public SourceFilesDlg(SourceFilesIdentification inSourceFilesIdentification, IFrame iFrame) {\r
+ super(iFrame, true);\r
+ init(inSourceFilesIdentification);\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ \r
+ **/\r
+ private void init() {\r
+ this.setSize(500, 235);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("Source Files");\r
+ this.setViewMode(false);\r
+ this.centerWindow();\r
+ }\r
+\r
+ /** \r
+ This method initializes this\r
+ Fill values to all fields if these values are not empty\r
+ \r
+ \r
+ @param inSourceFiles The input data of SourceFilesDocument.SourceFiles\r
+ \r
+ **/\r
+ private void init(SourceFilesIdentification inSourceFilesIdentifications) {\r
+ init();\r
+ this.sfid = inSourceFilesIdentifications;\r
+\r
+ if (this.sfid != null) {\r
+ this.jTextFieldFileName.setText(sfid.getFilename());\r
+ this.jTextFieldTagName.setText(sfid.getTagName());\r
+ this.jTextFieldToolCode.setText(sfid.getToolCode());\r
+ this.jTextFieldToolChainFamily.setText(sfid.getToolChainFamily());\r
+ jTextFieldFeatureFlag.setText(sfid.getFeatureFlag());\r
+ this.jArchCheckBox.setSelectedItems(sfid.getSupArchList());\r
+ }\r
+ }\r
+\r
+ /**\r
+ Disable all components when the mode is view\r
+ \r
+ @param isView true - The view mode; false - The non-view mode\r
+ \r
+ **/\r
+ public void setViewMode(boolean isView) {\r
+ if (isView) {\r
+ this.jTextFieldFileName.setEnabled(!isView);\r
+ this.jButtonOpenFile.setEnabled(!isView);\r
+ }\r
+ }\r
+\r
+ /**\r
+ This method initializes jContentPane\r
+ \r
+ @return javax.swing.JPanel jContentPane\r
+ \r
+ **/\r
+ private JPanel getJContentPane() {\r
+ if (jContentPane == null) {\r
+ jArchCheckBox = new ArchCheckBox();\r
+ jArchCheckBox.setBounds(new java.awt.Rectangle(140, 135, 340, 20));\r
+ jArchCheckBox.setPreferredSize(new java.awt.Dimension(340, 20));\r
+ jLabelFeatureFlag = new JLabel();\r
+ jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 110, 120, 20));\r
+ jLabelFeatureFlag.setText("Feature Flag");\r
+ jLabelToolCode = new JLabel();\r
+ jLabelToolCode.setBounds(new java.awt.Rectangle(15, 60, 120, 20));\r
+ jLabelToolCode.setText("Tool Code");\r
+ jLabelTagName = new JLabel();\r
+ jLabelTagName.setBounds(new java.awt.Rectangle(15, 35, 120, 20));\r
+ jLabelTagName.setText("Tag Name");\r
+ jLabelArch = new JLabel();\r
+ jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 120, 20));\r
+ jLabelArch.setText("Sup Arch List");\r
+ jLabelToolChainFamily = new JLabel();\r
+ jLabelToolChainFamily.setBounds(new java.awt.Rectangle(15, 85, 120, 20));\r
+ jLabelToolChainFamily.setText("Tool Chain Family");\r
+ jLabelFileName = new JLabel();\r
+ jLabelFileName.setText("File Name");\r
+ jLabelFileName.setBounds(new java.awt.Rectangle(15, 10, 120, 20));\r
+\r
+ jContentPane = new JPanel();\r
+ jContentPane.setLayout(null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 185));\r
+\r
+ jContentPane.add(jLabelFileName, null);\r
+ jContentPane.add(getJTextFieldSourceFilesDirectory(), null);\r
+ jContentPane.add(getJButtonOpenFile(), null);\r
+ jContentPane.add(jLabelToolChainFamily, null);\r
+ jStarLabel1 = new StarLabel();\r
+ jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
+\r
+ jContentPane.add(jStarLabel1, null);\r
+ jContentPane.add(jLabelArch, null);\r
+ jContentPane.add(jLabelTagName, null);\r
+ jContentPane.add(getJTextFieldTagName(), null);\r
+ jContentPane.add(jLabelToolCode, null);\r
+ jContentPane.add(getJTextFieldToolCode(), null);\r
+ jContentPane.add(getJTextFieldToolChainFamily(), null);\r
+ jContentPane.add(jLabelFeatureFlag, null);\r
+ jContentPane.add(getJTextFieldFeatureFlag(), null);\r
+ jContentPane.add(jArchCheckBox, null);\r
+ jContentPane.add(getJButtonOk(), null);\r
+ jContentPane.add(getJButtonCancel(), null);\r
+ }\r
+ return jContentPane;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ *\r
+ * Override actionPerformed to listen all actions\r
+ * \r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ if (arg0.getSource() == jButtonOpenFile) {\r
+ selectFile();\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonOk) {\r
+ if (checkAdd()) {\r
+ getCurrentSourceFiles();\r
+ this.returnType = DataType.RETURN_TYPE_OK;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonCancel) {\r
+ this.returnType = DataType.RETURN_TYPE_CANCEL;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ private SourceFilesIdentification getCurrentSourceFiles() {\r
+ String name = this.jTextFieldFileName.getText();\r
+ String tagName = this.jTextFieldTagName.getText();\r
+ String toolCode = this.jTextFieldToolCode.getText();\r
+ String tcf = this.jTextFieldToolChainFamily.getText();\r
+ String featureFlag = this.jTextFieldFeatureFlag.getText();\r
+ Vector<String> arch = this.jArchCheckBox.getSelectedItemsVector();\r
+ sfid = new SourceFilesIdentification(name, tagName, toolCode, tcf, featureFlag, arch);\r
+ return sfid;\r
+ }\r
+\r
+ /**\r
+ Data validation for all fields\r
+ \r
+ @retval true - All datas are valid\r
+ @retval false - At least one data is invalid\r
+ \r
+ **/\r
+ public boolean checkAdd() {\r
+ //\r
+ // Check Filename\r
+ //\r
+ if (isEmpty(this.jTextFieldFileName.getText())) {\r
+ Log.err("File Name couldn't be empty");\r
+ return false;\r
+ }\r
+ if (!DataValidation.isFilename(this.jTextFieldFileName.getText())) {\r
+ Log.err("Incorrect data type for File Name");\r
+ return false;\r
+ }\r
+\r
+ //\r
+ // Check TagName \r
+ //\r
+ if (!isEmpty(this.jTextFieldTagName.getText())) {\r
+ if (!DataValidation.isTagName(this.jTextFieldTagName.getText())) {\r
+ Log.err("Incorrect data type for Tag Name");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ //\r
+ // Check ToolCode \r
+ //\r
+ if (!isEmpty(this.jTextFieldToolCode.getText())) {\r
+ if (!DataValidation.isToolCode(this.jTextFieldToolCode.getText())) {\r
+ Log.err("Incorrect data type for Tool Code");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ //\r
+ // Check ToolChainFamily \r
+ //\r
+ if (!isEmpty(this.jTextFieldToolChainFamily.getText())) {\r
+ if (!DataValidation.isToolChainFamily(this.jTextFieldToolChainFamily.getText())) {\r
+ Log.err("Incorrect data type for Tool Chain Family");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ //\r
+ // Check FeatureFlag\r
+ //\r
+ if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
+ if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
+ Log.err("Incorrect data type for Feature Flag");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ /**\r
+ Display a file open browser to let user select file\r
+ \r
+ **/\r
+ private void selectFile() {\r
+ JFileChooser fc = new JFileChooser(Workspace.getCurrentWorkspace());\r
+\r
+ int result = fc.showOpenDialog(new JPanel());\r
+ if (result == JFileChooser.APPROVE_OPTION) {\r
+ this.jTextFieldFileName.setText(fc.getSelectedFile().getName());\r
+ }\r
+ }\r
+\r
+ public SourceFilesIdentification getSfid() {\r
+ return sfid;\r
+ }\r
+\r
+ public void setSfid(SourceFilesIdentification sfid) {\r
+ this.sfid = sfid;\r
+ }\r
+}\r
--- /dev/null
+/** @file\r
+\r
+ The file is used to create, update SystemTable of MSA/MBD file\r
+ \r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+ \r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ \r
+ **/\r
+package org.tianocore.frameworkwizard.module.ui.dialog;\r
+\r
+import java.awt.event.ActionEvent;\r
+import java.util.Vector;\r
+\r
+import javax.swing.JButton;\r
+import javax.swing.JComboBox;\r
+import javax.swing.JLabel;\r
+import javax.swing.JPanel;\r
+import javax.swing.JScrollPane;\r
+import javax.swing.JTextField;\r
+\r
+import org.tianocore.frameworkwizard.common.DataType;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.Log;\r
+import org.tianocore.frameworkwizard.common.Tools;\r
+import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
+import org.tianocore.frameworkwizard.common.ui.IDialog;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
+import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
+import org.tianocore.frameworkwizard.module.Identifications.SystemTables.SystemTablesIdentification;\r
+import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
+\r
+/**\r
+ The class is used to create, update SystemTable of MSA/MBD file\r
+ It extends IInternalFrame\r
+ \r
+\r
+\r
+ **/\r
+public class SystemTablesDlg extends IDialog {\r
+\r
+ ///\r
+ /// Define class Serial Version UID\r
+ ///\r
+ private static final long serialVersionUID = 7488769180379442276L;\r
+\r
+ //\r
+ //Define class members\r
+ //\r
+ private JPanel jContentPane = null;\r
+\r
+ private JLabel jLabelEntry = null;\r
+\r
+ private JLabel jLabelUsage = null;\r
+\r
+ private JComboBox jComboBoxUsage = null;\r
+\r
+ private StarLabel jStarLabel1 = null;\r
+\r
+ private StarLabel jStarLabel2 = null;\r
+\r
+ private JComboBox jComboBoxGuidC_Name = null;\r
+\r
+ private JLabel jLabelFeatureFlag = null;\r
+\r
+ private JTextField jTextFieldFeatureFlag = null;\r
+\r
+ private JLabel jLabelArch = null;\r
+\r
+ private JScrollPane jScrollPane = null;\r
+\r
+ private JLabel jLabelHelpText = null;\r
+\r
+ private JTextField jTextFieldHelpText = null;\r
+\r
+ private ArchCheckBox jArchCheckBox = null;\r
+\r
+ private JButton jButtonOk = null;\r
+\r
+ private JButton jButtonCancel = null;\r
+\r
+ //\r
+ // Not used by UI\r
+ //\r
+ private SystemTablesIdentification id = null;\r
+\r
+ private EnumerationData ed = new EnumerationData();\r
+\r
+ private WorkspaceTools wt = new WorkspaceTools();\r
+\r
+ /**\r
+ This method initializes jComboBoxUsage \r
+ \r
+ @return javax.swing.JComboBox jComboBoxUsage\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxUsage() {\r
+ if (jComboBoxUsage == null) {\r
+ jComboBoxUsage = new JComboBox();\r
+ jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
+ jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jComboBoxUsage;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextField \r
+ \r
+ @return javax.swing.JTextField jTextFieldC_Name\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxGuidC_Name() {\r
+ if (jComboBoxGuidC_Name == null) {\r
+ jComboBoxGuidC_Name = new JComboBox();\r
+ jComboBoxGuidC_Name.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
+ jComboBoxGuidC_Name.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jComboBoxGuidC_Name.setToolTipText("Select the GUID C Name of the Hob");\r
+ }\r
+ return jComboBoxGuidC_Name;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jTextFieldFeatureFlag \r
+ * \r
+ * @return javax.swing.JTextField \r
+ */\r
+ private JTextField getJTextFieldFeatureFlag() {\r
+ if (jTextFieldFeatureFlag == null) {\r
+ jTextFieldFeatureFlag = new JTextField();\r
+ jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
+ jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldFeatureFlag;\r
+ }\r
+\r
+ /**\r
+ This method initializes jScrollPane \r
+ \r
+ @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPane() {\r
+ if (jScrollPane == null) {\r
+ jScrollPane = new JScrollPane();\r
+ jScrollPane.setViewportView(getJContentPane());\r
+ }\r
+ return jScrollPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldHelpText \r
+ \r
+ @return javax.swing.JTextField \r
+ \r
+ **/\r
+ private JTextField getJTextFieldHelpText() {\r
+ if (jTextFieldHelpText == null) {\r
+ jTextFieldHelpText = new JTextField();\r
+ jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
+ jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldHelpText;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonOk \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonOk() {\r
+ if (jButtonOk == null) {\r
+ jButtonOk = new JButton();\r
+ jButtonOk.setBounds(new java.awt.Rectangle(290, 140, 90, 20));\r
+ jButtonOk.setText("Ok");\r
+ jButtonOk.addActionListener(this);\r
+ }\r
+ return jButtonOk;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonCancel \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonCancel() {\r
+ if (jButtonCancel == null) {\r
+ jButtonCancel = new JButton();\r
+ jButtonCancel.setBounds(new java.awt.Rectangle(390, 140, 90, 20));\r
+ jButtonCancel.setText("Cancel");\r
+ jButtonCancel.addActionListener(this);\r
+ }\r
+ return jButtonCancel;\r
+ }\r
+\r
+ public static void main(String[] args) {\r
+\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ \r
+ **/\r
+ private void init() {\r
+ this.setSize(500, 200);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("System Tables");\r
+ initFrame();\r
+ this.setViewMode(false);\r
+ this.centerWindow();\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ Fill values to all fields if these values are not empty\r
+ \r
+ @param inSystemTablesId\r
+\r
+ **/\r
+ private void init(SystemTablesIdentification inSystemTablesId) {\r
+ init();\r
+ this.id = inSystemTablesId;\r
+\r
+ if (this.id != null) {\r
+ this.jComboBoxGuidC_Name.setSelectedItem(id.getName());\r
+ this.jComboBoxUsage.setSelectedItem(id.getUsage());\r
+ this.jTextFieldHelpText.setText(id.getHelp());\r
+ this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());\r
+ this.jArchCheckBox.setSelectedItems(id.getSupArchList());\r
+ }\r
+ }\r
+\r
+ /**\r
+ This is the override edit constructor\r
+ \r
+ @param inBootModesIdentification\r
+ @param iFrame\r
+ \r
+ **/\r
+ public SystemTablesDlg(SystemTablesIdentification inSystemTablesIdentification, IFrame iFrame) {\r
+ super(iFrame, true);\r
+ init(inSystemTablesIdentification);\r
+ }\r
+\r
+ /**\r
+ Disable all components when the mode is view\r
+ \r
+ @param isView true - The view mode; false - The non-view mode\r
+ \r
+ **/\r
+ public void setViewMode(boolean isView) {\r
+ if (isView) {\r
+ this.jComboBoxUsage.setEnabled(!isView);\r
+ }\r
+ }\r
+\r
+ /**\r
+ This method initializes jContentPane\r
+ \r
+ @return javax.swing.JPanel jContentPane\r
+ \r
+ **/\r
+ private JPanel getJContentPane() {\r
+ if (jContentPane == null) {\r
+ jLabelArch = new JLabel();\r
+ jLabelArch.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
+ jLabelArch.setText("Arch");\r
+ jArchCheckBox = new ArchCheckBox();\r
+ jArchCheckBox.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
+ jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jLabelFeatureFlag = new JLabel();\r
+ jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
+ jLabelFeatureFlag.setText("Feature Flag");\r
+ jLabelUsage = new JLabel();\r
+ jLabelUsage.setText("Usage");\r
+ jLabelUsage.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
+ jLabelEntry = new JLabel();\r
+ jLabelEntry.setText("Guid C_Name");\r
+ jLabelEntry.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
+ jLabelHelpText = new JLabel();\r
+ jLabelHelpText.setBounds(new java.awt.Rectangle(14, 60, 140, 20));\r
+ jLabelHelpText.setText("Help Text");\r
+\r
+ jContentPane = new JPanel();\r
+ jContentPane.setLayout(null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 165));\r
+\r
+ jContentPane.add(jLabelEntry, null);\r
+ jContentPane.add(jLabelFeatureFlag, null);\r
+ jContentPane.add(getJTextFieldFeatureFlag(), null);\r
+ jContentPane.add(getJComboBoxGuidC_Name(), null);\r
+ jContentPane.add(jLabelArch, null);\r
+ jContentPane.add(jLabelUsage, null);\r
+ jContentPane.add(getJComboBoxUsage(), null);\r
+ jStarLabel1 = new StarLabel();\r
+ jStarLabel1.setBounds(new java.awt.Rectangle(0, 10, 10, 20));\r
+ jStarLabel2 = new StarLabel();\r
+ jStarLabel2.setBounds(new java.awt.Rectangle(0, 35, 10, 20));\r
+\r
+ jContentPane.add(jStarLabel1, null);\r
+ jContentPane.add(jStarLabel2, null);\r
+\r
+ jContentPane.add(jLabelHelpText, null);\r
+ jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(jArchCheckBox, null);\r
+ jContentPane.add(getJButtonOk(), null);\r
+ jContentPane.add(getJButtonCancel(), null);\r
+ }\r
+ return jContentPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes Usage type\r
+ \r
+ **/\r
+ private void initFrame() {\r
+ Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVSystemTableUsage());\r
+ Tools.generateComboBoxByVector(jComboBoxGuidC_Name, wt.getAllGuidDeclarationsFromWorkspace());\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ *\r
+ * Override actionPerformed to listen all actions\r
+ * \r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ if (arg0.getSource() == jButtonOk) {\r
+ if (checkAdd()) {\r
+ getCurrentSystemTables();\r
+ this.returnType = DataType.RETURN_TYPE_OK;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonCancel) {\r
+ this.returnType = DataType.RETURN_TYPE_CANCEL;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ /**\r
+ Data validation for all fields\r
+ \r
+ @retval true - All datas are valid\r
+ @retval false - At least one data is invalid\r
+ \r
+ **/\r
+ public boolean checkAdd() {\r
+ //\r
+ // Check if all fields have correct data types \r
+ //\r
+\r
+ //\r
+ // Check FeatureFlag\r
+ //\r
+ if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
+ if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
+ Log.err("Incorrect data type for Feature Flag");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ private SystemTablesIdentification getCurrentSystemTables() {\r
+ String arg0 = this.jComboBoxGuidC_Name.getSelectedItem().toString();\r
+ String arg1 = this.jComboBoxUsage.getSelectedItem().toString();\r
+\r
+ String arg2 = this.jTextFieldFeatureFlag.getText();\r
+ Vector<String> arg3 = this.jArchCheckBox.getSelectedItemsVector();\r
+ String arg4 = this.jTextFieldHelpText.getText();\r
+\r
+ id = new SystemTablesIdentification(arg0, arg1, arg2, arg3, arg4);\r
+ return id;\r
+ }\r
+\r
+ public SystemTablesIdentification getId() {\r
+ return id;\r
+ }\r
+\r
+ public void setId(SystemTablesIdentification id) {\r
+ this.id = id;\r
+ }\r
+}\r
--- /dev/null
+/** @file\r
+ \r
+ The file is used to create, update Variable of MSA/MBD file\r
+ \r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+ \r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ \r
+ **/\r
+\r
+package org.tianocore.frameworkwizard.module.ui.dialog;\r
+\r
+import java.awt.event.ActionEvent;\r
+import java.util.Vector;\r
+\r
+import javax.swing.JButton;\r
+import javax.swing.JComboBox;\r
+import javax.swing.JLabel;\r
+import javax.swing.JPanel;\r
+import javax.swing.JScrollPane;\r
+import javax.swing.JTextField;\r
+\r
+import org.tianocore.frameworkwizard.common.DataType;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.EnumerationData;\r
+import org.tianocore.frameworkwizard.common.Log;\r
+import org.tianocore.frameworkwizard.common.Tools;\r
+import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
+import org.tianocore.frameworkwizard.common.ui.IDialog;\r
+import org.tianocore.frameworkwizard.common.ui.IFrame;\r
+import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
+import org.tianocore.frameworkwizard.module.Identifications.Variables.VariablesIdentification;\r
+import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
+\r
+/**\r
+ The class is used to create, update Variable of MSA/MBD file\r
+ It extends IInternalFrame\r
+ \r
+ **/\r
+public class VariablesDlg extends IDialog {\r
+\r
+ ///\r
+ /// Define class Serial Version UID\r
+ ///\r
+ private static final long serialVersionUID = -6998982978030439446L;\r
+\r
+ //\r
+ //Define class members\r
+ //\r
+ private JPanel jContentPane = null;\r
+\r
+ private JLabel jLabelVariableName = null;\r
+\r
+ private JTextField jTextFieldVariableName = null;\r
+\r
+ private JLabel jLabelUsage = null;\r
+\r
+ private JComboBox jComboBoxUsage = null;\r
+\r
+ private StarLabel jStarLabel1 = null;\r
+\r
+ private StarLabel jStarLabel2 = null;\r
+\r
+ private JScrollPane jScrollPane = null;\r
+\r
+ private JLabel jLabelGuidCName = null;\r
+\r
+ private JComboBox jComboBoxGuidC_Name = null;\r
+\r
+ private JTextField jTextFieldFeatureFlag = null;\r
+\r
+ private JLabel jLabelFeatureFlag = null;\r
+\r
+ private JLabel jLabelArch = null;\r
+\r
+ private JLabel jLabelHelpText = null;\r
+\r
+ private JTextField jTextFieldHelpText = null;\r
+\r
+ private ArchCheckBox jArchCheckBox = null;\r
+\r
+ private JButton jButtonOk = null;\r
+\r
+ private JButton jButtonCancel = null;\r
+\r
+ //\r
+ // Not used by UI\r
+ //\r
+ private VariablesIdentification id = null;\r
+\r
+ private EnumerationData ed = new EnumerationData();\r
+\r
+ private WorkspaceTools wt = new WorkspaceTools();\r
+\r
+ /**\r
+ This method initializes jTextFieldString \r
+ \r
+ @return javax.swing.JTextField jTextFieldString\r
+ \r
+ **/\r
+ private JTextField getJTextFieldString() {\r
+ if (jTextFieldVariableName == null) {\r
+ jTextFieldVariableName = new JTextField();\r
+ jTextFieldVariableName.setSize(new java.awt.Dimension(320, 20));\r
+ jTextFieldVariableName.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jTextFieldVariableName.setLocation(new java.awt.Point(160, 10));\r
+ jTextFieldVariableName\r
+ .setToolTipText("Enter a Hex Word Array, you must provide leading Zeros. 0x000a, 0x0010, ¡");\r
+ }\r
+ return jTextFieldVariableName;\r
+ }\r
+\r
+ /**\r
+ This method initializes jComboBoxUsage \r
+ \r
+ @return javax.swing.JComboBox jComboBoxUsage\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxUsage() {\r
+ if (jComboBoxUsage == null) {\r
+ jComboBoxUsage = new JComboBox();\r
+ jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
+ jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jComboBoxUsage;\r
+ }\r
+\r
+ /**\r
+ This method initializes jScrollPane \r
+ \r
+ @return javax.swing.JScrollPane \r
+ */\r
+ private JScrollPane getJScrollPane() {\r
+ if (jScrollPane == null) {\r
+ jScrollPane = new JScrollPane();\r
+ jScrollPane.setViewportView(getJContentPane());\r
+ }\r
+ return jScrollPane;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldFeatureFlag \r
+ \r
+ @return javax.swing.JTextField jTextFieldFeatureFlag\r
+ \r
+ **/\r
+ private JTextField getJTextFieldFeatureFlag() {\r
+ if (jTextFieldFeatureFlag == null) {\r
+ jTextFieldFeatureFlag = new JTextField();\r
+ jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
+ jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldFeatureFlag;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextFieldHelpText \r
+ \r
+ @return javax.swing.JTextField \r
+ \r
+ **/\r
+ private JTextField getJTextFieldHelpText() {\r
+ if (jTextFieldHelpText == null) {\r
+ jTextFieldHelpText = new JTextField();\r
+ jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
+ jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ }\r
+ return jTextFieldHelpText;\r
+ }\r
+\r
+ /**\r
+ This method initializes jTextField \r
+ \r
+ @return javax.swing.JTextField jTextFieldC_Name\r
+ \r
+ **/\r
+ private JComboBox getJComboBoxGuidC_Name() {\r
+ if (jComboBoxGuidC_Name == null) {\r
+ jComboBoxGuidC_Name = new JComboBox();\r
+ jComboBoxGuidC_Name.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
+ jComboBoxGuidC_Name.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jComboBoxGuidC_Name.setToolTipText("Select the GUID C Name of the Hob");\r
+ }\r
+ return jComboBoxGuidC_Name;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonOk \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonOk() {\r
+ if (jButtonOk == null) {\r
+ jButtonOk = new JButton();\r
+ jButtonOk.setBounds(new java.awt.Rectangle(290, 165, 90, 20));\r
+ jButtonOk.setText("Ok");\r
+ jButtonOk.addActionListener(this);\r
+ }\r
+ return jButtonOk;\r
+ }\r
+\r
+ /**\r
+ This method initializes jButtonCancel \r
+ \r
+ @return javax.swing.JButton \r
+ \r
+ **/\r
+ private JButton getJButtonCancel() {\r
+ if (jButtonCancel == null) {\r
+ jButtonCancel = new JButton();\r
+ jButtonCancel.setBounds(new java.awt.Rectangle(390, 165, 90, 20));\r
+ jButtonCancel.setText("Cancel");\r
+ jButtonCancel.addActionListener(this);\r
+ }\r
+ return jButtonCancel;\r
+ }\r
+\r
+ public static void main(String[] args) {\r
+\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ \r
+ **/\r
+ private void init() {\r
+ this.setSize(500, 225);\r
+ this.setContentPane(getJScrollPane());\r
+ this.setTitle("Variables");\r
+ initFrame();\r
+ this.setViewMode(false);\r
+ this.centerWindow();\r
+ }\r
+\r
+ /**\r
+ This method initializes this\r
+ Fill values to all fields if these values are not empty\r
+ \r
+ @param inVariablesId\r
+\r
+ **/\r
+ private void init(VariablesIdentification inVariablesId) {\r
+ init();\r
+ this.id = inVariablesId;\r
+\r
+ if (this.id != null) {\r
+ this.jTextFieldVariableName.setText(id.getName());\r
+ this.jComboBoxGuidC_Name.setSelectedItem(id.getGuid());\r
+ this.jComboBoxUsage.setSelectedItem(id.getUsage());\r
+ this.jTextFieldHelpText.setText(id.getHelp());\r
+ this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());\r
+ this.jArchCheckBox.setSelectedItems(id.getSupArchList());\r
+ }\r
+ }\r
+\r
+ /**\r
+ This is the override edit constructor\r
+ \r
+ @param inHobsIdentification\r
+ @param iFrame\r
+ \r
+ **/\r
+ public VariablesDlg(VariablesIdentification inVariablesIdentification, IFrame iFrame) {\r
+ super(iFrame, true);\r
+ init(inVariablesIdentification);\r
+ }\r
+\r
+ /**\r
+ Disable all components when the mode is view\r
+ \r
+ @param isView true - The view mode; false - The non-view mode\r
+ \r
+ **/\r
+ public void setViewMode(boolean isView) {\r
+ if (isView) {\r
+ this.jTextFieldVariableName.setEnabled(!isView);\r
+ this.jComboBoxUsage.setEnabled(!isView);\r
+ }\r
+ }\r
+\r
+ /**\r
+ This method initializes jContentPane\r
+ \r
+ @return javax.swing.JPanel jContentPane\r
+ \r
+ **/\r
+ private JPanel getJContentPane() {\r
+ if (jContentPane == null) {\r
+ jArchCheckBox = new ArchCheckBox();\r
+ jArchCheckBox.setBounds(new java.awt.Rectangle(160, 135, 320, 20));\r
+ jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
+ jLabelGuidCName = new JLabel();\r
+ jLabelGuidCName.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
+ jLabelGuidCName.setText("Guid C_Name");\r
+ jLabelUsage = new JLabel();\r
+ jLabelUsage.setText("Usage");\r
+ jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
+ jLabelVariableName = new JLabel();\r
+ jLabelVariableName.setText("Variable Name");\r
+ jLabelVariableName.setLocation(new java.awt.Point(15, 10));\r
+ jLabelVariableName.setSize(new java.awt.Dimension(140, 20));\r
+ jLabelArch = new JLabel();\r
+ jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 140, 20));\r
+ jLabelArch.setText("Arch");\r
+ jLabelFeatureFlag = new JLabel();\r
+ jLabelFeatureFlag.setText("Feature Flag");\r
+ jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
+\r
+ jContentPane = new JPanel();\r
+ jContentPane.setLayout(null);\r
+ jContentPane.setPreferredSize(new java.awt.Dimension(490, 190));\r
+\r
+ jContentPane.add(jLabelVariableName, null);\r
+ jContentPane.add(jLabelGuidCName, null);\r
+ jContentPane.add(getJComboBoxGuidC_Name(), null);\r
+ jContentPane.add(getJTextFieldString(), null);\r
+ jContentPane.add(jLabelUsage, null);\r
+ jContentPane.add(getJComboBoxUsage(), null);\r
+ jStarLabel1 = new StarLabel();\r
+ jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
+ jStarLabel2 = new StarLabel();\r
+ jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
+ jLabelHelpText = new JLabel();\r
+ jLabelHelpText.setBounds(new java.awt.Rectangle(14, 85, 140, 20));\r
+ jLabelHelpText.setText("Help Text");\r
+\r
+ jContentPane.add(jStarLabel1, null);\r
+ jContentPane.add(jStarLabel2, null);\r
+\r
+ jContentPane.add(jLabelArch, null);\r
+ jContentPane.add(jLabelFeatureFlag, null);\r
+ jContentPane.add(getJTextFieldFeatureFlag(), null);\r
+ jContentPane.add(jLabelHelpText, null);\r
+ jContentPane.add(getJTextFieldHelpText(), null);\r
+ jContentPane.add(jArchCheckBox, null);\r
+ jContentPane.add(getJButtonOk(), null);\r
+ jContentPane.add(getJButtonCancel(), null);\r
+ }\r
+ return jContentPane;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+ *\r
+ * Override actionPerformed to listen all actions\r
+ * \r
+ */\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ if (arg0.getSource() == jButtonOk) {\r
+ if (checkAdd()) {\r
+ getCurrentVariables();\r
+ this.returnType = DataType.RETURN_TYPE_OK;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ if (arg0.getSource() == jButtonCancel) {\r
+ this.returnType = DataType.RETURN_TYPE_CANCEL;\r
+ this.setVisible(false);\r
+ }\r
+ }\r
+\r
+ /**\r
+ This method initializes Usage type\r
+ \r
+ **/\r
+ private void initFrame() {\r
+ Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVPpiUsage());\r
+ Tools.generateComboBoxByVector(jComboBoxGuidC_Name, wt.getAllGuidDeclarationsFromWorkspace());\r
+ }\r
+\r
+ /**\r
+ Data validation for all fields\r
+ \r
+ @retval true - All datas are valid\r
+ @retval false - At least one data is invalid\r
+ \r
+ **/\r
+ public boolean checkAdd() {\r
+ //\r
+ // Check if all fields have correct data types \r
+ //\r
+\r
+ //\r
+ // Check VariableName \r
+ //\r
+ if (isEmpty(this.jTextFieldVariableName.getText())) {\r
+ Log.err("Variable Name couldn't be empty");\r
+ return false;\r
+ }\r
+\r
+ if (!isEmpty(this.jTextFieldVariableName.getText())) {\r
+ if (!DataValidation.isHexWordArrayType(this.jTextFieldVariableName.getText())) {\r
+ Log.err("Incorrect data type for Variable Name");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ //\r
+ // Check FeatureFlag\r
+ //\r
+ if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
+ if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
+ Log.err("Incorrect data type for Feature Flag");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ private VariablesIdentification getCurrentVariables() {\r
+ String arg0 = this.jTextFieldVariableName.getText();\r
+ String arg1 = this.jComboBoxGuidC_Name.getSelectedItem().toString();\r
+ String arg2 = this.jComboBoxUsage.getSelectedItem().toString();\r
+\r
+ String arg3 = this.jTextFieldFeatureFlag.getText();\r
+ Vector<String> arg4 = this.jArchCheckBox.getSelectedItemsVector();\r
+ String arg5 = this.jTextFieldHelpText.getText();\r
+\r
+ id = new VariablesIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
+ return id;\r
+ }\r
+\r
+ public VariablesIdentification getId() {\r
+ return id;\r
+ }\r
+\r
+ public void setId(VariablesIdentification id) {\r
+ this.id = id;\r
+ }\r
+}\r