Ticket #24972: patch-Fix-Sonar-issues-in-ImageryProvidersPanel.patch

File patch-Fix-Sonar-issues-in-ImageryProvidersPanel.patch, 14.6 KB (added by DanProgs <Abenteurer.2901@…>, 2 days ago)
  • src/org/openstreetmap/josm/gui/preferences/imagery/ImageryProvidersPanel.java

    ### Eclipse Workspace Patch 1.0
    #P josm
    diff --git src/org/openstreetmap/josm/gui/preferences/imagery/ImageryProvidersPanel.java src/org/openstreetmap/josm/gui/preferences/imagery/ImageryProvidersPanel.java
    index 3ed985e..da1c09d 100644
     
    1515import java.awt.event.MouseEvent;
    1616import java.io.IOException;
    1717import java.net.MalformedURLException;
     18import java.net.URI;
    1819import java.net.URL;
    1920import java.util.ArrayList;
    2021import java.util.HashMap;
    … …  
    126127        @Override
    127128        public Component getTableCellRendererComponent(JTable table, Object value, boolean
    128129                isSelected, boolean hasFocus, int row, int column) {
    129             JLabel label = (JLabel) super.getTableCellRendererComponent(
     130            final JLabel label = (JLabel) super.getTableCellRendererComponent(
    130131                    table, value, isSelected, hasFocus, row, column);
    131132            GuiHelper.setBackgroundReadable(label, UIManager.getColor("Table.background"));
    132133            if (value != null) { // Fix #8159
    … …  
    158159        @SuppressWarnings("unchecked")
    159160        public final Component getTableCellRendererComponent(JTable table, Object value, boolean
    160161                isSelected, boolean hasFocus, int row, int column) {
    161             T obj = (T) value;
    162             JLabel label = (JLabel) super.getTableCellRendererComponent(
     162            final T obj = (T) value;
     163            final JLabel label = (JLabel) super.getTableCellRendererComponent(
    163164                    table, mapper.apply(obj), isSelected, hasFocus, row, column);
    164165            GuiHelper.setBackgroundReadable(label,
    165166                    isSelected ? UIManager.getColor("Table.selectionBackground") : UIManager.getColor("Table.background"));
    … …  
    215216        activeTable = new JTable(activeModel) {
    216217            @Override
    217218            public String getToolTipText(MouseEvent e) {
    218                 java.awt.Point p = e.getPoint();
     219                final java.awt.Point p = e.getPoint();
    219220                try {
    220221                    return activeModel.getValueAt(rowAtPoint(p), columnAtPoint(p)).toString();
    221222                } catch (ArrayIndexOutOfBoundsException ex) {
    … …  
    251252        mod.getColumn(1).setCellRenderer(new ImageryURLTableCellRenderer(layerInfo.getAllDefaultLayers()));
    252253        mod.getColumn(0).setPreferredWidth(200);
    253254
    254         RemoveEntryAction remove = new RemoveEntryAction();
     255        final RemoveEntryAction remove = new RemoveEntryAction();
    255256        activeTable.getSelectionModel().addListSelectionListener(remove);
    256257
    257258        add(new JLabel(tr("Available default entries:")), GBC.std().insets(5, 5, 0, 0));
    258259        add(new JLabel(tr("Boundaries of selected imagery entries:")), GBC.eol().insets(5, 5, 0, 0));
    259260
    260261        // Add default item list
    261         JPanel defaultPane = new JPanel(new GridBagLayout());
    262         JScrollPane scrolldef = new JScrollPane(defaultTable);
     262        final JPanel defaultPane = new JPanel(new GridBagLayout());
     263        final JScrollPane scrolldef = new JScrollPane(defaultTable);
    263264        defaultPane.add(defaultFilter, GBC.eol().insets(0, 0, 0, 0).fill(GridBagConstraints.HORIZONTAL));
    264265        defaultPane.add(scrolldef, GBC.eol().insets(0, 0, 0, 0).fill(GridBagConstraints.BOTH));
    265266        add(defaultPane, GBC.std().fill(GridBagConstraints.BOTH).weight(1.0, 0.6).insets(5, 0, 0, 0));
    … …  
    282283        defaultTableListener = new DefListSelectionListener();
    283284        defaultTable.getSelectionModel().addListSelectionListener(defaultTableListener);
    284285
    285         HtmlPanel help = new HtmlPanel(tr("New default entries can be added in the <a href=\"{0}\">Wiki</a>.",
     286        final HtmlPanel help = new HtmlPanel(tr("New default entries can be added in the <a href=\"{0}\">Wiki</a>.",
    286287            Config.getUrls().getJOSMWebsite()+"/wiki/Maps"));
    287288        help.enableClickableHyperlinks();
    288289        add(help, GBC.eol().insets(5, 0, 0, 0).fill(GBC.HORIZONTAL));
    289290
    290         ActivateAction activate = new ActivateAction();
     291        final ActivateAction activate = new ActivateAction();
    291292        defaultTable.getSelectionModel().addListSelectionListener(activate);
    292         JButton btnActivate = new JButton(activate);
     293        final JButton btnActivate = new JButton(activate);
    293294
    294295        middleToolbar = new JToolBar(JToolBar.HORIZONTAL);
    295296        middleToolbar.setFloatable(false);
    … …  
    301302
    302303        add(Box.createHorizontalGlue(), GBC.eol().fill(GridBagConstraints.HORIZONTAL));
    303304
    304         JPanel activePanel = new JPanel(new BorderLayout());
     305        final JPanel activePanel = new JPanel(new BorderLayout());
    305306        activePanel.add(new JLabel(tr("Selected entries:")), BorderLayout.NORTH);
    306         JScrollPane scroll = new JScrollPane(activeTable);
     307        final JScrollPane scroll = new JScrollPane(activeTable);
    307308        activePanel.add(scroll, BorderLayout.CENTER);
    308309
    309310        activeToolbar = new JToolBar(JToolBar.VERTICAL);
    … …  
    364365         * @param i model index
    365366         */
    366367        private void updateBoundsAndShapes(int i) {
    367             ImageryBounds bounds = defaultModel.getRow(i).getBounds();
     368            final ImageryBounds bounds = defaultModel.getRow(i).getBounds();
    368369            if (bounds != null) {
    369                 int viewIndex = defaultTable.convertRowIndexToView(i);
    370                 List<Shape> shapes = bounds.getShapes();
     370                final int viewIndex = defaultTable.convertRowIndexToView(i);
     371                final List<Shape> shapes = bounds.getShapes();
    371372                if (!Utils.isEmpty(shapes)) {
    372373                    if (defaultTable.getSelectionModel().isSelectedIndex(viewIndex)) {
    373374                        if (!mapPolygons.containsKey(i)) {
    374                             List<MapPolygon> list = new ArrayList<>();
     375                            final List<MapPolygon> list = new ArrayList<>();
    375376                            mapPolygons.put(i, list);
    376377                            // Add new map polygons
    377378                            for (Shape shape : shapes) {
    378                                 MapPolygon polygon = new MapPolygonImpl(shape.getPoints());
     379                                final MapPolygon polygon = new MapPolygonImpl(shape.getPoints());
    379380                                list.add(polygon);
    380381                                defaultMap.addMapPolygon(polygon);
    381382                            }
    … …  
    392393                    if (defaultTable.getSelectionModel().isSelectedIndex(viewIndex)) {
    393394                        if (!mapRectangles.containsKey(i)) {
    394395                            // Add new map rectangle
    395                             Coordinate topLeft = new Coordinate(bounds.getMaxLat(), bounds.getMinLon());
    396                             Coordinate bottomRight = new Coordinate(bounds.getMinLat(), bounds.getMaxLon());
    397                             MapRectangle rectangle = new MapRectangleImpl(topLeft, bottomRight);
     396                            final Coordinate topLeft = new Coordinate(bounds.getMaxLat(), bounds.getMinLon());
     397                            final Coordinate bottomRight = new Coordinate(bounds.getMinLat(), bounds.getMaxLon());
     398                            final MapRectangle rectangle = new MapRectangleImpl(topLeft, bottomRight);
    398399                            mapRectangles.put(i, rectangle);
    399400                            defaultMap.addMapRectangle(rectangle);
    400401                        }
    … …  
    409410
    410411        private <T> void doCleanupResidualBounds(Map<Integer, T> map, Consumer<T> removalEffect) {
    411412            for (Iterator<Entry<Integer, T>> it = map.entrySet().iterator(); it.hasNext();) {
    412                 Entry<Integer, T> e = it.next();
    413                 int viewIndex = defaultTable.convertRowIndexToView(e.getKey());
     413                final Entry<Integer, T> e = it.next();
     414                final int viewIndex = defaultTable.convertRowIndexToView(e.getKey());
    414415                if (!defaultTable.getSelectionModel().isSelectedIndex(viewIndex)) {
    415416                    it.remove();
    416417                    removalEffect.accept(e.getValue());
    … …  
    479480                try {
    480481                    activeModel.addRow(p.getImageryInfo());
    481482                } catch (IllegalArgumentException ex) {
    482                     if (Utils.isEmpty(ex.getMessage()))
    483                         throw ex;
    484                     else {
     483                    if (Utils.isEmpty(ex.getMessage())) {
     484                        throw ex;
     485                    } else {
    485486                        JOptionPane.showMessageDialog(MainApplication.getMainFrame(),
    486487                                ex.getMessage(), tr("Error"),
    487488                                JOptionPane.ERROR_MESSAGE);
    … …  
    543544
    544545        @Override
    545546        public void actionPerformed(ActionEvent e) {
    546             int[] lines = defaultTable.getSelectedRows();
     547            final int[] lines = defaultTable.getSelectedRows();
    547548            if (lines.length == 0) {
    548549                JOptionPane.showMessageDialog(
    549550                        gui,
    … …  
    553554                return;
    554555            }
    555556
    556             Set<String> acceptedEulas = new HashSet<>();
     557            final Set<String> acceptedEulas = new HashSet<>();
    557558
    558             outer:
    559559            for (int line : lines) {
    560                 ImageryInfo info = defaultModel.getRow(defaultTable.convertRowIndexToModel(line));
     560                final ImageryInfo info = defaultModel.getRow(defaultTable.convertRowIndexToModel(line));
    561561
    562562                // Check if an entry with exactly the same values already exists
     563                boolean alreadyExists = false;
    563564                for (int j = 0; j < activeModel.getRowCount(); j++) {
    564565                    if (info.equalsBaseValues(activeModel.getRow(j))) {
    565566                        // Select the already existing row so the user has
    566567                        // some feedback in case an entry exists
    567568                        activeTable.getSelectionModel().setSelectionInterval(j, j);
    568569                        activeTable.scrollRectToVisible(activeTable.getCellRect(j, 0, true));
    569                         continue outer;
     570                        alreadyExists = true;
     571                        break;
    570572                    }
    571573                }
     574               
     575                if (alreadyExists) {
     576                    continue;
     577                }
    572578
    573                 String eulaURL = info.getEulaAcceptanceRequired();
     579                final String eulaURL = info.getEulaAcceptanceRequired();
    574580                // If set and not already accepted, ask for EULA acceptance
    575581                if (eulaURL != null && !acceptedEulas.contains(eulaURL)) {
    576582                    if (confirmEulaAcceptance(gui, eulaURL)) {
    577583                        acceptedEulas.add(eulaURL);
    578584                    } else {
    579                         continue outer;
     585                        continue;
    580586                    }
    581587                }
    582588
    583589                activeModel.addRow(new ImageryInfo(info));
    584                 int lastLine = activeModel.getRowCount() - 1;
     590                final int lastLine = activeModel.getRowCount() - 1;
    585591                activeTable.getSelectionModel().setSelectionInterval(lastLine, lastLine);
    586592                activeTable.scrollRectToVisible(activeTable.getCellRect(lastLine, 0, true));
    587593            }
    … …  
    641647         */
    642648        public void addRow(ImageryInfo i) {
    643649            layerInfo.add(i);
    644             int p = getRowCount() - 1;
     650            final int p = getRowCount() - 1;
    645651            fireTableRowsInserted(p, p);
    646652        }
    647653
    … …  
    658664
    659665        @Override
    660666        public Object getValueAt(int row, int column) {
    661             ImageryInfo info = layerInfo.getLayers().get(row);
     667            final ImageryInfo info = layerInfo.getLayers().get(row);
    662668            switch (column) {
    663669            case 0:
    664670                return info.getName();
    … …  
    671677
    672678        @Override
    673679        public void setValueAt(Object o, int row, int column) {
    674             if (layerInfo.getLayers().size() <= row) return;
    675             ImageryInfo info = layerInfo.getLayers().get(row);
     680            if (layerInfo.getLayers().size() <= row) {
     681                return;
     682            }
     683            final ImageryInfo info = layerInfo.getLayers().get(row);
    676684            switch (column) {
    677685            case 0:
    678686                info.setName((String) o);
    … …  
    731739
    732740        @Override
    733741        public Object getValueAt(int row, int column) {
    734             ImageryInfo info = layerInfo.getAllDefaultLayers().get(row);
     742            final ImageryInfo info = layerInfo.getAllDefaultLayers().get(row);
    735743            switch (column) {
    736744            case 0:
    737745                return Optional.ofNullable(info.getImageryCategory()).orElse(ImageryCategory.OTHER);
    … …  
    755763    private static boolean confirmEulaAcceptance(PreferenceTabbedPane gui, String eulaUrl) {
    756764        URL url;
    757765        try {
    758             url = new URL(eulaUrl.replaceAll("\\{lang}", LanguageInfo.getWikiLanguagePrefix()));
     766            url = URI.create(eulaUrl.replaceAll("\\{lang}", LanguageInfo.getWikiLanguagePrefix())).toURL();
    759767            JosmEditorPane htmlPane;
    760768            try {
    761769                htmlPane = new JosmEditorPane(url);
    … …  
    763771                Logging.trace(e1);
    764772                // give a second chance with a default Locale 'en'
    765773                try {
    766                     url = new URL(eulaUrl.replaceAll("\\{lang}", ""));
     774                    url = URI.create(eulaUrl.replaceAll("\\{lang}", "")).toURL();
    767775                    htmlPane = new JosmEditorPane(url);
    768776                } catch (IOException e2) {
    769777                    Logging.debug(e2);
    … …  
    771779                    return false;
    772780                }
    773781            }
    774             Box box = Box.createVerticalBox();
     782            final Box box = Box.createVerticalBox();
    775783            htmlPane.setEditable(false);
    776             JScrollPane scrollPane = new JScrollPane(htmlPane);
     784            final JScrollPane scrollPane = new JScrollPane(htmlPane);
    777785            scrollPane.setPreferredSize(new Dimension(400, 400));
    778786            box.add(scrollPane);
    779             int option = JOptionPane.showConfirmDialog(MainApplication.getMainFrame(), box, tr("Please abort if you are not sure"),
     787            final int option = JOptionPane.showConfirmDialog(MainApplication.getMainFrame(), box, tr("Please abort if you are not sure"),
    780788                    JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
    781             if (option == JOptionPane.YES_OPTION)
    782                 return true;
     789            if (option == JOptionPane.YES_OPTION) {
     790                return true;
     791            }
    783792        } catch (MalformedURLException e2) {
    784793            JOptionPane.showMessageDialog(gui, tr("Malformed URL for the EULA licence: {0}", eulaUrl));
    785794        }