Index: /applications/editors/josm/plugins/smed/.checkstyle
===================================================================
--- /applications/editors/josm/plugins/smed/.checkstyle	(revision 33054)
+++ /applications/editors/josm/plugins/smed/.checkstyle	(revision 33054)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
+  <local-check-config name="JOSM" location="/JOSM/tools/checkstyle/josm_checks.xml" type="project" description="">
+    <additional-data name="protect-config-file" value="false"/>
+  </local-check-config>
+  <fileset name="all" enabled="true" check-config-name="JOSM" local="true">
+    <file-match-pattern match-pattern="." include-pattern="true"/>
+  </fileset>
+  <filter name="DerivedFiles" enabled="true"/>
+  <filter name="FilesFromPackage" enabled="true">
+    <filter-data value=".svn"/>
+    <filter-data value="data"/>
+    <filter-data value="images"/>
+    <filter-data value="resources"/>
+    <filter-data value="styles"/>
+    <filter-data value="scripts"/>
+  </filter>
+</fileset-config>
Index: /applications/editors/josm/plugins/smed/.project
===================================================================
--- /applications/editors/josm/plugins/smed/.project	(revision 33053)
+++ /applications/editors/josm/plugins/smed/.project	(revision 33054)
@@ -16,7 +16,13 @@
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 	</natures>
 </projectDescription>
Index: /applications/editors/josm/plugins/smed/src/messages/Messages.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/messages/Messages.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/messages/Messages.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package messages;
 
@@ -4,5 +5,5 @@
 import java.util.ResourceBundle;
 
