Ignore:
Timestamp:
2013-10-27T05:35:41+01:00 (11 years ago)
Author:
Don-vip
Message:

code cleanup / robustness in edit layer handling

Location:
trunk/src/org/openstreetmap/josm/gui
Files:
23 edited

Legend:

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

    r6246 r6336  
    179179
    180180    private JMenuItem getNewOffsetMenu(){
    181         if (Main.map == null || Main.map.mapView == null) {
     181        if (!Main.isDisplayingMapView()) {
    182182            offsetAction.setEnabled(false);
    183183            return singleOffset;
  • trunk/src/org/openstreetmap/josm/gui/MainMenu.java

    r6253 r6336  
    752752        /**
    753753         * Refreshes the enabled state
    754          *
    755754         */
    756755        protected void refreshEnabled() {
    757             presetsMenu.setEnabled(Main.isDisplayingMapView()
    758                     && Main.map.mapView.getEditLayer() != null
    759             );
     756            presetsMenu.setEnabled(Main.main.hasEditLayer());
    760757        }
    761758
  • trunk/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java

    r6313 r6336  
    5252import org.openstreetmap.josm.gui.help.HelpUtil;
    5353import org.openstreetmap.josm.gui.io.CloseChangesetTask;
     54import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    5455import org.openstreetmap.josm.gui.widgets.ListPopupMenu;
    5556import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
     
    120121        ChangesetCache.getInstance().addChangesetCacheListener(inActiveDataLayerModel);
    121122        MapView.addEditLayerChangeListener(inActiveDataLayerModel);
    122         if (Main.main.getEditLayer() != null) {
    123             Main.main.getEditLayer().data.addDataSetListener(inActiveDataLayerModel);
    124             inActiveDataLayerModel.initFromDataSet(Main.main.getEditLayer().data);
    125             inSelectionModel.initFromPrimitives(Main.main.getEditLayer().data.getAllSelected());
     123        OsmDataLayer editLayer = Main.main.getEditLayer();
     124        if (editLayer != null) {
     125            editLayer.data.addDataSetListener(inActiveDataLayerModel);
     126            inActiveDataLayerModel.initFromDataSet(editLayer.data);
     127            inSelectionModel.initFromPrimitives(editLayer.data.getAllSelected());
    126128        }
    127129    }
     
    132134        ChangesetCache.getInstance().removeChangesetCacheListener(inActiveDataLayerModel);
    133135        MapView.removeEditLayerChangeListener(inActiveDataLayerModel);
    134         if (Main.main.getEditLayer() != null) {
    135             Main.main.getEditLayer().data.removeDataSetListener(inActiveDataLayerModel);
     136        OsmDataLayer editLayer = Main.main.getEditLayer();
     137        if (editLayer != null) {
     138            editLayer.data.removeDataSetListener(inActiveDataLayerModel);
    136139        }
    137140
     
    233236
    234237    protected void initWithCurrentData() {
    235         if (Main.main.getEditLayer() != null) {
    236             inSelectionModel.initFromPrimitives(Main.main.getEditLayer().data.getAllSelected());
    237             inActiveDataLayerModel.initFromDataSet(Main.main.getEditLayer().data);
     238        OsmDataLayer editLayer = Main.main.getEditLayer();
     239        if (editLayer != null) {
     240            inSelectionModel.initFromPrimitives(editLayer.data.getAllSelected());
     241            inActiveDataLayerModel.initFromDataSet(editLayer.data);
    238242        }
    239243    }
     
    308312        @Override
    309313        public void actionPerformed(ActionEvent e) {
    310             if (Main.main.getEditLayer() == null)
     314            if (!Main.main.hasEditLayer())
    311315                return;
    312316            ChangesetListModel model = getCurrentChangesetListModel();
  • trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java

    r6084 r6336  
    243243    private void buildTrees() {
    244244        setTitle(tr("Command Stack"));
    245         if (Main.map == null || Main.map.mapView == null || Main.map.mapView.getEditLayer() == null)
     245        if (!Main.main.hasEditLayer())
    246246            return;
    247247
     
    317317    protected static FilteredCollection<OsmPrimitive> getAffectedPrimitives(TreePath path) {
    318318        PseudoCommand c = ((CommandListMutableTreeNode) path.getLastPathComponent()).getCommand();
    319         final OsmDataLayer currentLayer = Main.map.mapView.getEditLayer();
     319        final OsmDataLayer currentLayer = Main.main.getEditLayer();
    320320        FilteredCollection<OsmPrimitive> prims = new FilteredCollection<OsmPrimitive>(
    321321                c.getParticipatingPrimitives(),
     
    359359                throw new IllegalStateException();
    360360
    361             if (Main.map == null || Main.map.mapView == null || Main.map.mapView.getEditLayer() == null) return;
    362             Main.map.mapView.getEditLayer().data.setSelected( getAffectedPrimitives(path));
     361            OsmDataLayer editLayer = Main.main.getEditLayer();
     362            if (editLayer == null) return;
     363            editLayer.data.setSelected( getAffectedPrimitives(path));
    363364        }
    364365
     
    367368            setEnabled(!undoTree.isSelectionEmpty() || !redoTree.isSelectionEmpty());
    368369        }
    369 
    370370    }
    371371
    372372    public class SelectAndZoomAction extends SelectAction {
     373        /**
     374         * Constructs a new {@code SelectAndZoomAction}.
     375         */
    373376        public SelectAndZoomAction() {
    374             super();
    375377            putValue(NAME,tr("Select and zoom"));
    376378            putValue(SHORT_DESCRIPTION, tr("Selects the objects that take part in this command (unless currently deleted), then and zooms to it"));
     
    381383        public void actionPerformed(ActionEvent e) {
    382384            super.actionPerformed(e);
    383             if (Main.map == null || Main.map.mapView == null || Main.map.mapView.getEditLayer() == null) return;
     385            if (!Main.main.hasEditLayer()) return;
    384386            AutoScaleAction.autoScale("selection");
    385387        }
  • trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java

    r6316 r6336  
    680680
    681681        protected boolean isActiveLayer(Layer layer) {
    682             if (Main.map == null) return false;
    683             if (Main.map.mapView == null) return false;
     682            if (!Main.isDisplayingMapView()) return false;
    684683            return Main.map.mapView.getActiveLayer() == layer;
    685684        }
     
    776775
    777776        protected boolean isActiveLayer(Layer layer) {
    778             if (Main.map == null) return false;
    779             if (Main.map.mapView == null) return false;
     777            if (!Main.isDisplayingMapView()) return false;
    780778            return Main.map.mapView.getActiveLayer() == layer;
    781779        }
     
    832830
    833831        private void duplicate(Layer layer) {
    834             if (Main.map == null || Main.map.mapView == null)
     832            if (!Main.isDisplayingMapView())
    835833                return;
    836834
     
    863861
    864862        protected boolean isActiveLayer(Layer layer) {
    865             if (Main.map == null || Main.map.mapView == null)
     863            if (!Main.isDisplayingMapView())
    866864                return false;
    867865            return Main.map.mapView.getActiveLayer() == layer;
     
    974972
    975973        protected boolean isActiveLayer(Layer layer) {
    976             if (Main.map == null) return false;
    977             if (Main.map.mapView == null) return false;
     974            if (!Main.isDisplayingMapView()) return false;
    978975            return Main.map.mapView.getActiveLayer() == layer;
    979976        }
     
    14041401         */
    14051402        public List<Layer> getLayers() {
    1406             if (Main.map == null || Main.map.mapView == null)
     1403            if (!Main.isDisplayingMapView())
    14071404                return Collections.<Layer>emptyList();
    14081405            return Main.map.mapView.getAllLayersAsList();
     
    14371434         */
    14381435        protected Layer getActiveLayer() {
    1439             if (Main.map == null || Main.map.mapView == null) return null;
     1436            if (!Main.isDisplayingMapView()) return null;
    14401437            return Main.map.mapView.getActiveLayer();
    14411438        }
  • trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java

    r6316 r6336  
    324324
    325325        @Override public void mouseClicked(MouseEvent e) {
    326             if (Main.main.getEditLayer() == null) return;
     326            if (!Main.main.hasEditLayer()) return;
    327327            if (isDoubleClick(e)) {
    328328                if (e.isControlDown()) {
     
    357357
    358358        protected void updateEnabledState() {
    359             setEnabled(Main.main != null && Main.main.getEditLayer() != null);
     359            setEnabled(Main.main != null && Main.main.hasEditLayer());
    360360        }
    361361
  • trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java

    r6070 r6336  
    168168        MapView.addEditLayerChangeListener(actSearch);
    169169        // editLayerChanged also gets the selection history of the level
    170         model.editLayerChanged(null, Main.map.mapView.getEditLayer());
    171         if (Main.map.mapView.getEditLayer() != null) {
    172             model.setJOSMSelection(Main.map.mapView.getEditLayer().data.getAllSelected());
     170        OsmDataLayer editLayer = Main.main.getEditLayer();
     171        model.editLayerChanged(null, editLayer);
     172        if (editLayer != null) {
     173            model.setJOSMSelection(editLayer.data.getAllSelected());
    173174        }
    174175        actSearch.updateEnabledState();
     
    285286
    286287        public void updateEnabledState() {
    287             setEnabled(Main.main != null && Main.main.getEditLayer() != null);
     288            setEnabled(Main.main != null && !Main.main.hasEditLayer());
    288289        }
    289290
     
    310311            Collection<OsmPrimitive> sel = model.getSelected();
    311312            if (sel.isEmpty())return;
    312             if (Main.map == null || Main.map.mapView == null || Main.map.mapView.getEditLayer() == null) return;
    313             Main.map.mapView.getEditLayer().data.setSelected(sel);
     313            OsmDataLayer editLayer = Main.main.getEditLayer();
     314            if (editLayer == null) return;
     315            editLayer.data.setSelected(sel);
    314316        }
    315317
  • trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java

    r6316 r6336  
    325325            if (!isEnabled())
    326326                return;
    327             if (Main.main == null || Main.main.getEditLayer() == null) return;
     327            if (Main.main == null || !Main.main.hasEditLayer()) return;
    328328            OsmDataLayer layer = Main.main.getEditLayer();
    329329            Set<HistoryOsmPrimitive> selected = model.getSelectedPrimitives();
     
    343343
    344344        public void updateEnabledState() {
    345             if (Main.main == null || Main.main.getEditLayer() == null){
     345            if (Main.main == null || !Main.main.hasEditLayer()) {
    346346                setEnabled(false);
    347347                return;
     
    390390            if (!isEnabled())
    391391                return;
    392             if (Main.main == null || Main.main.getEditLayer() == null) return;
     392            if (Main.main == null || !Main.main.hasEditLayer()) return;
    393393            OsmDataLayer layer = Main.main.getEditLayer();
    394394            Set<HistoryOsmPrimitive> selected = model.getSelectedPrimitives();
     
    409409
    410410        public void updateEnabledState() {
    411             if (Main.main == null || Main.main.getEditLayer() == null){
     411            if (Main.main == null || !Main.main.hasEditLayer()) {
    412412                setEnabled(false);
    413413                return;
  • trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetDetailPanel.java

    r6084 r6336  
    386386            if (!isEnabled())
    387387                return;
    388             if (Main.main == null || Main.main.getEditLayer() == null) return;
     388            if (Main.main == null || !Main.main.hasEditLayer()) return;
    389389            OsmDataLayer layer = Main.main.getEditLayer();
    390390            Set<OsmPrimitive> target = new HashSet<OsmPrimitive>();
     
    402402
    403403        public void updateEnabledState() {
    404             if (Main.main == null || Main.main.getEditLayer() == null){
     404            if (Main.main == null || !Main.main.hasEditLayer()) {
    405405                setEnabled(false);
    406406                return;
     
    447447            if (!isEnabled())
    448448                return;
    449             if (Main.main == null || Main.main.getEditLayer() == null) return;
     449            if (Main.main == null || !Main.main.hasEditLayer()) return;
    450450            OsmDataLayer layer = Main.main.getEditLayer();
    451451            Set<OsmPrimitive> target = new HashSet<OsmPrimitive>();
     
    464464
    465465        public void updateEnabledState() {
    466             if (Main.main == null || Main.main.getEditLayer() == null){
     466            if (Main.main == null || !Main.main.hasEditLayer()) {
    467467                setEnabled(false);
    468468                return;
  • trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/BasicChangesetQueryPanel.java

    r6267 r6336  
    158158        // map view
    159159        lbl = lblQueries.get(BasicQuery.CHANGESETS_IN_MAP_VIEW);
    160         if (Main.map == null || Main.map.mapView == null) {
     160        if (!Main.isDisplayingMapView()) {
    161161            rbQueries.get(BasicQuery.CHANGESETS_IN_MAP_VIEW).setEnabled(false);
    162162            lbl.setText(tr("<html>Download changesets in the current map view.<br><em>Disabled. There is currently no map view active.</em></html>"));
  • trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java

    r6324 r6336  
    484484        Main.map.relationListDialog.selectRelation(relation);
    485485        RelationEditor.getEditor(
    486                 Main.map.mapView.getEditLayer(),
     486                Main.main.getEditLayer(),
    487487                relation,
    488488                ((MemberInfo) membershipData.getValueAt(row, 1)).role).setVisible(true);
  • trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java

    r6316 r6336  
    655655     */
    656656    protected boolean isActiveLayer() {
    657         if (Main.map == null || Main.map.mapView == null) return false;
     657        if (!Main.isDisplayingMapView()) return false;
    658658        return Main.map.mapView.getActiveLayer() == layer;
    659659    }
  • trunk/src/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableModel.java

    r6316 r6336  
    5252    @Override
    5353    public int getRowCount() {
    54         if (Main.map.mapView.getEditLayer() != layer)
     54        if (Main.main.getEditLayer() != layer)
    5555            return 0;
    5656        return cache.size();
     
    8989    @Override
    9090    public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
    91         if (layer == Main.map.mapView.getEditLayer()) {
     91        if (layer == Main.main.getEditLayer()) {
    9292            cache.clear();
    9393            cache.addAll(newSelection);
  • trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java

    r6316 r6336  
    104104        referenceRelationMemberTableModel = new DiffTableModel();
    105105
    106         if (getEditLayer() != null) {
    107             getEditLayer().data.addDataSetListener(this);
     106        OsmDataLayer editLayer = Main.main.getEditLayer();
     107        if (editLayer != null) {
     108            editLayer.data.addDataSetListener(this);
    108109        }
    109110        MapView.addLayerChangeListener(this);
     
    120121        CheckParameterUtil.ensureParameterNotNull(history, "history");
    121122        setHistory(history);
    122     }
    123 
    124     /**
    125      * Replies the current edit layer; null, if there isn't a current edit layer
    126      * of type {@link OsmDataLayer}.
    127      *
    128      * @return the current edit layer
    129      */
    130     protected OsmDataLayer getEditLayer() {
    131         try {
    132             return Main.map.mapView.getEditLayer();
    133         } catch(NullPointerException e) {
    134             return null;
    135         }
    136123    }
    137124
     
    187174        if (history.getNumVersions() > 0) {
    188175            HistoryOsmPrimitive newLatest = null;
    189             if (getEditLayer() != null) {
    190                 OsmPrimitive p = getEditLayer().data.getPrimitiveById(history.getId(), history.getType());
     176            OsmDataLayer editLayer = Main.main.getEditLayer();
     177            if (editLayer != null) {
     178                OsmPrimitive p = editLayer.data.getPrimitiveById(history.getId(), history.getType());
    191179                if (canShowAsLatest(p)) {
    192180                    newLatest = new HistoryPrimitiveBuilder().build(p);
     
    536524        public OsmPrimitive getLatest() {
    537525            if (latest == null) return null;
    538             if (getEditLayer() == null) return null;
    539             OsmPrimitive p = getEditLayer().data.getPrimitiveById(latest.getId(), latest.getType());
     526            OsmDataLayer editLayer = Main.main.getEditLayer();
     527            if (editLayer == null) return null;
     528            OsmPrimitive p = editLayer.data.getPrimitiveById(latest.getId(), latest.getType());
    540529            return p;
    541530        }
     
    674663     */
    675664    public void unlinkAsListener() {
    676         if (getEditLayer() != null) {
    677             getEditLayer().data.removeDataSetListener(this);
     665        OsmDataLayer editLayer = Main.main.getEditLayer();
     666        if (editLayer != null) {
     667            editLayer.data.removeDataSetListener(this);
    678668        }
    679669        MapView.removeLayerChangeListener(this);
  • trunk/src/org/openstreetmap/josm/gui/history/NodeListViewer.java

    r6147 r6336  
    207207            if (!isEnabled()) return;
    208208            OsmPrimitive p = getPrimitiveToZoom();
    209             if (p!= null) {
    210                 getEditLayer().data.setSelected(p.getPrimitiveId());
    211                 AutoScaleAction.autoScale("selection");
     209            if (p != null) {
     210                OsmDataLayer editLayer = Main.main.getEditLayer();
     211                if (editLayer != null) {
     212                    editLayer.data.setSelected(p.getPrimitiveId());
     213                    AutoScaleAction.autoScale("selection");
     214                }
    212215            }
    213216        }
     
    218221        }
    219222
    220         protected OsmDataLayer getEditLayer() {
    221             try {
    222                 return Main.map.mapView.getEditLayer();
    223             } catch(NullPointerException e) {
    224                 return null;
    225             }
    226         }
    227 
    228223        protected OsmPrimitive getPrimitiveToZoom() {
    229224            if (primitiveId == null) return null;
    230             OsmPrimitive p = getEditLayer().data.getPrimitiveById(primitiveId);
     225            OsmDataLayer editLayer = Main.main.getEditLayer();
     226            if (editLayer == null) return null;
     227            OsmPrimitive p = editLayer.data.getPrimitiveById(primitiveId);
    231228            return p;
    232229        }
    233230
    234231        public void updateEnabledState() {
    235             if (getEditLayer() == null) {
     232            if (!Main.main.hasEditLayer()) {
    236233                setEnabled(false);
    237234                return;
  • trunk/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java

    r6267 r6336  
    7373    }
    7474
    75     protected OsmDataLayer getEditLayer() {
    76         try {
    77             return Main.map.mapView.getEditLayer();
    78         } catch(NullPointerException e) {
    79             return null;
    80         }
    81     }
    82 
    8375    protected String getInfoText() {
    8476        HistoryOsmPrimitive primitive = getPrimitive();
     
    8779        String text;
    8880        if (model.isLatest(primitive)) {
     81            OsmDataLayer editLayer = Main.main.getEditLayer();
    8982            text = tr("<html>Version <strong>{0}</strong> currently edited in layer ''{1}''</html>",
    9083                    Long.toString(primitive.getVersion()),
    91                     getEditLayer() == null ? tr("unknown") : getEditLayer().getName()
     84                    editLayer == null ? tr("unknown") : editLayer.getName()
    9285                    );
    9386        } else {
  • trunk/src/org/openstreetmap/josm/gui/io/AbstractUploadTask.java

    r6248 r6336  
    240240);
    241241        if (ret == 0) {
    242             DownloadReferrersAction.downloadReferrers(Main.map.mapView.getEditLayer(), Arrays.asList(conflict.a));
     242            DownloadReferrersAction.downloadReferrers(Main.main.getEditLayer(), Arrays.asList(conflict.a));
    243243        }
    244244    }
  • trunk/src/org/openstreetmap/josm/gui/layer/ImageryLayer.java

    r6070 r6336  
    8383
    8484    public double getPPD(){
    85         if (Main.map == null || Main.map.mapView == null) return Main.getProjection().getDefaultZoomInPPD();
     85        if (!Main.isDisplayingMapView()) return Main.getProjection().getDefaultZoomInPPD();
    8686        ProjectionBounds bounds = Main.map.mapView.getProjectionBounds();
    8787        return Main.map.mapView.getWidth() / (bounds.maxEast - bounds.minEast);
  • trunk/src/org/openstreetmap/josm/gui/layer/TMSLayer.java

    r6316 r6336  
    439439     */
    440440    private double getScaleFactor(int zoom) {
    441         if (Main.map == null || Main.map.mapView == null) return 1;
     441        if (!Main.isDisplayingMapView()) return 1;
    442442        MapView mv = Main.map.mapView;
    443443        LatLon topLeft = mv.getLatLon(0, 0);
  • trunk/src/org/openstreetmap/josm/gui/layer/ValidatorLayer.java

    r6333 r6336  
    156156    @Override
    157157    public void layerRemoved(Layer oldLayer) {
    158         if (oldLayer instanceof OsmDataLayer && Main.isDisplayingMapView() && Main.map.mapView.getEditLayer() == null) {
     158        if (oldLayer instanceof OsmDataLayer && Main.isDisplayingMapView() && !Main.main.hasEditLayer()) {
    159159            Main.main.removeLayer(this);
    160160        } else if (oldLayer == this) {
  • trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java

    r6310 r6336  
    432432    private static void playAdjacentMarker(Marker startMarker, boolean next) {
    433433        Marker m = null;
    434         if (Main.map == null || Main.map.mapView == null)
     434        if (!Main.isDisplayingMapView())
    435435            return;
    436436        Layer l = Main.map.mapView.getActiveLayer();
  • trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintMenu.java

    r6075 r6336  
    6565        @Override
    6666        public void updateEnabledState() {
    67             setEnabled(Main.isDisplayingMapView() && (Main.main.getEditLayer() != null || mapHasGpxorMarkerLayer()));
     67            setEnabled(Main.isDisplayingMapView() && (Main.main.hasEditLayer() || mapHasGpxorMarkerLayer()));
    6868        }
    6969
  • trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItem.java

    r6198 r6336  
    2828        }
    2929        AutoCompletionList list = new AutoCompletionList();
    30         Main.main.getEditLayer().data.getAutoCompletionManager().populateWithTagValues(list, key);
     30        layer.data.getAutoCompletionManager().populateWithTagValues(list, key);
    3131        field.setAutoCompletionList(list);
    3232    }
Note: See TracChangeset for help on using the changeset viewer.