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