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 }