Ignore:
Timestamp:
2018-02-18T05:02:23+01:00 (7 years ago)
Author:
Don-vip
Message:

see #8039, see #10456 - support read-only data layers

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java

    r13130 r13434  
    6464import org.openstreetmap.josm.command.Command;
    6565import org.openstreetmap.josm.data.SelectionChangedListener;
     66import org.openstreetmap.josm.data.osm.DataSet;
    6667import org.openstreetmap.josm.data.osm.DefaultNameFormatter;
    6768import org.openstreetmap.josm.data.osm.IRelation;
     
    9192import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
    9293import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
     94import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    9395import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset;
    9496import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetHandler;
     
    231233
    232234    private final PreferenceChangedListener preferenceListener = e -> {
    233                 if (MainApplication.getLayerManager().getEditDataSet() != null) {
     235                if (MainApplication.getLayerManager().getActiveDataSet() != null) {
    234236                    // Re-load data when display preference change
    235237                    updateSelection();
     
    487489        Relation relation = (Relation) membershipData.getValueAt(row, 0);
    488490        MainApplication.getMap().relationListDialog.selectRelation(relation);
    489         RelationEditor.getEditor(
    490                 MainApplication.getLayerManager().getEditLayer(),
    491                 relation,
    492                 ((MemberInfo) membershipData.getValueAt(row, 1)).role
    493         ).setVisible(true);
     491        OsmDataLayer layer = MainApplication.getLayerManager().getActiveDataLayer();
     492        if (!layer.isReadOnly()) {
     493            RelationEditor.getEditor(
     494                    layer, relation, ((MemberInfo) membershipData.getValueAt(row, 1)).role).setVisible(true);
     495        }
    494496    }
    495497
     
    534536    public void setVisible(boolean b) {
    535537        super.setVisible(b);
    536         if (b && MainApplication.getLayerManager().getEditDataSet() != null) {
     538        if (b && MainApplication.getLayerManager().getActiveDataSet() != null) {
    537539            updateSelection();
    538540        }
     
    644646        membershipTable.setVisible(membershipData.getRowCount() > 0);
    645647
     648        DataSet ds = Main.main.getActiveDataSet();
     649        boolean isReadOnly = ds != null && ds.isReadOnly();
    646650        boolean hasSelection = !newSel.isEmpty();
    647651        boolean hasTags = hasSelection && tagData.getRowCount() > 0;
    648652        boolean hasMemberships = hasSelection && membershipData.getRowCount() > 0;
    649         addAction.setEnabled(hasSelection);
    650         editAction.setEnabled(hasTags || hasMemberships);
    651         deleteAction.setEnabled(hasTags || hasMemberships);
     653        addAction.setEnabled(!isReadOnly && hasSelection);
     654        editAction.setEnabled(!isReadOnly && (hasTags || hasMemberships));
     655        deleteAction.setEnabled(!isReadOnly && (hasTags || hasMemberships));
    652656        tagTable.setVisible(hasTags);
    653657        tagTable.getTableHeader().setVisible(hasTags);
     
    10551059        @Override
    10561060        protected final void updateEnabledState() {
    1057             setEnabled(
    1058                     (tagTable != null && tagTable.getSelectedRowCount() >= 1)
     1061            DataSet ds = Main.main.getActiveDataSet();
     1062            setEnabled(ds != null && !ds.isReadOnly() &&
     1063                    ((tagTable != null && tagTable.getSelectedRowCount() >= 1)
    10591064                    || (membershipTable != null && membershipTable.getSelectedRowCount() > 0)
    1060                     );
     1065                    ));
    10611066        }
    10621067
     
    11101115        @Override
    11111116        protected void updateEnabledState() {
    1112             setEnabled(
    1113                     (tagTable != null && tagTable.getSelectedRowCount() == 1)
     1117            DataSet ds = Main.main.getActiveDataSet();
     1118            setEnabled(ds != null && !ds.isReadOnly() &&
     1119                    ((tagTable != null && tagTable.getSelectedRowCount() == 1)
    11141120                    ^ (membershipTable != null && membershipTable.getSelectedRowCount() == 1)
    1115                     );
     1121                    ));
    11161122        }
    11171123
Note: See TracChangeset for help on using the changeset viewer.