Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/dialogs/OSeaMAction.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/dialogs/OSeaMAction.java	(revision 24778)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/dialogs/OSeaMAction.java	(revision 24779)
@@ -102,5 +102,5 @@
 		return panelMain;
 	}
-/*
+
 	private void parseSeaMark() {
 
@@ -112,5 +112,5 @@
 
 		ds = Main.main.getCurrentDataSet();
-
+/*
 		if (ds == null) {
 			mark = new MarkUkn(this, Messages.getString("SmpDialogAction.26"));
@@ -268,5 +268,5 @@
 		mark.paintSign();
 		return;
-	}
-*/
+*/	}
+
 }
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkCard.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkCard.java	(revision 24779)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkCard.java	(revision 24779)
@@ -0,0 +1,410 @@
+package oseam.seamarks;
+
+import java.util.Map;
+
+import javax.swing.ImageIcon;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.ChangePropertyCommand;
+import org.openstreetmap.josm.data.osm.Node;
+
+import oseam.Messages;
+import oseam.dialogs.OSeaMAction;
+import oseam.seamarks.SeaMark;
+
+public class MarkCard extends SeaMark {
+
+	public MarkCard(OSeaMAction dia, Node node) {
+		super(dia);
+
+		String str;
+		Map<String, String> keys;
+		keys = node.getKeys();
+		setNode(node);
+/*
+		dlg.cbM01TypeOfMark.setSelectedIndex(CARDINAL);
+
+		dlg.cbM01CatOfMark.removeAllItems();
+		dlg.cbM01CatOfMark.addItem(Messages.getString("SmpDialogAction.157")); //$NON-NLS-1$
+		dlg.cbM01CatOfMark.addItem(Messages.getString("SmpDialogAction.158")); //$NON-NLS-1$
+		dlg.cbM01CatOfMark.addItem(Messages.getString("SmpDialogAction.159")); //$NON-NLS-1$
+		dlg.cbM01CatOfMark.addItem(Messages.getString("SmpDialogAction.160")); //$NON-NLS-1$
+		dlg.cbM01CatOfMark.addItem(Messages.getString("SmpDialogAction.161")); //$NON-NLS-1$
+
+		dlg.cbM01CatOfMark.setEnabled(true);
+		dlg.cbM01CatOfMark.setVisible(true);
+		dlg.lM01CatOfMark.setVisible(true);
+
+		dlg.cbM01StyleOfMark.removeAllItems();
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("SmpDialogAction.212")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.01")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.04")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.05")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.06")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.07")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.setVisible(true);
+		dlg.lM01StyleOfMark.setVisible(true);
+*/
+		setRegion(Main.pref.get("tomsplugin.IALA").equals("B")); //$NON-NLS-1$ //$NON-NLS-2$
+		if (keys.containsKey("name")) //$NON-NLS-1$
+			setName(keys.get("name")); //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:name")); //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:buoy_cardinal:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:buoy_cardinal:name")); //$NON-NLS-1$
+		else if (keys.containsKey("seamark:beacon_cardinal:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:beacon_cardinal:name")); //$NON-NLS-1$
+		else if (keys.containsKey("seamark:light_float:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:light_float:name")); //$NON-NLS-1$
+
+		String cat = ""; //$NON-NLS-1$
+		String col = ""; //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:buoy_cardinal:category")) //$NON-NLS-1$
+			cat = keys.get("seamark:buoy_cardinal:category"); //$NON-NLS-1$
+		else if (keys.containsKey("seamark:beacon_cardinal:category")) //$NON-NLS-1$
+			cat = keys.get("seamark:beacon_cardinal:category"); //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:buoy_cardinal:colour")) //$NON-NLS-1$
+			col = keys.get("seamark:buoy_cardinal:colour"); //$NON-NLS-1$
+		else if (keys.containsKey("seamark:beacon_cardinal:colour")) //$NON-NLS-1$
+			col = keys.get("seamark:beacon_cardinal:colour"); //$NON-NLS-1$
+		else if (keys.containsKey("seamark:light_float:colour")) //$NON-NLS-1$
+			col = keys.get("seamark:light_float:colour"); //$NON-NLS-1$
+
+		if (cat.isEmpty()) { //$NON-NLS-1$
+			if (col.equals("black;yellow")) { //$NON-NLS-1$
+				setMarkIndex(CARD_NORTH);
+				setColour(BLACK_YELLOW);
+			} else if (col.equals("black;yellow;black")) { //$NON-NLS-1$
+				setMarkIndex(CARD_EAST);
+				setColour(BLACK_YELLOW_BLACK);
+			} else if (col.equals("yellow;black")) { //$NON-NLS-1$
+				setMarkIndex(CARD_SOUTH);
+				setColour(YELLOW_BLACK);
+			} else if (col.equals("yellow;black;yellow")) { //$NON-NLS-1$
+				setMarkIndex(CARD_WEST);
+				setColour(YELLOW_BLACK_YELLOW);
+			}
+		} else if (cat.equals("north")) { //$NON-NLS-1$
+			setMarkIndex(CARD_NORTH);
+			setColour(BLACK_YELLOW);
+		} else if (cat.equals("east")) { //$NON-NLS-1$
+			setMarkIndex(CARD_EAST);
+			setColour(BLACK_YELLOW_BLACK);
+		} else if (cat.equals("south")) { //$NON-NLS-1$
+			setMarkIndex(CARD_SOUTH);
+			setColour(YELLOW_BLACK);
+		} else if (cat.equals("west")) { //$NON-NLS-1$
+			setMarkIndex(CARD_WEST);
+			setColour(YELLOW_BLACK_YELLOW);
+		}
+
+		if (keys.containsKey("seamark:buoy_cardinal:shape")) { //$NON-NLS-1$
+			str = keys.get("seamark:buoy_cardinal:shape"); //$NON-NLS-1$
+
+			if (str.equals("pillar")) //$NON-NLS-1$
+				setStyleIndex(CARD_PILLAR);
+			else if (str.equals("spar")) //$NON-NLS-1$
+				setStyleIndex(CARD_SPAR);
+		} else if (keys.containsKey("seamark:beacon_cardinal:colour")) { //$NON-NLS-1$
+			if (keys.containsKey("seamark:beacon_cardinal:shape")) { //$NON-NLS-1$
+				str = keys.get("seamark:beacon_cardinal:shape"); //$NON-NLS-1$
+
+				if (str.equals("tower")) //$NON-NLS-1$
+					setStyleIndex(CARD_TOWER);
+				else
+					setStyleIndex(CARD_BEACON);
+			} else
+				setStyleIndex(CARD_BEACON);
+		} else if (keys.containsKey("seamark:type") //$NON-NLS-1$
+				&& (keys.get("seamark:type").equals("light_float"))) { //$NON-NLS-1$ //$NON-NLS-2$
+			setStyleIndex(CARD_FLOAT);
+		}
+
+//		if (getStyleIndex() >= dlg.cbM01StyleOfMark.getItemCount())
+//			setStyleIndex(0);
+
+//		refreshLights();
+//		parseLights(keys);
+//		parseFogRadar(keys);
+
+//		dlg.cbM01CatOfMark.setSelectedIndex(getMarkIndex());
+//		dlg.cbM01StyleOfMark.setSelectedIndex(getStyleIndex());
+//		dlg.tfM01Name.setText(getName());
+//		dlg.cM01TopMark.setSelected(hasTopMark());
+	}
+/*
+		public void refreshLights() {
+		dlg.cbM01Kennung.removeAllItems();
+		dlg.cbM01Kennung.addItem(Messages.getString("SmpDialogAction.212")); //$NON-NLS-1$
+		dlg.cbM01Kennung.setSelectedIndex(0);
+
+		switch (getMarkIndex()) {
+		case CARD_NORTH:
+			dlg.cbM01Kennung.addItem("Q"); //$NON-NLS-1$
+			dlg.cbM01Kennung.addItem("VQ"); //$NON-NLS-1$
+			break;
+		case CARD_EAST:
+			dlg.cbM01Kennung.addItem("Q(3)"); //$NON-NLS-1$
+			dlg.cbM01Kennung.addItem("VQ(3)"); //$NON-NLS-1$
+			break;
+		case CARD_SOUTH:
+			dlg.cbM01Kennung.addItem("Q(6)+LFl"); //$NON-NLS-1$
+			dlg.cbM01Kennung.addItem("VQ(6)+LFl"); //$NON-NLS-1$
+			break;
+		case CARD_WEST:
+			dlg.cbM01Kennung.addItem("Q(9)"); //$NON-NLS-1$
+			dlg.cbM01Kennung.addItem("VQ(9)"); //$NON-NLS-1$
+			break;
+		}
+	}
+
+	public boolean isValid() {
+		return (getMarkIndex() > 0) && (getStyleIndex() > 0);
+	}
+*/
+	public void setLightColour() {
+		super.setLightColour("W"); //$NON-NLS-1$
+	}
+
+	public void paintSign() {
+/*		if (dlg.paintlock)
+			return;
+		super.paintSign();
+
+		dlg.sM01StatusBar.setText(getErrMsg());
+
+		if (isValid()) {
+			dlg.tfM01Name.setEnabled(true);
+			dlg.tfM01Name.setText(getName());
+			dlg.cM01TopMark.setSelected(true);
+			dlg.cM01TopMark.setVisible(true);
+			dlg.cM01TopMark.setEnabled(false);
+			dlg.cM01Radar.setVisible(true);
+			dlg.cM01Racon.setVisible(true);
+			dlg.cM01Fog.setVisible(true);
+			dlg.cM01Fired.setEnabled(true);
+			dlg.cM01Fired.setVisible(true);
+			dlg.tfM01Group.setVisible(false);
+			dlg.lM01Group.setVisible(false);
+			if (!isSectored()) {
+				dlg.cbM01Colour.setVisible(false);
+				dlg.lM01Colour.setVisible(false);
+			}
+			dlg.rbM01Fired1.setVisible(false);
+			dlg.rbM01FiredN.setVisible(false);
+			dlg.lM01Height.setVisible(false);
+			dlg.tfM01Height.setVisible(false);
+			dlg.lM01Range.setVisible(false);
+			dlg.tfM01Range.setVisible(false);
+
+			if (isFired()) {
+				switch (getStyleIndex()) {
+				case CARD_BEACON:
+				case CARD_TOWER:
+				case CARD_FLOAT:
+					dlg.lM01Height.setVisible(true);
+					dlg.tfM01Height.setVisible(true);
+					dlg.lM01Range.setVisible(true);
+					dlg.tfM01Range.setVisible(true);
+					break;
+				default:
+				}
+			}
+
+			String image = "/images/Cardinal"; //$NON-NLS-1$
+			switch (getStyleIndex()) {
+			case SeaMark.CARD_PILLAR:
+				image += "_Pillar"; //$NON-NLS-1$
+				break;
+			case SeaMark.CARD_SPAR:
+				image += "_Spar"; //$NON-NLS-1$
+				break;
+			case SeaMark.CARD_BEACON:
+				image += "_Beacon"; //$NON-NLS-1$
+				break;
+			case SeaMark.CARD_TOWER:
+				image += "_Tower"; //$NON-NLS-1$
+				break;
+			case SeaMark.CARD_FLOAT:
+				image += "_Float"; //$NON-NLS-1$
+				break;
+			default:
+				return;
+			}
+
+			switch (getMarkIndex()) {
+			case CARD_NORTH:
+				image += "_North"; //$NON-NLS-1$
+				break;
+			case CARD_EAST:
+				image += "_East"; //$NON-NLS-1$
+				break;
+			case CARD_SOUTH:
+				image += "_South"; //$NON-NLS-1$
+				break;
+			case CARD_WEST:
+				image += "_West"; //$NON-NLS-1$
+				break;
+			default:
+				return;
+			}
+
+			if (!image.equals("/images/Cardinal")) { //$NON-NLS-1$
+				image += ".png"; //$NON-NLS-1$
+				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(image)));
+
+			} else
+				dlg.lM01Icon.setIcon(null);
+		}
+*/	}
+
+	public void saveSign() {
+/*		Node node = getNode();
+		if (node == null) {
+			return;
+		}
+
+		String shape = ""; //$NON-NLS-1$
+
+		switch (getStyleIndex()) {
+		case CARD_PILLAR:
+			super.saveSign("buoy_cardinal"); //$NON-NLS-1$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_cardinal:shape", "pillar")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case CARD_SPAR:
+			super.saveSign("buoy_cardinal"); //$NON-NLS-1$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_cardinal:shape", "spar")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case CARD_BEACON:
+			super.saveSign("beacon_cardinal"); //$NON-NLS-1$
+			break;
+		case CARD_TOWER:
+			super.saveSign("beacon_cardinal"); //$NON-NLS-1$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:beacon_cardinal:shape", "tower")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case CARD_FLOAT:
+			super.saveSign("light_float"); //$NON-NLS-1$
+			break;
+		default:
+		}
+
+		switch (getStyleIndex()) {
+		case CARD_PILLAR:
+		case CARD_SPAR:
+			switch (getMarkIndex()) {
+			case SeaMark.CARD_NORTH:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_cardinal:category", "north")); //$NON-NLS-1$ //$NON-NLS-2$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_cardinal:colour", "black;yellow")); //$NON-NLS-1$ //$NON-NLS-2$
+				shape = "2 cones up"; //$NON-NLS-1$
+				break;
+
+			case SeaMark.CARD_EAST:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_cardinal:category", "east")); //$NON-NLS-1$ //$NON-NLS-2$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_cardinal:colour", "black;yellow;black")); //$NON-NLS-1$ //$NON-NLS-2$
+				shape = "2 cones base together"; //$NON-NLS-1$
+				break;
+
+			case SeaMark.CARD_SOUTH:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_cardinal:category", "south")); //$NON-NLS-1$ //$NON-NLS-2$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_cardinal:colour", "yellow;black")); //$NON-NLS-1$ //$NON-NLS-2$
+				shape = "2 cones down"; //$NON-NLS-1$
+				break;
+
+			case SeaMark.CARD_WEST:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_cardinal:category", "west")); //$NON-NLS-1$ //$NON-NLS-2$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_cardinal:colour", "yellow;black;yellow")); //$NON-NLS-1$ //$NON-NLS-2$
+				shape = "2 cones point together"; //$NON-NLS-1$
+				break;
+			}
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_cardinal:colour_pattern", "horizontal stripes")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case CARD_BEACON:
+		case CARD_TOWER:
+			switch (getMarkIndex()) {
+			case SeaMark.CARD_NORTH:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_cardinal:category", "north")); //$NON-NLS-1$ //$NON-NLS-2$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_cardinal:colour", "black;yellow")); //$NON-NLS-1$ //$NON-NLS-2$
+				shape = "2 cones up"; //$NON-NLS-1$
+				break;
+
+			case SeaMark.CARD_EAST:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_cardinal:category", "east")); //$NON-NLS-1$ //$NON-NLS-2$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_cardinal:colour", "black;yellow;black")); //$NON-NLS-1$ //$NON-NLS-2$
+				shape = "2 cones base together"; //$NON-NLS-1$
+				break;
+
+			case SeaMark.CARD_SOUTH:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_cardinal:category", "south")); //$NON-NLS-1$ //$NON-NLS-2$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_cardinal:colour", "yellow;black")); //$NON-NLS-1$ //$NON-NLS-2$
+				shape = "2 cones down"; //$NON-NLS-1$
+				break;
+
+			case SeaMark.CARD_WEST:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_cardinal:category", "west")); //$NON-NLS-1$ //$NON-NLS-2$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_cardinal:colour", "yellow;black;yellow")); //$NON-NLS-1$ //$NON-NLS-2$
+				shape = "2 cones point together"; //$NON-NLS-1$
+				break;
+			}
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:beacon_cardinal:colour_pattern", "horizontal stripes")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case CARD_FLOAT:
+			switch (getMarkIndex()) {
+			case SeaMark.CARD_NORTH:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:light_float:colour", "black;yellow")); //$NON-NLS-1$ //$NON-NLS-2$
+				shape = "2 cones up"; //$NON-NLS-1$
+				break;
+
+			case SeaMark.CARD_EAST:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:light_float:colour", "black;yellow;black")); //$NON-NLS-1$ //$NON-NLS-2$
+				shape = "2 cones base together"; //$NON-NLS-1$
+				break;
+
+			case SeaMark.CARD_SOUTH:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:light_float:colour", "yellow;black")); //$NON-NLS-1$ //$NON-NLS-2$
+				shape = "2 cones down"; //$NON-NLS-1$
+				break;
+
+			case SeaMark.CARD_WEST:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:light_float:colour", "yellow;black;yellow")); //$NON-NLS-1$ //$NON-NLS-2$
+				shape = "2 cones point together"; //$NON-NLS-1$
+				break;
+			}
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:light_float:colour_pattern", "horizontal stripes")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		}
+		saveTopMarkData(shape, "black"); //$NON-NLS-1$
+		saveLightData(); //$NON-NLS-1$
+		saveRadarFogData();
+*/	}
+	
+}
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkIsol.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkIsol.java	(revision 24779)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkIsol.java	(revision 24779)
@@ -0,0 +1,244 @@
+package oseam.seamarks;
+
+import java.util.Map;
+
+import javax.swing.ImageIcon;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.ChangePropertyCommand;
+import org.openstreetmap.josm.data.osm.Node;
+
+import oseam.Messages;
+import oseam.dialogs.OSeaMAction;
+import oseam.seamarks.SeaMark;
+
+public class MarkIsol extends SeaMark {
+	public MarkIsol(OSeaMAction dia, Node node) {
+		super(dia);
+
+		String str;
+		Map<String, String> keys;
+		keys = node.getKeys();
+		setNode(node);
+/*
+		dlg.cbM01TypeOfMark.setSelectedIndex(ISOLATED_DANGER);
+
+		dlg.cbM01StyleOfMark.removeAllItems();
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("SmpDialogAction.212")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.01")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.04")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.05")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.06")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.07")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.setVisible(true);
+		dlg.lM01StyleOfMark.setVisible(true);
+
+		setBuoyIndex(ISOLATED_DANGER);
+		setColour(SeaMark.BLACK_RED_BLACK);
+		setLightColour("W"); //$NON-NLS-1$
+		setTopMark(true);
+		setRegion(Main.pref.get("tomsplugin.IALA").equals("B")); //$NON-NLS-1$ //$NON-NLS-2$
+
+		if (keys.containsKey("name")) //$NON-NLS-1$
+			setName(keys.get("name")); //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:name")); //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:buoy_isolated_danger:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:buoy_isolated_danger:name")); //$NON-NLS-1$
+		else if (keys.containsKey("seamark:beacon_isolated_danger:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:beacon_isolated_danger:name")); //$NON-NLS-1$
+		else if (keys.containsKey("seamark:light_float:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:light_float:name")); //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:buoy_isolated_danger:shape")) { //$NON-NLS-1$
+			str = keys.get("seamark:buoy_isolated_danger:shape"); //$NON-NLS-1$
+
+			if (str.equals("pillar")) //$NON-NLS-1$
+				setStyleIndex(ISOL_PILLAR);
+			else if (str.equals("spar")) //$NON-NLS-1$
+				setStyleIndex(ISOL_SPAR);
+		} else if (keys.containsKey("seamark:beacon_isolated_danger:shape")) { //$NON-NLS-1$
+				str = keys.get("seamark:beacon_isolated_danger:shape"); //$NON-NLS-1$
+
+				if (str.equals("tower")) //$NON-NLS-1$
+					setStyleIndex(ISOL_TOWER);
+				else 
+					setStyleIndex(ISOL_BEACON);
+		} else if (keys.containsKey("seamark:type") //$NON-NLS-1$
+				&& (keys.get("seamark:type").equals("light_float"))) { //$NON-NLS-1$ //$NON-NLS-2$
+			setStyleIndex(ISOL_FLOAT);
+		}
+
+		if (getStyleIndex() >= dlg.cbM01StyleOfMark.getItemCount())
+			setStyleIndex(0);
+		dlg.cbM01StyleOfMark.setSelectedIndex(getStyleIndex());
+
+		if (keys.containsKey("seamark:topmark:shape") //$NON-NLS-1$
+				|| keys.containsKey("seamark:topmark:colour")) { //$NON-NLS-1$
+			setTopMark(true);
+		}
+		
+		refreshLights();
+		parseLights(keys);
+		parseFogRadar(keys);
+
+		dlg.cbM01StyleOfMark.setSelectedIndex(getStyleIndex());
+		dlg.tfM01Name.setText(getName());
+		dlg.cM01TopMark.setSelected(hasTopMark());
+*/	}
+/*
+	public void refreshLights() {
+		dlg.cbM01Kennung.removeAllItems();
+		dlg.cbM01Kennung.addItem(Messages.getString("SmpDialogAction.212")); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("Fl(2)"); //$NON-NLS-1$
+		dlg.cbM01Kennung.setSelectedIndex(0);
+	}
+
+	public boolean isValid() {
+		return (getBuoyIndex() > 0) && (getStyleIndex() > 0);
+	}
+
+	public void setLightColour() {
+		super.setLightColour("W"); //$NON-NLS-1$
+	}
+*/
+	public void paintSign() {
+/*		if (dlg.paintlock)
+			return;
+
+		super.paintSign();
+
+		dlg.sM01StatusBar.setText(getErrMsg());
+
+		if (isValid()) {
+			dlg.tfM01Name.setEnabled(true);
+			dlg.tfM01Name.setText(getName());
+			dlg.cM01TopMark.setVisible(true);
+			dlg.cM01Radar.setVisible(true);
+			dlg.cM01Racon.setVisible(true);
+			dlg.cM01Fog.setVisible(true);
+			dlg.cM01Fired.setVisible(true);
+			if (!isSectored()) {
+				dlg.cbM01Colour.setVisible(false);
+				dlg.lM01Colour.setVisible(false);
+			}
+			dlg.rbM01Fired1.setVisible(false);
+			dlg.rbM01FiredN.setVisible(false);
+			dlg.lM01Height.setVisible(false);
+			dlg.tfM01Height.setVisible(false);
+			dlg.lM01Range.setVisible(false);
+			dlg.tfM01Range.setVisible(false);
+
+			if (isFired()) {
+				switch (getStyleIndex()) {
+				case ISOL_BEACON:
+				case ISOL_TOWER:
+					dlg.lM01Height.setVisible(true);
+					dlg.tfM01Height.setVisible(true);
+					dlg.lM01Range.setVisible(true);
+					dlg.tfM01Range.setVisible(true);
+					break;
+				default:
+				}
+			}
+
+			String image = "/images/Cardinal"; //$NON-NLS-1$
+
+			switch (getStyleIndex()) {
+			case ISOL_PILLAR:
+				image += "_Pillar_Single"; //$NON-NLS-1$
+				break;
+			case ISOL_SPAR:
+				image += "_Spar_Single"; //$NON-NLS-1$
+				break;
+			case ISOL_BEACON:
+				image += "_Beacon_Single"; //$NON-NLS-1$
+				break;
+			case ISOL_TOWER:
+				image += "_Tower_Single"; //$NON-NLS-1$
+				break;
+			case ISOL_FLOAT:
+				image += "_Float_Single"; //$NON-NLS-1$
+				break;
+			default:
+			}
+
+			if (!image.equals("/images/Cardinal")) { //$NON-NLS-1$
+				image += ".png"; //$NON-NLS-1$
+				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(image)));
+			} else
+				dlg.lM01Icon.setIcon(null);
+		} else {
+			dlg.tfM01Name.setEnabled(false);
+			dlg.tfM01Name.setText(""); //$NON-NLS-1$
+			dlg.cM01TopMark.setVisible(false);
+			dlg.cM01Radar.setVisible(false);
+			dlg.cM01Racon.setVisible(false);
+			dlg.cM01Fog.setVisible(false);
+			dlg.cM01Fired.setVisible(false);
+		}
+*/	}
+
+	public void saveSign() {
+/*		Node node = getNode();
+
+		if (node == null) {
+			return;
+		}
+
+		switch (getStyleIndex()) {
+		case ISOL_PILLAR:
+			super.saveSign("buoy_isolated_danger"); //$NON-NLS-1$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_isolated_danger:shape", "pillar")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case ISOL_SPAR:
+			super.saveSign("buoy_isolated_danger"); //$NON-NLS-1$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_isolated_danger:shape", "spar")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case ISOL_BEACON:
+			super.saveSign("beacon_isolated_danger"); //$NON-NLS-1$
+			break;
+		case ISOL_TOWER:
+			super.saveSign("beacon_isolated_danger"); //$NON-NLS-1$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:beacon_isolated_danger:shape", "tower")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case ISOL_FLOAT:
+			super.saveSign("light_float"); //$NON-NLS-1$
+			break;
+		default:
+		}
+
+		switch (getStyleIndex()) {
+		case ISOL_PILLAR:
+		case ISOL_SPAR:
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_isolated_danger:colour_pattern", "horizontal stripes")); //$NON-NLS-1$ //$NON-NLS-2$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_isolated_danger:colour", "black;red;black")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case ISOL_BEACON:
+		case ISOL_TOWER:
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:beacon_isolated_danger:colour_pattern", //$NON-NLS-1$
+					"horizontal stripes")); //$NON-NLS-1$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:beacon_isolated_danger:colour", "black;red;black")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case ISOL_FLOAT:
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:light_float:colour_pattern", "horizontal stripes")); //$NON-NLS-1$ //$NON-NLS-2$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:light_float:colour", "black;red;black")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		}
+
+		saveTopMarkData("2 spheres", "black"); //$NON-NLS-1$ //$NON-NLS-2$
+		saveLightData(); //$NON-NLS-1$
+		saveRadarFogData();
+*/	}
+}
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkLat.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkLat.java	(revision 24779)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkLat.java	(revision 24779)
@@ -0,0 +1,1069 @@
+package oseam.seamarks;
+
+import java.util.Map;
+
+import javax.swing.ImageIcon;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.ChangePropertyCommand;
+import org.openstreetmap.josm.data.osm.Node;
+
+import oseam.Messages;
+import oseam.dialogs.OSeaMAction;
+
+public class MarkLat extends SeaMark {
+	public MarkLat(OSeaMAction dia, Node node) {
+		super(dia);
+
+		String str;
+		Map<String, String> keys;
+		keys = node.getKeys();
+		setNode(node);
+/*
+		dlg.cbM01TypeOfMark.setSelectedIndex(LATERAL);
+
+		dlg.cbM01CatOfMark.removeAllItems();
+		dlg.cbM01CatOfMark.addItem(Messages.getString("SmpDialogAction.152")); //$NON-NLS-1$
+		dlg.cbM01CatOfMark.addItem(Messages.getString("SmpDialogAction.153")); //$NON-NLS-1$
+		dlg.cbM01CatOfMark.addItem(Messages.getString("SmpDialogAction.154")); //$NON-NLS-1$
+		dlg.cbM01CatOfMark.addItem(Messages.getString("SmpDialogAction.155")); //$NON-NLS-1$
+		dlg.cbM01CatOfMark.addItem(Messages.getString("SmpDialogAction.156")); //$NON-NLS-1$
+
+		dlg.rbM01RegionA.setEnabled(true);
+		dlg.rbM01RegionB.setEnabled(true);
+		dlg.cbM01CatOfMark.setEnabled(true);
+		dlg.cbM01CatOfMark.setVisible(true);
+		dlg.lM01CatOfMark.setVisible(true);
+
+		dlg.cbM01StyleOfMark.removeAllItems();
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("SmpDialogAction.212")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.01")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.04")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.05")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.06")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.07")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.setEnabled(true);
+
+		if (keys.containsKey("name")) //$NON-NLS-1$
+			setName(keys.get("name")); //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:name")); //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:buoy_lateral:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:buoy_lateral:name")); //$NON-NLS-1$
+		else if (keys.containsKey("seamark:beacon_lateral:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:beacon_lateral:name")); //$NON-NLS-1$
+		else if (keys.containsKey("seamark:light_float:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:light_float:name")); //$NON-NLS-1$
+
+		String cat = ""; //$NON-NLS-1$
+		String col = ""; //$NON-NLS-1$
+		String top = ""; //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:buoy_lateral:category")) //$NON-NLS-1$
+			cat = keys.get("seamark:buoy_lateral:category"); //$NON-NLS-1$
+		else if (keys.containsKey("seamark:beacon_lateral:category")) //$NON-NLS-1$
+			cat = keys.get("seamark:beacon_lateral:category"); //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:buoy_lateral:colour")) //$NON-NLS-1$
+			col = keys.get("seamark:buoy_lateral:colour"); //$NON-NLS-1$
+		else if (keys.containsKey("seamark:beacon_lateral:colour")) //$NON-NLS-1$
+			col = keys.get("seamark:beacon_lateral:colour"); //$NON-NLS-1$
+		else if (keys.containsKey("seamark:light_float:colour")) //$NON-NLS-1$
+			col = keys.get("seamark:light_float:colour"); //$NON-NLS-1$
+
+		if (getStyleIndex() != LAT_PERCH) {
+			if (keys.containsKey("seamark:topmark:shape")) { //$NON-NLS-1$
+				top = keys.get("seamark:topmark:shape"); //$NON-NLS-1$
+				setTopMark(true);
+			}
+			if (keys.containsKey("seamark:topmark:colour")) { //$NON-NLS-1$
+				if (col.isEmpty()) col = keys.get("seamark:topmark:colour");
+				setTopMark(true);
+			}
+		}
+		
+		if (col.isEmpty()) {
+			if (keys.containsKey("seamark:light:colour")) //$NON-NLS-1$
+				col = keys.get("seamark:light:colour"); //$NON-NLS-1$
+		}
+
+		if (cat.isEmpty()) { //$NON-NLS-1$
+			if (col.equals("red")) { //$NON-NLS-1$
+				setColour(RED);
+				if (top.equals("cylinder")) { //$NON-NLS-1$
+					setBuoyIndex(PORT_HAND);
+					setRegion(IALA_A);
+				} else if (top.equals("cone, point up")) { //$NON-NLS-1$
+					setBuoyIndex(STARBOARD_HAND);
+					setRegion(IALA_B);
+				} else {
+					if (getRegion() == IALA_A)
+						setBuoyIndex(PORT_HAND);
+					else
+						setBuoyIndex(STARBOARD_HAND);
+				}
+			} else if (col.equals("green")) { //$NON-NLS-1$
+				setColour(GREEN);
+				if (top.equals("cone, point up")) { //$NON-NLS-1$
+					setBuoyIndex(STARBOARD_HAND);
+					setRegion(IALA_A);
+				} else if (top.equals("cylinder")) { //$NON-NLS-1$
+					setBuoyIndex(PORT_HAND);
+					setRegion(IALA_B);
+				} else {
+					if (getRegion() == IALA_A)
+						setBuoyIndex(STARBOARD_HAND);
+					else
+						setBuoyIndex(PORT_HAND);
+				}
+			} else if (col.equals("red;green;red")) { //$NON-NLS-1$
+				setColour(RED_GREEN_RED);
+				if (top.equals("cylinder")) { //$NON-NLS-1$
+					setBuoyIndex(PREF_PORT_HAND);
+					setRegion(IALA_A);
+				} else if (top.equals("cone, point up")) { //$NON-NLS-1$
+					setBuoyIndex(PREF_STARBOARD_HAND);
+					setRegion(IALA_B);
+				} else {
+					if (getRegion() == IALA_A)
+						setBuoyIndex(PREF_PORT_HAND);
+					else
+						setBuoyIndex(PREF_STARBOARD_HAND);
+				}
+			} else if (col.equals("green;red;green")) { //$NON-NLS-1$
+				setColour(GREEN_RED_GREEN);
+				if (top.equals("cone, point up")) { //$NON-NLS-1$
+					setBuoyIndex(PREF_STARBOARD_HAND);
+					setRegion(IALA_A);
+				} else if (top.equals("cylinder")) { //$NON-NLS-1$
+					setBuoyIndex(PREF_PORT_HAND);
+					setRegion(IALA_B);
+				} else {
+					if (getRegion() == IALA_A)
+						setBuoyIndex(PREF_STARBOARD_HAND);
+					else
+						setBuoyIndex(PREF_PORT_HAND);
+				}
+			}
+		} else if (cat.equals("port")) { //$NON-NLS-1$
+
+			setBuoyIndex(PORT_HAND);
+
+			if (col.equals("red")) { //$NON-NLS-1$
+				setRegion(IALA_A);
+				setColour(RED);
+			} else if (col.equals("green")) { //$NON-NLS-1$
+				setRegion(IALA_B);
+				setColour(GREEN);
+			} else {
+				if (getRegion() == IALA_A)
+					setColour(RED);
+				else
+					setColour(GREEN);
+			}
+		} else if (cat.equals("starboard")) { //$NON-NLS-1$
+
+			setBuoyIndex(STARBOARD_HAND);
+
+			if (col.equals("green")) { //$NON-NLS-1$
+				setRegion(IALA_A);
+				setColour(GREEN);
+			} else if (col.equals("red")) { //$NON-NLS-1$
+				setRegion(IALA_B);
+				setColour(RED);
+			} else {
+				if (getRegion() == IALA_A)
+					setColour(GREEN);
+				else
+					setColour(RED);
+			}
+		} else if (cat.equals("preferred_channel_port")) { //$NON-NLS-1$
+
+			setBuoyIndex(PREF_PORT_HAND);
+
+			if (col.equals("red;green;red")) { //$NON-NLS-1$
+				setRegion(IALA_A);
+				setColour(RED_GREEN_RED);
+			} else if (col.equals("green;red;green")) { //$NON-NLS-1$
+				setRegion(IALA_B);
+				setColour(GREEN_RED_GREEN);
+			} else {
+				if (getRegion() == IALA_A)
+					setColour(RED_GREEN_RED);
+				else
+					setColour(GREEN_RED_GREEN);
+			}
+
+		} else if (cat.equals("preferred_channel_starboard")) { //$NON-NLS-1$
+
+			setBuoyIndex(PREF_STARBOARD_HAND);
+
+			if (col.equals("green;red;green")) { //$NON-NLS-1$
+				setRegion(IALA_A);
+				setColour(GREEN_RED_GREEN);
+			} else if (col.equals("red;green;red")) { //$NON-NLS-1$
+				setRegion(IALA_B);
+				setColour(RED_GREEN_RED);
+			} else {
+				if (getRegion() == IALA_A)
+					setColour(GREEN_RED_GREEN);
+				else
+					setColour(RED_GREEN_RED);
+			}
+		}
+
+		if (keys.containsKey("seamark:buoy_lateral:shape")) { //$NON-NLS-1$
+			str = keys.get("seamark:buoy_lateral:shape"); //$NON-NLS-1$
+
+			switch (getBuoyIndex()) {
+			case PORT_HAND:
+				if (str.equals("can")) //$NON-NLS-1$
+					setStyleIndex(LAT_CAN);
+				else if (str.equals("pillar")) //$NON-NLS-1$
+					setStyleIndex(LAT_PILLAR);
+				else if (str.equals("spar")) //$NON-NLS-1$
+					setStyleIndex(LAT_SPAR);
+				break;
+
+			case PREF_PORT_HAND:
+				if (str.equals("can")) //$NON-NLS-1$
+					setStyleIndex(LAT_CAN);
+				else if (str.equals("pillar")) //$NON-NLS-1$
+					setStyleIndex(LAT_PILLAR);
+				else if (str.equals("spar")) //$NON-NLS-1$
+					setStyleIndex(LAT_SPAR);
+				break;
+
+			case STARBOARD_HAND:
+				if (str.equals("conical")) //$NON-NLS-1$
+					setStyleIndex(LAT_CONE);
+				else if (str.equals("pillar")) //$NON-NLS-1$
+					setStyleIndex(LAT_PILLAR);
+				else if (str.equals("spar")) //$NON-NLS-1$
+					setStyleIndex(LAT_SPAR);
+				break;
+
+			case PREF_STARBOARD_HAND:
+				if (str.equals("conical")) //$NON-NLS-1$
+					setStyleIndex(LAT_CONE);
+				else if (str.equals("pillar")) //$NON-NLS-1$
+					setStyleIndex(LAT_PILLAR);
+				else if (str.equals("spar")) //$NON-NLS-1$
+					setStyleIndex(LAT_SPAR);
+				break;
+			}
+		} else if (keys.containsKey("seamark:beacon_lateral:shape")) { //$NON-NLS-1$
+			str = keys.get("seamark:beacon_lateral:shape"); //$NON-NLS-1$
+			if (str.equals("tower")) //$NON-NLS-1$
+				setStyleIndex(LAT_TOWER);
+			else if (str.equals("perch")) //$NON-NLS-1$
+				setStyleIndex(LAT_PERCH);
+			else
+				setStyleIndex(LAT_BEACON);
+		} else if (keys.containsKey("seamark:type") //$NON-NLS-1$
+				&& (keys.get("seamark:type").equals("beacon_lateral"))) { //$NON-NLS-1$ //$NON-NLS-2$
+			setStyleIndex(LAT_BEACON);
+		} else if (keys.containsKey("seamark:type") //$NON-NLS-1$
+				&& (keys.get("seamark:type").equals("light_float"))) { //$NON-NLS-1$ //$NON-NLS-2$
+			setStyleIndex(LAT_FLOAT);
+		}
+
+		refreshStyles();
+		refreshLights();
+		parseLights(keys);
+		parseFogRadar(keys);
+		setLightColour();
+
+		dlg.cbM01CatOfMark.setSelectedIndex(getBuoyIndex());
+		dlg.cbM01StyleOfMark.setSelectedIndex(getStyleIndex());
+		dlg.tfM01Name.setText(getName());
+		dlg.cM01TopMark.setSelected(hasTopMark());
+*/	}
+/*
+	public void refreshStyles() {
+		int type = getBuoyIndex();
+		int style = getStyleIndex();
+
+		dlg.cbM01StyleOfMark.removeAllItems();
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("SmpDialogAction.213")); //$NON-NLS-1$
+
+		switch (type) {
+		case PORT_HAND:
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.02")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.01")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.04")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.05")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.06")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.07")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.10")); //$NON-NLS-1$
+			break;
+		case STARBOARD_HAND:
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.03")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.01")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.04")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.05")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.06")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.07")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.10")); //$NON-NLS-1$
+			break;
+		case PREF_PORT_HAND:
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.02")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.01")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.04")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.05")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.06")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.07")); //$NON-NLS-1$
+			break;
+		case PREF_STARBOARD_HAND:
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.03")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.01")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.04")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.05")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.06")); //$NON-NLS-1$
+			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.07")); //$NON-NLS-1$
+			break;
+		}
+
+		if (style >= dlg.cbM01StyleOfMark.getItemCount())
+			style = 0;
+		setStyleIndex(style);
+		dlg.cbM01StyleOfMark.setSelectedIndex(style);
+		dlg.cbM01StyleOfMark.setVisible(true);
+		dlg.lM01StyleOfMark.setVisible(true);
+	}
+
+	public void refreshLights() {
+		super.refreshLights();
+	}
+
+	public boolean isValid() {
+		return (getBuoyIndex() > 0) && (getStyleIndex() > 0);
+	}
+
+	public void setLightColour() {
+		if (getRegion() == IALA_A) {
+			if (getBuoyIndex() == PORT_HAND || getBuoyIndex() == PREF_PORT_HAND)
+				super.setLightColour("R"); //$NON-NLS-1$
+			else
+				super.setLightColour("G"); //$NON-NLS-1$
+		} else {
+			if (getBuoyIndex() == PORT_HAND || getBuoyIndex() == PREF_PORT_HAND)
+				super.setLightColour("G"); //$NON-NLS-1$
+			else
+				super.setLightColour("R"); //$NON-NLS-1$
+		}
+	}
+*/
+	public void paintSign() {
+/*		if (dlg.paintlock)
+			return;
+		super.paintSign();
+
+		dlg.sM01StatusBar.setText(getErrMsg());
+
+		if (isValid()) {
+			dlg.tfM01Name.setEnabled(true);
+			dlg.tfM01Name.setText(getName());
+
+			boolean region = getRegion();
+			int style = getStyleIndex();
+
+			if (style == LAT_PERCH) {
+				dlg.cM01TopMark.setVisible(false);
+				dlg.cM01TopMark.setSelected(false);
+				dlg.cM01Radar.setVisible(false);
+				dlg.cM01Racon.setVisible(false);
+				dlg.cM01Fog.setVisible(false);
+				dlg.cM01Fired.setVisible(false);
+				dlg.cM01Fired.setSelected(false);
+			} else {
+				dlg.cM01TopMark.setEnabled(true);
+				dlg.cM01TopMark.setVisible(true);
+				dlg.cM01Radar.setVisible(true);
+				dlg.cM01Racon.setVisible(true);
+				dlg.cM01Fog.setVisible(true);
+				dlg.cM01Fired.setVisible(true);
+				dlg.cM01Fired.setEnabled(true);
+				dlg.cM01TopMark.setEnabled(true);
+			}
+			if (!isSectored()) {
+				dlg.cbM01Colour.setVisible(false);
+				dlg.lM01Colour.setVisible(false);
+			}
+			dlg.rbM01Fired1.setVisible(false);
+			dlg.rbM01FiredN.setVisible(false);
+			dlg.lM01Height.setVisible(false);
+			dlg.tfM01Height.setVisible(false);
+			dlg.lM01Range.setVisible(false);
+			dlg.tfM01Range.setVisible(false);
+
+			if (isFired()) {
+				switch (style) {
+				case LAT_BEACON:
+				case LAT_TOWER:
+				case LAT_FLOAT:
+					dlg.lM01Height.setVisible(true);
+					dlg.tfM01Height.setVisible(true);
+					dlg.lM01Range.setVisible(true);
+					dlg.tfM01Range.setVisible(true);
+					break;
+				default:
+				}
+			}
+
+			String image = "/images/Lateral"; //$NON-NLS-1$
+
+			switch (getBuoyIndex()) {
+			case PORT_HAND:
+				if (region == IALA_A)
+					switch (style) {
+					case LAT_CAN:
+						image += "_Can_Red"; //$NON-NLS-1$
+						break;
+					case LAT_PILLAR:
+						image += "_Pillar_Red"; //$NON-NLS-1$
+						break;
+					case LAT_SPAR:
+						image += "_Spar_Red"; //$NON-NLS-1$
+						break;
+					case LAT_BEACON:
+						image += "_Beacon_Red"; //$NON-NLS-1$
+						break;
+					case LAT_TOWER:
+						image += "_Tower_Red"; //$NON-NLS-1$
+						break;
+					case LAT_FLOAT:
+						image += "_Float_Red"; //$NON-NLS-1$
+						break;
+					case LAT_PERCH:
+						image += "_Perch_Port"; //$NON-NLS-1$
+						break;
+					default:
+					}
+				else
+					switch (style) {
+					case LAT_CAN:
+						image += "_Can_Green"; //$NON-NLS-1$
+						break;
+					case LAT_PILLAR:
+						image += "_Pillar_Green"; //$NON-NLS-1$
+						break;
+					case LAT_SPAR:
+						image += "_Spar_Green"; //$NON-NLS-1$
+						break;
+					case LAT_BEACON:
+						image += "_Beacon_Green"; //$NON-NLS-1$
+						break;
+					case LAT_TOWER:
+						image += "_Tower_Green"; //$NON-NLS-1$
+						break;
+					case LAT_FLOAT:
+						image += "_Float_Green"; //$NON-NLS-1$
+						break;
+					case LAT_PERCH:
+						image += "_Perch_Port"; //$NON-NLS-1$
+						break;
+					default:
+					}
+				break;
+
+			case STARBOARD_HAND:
+				if (region == IALA_A)
+					switch (style) {
+					case LAT_CONE:
+						image += "_Cone_Green"; //$NON-NLS-1$
+						break;
+					case LAT_PILLAR:
+						image += "_Pillar_Green"; //$NON-NLS-1$
+						break;
+					case LAT_SPAR:
+						image += "_Spar_Green"; //$NON-NLS-1$
+						break;
+					case LAT_BEACON:
+						image += "_Beacon_Green"; //$NON-NLS-1$
+						break;
+					case LAT_TOWER:
+						image += "_Tower_Green"; //$NON-NLS-1$
+						break;
+					case LAT_FLOAT:
+						image += "_Float_Green"; //$NON-NLS-1$
+						break;
+					case LAT_PERCH:
+						image += "_Perch_Starboard"; //$NON-NLS-1$
+						break;
+					default:
+					}
+				else
+					switch (style) {
+					case LAT_CONE:
+						image += "_Cone_Red"; //$NON-NLS-1$
+						break;
+					case LAT_PILLAR:
+						image += "_Pillar_Red"; //$NON-NLS-1$
+						break;
+					case LAT_SPAR:
+						image += "_Spar_Red"; //$NON-NLS-1$
+						break;
+					case LAT_BEACON:
+						image += "_Beacon_Red"; //$NON-NLS-1$
+						break;
+					case LAT_TOWER:
+						image += "_Tower_Red"; //$NON-NLS-1$
+						break;
+					case LAT_FLOAT:
+						image += "_Float_Red"; //$NON-NLS-1$
+						break;
+					case LAT_PERCH:
+						image += "_Perch_Starboard"; //$NON-NLS-1$
+						break;
+					default:
+					}
+				break;
+
+			case PREF_PORT_HAND:
+				if (region == IALA_A)
+					switch (style) {
+					case LAT_CAN:
+						image += "_Can_Red_Green_Red"; //$NON-NLS-1$
+						break;
+					case LAT_PILLAR:
+						image += "_Pillar_Red_Green_Red"; //$NON-NLS-1$
+						break;
+					case LAT_SPAR:
+						image += "_Spar_Red_Green_Red"; //$NON-NLS-1$
+						break;
+					case LAT_BEACON:
+						image += "_Beacon_Red_Green_Red"; //$NON-NLS-1$
+						break;
+					case LAT_TOWER:
+						image += "_Tower_Red_Green_Red"; //$NON-NLS-1$
+						break;
+					case LAT_FLOAT:
+						image += "_Float_Red_Green_Red"; //$NON-NLS-1$
+						break;
+					default:
+					}
+				else
+					switch (style) {
+					case LAT_CAN:
+						image += "_Can_Green_Red_Green"; //$NON-NLS-1$
+						break;
+					case LAT_PILLAR:
+						image += "_Pillar_Green_Red_Green"; //$NON-NLS-1$
+						break;
+					case LAT_SPAR:
+						image += "_Spar_Green_Red_Green"; //$NON-NLS-1$
+						break;
+					case LAT_BEACON:
+						image += "_Beacon_Green_Red_Green"; //$NON-NLS-1$
+						break;
+					case LAT_TOWER:
+						image += "_Tower_Green_Red_Green"; //$NON-NLS-1$
+						break;
+					case LAT_FLOAT:
+						image += "_Float_Green_Red_Green"; //$NON-NLS-1$
+						break;
+					default:
+					}
+				break;
+
+			case PREF_STARBOARD_HAND:
+				if (region == IALA_A)
+					switch (style) {
+					case LAT_CONE:
+						image += "_Cone_Green_Red_Green"; //$NON-NLS-1$
+						break;
+					case LAT_PILLAR:
+						image += "_Pillar_Green_Red_Green"; //$NON-NLS-1$
+						break;
+					case LAT_SPAR:
+						image += "_Spar_Green_Red_Green"; //$NON-NLS-1$
+						break;
+					case LAT_BEACON:
+						image += "_Beacon_Green_Red_Green"; //$NON-NLS-1$
+						break;
+					case LAT_TOWER:
+						image += "_Tower_Green_Red_Green"; //$NON-NLS-1$
+						break;
+					case LAT_FLOAT:
+						image += "_Float_Green_Red_Green"; //$NON-NLS-1$
+						break;
+					default:
+					}
+				else
+					switch (style) {
+					case LAT_CONE:
+						image += "_Cone_Red_Green_Red"; //$NON-NLS-1$
+						break;
+					case LAT_PILLAR:
+						image += "_Pillar_Red_Green_Red"; //$NON-NLS-1$
+						break;
+					case LAT_SPAR:
+						image += "_Spar_Red_Green_Red"; //$NON-NLS-1$
+						break;
+					case LAT_BEACON:
+						image += "_Beacon_Red_Green_Red"; //$NON-NLS-1$
+						break;
+					case LAT_TOWER:
+						image += "_Tower_Red_Green_Red"; //$NON-NLS-1$
+						break;
+					case LAT_FLOAT:
+						image += "_Float_Red_Green_Red"; //$NON-NLS-1$
+						break;
+					default:
+					}
+				break;
+
+			default:
+			}
+
+			if (!image.equals("/images/Lateral")) { //$NON-NLS-1$
+
+				image += ".png"; //$NON-NLS-1$
+				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(image)));
+
+				if (hasTopMark()) {
+					image = "";
+					switch (getBuoyIndex()) {
+					case PORT_HAND:
+					case PREF_PORT_HAND:
+						if (region == IALA_A)
+							switch (style) {
+							case LAT_CAN:
+								image = "/images/Top_Can_Red_Buoy_Small.png"; //$NON-NLS-1$
+								break;
+							case LAT_PILLAR:
+							case LAT_SPAR:
+								image = "/images/Top_Can_Red_Buoy.png"; //$NON-NLS-1$
+								break;
+							case LAT_BEACON:
+							case LAT_TOWER:
+								image = "/images/Top_Can_Red_Beacon.png"; //$NON-NLS-1$
+								break;
+							case LAT_FLOAT:
+								image = "/images/Top_Can_Red_Float.png"; //$NON-NLS-1$
+								break;
+							}
+						else
+							switch (style) {
+							case LAT_CAN:
+								image = "/images/Top_Can_Green_Buoy_Small.png"; //$NON-NLS-1$
+								break;
+							case LAT_PILLAR:
+							case LAT_SPAR:
+								image = "/images/Top_Can_Green_Buoy.png"; //$NON-NLS-1$
+								break;
+							case LAT_BEACON:
+							case LAT_TOWER:
+								image = "/images/Top_Can_Green_Beacon.png"; //$NON-NLS-1$
+								break;
+							case LAT_FLOAT:
+								image = "/images/Top_Can_Green_Float.png"; //$NON-NLS-1$
+								break;
+							}
+						break;
+
+					case STARBOARD_HAND:
+					case PREF_STARBOARD_HAND:
+						if (region == IALA_A)
+							switch (style) {
+							case LAT_CONE:
+								image = "/images/Top_Cone_Green_Buoy_Small.png"; //$NON-NLS-1$
+								break;
+							case LAT_PILLAR:
+							case LAT_SPAR:
+								image = "/images/Top_Cone_Green_Buoy.png"; //$NON-NLS-1$
+								break;
+							case LAT_BEACON:
+							case LAT_TOWER:
+								image = "/images/Top_Cone_Green_Beacon.png"; //$NON-NLS-1$
+								break;
+							case LAT_FLOAT:
+								image = "/images/Top_Cone_Green_Float.png"; //$NON-NLS-1$
+								break;
+							}
+						else
+							switch (style) {
+							case LAT_CONE:
+								image = "/images/Top_Cone_Red_Buoy_Small.png"; //$NON-NLS-1$
+								break;
+							case LAT_PILLAR:
+							case LAT_SPAR:
+								image = "/images/Top_Cone_Red_Buoy.png"; //$NON-NLS-1$
+								break;
+							case LAT_BEACON:
+							case LAT_TOWER:
+								image = "/images/Top_Cone_Red_Beacon.png"; //$NON-NLS-1$
+								break;
+							case LAT_FLOAT:
+								image = "/images/Top_Cone_Red_Float.png"; //$NON-NLS-1$
+								break;
+							}
+						break;
+					}
+					if (!image.isEmpty())
+						dlg.lM06Icon.setIcon(new ImageIcon(getClass().getResource(image)));
+				}
+			} else
+				dlg.lM01Icon.setIcon(null);
+		}
+*/	}
+
+	public void saveSign() {
+/*		Node node = getNode();
+
+		if (node == null) {
+			return;
+		}
+
+		int cat = getBuoyIndex();
+		String shape = ""; //$NON-NLS-1$
+		String colour = ""; //$NON-NLS-1$
+
+		switch (cat) {
+
+		case PORT_HAND:
+			switch (getStyleIndex()) {
+			case LAT_CAN:
+				super.saveSign("buoy_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_lateral:shape", "can")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			case LAT_PILLAR:
+				super.saveSign("buoy_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_lateral:shape", "pillar")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			case LAT_SPAR:
+				super.saveSign("buoy_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_lateral:shape", "spar")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			case LAT_BEACON:
+				super.saveSign("beacon_lateral"); //$NON-NLS-1$
+				break;
+			case LAT_TOWER:
+				super.saveSign("beacon_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_lateral:shape", "tower")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			case LAT_FLOAT:
+				super.saveSign("light_float"); //$NON-NLS-1$
+				break;
+			case LAT_PERCH:
+				super.saveSign("beacon_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_lateral:shape", "perch")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			default:
+			}
+			switch (getStyleIndex()) {
+			case LAT_CAN:
+			case LAT_PILLAR:
+			case LAT_SPAR:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_lateral:category", "port")); //$NON-NLS-1$ //$NON-NLS-2$
+				if (getRegion() == IALA_A) {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:buoy_lateral:colour", "red")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "red"; //$NON-NLS-1$
+				} else {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:buoy_lateral:colour", "green")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "green"; //$NON-NLS-1$
+				}
+				break;
+			case LAT_PERCH:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_lateral:category", "port")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			case LAT_BEACON:
+			case LAT_TOWER:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_lateral:category", "port")); //$NON-NLS-1$ //$NON-NLS-2$
+				if (getRegion() == IALA_A) {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:beacon_lateral:colour", "red")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "red"; //$NON-NLS-1$
+				} else {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:beacon_lateral:colour", "green")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "green"; //$NON-NLS-1$
+				}
+				break;
+			case LAT_FLOAT:
+				if (getRegion() == IALA_A) {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:light_float:colour", "red")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "red"; //$NON-NLS-1$
+				} else {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:light_float:colour", "green")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "green"; //$NON-NLS-1$
+				}
+				break;
+			}
+			shape = "cylinder"; //$NON-NLS-1$
+			break;
+
+		case PREF_PORT_HAND:
+			switch (getStyleIndex()) {
+			case LAT_CAN:
+				super.saveSign("buoy_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_lateral:shape", "can")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			case LAT_PILLAR:
+				super.saveSign("buoy_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_lateral:shape", "pillar")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			case LAT_SPAR:
+				super.saveSign("buoy_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_lateral:shape", "spar")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			case LAT_BEACON:
+				super.saveSign("beacon_lateral"); //$NON-NLS-1$
+				break;
+			case LAT_TOWER:
+				super.saveSign("beacon_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_lateral:shape", "tower")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			case LAT_FLOAT:
+				super.saveSign("light_float"); //$NON-NLS-1$
+				break;
+			default:
+			}
+			switch (getStyleIndex()) {
+			case LAT_CAN:
+			case LAT_PILLAR:
+			case LAT_SPAR:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_lateral:category", "preferred_channel_port")); //$NON-NLS-1$ //$NON-NLS-2$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_lateral:colour_pattern", "horizontal stripes")); //$NON-NLS-1$ //$NON-NLS-2$
+				if (getRegion() == IALA_A) {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:buoy_lateral:colour", "red;green;red")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "red"; //$NON-NLS-1$
+				} else {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:buoy_lateral:colour", "green;red;green")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "green"; //$NON-NLS-1$
+				}
+				break;
+			case LAT_BEACON:
+			case LAT_TOWER:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_lateral:category", "preferred_channel_port")); //$NON-NLS-1$ //$NON-NLS-2$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_lateral:colour_pattern", "horizontal stripes")); //$NON-NLS-1$ //$NON-NLS-2$
+				if (getRegion() == IALA_A) {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:beacon_lateral:colour", "red;green;red")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "red"; //$NON-NLS-1$
+				} else {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:beacon_lateral:colour", "green;red;green")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "green"; //$NON-NLS-1$
+				}
+				break;
+			case LAT_FLOAT:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:light_float:colour_pattern", "horizontal stripes")); //$NON-NLS-1$ //$NON-NLS-2$
+				if (getRegion() == IALA_A) {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:light_float:colour", "red;green;red")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "red"; //$NON-NLS-1$
+				} else {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:light_float:colour", "green;red;green")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "green"; //$NON-NLS-1$
+				}
+				break;
+			}
+			shape = "cylinder"; //$NON-NLS-1$
+			break;
+
+		case STARBOARD_HAND:
+			switch (getStyleIndex()) {
+			case LAT_CONE:
+				super.saveSign("buoy_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_lateral:shape", "conical")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			case LAT_PILLAR:
+				super.saveSign("buoy_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_lateral:shape", "pillar")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			case LAT_SPAR:
+				super.saveSign("buoy_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_lateral:shape", "spar")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			case LAT_BEACON:
+				super.saveSign("beacon_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_lateral:shape", "stake")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			case LAT_TOWER:
+				super.saveSign("beacon_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_lateral:shape", "tower")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			case LAT_FLOAT:
+				super.saveSign("light_float"); //$NON-NLS-1$
+				break;
+			case LAT_PERCH:
+				super.saveSign("beacon_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_lateral:shape", "perch")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			default:
+			}
+			switch (getStyleIndex()) {
+			case LAT_CAN:
+			case LAT_PILLAR:
+			case LAT_SPAR:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_lateral:category", "starboard")); //$NON-NLS-1$ //$NON-NLS-2$
+				if (getRegion() == IALA_A) {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:buoy_lateral:colour", "green")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "green"; //$NON-NLS-1$
+				} else {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:buoy_lateral:colour", "red")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "red"; //$NON-NLS-1$
+				}
+				break;
+			case LAT_BEACON:
+			case LAT_TOWER:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_lateral:category", "starboard")); //$NON-NLS-1$ //$NON-NLS-2$
+				if (getRegion() == IALA_A) {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:beacon_lateral:colour", "green")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "green"; //$NON-NLS-1$
+				} else {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:beacon_lateral:colour", "red")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "red"; //$NON-NLS-1$
+				}
+				break;
+			case LAT_FLOAT:
+				if (getRegion() == IALA_A) {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:light_float:colour", "green")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "green"; //$NON-NLS-1$
+				} else {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:light_float:colour", "red")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "red"; //$NON-NLS-1$
+				}
+				break;
+			case LAT_PERCH:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_lateral:category", "starboard")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			}
+			shape = "cone, point up"; //$NON-NLS-1$
+			break;
+
+		case PREF_STARBOARD_HAND:
+			switch (getStyleIndex()) {
+			case LAT_CONE:
+				super.saveSign("buoy_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_lateral:shape", "conical")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			case LAT_PILLAR:
+				super.saveSign("buoy_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_lateral:shape", "pillar")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			case LAT_SPAR:
+				super.saveSign("buoy_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_lateral:shape", "spar")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			case LAT_BEACON:
+				super.saveSign("beacon_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_lateral:shape", "stake")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			case LAT_TOWER:
+				super.saveSign("beacon_lateral"); //$NON-NLS-1$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_lateral:shape", "tower")); //$NON-NLS-1$ //$NON-NLS-2$
+				break;
+			case LAT_FLOAT:
+				super.saveSign("light_float"); //$NON-NLS-1$
+				break;
+			default:
+			}
+			switch (getStyleIndex()) {
+			case LAT_CAN:
+			case LAT_PILLAR:
+			case LAT_SPAR:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_lateral:category", "preferred_channel_starboard")); //$NON-NLS-1$ //$NON-NLS-2$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:buoy_lateral:colour_pattern", "horizontal stripes")); //$NON-NLS-1$ //$NON-NLS-2$
+				if (getRegion() == IALA_A) {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:buoy_lateral:colour", "green;red;green")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "green"; //$NON-NLS-1$
+				} else {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:buoy_lateral:colour", "red;green;red")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "red"; //$NON-NLS-1$
+				}
+				break;
+			case LAT_BEACON:
+			case LAT_TOWER:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_lateral:category", "preferred_channel_starboard")); //$NON-NLS-1$ //$NON-NLS-2$
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:beacon_lateral:colour_pattern", "horizontal stripes")); //$NON-NLS-1$ //$NON-NLS-2$
+				if (getRegion() == IALA_A) {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:beacon_lateral:colour", "green;red;green")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "green"; //$NON-NLS-1$
+				} else {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:beacon_lateral:colour", "red;green;red")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "red"; //$NON-NLS-1$
+				}
+				break;
+			case LAT_FLOAT:
+				Main.main.undoRedo.add(new ChangePropertyCommand(node,
+						"seamark:light_float:colour_pattern", "horizontal stripes")); //$NON-NLS-1$ //$NON-NLS-2$
+				if (getRegion() == IALA_A) {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:light_float:colour", "green;red;green")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "green"; //$NON-NLS-1$
+				} else {
+					Main.main.undoRedo.add(new ChangePropertyCommand(node,
+							"seamark:light_float:colour", "red;green;red")); //$NON-NLS-1$ //$NON-NLS-2$
+					colour = "red"; //$NON-NLS-1$
+				}
+				break;
+			}
+			shape = "cone, point up"; //$NON-NLS-1$
+			break;
+
+		default:
+		}
+		saveTopMarkData(shape, colour);
+		saveLightData();
+		saveRadarFogData();
+
+		Main.pref.put("tomsplugin.IALA", getRegion() ? "B" : "A"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+*/	}
+}
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkLight.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkLight.java	(revision 24779)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkLight.java	(revision 24779)
@@ -0,0 +1,155 @@
+package oseam.seamarks;
+
+import java.util.Map;
+
+import javax.swing.ImageIcon;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.ChangePropertyCommand;
+import org.openstreetmap.josm.data.osm.Node;
+
+import oseam.Messages;
+import oseam.dialogs.OSeaMAction;
+import oseam.seamarks.SeaMark;
+
+public class MarkLight extends SeaMark {
+	public MarkLight(OSeaMAction dia, Node node) {
+		super(dia);
+
+		Map<String, String> keys;
+		keys = node.getKeys();
+		setNode(node);
+
+/*		dlg.cbM01TypeOfMark.setSelectedIndex(LIGHT);
+
+		dlg.cbM01CatOfMark.setEnabled(true);
+		dlg.cbM01CatOfMark.setVisible(true);
+		dlg.lM01CatOfMark.setVisible(true);
+
+		dlg.cbM01CatOfMark.removeAllItems();
+		dlg.cbM01CatOfMark.addItem(Messages.getString("SmpDialogAction.157")); //$NON-NLS-1$
+		dlg.cbM01CatOfMark.addItem(Messages.getString("SmpDialogAction.206")); //$NON-NLS-1$
+		dlg.cbM01CatOfMark.addItem(Messages.getString("SmpDialogAction.207")); //$NON-NLS-1$
+		dlg.cbM01CatOfMark.addItem(Messages.getString("SmpDialogAction.208")); //$NON-NLS-1$
+		dlg.cbM01CatOfMark.addItem(Messages.getString("SmpDialogAction.209")); //$NON-NLS-1$
+
+		setRegion(Main.pref.get("tomsplugin.IALA").equals("B")); //$NON-NLS-1$ //$NON-NLS-2$
+
+		if (keys.containsKey("name")) //$NON-NLS-1$
+			setName(keys.get("name")); //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:name")); //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:landmark:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:landmark:name")); //$NON-NLS-1$
+		else if (keys.containsKey("seamark:light_major:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:light_major:name")); //$NON-NLS-1$
+		else if (keys.containsKey("seamark:light_minor:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:light_minor:name")); //$NON-NLS-1$
+		else if (keys.containsKey("seamark:light_vessel:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:light_vessel:name")); //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:type")) { //$NON-NLS-1$
+			String type = keys.get("seamark:type"); //$NON-NLS-1$
+			if (type.equals("landmark"))
+				setBuoyIndex(LIGHT_HOUSE);
+			else if (type.equals("light_major"))
+				setBuoyIndex(LIGHT_MAJOR);
+			else if (type.equals("light_minor"))
+				setBuoyIndex(LIGHT_MINOR);
+			else if (type.equals("light_vessel"))
+				setBuoyIndex(LIGHT_VESSEL);
+		}
+
+		refreshLights();
+		parseLights(keys);
+		parseFogRadar(keys);
+		setTopMark(false);
+		setFired(true);
+
+		dlg.cbM01CatOfMark.setSelectedIndex(getBuoyIndex());
+		dlg.tfM01Name.setText(getName());
+		dlg.cM01Fired.setEnabled(false);
+		dlg.cM01Fired.setSelected(true);
+*/	}
+/*
+	public boolean isValid() {
+		return (getBuoyIndex() > 0);
+	}
+*/
+	public void paintSign() {
+/*		if (dlg.paintlock)
+			return;
+		super.paintSign();
+
+		dlg.sM01StatusBar.setText(getErrMsg());
+
+		if (isValid()) {
+			dlg.cM01Radar.setVisible(true);
+			dlg.cM01Racon.setVisible(true);
+			dlg.cM01Fog.setVisible(true);
+
+			dlg.rbM01Fired1.setVisible(true);
+			dlg.rbM01FiredN.setVisible(true);
+			dlg.lM01Height.setVisible(true);
+			dlg.tfM01Height.setVisible(true);
+			dlg.lM01Range.setVisible(true);
+			dlg.tfM01Range.setVisible(true);
+
+			switch (getBuoyIndex()) {
+			case SeaMark.LIGHT_HOUSE:
+				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(
+						"/images/Light_House.png"))); //$NON-NLS-1$
+				break;
+
+			case SeaMark.LIGHT_MAJOR:
+				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(
+						"/images/Light_Major.png"))); //$NON-NLS-1$
+				break;
+
+			case SeaMark.LIGHT_MINOR:
+				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(
+						"/images/Light_Minor.png"))); //$NON-NLS-1$
+				break;
+
+			case SeaMark.LIGHT_VESSEL:
+				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(
+						"/images/Major_Float.png"))); //$NON-NLS-1$
+				break;
+
+			default:
+			}
+		}
+*/	}
+
+	public void saveSign() {
+/*		Node node = getNode();
+
+		if (node == null) {
+			return;
+		}
+
+		switch (getBuoyIndex()) {
+		case LIGHT_HOUSE:
+			super.saveSign("landmark"); //$NON-NLS-1$
+			break;
+		case LIGHT_MAJOR:
+			super.saveSign("light_major"); //$NON-NLS-1$
+			break;
+		case LIGHT_MINOR:
+			super.saveSign("light_minor"); //$NON-NLS-1$
+			break;
+		case LIGHT_VESSEL:
+			super.saveSign("light_vessel"); //$NON-NLS-1$
+			break;
+		default:
+		}
+		saveLightData(); //$NON-NLS-1$
+		saveRadarFogData();
+*/	}
+
+	public void setLightColour() {
+	}
+
+}
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkSaw.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkSaw.java	(revision 24779)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkSaw.java	(revision 24779)
@@ -0,0 +1,255 @@
+package oseam.seamarks;
+
+import java.util.Map;
+
+import javax.swing.ImageIcon;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.ChangePropertyCommand;
+import org.openstreetmap.josm.data.osm.Node;
+
+import oseam.Messages;
+import oseam.dialogs.OSeaMAction;
+import oseam.seamarks.SeaMark;
+
+public class MarkSaw extends SeaMark {
+	public MarkSaw(OSeaMAction dia, Node node) {
+		super(dia);
+
+		String str;
+		Map<String, String> keys;
+		keys = node.getKeys();
+		setNode(node);
+
+/*		dlg.cbM01TypeOfMark.setSelectedIndex(SAFE_WATER);
+
+		dlg.cbM01StyleOfMark.removeAllItems();
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("SmpDialogAction.212")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.01")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.04")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.08")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.05")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.07")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.setVisible(true);
+		dlg.lM01StyleOfMark.setVisible(true);
+
+		setBuoyIndex(SAFE_WATER);
+		setColour(SeaMark.RED_WHITE);
+		setLightColour("W"); //$NON-NLS-1$
+		setRegion(Main.pref.get("tomsplugin.IALA").equals("B")); //$NON-NLS-1$ //$NON-NLS-2$
+
+		if (keys.containsKey("name")) //$NON-NLS-1$
+			setName(keys.get("name")); //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:name")); //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:buoy_safe_water:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:buoy_safe_water:name")); //$NON-NLS-1$
+		else if (keys.containsKey("seamark:beacon_safe_water:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:beacon_safe_water:name")); //$NON-NLS-1$
+		else if (keys.containsKey("seamark:light_float:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:light_float:name")); //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:buoy_safe_water:shape")) { //$NON-NLS-1$
+			str = keys.get("seamark:buoy_safe_water:shape"); //$NON-NLS-1$
+
+			if (str.equals("pillar")) //$NON-NLS-1$
+				setStyleIndex(SAFE_PILLAR);
+			else if (str.equals("spar")) //$NON-NLS-1$
+				setStyleIndex(SAFE_SPAR);
+			else if (str.equals("sphere")) //$NON-NLS-1$
+				setStyleIndex(SAFE_SPHERE);
+		} else if ((keys.containsKey("seamark:type")) //$NON-NLS-1$
+				&& (keys.get("seamark:type").equals("light_float"))) { //$NON-NLS-1$ //$NON-NLS-2$
+			setStyleIndex(SAFE_FLOAT);
+		} else if ((keys.containsKey("seamark:type")) //$NON-NLS-1$
+				&& (keys.get("seamark:type").equals("beacon_safe_water"))) { //$NON-NLS-1$ //$NON-NLS-2$
+			setStyleIndex(SAFE_BEACON);
+		}
+
+		if (getStyleIndex() >= dlg.cbM01StyleOfMark.getItemCount())
+			setStyleIndex(0);
+
+		if (keys.containsKey("seamark:topmark:shape") //$NON-NLS-1$
+				|| keys.containsKey("seamark:topmark:colour")) { //$NON-NLS-1$
+			setTopMark(true);
+		}
+
+		refreshLights();
+		parseLights(keys);
+		parseFogRadar(keys);
+
+		dlg.cbM01StyleOfMark.setSelectedIndex(getStyleIndex());
+		dlg.tfM01Name.setText(getName());
+		dlg.cM01TopMark.setSelected(hasTopMark());
+*/	}
+/*
+	public void refreshLights() {
+		dlg.cbM01Kennung.removeAllItems();
+		dlg.cbM01Kennung.addItem(Messages.getString("SmpDialogAction.212")); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("Iso"); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("Oc"); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("LFl"); //$NON-NLS-1$
+		dlg.cbM01Kennung.addItem("Mo"); //$NON-NLS-1$
+		dlg.cbM01Kennung.setSelectedIndex(0);
+	}
+
+	public boolean isValid() {
+		return (getBuoyIndex() > 0) && (getStyleIndex() > 0);
+	}
+
+	public void setLightColour() {
+		super.setLightColour("W"); //$NON-NLS-1$
+	}
+*/
+	public void paintSign() {
+/*		if (dlg.paintlock)
+			return;
+		super.paintSign();
+
+		dlg.sM01StatusBar.setText(getErrMsg());
+
+		if (isValid()) {
+			dlg.tfM01Name.setEnabled(true);
+			dlg.tfM01Name.setText(getName());
+			dlg.cM01TopMark.setEnabled(true);
+			dlg.cM01TopMark.setVisible(true);
+			dlg.cM01Radar.setVisible(true);
+			dlg.cM01Racon.setVisible(true);
+			dlg.cM01Fog.setVisible(true);
+			dlg.cM01Fired.setVisible(true);
+			dlg.cM01Fired.setEnabled(true);
+			if (!isSectored()) {
+				dlg.cbM01Colour.setVisible(false);
+				dlg.lM01Colour.setVisible(false);
+			}
+			dlg.rbM01Fired1.setVisible(false);
+			dlg.rbM01FiredN.setVisible(false);
+			dlg.lM01Height.setVisible(false);
+			dlg.tfM01Height.setVisible(false);
+			dlg.lM01Range.setVisible(false);
+			dlg.tfM01Range.setVisible(false);
+
+			if (isFired()) {
+				switch (getStyleIndex()) {
+				case SAFE_FLOAT:
+				case SAFE_BEACON:
+					dlg.lM01Height.setVisible(true);
+					dlg.tfM01Height.setVisible(true);
+					dlg.lM01Range.setVisible(true);
+					dlg.tfM01Range.setVisible(true);
+					break;
+				default:
+				}
+			}
+
+			String image = "/images/Safe_Water"; //$NON-NLS-1$
+
+			switch (getStyleIndex()) {
+			case SAFE_PILLAR:
+				image += "_Pillar"; //$NON-NLS-1$
+				break;
+			case SAFE_SPAR:
+				image += "_Spar"; //$NON-NLS-1$
+				break;
+			case SAFE_SPHERE:
+				image += "_Sphere"; //$NON-NLS-1$
+				break;
+			case SAFE_BEACON:
+				image += "_Beacon"; //$NON-NLS-1$
+				break;
+			case SAFE_FLOAT:
+				image += "_Float"; //$NON-NLS-1$
+				break;
+			default:
+			}
+
+			if (!image.equals("/images/Safe_Water")) { //$NON-NLS-1$
+				image += ".png"; //$NON-NLS-1$
+				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(image)));
+				if (hasTopMark()) {
+					image = "";
+					switch (getStyleIndex()) {
+					case SAFE_PILLAR:
+					case SAFE_SPAR:
+						image = "/images/Top_Sphere_Red_Buoy.png"; //$NON-NLS-1$
+						break;
+					case SAFE_SPHERE:
+						image = "/images/Top_Sphere_Red_Buoy_Small.png"; //$NON-NLS-1$
+						break;
+					case SAFE_BEACON:
+						image = "/images/Top_Sphere_Red_Beacon.png"; //$NON-NLS-1$
+						break;
+					case SAFE_FLOAT:
+						image = "/images/Top_Sphere_Red_Float.png"; //$NON-NLS-1$
+						break;
+					}
+					if (!image.isEmpty())
+						dlg.lM06Icon.setIcon(new ImageIcon(getClass().getResource(image)));
+				}
+			} else
+				dlg.lM01Icon.setIcon(null);
+		}
+*/	}
+
+	public void saveSign() {
+/*		Node node = getNode();
+
+		if (node == null) {
+			return;
+		}
+
+		switch (getStyleIndex()) {
+		case SAFE_PILLAR:
+			super.saveSign("buoy_safe_water"); //$NON-NLS-1$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_safe_water:shape", "pillar")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case SAFE_SPAR:
+			super.saveSign("buoy_safe_water"); //$NON-NLS-1$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_safe_water:shape", "spar")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case SAFE_SPHERE:
+			super.saveSign("buoy_safe_water"); //$NON-NLS-1$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_safe_water:shape", "sphere")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case SAFE_BEACON:
+			super.saveSign("beacon_safe_water"); //$NON-NLS-1$
+			break;
+		case SAFE_FLOAT:
+			super.saveSign("light_float"); //$NON-NLS-1$
+			break;
+		default:
+		}
+
+		switch (getStyleIndex()) {
+		case SAFE_PILLAR:
+		case SAFE_SPAR:
+		case SAFE_SPHERE:
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_safe_water:colour_pattern", "vertical stripes")); //$NON-NLS-1$ //$NON-NLS-2$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_safe_water:colour", "red;white")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case SAFE_BEACON:
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:beacon_safe_water:colour_pattern", "vertical stripes")); //$NON-NLS-1$ //$NON-NLS-2$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:beacon_safe_water:colour", "red;white")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case SAFE_FLOAT:
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:light_float:colour_pattern", "vertical stripes")); //$NON-NLS-1$ //$NON-NLS-2$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:light_float:colour", "red;white")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		default:
+		}
+		saveTopMarkData("sphere", "red"); //$NON-NLS-1$ //$NON-NLS-2$
+		saveLightData(); //$NON-NLS-1$
+		saveRadarFogData();
+*/	}
+}
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkSpec.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkSpec.java	(revision 24779)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkSpec.java	(revision 24779)
@@ -0,0 +1,413 @@
+package oseam.seamarks;
+
+import java.util.Map;
+
+import javax.swing.ImageIcon;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.ChangePropertyCommand;
+import org.openstreetmap.josm.data.osm.Node;
+
+import oseam.Messages;
+import oseam.dialogs.OSeaMAction;
+import oseam.seamarks.SeaMark;
+
+public class MarkSpec extends SeaMark {
+	public MarkSpec(OSeaMAction dia, Node node) {
+		super(dia);
+
+		String str;
+		Map<String, String> keys;
+		keys = node.getKeys();
+		setNode(node);
+
+/*		dlg.cbM01TypeOfMark.setSelectedIndex(SPECIAL_PURPOSE);
+
+		dlg.cbM01StyleOfMark.removeAllItems();
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("SmpDialogAction.212")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.01")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.02")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.03")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.04")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.05")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.06")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.07")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.08")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.09")); //$NON-NLS-1$
+		dlg.cbM01StyleOfMark.setVisible(true);
+		dlg.lM01StyleOfMark.setVisible(true);
+
+		dlg.cbM01TopMark.removeAllItems();
+		dlg.cbM01TopMark.addItem(Messages.getString("SmpDialogAction.212"));
+		dlg.cbM01TopMark.addItem(Messages.getString("SmpDialogAction.210")); //$NON-NLS-1$
+		dlg.cbM01TopMark.addItem(Messages.getString("SmpDialogAction.211")); //$NON-NLS-1$
+		dlg.cbM01TopMark.addItem(Messages.getString("SmpDialogAction.214")); //$NON-NLS-1$
+		dlg.cbM01TopMark.addItem(Messages.getString("SmpDialogAction.215")); //$NON-NLS-1$
+
+		dlg.cM01TopMark.setEnabled(true);
+
+		setBuoyIndex(SPECIAL_PURPOSE);
+		setColour(SeaMark.YELLOW);
+		setLightColour("W"); //$NON-NLS-1$
+		setRegion(Main.pref.get("tomsplugin.IALA").equals("B")); //$NON-NLS-1$ //$NON-NLS-2$
+
+		if (keys.containsKey("name")) //$NON-NLS-1$
+			setName(keys.get("name")); //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:name")); //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:buoy_special_purpose:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:buoy_special_purpose:name")); //$NON-NLS-1$
+		else if (keys.containsKey("seamark:beacon_special_purpose:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:beacon_special_purpose:name")); //$NON-NLS-1$
+		else if (keys.containsKey("seamark:light_float:name")) //$NON-NLS-1$
+			setName(keys.get("seamark:light_float:name")); //$NON-NLS-1$
+
+		if (keys.containsKey("seamark:buoy_special_purpose:shape")) { //$NON-NLS-1$
+			str = keys.get("seamark:buoy_special_purpose:shape"); //$NON-NLS-1$
+
+			if (str.equals("pillar")) //$NON-NLS-1$
+				setStyleIndex(SPEC_PILLAR);
+			else if (str.equals("can")) //$NON-NLS-1$
+				setStyleIndex(SPEC_CAN);
+			else if (str.equals("conical")) //$NON-NLS-1$
+				setStyleIndex(SPEC_CONE);
+			else if (str.equals("spar")) //$NON-NLS-1$
+				setStyleIndex(SPEC_SPAR);
+			else if (str.equals("sphere")) //$NON-NLS-1$
+				setStyleIndex(SPEC_SPHERE);
+			else if (str.equals("barrel")) //$NON-NLS-1$
+				setStyleIndex(SPEC_BARREL);
+		}
+
+		if (keys.containsKey("seamark:beacon_special_purpose:shape")) { //$NON-NLS-1$
+			str = keys.get("seamark:beacon_special_purpose:shape"); //$NON-NLS-1$
+			if (str.equals("tower")) //$NON-NLS-1$
+				setStyleIndex(SPEC_TOWER);
+			else
+				setStyleIndex(SPEC_BEACON);
+		}
+
+		if (keys.containsKey("seamark:light_float:colour")) {
+			setStyleIndex(SPEC_FLOAT);
+		}
+
+		if ((keys.containsKey("seamark:type") && keys.get("seamark:type").equals( //$NON-NLS-1$ //$NON-NLS-2$
+				"beacon_special_purpose")) //$NON-NLS-1$
+				|| keys.containsKey("seamark:beacon_special_purpose:colour") //$NON-NLS-1$
+				|| keys.containsKey("seamark:beacon_special_purpose:shape")) { //$NON-NLS-1$
+			if (keys.containsKey("seamark:beacon_special_purpose:shape") //$NON-NLS-1$
+					&& keys.get("seamark:beacon_special_purpose:shape").equals("tower")) //$NON-NLS-1$ //$NON-NLS-2$
+				setStyleIndex(SPEC_TOWER);
+			else
+				setStyleIndex(SPEC_BEACON);
+		} else if (keys.containsKey("seamark:light_float:colour") //$NON-NLS-1$
+				&& keys.get("seamark:light_float:colour").equals("yellow")) //$NON-NLS-1$ //$NON-NLS-2$
+			setStyleIndex(SPEC_FLOAT);
+
+		if (getStyleIndex() >= dlg.cbM01StyleOfMark.getItemCount())
+			setStyleIndex(0);
+
+		keys = node.getKeys();
+		if (keys.containsKey("seamark:topmark:shape")) { //$NON-NLS-1$
+			str = keys.get("seamark:topmark:shape"); //$NON-NLS-1$
+			setTopMark(true);
+			if (str.equals("x-shape")) { //$NON-NLS-1$
+				if (keys.containsKey("seamark:topmark:colour")) { //$NON-NLS-1$
+					if (keys.get("seamark:topmark:colour").equals("red"))
+						setTopMarkIndex(TOP_RED_X);
+					else
+						setTopMarkIndex(TOP_YELLOW_X);
+				}
+			} else if (str.equals("cone, point up")) { //$NON-NLS-1$
+					setTopMarkIndex(TOP_YELLOW_CONE);
+			} else if (str.equals("cylinder")) { //$NON-NLS-1$
+				setTopMarkIndex(TOP_YELLOW_CAN);
+			}
+		}
+
+		refreshLights();
+		parseLights(keys);
+		parseFogRadar(keys);
+
+		dlg.cbM01StyleOfMark.setSelectedIndex(getStyleIndex());
+		dlg.tfM01Name.setText(getName());
+		dlg.cM01TopMark.setSelected(hasTopMark());
+*/	}
+/*
+	public void refreshLights() {
+		super.refreshLights();
+
+		switch (getStyleIndex()) {
+		case SPEC_BARREL:
+			dlg.cM01Fired.setSelected(false);
+			dlg.cM01Fired.setEnabled(false);
+			dlg.cM01TopMark.setEnabled(true);
+			break;
+		default:
+			dlg.cM01Fired.setEnabled(true);
+			dlg.cM01TopMark.setEnabled(true);
+		}
+	}
+
+	public boolean isValid() {
+		return (getBuoyIndex() > 0) && (getStyleIndex() > 0);
+	}
+
+	public void setLightColour() {
+		super.setLightColour("W"); //$NON-NLS-1$
+	}
+*/
+	public void paintSign() {
+/*		if (dlg.paintlock)
+			return;
+		super.paintSign();
+
+		dlg.sM01StatusBar.setText(getErrMsg());
+
+		if (isValid()) {
+			dlg.tfM01Name.setEnabled(true);
+			dlg.tfM01Name.setText(getName());
+			dlg.cM01Radar.setVisible(true);
+			dlg.cM01Racon.setVisible(true);
+			dlg.cM01TopMark.setEnabled(true);
+			dlg.cM01TopMark.setVisible(true);
+			if (hasTopMark()) {
+				dlg.cbM01TopMark.setEnabled(true);
+				dlg.cbM01TopMark.setVisible(true);
+			} else {
+				dlg.cbM01TopMark.setVisible(false);
+			}
+			dlg.cM01Fog.setVisible(true);
+			dlg.cM01Fired.setVisible(true);
+			dlg.cM01Fired.setEnabled(true);
+			if (!isSectored()) {
+				dlg.cbM01Colour.setVisible(false);
+				dlg.lM01Colour.setVisible(false);
+			}
+			dlg.rbM01Fired1.setVisible(false);
+			dlg.rbM01FiredN.setVisible(false);
+			dlg.lM01Height.setVisible(false);
+			dlg.tfM01Height.setVisible(false);
+			dlg.lM01Range.setVisible(false);
+			dlg.tfM01Range.setVisible(false);
+
+			if (isFired()) {
+				switch (getStyleIndex()) {
+				case SPEC_FLOAT:
+				case SPEC_BEACON:
+				case SPEC_TOWER:
+					dlg.lM01Height.setVisible(true);
+					dlg.tfM01Height.setVisible(true);
+					dlg.lM01Range.setVisible(true);
+					dlg.tfM01Range.setVisible(true);
+					break;
+				default:
+				}
+			}
+
+			String image = "/images/Special_Purpose"; //$NON-NLS-1$
+
+			switch (getStyleIndex()) {
+			case SPEC_PILLAR:
+				image += "_Pillar"; //$NON-NLS-1$
+				break;
+			case SPEC_CAN:
+				image += "_Can"; //$NON-NLS-1$
+				break;
+			case SPEC_CONE:
+				image += "_Cone"; //$NON-NLS-1$
+				break;
+			case SPEC_SPAR:
+				image += "_Spar"; //$NON-NLS-1$
+				break;
+			case SPEC_SPHERE:
+				image += "_Sphere"; //$NON-NLS-1$
+				break;
+			case SPEC_BARREL:
+				image += "_Barrel"; //$NON-NLS-1$
+				break;
+			case SPEC_FLOAT:
+				image += "_Float"; //$NON-NLS-1$
+				break;
+			case SPEC_BEACON:
+				image += "_Beacon"; //$NON-NLS-1$
+				break;
+			case SPEC_TOWER:
+				image += "_Tower"; //$NON-NLS-1$
+				break;
+			default:
+			}
+
+			if (!image.equals("/images/Special_Purpose")) { //$NON-NLS-1$
+				image += ".png"; //$NON-NLS-1$
+				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(image)));
+				if (hasTopMark()) {
+					image = "";
+					switch (getStyleIndex()) {
+					case SPEC_PILLAR:
+					case SPEC_SPAR:
+						switch (getTopMarkIndex()) {
+						case TOP_YELLOW_X:
+							image = "/images/Top_X_Yellow_Buoy.png"; //$NON-NLS-1$
+							break;
+						case TOP_RED_X:
+							image = "/images/Top_X_Red_Buoy.png"; //$NON-NLS-1$
+							break;
+						case TOP_YELLOW_CAN:
+							image = "/images/Top_Can_Yellow_Buoy.png"; //$NON-NLS-1$
+							break;
+						case TOP_YELLOW_CONE:
+							image = "/images/Top_Cone_Yellow_Buoy.png"; //$NON-NLS-1$
+							break;
+						}
+						break;
+					case SPEC_CAN:
+					case SPEC_CONE:
+					case SPEC_SPHERE:
+					case SPEC_BARREL:
+						switch (getTopMarkIndex()) {
+						case TOP_YELLOW_X:
+							image = "/images/Top_X_Yellow_Buoy_Small.png"; //$NON-NLS-1$
+							break;
+						case TOP_RED_X:
+							image = "/images/Top_X_Red_Buoy_Small.png"; //$NON-NLS-1$
+							break;
+						case TOP_YELLOW_CAN:
+							image = "/images/Top_Can_Yellow_Buoy_Small.png"; //$NON-NLS-1$
+							break;
+						case TOP_YELLOW_CONE:
+							image = "/images/Top_Cone_Yellow_Buoy_Small.png"; //$NON-NLS-1$
+							break;
+						}
+						break;
+					case SPEC_BEACON:
+					case SPEC_TOWER:
+						switch (getTopMarkIndex()) {
+						case TOP_YELLOW_X:
+							image = "/images/Top_X_Yellow_Beacon.png"; //$NON-NLS-1$
+							break;
+						case TOP_RED_X:
+							image = "/images/Top_X_Red_Beacon.png"; //$NON-NLS-1$
+							break;
+						case TOP_YELLOW_CAN:
+							image = "/images/Top_Can_Yellow_Beacon.png"; //$NON-NLS-1$
+							break;
+						case TOP_YELLOW_CONE:
+							image = "/images/Top_Cone_Yellow_Beacon.png"; //$NON-NLS-1$
+							break;
+						}
+						break;
+					case SPEC_FLOAT:
+						switch (getTopMarkIndex()) {
+						case TOP_YELLOW_X:
+							image = "/images/Top_X_Yellow_Float.png"; //$NON-NLS-1$
+							break;
+						case TOP_RED_X:
+							image = "/images/Top_X_Red_Float.png"; //$NON-NLS-1$
+							break;
+						case TOP_YELLOW_CAN:
+							image = "/images/Top_Can_Yellow_Float.png"; //$NON-NLS-1$
+							break;
+						case TOP_YELLOW_CONE:
+							image = "/images/Top_Cone_Yellow_Float.png"; //$NON-NLS-1$
+							break;
+						}
+						break;
+					}
+					if (!image.isEmpty())
+						dlg.lM06Icon.setIcon(new ImageIcon(getClass().getResource(image)));
+				}
+			} else
+				dlg.lM01Icon.setIcon(null);
+		}
+*/	}
+
+	public void saveSign() {
+/*		Node node = getNode();
+
+		if (node == null) {
+			return;
+		}
+
+		switch (getStyleIndex()) {
+		case SPEC_PILLAR:
+			super.saveSign("buoy_special_purpose"); //$NON-NLS-1$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_special_purpose:shape", "pillar")); //$NON-NLS-1$ //$NON-NLS-2$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_special_purpose:colour", "yellow")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case SPEC_SPAR:
+			super.saveSign("buoy_special_purpose"); //$NON-NLS-1$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_special_purpose:shape", "spar")); //$NON-NLS-1$ //$NON-NLS-2$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_special_purpose:colour", "yellow")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case SPEC_CAN:
+			super.saveSign("buoy_special_purpose"); //$NON-NLS-1$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_special_purpose:shape", "can")); //$NON-NLS-1$ //$NON-NLS-2$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_special_purpose:colour", "yellow")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case SPEC_CONE:
+			super.saveSign("buoy_special_purpose"); //$NON-NLS-1$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_special_purpose:shape", "conical")); //$NON-NLS-1$ //$NON-NLS-2$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_special_purpose:colour", "yellow")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case SPEC_SPHERE:
+			super.saveSign("buoy_special_purpose"); //$NON-NLS-1$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_special_purpose:shape", "sphere")); //$NON-NLS-1$ //$NON-NLS-2$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_special_purpose:colour", "yellow")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case SPEC_BARREL:
+			super.saveSign("buoy_special_purpose"); //$NON-NLS-1$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_special_purpose:shape", "barrel")); //$NON-NLS-1$ //$NON-NLS-2$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:buoy_special_purpose:colour", "yellow")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case SPEC_FLOAT:
+			super.saveSign("light_float"); //$NON-NLS-1$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:light_float:colour", "yellow")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case SPEC_BEACON:
+			super.saveSign("beacon_special_purpose"); //$NON-NLS-1$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:beacon_special_purpose:colour", "yellow")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case SPEC_TOWER:
+			super.saveSign("beacon_special_purpose"); //$NON-NLS-1$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:beacon_special_purpose:shape", "tower")); //$NON-NLS-1$ //$NON-NLS-2$
+			Main.main.undoRedo.add(new ChangePropertyCommand(node,
+					"seamark:beacon_special_purpose:colour", "yellow")); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		default:
+		}
+		switch (getTopMarkIndex()) {
+		case TOP_YELLOW_X:
+			saveTopMarkData("x-shape", "yellow"); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case TOP_RED_X:
+			saveTopMarkData("x-shape", "red"); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case TOP_YELLOW_CAN:
+			saveTopMarkData("cylinder", "yellow"); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		case TOP_YELLOW_CONE:
+			saveTopMarkData("cone, point up", "yellow"); //$NON-NLS-1$ //$NON-NLS-2$
+			break;
+		}
+		saveLightData(); //$NON-NLS-1$
+		saveRadarFogData();
+*/	}
+}
Index: applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkUkn.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkUkn.java	(revision 24779)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkUkn.java	(revision 24779)
@@ -0,0 +1,33 @@
+package oseam.seamarks;
+
+import javax.swing.ImageIcon;
+
+import org.openstreetmap.josm.Main;
+
+import oseam.dialogs.OSeaMAction;
+
+public class MarkUkn extends SeaMark {
+	public MarkUkn(OSeaMAction dia, String Msg) {
+		super(dia);
+//		dlg.cbM01TypeOfMark.setSelectedIndex(0);
+		setErrMsg(Msg);
+	}
+
+	public void paintSign() {
+/*		if (dlg.paintlock)
+			return;
+		super.paintSign();
+
+		if (getErrMsg() != null)
+			dlg.sM01StatusBar.setText(getErrMsg());
+
+		setErrMsg(null);
+*/	}
+
+	public void setLightColour() {
+		super.setLightColour("");
+	}
+
+	public void saveSign() {
+	}
+}
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 24778)
+++ applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/SeaMark.java	(revision 24779)
@@ -6,4 +6,6 @@
 import org.openstreetmap.josm.command.ChangePropertyCommand;
 import org.openstreetmap.josm.data.osm.Node;
