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