package org.hwo.ui; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; import javax.swing.JTable; import org.hwo.models.TableMapper.TableMapper; import org.hwo.models.TableMapper.TableMapperListener; public class JMappedTable extends JTable { private TableMapper tableMapper; public JMappedTable(Class clazz){ this.tableMapper = new TableMapper(clazz, this); } public TableMapper getTableMapper() { return tableMapper; } public void addTableMapperListener(TableMapperListener tableMapperListener){ this.tableMapper.addTableMapperListener(tableMapperListener); } public void removeTableMapperListener(TableMapperListener tableMapperListener){ this.tableMapper.removeTableMapperListener(tableMapperListener); } public void setEditorEnabled(boolean enabled){ tableMapper.setEditorEnabled(enabled); } public boolean isEditorEnabled(){ return tableMapper.isEditorEnabled(); } public void copyAllToClipboard(){ Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard(); StringBuilder sb = new StringBuilder(); for (Object row: getTableMapper().getRows()){ sb.append(row.toString()); sb.append("\n\r"); } StringSelection ssel = new StringSelection(sb.toString()); clip.setContents(ssel, null); } }