private void addTranscripts() { // 1. show a simple dialog to take in fasta sequences EnterTranscriptsDialog dialog = new EnterTranscriptsDialog(getDialogForComponent(this)); dialog.setVisible(true); if (dialog.isCanceled()) return; ArrayList transcripts = dialog.getTranscripts(); // 2. add to table model.addTranscript(transcripts); model.fireTableDataChanged(); }
public TargetTablePanel(String[] targetData, String delim, int id_colIdx, int length_colIdx) throws Exception { // exception when there are data format problem in targetData JTextArea jta_desc = new JTextArea( "Pick the primary and secondary targets. siRNA oligos will be enumerated from the primary target" + " and their occurrence in secondary targets (orthologs) will be reported. By default, the longest human transcript is selected" + " as the primary target. Any other transcripts longer than half the length of the primary transcript are selected as secondary transcripts\n"); jta_desc.setEditable(false); jta_desc.setWrapStyleWord(true); jta_desc.setLineWrap(true); jta_desc.setBackground(new JLabel().getBackground()); this.setLayout(new BorderLayout()); this.add(jta_desc, BorderLayout.NORTH); model = new TargetTableModel(targetData, delim, id_colIdx, length_colIdx); model.addTableModelListener(this); sorter = new SimpleTableSorter(model); targetTable.setDragEnabled(true); targetTable.setModel(sorter); targetTable.createDefaultColumnsFromModel(); targetTable.addMouseListener(new TargetTableMouseAdaptor()); sorter.setTableHeader(targetTable.getTableHeader()); jsp_center = new JScrollPane(targetTable); Dimension d = jsp_center.getViewport().getViewSize(); d.height = 300; jsp_center.getViewport().setViewSize(d); this.add(jsp_center, BorderLayout.CENTER); setupCellRenderer(); JPanel bttn_pane = new JPanel(); bttn_pane.setLayout(new FlowLayout(FlowLayout.TRAILING)); bttn_addTranscript = new JButton("Add Transcripts"); bttn_pane.add(bttn_addTranscript); bttn_addTranscript.addActionListener(this); bttn_deleteTranscript = new JButton("Delete Selected"); bttn_deleteTranscript.addActionListener(this); bttn_pane.add(bttn_deleteTranscript); this.add(bttn_pane, BorderLayout.SOUTH); this.setPreferredSize(d); }
private void deleteTranscripts() { int[] selected = targetTable.getSelectedRows(); model.removeRows(selected); model.fireTableDataChanged(); }