X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Tools%2FSource%2FFrameworkWizard%2Fsrc%2Forg%2Ftianocore%2Fframeworkwizard%2Fmodule%2Fui%2FModuleEvents.java;h=7db1d9763bce7fe7515513e176a4121c64b7a97c;hp=165fbd60686bf1078cd757cf212f2c2a3cf4cc50;hb=e08433efeb382abec06fec875936586ee94d5e2a;hpb=a13899c5acad2f5e125abdae972b4c3d1e522f69 diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleEvents.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleEvents.java index 165fbd6068..7db1d9763b 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleEvents.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleEvents.java @@ -14,19 +14,20 @@ **/ package org.tianocore.frameworkwizard.module.ui; +import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ComponentEvent; -import java.awt.event.ItemEvent; +import java.awt.event.MouseEvent; import java.util.Vector; import javax.swing.JButton; -import javax.swing.JComboBox; -import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; -import javax.swing.JTextArea; -import javax.swing.JTextField; +import javax.swing.JTable; +import javax.swing.ListSelectionModel; +import javax.swing.event.ListSelectionEvent; +import org.tianocore.EventTypes; import org.tianocore.EventsDocument; import org.tianocore.ProtocolNotifyUsage; import org.tianocore.ProtocolUsage; @@ -35,16 +36,16 @@ import org.tianocore.EventsDocument.Events.CreateEvents; import org.tianocore.EventsDocument.Events.SignalEvents; import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea; import org.tianocore.frameworkwizard.common.DataType; -import org.tianocore.frameworkwizard.common.DataValidation; import org.tianocore.frameworkwizard.common.EnumerationData; +import org.tianocore.frameworkwizard.common.IDefaultTableModel; import org.tianocore.frameworkwizard.common.Log; -import org.tianocore.frameworkwizard.common.OpeningModuleType; import org.tianocore.frameworkwizard.common.Tools; +import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType; +import org.tianocore.frameworkwizard.common.ui.IFrame; import org.tianocore.frameworkwizard.common.ui.IInternalFrame; -import org.tianocore.frameworkwizard.common.ui.StarLabel; -import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList; -import org.tianocore.frameworkwizard.module.Identification.Events.EventsIdentification; -import org.tianocore.frameworkwizard.module.Identification.Events.EventsVector; +import org.tianocore.frameworkwizard.module.Identifications.Events.EventsIdentification; +import org.tianocore.frameworkwizard.module.Identifications.Events.EventsVector; +import org.tianocore.frameworkwizard.module.ui.dialog.EventsDlg; /** The class is used to create, update Event of MSA/MBD file @@ -65,26 +66,6 @@ public class ModuleEvents extends IInternalFrame { // private JPanel jContentPane = null; - private JLabel jLabelEventType = null; - - private JLabel jLabelC_Name = null; - - private JTextField jTextFieldC_Name = null; - - private JLabel jLabelUsage = null; - - private JComboBox jComboBoxUsage = null; - - private StarLabel jStarLabel1 = null; - - private StarLabel jStarLabel2 = null; - - private JComboBox jComboBoxEventsType = null; - - private JTextArea jTextAreaList = null; - - private JComboBox jComboBoxList = null; - private JButton jButtonAdd = null; private JButton jButtonRemove = null; @@ -93,27 +74,13 @@ public class ModuleEvents extends IInternalFrame { private JScrollPane jScrollPane = null; - private JScrollPane jScrollPaneList = null; - - private JLabel jLabelArch = null; - - private ICheckBoxList iCheckBoxListArch = null; + private JScrollPane jScrollPaneTable = null; - private JScrollPane jScrollPaneArch = null; - - private JLabel jLabelHelpText = null; - - private JTextField jTextFieldHelpText = null; - - private JLabel jLabelFeatureFlag = null; - - private JTextField jTextFieldFeatureFlag = null; + private JTable jTable = null; // // Not used by UI // - private int intSelectedItemId = 0; - private OpeningModuleType omt = null; private ModuleSurfaceArea msa = null; @@ -126,66 +93,9 @@ public class ModuleEvents extends IInternalFrame { private EnumerationData ed = new EnumerationData(); - /** - This method initializes jTextFieldC_Name - - @return javax.swing.JTextField jTextFieldC_Name - - **/ - private JTextField getJTextFieldC_Name() { - if (jTextFieldC_Name == null) { - jTextFieldC_Name = new JTextField(); - jTextFieldC_Name.setBounds(new java.awt.Rectangle(160, 35, 320, 20)); - jTextFieldC_Name.setPreferredSize(new java.awt.Dimension(320, 20)); - } - return jTextFieldC_Name; - } + private IDefaultTableModel model = null; - /** - This method initializes jComboBoxUsage - - @return javax.swing.JComboBox jComboBoxUsage - - **/ - private JComboBox getJComboBoxUsage() { - if (jComboBoxUsage == null) { - jComboBoxUsage = new JComboBox(); - jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 60, 320, 20)); - jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20)); - } - return jComboBoxUsage; - } - - /** - * This method initializes jComboBoxEventsType - * - * @return javax.swing.JComboBox - */ - private JComboBox getJComboBoxEventsType() { - if (jComboBoxEventsType == null) { - jComboBoxEventsType = new JComboBox(); - jComboBoxEventsType.setBounds(new java.awt.Rectangle(160, 10, 320, 20)); - jComboBoxEventsType.setPreferredSize(new java.awt.Dimension(320, 20)); - } - return jComboBoxEventsType; - } - - /** - This method initializes jComboBoxFileList - - @return javax.swing.JComboBox jComboBoxFileList - - **/ - private JComboBox getJComboBoxList() { - if (jComboBoxList == null) { - jComboBoxList = new JComboBox(); - jComboBoxList.setBounds(new java.awt.Rectangle(15, 220, 210, 20)); - jComboBoxList.addItemListener(this); - jComboBoxList.addActionListener(this); - jComboBoxList.setPreferredSize(new java.awt.Dimension(210, 20)); - } - return jComboBoxList; - } + private int selectedRow = -1; /** This method initializes jButtonAdd @@ -232,27 +142,12 @@ public class ModuleEvents extends IInternalFrame { jButtonUpdate = new JButton(); jButtonUpdate.setBounds(new java.awt.Rectangle(315, 220, 80, 20)); jButtonUpdate.setPreferredSize(new java.awt.Dimension(80, 20)); - jButtonUpdate.setText("Update"); + jButtonUpdate.setText("Edit"); jButtonUpdate.addActionListener(this); } return jButtonUpdate; } - /** - * This method initializes jScrollPaneFileList - * - * @return javax.swing.JScrollPane - */ - private JScrollPane getJScrollPaneList() { - if (jScrollPaneList == null) { - jScrollPaneList = new JScrollPane(); - jScrollPaneList.setBounds(new java.awt.Rectangle(15, 245, 465, 240)); - jScrollPaneList.setViewportView(getJTextAreaList()); - jScrollPaneList.setPreferredSize(new java.awt.Dimension(465, 240)); - } - return jScrollPaneList; - } - /** This method initializes jScrollPane @@ -267,151 +162,113 @@ public class ModuleEvents extends IInternalFrame { } /** - * This method initializes jTextAreaFileList - * - * @return javax.swing.JTextArea - */ - private JTextArea getJTextAreaList() { - if (jTextAreaList == null) { - jTextAreaList = new JTextArea(); - jTextAreaList.setEditable(false); - + This method initializes jScrollPaneTable + + @return javax.swing.JScrollPane + **/ + private JScrollPane getJScrollPaneTable() { + if (jScrollPaneTable == null) { + jScrollPaneTable = new JScrollPane(); + jScrollPaneTable.setBounds(new java.awt.Rectangle(15, 10, 470, 420)); + jScrollPaneTable.setPreferredSize(new Dimension(470, 420)); + jScrollPaneTable.setViewportView(getJTable()); } - return jTextAreaList; + return jScrollPaneTable; } /** - This method initializes iCheckBoxListArch + This method initializes jTable - @return ICheckBoxList + @return javax.swing.JTable **/ - private ICheckBoxList getICheckBoxListSupportedArchitectures() { - if (iCheckBoxListArch == null) { - iCheckBoxListArch = new ICheckBoxList(); - iCheckBoxListArch.addFocusListener(this); - iCheckBoxListArch.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT); + private JTable getJTable() { + if (jTable == null) { + jTable = new JTable(); + model = new IDefaultTableModel(); + jTable = new JTable(model); + jTable.setRowHeight(20); + + model.addColumn("Guid C_Name"); + model.addColumn("Type"); + model.addColumn("Usage"); + + jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + jTable.getSelectionModel().addListSelectionListener(this); + jTable.getModel().addTableModelListener(this); + jTable.addMouseListener(this); } - return iCheckBoxListArch; + return jTable; + } + + public static void main(String[] args) { + } /** - This method initializes jScrollPaneArch - - @return javax.swing.JScrollPane + This method initializes this **/ - private JScrollPane getJScrollPaneArch() { - if (jScrollPaneArch == null) { - jScrollPaneArch = new JScrollPane(); - jScrollPaneArch.setBounds(new java.awt.Rectangle(160, 135, 320, 80)); - jScrollPaneArch.setPreferredSize(new java.awt.Dimension(320, 80)); - jScrollPaneArch.setViewportView(getICheckBoxListSupportedArchitectures()); - } - return jScrollPaneArch; + private void init() { + this.setSize(500, 515); + this.setContentPane(getJScrollPane()); + this.setTitle("Events"); } /** - * This method initializes jTextFieldFeatureFlag - * - * @return javax.swing.JTextField - */ - private JTextField getJTextFieldFeatureFlag() { - if (jTextFieldFeatureFlag == null) { - jTextFieldFeatureFlag = new JTextField(); - jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160,110,320,20)); - jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320,20)); - } - return jTextFieldFeatureFlag; - } - - /** - This method initializes jTextFieldHelpText - - @return javax.swing.JTextField - - **/ - private JTextField getJTextFieldHelpText() { - if (jTextFieldHelpText == null) { - jTextFieldHelpText = new JTextField(); - jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 85, 320, 20)); - jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20)); - } - return jTextFieldHelpText; - } + This method initializes this + Fill values to all fields if these values are not empty + + @param inPackageDependencies - public static void main(String[] args) { + **/ + private void init(Events inEvents) { + init(); + this.events = inEvents; + + if (this.events != null) { + if (this.events.getCreateEvents() != null) { + if (this.events.getCreateEvents().getEventTypesList().size() > 0) { + for (int index = 0; index < this.events.getCreateEvents().getEventTypesList().size(); index++) { + String arg0 = events.getCreateEvents().getEventTypesList().get(index).getEventGuidCName(); + String arg1 = ed.getVEventType().get(0); + String arg2 = null; + if (events.getCreateEvents().getEventTypesList().get(index).getUsage() != null) { + arg2 = events.getCreateEvents().getEventTypesList().get(index).getUsage().toString(); + } + + String arg3 = events.getCreateEvents().getEventTypesList().get(index).getFeatureFlag(); + Vector arg4 = Tools.convertListToVector(events.getCreateEvents().getEventTypesList() + .get(index).getSupArchList()); + String arg5 = events.getCreateEvents().getEventTypesList().get(index).getHelpText(); + String arg6 = events.getCreateEvents().getEventTypesList().get(index).getEventType().toString(); + id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5, arg6); + vid.addEvents(id); + } + } + } + if (this.events.getSignalEvents() != null) { + if (this.events.getSignalEvents().getEventTypesList().size() > 0) { + for (int index = 0; index < this.events.getSignalEvents().getEventTypesList().size(); index++) { + String arg0 = events.getSignalEvents().getEventTypesList().get(index).getEventGuidCName(); + String arg1 = ed.getVEventType().get(1); + String arg2 = null; + if (events.getSignalEvents().getEventTypesList().get(index).getUsage() != null) { + arg2 = events.getSignalEvents().getEventTypesList().get(index).getUsage().toString(); + } + String arg3 = events.getSignalEvents().getEventTypesList().get(index).getFeatureFlag(); + Vector arg4 = Tools.convertListToVector(events.getSignalEvents().getEventTypesList() + .get(index).getSupArchList()); + String arg5 = events.getSignalEvents().getEventTypesList().get(index).getHelpText(); + String arg6 = events.getSignalEvents().getEventTypesList().get(index).getEventType().toString(); + id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5, arg6); + vid.addEvents(id); + } + } + } + } + showTable(); } - - /** - This method initializes this - - **/ - private void init() { - this.setSize(500, 515); - this.setContentPane(getJScrollPane()); - this.setTitle("Events"); - initFrame(); - this.setViewMode(false); - } - - /** - This method initializes this - Fill values to all fields if these values are not empty - - @param inPackageDependencies - - **/ - private void init(Events inEvents) { - init(); - this.events = inEvents; - - if (this.events != null) { - if (this.events.getCreateEvents() != null) { - if (this.events.getCreateEvents().getEventTypesList().size() > 0) { - for (int index = 0; index < this.events.getCreateEvents().getEventTypesList().size(); index++) { - String arg0 = events.getCreateEvents().getEventTypesList().get(index).getEventGuidCName(); - String arg1 = ed.getVEventType().get(0); - String arg2 = null; - if (events.getCreateEvents().getEventTypesList().get(index).getUsage() != null) { - arg2 = events.getCreateEvents().getEventTypesList().get(index).getUsage().toString(); - } - - String arg3 = events.getCreateEvents().getEventTypesList().get(index).getFeatureFlag(); - Vector arg4 = Tools.convertListToVector(events.getCreateEvents().getEventTypesList().get(index) - .getSupArchList()); - String arg5 = events.getCreateEvents().getEventTypesList().get(index).getHelpText(); - id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5); - vid.addEvents(id); - } - } - } - if (this.events.getSignalEvents() != null) { - if (this.events.getSignalEvents().getEventTypesList().size() > 0) { - for (int index = 0; index < this.events.getSignalEvents().getEventTypesList().size(); index++) { - String arg0 = events.getSignalEvents().getEventTypesList().get(index).getEventGuidCName(); - String arg1 = ed.getVEventType().get(1); - String arg2 = null; - if (events.getSignalEvents().getEventTypesList().get(index).getUsage() != null) { - arg2 = events.getSignalEvents().getEventTypesList().get(index).getUsage().toString(); - } - - String arg3 = events.getSignalEvents().getEventTypesList().get(index).getFeatureFlag(); - Vector arg4 = Tools.convertListToVector(events.getSignalEvents().getEventTypesList().get(index) - .getSupArchList()); - String arg5 = events.getSignalEvents().getEventTypesList().get(index).getHelpText(); - id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5); - vid.addEvents(id); - } - } - } - } - // - // Update the list - // - Tools.generateComboBoxByVector(jComboBoxList, vid.getEventsName()); - reloadListArea(); - } /** This is the default constructor @@ -437,19 +294,6 @@ public class ModuleEvents extends IInternalFrame { this.setVisible(true); } - /** - Disable all components when the mode is view - - @param isView true - The view mode; false - The non-view mode - - **/ - public void setViewMode(boolean isView) { - if (isView) { - this.jTextFieldC_Name.setEnabled(!isView); - this.jComboBoxUsage.setEnabled(!isView); - } - } - /** This method initializes jContentPane @@ -458,67 +302,62 @@ public class ModuleEvents extends IInternalFrame { **/ private JPanel getJContentPane() { if (jContentPane == null) { - jLabelFeatureFlag = new JLabel(); - jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15,110,140,20)); - jLabelFeatureFlag.setText("Feature Flag"); - jLabelArch = new JLabel(); - jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 140, 20)); - jLabelArch.setText("Arch"); - jLabelUsage = new JLabel(); - jLabelUsage.setText("Usage"); - jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 140, 20)); - jLabelC_Name = new JLabel(); - jLabelC_Name.setText("Guid C_Name"); - jLabelC_Name.setBounds(new java.awt.Rectangle(15, 35, 140, 20)); - jLabelEventType = new JLabel(); - jLabelEventType.setText("Event Type"); - jLabelEventType.setBounds(new java.awt.Rectangle(15, 10, 140, 20)); - jLabelHelpText = new JLabel(); - jLabelHelpText.setBounds(new java.awt.Rectangle(14, 85, 140, 20)); - jLabelHelpText.setText("Help Text"); - jContentPane = new JPanel(); jContentPane.setLayout(null); jContentPane.setPreferredSize(new java.awt.Dimension(490, 490)); - jContentPane.add(jLabelEventType, null); - jContentPane.add(jLabelC_Name, null); - jContentPane.add(getJTextFieldC_Name(), null); - jContentPane.add(jLabelUsage, null); - jContentPane.add(getJComboBoxUsage(), null); - jStarLabel1 = new StarLabel(); - jStarLabel1.setBounds(new java.awt.Rectangle(0, 10, 10, 20)); - jStarLabel2 = new StarLabel(); - jStarLabel2.setBounds(new java.awt.Rectangle(0, 35, 10, 20)); - - jContentPane.add(jStarLabel1, null); - jContentPane.add(jStarLabel2, null); - jContentPane.add(getJComboBoxEventsType(), null); - - jContentPane.add(getJComboBoxList(), null); jContentPane.add(getJButtonAdd(), null); jContentPane.add(getJButtonRemove(), null); jContentPane.add(getJButtonUpdate(), null); - jContentPane.add(getJScrollPaneList(), null); - jContentPane.add(jLabelArch, null); - jContentPane.add(getJScrollPaneArch(), null); - jContentPane.add(jLabelFeatureFlag, null); - jContentPane.add(getJTextFieldFeatureFlag(), null); - jContentPane.add(jLabelHelpText, null); - jContentPane.add(getJTextFieldHelpText(), null); + jContentPane.add(getJScrollPaneTable(), null); } return jContentPane; } + private void showEdit(int index) { + EventsDlg dlg = new EventsDlg(vid.getEvents(index), new IFrame(), omt.getId()); + int result = dlg.showDialog(); + if (result == DataType.RETURN_TYPE_OK) { + if (index == -1) { + this.vid.addEvents(dlg.getId()); + } else { + this.vid.setEvents(dlg.getId(), index); + } + this.showTable(); + this.save(); + dlg.dispose(); + } + if (result == DataType.RETURN_TYPE_CANCEL) { + dlg.dispose(); + } + } + /** - This method initializes events groups and usage type + Clear all table rows **/ - private void initFrame() { - Tools.generateComboBoxByVector(jComboBoxEventsType, ed.getVEventType()); - Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVEventUsage()); - - this.iCheckBoxListArch.setAllItems(ed.getVSupportedArchitectures()); + private void clearAll() { + if (model != null) { + for (int index = model.getRowCount() - 1; index >= 0; index--) { + model.removeRow(index); + } + } + } + + /** + Read content of vector and put then into table + + **/ + private void showTable() { + clearAll(); + + if (vid.size() > 0) { + for (int index = 0; index < vid.size(); index++) { + model.addRow(vid.toStringVector(index)); + } + } + this.jTable.repaint(); + this.jTable.updateUI(); } /* (non-Javadoc) @@ -529,60 +368,27 @@ public class ModuleEvents extends IInternalFrame { */ public void actionPerformed(ActionEvent arg0) { if (arg0.getSource() == jButtonAdd) { - if (!checkAdd()) { - return; - } - addToList(); - } - if (arg0.getSource() == jButtonRemove) { - removeFromList(); + showEdit(-1); } if (arg0.getSource() == jButtonUpdate) { - if (!checkAdd()) { + if (this.selectedRow < 0) { + Log.wrn("Update Events", "Please select one record first."); return; } - updateForList(); + showEdit(selectedRow); } - } - /** - Data validation for all fields - - @retval true - All datas are valid - @retval false - At least one data is invalid - - **/ - public boolean checkAdd() { - // - // Check if all fields have correct data types - // - - // - // Check Name - // - if (isEmpty(this.jTextFieldC_Name.getText())) { - Log.err("Event Name couldn't be empty"); - return false; - } - - if (!isEmpty(this.jTextFieldC_Name.getText())) { - if (!DataValidation.isC_NameType(this.jTextFieldC_Name.getText())) { - Log.err("Incorrect data type for Event Name"); - return false; + if (arg0.getSource() == jButtonRemove) { + if (jTable.isEditing()) { + jTable.getCellEditor().stopCellEditing(); } - } - - // - // Check FeatureFlag - // - if (!isEmpty(this.jTextFieldFeatureFlag.getText())) { - if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) { - Log.err("Incorrect data type for Feature Flag"); - return false; + if (selectedRow > -1) { + this.model.removeRow(selectedRow); + this.vid.removeEvents(selectedRow); + selectedRow = -1; + this.save(); } } - - return true; } /** @@ -598,7 +404,7 @@ public class ModuleEvents extends IInternalFrame { this.events = Events.Factory.newInstance(); CreateEvents ce = CreateEvents.Factory.newInstance(); SignalEvents se = SignalEvents.Factory.newInstance(); - + if (count > 0) { for (int index = 0; index < count; index++) { if (vid.getEvents(index).getType().equals(ed.getVEventType().get(0))) { @@ -619,10 +425,13 @@ public class ModuleEvents extends IInternalFrame { if (!isEmpty(vid.getEvents(index).getHelp())) { e.setHelpText(vid.getEvents(index).getHelp()); } + if (!isEmpty(vid.getEvents(index).getGroup())) { + e.setEventType(EventTypes.Enum.forString(vid.getEvents(index).getGroup())); + } ce.addNewEventTypes(); ce.setEventTypesArray(ce.getEventTypesList().size() - 1, e); } - if (vid.getEvents(index).getType().equals("Protocol Notify")) { + if (vid.getEvents(index).getType().equals(ed.getVEventType().get(1))) { SignalEvents.EventTypes e = SignalEvents.EventTypes.Factory.newInstance(); if (!isEmpty(vid.getEvents(index).getName())) { e.setEventGuidCName(vid.getEvents(index).getName()); @@ -640,6 +449,9 @@ public class ModuleEvents extends IInternalFrame { if (!isEmpty(vid.getEvents(index).getHelp())) { e.setHelpText(vid.getEvents(index).getHelp()); } + if (!isEmpty(vid.getEvents(index).getGroup())) { + e.setEventType(EventTypes.Enum.forString(vid.getEvents(index).getGroup())); + } se.addNewEventTypes(); se.setEventTypesArray(ce.getEventTypesList().size() - 1, e); } @@ -656,197 +468,62 @@ public class ModuleEvents extends IInternalFrame { this.msa.setEvents(events); this.omt.setSaved(false); } catch (Exception e) { - e.printStackTrace(); + Log.wrn("Update Events", e.getMessage()); Log.err("Update Events", e.getMessage()); } } /* (non-Javadoc) - * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent) - * - * Override componentResized to resize all components when frame's size is changed + * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent) + * */ - public void componentResized(ComponentEvent arg0) { - int intCurrentWidth = this.getJContentPane().getWidth(); - int intCurrentHeight = this.getJContentPane().getHeight(); - int intPreferredWidth = this.getJContentPane().getPreferredSize().width; - int intPreferredHeight = this.getJContentPane().getPreferredSize().height; - - resizeComponentWidth(jComboBoxEventsType, intCurrentWidth, intPreferredWidth); - resizeComponentWidth(jTextFieldC_Name, intCurrentWidth, intPreferredWidth); - resizeComponentWidth(jComboBoxUsage, intCurrentWidth, intPreferredWidth); - resizeComponentWidth(jTextFieldHelpText, intCurrentWidth, intPreferredWidth); - resizeComponentWidth(jTextFieldFeatureFlag, intCurrentWidth, intPreferredWidth); - resizeComponentWidth(jScrollPaneArch, intCurrentWidth, intPreferredWidth); - - resizeComponentWidth(jComboBoxList, intCurrentWidth, intPreferredWidth); - resizeComponent(jScrollPaneList, intCurrentWidth, intCurrentHeight, intPreferredWidth, intPreferredHeight); - relocateComponentX(jButtonAdd, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON); - relocateComponentX(jButtonRemove, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON); - relocateComponentX(jButtonUpdate, intCurrentWidth, intPreferredWidth, DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON); - } - - private EventsIdentification getCurrentEvents() { - String arg0 = this.jTextFieldC_Name.getText(); - String arg1 = this.jComboBoxEventsType.getSelectedItem().toString(); - String arg2 = this.jComboBoxUsage.getSelectedItem().toString(); - - String arg3 = this.jTextFieldFeatureFlag.getText(); - Vector arg4 = this.iCheckBoxListArch.getAllCheckedItemsString(); - String arg5 = this.jTextFieldHelpText.getText(); - id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5); - return id; - } - - /** - Add current item to Vector - - **/ - private void addToList() { - intSelectedItemId = vid.size(); - - vid.addEvents(getCurrentEvents()); - - jComboBoxList.addItem(id.getName()); - jComboBoxList.setSelectedItem(id.getName()); - - // - // Reset select item index - // - intSelectedItemId = vid.size(); - - // - // Reload all fields of selected item - // - reloadFromList(); - - // - // Save to memory - // - save(); - } - - /** - Remove current item from Vector - - **/ - private void removeFromList() { - // - // Check if exist items - // - if (this.vid.size() < 1) { + public void valueChanged(ListSelectionEvent arg0) { + if (arg0.getValueIsAdjusting()) { return; } - - int intTempIndex = intSelectedItemId; - - jComboBoxList.removeItemAt(intSelectedItemId); - - vid.removeEvents(intTempIndex); - - // - // Reload all fields of selected item - // - reloadFromList(); - - // - // Save to memory - // - save(); - } - - /** - Update current item of Vector - - **/ - private void updateForList() { - // - // Check if exist items - // - if (this.vid.size() < 1) { + ListSelectionModel lsm = (ListSelectionModel) arg0.getSource(); + if (lsm.isSelectionEmpty()) { return; - } - - // - // Backup selected item index - // - int intTempIndex = intSelectedItemId; - - vid.updateEvents(getCurrentEvents(), intTempIndex); - - jComboBoxList.removeAllItems(); - for (int index = 0; index < vid.size(); index++) { - jComboBoxList.addItem(vid.getEvents(index).getName()); - } - - // - // Restore selected item index - // - intSelectedItemId = intTempIndex; - - // - // Reset select item index - // - jComboBoxList.setSelectedIndex(intSelectedItemId); - - // - // Reload all fields of selected item - // - reloadFromList(); - - // - // Save to memory - // - save(); - } - - /** - Refresh all fields' values of selected item of Vector - - **/ - private void reloadFromList() { - if (vid.size() > 0) { - // - // Get selected item index - // - intSelectedItemId = jComboBoxList.getSelectedIndex(); - - this.jTextFieldC_Name.setText(vid.getEvents(intSelectedItemId).getName()); - this.jComboBoxEventsType.setSelectedItem(vid.getEvents(intSelectedItemId).getType()); - this.jComboBoxUsage.setSelectedItem(vid.getEvents(intSelectedItemId).getUsage()); - this.jTextFieldHelpText.setText(vid.getEvents(intSelectedItemId).getHelp()); - - jTextFieldFeatureFlag.setText(vid.getEvents(intSelectedItemId).getFeatureFlag()); - iCheckBoxListArch.setAllItemsUnchecked(); - iCheckBoxListArch.initCheckedItem(true, vid.getEvents(intSelectedItemId).getSupArchList()); - } else { + selectedRow = lsm.getMinSelectionIndex(); } - - reloadListArea(); } - /** - Update list area pane via the elements of Vector - - **/ - private void reloadListArea() { - String strListItem = ""; - for (int index = 0; index < vid.size(); index++) { - strListItem = strListItem + vid.getEvents(index).getName() + DataType.UNIX_LINE_SEPARATOR; + /* (non-Javadoc) + * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent) + * + */ + public void mouseClicked(MouseEvent arg0) { + if (arg0.getClickCount() == 2) { + if (this.selectedRow < 0) { + return; + } else { + showEdit(selectedRow); + } } - this.jTextAreaList.setText(strListItem); } /* (non-Javadoc) - * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent) - * - * Reflesh the frame when selected item changed + * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent) * + * Override componentResized to resize all components when frame's size is changed */ - public void itemStateChanged(ItemEvent arg0) { - if (arg0.getSource() == this.jComboBoxList && arg0.getStateChange() == ItemEvent.SELECTED) { - reloadFromList(); - } + public void componentResized(ComponentEvent arg0) { + int intCurrentWidth = this.getJContentPane().getWidth(); + int intCurrentHeight = this.getJContentPane().getHeight(); + int intPreferredWidth = this.getJContentPane().getPreferredSize().width; + int intPreferredHeight = this.getJContentPane().getPreferredSize().height; + + Tools.resizeComponent(this.jScrollPaneTable, intCurrentWidth, intCurrentHeight, intPreferredWidth, + intPreferredHeight); + Tools.relocateComponent(this.jButtonAdd, intCurrentWidth, intCurrentHeight, intPreferredWidth, + intPreferredHeight, DataType.SPACE_TO_RIGHT_FOR_ADD_BUTTON, + DataType.SPACE_TO_BOTTOM_FOR_ADD_BUTTON); + Tools.relocateComponent(this.jButtonRemove, intCurrentWidth, intCurrentHeight, intPreferredWidth, + intPreferredHeight, DataType.SPACE_TO_RIGHT_FOR_REMOVE_BUTTON, + DataType.SPACE_TO_BOTTOM_FOR_REMOVE_BUTTON); + Tools.relocateComponent(this.jButtonUpdate, intCurrentWidth, intCurrentHeight, intPreferredWidth, + intPreferredHeight, DataType.SPACE_TO_RIGHT_FOR_UPDATE_BUTTON, + DataType.SPACE_TO_BOTTOM_FOR_UPDATE_BUTTON); } }