001 // License: GPL. For details, see LICENSE file. 002 package org.openstreetmap.josm.gui.conflict.pair; 003 004 import javax.swing.JTable; 005 import javax.swing.ListSelectionModel; 006 import javax.swing.table.TableColumnModel; 007 008 import org.openstreetmap.josm.data.osm.OsmPrimitive; 009 import org.openstreetmap.josm.data.osm.PrimitiveId; 010 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 011 import org.openstreetmap.josm.gui.widgets.OsmPrimitivesTable; 012 import org.openstreetmap.josm.gui.widgets.OsmPrimitivesTableModel; 013 014 public abstract class PairTable extends OsmPrimitivesTable { 015 016 private final ListMergeModel<? extends PrimitiveId> model; 017 018 public PairTable(String name, ListMergeModel<? extends PrimitiveId> model, OsmPrimitivesTableModel dm, TableColumnModel cm, ListSelectionModel sm) { 019 super(dm, cm, sm); 020 this.model = model; 021 setName(name); 022 setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN); 023 } 024 025 @Override 026 public OsmPrimitive getPrimitiveInLayer(int row, OsmDataLayer layer) { 027 OsmPrimitive result = super.getPrimitiveInLayer(row, layer); 028 if (model != null && result != null && layer != null && result.getDataSet() != layer.data) { 029 result = model.getMyPrimitiveById(result); 030 } 031 return result; 032 } 033 }