/** @file | |
Java class GuidEditor. | |
Copyright (c) 2006, Intel Corporation | |
All rights reserved. This program and the accompanying materials | |
are licensed and made available under the terms and conditions of the BSD License | |
which accompanies this distribution. The full text of the license may be found at | |
http://opensource.org/licenses/bsd-license.php | |
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
**/ | |
package org.tianocore.frameworkwizard.platform.ui; | |
import java.awt.Component; | |
import java.awt.event.ActionEvent; | |
import java.awt.event.ActionListener; | |
import java.util.Vector; | |
import javax.swing.AbstractCellEditor; | |
import javax.swing.JButton; | |
import javax.swing.JFrame; | |
import javax.swing.JOptionPane; | |
import javax.swing.JTable; | |
import javax.swing.table.TableCellEditor; | |
/** | |
Editor for table cell with GUID value. | |
@since PackageEditor 1.0 | |
**/ | |
public class ListEditor extends AbstractCellEditor implements TableCellEditor, ActionListener { | |
/** | |
* | |
*/ | |
private static final long serialVersionUID = 1L; | |
private boolean canNotBeEmpty = false; | |
private JFrame topFrame = null; | |
String archs; | |
JButton button; | |
GenListDialog dialog; | |
protected static final String EDIT = "edit"; | |
public ListEditor(JFrame frame) { | |
topFrame = frame; | |
button = new JButton(); | |
button.setActionCommand(EDIT); | |
button.addActionListener(this); | |
button.setBorderPainted(false); | |
dialog = new GenListDialog(this, frame); | |
} | |
public ListEditor(Vector<String> v, JFrame frame) { | |
this(frame); | |
dialog.initList(v); | |
} | |
/* (non-Javadoc) | |
* @see javax.swing.table.TableCellEditor#getTableCellEditorComponent(javax.swing.JTable, java.lang.Object, boolean, int, int) | |
*/ | |
public Component getTableCellEditorComponent(JTable arg0, Object arg1, boolean arg2, int arg3, int arg4) { | |
// TODO Auto-generated method stub | |
archs = (String)arg1; | |
return button; | |
} | |
/* (non-Javadoc) | |
* @see javax.swing.CellEditor#getCellEditorValue() | |
*/ | |
public Object getCellEditorValue() { | |
// TODO Auto-generated method stub | |
return archs; | |
} | |
/* (non-Javadoc) | |
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) | |
*/ | |
public void actionPerformed(ActionEvent arg0) { | |
// TODO Auto-generated method stub | |
if (EDIT.equals(arg0.getActionCommand())) { | |
//The user has clicked the cell, so | |
//bring up the dialog. | |
button.setText(archs); | |
dialog.setList(archs); | |
dialog.setVisible(true); | |
//Make the renderer reappear. | |
fireEditingStopped(); | |
} | |
else { //User pressed dialog's "OK" button. | |
Vector<String> v = dialog.getList(); | |
if (canNotBeEmpty && v.size() == 0) { | |
JOptionPane.showMessageDialog(topFrame, "You must select at least one item."); | |
return; | |
} | |
String s = " "; | |
for (int i = 0; i < v.size(); ++i) { | |
s += v.get(i); | |
s += " "; | |
} | |
archs = s.trim(); | |
dialog.dispose(); | |
} | |
} | |
/** | |
* @param canNotBeEmpty The canNotBeEmpty to set. | |
*/ | |
public void setCanNotBeEmpty(boolean canNotBeEmpty) { | |
this.canNotBeEmpty = canNotBeEmpty; | |
} | |
} |