001 // License: GPL. For details, see LICENSE file. 002 package org.openstreetmap.josm.gui.dialogs.changeset; 003 004 import java.awt.BorderLayout; 005 import java.beans.PropertyChangeEvent; 006 import java.beans.PropertyChangeListener; 007 008 import javax.swing.BorderFactory; 009 import javax.swing.JPanel; 010 import javax.swing.JScrollPane; 011 012 import org.openstreetmap.josm.data.osm.Changeset; 013 import org.openstreetmap.josm.gui.tagging.TagEditorModel; 014 import org.openstreetmap.josm.gui.tagging.TagTable; 015 016 /** 017 * This panel displays the tags of the currently selected changeset in the {@link ChangesetCacheManager} 018 * 019 */ 020 public class ChangesetTagsPanel extends JPanel implements PropertyChangeListener{ 021 022 private TagTable tblTags; 023 private TagEditorModel model; 024 025 protected void build() { 026 setLayout(new BorderLayout()); 027 setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); 028 model = new TagEditorModel(); 029 tblTags = new TagTable(model); 030 tblTags.setEnabled(false); 031 add(new JScrollPane(tblTags), BorderLayout.CENTER); 032 } 033 034 public ChangesetTagsPanel() { 035 build(); 036 } 037 038 protected void init(Changeset cs) { 039 if (cs == null) { 040 model.clear(); 041 return; 042 } 043 model.initFromTags(cs.getKeys()); 044 } 045 046 /* ---------------------------------------------------------------------------- */ 047 /* interface PropertyChangeListener */ 048 /* ---------------------------------------------------------------------------- */ 049 public void propertyChange(PropertyChangeEvent evt) { 050 if (!evt.getPropertyName().equals(ChangesetCacheManagerModel.CHANGESET_IN_DETAIL_VIEW_PROP)) 051 return; 052 Changeset cs = (Changeset)evt.getNewValue(); 053 if (cs == null) { 054 model.clear(); 055 } else { 056 model.initFromPrimitive(cs); 057 } 058 } 059 }