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

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

Location:
trunk/src/org/openstreetmap/josm/gui/dialogs
Files:
15 edited

Legend:

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

    r12846 r13434  
    5353import org.openstreetmap.josm.gui.help.HelpUtil;
    5454import org.openstreetmap.josm.gui.io.CloseChangesetTask;
    55 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    5655import org.openstreetmap.josm.gui.util.GuiHelper;
    5756import org.openstreetmap.josm.gui.widgets.ListPopupMenu;
     
    123122        ChangesetCache.getInstance().addChangesetCacheListener(inActiveDataLayerModel);
    124123        MainApplication.getLayerManager().addActiveLayerChangeListener(inActiveDataLayerModel);
    125         OsmDataLayer editLayer = MainApplication.getLayerManager().getEditLayer();
    126         if (editLayer != null) {
    127             editLayer.data.addDataSetListener(inActiveDataLayerModel);
    128             inActiveDataLayerModel.initFromDataSet(editLayer.data);
    129             inSelectionModel.initFromPrimitives(editLayer.data.getAllSelected());
     124        DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
     125        if (ds != null) {
     126            ds.addDataSetListener(inActiveDataLayerModel);
     127            inActiveDataLayerModel.initFromDataSet(ds);
     128            inSelectionModel.initFromPrimitives(ds.getAllSelected());
    130129        }
    131130    }
     
    133132    protected void unregisterAsListener() {
    134133        // remove the list model for the current edit layer as listener
    135         //
    136134        ChangesetCache.getInstance().removeChangesetCacheListener(inActiveDataLayerModel);
    137135        MainApplication.getLayerManager().removeActiveLayerChangeListener(inActiveDataLayerModel);
    138         OsmDataLayer editLayer = MainApplication.getLayerManager().getEditLayer();
    139         if (editLayer != null) {
    140             editLayer.data.removeDataSetListener(inActiveDataLayerModel);
    141         }
    142 
    143         // remove the list model for the changesets in the current selection as
    144         // listener
     136        DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
     137        if (ds != null) {
     138            ds.removeDataSetListener(inActiveDataLayerModel);
     139        }
     140
     141        // remove the list model for the changesets in the current selection as listener
    145142        SelectionEventManager.getInstance().removeSelectionListener(inSelectionModel);
    146143        ChangesetCache.getInstance().removeChangesetCacheListener(inSelectionModel);
     
    235232
    236233    protected void initWithCurrentData() {
    237         OsmDataLayer editLayer = MainApplication.getLayerManager().getEditLayer();
    238         if (editLayer != null) {
    239             inSelectionModel.initFromPrimitives(editLayer.data.getAllSelected());
    240             inActiveDataLayerModel.initFromDataSet(editLayer.data);
     234        DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
     235        if (ds != null) {
     236            inSelectionModel.initFromPrimitives(ds.getAllSelected());
     237            inActiveDataLayerModel.initFromDataSet(ds);
    241238        }
    242239    }
     
    266263            if (sel.isEmpty())
    267264                return;
    268             if (MainApplication.getLayerManager().getEditDataSet() == null)
    269                 return;
    270             new SelectObjectsAction().selectObjectsByChangesetIds(MainApplication.getLayerManager().getEditDataSet(), sel);
     265            if (MainApplication.getLayerManager().getActiveDataSet() == null)
     266                return;
     267            new SelectObjectsAction().selectObjectsByChangesetIds(MainApplication.getLayerManager().getActiveDataSet(), sel);
    271268        }
    272269
     
    314311        @Override
    315312        public void actionPerformed(ActionEvent e) {
    316             if (MainApplication.getLayerManager().getEditLayer() == null)
     313            DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
     314            if (ds == null)
    317315                return;
    318316            ChangesetListModel model = getCurrentChangesetListModel();
     
    321319                return;
    322320
    323             DataSet ds = MainApplication.getLayerManager().getEditLayer().data;
    324321            selectObjectsByChangesetIds(ds, sel);
    325322        }
  • trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java

    r13367 r13434  
    160160    public void hideNotify() {
    161161        MainApplication.getLayerManager().removeActiveLayerChangeListener(this);
    162         removeEditLayerListeners(MainApplication.getLayerManager().getEditLayer());
     162        removeDataLayerListeners(MainApplication.getLayerManager().getEditLayer());
    163163    }
    164164
     
    269269    @Override
    270270    public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) {
    271         removeEditLayerListeners(e.getPreviousEditLayer());
    272         addEditLayerListeners(e.getSource().getEditLayer());
     271        removeDataLayerListeners(e.getPreviousDataLayer());
     272        addDataLayerListeners(e.getSource().getActiveDataLayer());
    273273        refreshView();
    274274    }
    275275
    276     private void addEditLayerListeners(OsmDataLayer newLayer) {
     276    private void addDataLayerListeners(OsmDataLayer newLayer) {
    277277        if (newLayer != null) {
    278278            newLayer.getConflicts().addConflictListener(this);
     
    281281    }
    282282
    283     private void removeEditLayerListeners(OsmDataLayer oldLayer) {
     283    private void removeDataLayerListeners(OsmDataLayer oldLayer) {
    284284        if (oldLayer != null) {
    285285            oldLayer.getConflicts().removeConflictListener(this);
  • trunk/src/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialog.java

    r12678 r13434  
    114114
    115115    protected static String buildMapPaintText() {
    116         final Collection<OsmPrimitive> sel = MainApplication.getLayerManager().getEditDataSet().getAllSelected();
     116        final Collection<OsmPrimitive> sel = MainApplication.getLayerManager().getActiveDataSet().getAllSelected();
    117117        ElemStyles elemstyles = MapPaintStyles.getStyles();
    118118        NavigatableComponent nc = MainApplication.getMap().mapView;
  • trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java

    r13210 r13434  
    342342
    343343        protected void setCurrentRelationAsSelection() {
    344             MainApplication.getLayerManager().getEditDataSet().setSelected(displaylist.getSelectedValue());
     344            MainApplication.getLayerManager().getActiveDataSet().setSelected(displaylist.getSelectedValue());
    345345        }
    346346
     
    351351        @Override
    352352        public void mouseClicked(MouseEvent e) {
    353             if (MainApplication.getLayerManager().getEditLayer() == null) return;
    354             if (isDoubleClick(e)) {
    355                 if (e.isControlDown()) {
     353            DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
     354            if (ds != null && isDoubleClick(e)) {
     355                if (e.isControlDown() && !ds.isReadOnly()) {
    356356                    editCurrentRelation();
    357357                } else {
     
    733733            return;
    734734        // trigger a sort of the relation list because the display name may have changed
    735         //
    736735        List<Relation> sel = model.getSelectedRelations();
    737736        model.sort();
     
    742741    @Override
    743742    public void dataChanged(DataChangedEvent event) {
    744         initFromLayer(MainApplication.getLayerManager().getEditLayer());
     743        initFromLayer(MainApplication.getLayerManager().getActiveDataLayer());
    745744    }
    746745
  • trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java

    r13141 r13434  
    7373import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
    7474import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
    75 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    7675import org.openstreetmap.josm.gui.util.GuiHelper;
    7776import org.openstreetmap.josm.gui.util.HighlightHelper;
     
    200199            if (idx < 0) return;
    201200            if (isDoubleClick(e)) {
    202                 OsmDataLayer layer = MainApplication.getLayerManager().getEditLayer();
    203                 if (layer == null) return;
     201                DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
     202                if (ds == null) return;
    204203                OsmPrimitive osm = model.getElementAt(idx);
    205                 Collection<OsmPrimitive> sel = layer.data.getSelected();
     204                Collection<OsmPrimitive> sel = ds.getSelected();
    206205                if (sel.size() != 1 || !sel.iterator().next().equals(osm)) {
    207206                    // Select primitive if it's not the whole current selection
    208                     layer.data.setSelected(Collections.singleton(osm));
     207                    ds.setSelected(Collections.singleton(osm));
    209208                } else if (osm instanceof Relation) {
    210209                    // else open relation editor if applicable
     
    296295
    297296        protected void updateEnabledState() {
    298             setEnabled(MainApplication.getLayerManager().getEditLayer() != null);
     297            setEnabled(MainApplication.getLayerManager().getActiveDataSet() != null);
    299298        }
    300299
     
    321320            Collection<OsmPrimitive> sel = model.getSelected();
    322321            if (sel.isEmpty()) return;
    323             OsmDataLayer editLayer = MainApplication.getLayerManager().getEditLayer();
    324             if (editLayer == null) return;
    325             editLayer.data.setSelected(sel);
     322            DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
     323            if (ds == null) return;
     324            ds.setSelected(sel);
    326325            model.selectionModel.setSelectionInterval(0, sel.size()-1);
    327326        }
     
    830829        @Override
    831830        public void actionPerformed(ActionEvent e) {
    832             MainApplication.getLayerManager().getEditDataSet().setSelected(sel);
     831            MainApplication.getLayerManager().getActiveDataSet().setSelected(sel);
    833832        }
    834833    }
  • trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java

    r12636 r13434  
    3232import org.openstreetmap.josm.actions.AbstractInfoAction;
    3333import org.openstreetmap.josm.data.osm.DataSelectionListener;
     34import org.openstreetmap.josm.data.osm.DataSet;
    3435import org.openstreetmap.josm.data.osm.OsmPrimitive;
    3536import org.openstreetmap.josm.data.osm.User;
     
    347348                users.add(data.get(index).user);
    348349            }
    349             Collection<OsmPrimitive> selected = MainApplication.getLayerManager().getEditDataSet().getAllSelected();
     350            DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
     351            Collection<OsmPrimitive> selected = ds.getAllSelected();
    350352            Collection<OsmPrimitive> byUser = new LinkedList<>();
    351353            for (OsmPrimitive p : selected) {
     
    354356                }
    355357            }
    356             MainApplication.getLayerManager().getEditDataSet().setSelected(byUser);
     358            ds.setSelected(byUser);
    357359        }
    358360
  • trunk/src/org/openstreetmap/josm/gui/dialogs/ValidatorDialog.java

    r13149 r13434  
    132132            @Override
    133133            public void actionPerformed(ActionEvent e) {
    134                 final DataSet ds = MainApplication.getLayerManager().getEditDataSet();
     134                final DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
    135135                if (ds == null) {
    136136                    return;
     
    181181    public void showNotify() {
    182182        DataSet.addSelectionListener(this);
    183         DataSet ds = MainApplication.getLayerManager().getEditDataSet();
     183        DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
    184184        if (ds != null) {
    185185            updateSelection(ds.getAllSelected());
     
    350350            }
    351351        }
    352         DataSet ds = MainApplication.getLayerManager().getEditDataSet();
     352        DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
    353353        if (ds != null) {
    354354            ds.setSelected(sel);
     
    494494
    495495            if (isDblClick) {
    496                 DataSet ds = MainApplication.getLayerManager().getEditDataSet();
     496                DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
    497497                if (ds != null) {
    498498                    ds.setSelected(sel);
     
    630630            try {
    631631                monitor.setTicksCount(testErrors.size());
    632                 final DataSet ds = MainApplication.getLayerManager().getEditDataSet();
     632                final DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
    633633                int i = 0;
    634634                SwingUtilities.invokeAndWait(ds::beginUpdate);
  • trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java

    r13130 r13434  
    3636import org.openstreetmap.josm.actions.downloadtasks.ChangesetContentDownloadTask;
    3737import org.openstreetmap.josm.data.osm.Changeset;
     38import org.openstreetmap.josm.data.osm.DataSet;
    3839import org.openstreetmap.josm.data.osm.OsmPrimitive;
    3940import org.openstreetmap.josm.data.osm.PrimitiveId;
     
    4950import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
    5051import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
    51 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    5252import org.openstreetmap.josm.gui.util.GuiHelper;
    5353import org.openstreetmap.josm.gui.widgets.JMultilineLabel;
     
    279279
    280280        @Override
    281         public void actionPerformed(ActionEvent arg0) {
     281        public void actionPerformed(ActionEvent e) {
    282282            Set<HistoryOsmPrimitive> selected = model.getSelectedPrimitives();
    283283            if (selected.isEmpty()) return;
     
    301301
    302302        @Override
    303         public void actionPerformed(ActionEvent arg0) {
     303        public void actionPerformed(ActionEvent e) {
    304304            final List<PrimitiveId> primitiveIds = model.getSelectedPrimitives().stream().map(HistoryOsmPrimitive::getPrimitiveId)
    305305                    .collect(Collectors.toList());
     
    323323                return null;
    324324            }
    325             OsmDataLayer layer = MainApplication.getLayerManager().getEditLayer();
    326             if (layer == null) {
     325            DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
     326            if (ds == null) {
    327327                return null;
    328328            }
    329329            Set<OsmPrimitive> target = new HashSet<>();
    330330            for (HistoryOsmPrimitive p : model.getSelectedPrimitives()) {
    331                 OsmPrimitive op = layer.data.getPrimitiveById(p.getPrimitiveId());
     331                OsmPrimitive op = ds.getPrimitiveById(p.getPrimitiveId());
    332332                if (op != null) {
    333333                    target.add(op);
     
    338338
    339339        public final void updateEnabledState() {
    340             setEnabled(MainApplication.getLayerManager().getEditLayer() != null && model.hasSelectedPrimitives());
     340            setEnabled(MainApplication.getLayerManager().getActiveDataSet() != null && model.hasSelectedPrimitives());
    341341        }
    342342
     
    350350            updateEnabledState();
    351351        }
    352 
    353352    }
    354353
     
    363362
    364363        @Override
    365         public void actionPerformed(ActionEvent arg0) {
     364        public void actionPerformed(ActionEvent e) {
    366365            final Set<OsmPrimitive> target = getTarget();
    367366            if (target == null) {
     
    372371                return;
    373372            }
    374             MainApplication.getLayerManager().getEditLayer().data.setSelected(target);
     373            MainApplication.getLayerManager().getActiveDataSet().setSelected(target);
    375374        }
    376375    }
     
    386385
    387386        @Override
    388         public void actionPerformed(ActionEvent arg0) {
     387        public void actionPerformed(ActionEvent e) {
    389388            final Set<OsmPrimitive> target = getTarget();
    390389            if (target == null) {
     
    395394                return;
    396395            }
    397             MainApplication.getLayerManager().getEditLayer().data.setSelected(target);
     396            MainApplication.getLayerManager().getActiveDataSet().setSelected(target);
    398397            AutoScaleAction.zoomToSelection();
    399398        }
  • trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetDetailPanel.java

    r12871 r13434  
    3535import org.openstreetmap.josm.data.osm.Changeset;
    3636import org.openstreetmap.josm.data.osm.ChangesetCache;
     37import org.openstreetmap.josm.data.osm.DataSet;
    3738import org.openstreetmap.josm.data.osm.OsmPrimitive;
    3839import org.openstreetmap.josm.gui.HelpAwareOptionPane;
     
    4243import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
    4344import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
    44 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    4545import org.openstreetmap.josm.gui.widgets.JosmTextArea;
    4646import org.openstreetmap.josm.gui.widgets.JosmTextField;
     
    7272    private final ZoomInCurrentLayerAction       actZoomInCurrentLayerAction = new ZoomInCurrentLayerAction();
    7373    // CHECKSTYLE.ON: SingleSpaceSeparator
    74    
     74
    7575    private JButton btnOpenChangesetPopupMenu;
    7676
     
    374374                            + "edit layer ''{1}''.</html>",
    375375                            currentChangeset.getId(),
    376                             Utils.escapeReservedCharactersHTML(MainApplication.getLayerManager().getEditLayer().getName())
     376                            Utils.escapeReservedCharactersHTML(MainApplication.getLayerManager().getActiveDataSet().getName())
    377377                    ),
    378378                    tr("Nothing to select"),
     
    383383
    384384        @Override
    385         public void actionPerformed(ActionEvent arg0) {
     385        public void actionPerformed(ActionEvent e) {
    386386            if (!isEnabled())
    387387                return;
    388             OsmDataLayer layer = MainApplication.getLayerManager().getEditLayer();
    389             if (layer == null) {
     388            DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
     389            if (ds == null) {
    390390                return;
    391391            }
    392392            Set<OsmPrimitive> target = new HashSet<>();
    393             for (OsmPrimitive p: layer.data.allPrimitives()) {
     393            for (OsmPrimitive p: ds.allPrimitives()) {
    394394                if (p.isUsable() && p.getChangesetId() == currentChangeset.getId()) {
    395395                    target.add(p);
     
    400400                return;
    401401            }
    402             layer.data.setSelected(target);
     402            ds.setSelected(target);
    403403        }
    404404
    405405        public void updateEnabledState() {
    406             setEnabled(MainApplication.getLayerManager().getEditLayer() != null && currentChangeset != null);
     406            setEnabled(MainApplication.getLayerManager().getActiveDataSet() != null && currentChangeset != null);
    407407        }
    408408
     
    433433                            + "edit layer ''{1}''.</html>",
    434434                            currentChangeset.getId(),
    435                             MainApplication.getLayerManager().getEditLayer().getName()
     435                            MainApplication.getLayerManager().getActiveDataSet().getName()
    436436                    ),
    437437                    tr("Nothing to zoom to"),
     
    442442
    443443        @Override
    444         public void actionPerformed(ActionEvent arg0) {
     444        public void actionPerformed(ActionEvent e) {
    445445            if (!isEnabled())
    446446                return;
    447             OsmDataLayer layer = MainApplication.getLayerManager().getEditLayer();
    448             if (layer == null) {
     447            DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
     448            if (ds == null) {
    449449                return;
    450450            }
    451451            Set<OsmPrimitive> target = new HashSet<>();
    452             for (OsmPrimitive p: layer.data.allPrimitives()) {
     452            for (OsmPrimitive p: ds.allPrimitives()) {
    453453                if (p.isUsable() && p.getChangesetId() == currentChangeset.getId()) {
    454454                    target.add(p);
     
    459459                return;
    460460            }
    461             layer.data.setSelected(target);
     461            ds.setSelected(target);
    462462            AutoScaleAction.zoomToSelection();
    463463        }
    464464
    465465        public void updateEnabledState() {
    466             setEnabled(MainApplication.getLayerManager().getEditLayer() != null && currentChangeset != null);
     466            setEnabled(MainApplication.getLayerManager().getActiveDataSet() != null && currentChangeset != null);
    467467        }
    468468
  • trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetsInActiveDataLayerListModel.java

    r12372 r13434  
    44import javax.swing.DefaultListSelectionModel;
    55
     6import org.openstreetmap.josm.data.osm.DataSet;
    67import org.openstreetmap.josm.data.osm.event.AbstractDatasetChangedEvent;
    78import org.openstreetmap.josm.data.osm.event.DataChangedEvent;
     
    1516import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
    1617import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
    17 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    1818
    1919/**
     
    8181        // just init the model content. Don't register as DataSetListener. The mode
    8282        // is already registered to receive DataChangedEvents from the current edit layer
    83         OsmDataLayer editLayer = e.getSource().getEditLayer();
    84         if (editLayer != null) {
    85             initFromDataSet(editLayer.data);
     83        DataSet ds = e.getSource().getActiveDataSet();
     84        if (ds != null) {
     85            initFromDataSet(ds);
    8686        } else {
    8787            initFromDataSet(null);
  • 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
  • trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java

    r13190 r13434  
    447447            mainPanel.add(p, BorderLayout.CENTER);
    448448
    449             AutoCompletionManager autocomplete = AutoCompletionManager.of(MainApplication.getLayerManager().getEditLayer().data);
     449            AutoCompletionManager autocomplete = AutoCompletionManager.of(Main.main.getActiveDataSet());
    450450            List<AutoCompletionItem> keyList = autocomplete.getTagKeys(DEFAULT_AC_ITEM_COMPARATOR);
    451451
     
    564564        public void setupDialog() {
    565565            super.setupDialog();
     566            buttons.get(0).setEnabled(!Main.main.getActiveDataSet().isReadOnly());
    566567            final Dimension size = getSize();
    567568            // Set resizable only in width
     
    699700
    700701            cacheRecentTags();
    701             AutoCompletionManager autocomplete = AutoCompletionManager.of(Main.main.getEditDataSet());
     702            AutoCompletionManager autocomplete = AutoCompletionManager.of(Main.main.getActiveDataSet());
    702703            List<AutoCompletionItem> keyList = autocomplete.getTagKeys(DEFAULT_AC_ITEM_COMPARATOR);
    703704
  • trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java

    r12657 r13434  
    114114    @Override
    115115    public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
    116         if (MainApplication.getLayerManager().getEditLayer() != this.layer) return;
     116        if (MainApplication.getLayerManager().getActiveDataLayer() != this.layer) return;
    117117        // just trigger a repaint
    118118        Collection<RelationMember> sel = getSelectedMembers();
  • trunk/src/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableModel.java

    r12657 r13434  
    107107    @Override
    108108    public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
    109         if (layer == MainApplication.getLayerManager().getEditLayer()) {
     109        if (layer == MainApplication.getLayerManager().getActiveDataLayer()) {
    110110            cache.clear();
    111111            cache.addAll(newSelection);
  • trunk/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java

    r12951 r13434  
    416416    @Override
    417417    public void destroy() {
    418         DataSet ds = MainApplication.getLayerManager().getEditDataSet();
     418        DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
    419419        if (ds != null) {
    420420            ds.removeDataSetListener(this);
Note: See TracChangeset for help on using the changeset viewer.