From 6d2cd68c8adff8c27a6a3a18711ea44a2e7bfe30 Mon Sep 17 00:00:00 2001 From: clemenso Date: Tue, 18 Nov 2008 18:00:44 +0000 Subject: GUI refactoring 2 git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@178 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- .../at/gv/egiz/bku/gui/HashDataTableModel.java | 93 ++++++++++++++++------ 1 file changed, 68 insertions(+), 25 deletions(-) (limited to 'BKUCommonGUI/src/main/java/at/gv/egiz/bku/gui/HashDataTableModel.java') diff --git a/BKUCommonGUI/src/main/java/at/gv/egiz/bku/gui/HashDataTableModel.java b/BKUCommonGUI/src/main/java/at/gv/egiz/bku/gui/HashDataTableModel.java index e8566fa6..a6709860 100644 --- a/BKUCommonGUI/src/main/java/at/gv/egiz/bku/gui/HashDataTableModel.java +++ b/BKUCommonGUI/src/main/java/at/gv/egiz/bku/gui/HashDataTableModel.java @@ -14,34 +14,46 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package at.gv.egiz.bku.gui; import at.gv.egiz.stal.HashDataInput; -import java.util.ArrayList; +import java.awt.Color; +import java.awt.Component; +import java.awt.Cursor; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; import java.util.List; -import java.util.Vector; +import javax.swing.JDialog; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JTable; import javax.swing.table.DefaultTableModel; +import javax.swing.table.TableCellRenderer; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; /** - * - * @author clemens + * + * @author Clemens Orthacker */ class HashDataTableModel extends DefaultTableModel { - protected List signedReferences; + protected static final Log log = LogFactory.getLog(HashDataTableModel.class); - protected Class[] types = new Class[]{ - java.lang.String.class, java.lang.Boolean.class - }; - - public HashDataTableModel(List signedReferences) { - super(0, 2); - this.signedReferences = signedReferences; - for (HashDataInput hashDataInput : signedReferences) { - String desc = hashDataInput.getReferenceId() + " (" + hashDataInput.getMimeType() + ")"; - addRow(new Object[]{desc, new Boolean(true)}); + protected Class[] types = new Class[]{HashDataInput.class}; + protected List hashDataInputs; + private HashDataLinkRenderer renderer; + + public HashDataTableModel(List hashDataInputs) { + super(0, 1); + this.hashDataInputs = hashDataInputs; + for (HashDataInput hdi : hashDataInputs) { + addRow(new Object[]{hdi}); } + this.renderer = new HashDataLinkRenderer(); } @Override @@ -51,18 +63,49 @@ class HashDataTableModel extends DefaultTableModel { @Override public boolean isCellEditable(int rowIndex, int columnIndex) { - if (columnIndex == 1) - return true; return false; } - public List getSelectedHashData() { - ArrayList selection = new ArrayList(); - for (int i = 0; i < dataVector.size(); i++) { - if ((Boolean) ((Vector) dataVector.get(i)).elementAt(1)) { - selection.add(signedReferences.get(i)); - } + + + public HashDataLinkRenderer getRenderer() { + return renderer; + } + + public class HashDataLinkRenderer extends JLabel + implements TableCellRenderer { +// extends DefaultTableCellRenderer { + +// protected ActionListener saveHashDataListener; +// +// public HashDataLinkRenderer(ActionListener saveHashDataListener) { +// this.saveHashDataListener = saveHashDataListener; +// } + + @Override + public Component getTableCellRendererComponent(JTable table, + Object value, + boolean isSelected, + boolean hasFocus, + final int row, + int column) { + final HashDataInput hdi = (HashDataInput) value; + log.debug("render hashdatainput " + hdi.getReferenceId() + " - (" + row + "," + column + ") " + isSelected + hasFocus); + setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); + setFont(getFont().deriveFont(getFont().getStyle() & ~java.awt.Font.BOLD)); + setText(hdi.getReferenceId() + " (" + hdi.getMimeType() + ")"); + addMouseListener(new MouseAdapter() { + + @Override + public void mouseClicked(MouseEvent e) { + log.debug("received mouseclick on " + hdi.getReferenceId()); +// saveHashDataListener.actionPerformed(); + JOptionPane.showInputDialog(hashDataInputs.get(row).getReferenceId()); + } + + }); + + return this; } - return selection; } } \ No newline at end of file -- cgit v1.2.3