private void init() { setLayout(new BorderLayout()); tableModel = new NotesTableModel(getCharacter()); table = new JTable(tableModel); table.setRowHeight(50); tableModel.updateColumns(table); table.setDefaultRenderer(String.class, new NotesCellRenderer()); table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); table .getSelectionModel() .addListSelectionListener( new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { updateControls(); } }); add(new JScrollPane(table), "Center"); Box box = Box.createHorizontalBox(); box.add(Box.createHorizontalGlue()); addNoteButton = new JButton("Add Custom"); addNoteButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent ev) { String note = JOptionPane.showInputDialog("Custom Note"); getCharacter().addNote(getGameHandler().getClient().getClientName(), "Custom", note); updatePanel(); } }); box.add(addNoteButton); box.add(Box.createHorizontalGlue()); deleteNoteButton = new JButton("Delete Custom"); deleteNoteButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent ev) { Note note = getSelectedNote(); if (note != null) { getCharacter().deleteNote(note.getId()); updatePanel(); } } }); box.add(deleteNoteButton); box.add(Box.createHorizontalGlue()); add(box, "South"); updateControls(); }
private Note getSelectedNote() { return tableModel.getNote(table.getSelectedRow()); }
public void updatePanel() { tableModel.updateNotes(); tableModel.fireTableDataChanged(); }
private void updateControls() { Note note = tableModel.getNote(table.getSelectedRow()); deleteNoteButton.setEnabled(note != null && note.isCustom()); }