/* * The MIT License * * Copyright 2013 Andreas Giemza. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ package de.andreasgiemza.jgeagle.gui; import de.andreasgiemza.jgeagle.gui.commitstables.OldCommitsTableModel; import de.andreasgiemza.jgeagle.gui.commitstables.OldCommitsSelectionListener; import de.andreasgiemza.jgeagle.gui.commitstables.NewCommitsTableModel; import de.andreasgiemza.jgeagle.gui.commitstables.NewCommitsSelectionListener; import de.andreasgiemza.jgeagle.JGeagle; import de.andreasgiemza.jgeagle.repo.data.EagleFile; import de.andreasgiemza.jgeagle.gui.commitstables.DateCellRenderer; import de.andreasgiemza.jgeagle.gui.commitstables.MessageCellRenderer; import de.andreasgiemza.jgeagle.gui.commitstables.TableColumnAdjuster; import javax.swing.JTable; import org.eclipse.jgit.revwalk.RevCommit; /** * * @author Andreas Giemza */ public class CommitsTables { private final JGeagle jGeagle; private final JTable oldCommitsTable; private final TableColumnAdjuster oldCommitsTableAdjuster; private final JTable newCommitsTable; private final TableColumnAdjuster newCommitsTableAdjuster; private final DateCellRenderer dateCellRenderer = new DateCellRenderer(); private final MessageCellRenderer messageCellRenderer = new MessageCellRenderer(); public CommitsTables( JGeagle jGeagle, JTable oldCommitsTable, JTable newCommitsTable) { this.jGeagle = jGeagle; this.oldCommitsTable = oldCommitsTable; oldCommitsTableAdjuster = new TableColumnAdjuster(oldCommitsTable); this.newCommitsTable = newCommitsTable; newCommitsTableAdjuster = new TableColumnAdjuster(newCommitsTable); setup(); } private void setup() { oldCommitsTable.getSelectionModel().addListSelectionListener( new OldCommitsSelectionListener( jGeagle, oldCommitsTable)); newCommitsTable.getSelectionModel().addListSelectionListener( new NewCommitsSelectionListener( jGeagle, newCommitsTable)); reset(); } public void resetOldCommitsTable() { oldCommitsTable.setModel(new OldCommitsTableModel(null)); } public void resetNewCommitsTable() { newCommitsTable.setModel(new NewCommitsTableModel(null, null)); } public void reset() { resetOldCommitsTable(); resetNewCommitsTable(); } public void updateOldCommitsTable(EagleFile eagleFile) { oldCommitsTable.setModel(new OldCommitsTableModel(eagleFile)); oldCommitsTable.getColumnModel().getColumn(0).setCellRenderer(dateCellRenderer); oldCommitsTable.getColumnModel().getColumn(2).setCellRenderer(messageCellRenderer); oldCommitsTableAdjuster.adjustColumn(0); oldCommitsTableAdjuster.adjustColumn(1); } public void updateNewCommitsTable(EagleFile eagleFile, RevCommit oldCommit) { newCommitsTable.setModel(new NewCommitsTableModel(eagleFile, oldCommit)); newCommitsTable.getColumnModel().getColumn(0).setCellRenderer(dateCellRenderer); newCommitsTable.getColumnModel().getColumn(2).setCellRenderer(messageCellRenderer); newCommitsTableAdjuster.adjustColumn(0); newCommitsTableAdjuster.adjustColumn(1); } public EagleFile getEagleFile() { return ((NewCommitsTableModel) newCommitsTable.getModel()).getEagleFile(); } public RevCommit getOldCommit() { return ((NewCommitsTableModel) newCommitsTable.getModel()).getOldCommit(); } public RevCommit getNewCommit() { return ((NewCommitsTableModel) newCommitsTable.getModel()).getElementAt( newCommitsTable.convertRowIndexToModel(newCommitsTable.getSelectedRow())); } }