001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.gui.io; 003 004import java.awt.Dimension; 005import java.beans.PropertyChangeEvent; 006import java.beans.PropertyChangeListener; 007 008import javax.swing.JTable; 009 010import org.openstreetmap.josm.gui.io.SaveLayersModel.Mode; 011 012/** 013 * A table that displays the list of modified layers in the {@link SaveLayersDialog}. 014 */ 015class SaveLayersTable extends JTable implements PropertyChangeListener { 016 SaveLayersTable(SaveLayersModel model) { 017 super(model, new SaveLayersTableColumnModel()); 018 putClientProperty("terminateEditOnFocusLost", Boolean.TRUE); 019 super.setRowHeight(39); 020 super.getTableHeader().setPreferredSize(new Dimension(super.getTableHeader().getWidth(), 24)); 021 super.getTableHeader().setReorderingAllowed(false); 022 } 023 024 @Override 025 public void propertyChange(PropertyChangeEvent evt) { 026 if (evt.getPropertyName().equals(SaveLayersModel.MODE_PROP)) { 027 Mode mode = (Mode) evt.getNewValue(); 028 switch(mode) { 029 case EDITING_DATA: setEnabled(true); 030 break; 031 case UPLOADING_AND_SAVING: setEnabled(false); 032 break; 033 } 034 } 035 } 036}