package husacct.graphics.presentation.tables; import java.awt.Color; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import husacct.ServiceProvider; import husacct.common.dto.DependencyDTO; import husacct.validate.domain.validation.Severity; import javax.swing.JTable; import javax.swing.table.TableColumn; public class DependencyTable extends JTable { private static final long serialVersionUID = -2746864291996733501L; private DependencyDataModel dataModel; public DependencyTable(DependencyDTO[] dependencyDTOs) { dataModel = new DependencyDataModel(dependencyDTOs); setModel(dataModel); setColumnWidths(); setAutoCreateRowSorter(true); addMouseListener(new MouseListener(){ @Override public void mouseClicked(MouseEvent arg0) { if(arg0.getClickCount() >= 2){ int row = getSelectedRow(); String cls = getValueAt(row, 0).toString(); int lineNumber = (int) getValueAt(row, 3); ServiceProvider.getInstance().getControlService().displayErrorInFile(cls, lineNumber, new Severity("test", Color.LIGHT_GRAY)); } } @Override public void mouseEntered(MouseEvent arg0) {} @Override public void mouseExited(MouseEvent arg0) {} @Override public void mousePressed(MouseEvent arg0) {} @Override public void mouseReleased(MouseEvent arg0) {} }); } protected void setColumnWidths() { TableColumn column = null; for (int i = 0; i < getColumnCount(); i++) { column = getColumnModel().getColumn(i); if (i == 0) { column.setPreferredWidth(375); // From } else if (i == 1) { column.setPreferredWidth(375); // To } else if (i == 2) { column.setPreferredWidth(70); // Type } else if (i == 3) { column.setPreferredWidth(50); // Line } else if (i == 4) { column.setPreferredWidth(50); // Direct } } } }