Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelChan.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelChan.java	(revision 27229)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelChan.java	(revision 27230)
@@ -39,5 +39,5 @@
 				} else {
 					panelPort.shapeButtons.clearSelection();
-					dlg.panelMain.mark.setShape(Shp.UNKNOWN);
+					dlg.panelMain.mark.setShape(Shp.UNKSHP);
 				}
 				panelPort.alShape.actionPerformed(null);
@@ -53,5 +53,5 @@
 				} else {
 					panelPort.shapeButtons.clearSelection();
-					dlg.panelMain.mark.setShape(Shp.UNKNOWN);
+					dlg.panelMain.mark.setShape(Shp.UNKSHP);
 				}
 				panelPort.alShape.actionPerformed(null);
@@ -67,5 +67,5 @@
 				} else {
 					panelStbd.shapeButtons.clearSelection();
-					dlg.panelMain.mark.setShape(Shp.UNKNOWN);
+					dlg.panelMain.mark.setShape(Shp.UNKSHP);
 				}
 				panelStbd.alShape.actionPerformed(null);
@@ -81,5 +81,5 @@
 				} else {
 					panelStbd.shapeButtons.clearSelection();
-					dlg.panelMain.mark.setShape(Shp.UNKNOWN);
+					dlg.panelMain.mark.setShape(Shp.UNKSHP);
 				}
 				panelStbd.alShape.actionPerformed(null);