+
+import oseam.dialogs.OSeaMAction;
 
 abstract public class SeaMark {
@@ -140,9 +142,37 @@
 	 */
 
-	public abstract void setLightColour();
-
-	public abstract void paintSign();
-
-	public abstract void saveSign();
+	protected OSeaMAction dlg = null;
+
+	public OSeaMAction getDlg() {
+		return dlg;
+	}
+
+	public void setDlg(OSeaMAction dlg) {
+		this.dlg = dlg;
+	}
+
+	protected SeaMark(OSeaMAction dia) {
+		dlg = dia;
+	}
+
+	private Node Node = null;
+
+	public Node getNode() {
+		return Node;
+	}
+
+	public void setNode(Node node) {
+		Node = node;
+	}
+
+	private boolean Region = false;
+
+	public boolean getRegion() {
+		return Region;
+	}
+
+	public void setRegion(boolean region) {
+		Region = region;
+	}
 
 	private int Colour = UNKNOWN_COLOUR;
@@ -180,4 +210,24 @@
 	}
 
+	private int MarkIndex = 0;
+
+	public int getMarkIndex() {
+		return MarkIndex;
+	}
+
+	public void setMarkIndex(int buoyIndex) {
+		MarkIndex = buoyIndex;
+	}
+
+	private int StyleIndex = 0;
+
+	public int getStyleIndex() {
+		return StyleIndex;
+	}
+
+	public void setStyleIndex(int styleIndex) {
+		StyleIndex = styleIndex;
+	}
+
 	private boolean valid = true;
 
@@ -190,4 +240,30 @@
 
 	}
+
+	private int SectorIndex = 0;
+
+	public int getSectorIndex() {
+		return SectorIndex;
+	}
+
+	public void setSectorIndex(int sector) {
+		SectorIndex = sector;
+	}
+
+	private String[] LightColour = new String[10];
+
+	public String getLightColour() {
+		if (LightColour[SectorIndex] == null)
+			return (LightColour[0]);
+		return LightColour[SectorIndex];
+	}
+
+	public void setLightColour(String lightColour) {
+		LightColour[SectorIndex] = lightColour;
+	}
+
+	public abstract void paintSign();
+
+	public abstract void saveSign();
 
 	protected void delSeaMarkKeys(Node node) {
