source: josm/trunk/src/org/openstreetmap/josm/gui/io/SaveLayersTableColumnModel.java @ 10308

Last change on this file since 10308 was 10308, checked in by Don-vip, 3 years ago

sonar - squid:S1854 - Dead stores should be removed

  • Property svn:eol-style set to native
File size: 4.7 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.io;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.awt.Component;
7import java.awt.Dimension;
8import java.awt.GridBagLayout;
9
10import javax.swing.JLabel;
11import javax.swing.JPanel;
12import javax.swing.JTable;
13import javax.swing.table.DefaultTableColumnModel;
14import javax.swing.table.TableCellRenderer;
15import javax.swing.table.TableColumn;
16
17import org.openstreetmap.josm.tools.GBC;
18
19class SaveLayersTableColumnModel extends DefaultTableColumnModel {
20    /** small renderer class that handles the "should be uploaded/saved" texts. */
21    private static class RecommendedActionsTableCell implements TableCellRenderer {
22        private final JPanel pnlEmpty = new JPanel();
23        private final JLabel needsUpload = new JLabel(tr("should be uploaded"));
24        private final JLabel needsSave = new JLabel(tr("should be saved"));
25        private static final GBC defaultCellStyle = GBC.eol().fill(GBC.HORIZONTAL).insets(2, 0, 2, 0);
26
27        /**
28         * Constructs a new {@code RecommendedActionsTableCell}.
29         */
30        RecommendedActionsTableCell() {
31            pnlEmpty.setPreferredSize(new Dimension(1, 19));
32            needsUpload.setPreferredSize(new Dimension(needsUpload.getPreferredSize().width, 19));
33            needsSave.setPreferredSize(new Dimension(needsSave.getPreferredSize().width, 19));
34        }
35
36        @Override
37        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
38                boolean hasFocus, int row, int column) {
39            JPanel panel = new JPanel(new GridBagLayout());
40            SaveLayerInfo info = (SaveLayerInfo) value;
41            StringBuilder sb = new StringBuilder(24);
42            sb.append("<html>");
43            if (info != null) {
44                if (info.getLayer().requiresUploadToServer() && !info.getLayer().isUploadDiscouraged()) {
45                    panel.add(needsUpload, defaultCellStyle);
46                    sb.append(tr("Layer ''{0}'' has modifications which should be uploaded to the server.", info.getName()));
47
48                } else {
49                    if (info.isUploadable()) {
50                        panel.add(pnlEmpty, defaultCellStyle);
51                    }
52                    if (info.getLayer().requiresUploadToServer()) {
53                        sb.append(tr("Layer ''{0}'' has modifications which are discouraged to be uploaded.", info.getName()));
54                    } else {
55                        sb.append(tr("Layer ''{0}'' has no modifications to be uploaded.", info.getName()));
56                    }
57                }
58                sb.append("<br/>");
59
60                if (info.getLayer().requiresSaveToFile()) {
61                    panel.add(needsSave, defaultCellStyle);
62                    sb.append(tr("Layer ''{0}'' has modifications which should be saved to its associated file ''{1}''.",
63                            info.getName(), info.getFile().toString()));
64                } else {
65                    if (info.isSavable()) {
66                        panel.add(pnlEmpty, defaultCellStyle);
67                    }
68                    sb.append(tr("Layer ''{0}'' has no modifications to be saved.", info.getName()));
69                }
70            }
71            sb.append("</html>");
72            panel.setToolTipText(sb.toString());
73            return panel;
74        }
75    }
76
77    /**
78     * Constructs a new {@code SaveLayersTableColumnModel}.
79     */
80    SaveLayersTableColumnModel() {
81        build();
82    }
83
84    protected void build() {
85        // column 0 - layer name, save path editor
86        LayerNameAndFilePathTableCell lnfpRenderer = new LayerNameAndFilePathTableCell();
87        LayerNameAndFilePathTableCell lnfpEditor = new LayerNameAndFilePathTableCell();
88        TableColumn col = new TableColumn(0); // keep in sync with SaveLayersModel#columnFilename
89        col.setHeaderValue(tr("Layer Name and File Path"));
90        col.setResizable(true);
91        col.setCellRenderer(lnfpRenderer);
92        col.setCellEditor(lnfpEditor);
93        col.setPreferredWidth(324);
94        addColumn(col);
95
96        // column 1 - actions required
97        col = new TableColumn(1);
98        col.setHeaderValue(tr("Recommended Actions"));
99        col.setResizable(true);
100        col.setCellRenderer(new RecommendedActionsTableCell());
101        col.setPreferredWidth(150);
102        addColumn(col);
103
104        // column 2- actions to take
105        ActionFlagsTableCell aftc = new ActionFlagsTableCell();
106        col = new TableColumn(2); // keep in sync with SaveLayersModel#columnActions
107        col.setHeaderValue(tr("Actions To Take"));
108        col.setResizable(true);
109        col.setCellRenderer(aftc);
110        col.setCellEditor(aftc);
111        col.setPreferredWidth(100);
112
113        addColumn(col);
114    }
115}
Note: See TracBrowser for help on using the repository browser.