001 /*
002 * This program is free software; you can redistribute it and/or modify
003 * it under the terms of the GNU General Public License as published by
004 * the Free Software Foundation; version 2 of the License.
005 *
006 * This program is distributed in the hope that it will be useful,
007 * but WITHOUT ANY WARRANTY; without even the implied warranty of
008 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
009 * GNU General Public License for more details.
010 *
011 * You should have received a copy of the GNU General Public License along
012 * with this program; if not, write to the Free Software Foundation, Inc.,
013 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
014 */
015 package org.tastybug.bugwerk.bugtrail.widget.ticket;
016
017 import javax.swing.JTable;
018 import javax.swing.ListSelectionModel;
019
020 import org.tastybug.bugwerk.blueprint.event.TicketChangeListener;
021 import org.tastybug.bugwerk.blueprint.model.Ticket;
022
023 /**
024 * This class is a JTable based display of the base data of a <code>Ticket</code>.
025 * <br>
026 * The table listens for changes at the <code>Ticket</code>, but cannot be edited.
027 *
028 * <hr>
029 * Copyright 2006 Philipp Bartsch.<br>
030 * <a href="http://www.tastybug.com">www.tastybug.com</a><br>
031 * <hr>
032 * Created on Feb 8, 2006<br>
033 * @author Philipp Bartsch, philipp.bartsch{at}tastybug{dot}com</a>
034 */
035 public class TicketTable extends JTable implements TicketChangeListener {
036
037 /**The <code>serialVersionUID</code>*/
038 private static final long serialVersionUID = -4230389323961595090L;
039
040 private TicketTableModel tableModel;
041 private TicketTableRenderer tableRenderer;
042
043 /**
044 * Creates the table, displaying the given <code>ticket</code>.
045 *
046 * @param ticket the ticket
047 */
048 public TicketTable (Ticket ticket) {
049 setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
050 tableModel = new TicketTableModel(ticket);
051 tableRenderer = new TicketTableRenderer();
052
053 setModel(tableModel);
054 setDefaultRenderer(String.class, tableRenderer);
055 }
056
057 /**
058 * Ignored.
059 *
060 * @see org.tastybug.bugwerk.blueprint.event.TicketChangeListener#performIncidentRemovedEvent(org.tastybug.bugwerk.blueprint.event.TicketChangeListener.IncidentEvent)
061 */
062 public void performIncidentRemovedEvent(IncidentEvent event) {
063 // not interesting
064 }
065
066 /**
067 * Ignored.
068 *
069 * @see org.tastybug.bugwerk.blueprint.event.TicketChangeListener#performIncidentAddedEvent(org.tastybug.bugwerk.blueprint.event.TicketChangeListener.IncidentEvent)
070 */
071 public void performIncidentAddedEvent(IncidentEvent event) {
072 // not interesting
073 }
074
075 /**
076 * Updates the UI, notifies the model to reread the changed <code>Ticket</code>.
077 *
078 * @see org.tastybug.bugwerk.blueprint.event.TicketChangeListener#performTicketChangedEvent(org.tastybug.bugwerk.blueprint.event.TicketChangeListener.TicketChangeEvent)
079 */
080 public void performTicketChangedEvent(TicketChangeEvent event) {
081 // neu malen. das model kriegt die aenderung automatisch mit...
082 tableModel.update(event.getTicket());
083 updateUI();
084 }
085 }