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}