-public class Messages {
+public final class Messages {
     private static final String BUNDLE_NAME = "resources/msg.messages";
 
Index: /applications/editors/josm/plugins/smed/src/panels/PanelChan.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/panels/PanelChan.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/panels/PanelChan.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package panels;
 
@@ -311,5 +312,6 @@
         topmarkButton.setSelected(dlg.panelMain.mark.getTopmark() != Top.NOTOP);
         topmarkButton.setVisible(dlg.panelMain.mark.testValid());
-        Boolean lit = (dlg.panelMain.mark.getLightAtt(Att.COL, 0) != Col.UNKCOL) && !((String)dlg.panelMain.mark.getLightAtt(Att.CHR, 0)).isEmpty();
+        Boolean lit = (dlg.panelMain.mark.getLightAtt(Att.COL, 0) != Col.UNKCOL)
+                && !((String) dlg.panelMain.mark.getLightAtt(Att.CHR, 0)).isEmpty();
         lightButton.setBorderPainted(lit);
         lightButton.setSelected(lit);
Index: /applications/editors/josm/plugins/smed/src/panels/PanelChr.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/panels/PanelChr.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/panels/PanelChr.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package panels;
 
@@ -33,18 +34,18 @@
     public JLabel charLabel = new JLabel();
     public JTextField charBox = new JTextField();
-    public JToggleButton noneButton = new JToggleButton(new ImageIcon(getClass().getResource("/images/NoCharButton.png")));
-    public JToggleButton fixedButton = new JToggleButton(new ImageIcon(getClass().getResource("/images/FixedButton.png")));
-    public JToggleButton flashButton = new JToggleButton(new ImageIcon(getClass().getResource("/images/FlashButton.png")));
-    public JToggleButton longFlashButton = new JToggleButton(new ImageIcon(getClass().getResource("/images/LongFlashButton.png")));
-    public JToggleButton quickButton = new JToggleButton(new ImageIcon(getClass().getResource("/images/QuickButton.png")));
-    public JToggleButton veryQuickButton = new JToggleButton(new ImageIcon(getClass().getResource("/images/VeryQuickButton.png")));
-    public JToggleButton ultraQuickButton = new JToggleButton(new ImageIcon(getClass().getResource("/images/UltraQuickButton.png")));
-    public JToggleButton interruptedQuickButton = new JToggleButton(new ImageIcon(getClass().getResource("/images/InterruptedQuickButton.png")));
-    public JToggleButton interruptedVeryQuickButton = new JToggleButton(new ImageIcon(getClass().getResource("/images/InterruptedVeryQuickButton.png")));
-    public JToggleButton interruptedUltraQuickButton = new JToggleButton(new ImageIcon(getClass().getResource("/images/InterruptedUltraQuickButton.png")));
-    public JToggleButton isophasedButton = new JToggleButton(new ImageIcon(getClass().getResource("/images/IsophasedButton.png")));
-    public JToggleButton occultingButton = new JToggleButton(new ImageIcon(getClass().getResource("/images/OccultingButton.png")));
-    public JToggleButton morseButton = new JToggleButton(new ImageIcon(getClass().getResource("/images/MorseButton.png")));
-    public JToggleButton alternatingButton = new JToggleButton(new ImageIcon(getClass().getResource("/images/AlternatingButton.png")));
+    public JToggleButton noneButton = newJToggleButton("/images/NoCharButton.png");
+    public JToggleButton fixedButton = newJToggleButton("/images/FixedButton.png");
+    public JToggleButton flashButton = newJToggleButton("/images/FlashButton.png");
+    public JToggleButton longFlashButton = newJToggleButton("/images/LongFlashButton.png");
+    public JToggleButton quickButton = newJToggleButton("/images/QuickButton.png");
+    public JToggleButton veryQuickButton = newJToggleButton("/images/VeryQuickButton.png");
+    public JToggleButton ultraQuickButton = newJToggleButton("/images/UltraQuickButton.png");
+    public JToggleButton interruptedQuickButton = newJToggleButton("/images/InterruptedQuickButton.png");
+    public JToggleButton interruptedVeryQuickButton = newJToggleButton("/images/InterruptedVeryQuickButton.png");
+    public JToggleButton interruptedUltraQuickButton = newJToggleButton("/images/InterruptedUltraQuickButton.png");
+    public JToggleButton isophasedButton = newJToggleButton("/images/IsophasedButton.png");
+    public JToggleButton occultingButton = newJToggleButton("/images/OccultingButton.png");
+    public JToggleButton morseButton = newJToggleButton("/images/MorseButton.png");
+    public JToggleButton alternatingButton = newJToggleButton("/images/AlternatingButton.png");
     private EnumMap<Chr, JToggleButton> buttons = new EnumMap<>(Chr.class);
     private ActionListener alCharButton = new ActionListener() {
@@ -88,7 +89,9 @@
         }
     };
+
     private FocusListener flCharBox = new FocusListener() {
         @Override
         public void focusGained(FocusEvent e) {}
+
         @Override
         public void focusLost(FocusEvent e) {
@@ -154,6 +157,10 @@
     }
 
+    private static JToggleButton newJToggleButton(String buttonIcon) {
+        return new JToggleButton(new ImageIcon(PanelChr.class.getResource(buttonIcon)));
+    }
+
     public void syncPanel() {
-        String str = (String)SmedAction.panelMain.mark.getLightAtt(Att.CHR, 0);
+        String str = (String) SmedAction.panelMain.mark.getLightAtt(Att.CHR, 0);
         charBox.setText(str);
         EnumSet<Chr> set = EnumSet.noneOf(Chr.class);
Index: /applications/editors/josm/plugins/smed/src/panels/PanelCol.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/panels/PanelCol.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/panels/PanelCol.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package panels;
 
Index: /applications/editors/josm/plugins/smed/src/panels/PanelFog.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/panels/PanelFog.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/panels/PanelFog.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package panels;
 
Index: /applications/editors/josm/plugins/smed/src/panels/PanelHaz.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/panels/PanelHaz.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/panels/PanelHaz.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package panels;
 
@@ -235,5 +236,6 @@
         topmarkButton.setSelected(SmedAction.panelMain.mark.getTopmark() != Top.NOTOP);
         topmarkButton.setVisible(SmedAction.panelMain.mark.testValid());
-        Boolean lit = (SmedAction.panelMain.mark.getLightAtt(Att.COL, 0) != Col.UNKCOL) && !((String)SmedAction.panelMain.mark.getLightAtt(Att.CHR, 0)).isEmpty();
+        Boolean lit = (SmedAction.panelMain.mark.getLightAtt(Att.COL, 0) != Col.UNKCOL)
+                && !((String) SmedAction.panelMain.mark.getLightAtt(Att.CHR, 0)).isEmpty();
         lightButton.setBorderPainted(lit);
         lightButton.setSelected(lit);
Index: /applications/editors/josm/plugins/smed/src/panels/PanelLights.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/panels/PanelLights.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/panels/PanelLights.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package panels;
 
@@ -491,5 +492,6 @@
         chBox.setVisible(false);
         chBox.setText(SmedAction.panelMain.mark.getChannel());
-        if ((SmedAction.panelMain.mark.getObject() == Obj.LNDMRK) && ((SmedAction.panelMain.mark.getCategory() != Cat.NOCAT) || (SmedAction.panelMain.mark.getFunc() != Fnc.UNKFNC))) {
+        if ((SmedAction.panelMain.mark.getObject() == Obj.LNDMRK)
+                && ((SmedAction.panelMain.mark.getCategory() != Cat.NOCAT) || (SmedAction.panelMain.mark.getFunc() != Fnc.UNKFNC))) {
             functionLabel.setVisible(true);
             categoryLabel.setVisible(true);
Index: /applications/editors/josm/plugins/smed/src/panels/PanelLit.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/panels/PanelLit.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/panels/PanelLit.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package panels;
 
@@ -122,5 +123,6 @@
                 multipleLabel.setVisible(false);
                 multipleBox.setVisible(false);
-            } else if ((SmedAction.panelMain.mark.getLightAtt(Att.LIT, 0) == Lit.VERT) || (SmedAction.panelMain.mark.getLightAtt(Att.LIT, 0) == Lit.HORIZ)) {
+            } else if ((SmedAction.panelMain.mark.getLightAtt(Att.LIT, 0) == Lit.VERT)
+                    || (SmedAction.panelMain.mark.getLightAtt(Att.LIT, 0) == Lit.HORIZ)) {
                 SmedAction.panelMain.mark.setLightAtt(Att.ORT, 0, "");
                 orientationBox.setText("");
@@ -316,13 +318,14 @@
         multipleLabel.setVisible(false);
         multipleBox.setVisible(false);
-        groupBox.setText((String)SmedAction.panelMain.mark.getLightAtt(Att.GRP, 0));
-        periodBox.setText((String)SmedAction.panelMain.mark.getLightAtt(Att.PER, 0));
-        sequenceBox.setText((String)SmedAction.panelMain.mark.getLightAtt(Att.SEQ, 0));
-        heightBox.setText((String)SmedAction.panelMain.mark.getLightAtt(Att.HGT, 0));
-        rangeBox.setText((String)SmedAction.panelMain.mark.getLightAtt(Att.RNG, 0));
-        orientationBox.setText((String)SmedAction.panelMain.mark.getLightAtt(Att.ORT, 0));
+        groupBox.setText((String) SmedAction.panelMain.mark.getLightAtt(Att.GRP, 0));
+        periodBox.setText((String) SmedAction.panelMain.mark.getLightAtt(Att.PER, 0));
+        sequenceBox.setText((String) SmedAction.panelMain.mark.getLightAtt(Att.SEQ, 0));
+        heightBox.setText((String) SmedAction.panelMain.mark.getLightAtt(Att.HGT, 0));
+        rangeBox.setText((String) SmedAction.panelMain.mark.getLightAtt(Att.RNG, 0));
+        orientationBox.setText((String) SmedAction.panelMain.mark.getLightAtt(Att.ORT, 0));
         orientationBox.setVisible(SmedAction.panelMain.mark.getLightAtt(Att.LIT, 0) == Lit.DIR);
-        multipleBox.setText((String)SmedAction.panelMain.mark.getLightAtt(Att.MLT, 0));
-        multipleBox.setVisible((SmedAction.panelMain.mark.getLightAtt(Att.LIT, 0) == Lit.VERT) || (SmedAction.panelMain.mark.getLightAtt(Att.LIT, 0) == Lit.HORIZ));
+        multipleBox.setText((String) SmedAction.panelMain.mark.getLightAtt(Att.MLT, 0));
+        multipleBox.setVisible((SmedAction.panelMain.mark.getLightAtt(Att.LIT, 0) == Lit.VERT)
+                || (SmedAction.panelMain.mark.getLightAtt(Att.LIT, 0) == Lit.HORIZ));
         for (Vis vis : visibilities.keySet()) {
             int item = visibilities.get(vis);
Index: /applications/editors/josm/plugins/smed/src/panels/PanelMain.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/panels/PanelMain.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/panels/PanelMain.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package panels;
 
@@ -46,4 +47,5 @@
             mark.setName(nameBox.getText());
         }
+
         @Override
         public void focusGained(FocusEvent e) {
Index: /applications/editors/josm/plugins/smed/src/panels/PanelMore.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/panels/PanelMore.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/panels/PanelMore.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package panels;
 
Index: /applications/editors/josm/plugins/smed/src/panels/PanelPat.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/panels/PanelPat.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/panels/PanelPat.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package panels;
 
Index: /applications/editors/josm/plugins/smed/src/panels/PanelPort.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/panels/PanelPort.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/panels/PanelPort.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package panels;
 
Index: /applications/editors/josm/plugins/smed/src/panels/PanelRadar.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/panels/PanelRadar.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/panels/PanelRadar.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package panels;
 
Index: /applications/editors/josm/plugins/smed/src/panels/PanelSaw.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/panels/PanelSaw.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/panels/PanelSaw.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package panels;
 
Index: /applications/editors/josm/plugins/smed/src/panels/PanelSectors.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/panels/PanelSectors.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/panels/PanelSectors.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package panels;
 
@@ -130,10 +131,10 @@
     private class SectorTable extends AbstractTableModel {
 
-        private String[] headings = { Messages.getString("Sector"), Messages.getString("Colour"), Messages.getString("Character"),
+        private String[] headings = {Messages.getString("Sector"), Messages.getString("Colour"), Messages.getString("Character"),
                 Messages.getString("Group"), Messages.getString("Sequence"), Messages.getString("Period"), Messages.getString("Directional"),
                 Messages.getString("Start"), Messages.getString("End"), Messages.getString("Radius"), Messages.getString("Height"),
                 Messages.getString("Range"), Messages.getString("Visibility"), Messages.getString("Exhibition") };
 
-        public SectorTable() {
+        SectorTable() {
         }
 
@@ -182,5 +183,5 @@
                     return row;
             case 1:
-                if (((String)SmedAction.panelMain.mark.getLightAtt(Att.CHR, row)).contains("Al")) {
+                if (((String) SmedAction.panelMain.mark.getLightAtt(Att.CHR, row)).contains("Al")) {
                     if (SmedAction.panelMain.mark.getLightAtt(Att.COL, row) == Col.UNKCOL)
                         return Col.UNKCOL;
@@ -213,5 +214,5 @@
                     ImageIcon img = colours.get(colour);
                     if (img == value)
-                        if (((String)SmedAction.panelMain.mark.getLightAtt(Att.CHR, row)).contains("Al")) {
+                        if (((String) SmedAction.panelMain.mark.getLightAtt(Att.CHR, row)).contains("Al")) {
                             if (((colour == Col.UNKCOL) && (SmedAction.panelMain.mark.getLightAtt(Att.ALT, row) == Col.UNKCOL))
                                     || (SmedAction.panelMain.mark.getLightAtt(Att.COL, row) == Col.UNKCOL)) {
@@ -272,5 +273,5 @@
 
     static class CentreRenderer extends DefaultTableCellRenderer {
-        public CentreRenderer() {
+        CentreRenderer() {
             super();
             setHorizontalAlignment(SwingConstants.CENTER);
@@ -291,7 +292,9 @@
             add(col2Label);
         }
-        @Override
-        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int rowIndex, int vColIndex) {
-            if (!((String)SmedAction.panelMain.mark.getLightAtt(Att.CHR, rowIndex)).contains("Al")) {
+
+        @Override
+        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
+                int rowIndex, int vColIndex) {
+            if (!((String) SmedAction.panelMain.mark.getLightAtt(Att.CHR, rowIndex)).contains("Al")) {
                 col2Label.setBackground(SeaMark.ColMAP.get(SmedAction.panelMain.mark.getLightAtt(Att.COL, rowIndex)));
             } else {
Index: /applications/editors/josm/plugins/smed/src/panels/PanelSpec.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/panels/PanelSpec.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/panels/PanelSpec.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package panels;
 
Index: /applications/editors/josm/plugins/smed/src/panels/PanelStbd.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/panels/PanelStbd.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/panels/PanelStbd.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package panels;
 
Index: /applications/editors/josm/plugins/smed/src/panels/PanelTop.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/panels/PanelTop.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/panels/PanelTop.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package panels;
 
Index: /applications/editors/josm/plugins/smed/src/seamarks/SeaMark.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/seamarks/SeaMark.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/seamarks/SeaMark.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package seamarks;
 
@@ -234,6 +235,8 @@
         NTC_B1a, NTC_B1b, NTC_B2a, NTC_B2b, NTC_B3a, NTC_B3b, NTC_B4a, NTC_B4b, NTC_B5, NTC_B6, NTC_B7, NTC_B8, NTC_B9a, NTC_B9b, NTC_B11,
         NTC_C1, NTC_C2, NTC_C3, NTC_C4, NTC_C5a, NTC_C5b, NTC_D1a, NTC_D1b, NTC_D2a, NTC_D2b, NTC_D3a, NTC_D3b,
-        NOROS, ROS_UNKN, ROS_OMNI, ROS_DIRL, ROS_ROTP, ROS_CNSL, ROS_RDF, ROS_QTG, ROS_AERO, ROS_DECA, ROS_LORN, ROS_DGPS, ROS_TORN, ROS_OMGA, ROS_SYLD, ROS_CHKA,
-        ROS_PCOM, ROS_COMB, ROS_FACS, ROS_TIME, ROS_PAIS, ROS_SAIS, ROS_VAIS, ROS_VANC, ROS_VASC, ROS_VAEC, ROS_VAWC, ROS_VAPL, ROS_VASL, ROS_VAID, ROS_VASW, ROS_VASP, ROS_VAWK
+        NOROS, ROS_UNKN, ROS_OMNI, ROS_DIRL, ROS_ROTP, ROS_CNSL, ROS_RDF, ROS_QTG, ROS_AERO, ROS_DECA, ROS_LORN,
+        ROS_DGPS, ROS_TORN, ROS_OMGA, ROS_SYLD, ROS_CHKA,
+        ROS_PCOM, ROS_COMB, ROS_FACS, ROS_TIME, ROS_PAIS, ROS_SAIS, ROS_VAIS, ROS_VANC, ROS_VASC, ROS_VAEC, ROS_VAWC,
+        ROS_VAPL, ROS_VASL, ROS_VAID, ROS_VASW, ROS_VASP, ROS_VAWK
     }
 
@@ -322,5 +325,5 @@
         CatSTR.put(Cat.LMK_MNRT, "minaret");
         CatSTR.put(Cat.OFP_OIL, "oil");
-        CatSTR.put(Cat.OFP_PRD,  "production");
+        CatSTR.put(Cat.OFP_PRD, "production");
         CatSTR.put(Cat.OFP_OBS, "observation");
         CatSTR.put(Cat.OFP_ALP, "alp");
@@ -441,5 +444,6 @@
 
     public enum Shp {
-        UNKSHP, PILLAR, SPAR, CAN, CONI, SPHERI, BARREL, FLOAT, SUPER, BUOYANT, CAIRN, PILE, LATTICE, TOWER, STAKE, POLE, POST, PERCH, BUOY, BEACON
+        UNKSHP, PILLAR, SPAR, CAN, CONI, SPHERI, BARREL, FLOAT, SUPER, BUOYANT,
+        CAIRN, PILE, LATTICE, TOWER, STAKE, POLE, POST, PERCH, BUOY, BEACON
     }
 
@@ -729,5 +733,5 @@
     }
 
-    public Object[] sector = { Col.UNKCOL, "", "", "", "", Lit.UNKLIT, "", "",
+    public Object[] sector = {Col.UNKCOL, "", "", "", "", Lit.UNKLIT, "", "",
             "", "", "", Vis.UNKVIS, Exh.UNKEXH, "", "", Col.UNKCOL };
 
@@ -767,10 +771,10 @@
             case 9:
             case 10:
-                sectors.get(i)[att] = validDecimal((String)obj);
+                sectors.get(i)[att] = validDecimal((String) obj);
                 break;
             case 6:
             case 7:
             case 13:
-                sectors.get(i)[att] = validDecimal((String)obj, 360);
+                sectors.get(i)[att] = validDecimal((String) obj, 360);
                 break;
             default:
@@ -1778,15 +1782,17 @@
                 str = keys.get("seamark:light" + secStr + ":colour");
                 if (str.contains(";")) {
-                    String strs[] = str.split(";");
-                    for (Col col : ColSTR.keySet())
+                    String[] strs = str.split(";");
+                    for (Col col : ColSTR.keySet()) {
                         if ((strs.length > 1) && ColSTR.get(col).equals(strs[1])) {
                             setLightAtt(Att.ALT, i, col);
                         }
+                    }
                     str = strs[0];
                 }
-                for (Col col : ColSTR.keySet())
+                for (Col col : ColSTR.keySet()) {
                     if (ColSTR.get(col).equals(str)) {
                         setLightAtt(Att.COL, i, col);
                     }
+                }
             }
             if (keys.containsKey("seamark:light" + secStr + ":character")) {
@@ -1817,8 +1823,9 @@
                     str = "horizontal";
                 }
-                for (Lit lit : LitSTR.keySet())
+                for (Lit lit : LitSTR.keySet()) {
                     if (LitSTR.get(lit).equals(str)) {
                         setLightAtt(Att.LIT, i, lit);
                     }
+                }
             }
             if (keys.containsKey("seamark:light" + secStr + ":sector_start")) {
@@ -1839,15 +1846,17 @@
             if (keys.containsKey("seamark:light" + secStr + ":visibility")) {
                 str = keys.get("seamark:light" + secStr + ":visibility");
-                for (Vis vis : VisSTR.keySet())
+                for (Vis vis : VisSTR.keySet()) {
                     if (VisSTR.get(vis).equals(str)) {
                         setLightAtt(Att.VIS, i, vis);
                     }
+                }
             }
             if (keys.containsKey("seamark:light" + secStr + ":exhibition")) {
                 str = keys.get("seamark:light" + secStr + ":exhibition");
-                for (Exh exh : ExhSTR.keySet())
+                for (Exh exh : ExhSTR.keySet()) {
                     if (ExhSTR.get(exh).equals(str)) {
                         setLightAtt(Att.EXH, i, exh);
                     }
+                }
             }
             if (keys.containsKey("seamark:light" + secStr + ":orientation")) {
@@ -2450,9 +2459,9 @@
             g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
             g2.setStroke(new BasicStroke(6.0f));
-            if (!((String)getLightAtt(Att.BEG, i)).isEmpty() && !((String)getLightAtt(Att.END, i)).isEmpty()) {
+            if (!((String) getLightAtt(Att.BEG, i)).isEmpty() && !((String) getLightAtt(Att.END, i)).isEmpty()) {
                 if (getLightAtt(Att.COL, i) != Col.UNKCOL) {
                     g2.setPaint(ColMAP.get(getLightAtt(Att.COL, i)));
-                    Double a0 = 270 - Double.parseDouble((String)getLightAtt(Att.BEG, i));
-                    Double da = 270 - Double.parseDouble((String)getLightAtt(Att.END, i)) - a0;
+                    Double a0 = 270 - Double.parseDouble((String) getLightAtt(Att.BEG, i));
+                    Double da = 270 - Double.parseDouble((String) getLightAtt(Att.END, i)) - a0;
                     da -= da > 0 ? 360 : 0;
                     g2.draw(new Arc2D.Double(12, 15, 140, 140, a0, da, Arc2D.OPEN));
@@ -2460,13 +2469,13 @@
                 if (getLightAtt(Att.ALT, i) != Col.UNKCOL) {
                     g2.setPaint(ColMAP.get(getLightAtt(Att.ALT, i)));
-                    Double a0 = 270 - Double.parseDouble((String)getLightAtt(Att.BEG, i));
-                    Double da = 270 - Double.parseDouble((String)getLightAtt(Att.END, i)) - a0;
+                    Double a0 = 270 - Double.parseDouble((String) getLightAtt(Att.BEG, i));
+                    Double da = 270 - Double.parseDouble((String) getLightAtt(Att.END, i)) - a0;
                     da -= da > 0 ? 360 : 0;
                     g2.draw(new Arc2D.Double(17, 20, 130, 130, a0, da, Arc2D.OPEN));
                 }
-            } else if ((getLightAtt(Att.LIT, i) == Lit.DIR) && !((String)getLightAtt(Att.ORT, i)).isEmpty()) {
+            } else if ((getLightAtt(Att.LIT, i) == Lit.DIR) && !((String) getLightAtt(Att.ORT, i)).isEmpty()) {
                 if (getLightAtt(Att.COL, i) != Col.UNKCOL) {
                     g2.setPaint(ColMAP.get(getLightAtt(Att.COL, i)));
-                    Double a0 = 270 - Double.parseDouble((String)getLightAtt(Att.ORT, i)) + 2.0;
+                    Double a0 = 270 - Double.parseDouble((String) getLightAtt(Att.ORT, i)) + 2.0;
                     Double da = -4.0;
                     g2.draw(new Arc2D.Double(12, 15, 140, 140, a0, da, Arc2D.OPEN));
@@ -2474,5 +2483,5 @@
                 if (getLightAtt(Att.ALT, i) != Col.UNKCOL) {
                     g2.setPaint(ColMAP.get(getLightAtt(Att.ALT, i)));
-                    Double a0 = 270 - Double.parseDouble((String)getLightAtt(Att.ORT, i)) + 2.0;
+                    Double a0 = 270 - Double.parseDouble((String) getLightAtt(Att.ORT, i)) + 2.0;
                     Double da = -4.0;
                     g2.draw(new Arc2D.Double(17, 20, 130, 130, a0, da, Arc2D.OPEN));
@@ -2481,5 +2490,5 @@
         }
         g2.setPaint(Color.BLACK);
-        if ((getLightAtt(Att.COL, 0) != Col.UNKCOL) || !(((String)getLightAtt(Att.CHR, 0)).isEmpty())) {
+        if ((getLightAtt(Att.COL, 0) != Col.UNKCOL) || !(((String) getLightAtt(Att.CHR, 0)).isEmpty())) {
             if (sectors.size() == 1) {
                 if (((String) getLightAtt(Att.CHR, 0)).contains("Al")) {
@@ -2574,5 +2583,5 @@
             }
             if (getLightAtt(Att.LIT, 0) != Lit.UNKLIT) {
-                switch ((Lit)getLightAtt(Att.LIT, 0)) {
+                switch ((Lit) getLightAtt(Att.LIT, 0)) {
                 case VERT:
                     c += "(Vert)";
@@ -2697,5 +2706,6 @@
 
                 if (getObjPattern() != Pat.NOPAT) {
-                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:" + objStr + ":colour_pattern", PatSTR.get(getObjPattern())));
+                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:" + objStr + ":colour_pattern",
+                            PatSTR.get(getObjPattern())));
                 }
 
@@ -2745,8 +2755,10 @@
                 String secStr = (i == 0) ? "" : (":" + Integer.toString(i));
                 if (sectors.get(i)[0] != Col.UNKCOL)
-                    if ((sectors.get(i)[15] != Col.UNKCOL) && ((String)sectors.get(i)[1]).contains("Al")) {
-                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":colour", (ColSTR.get(sectors.get(i)[0])) + ";" + ColSTR.get(sectors.get(i)[15])));
+                    if ((sectors.get(i)[15] != Col.UNKCOL) && ((String) sectors.get(i)[1]).contains("Al")) {
+                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":colour",
+                                (ColSTR.get(sectors.get(i)[0])) + ";" + ColSTR.get(sectors.get(i)[15])));
                     } else {
-                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":colour", ColSTR.get(sectors.get(i)[0])));
+                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":colour",
+                                ColSTR.get(sectors.get(i)[0])));
                     }
                 if (!((String) sectors.get(i)[1]).isEmpty()) {
@@ -2771,13 +2783,17 @@
                 }
                 if (sectors.get(i)[5] != Lit.UNKLIT) {
-                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":category", LitSTR.get(sectors.get(i)[5])));
+                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":category",
+                            LitSTR.get(sectors.get(i)[5])));
                 } else if (sectors.get(0)[5] != Lit.UNKLIT) {
-                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":category", LitSTR.get(sectors.get(0)[5])));
+                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":category",
+                            LitSTR.get(sectors.get(0)[5])));
                 }
                 if (!((String) sectors.get(i)[6]).isEmpty()) {
-                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":sector_start", (String) sectors.get(i)[6]));
+                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":sector_start",
+                            (String) sectors.get(i)[6]));
                 }
                 if (!((String) sectors.get(i)[7]).isEmpty()) {
-                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":sector_end", (String) sectors.get(i)[7]));
+                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":sector_end",
+                            (String) sectors.get(i)[7]));
                 }
                 if (!((String) sectors.get(i)[8]).isEmpty()) {
@@ -2797,15 +2813,20 @@
                 }
                 if (sectors.get(i)[11] != Vis.UNKVIS) {
-                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":visibility", VisSTR.get(sectors.get(i)[11])));
+                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":visibility",
+                            VisSTR.get(sectors.get(i)[11])));
                 } else if (sectors.get(0)[11] != Vis.UNKVIS) {
-                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":visibility", VisSTR.get(sectors.get(0)[11])));
+                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":visibility",
+                            VisSTR.get(sectors.get(0)[11])));
                 }
                 if (sectors.get(i)[12] != Exh.UNKEXH) {
-                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":exhibition", ExhSTR.get(sectors.get(i)[12])));
+                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":exhibition",
+                            ExhSTR.get(sectors.get(i)[12])));
                 } else if (sectors.get(0)[12] != Exh.UNKEXH) {
-                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":exhibition", ExhSTR.get(sectors.get(0)[12])));
+                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":exhibition",
+                            ExhSTR.get(sectors.get(0)[12])));
                 }
                 if (!((String) sectors.get(i)[13]).isEmpty()) {
-                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":orientation", (String) sectors.get(i)[13]));
+                    Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":orientation",
+                            (String) sectors.get(i)[13]));
                 }
                 if (!((String) sectors.get(i)[14]).isEmpty()) {
Index: /applications/editors/josm/plugins/smed/src/smed/Smed.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/smed/Smed.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/smed/Smed.java	(revision 33054)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package smed;
 
Index: /applications/editors/josm/plugins/smed/src/smed/SmedAction.java
===================================================================
--- /applications/editors/josm/plugins/smed/src/smed/SmedAction.java	(revision 33053)
+++ /applications/editors/josm/plugins/smed/src/smed/SmedAction.java	(revision 33054)
@@ -1,11 +1,3 @@
-/* Copyright 2013 Malcolm Herring
- *
- * This is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, version 3 of the License.
- *
- * For a copy of the GNU General Public License, see <http://www.gnu.org/licenses/>.
- */
-
+// License: GPL. For details, see LICENSE file.
 package smed;
 
