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

Last change on this file since 7206 was 6889, checked in by Don-vip, 10 years ago

fix some Sonar issues (JLS order)

  • Property svn:eol-style set to native
File size: 4.2 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 public RecommendedActionsTableCell() {
28 pnlEmpty.setPreferredSize(new Dimension(1, 19));
29 needsUpload.setPreferredSize(new Dimension(needsUpload.getPreferredSize().width, 19));
30 needsSave.setPreferredSize(new Dimension(needsSave.getPreferredSize().width, 19));
31 }
32
33 @Override
34 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
35 boolean hasFocus, int row, int column) {
36 JPanel panel = new JPanel(new GridBagLayout());
37 SaveLayerInfo info = (SaveLayerInfo)value;
38 StringBuilder sb = new StringBuilder();
39 sb.append("<html>");
40 if (info.getLayer().requiresUploadToServer() && !info.getLayer().isUploadDiscouraged()) {
41 panel.add(needsUpload, defaultCellStyle);
42 sb.append(tr("Layer ''{0}'' has modifications which should be uploaded to the server.", info.getName()));
43
44 } else {
45 panel.add(pnlEmpty, defaultCellStyle);
46 if (info.getLayer().requiresUploadToServer()) {
47 sb.append(tr("Layer ''{0}'' has modifications which are discouraged to be uploaded.", info.getName()));
48 } else {
49 sb.append(tr("Layer ''{0}'' has no modifications to be uploaded.", info.getName()));
50 }
51 }
52 sb.append("<br/>");
53
54 if (info.getLayer().requiresSaveToFile()) {
55 panel.add(needsSave, defaultCellStyle);
56 sb.append(tr("Layer ''{0}'' has modifications which should be saved to its associated file ''{1}''.", info.getName(), info.getFile().toString()));
57 } else {
58 panel.add(pnlEmpty, defaultCellStyle);
59 sb.append(tr("Layer ''{0}'' has no modifications to be saved.", info.getName()));
60 }
61 sb.append("</html>");
62 panel.setToolTipText(sb.toString());
63 return panel;
64 }
65 }
66
67 protected void build() {
68 TableColumn col = null;
69
70 // column 0 - layer name, save path editor
71 LayerNameAndFilePathTableCell lnafptc = new LayerNameAndFilePathTableCell();
72 col = new TableColumn(0); // keep in sync with SaveLayersModel#columnFilename
73 col.setHeaderValue(tr("Layer Name and File Path"));
74 col.setResizable(true);
75 col.setCellRenderer(lnafptc);
76 col.setCellEditor(lnafptc);
77 col.setPreferredWidth(324);
78 addColumn(col);
79
80 // column 1 - actions required
81 col = new TableColumn(1);
82 col.setHeaderValue(tr("Recommended Actions"));
83 col.setResizable(true);
84 col.setCellRenderer(new RecommendedActionsTableCell());
85 col.setPreferredWidth(150);
86 addColumn(col);
87
88 // column 2- actions to take
89 ActionFlagsTableCell aftc = new ActionFlagsTableCell();
90 col = new TableColumn(2); // keep in sync with SaveLayersModel#columnActions
91 col.setHeaderValue(tr("Actions To Take"));
92 col.setResizable(true);
93 col.setCellRenderer(aftc);
94 col.setCellEditor(aftc);
95 col.setPreferredWidth(100);
96
97 addColumn(col);
98 }
99
100 public SaveLayersTableColumnModel() {
101 build();
102 }
103}
Note: See TracBrowser for help on using the repository browser.