@@ -90,5 +90,5 @@
 			}
 			if (safeWaterButton.isSelected()) {
-				dlg.panelMain.mark.setCategory(Cat.NONE);
+				dlg.panelMain.mark.setCategory(Cat.NOCAT);
 				panelSaw.setVisible(true);
 				if (panelSaw.shapes.containsKey(shp)) {
@@ -96,5 +96,5 @@
 				} else {
 					panelSaw.shapeButtons.clearSelection();
-					dlg.panelMain.mark.setShape(Shp.UNKNOWN);
+					dlg.panelMain.mark.setShape(Shp.UNKSHP);
 				}
 				panelSaw.alShape.actionPerformed(null);
@@ -116,5 +116,5 @@
 				if (SeaMark.GrpMAP.get(dlg.panelMain.mark.getObject()) == Grp.SAW) {
 					dlg.panelMain.mark.setTopmark(Top.SPHERE);
-					dlg.panelMain.mark.setTopPattern(Pat.NONE);
+					dlg.panelMain.mark.setTopPattern(Pat.NOPAT);
 					dlg.panelMain.mark.setTopColour(Col.RED);
 				} else {
@@ -125,9 +125,9 @@
 						switch (dlg.panelMain.mark.getRegion()) {
 						case A:
-							dlg.panelMain.mark.setTopPattern(Pat.NONE);
+							dlg.panelMain.mark.setTopPattern(Pat.NOPAT);
 							dlg.panelMain.mark.setTopColour(Col.RED);
 							break;
 						case B:
-							dlg.panelMain.mark.setTopPattern(Pat.NONE);
+							dlg.panelMain.mark.setTopPattern(Pat.NOPAT);
 							dlg.panelMain.mark.setTopColour(Col.GREEN);
 							break;
@@ -144,9 +144,9 @@
 						switch (dlg.panelMain.mark.getRegion()) {
 						case A:
-							dlg.panelMain.mark.setTopPattern(Pat.NONE);
+							dlg.panelMain.mark.setTopPattern(Pat.NOPAT);
 							dlg.panelMain.mark.setTopColour(Col.GREEN);
 							break;
 						case B:
-							dlg.panelMain.mark.setTopPattern(Pat.NONE);
+							dlg.panelMain.mark.setTopPattern(Pat.NOPAT);
 							dlg.panelMain.mark.setTopColour(Col.RED);
 							break;
@@ -162,7 +162,7 @@
 				topmarkButton.setBorderPainted(true);
 			} else {
-				dlg.panelMain.mark.setTopmark(Top.NONE);
-				dlg.panelMain.mark.setTopPattern(Pat.NONE);
-				dlg.panelMain.mark.setTopColour(Col.UNKNOWN);
+				dlg.panelMain.mark.setTopmark(Top.NOTOP);
+				dlg.panelMain.mark.setTopPattern(Pat.NOPAT);
+				dlg.panelMain.mark.setTopColour(Col.UNKCOL);
 				topmarkButton.setBorderPainted(false);
 			}
@@ -284,8 +284,8 @@
 			safeWaterButton.setBorderPainted(false);
 		}
-		topmarkButton.setBorderPainted(dlg.panelMain.mark.getTopmark() != Top.NONE);
-		topmarkButton.setSelected(dlg.panelMain.mark.getTopmark() != Top.NONE);
+		topmarkButton.setBorderPainted(dlg.panelMain.mark.getTopmark() != Top.NOTOP);
+		topmarkButton.setSelected(dlg.panelMain.mark.getTopmark() != Top.NOTOP);
 		topmarkButton.setVisible(dlg.panelMain.mark.testValid());
-		Boolean lit = (dlg.panelMain.mark.getLightAtt(Att.COL, 0) != Col.UNKNOWN) && !((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/plugs/oseam/src/oseam/panels/PanelChr.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelChr.java	(revision 27229)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelChr.java	(revision 27230)
@@ -70,5 +70,5 @@
 			if (!str.contains("Al")) {
 				col2Label.setBackground(SeaMark.ColMAP.get(dlg.panelMain.mark.getLightAtt(Att.COL, 0)));
-				dlg.panelMain.mark.setLightAtt(Att.ALT, 0, Col.UNKNOWN);
+				dlg.panelMain.mark.setLightAtt(Att.ALT, 0, Col.UNKCOL);
 			} else {
 				col2Label.setBackground(SeaMark.ColMAP.get(dlg.panelMain.mark.getLightAtt(Att.ALT, 0)));
@@ -99,5 +99,5 @@
 			if (!str.contains("Al")) {
 				col2Label.setBackground(SeaMark.ColMAP.get(dlg.panelMain.mark.getLightAtt(Att.COL, 0)));
-				dlg.panelMain.mark.setLightAtt(Att.ALT, 0, Col.UNKNOWN);
+				dlg.panelMain.mark.setLightAtt(Att.ALT, 0, Col.UNKCOL);
 			} else {
 				col2Label.setBackground(SeaMark.ColMAP.get(dlg.panelMain.mark.getLightAtt(Att.ALT, 0)));
@@ -109,5 +109,5 @@
 		dlg = dia;
 		setLayout(null);
-		add(getChrButton(noneButton, 0, 0, 44, 16, Messages.getString("NoChar"), Chr.UNKNOWN));
+		add(getChrButton(noneButton, 0, 0, 44, 16, Messages.getString("NoChar"), Chr.UNKCHR));
 		add(getChrButton(fixedButton, 0, 16, 44, 16, Messages.getString("FChar"), Chr.FIXED));
 		add(getChrButton(flashButton, 0, 32, 44, 16, Messages.getString("FlChar"), Chr.FLASH));
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelCol.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelCol.java	(revision 27229)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelCol.java	(revision 27230)
@@ -40,35 +40,50 @@
 				JRadioButton button = colours.get(col);
 				if (button.isSelected()) {
-						if (ent == Ent.LIGHT) {
-							if (((String)dlg.panelMain.mark.getLightAtt(Att.CHR, 0)).contains("Al")) {
-								if (((button == delButton) && (dlg.panelMain.mark.getLightAtt(Att.ALT, 0) == Col.UNKNOWN))
-										|| (dlg.panelMain.mark.getLightAtt(Att.COL, 0) == Col.UNKNOWN)) {
-									dlg.panelMain.mark.setLightAtt(Att.COL, 0, col);
-									dlg.panelMain.panelLit.panelChr.col1Label.setBackground(SeaMark.ColMAP.get(col));
-								} else {
-									dlg.panelMain.mark.setLightAtt(Att.ALT, 0, col);
-									dlg.panelMain.panelLit.panelChr.col2Label.setBackground(SeaMark.ColMAP.get(col));
-								}
-							} else {
+					if (ent == Ent.LIGHT) {
+						if (((String) dlg.panelMain.mark.getLightAtt(Att.CHR, 0)).contains("Al")) {
+							if (((button == delButton) && (dlg.panelMain.mark.getLightAtt(Att.ALT, 0) == Col.UNKCOL))
+									|| (dlg.panelMain.mark.getLightAtt(Att.COL, 0) == Col.UNKCOL)) {
 								dlg.panelMain.mark.setLightAtt(Att.COL, 0, col);
 								dlg.panelMain.panelLit.panelChr.col1Label.setBackground(SeaMark.ColMAP.get(col));
+							} else {
+								dlg.panelMain.mark.setLightAtt(Att.ALT, 0, col);
 								dlg.panelMain.panelLit.panelChr.col2Label.setBackground(SeaMark.ColMAP.get(col));
 							}
-							button.setBorderPainted(true);
 						} else {
-							if (button == delButton) {
-								dlg.panelMain.mark.subColour(ent, stackIdx);
-							} else if (button == addButton) {
-								if (stackCol.size() != 0)
-									stackIdx++;
-								if (stackCol.size() == 0)
-									dlg.panelMain.mark.setColour(ent, col);
-								else
+							dlg.panelMain.mark.setLightAtt(Att.COL, 0, col);
+							dlg.panelMain.panelLit.panelChr.col1Label.setBackground(SeaMark.ColMAP.get(col));
+							dlg.panelMain.panelLit.panelChr.col2Label.setBackground(SeaMark.ColMAP.get(col));
+						}
+						button.setBorderPainted(true);
+					} else {
+						if (button == delButton) {
+							dlg.panelMain.mark.subColour(ent, stackIdx);
+						} else if (button == addButton) {
+							if (stackCol.size() != 0)
+								stackIdx++;
+							if (stackCol.size() == 0)
+								dlg.panelMain.mark.setColour(ent, col);
+							else
+								switch (dlg.panelMain.mark.getPattern(ent)) {
+								case NOPAT:
+									break;
+								case BORDER:
+								case CROSS:
+									if (stackCol.size() < 2)
+										dlg.panelMain.mark.addColour(ent, stackIdx, col);
+									break;
+								case SQUARE:
+									if (stackCol.size() < 4)
+										dlg.panelMain.mark.addColour(ent, stackIdx, col);
+									break;
+								default:
 									dlg.panelMain.mark.addColour(ent, stackIdx, col);
-							} else {
-								dlg.panelMain.mark.setColour(ent, stackIdx, col);
-							}
-							syncPanel();
+									break;
+								}
+						} else {
+							dlg.panelMain.mark.setColour(ent, stackIdx, col);
 						}
+						syncPanel();
+					}
 				} else {
 					button.setBorderPainted(false);
@@ -99,5 +114,5 @@
 		ent = entity;
 		setLayout(null);
-		add(getColButton(delButton, 0, 0, 34, 16, Messages.getString("RemColour"), Col.UNKNOWN));
+		add(getColButton(delButton, 0, 0, 34, 16, Messages.getString("RemColour"), Col.UNKCOL));
 		add(getColButton(whiteButton, 0, 16, 34, 16, Messages.getString("White"), Col.WHITE));
 		add(getColButton(redButton, 0, 32, 34, 16, Messages.getString("Red"), Col.RED));
@@ -142,5 +157,5 @@
 		} else {
 			int idx;
-			for (idx = 0; dlg.panelMain.mark.getColour(ent, idx) != Col.UNKNOWN; idx++) {
+			for (idx = 0; dlg.panelMain.mark.getColour(ent, idx) != Col.UNKCOL; idx++) {
 				if (stackCol.size() <= idx) {
 					stackCol.add(idx, new JRadioButton(new ImageIcon(getClass().getResource("/images/ColourButton.png"))));
@@ -159,5 +174,5 @@
 				stackCol.remove(idx);
 			}
-			if ((stackIdx >= stackCol.size()) && (stackIdx > 0))
+			if (stackIdx >= stackCol.size())
 				stackIdx = stackCol.size() - 1;
 			if (stackIdx < 0)
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelFog.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelFog.java	(revision 27229)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelFog.java	(revision 27230)
@@ -69,6 +69,6 @@
 		dlg = dia;
 		setLayout(null);
-		add(getFogButton(noFogButton, 0, 2, 27, 27, "NoFog", Fog.NONE));
-		add(getFogButton(yesFogButton, 0, 32, 27, 27, "FogSignal", Fog.UNKNOWN));
+		add(getFogButton(noFogButton, 0, 2, 27, 27, "NoFog", Fog.NOFOG));
+		add(getFogButton(yesFogButton, 0, 32, 27, 27, "FogSignal", Fog.FOGSIG));
 		add(getFogButton(hornButton, 0, 62, 27, 27, "Horn", Fog.HORN));
 		add(getFogButton(sirenButton, 0, 92, 27, 27, "Siren", Fog.SIREN));
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelHaz.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelHaz.java	(revision 27229)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelHaz.java	(revision 27230)
@@ -60,5 +60,5 @@
 			}
 			if (isolButton.isSelected()) {
-				dlg.panelMain.mark.setCategory(Cat.NONE);
+				dlg.panelMain.mark.setCategory(Cat.NOCAT);
 				dlg.panelMain.mark.setObjColour(Col.BLACK);
 				dlg.panelMain.mark.addObjColour(Col.RED);
@@ -107,5 +107,5 @@
 		public void actionPerformed(java.awt.event.ActionEvent e) {
 			if (topmarkButton.isSelected()) {
-				dlg.panelMain.mark.setTopPattern(Pat.NONE);
+				dlg.panelMain.mark.setTopPattern(Pat.NOPAT);
 				dlg.panelMain.mark.setTopColour(Col.BLACK);
 				switch (dlg.panelMain.mark.getCategory()) {
@@ -128,7 +128,7 @@
 				topmarkButton.setBorderPainted(true);
 			} else {
-				dlg.panelMain.mark.setTopmark(Top.NONE);
-				dlg.panelMain.mark.setTopPattern(Pat.NONE);
-				dlg.panelMain.mark.setTopColour(Col.UNKNOWN);
+				dlg.panelMain.mark.setTopmark(Top.NOTOP);
+				dlg.panelMain.mark.setTopPattern(Pat.NOPAT);
+				dlg.panelMain.mark.setTopColour(Col.UNKCOL);
 				topmarkButton.setBorderPainted(false);
 			}
@@ -184,6 +184,6 @@
 		add(getShapeButton(sparButton, 55, 32, 34, 32, "Spar", Shp.SPAR, Obj.BOYCAR, Obj.BOYISD));
 		add(getShapeButton(canButton, 55, 64, 34, 32, "Can", Shp.CAN, Obj.BOYCAR, Obj.BOYISD));
-		add(getShapeButton(coneButton, 55, 96, 34, 32, "Cone", Shp.CONE, Obj.BOYCAR, Obj.BOYISD));
-		add(getShapeButton(sphereButton, 55, 128, 34, 32, "Sphere", Shp.SPHERE, Obj.BOYCAR, Obj.BOYISD));
+		add(getShapeButton(coneButton, 55, 96, 34, 32, "Cone", Shp.CONI, Obj.BOYCAR, Obj.BOYISD));
+		add(getShapeButton(sphereButton, 55, 128, 34, 32, "Sphere", Shp.SPHERI, Obj.BOYCAR, Obj.BOYISD));
 		add(getShapeButton(floatButton, 90, 0, 34, 32, "Float", Shp.FLOAT, Obj.LITFLT, Obj.LITFLT));
 		add(getShapeButton(beaconButton, 90, 32, 34, 32, "Beacon", Shp.BEACON, Obj.BCNCAR, Obj.BCNISD));
@@ -214,8 +214,8 @@
 			button.setBorderPainted(dlg.panelMain.mark.getShape() == shp);
 		}
-		topmarkButton.setBorderPainted(dlg.panelMain.mark.getTopmark() != Top.NONE);
-		topmarkButton.setSelected(dlg.panelMain.mark.getTopmark() != Top.NONE);
+		topmarkButton.setBorderPainted(dlg.panelMain.mark.getTopmark() != Top.NOTOP);
+		topmarkButton.setSelected(dlg.panelMain.mark.getTopmark() != Top.NOTOP);
 		topmarkButton.setVisible(dlg.panelMain.mark.testValid());
-		Boolean lit = (dlg.panelMain.mark.getLightAtt(Att.COL, 0) != Col.UNKNOWN) && !((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/plugs/oseam/src/oseam/panels/PanelLights.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLights.java	(revision 27229)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLights.java	(revision 27230)
@@ -81,5 +81,5 @@
 			else if (dlg.panelMain.mark.getObject() == Obj.LITFLT)
 				dlg.panelMain.mark.setShape(Shp.FLOAT);
-			else dlg.panelMain.mark.setShape(Shp.UNKNOWN);
+			else dlg.panelMain.mark.setShape(Shp.UNKSHP);
 			if (landButton.isSelected()) {
 				categoryLabel.setVisible(true);
@@ -101,5 +101,5 @@
 				alWarningCatBox.actionPerformed(null);
 			} else {
-				dlg.panelMain.mark.setCategory(Cat.NONE);
+				dlg.panelMain.mark.setCategory(Cat.NOCAT);
 				categoryLabel.setVisible(false);
 				landCatBox.setVisible(false);
@@ -132,5 +132,5 @@
 		add(landCatBox);
 		landCatBox.addActionListener(alLandCatBox);
-		addLCItem("", Cat.NONE);
+		addLCItem("", Cat.NOCAT);
 		addLCItem(Messages.getString("Tower"), Cat.LMK_TOWR);
 		addLCItem(Messages.getString("WaterTower"), Cat.LMK_WTRT);
@@ -159,5 +159,5 @@
 		add(trafficCatBox);
 		trafficCatBox.addActionListener(alTrafficCatBox);
-		addTCItem("", Cat.NONE);
+		addTCItem("", Cat.NOCAT);
 		addTCItem(Messages.getString("Traffic"), Cat.SIS_TRFC);
 		addTCItem(Messages.getString("PortControl"), Cat.SIS_PTCL);
@@ -176,5 +176,5 @@
 		add(warningCatBox);
 		warningCatBox.addActionListener(alWarningCatBox);
-		addWCItem("", Cat.NONE);
+		addWCItem("", Cat.NOCAT);
 		addWCItem(Messages.getString("Danger"), Cat.SIS_DNGR);
 		addWCItem(Messages.getString("Storm"), Cat.SIS_STRM);
@@ -197,5 +197,5 @@
 
 	public void syncPanel() {
-		if ((dlg.panelMain.mark.getObject() == Obj.LNDMRK) && (dlg.panelMain.mark.getCategory() != Cat.NONE)) {
+		if ((dlg.panelMain.mark.getObject() == Obj.LNDMRK) && (dlg.panelMain.mark.getCategory() != Cat.NOCAT)) {
 			categoryLabel.setVisible(true);
 			landCatBox.setVisible(true);
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLit.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLit.java	(revision 27229)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLit.java	(revision 27230)
@@ -212,5 +212,5 @@
 		categoryBox.setBounds(new Rectangle(185, 20, 165, 20));
 		add(categoryBox);
-		addCatItem("", Lit.UNKNOWN);
+		addCatItem("", Lit.UNKLIT);
 		addCatItem(Messages.getString("VertDisp"), Lit.VERT);
 		addCatItem(Messages.getString("HorizDisp"), Lit.HORIZ);
@@ -238,5 +238,5 @@
 		visibilityBox.setBounds(new Rectangle(185, 60, 165, 20));
 		add(visibilityBox);
-		addVisibItem("", Vis.UNKNOWN);
+		addVisibItem("", Vis.UNKVIS);
 		addVisibItem(Messages.getString("Intensified"), Vis.INTEN);
 		addVisibItem(Messages.getString("Unintensified"), Vis.UNINTEN);
@@ -250,5 +250,5 @@
 		exhibitionBox.setBounds(new Rectangle(280, 100, 70, 20));
 		add(exhibitionBox);
-		addExhibItem("", Exh.UNKNOWN);
+		addExhibItem("", Exh.UNKEXH);
 		addExhibItem(Messages.getString("24h"), Exh.H24);
 		addExhibItem(Messages.getString("Day"), Exh.DAY);
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelMain.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelMain.java	(revision 27229)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelMain.java	(revision 27230)
@@ -308,5 +308,5 @@
 				panelSpec.syncPanel();
 				break;
-			case LIT:
+			case LGT:
 			case SIS:
 				lightsButton.setBorderPainted(true);
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelMore.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelMore.java	(revision 27229)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelMore.java	(revision 27230)
@@ -103,5 +103,5 @@
 				case LAM_PORT:
 					dlg.panelMain.mark.setObjColour(Col.RED);
-					dlg.panelMain.mark.setObjPattern(Pat.NONE);
+					dlg.panelMain.mark.setObjPattern(Pat.NOPAT);
 					break;
 				case LAM_PPORT:
@@ -113,5 +113,5 @@
 				case LAM_STBD:
 					dlg.panelMain.mark.setObjColour(Col.GREEN);
-					dlg.panelMain.mark.setObjPattern(Pat.NONE);
+					dlg.panelMain.mark.setObjPattern(Pat.NOPAT);
 					break;
 				case LAM_PSTBD:
@@ -131,5 +131,5 @@
 				case LAM_PORT:
 					dlg.panelMain.mark.setObjColour(Col.GREEN);
-					dlg.panelMain.mark.setObjPattern(Pat.NONE);
+					dlg.panelMain.mark.setObjPattern(Pat.NOPAT);
 					break;
 				case LAM_PPORT:
@@ -141,5 +141,5 @@
 				case LAM_STBD:
 					dlg.panelMain.mark.setObjColour(Col.RED);
-					dlg.panelMain.mark.setObjPattern(Pat.NONE);
+					dlg.panelMain.mark.setObjPattern(Pat.NOPAT);
 					break;
 				case LAM_PSTBD:
@@ -236,5 +236,5 @@
 		statusBox = new JComboBox();
 		statusBox.setBounds(new Rectangle(250, 20, 100, 20));
-		addStsItem("", Sts.UNKNOWN);
+		addStsItem("", Sts.UNKSTS);
 		addStsItem(Messages.getString("Permanent"), Sts.PERM);
 		addStsItem(Messages.getString("Occasional"), Sts.OCC);
@@ -263,5 +263,5 @@
 		constrBox = new JComboBox();
 		constrBox.setBounds(new Rectangle(250, 60, 100, 20));
-		addCnsItem("", Cns.UNKNOWN);
+		addCnsItem("", Cns.UNKCNS);
 		addCnsItem(Messages.getString("Masonry"), Cns.BRICK);
 		addCnsItem(Messages.getString("Concreted"), Cns.CONC);
@@ -281,5 +281,5 @@
 		conBox = new JComboBox();
 		conBox.setBounds(new Rectangle(250, 100, 100, 20));
-		addConItem("", Con.UNKNOWN);
+		addConItem("", Con.UNKCON);
 		addConItem(Messages.getString("Conspicuous"), Con.CONSP);
 		addConItem(Messages.getString("NotConspicuous"), Con.NCONS);
@@ -292,5 +292,5 @@
 		reflBox = new JComboBox();
 		reflBox.setBounds(new Rectangle(250, 140, 100, 20));
-		addReflItem("", Con.UNKNOWN);
+		addReflItem("", Con.UNKCON);
 		addReflItem(Messages.getString("Conspicuous"), Con.CONSP);
 		addReflItem(Messages.getString("NotConspicuous"), Con.NCONS);
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPat.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPat.java	(revision 27229)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPat.java	(revision 27230)
@@ -37,5 +37,5 @@
 			}
 			switch (dlg.panelMain.mark.getPattern(ent)) {
-			case NONE:
+			case NOPAT:
 				panelCol.trimStack(1);
 				break;
@@ -48,4 +48,5 @@
 				break;
 			case BORDER:
+			case CROSS:
 				panelCol.trimStack(2);
 				break;
@@ -61,5 +62,5 @@
 		panelCol.setBounds(new Rectangle(0, 0, 72, 160));
 		add(panelCol);
-		add(getPatButton(noneButton, 76, 0, 27, 27, "NoPat", Pat.NONE));
+		add(getPatButton(noneButton, 76, 0, 27, 27, "NoPat", Pat.NOPAT));
 		add(getPatButton(horizButton, 76, 26, 27, 27, "HorizPat", Pat.HORIZ));
 		add(getPatButton(vertButton, 76, 52, 27, 27, "VertPat", Pat.VERT));
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPort.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPort.java	(revision 27229)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPort.java	(revision 27230)
@@ -43,9 +43,9 @@
 					switch (dlg.panelMain.mark.getRegion()) {
 					case A:
-						dlg.panelMain.mark.setObjPattern(Pat.NONE);
+						dlg.panelMain.mark.setObjPattern(Pat.NOPAT);
 						dlg.panelMain.mark.setObjColour(Col.RED);
 						break;
 					case B:
-						dlg.panelMain.mark.setObjPattern(Pat.NONE);
+						dlg.panelMain.mark.setObjPattern(Pat.NOPAT);
 						dlg.panelMain.mark.setObjColour(Col.GREEN);
 						break;
@@ -93,5 +93,5 @@
 		add(getShapeButton(sparButton, 0, 32, 34, 32, "Spar", Shp.SPAR, Obj.BOYLAT));
 		add(getShapeButton(canButton, 0, 64, 34, 32, "Can", Shp.CAN, Obj.BOYLAT));
-		add(getShapeButton(sphereButton, 0, 96, 34, 32, "Sphere", Shp.SPHERE, Obj.BOYLAT));
+		add(getShapeButton(sphereButton, 0, 96, 34, 32, "Sphere", Shp.SPHERI, Obj.BOYLAT));
 		add(getShapeButton(floatButton, 0, 128, 34, 32, "Float", Shp.FLOAT, Obj.FLTLAT));
 		add(getShapeButton(beaconButton, 35, 0, 34, 32, "Beacon", Shp.BEACON, Obj.BCNLAT));
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelRadar.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelRadar.java	(revision 27229)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelRadar.java	(revision 27230)
@@ -80,5 +80,5 @@
 		dlg = dia;
 		setLayout(null);
-		add(getRadButton(noRadButton, 0, 3, 27, 27, "NoRadar", Rtb.NONE));
+		add(getRadButton(noRadButton, 0, 3, 27, 27, "NoRadar", Rtb.NORTB));
 		add(getRadButton(reflButton, 0, 33, 27, 27, "RadarReflector", Rtb.REFLECTOR));
 		add(getRadButton(ramarkButton, 0, 63, 27, 27, "Ramark", Rtb.RAMARK));
@@ -145,5 +145,5 @@
 
 	public void syncPanel() {
-		boolean rad = ((dlg.panelMain.mark.getRadar() != Rtb.NONE) && (dlg.panelMain.mark.getRadar() != Rtb.REFLECTOR));
+		boolean rad = ((dlg.panelMain.mark.getRadar() != Rtb.NORTB) && (dlg.panelMain.mark.getRadar() != Rtb.REFLECTOR));
 		groupLabel.setVisible(rad);
 		groupBox.setVisible(rad);
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSaw.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSaw.java	(revision 27229)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSaw.java	(revision 27230)
@@ -50,5 +50,5 @@
 		add(getShapeButton(pillarButton, 0, 0, 34, 32, "Pillar", Shp.PILLAR, Obj.BOYSAW));
 		add(getShapeButton(sparButton, 0, 32, 34, 32, "Spar", Shp.SPAR, Obj.BOYSAW));
-		add(getShapeButton(sphereButton, 0, 64, 34, 32, "Sphere", Shp.SPHERE, Obj.BOYSAW));
+		add(getShapeButton(sphereButton, 0, 64, 34, 32, "Sphere", Shp.SPHERI, Obj.BOYSAW));
 		add(getShapeButton(floatButton, 0, 96, 34, 32, "Float", Shp.FLOAT, Obj.FLTSAW));
 		add(getShapeButton(beaconButton, 0, 128, 34, 32, "Beacon", Shp.BEACON, Obj.BCNSAW));
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSectors.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSectors.java	(revision 27229)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSectors.java	(revision 27230)
@@ -76,5 +76,5 @@
 		TableColumn colColumn = table.getColumnModel().getColumn(1);
 		colourBox = new JComboBox();
-		addColItem(new ImageIcon(getClass().getResource("/images/DelButton.png")), Col.UNKNOWN);
+		addColItem(new ImageIcon(getClass().getResource("/images/DelButton.png")), Col.UNKCOL);
 		addColItem(new ImageIcon(getClass().getResource("/images/WhiteButton.png")), Col.WHITE);
 		addColItem(new ImageIcon(getClass().getResource("/images/RedButton.png")), Col.RED);
@@ -89,5 +89,5 @@
 		TableColumn visColumn = table.getColumnModel().getColumn(12);
 		visibilityBox = new JComboBox();
-		addVisibItem("", Vis.UNKNOWN);
+		addVisibItem("", Vis.UNKVIS);
 		addVisibItem(Messages.getString("Intensified"), Vis.INTEN);
 		addVisibItem(Messages.getString("Unintensified"), Vis.UNINTEN);
@@ -97,5 +97,5 @@
 		TableColumn exhColumn = table.getColumnModel().getColumn(13);
 		exhibitionBox = new JComboBox();
-		addExhibItem("", Exh.UNKNOWN);
+		addExhibItem("", Exh.UNKEXH);
 		addExhibItem(Messages.getString("24h"), Exh.H24);
 		addExhibItem(Messages.getString("Day"), Exh.DAY);
@@ -154,6 +154,6 @@
 			case 1:
 				if (((String)dlg.panelMain.mark.getLightAtt(Att.CHR, row)).contains("Al")) {
-					if (dlg.panelMain.mark.getLightAtt(Att.COL, row) == Col.UNKNOWN) {
-						return Col.UNKNOWN;
+					if (dlg.panelMain.mark.getLightAtt(Att.COL, row) == Col.UNKCOL) {
+						return Col.UNKCOL;
 					} else {
 						return dlg.panelMain.mark.getLightAtt(Att.ALT, row);
@@ -186,6 +186,6 @@
 					if (img == value)
 						if (((String)dlg.panelMain.mark.getLightAtt(Att.CHR, row)).contains("Al")) {
-							if (((colour == Col.UNKNOWN) && (dlg.panelMain.mark.getLightAtt(Att.ALT, row) == Col.UNKNOWN))
-									|| (dlg.panelMain.mark.getLightAtt(Att.COL, row) == Col.UNKNOWN)) {
+							if (((colour == Col.UNKCOL) && (dlg.panelMain.mark.getLightAtt(Att.ALT, row) == Col.UNKCOL))
+									|| (dlg.panelMain.mark.getLightAtt(Att.COL, row) == Col.UNKCOL)) {
 								dlg.panelMain.mark.setLightAtt(Att.COL, row, colour);
 							} else {
@@ -209,5 +209,5 @@
 					dlg.panelMain.mark.setLightAtt(Att.END, row, "");
 				} else {
-					dlg.panelMain.mark.setLightAtt(Att.LIT, row, Lit.UNKNOWN);
+					dlg.panelMain.mark.setLightAtt(Att.LIT, row, Lit.UNKLIT);
 					dlg.panelMain.mark.setLightAtt(Att.ORT, row, "");
 				}
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSpec.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSpec.java	(revision 27229)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSpec.java	(revision 27230)
@@ -50,9 +50,9 @@
 					dlg.panelMain.mark.setObject(objects.get(shp));
 					if (button == cairnButton) {
-						dlg.panelMain.mark.setObjPattern(Pat.NONE);
-						dlg.panelMain.mark.setObjColour(Col.UNKNOWN);
+						dlg.panelMain.mark.setObjPattern(Pat.NOPAT);
+						dlg.panelMain.mark.setObjColour(Col.UNKCOL);
 					}
-					if (dlg.panelMain.mark.getObjColour(0) == Col.UNKNOWN) {
-						dlg.panelMain.mark.setObjPattern(Pat.NONE);
+					if (dlg.panelMain.mark.getObjColour(0) == Col.UNKCOL) {
+						dlg.panelMain.mark.setObjPattern(Pat.NOPAT);
 						dlg.panelMain.mark.setObjColour(Col.YELLOW);
 					}
@@ -70,11 +70,11 @@
 			if (topmarkButton.isSelected()) {
 				dlg.panelMain.mark.setTopmark(Top.X_SHAPE);
-				dlg.panelMain.mark.setTopPattern(Pat.NONE);
+				dlg.panelMain.mark.setTopPattern(Pat.NOPAT);
 				dlg.panelMain.mark.setTopColour(Col.YELLOW);
 				topmarkButton.setBorderPainted(true);
 			} else {
-				dlg.panelMain.mark.setTopmark(Top.NONE);
-				dlg.panelMain.mark.setTopPattern(Pat.NONE);
-				dlg.panelMain.mark.setTopColour(Col.UNKNOWN);
+				dlg.panelMain.mark.setTopmark(Top.NOTOP);
+				dlg.panelMain.mark.setTopPattern(Pat.NOPAT);
+				dlg.panelMain.mark.setTopColour(Col.UNKCOL);
 				topmarkButton.setBorderPainted(false);
 			}
@@ -89,6 +89,6 @@
 		add(getShapeButton(sparButton, 34, 0, 34, 32, "Spar", Shp.SPAR, Obj.BOYSPP));
 		add(getShapeButton(canButton, 68, 0, 34, 32, "Can", Shp.CAN, Obj.BOYSPP));
-		add(getShapeButton(coneButton, 102, 0, 34, 32, "Cone", Shp.CONE, Obj.BOYSPP));
-		add(getShapeButton(sphereButton, 0, 32, 34, 32, "Sphere", Shp.SPHERE, Obj.BOYSPP));
+		add(getShapeButton(coneButton, 102, 0, 34, 32, "Cone", Shp.CONI, Obj.BOYSPP));
+		add(getShapeButton(sphereButton, 0, 32, 34, 32, "Sphere", Shp.SPHERI, Obj.BOYSPP));
 		add(getShapeButton(barrelButton, 34, 32, 34, 32, "Barrel", Shp.BARREL, Obj.BOYSPP));
 		add(getShapeButton(superButton, 68, 32, 34, 32, "Super", Shp.SUPER, Obj.BOYSPP));
@@ -106,5 +106,5 @@
 		add(categoryBox);
 		categoryBox.addActionListener(alCategoryBox);
-		addCatItem("", Cat.NONE);
+		addCatItem("", Cat.NOCAT);
 		addCatItem(Messages.getString("UKPurpose"), Cat.SPM_UNKN);
 		addCatItem(Messages.getString("Warning"), Cat.SPM_WARN);
@@ -144,6 +144,6 @@
 				categoryBox.setSelectedIndex(item);
 		}
-		topmarkButton.setBorderPainted(dlg.panelMain.mark.getTopmark() != Top.NONE);
-		topmarkButton.setSelected(dlg.panelMain.mark.getTopmark() != Top.NONE);
+		topmarkButton.setBorderPainted(dlg.panelMain.mark.getTopmark() != Top.NOTOP);
+		topmarkButton.setSelected(dlg.panelMain.mark.getTopmark() != Top.NOTOP);
 		topmarkButton.setVisible(dlg.panelMain.mark.testValid());
 	}
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelStbd.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelStbd.java	(revision 27229)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelStbd.java	(revision 27230)
@@ -43,9 +43,9 @@
 					switch (dlg.panelMain.mark.getRegion()) {
 					case A:
-						dlg.panelMain.mark.setObjPattern(Pat.NONE);
+						dlg.panelMain.mark.setObjPattern(Pat.NOPAT);
 						dlg.panelMain.mark.setObjColour(Col.GREEN);
 						break;
 					case B:
-						dlg.panelMain.mark.setObjPattern(Pat.NONE);
+						dlg.panelMain.mark.setObjPattern(Pat.NOPAT);
 						dlg.panelMain.mark.setObjColour(Col.RED);
 						break;
@@ -92,6 +92,6 @@
 		add(getShapeButton(pillarButton, 0, 0, 34, 32, "Pillar", Shp.PILLAR, Obj.BOYLAT));
 		add(getShapeButton(sparButton, 0, 32, 34, 32, "Spar", Shp.SPAR, Obj.BOYLAT));
-		add(getShapeButton(coneButton, 0, 64, 34, 32, "Cone", Shp.CONE, Obj.BOYLAT));
-		add(getShapeButton(sphereButton, 0, 96, 34, 32, "Sphere", Shp.SPHERE, Obj.BOYLAT));
+		add(getShapeButton(coneButton, 0, 64, 34, 32, "Cone", Shp.CONI, Obj.BOYLAT));
+		add(getShapeButton(sphereButton, 0, 96, 34, 32, "Sphere", Shp.SPHERI, Obj.BOYLAT));
 		add(getShapeButton(floatButton, 0, 128, 34, 32, "Float", Shp.FLOAT, Obj.FLTLAT));
 		add(getShapeButton(beaconButton, 35, 0, 34, 32, "Beacon", Shp.BEACON, Obj.BCNLAT));
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelTop.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelTop.java	(revision 27229)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelTop.java	(revision 27230)
@@ -54,5 +54,5 @@
 		panelPat.setBounds(new Rectangle(160, 0, 110, 160));
 		add(panelPat);
-		add(getTopButton(noTopButton, 0, 5, 27, 27, "NoTop", Top.NONE));
+		add(getTopButton(noTopButton, 0, 5, 27, 27, "NoTop", Top.NOTOP));
 		add(getTopButton(canTopButton, 30, 5, 27, 27, "CanTop", Top.CAN));
 		add(getTopButton(coneTopButton, 60, 5, 27, 27, "ConeTop", Top.CONE));
Index: /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/SeaMark.java
===================================================================
--- /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/SeaMark.java	(revision 27229)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/SeaMark.java	(revision 27230)
@@ -61,5 +61,5 @@
 
 	public enum Obj {
-		UNKNOWN, BCNCAR, BCNISD, BCNLAT, BCNSAW, BCNSPP,
+		UNKOBJ, BCNCAR, BCNISD, BCNLAT, BCNSAW, BCNSPP,
 		BOYCAR, BOYISD, BOYLAT, BOYSAW, BOYSPP,
 		FLTCAR, FLTISD, FLTLAT, FLTSAW, FLTSPP,
@@ -96,5 +96,5 @@
 	}
 
-	private Obj object = Obj.UNKNOWN;
+	private Obj object = Obj.UNKOBJ;
 
 	public Obj getObject() {
@@ -104,18 +104,18 @@
 	public void setObject(Obj obj) {
 		object = obj;
-		if (obj == Obj.UNKNOWN) {
-			setCategory(Cat.NONE);
-			setShape(Shp.UNKNOWN);
-			setColour(Ent.BODY, Col.UNKNOWN);
-			setPattern(Ent.BODY, Pat.NONE);
-			setTopmark(Top.NONE);
-			setColour(Ent.TOPMARK, Col.UNKNOWN);
-			setPattern(Ent.TOPMARK, Pat.NONE);
-			setFogSound(Fog.NONE);
-			setRadar(Rtb.NONE);
-			setStatus(Sts.UNKNOWN);
-			setConstr(Cns.UNKNOWN);
-			setConsp(Con.UNKNOWN);
-			setRefl(Con.UNKNOWN);
+		if (obj == Obj.UNKOBJ) {
+			setCategory(Cat.NOCAT);
+			setShape(Shp.UNKSHP);
+			setColour(Ent.BODY, Col.UNKCOL);
+			setPattern(Ent.BODY, Pat.NOPAT);
+			setTopmark(Top.NOTOP);
+			setColour(Ent.TOPMARK, Col.UNKCOL);
+			setPattern(Ent.TOPMARK, Pat.NOPAT);
+			setFogSound(Fog.NOFOG);
+			setRadar(Rtb.NORTB);
+			setStatus(Sts.UNKSTS);
+			setConstr(Cns.UNKCNS);
+			setConsp(Con.UNKCON);
+			setRefl(Con.UNKCON);
 			setRef("");
 			setObjectHeight("");
@@ -129,5 +129,5 @@
 
 	public enum Ent {
-		BODY, BUOY, BEACON, FLOAT, TOPMARK, LIGHT, MOORING, STATION
+		BODY, BUOY, BEACON, LFLOAT, TOPMARK, LIGHT, MOORING, STATION
 	}
 
@@ -146,11 +146,11 @@
 		EntMAP.put(Obj.LITMAJ, Ent.LIGHT);
 		EntMAP.put(Obj.LITMIN, Ent.LIGHT);
-		EntMAP.put(Obj.LITFLT, Ent.FLOAT);
-		EntMAP.put(Obj.FLTCAR, Ent.FLOAT);
-		EntMAP.put(Obj.FLTLAT, Ent.FLOAT);
-		EntMAP.put(Obj.FLTSAW, Ent.FLOAT);
-		EntMAP.put(Obj.FLTISD, Ent.FLOAT);
-		EntMAP.put(Obj.FLTSPP, Ent.FLOAT);
-		EntMAP.put(Obj.LITVES, Ent.FLOAT);
+		EntMAP.put(Obj.LITFLT, Ent.LFLOAT);
+		EntMAP.put(Obj.FLTCAR, Ent.LFLOAT);
+		EntMAP.put(Obj.FLTLAT, Ent.LFLOAT);
+		EntMAP.put(Obj.FLTSAW, Ent.LFLOAT);
+		EntMAP.put(Obj.FLTISD, Ent.LFLOAT);
+		EntMAP.put(Obj.FLTSPP, Ent.LFLOAT);
+		EntMAP.put(Obj.LITVES, Ent.LFLOAT);
 		EntMAP.put(Obj.LITHSE, Ent.LIGHT);
 		EntMAP.put(Obj.LNDMRK, Ent.LIGHT);
@@ -161,10 +161,10 @@
 
 	public enum Grp {
-		NUL, LAT, CAR, SAW, ISD, SPP, LIT, SIS
+		NUL, LAT, CAR, SAW, ISD, SPP, LGT, SIS
 	}
 
 	public static final EnumMap<Obj, Grp> GrpMAP = new EnumMap<Obj, Grp>(Obj.class);
 	static {
-		GrpMAP.put(Obj.UNKNOWN, Grp.NUL);
+		GrpMAP.put(Obj.UNKOBJ, Grp.NUL);
 		GrpMAP.put(Obj.BCNCAR, Grp.CAR);
 		GrpMAP.put(Obj.BCNISD, Grp.ISD);
@@ -182,10 +182,10 @@
 		GrpMAP.put(Obj.FLTISD, Grp.ISD);
 		GrpMAP.put(Obj.FLTSPP, Grp.SPP);
-		GrpMAP.put(Obj.LITFLT, Grp.LIT);
-		GrpMAP.put(Obj.LITMAJ, Grp.LIT);
-		GrpMAP.put(Obj.LITMIN, Grp.LIT);
-		GrpMAP.put(Obj.LITVES, Grp.LIT);
-		GrpMAP.put(Obj.LITHSE, Grp.LIT);
-		GrpMAP.put(Obj.LNDMRK, Grp.LIT);
+		GrpMAP.put(Obj.LITFLT, Grp.LGT);
+		GrpMAP.put(Obj.LITMAJ, Grp.LGT);
+		GrpMAP.put(Obj.LITMIN, Grp.LGT);
+		GrpMAP.put(Obj.LITVES, Grp.LGT);
+		GrpMAP.put(Obj.LITHSE, Grp.LGT);
+		GrpMAP.put(Obj.LNDMRK, Grp.LGT);
 		GrpMAP.put(Obj.MORFAC, Grp.SPP);
 		GrpMAP.put(Obj.SISTAW, Grp.SIS);
@@ -194,5 +194,5 @@
 
 	public enum Cat {
-		NONE, LAM_PORT, LAM_STBD, LAM_PPORT, LAM_PSTBD, CAM_NORTH, CAM_EAST, CAM_SOUTH, CAM_WEST,
+		NOCAT, LAM_PORT, LAM_STBD, LAM_PPORT, LAM_PSTBD, CAM_NORTH, CAM_EAST, CAM_SOUTH, CAM_WEST,
 		ACH_URST, ACH_DEEP, ACH_TANK, ACH_EXPL, ACH_QUAR, ACH_SPLN, ACH_SCAN, ACH_SCMO, ACH_T24H, ACH_TLIM,
 		SPM_UNKN, SPM_WARN, SPM_CHBF, SPM_YCHT, SPM_CABL, SPM_OFAL, SPM_ODAS, SPM_RECN, SPM_MOOR, SPM_LNBY,
@@ -287,5 +287,5 @@
 	}
 
-	private Cat category = Cat.NONE;
+	private Cat category = Cat.NOCAT;
 
 	public Cat getCategory() {
@@ -299,5 +299,5 @@
 
 	public enum Shp {
-		UNKNOWN, PILLAR, SPAR, CAN, CONE, SPHERE, 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
 	}
 
@@ -307,6 +307,6 @@
 		ShpSTR.put(Shp.SPAR, "spar");
 		ShpSTR.put(Shp.CAN, "can");
-		ShpSTR.put(Shp.CONE, "conical");
-		ShpSTR.put(Shp.SPHERE, "spherical");
+		ShpSTR.put(Shp.CONI, "conical");
+		ShpSTR.put(Shp.SPHERI, "spherical");
 		ShpSTR.put(Shp.BARREL, "barrel");
 		ShpSTR.put(Shp.FLOAT, "float");
@@ -321,5 +321,5 @@
 	}
 
-	private Shp shape = Shp.UNKNOWN;
+	private Shp shape = Shp.UNKSHP;
 
 	public Shp getShape() {
@@ -333,10 +333,10 @@
 
 	public enum Col {
-		UNKNOWN, BLANK, WHITE, RED, ORANGE, AMBER, YELLOW, GREEN, BLUE, VIOLET, BLACK, GREY, BROWN, MAGENTA, PINK
+		UNKCOL, BLANK, WHITE, RED, ORANGE, AMBER, YELLOW, GREEN, BLUE, VIOLET, BLACK, GREY, BROWN, MAGENTA, PINK
 	}
 
 	public static final EnumMap<Col, Color> ColMAP = new EnumMap<Col, Color>(Col.class);
 	static {
-		ColMAP.put(Col.UNKNOWN, new Color(0xc0c0c0));
+		ColMAP.put(Col.UNKCOL, new Color(0xc0c0c0));
 		ColMAP.put(Col.WHITE, Color.WHITE);
 		ColMAP.put(Col.RED, Color.RED);
@@ -412,5 +412,5 @@
 			return bodyColour.get(i);
 		else
-			return Col.UNKNOWN;
+			return Col.UNKCOL;
 	}
 
@@ -430,8 +430,10 @@
 		if (bodyColour.size() >= i)
 			bodyColour.add(i, col);
+		repaint();
 	}
 
 	public void addObjColour(Col col) {
 		bodyColour.add(col);
+		repaint();
 	}
 
@@ -439,4 +441,5 @@
 		if (bodyColour.size() > i)
 			bodyColour.remove(i);
+		repaint();
 	}
 
@@ -447,5 +450,5 @@
 			return topmarkColour.get(i);
 		else
-			return Col.UNKNOWN;
+			return Col.UNKCOL;
 	}
 
@@ -465,8 +468,10 @@
 		if (topmarkColour.size() >= i)
 			topmarkColour.add(i, col);
+		repaint();
 	}
 
 	public void addTopColour(Col col) {
 		topmarkColour.add(col);
+		repaint();
 	}
 
@@ -474,13 +479,13 @@
 		if (topmarkColour.size() > i)
 			topmarkColour.remove(i);
+		repaint();
 	}
 
 	public enum Chr {
-		UNKNOWN, FIXED, FLASH, LFLASH, QUICK, VQUICK, UQUICK, ISOPHASED, OCCULTING, MORSE, ALTERNATING, IQUICK, IVQUICK, IUQUICK
+		UNKCHR, FIXED, FLASH, LFLASH, QUICK, VQUICK, UQUICK, ISOPHASED, OCCULTING, MORSE, ALTERNATING, IQUICK, IVQUICK, IUQUICK
 	}
 
 	public static final Map<EnumSet<Chr>, String> ChrMAP = new HashMap<EnumSet<Chr>, String>();
 	static {
-		ChrMAP.put(EnumSet.of(Chr.UNKNOWN), "");
 		ChrMAP.put(EnumSet.of(Chr.FIXED), "F");
 		ChrMAP.put(EnumSet.of(Chr.FLASH), "Fl");
@@ -512,10 +517,9 @@
 
 	public enum Vis {
-		UNKNOWN, HIGH, LOW, FAINT, INTEN, UNINTEN, REST, OBS, PARTOBS
+		UNKVIS, HIGH, LOW, FAINT, INTEN, UNINTEN, REST, OBS, PARTOBS
 	}
 
 	public static final EnumMap<Vis, String> VisSTR = new EnumMap<Vis, String>(Vis.class);
 	static {
-		VisSTR.put(Vis.UNKNOWN, "");
 		VisSTR.put(Vis.HIGH, "high");
 		VisSTR.put(Vis.LOW, "low");
@@ -529,10 +533,9 @@
 
 	public enum Lit {
-		UNKNOWN, VERT, HORIZ, DIR, UPPER, LOWER, LEAD, REAR, FRONT, AERO, AIROBS, FOGDET, FLOOD, STRIP, SUBS, SPOT, MOIRE, EMERG, BEAR
+		UNKLIT, VERT, HORIZ, DIR, UPPER, LOWER, LEAD, REAR, FRONT, AERO, AIROBS, FOGDET, FLOOD, STRIP, SUBS, SPOT, MOIRE, EMERG, BEAR
 	}
 
 	public static final EnumMap<Lit, String> LitSTR = new EnumMap<Lit, String>(Lit.class);
 	static {
-		LitSTR.put(Lit.UNKNOWN, "");
 		LitSTR.put(Lit.VERT, "vertical");
 		LitSTR.put(Lit.HORIZ, "horizontal");
@@ -556,10 +559,9 @@
 
 	public enum Exh {
-		UNKNOWN, H24, DAY, NIGHT, FOG, WARN, STORM
+		UNKEXH, H24, DAY, NIGHT, FOG, WARN, STORM
 	}
 
 	public static final EnumMap<Exh, String> ExhSTR = new EnumMap<Exh, String>(Exh.class);
 	static {
-		ExhSTR.put(Exh.UNKNOWN, "");
 		ExhSTR.put(Exh.H24, "24h");
 		ExhSTR.put(Exh.DAY, "day");
@@ -574,6 +576,6 @@
 	}
 
-	public Object[] sector = { Col.UNKNOWN, "", "", "", "", Lit.UNKNOWN, "", "",
-			"", "", "", Vis.UNKNOWN, Exh.UNKNOWN, "", "", Col.UNKNOWN };
+	public Object[] sector = { Col.UNKCOL, "", "", "", "", Lit.UNKLIT, "", "",
+			"", "", "", Vis.UNKVIS, Exh.UNKEXH, "", "", Col.UNKCOL };
 
 	private ArrayList<Object[]> sectors = new ArrayList<Object[]>();
@@ -608,5 +610,4 @@
 			switch (att) {
 			case 4:
-			case 8:
 			case 9:
 			case 10:
@@ -653,5 +654,5 @@
 
 	public enum Pat {
-		NONE, HORIZ, VERT, DIAG, SQUARE, BORDER
+		NOPAT, HORIZ, VERT, DIAG, SQUARE, BORDER, CROSS
 	}
 
@@ -663,4 +664,5 @@
 		PatSTR.put(Pat.SQUARE, "squared");
 		PatSTR.put(Pat.BORDER, "border");
+		PatSTR.put(Pat.CROSS, "cross");
 	}
 
@@ -679,5 +681,5 @@
 	}
 
-	private Pat bodyPattern = Pat.NONE;
+	private Pat bodyPattern = Pat.NOPAT;
 
 	public Pat getObjPattern() {
@@ -689,5 +691,5 @@
 	}
 
-	private Pat topPattern = Pat.NONE;
+	private Pat topPattern = Pat.NOPAT;
 
 	public Pat getTopPattern() {
@@ -700,5 +702,5 @@
 
 	public enum Top {
-		NONE, CAN, CONE, SPHERE, X_SHAPE, NORTH, SOUTH, EAST, WEST, SPHERES2, BOARD, DIAMOND, CIRCLE, TRIANGLE, TRIANGLE_INV, SQUARE
+		NOTOP, CAN, CONE, SPHERE, X_SHAPE, NORTH, SOUTH, EAST, WEST, SPHERES2, BOARD, DIAMOND, CIRCLE, TRIANGLE, TRIANGLE_INV, SQUARE
 	}
 
@@ -722,5 +724,5 @@
 	}
 
-	private Top topShape = Top.NONE;
+	private Top topShape = Top.NOTOP;
 
 	public Top getTopmark() {
@@ -734,5 +736,5 @@
 
 	public enum Rtb {
-		NONE, REFLECTOR, RACON, RAMARK, LEADING
+		NORTB, REFLECTOR, RACON, RAMARK, LEADING
 	}
 
@@ -744,5 +746,5 @@
 	}
 
-	private Rtb RaType = Rtb.NONE;
+	private Rtb RaType = Rtb.NORTB;
 
 	public Rtb getRadar() {
@@ -752,5 +754,5 @@
 	public void setRadar(Rtb type) {
 		RaType = type;
-		if (type == Rtb.NONE) {
+		if (type == Rtb.NORTB) {
 			setRaconGroup("");
 			setRaconSequence("");
@@ -830,10 +832,10 @@
 
 	public enum Fog {
-		NONE, UNKNOWN, HORN, SIREN, DIA, BELL, WHIS, GONG, EXPLOS
+		NOFOG, FOGSIG, HORN, SIREN, DIA, BELL, WHIS, GONG, EXPLOS
 	}
 
 	public static final EnumMap<Fog, String> FogSTR = new EnumMap<Fog, String>(Fog.class);
 	static {
-		FogSTR.put(Fog.UNKNOWN, "yes");
+		FogSTR.put(Fog.FOGSIG, "yes");
 		FogSTR.put(Fog.HORN, "horn");
 		FogSTR.put(Fog.SIREN, "siren");
@@ -845,5 +847,5 @@
 	}
 
-	private Fog fogSound = Fog.NONE;
+	private Fog fogSound = Fog.NOFOG;
 
 	public Fog getFogSound() {
@@ -853,5 +855,5 @@
 	public void setFogSound(Fog sound) {
 		fogSound = sound;
-		if (sound == Fog.NONE) {
+		if (sound == Fog.NOFOG) {
 			setFogGroup("");
 			setFogSequence("");
@@ -907,5 +909,5 @@
 
 	public enum Sts {
-		UNKNOWN, PERM, OCC, REC, NIU, INT, RESV, TEMP, PRIV, MAND, DEST, EXT, ILLUM, HIST, PUB, SYNC, WATCH, UNWAT, DOUBT
+		UNKSTS, PERM, OCC, REC, NIU, INT, RESV, TEMP, PRIV, MAND, DEST, EXT, ILLUM, HIST, PUB, SYNC, WATCH, UNWAT, DOUBT
 	}
 
@@ -932,5 +934,5 @@
 	}
 
-	private Sts status = Sts.UNKNOWN;
+	private Sts status = Sts.UNKSTS;
 
 	public Sts getStatus() {
@@ -943,5 +945,5 @@
 
 	public enum Cns {
-		UNKNOWN, BRICK, CONC, BOULD, HSURF, USURF, WOOD, METAL, GRP, PAINT
+		UNKCNS, BRICK, CONC, BOULD, HSURF, USURF, WOOD, METAL, GRP, PAINT
 	}
 
@@ -959,5 +961,5 @@
 	}
 
-	private Cns construction = Cns.UNKNOWN;
+	private Cns construction = Cns.UNKCNS;
 
 	public Cns getConstr() {
@@ -970,5 +972,5 @@
 
 	public enum Con {
-		UNKNOWN, CONSP, NCONS, REFL
+		UNKCON, CONSP, NCONS, REFL
 	}
 
@@ -980,5 +982,5 @@
 	}
 
-	private Con conspicuity = Con.UNKNOWN;
+	private Con conspicuity = Con.UNKCON;
 
 	public Con getConsp() {
@@ -990,5 +992,5 @@
 	}
 
-	private Con reflectivity = Con.UNKNOWN;
+	private Con reflectivity = Con.UNKCON;
 
 	public Con getRefl() {
@@ -1078,5 +1080,5 @@
 		case BOYCAR:
 		case BOYLAT:
-			if ((getCategory() != Cat.NONE) && (getShape() != Shp.UNKNOWN))
+			if ((getCategory() != Cat.NOCAT) && (getShape() != Shp.UNKSHP))
 				tmp = true;
 			break;
@@ -1087,5 +1089,5 @@
 		case BOYSAW:
 		case BOYSPP:
-			if (getShape() != Shp.UNKNOWN)
+			if (getShape() != Shp.UNKSHP)
 				tmp = true;
 			break;
@@ -1095,5 +1097,5 @@
 		case FLTSAW:
 		case FLTSPP:
-			if (getObjColour(0) != Col.UNKNOWN)
+			if (getObjColour(0) != Col.UNKCOL)
 				tmp = true;
 			break;
@@ -1109,5 +1111,5 @@
 			break;
 		case LNDMRK:
-			if (getCategory() != Cat.NONE)
+			if (getCategory() != Cat.NOCAT)
 				tmp = true;
 			break;
@@ -1118,5 +1120,5 @@
 			Ent ent = EntMAP.get(getObject());
 			dlg.panelMain.topButton.setEnabled((ent == Ent.BUOY)
-					|| (ent == Ent.BEACON) || (ent == Ent.FLOAT));
+					|| (ent == Ent.BEACON) || (ent == Ent.LFLOAT));
 			dlg.panelMain.fogButton.setEnabled(true);
 			dlg.panelMain.radButton.setEnabled(true);
@@ -1136,5 +1138,5 @@
 
 	public void clearSign() {
-		setObject(Obj.UNKNOWN);
+		setObject(Obj.UNKOBJ);
 		setName("");
 		clrLight();
@@ -1181,5 +1183,5 @@
 			str = keys.get("seamark:type");
 
-		setObject(Obj.UNKNOWN);
+		setObject(Obj.UNKOBJ);
 		for (Obj obj : ObjSTR.keySet()) {
 			if (ObjSTR.get(obj).equals(str)) {
@@ -1191,5 +1193,5 @@
 			dlg.manager.showVisualMessage("No seamark");
 		}
-		if (getObject() == Obj.UNKNOWN) {
+		if (getObject() == Obj.UNKOBJ) {
 			dlg.manager.showVisualMessage("Seamark not recognised");
 		}
@@ -1213,5 +1215,4 @@
 		}
 		
-		
 		if (keys.containsKey("seamark:longname"))
 			longName = keys.get("seamark:longname");
@@ -1222,5 +1223,5 @@
 			if (keys.containsKey("seamark:" + ObjSTR.get(obj) + ":category")) {
 				str = keys.get("seamark:" + ObjSTR.get(obj) + ":category");
-				setCategory(Cat.NONE);
+				setCategory(Cat.NOCAT);
 				for (Cat cat : CatSTR.keySet()) {
 					if (CatSTR.get(cat).equals(str)) {
@@ -1234,5 +1235,5 @@
 			if (keys.containsKey("seamark:" + ObjSTR.get(obj) + ":shape")) {
 				str = keys.get("seamark:" + ObjSTR.get(obj) + ":shape");
-				setShape(Shp.UNKNOWN);
+				setShape(Shp.UNKSHP);
 				for (Shp shp : ShpSTR.keySet()) {
 					if (ShpSTR.get(shp).equals(str)) {
@@ -1242,10 +1243,10 @@
 			}
 		}
-		if (getShape() == Shp.UNKNOWN) {
+		if (getShape() == Shp.UNKSHP) {
 			if (EntMAP.get(getObject()) == Ent.BUOY)
 				setShape(Shp.BUOY);
 			if (EntMAP.get(getObject()) == Ent.BEACON)
 				setShape(Shp.BEACON);
-			if (EntMAP.get(getObject()) == Ent.FLOAT)
+			if (EntMAP.get(getObject()) == Ent.LFLOAT)
 				if (getObject() == Obj.LITVES)
 					setShape(Shp.SUPER);
@@ -1271,5 +1272,5 @@
 			if (keys.containsKey("seamark:" + ObjSTR.get(obj) + ":colour_pattern")) {
 				str = keys.get("seamark:" + ObjSTR.get(obj) + ":colour_pattern");
-				setObjPattern(Pat.NONE);
+				setObjPattern(Pat.NOPAT);
 				for (Pat pat : PatSTR.keySet()) {
 					if (PatSTR.get(pat).equals(str)) {
@@ -1287,5 +1288,5 @@
 		}
 
-		if ((getObject() == Obj.LNDMRK) && (getCategory() == Cat.NONE)) {
+		if ((getObject() == Obj.LNDMRK) && (getCategory() == Cat.NOCAT)) {
 			setObject(Obj.LITHSE);
 		}
@@ -1294,8 +1295,8 @@
 			switch (getObjColour(0)) {
 			case RED:
-				if ((getObjColour(1) == Col.WHITE) && (getObjColour(2) == Col.UNKNOWN)) {
+				if ((getObjColour(1) == Col.WHITE) && (getObjColour(2) == Col.UNKCOL)) {
 					setObject(Obj.FLTSAW);
-					setCategory(Cat.NONE);
-				} else if (getObjColour(1) == Col.UNKNOWN) {
+					setCategory(Cat.NOCAT);
+				} else if (getObjColour(1) == Col.UNKCOL) {
 					setObject(Obj.FLTLAT);
 					if (getRegion() == Reg.B) {
@@ -1318,9 +1319,9 @@
 				} else {
 					setObject(Obj.FLTSPP);
-					setCategory(Cat.NONE);
+					setCategory(Cat.NOCAT);
 				}
 				break;
 			case GREEN:
-				if (getObjColour(1) == Col.UNKNOWN) {
+				if (getObjColour(1) == Col.UNKCOL) {
 					setObject(Obj.FLTLAT);
 					if (getRegion() == Reg.B) {
@@ -1343,5 +1344,5 @@
 				} else {
 					setObject(Obj.FLTSPP);
-					setCategory(Cat.NONE);
+					setCategory(Cat.NOCAT);
 				}
 				break;
@@ -1356,5 +1357,5 @@
 				} else {
 					setObject(Obj.FLTSPP);
-					setCategory(Cat.NONE);
+					setCategory(Cat.NOCAT);
 				}
 				break;
@@ -1362,5 +1363,5 @@
 				if (getObjColour(1) == Col.RED) {
 					setObject(Obj.FLTISD);
-					setCategory(Cat.NONE);
+					setCategory(Cat.NOCAT);
 				} else if (getObjColour(1) == Col.YELLOW) {
 					setObject(Obj.FLTCAR);
@@ -1372,9 +1373,9 @@
 				} else {
 					setObject(Obj.FLTSPP);
-					setCategory(Cat.NONE);
+					setCategory(Cat.NOCAT);
 				}
 				break;
 			default:
-				setCategory(Cat.NONE);
+				setCategory(Cat.NOCAT);
 			}
 		}
@@ -1437,5 +1438,5 @@
 		if (keys.containsKey("seamark:topmark:shape")) {
 			str = keys.get("seamark:topmark:shape");
-			setTopmark(Top.NONE);
+			setTopmark(Top.NOTOP);
 			for (Top top : TopSTR.keySet()) {
 				if (TopSTR.get(top).equals(str)) {
@@ -1446,5 +1447,5 @@
 		if (keys.containsKey("seamark:topmark:colour")) {
 			str = keys.get("seamark:topmark:colour");
-			setTopColour(Col.UNKNOWN);
+			setTopColour(Col.UNKCOL);
 			for (Col col : ColSTR.keySet()) {
 				if (ColSTR.get(col).equals(str)) {
@@ -1455,5 +1456,5 @@
 		if (keys.containsKey("seamark:topmark:colour_pattern")) {
 			str = keys.get("seamark:topmark:colour_pattern");
-			setTopPattern(Pat.NONE);
+			setTopPattern(Pat.NOPAT);
 			for (Pat pat : PatSTR.keySet()) {
 				if (PatSTR.get(pat).equals(str)) {
@@ -1533,9 +1534,9 @@
 
 		if (keys.containsKey("seamark:fog_signal")) {
-			setFogSound(Fog.UNKNOWN);
+			setFogSound(Fog.FOGSIG);
 		}
 		if (keys.containsKey("seamark:fog_signal:category")) {
 			str = keys.get("seamark:fog_signal:category");
-			setFogSound(Fog.NONE);
+			setFogSound(Fog.NOFOG);
 			for (Fog fog : FogSTR.keySet()) {
 				if (FogSTR.get(fog).equals(str)) {
@@ -1562,5 +1563,5 @@
 		if (keys.containsKey("seamark:radar_transponder:category")) {
 			str = keys.get("seamark:radar_transponder:category");
-			setRadar(Rtb.NONE);
+			setRadar(Rtb.NORTB);
 			for (Rtb rtb : RtbSTR.keySet()) {
 				if (RtbSTR.get(rtb).equals(str)) {
@@ -1602,5 +1603,5 @@
 		if (keys.containsKey("seamark:status")) {
 			str = keys.get("seamark:status");
-			setStatus(Sts.UNKNOWN);
+			setStatus(Sts.UNKSTS);
 			for (Sts sts : StsSTR.keySet()) {
 				if (StsSTR.get(sts).equals(str)) {
@@ -1611,5 +1612,5 @@
 		if (keys.containsKey("seamark:construction")) {
 			str = keys.get("seamark:construction");
-			setConstr(Cns.UNKNOWN);
+			setConstr(Cns.UNKCNS);
 			for (Cns cns : CnsSTR.keySet()) {
 				if (CnsSTR.get(cns).equals(str)) {
@@ -1620,5 +1621,5 @@
 		if (keys.containsKey("seamark:conspicuity")) {
 			str = keys.get("seamark:conspicuity");
-			setConsp(Con.UNKNOWN);
+			setConsp(Con.UNKCON);
 			for (Con con : ConSTR.keySet()) {
 				if (ConSTR.get(con).equals(str)) {
@@ -1629,5 +1630,5 @@
 		if (keys.containsKey("seamark:reflectivity")) {
 			str = keys.get("seamark:reflectivity");
-			setRefl(Con.UNKNOWN);
+			setRefl(Con.UNKCON);
 			for (Con con : ConSTR.keySet()) {
 				if (ConSTR.get(con).equals(str)) {
@@ -1666,5 +1667,5 @@
 		String lblStr;
 		String imgStr = "/images/";
-		if (getShape() != Shp.UNKNOWN) {
+		if (getShape() != Shp.UNKSHP) {
 			switch (getShape()) {
 			case TOWER:
@@ -1681,8 +1682,8 @@
 				imgStr += "Can";
 				break;
-			case CONE:
+			case CONI:
 				imgStr += "Cone";
 				break;
-			case SPHERE:
+			case SPHERI:
 				imgStr += "Sphere";
 				break;
@@ -1791,5 +1792,5 @@
 				}
 			}
-		} else if (getObject() != Obj.UNKNOWN) {
+		} else if (getObject() != Obj.UNKOBJ) {
 			switch (getObject()) {
 			case LNDMRK:
@@ -1859,5 +1860,5 @@
 		}
 
-		if (getTopmark() != Top.NONE) {
+		if (getTopmark() != Top.NOTOP) {
 			imgStr = "/images/Top_";
 			switch (getTopmark()) {
@@ -1924,6 +1925,6 @@
 			switch (getShape()) {
 			case CAN:
-			case CONE:
-			case SPHERE:
+			case CONI:
+			case SPHERI:
 			case BARREL:
 				imgStr += "_Buoy_Small";
@@ -1972,5 +1973,5 @@
 	    g2.setStroke(new BasicStroke(6.0f));
 	    if (!((String)getLightAtt(Att.BEG, i)).isEmpty() && !((String)getLightAtt(Att.END, i)).isEmpty()) {
-				if (getLightAtt(Att.COL, i) != Col.UNKNOWN) {
+				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));
@@ -1979,5 +1980,5 @@
 					g2.draw(new Arc2D.Double(12, 15, 140, 140, a0, da, Arc2D.OPEN));
 				}
-				if (getLightAtt(Att.ALT, i) != Col.UNKNOWN) {
+				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));
@@ -1989,5 +1990,5 @@
 		}
     g2.setPaint(Color.BLACK);
-		if ((getLightAtt(Att.COL, 0) != Col.UNKNOWN) || !(((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")) {
@@ -2078,5 +2079,5 @@
 			if (!tmp.isEmpty())
 				c = tmp + c;
-			if (getLightAtt(Att.LIT, 0) != Lit.UNKNOWN) {
+			if (getLightAtt(Att.LIT, 0) != Lit.UNKLIT) {
 				switch ((Lit)getLightAtt(Att.LIT, 0)) {
 				case VERT:
@@ -2094,8 +2095,8 @@
 		}
 
-		if (getFogSound() != Fog.NONE) {
+		if (getFogSound() != Fog.NOFOG) {
 			g2.drawImage(new ImageIcon(getClass().getResource("/images/Fog_Signal.png")).getImage(), 7, -15, null);
 			String str = "";
-			if (getFogSound() != Fog.UNKNOWN)
+			if (getFogSound() != Fog.FOGSIG)
 				switch (getFogSound()) {
 				case HORN:
@@ -2130,5 +2131,5 @@
 		}
 
-		if (RaType != Rtb.NONE) {
+		if (RaType != Rtb.NORTB) {
 			if (getRadar() == Rtb.REFLECTOR) {
 				g2.drawImage(new ImageIcon(getClass().getResource("/images/Radar_Reflector_355.png")).getImage(), 7, -15, null);
@@ -2153,5 +2154,5 @@
 	public void saveSign(Node node) {
 		
-		if (getObject() != Obj.UNKNOWN) {
+		if (getObject() != Obj.UNKOBJ) {
 
 			Main.pref.put("smedplugin.IALA", getRegion() == Reg.C ? "C" : (getRegion() == Reg.B ? "B" : "A"));
@@ -2180,5 +2181,5 @@
 				}
 
-				if ((getObjColour(0) != Col.UNKNOWN) && getShape() != Shp.PERCH) {
+				if ((getObjColour(0) != Col.UNKCOL) && getShape() != Shp.PERCH) {
 					String str = ColSTR.get(getObjColour(0));
 					for (int i = 1; bodyColour.size() > i; i++) {
@@ -2188,5 +2189,5 @@
 				}
 
-				if (getObjPattern() != Pat.NONE) {
+				if (getObjPattern() != Pat.NOPAT) {
 					Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:" + objStr + ":colour_pattern", PatSTR.get(getObjPattern())));
 				}
@@ -2213,9 +2214,9 @@
 				}
 			}
-			if (getTopmark() != Top.NONE) {
+			if (getTopmark() != Top.NOTOP) {
 				Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:topmark:shape", TopSTR.get(getTopmark())));
-				if (getTopPattern() != Pat.NONE)
+				if (getTopPattern() != Pat.NOPAT)
 					Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:topmark:colour_pattern", PatSTR.get(getTopPattern())));
-				if (getTopColour(0) != Col.UNKNOWN) {
+				if (getTopColour(0) != Col.UNKCOL) {
 					String str = ColSTR.get(getTopColour(0));
 					for (int i = 1; topmarkColour.size() > i; i++) {
@@ -2228,6 +2229,6 @@
 			for (int i = 0; i < sectors.size(); i++) {
 				String secStr = (i == 0) ? "" : (":" + Integer.toString(i));
-				if (sectors.get(i)[0] != Col.UNKNOWN)
-					if ((sectors.get(i)[15] != Col.UNKNOWN) && ((String)sectors.get(i)[1]).contains("Al"))
+				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])));
@@ -2242,5 +2243,5 @@
 				if (!((String) sectors.get(i)[4]).isEmpty())
 					Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":period", (String) sectors.get(i)[4]));
-				if (sectors.get(i)[5] != Lit.UNKNOWN)
+				if (sectors.get(i)[5] != Lit.UNKLIT)
 					Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":category", LitSTR.get(sectors.get(i)[5])));
 				if (!((String) sectors.get(i)[6]).isEmpty())
@@ -2254,7 +2255,7 @@
 				if (!((String) sectors.get(i)[10]).isEmpty())
 					Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":range", (String) sectors.get(i)[10]));
-				if (sectors.get(i)[11] != Vis.UNKNOWN)
+				if (sectors.get(i)[11] != Vis.UNKVIS)
 					Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":visibility", VisSTR.get(sectors.get(i)[11])));
-				if (sectors.get(i)[12] != Exh.UNKNOWN)
+				if (sectors.get(i)[12] != Exh.UNKEXH)
 					Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":exhibition", ExhSTR.get(sectors.get(i)[12])));
 				if (!((String) sectors.get(i)[13]).isEmpty())
@@ -2264,6 +2265,6 @@
 			}
 
-			if (getFogSound() != Fog.NONE) {
-				if (getFogSound() == Fog.UNKNOWN)
+			if (getFogSound() != Fog.NOFOG) {
+				if (getFogSound() == Fog.FOGSIG)
 					Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:fog_signal", "yes"));
 				else
@@ -2283,5 +2284,5 @@
 			}
 
-			if (RaType != Rtb.NONE) {
+			if (RaType != Rtb.NORTB) {
 				if (getRadar() == Rtb.REFLECTOR) {
 					Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:radar_reflector", "yes"));
@@ -2313,14 +2314,14 @@
 				Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:source", getSource()));
 			}
-			if (getStatus() != Sts.UNKNOWN) {
+			if (getStatus() != Sts.UNKSTS) {
 				Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:status", StsSTR.get(getStatus())));
 			}
-			if (getConstr() != Cns.UNKNOWN) {
+			if (getConstr() != Cns.UNKCNS) {
 				Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:construction", CnsSTR.get(getConstr())));
 			}
-			if (getConsp() != Con.UNKNOWN) {
+			if (getConsp() != Con.UNKCON) {
 				Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:conspicuity", ConSTR.get(getConsp())));
 			}
-			if (getRefl() != Con.UNKNOWN) {
+			if (getRefl() != Con.UNKCON) {
 				Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:reflectivity", ConSTR.get(getRefl())));
 			}
