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 24823)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkCard.java	(revision 24824)
@@ -116,28 +116,4 @@
 		 */
 		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";
 			switch (getShape()) {
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 24823)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkIsol.java	(revision 24824)
@@ -2,4 +2,6 @@
 
 import java.util.Map;
+
+import javax.swing.ImageIcon;
 
 import org.openstreetmap.josm.Main;
@@ -82,55 +84,23 @@
 
 		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";
 
-			switch (getStyleIndex()) {
-			case ISOL_PILLAR:
+			switch (getShape()) {
+			case PILLAR:
 				image += "_Pillar_Single";
 				break;
-			case ISOL_SPAR:
+			case SPAR:
 				image += "_Spar_Single";
 				break;
-			case ISOL_BEACON:
+			case BEACON:
 				image += "_Beacon_Single";
 				break;
-			case ISOL_TOWER:
+			case TOWER:
 				image += "_Tower_Single";
 				break;
-			case ISOL_FLOAT:
+			case FLOAT:
 				image += "_Float_Single";
 				break;
@@ -140,17 +110,10 @@
 			if (!image.equals("/images/Cardinal")) {
 				image += ".png";
-				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(image)));
+				dlg.panelMain.shapeIcon.setIcon(new ImageIcon(getClass()
+						.getResource(image)));
 			} else
-				dlg.lM01Icon.setIcon(null);
-		} else {
-			dlg.tfM01Name.setEnabled(false);
-			dlg.tfM01Name.setText("");
-			dlg.cM01TopMark.setVisible(false);
-			dlg.cM01Radar.setVisible(false);
-			dlg.cM01Racon.setVisible(false);
-			dlg.cM01Fog.setVisible(false);
-			dlg.cM01Fired.setVisible(false);
+				dlg.panelMain.shapeIcon.setIcon(null);
 		}
-*/	}
+	}
 
 	public void saveSign() {
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 24823)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkLat.java	(revision 24824)
@@ -2,4 +2,6 @@
 
 import java.util.Map;
+
+import javax.swing.ImageIcon;
 
 import org.openstreetmap.josm.data.osm.Node;
@@ -8,4 +10,6 @@
 
 import oseam.dialogs.OSeaMAction;
+import oseam.seamarks.SeaMark.Cat;
+import oseam.seamarks.SeaMark.Styl;
 
 public class MarkLat extends SeaMark {
@@ -200,36 +204,36 @@
 			case PORT_HAND:
 				if (str.equals("can"))
-					setStyleIndex(LAT_CAN);
+					setStyleIndex(CAN);
 				else if (str.equals("pillar"))
-					setStyleIndex(LAT_PILLAR);
+					setStyleIndex(PILLAR);
 				else if (str.equals("spar"))
-					setStyleIndex(LAT_SPAR);
+					setStyleIndex(SPAR);
 				break;
 
 			case PREF_PORT_HAND:
 				if (str.equals("can"))
-					setStyleIndex(LAT_CAN);
+					setStyleIndex(CAN);
 				else if (str.equals("pillar"))
-					setStyleIndex(LAT_PILLAR);
+					setStyleIndex(PILLAR);
 				else if (str.equals("spar"))
-					setStyleIndex(LAT_SPAR);
+					setStyleIndex(SPAR);
 				break;
 
 			case STARBOARD_HAND:
 				if (str.equals("conical"))
-					setStyleIndex(LAT_CONE);
+					setStyleIndex(CONE);
 				else if (str.equals("pillar"))
-					setStyleIndex(LAT_PILLAR);
+					setStyleIndex(PILLAR);
 				else if (str.equals("spar"))
-					setStyleIndex(LAT_SPAR);
+					setStyleIndex(SPAR);
 				break;
 
 			case PREF_STARBOARD_HAND:
 				if (str.equals("conical"))
-					setStyleIndex(LAT_CONE);
+					setStyleIndex(CONE);
 				else if (str.equals("pillar"))
-					setStyleIndex(LAT_PILLAR);
+					setStyleIndex(PILLAR);
 				else if (str.equals("spar"))
-					setStyleIndex(LAT_SPAR);
+					setStyleIndex(SPAR);
 				break;
 			}
@@ -237,97 +241,36 @@
 			str = keys.get("seamark:beacon_lateral:shape");
 			if (str.equals("tower"))
-				setStyleIndex(LAT_TOWER);
+				setStyleIndex(TOWER);
 			else if (str.equals("perch"))
-				setStyleIndex(LAT_PERCH);
+				setStyleIndex(PERCH);
 			else
-				setStyleIndex(LAT_BEACON);
+				setStyleIndex(BEACON);
 		} else if (keys.containsKey("seamark:type")
 				&& (keys.get("seamark:type").equals("beacon_lateral"))) {
-			setStyleIndex(LAT_BEACON);
+			setStyleIndex(BEACON);
 		} else if (keys.containsKey("seamark:type")
 				&& (keys.get("seamark:type").equals("light_float"))) {
-			setStyleIndex(LAT_FLOAT);
+			setStyleIndex(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"));
-
-		switch (type) {
-		case PORT_HAND:
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.02"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.01"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.04"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.05"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.06"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.07"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.10"));
-			break;
-		case STARBOARD_HAND:
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.03"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.01"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.04"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.05"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.06"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.07"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.10"));
-			break;
-		case PREF_PORT_HAND:
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.02"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.01"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.04"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.05"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.06"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.07"));
-			break;
-		case PREF_STARBOARD_HAND:
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.03"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.01"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.04"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.05"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.06"));
-			dlg.cbM01StyleOfMark.addItem(Messages.getString("Buoy.07"));
-			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);
+		return (getCategory() != Cat.UNKNOWN_CAT)
+				&& (getShape() != Styl.UNKNOWN_SHAPE);
 	}
 
 	public void setLightColour() {
 		if (getRegion() == IALA_A) {
-			if (getBuoyIndex() == PORT_HAND || getBuoyIndex() == PREF_PORT_HAND)
+			if (getCategory() == Cat.PORT_HAND || getCategory() == Cat.PREF_PORT_HAND)
 				super.setLightColour("R");
 			else
 				super.setLightColour("G");
 		} else {
-			if (getBuoyIndex() == PORT_HAND || getBuoyIndex() == PREF_PORT_HAND)
+			if (getCategory() == Cat.PORT_HAND || getCategory() == Cat.PREF_PORT_HAND)
 				super.setLightColour("G");
 			else
@@ -335,87 +278,39 @@
 		}
 	}
-*/
+
 	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:
-				}
-			}
+		boolean region = getRegion();
+			Styl style = getShape();
 
 			String image = "/images/Lateral";
 
-			switch (getBuoyIndex()) {
+			switch (getCategory()) {
 			case PORT_HAND:
 				if (region == IALA_A)
 					switch (style) {
-					case LAT_CAN:
+					case CAN:
 						image += "_Can_Red";
 						break;
-					case LAT_PILLAR:
+					case PILLAR:
 						image += "_Pillar_Red";
 						break;
-					case LAT_SPAR:
+					case SPAR:
 						image += "_Spar_Red";
 						break;
-					case LAT_BEACON:
+					case BEACON:
 						image += "_Beacon_Red";
 						break;
-					case LAT_TOWER:
+					case TOWER:
 						image += "_Tower_Red";
 						break;
-					case LAT_FLOAT:
+					case FLOAT:
 						image += "_Float_Red";
 						break;
-					case LAT_PERCH:
+					case PERCH:
 						image += "_Perch_Port";
 						break;
@@ -424,23 +319,23 @@
 				else
 					switch (style) {
-					case LAT_CAN:
+					case CAN:
 						image += "_Can_Green";
 						break;
-					case LAT_PILLAR:
+					case PILLAR:
 						image += "_Pillar_Green";
 						break;
-					case LAT_SPAR:
+					case SPAR:
 						image += "_Spar_Green";
 						break;
-					case LAT_BEACON:
+					case BEACON:
 						image += "_Beacon_Green";
 						break;
-					case LAT_TOWER:
+					case TOWER:
 						image += "_Tower_Green";
 						break;
-					case LAT_FLOAT:
+					case FLOAT:
 						image += "_Float_Green";
 						break;
-					case LAT_PERCH:
+					case PERCH:
 						image += "_Perch_Port";
 						break;
@@ -452,23 +347,23 @@
 				if (region == IALA_A)
 					switch (style) {
-					case LAT_CONE:
+					case CONE:
 						image += "_Cone_Green";
 						break;
-					case LAT_PILLAR:
+					case PILLAR:
 						image += "_Pillar_Green";
 						break;
-					case LAT_SPAR:
+					case SPAR:
 						image += "_Spar_Green";
 						break;
-					case LAT_BEACON:
+					case BEACON:
 						image += "_Beacon_Green";
 						break;
-					case LAT_TOWER:
+					case TOWER:
 						image += "_Tower_Green";
 						break;
-					case LAT_FLOAT:
+					case FLOAT:
 						image += "_Float_Green";
 						break;
-					case LAT_PERCH:
+					case PERCH:
 						image += "_Perch_Starboard";
 						break;
@@ -477,23 +372,23 @@
 				else
 					switch (style) {
-					case LAT_CONE:
+					case CONE:
 						image += "_Cone_Red";
 						break;
-					case LAT_PILLAR:
+					case PILLAR:
 						image += "_Pillar_Red";
 						break;
-					case LAT_SPAR:
+					case SPAR:
 						image += "_Spar_Red";
 						break;
-					case LAT_BEACON:
+					case BEACON:
 						image += "_Beacon_Red";
 						break;
-					case LAT_TOWER:
+					case TOWER:
 						image += "_Tower_Red";
 						break;
-					case LAT_FLOAT:
+					case FLOAT:
 						image += "_Float_Red";
 						break;
-					case LAT_PERCH:
+					case PERCH:
 						image += "_Perch_Starboard";
 						break;
@@ -505,20 +400,20 @@
 				if (region == IALA_A)
 					switch (style) {
-					case LAT_CAN:
+					case CAN:
 						image += "_Can_Red_Green_Red";
 						break;
-					case LAT_PILLAR:
+					case PILLAR:
 						image += "_Pillar_Red_Green_Red";
 						break;
-					case LAT_SPAR:
+					case SPAR:
 						image += "_Spar_Red_Green_Red";
 						break;
-					case LAT_BEACON:
+					case BEACON:
 						image += "_Beacon_Red_Green_Red";
 						break;
-					case LAT_TOWER:
+					case TOWER:
 						image += "_Tower_Red_Green_Red";
 						break;
-					case LAT_FLOAT:
+					case FLOAT:
 						image += "_Float_Red_Green_Red";
 						break;
@@ -527,20 +422,20 @@
 				else
 					switch (style) {
-					case LAT_CAN:
+					case CAN:
 						image += "_Can_Green_Red_Green";
 						break;
-					case LAT_PILLAR:
+					case PILLAR:
 						image += "_Pillar_Green_Red_Green";
 						break;
-					case LAT_SPAR:
+					case SPAR:
 						image += "_Spar_Green_Red_Green";
 						break;
-					case LAT_BEACON:
+					case BEACON:
 						image += "_Beacon_Green_Red_Green";
 						break;
-					case LAT_TOWER:
+					case TOWER:
 						image += "_Tower_Green_Red_Green";
 						break;
-					case LAT_FLOAT:
+					case FLOAT:
 						image += "_Float_Green_Red_Green";
 						break;
@@ -552,20 +447,20 @@
 				if (region == IALA_A)
 					switch (style) {
-					case LAT_CONE:
+					case CONE:
 						image += "_Cone_Green_Red_Green";
 						break;
-					case LAT_PILLAR:
+					case PILLAR:
 						image += "_Pillar_Green_Red_Green";
 						break;
-					case LAT_SPAR:
+					case SPAR:
 						image += "_Spar_Green_Red_Green";
 						break;
-					case LAT_BEACON:
+					case BEACON:
 						image += "_Beacon_Green_Red_Green";
 						break;
-					case LAT_TOWER:
+					case TOWER:
 						image += "_Tower_Green_Red_Green";
 						break;
-					case LAT_FLOAT:
+					case FLOAT:
 						image += "_Float_Green_Red_Green";
 						break;
@@ -574,20 +469,20 @@
 				else
 					switch (style) {
-					case LAT_CONE:
+					case CONE:
 						image += "_Cone_Red_Green_Red";
 						break;
-					case LAT_PILLAR:
+					case PILLAR:
 						image += "_Pillar_Red_Green_Red";
 						break;
-					case LAT_SPAR:
+					case SPAR:
 						image += "_Spar_Red_Green_Red";
 						break;
-					case LAT_BEACON:
+					case BEACON:
 						image += "_Beacon_Red_Green_Red";
 						break;
-					case LAT_TOWER:
+					case TOWER:
 						image += "_Tower_Red_Green_Red";
 						break;
-					case LAT_FLOAT:
+					case FLOAT:
 						image += "_Float_Red_Green_Red";
 						break;
@@ -602,25 +497,26 @@
 
 				image += ".png";
-				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(image)));
+				dlg.panelMain.shapeIcon.setIcon(new ImageIcon(getClass()
+						.getResource(image)));
 
 				if (hasTopMark()) {
 					image = "";
-					switch (getBuoyIndex()) {
+					switch (getCategory()) {
 					case PORT_HAND:
 					case PREF_PORT_HAND:
 						if (region == IALA_A)
 							switch (style) {
-							case LAT_CAN:
+							case CAN:
 								image = "/images/Top_Can_Red_Buoy_Small.png";
 								break;
-							case LAT_PILLAR:
-							case LAT_SPAR:
+							case PILLAR:
+							case SPAR:
 								image = "/images/Top_Can_Red_Buoy.png";
 								break;
-							case LAT_BEACON:
-							case LAT_TOWER:
+							case BEACON:
+							case TOWER:
 								image = "/images/Top_Can_Red_Beacon.png";
 								break;
-							case LAT_FLOAT:
+							case FLOAT:
 								image = "/images/Top_Can_Red_Float.png";
 								break;
@@ -628,16 +524,16 @@
 						else
 							switch (style) {
-							case LAT_CAN:
+							case CAN:
 								image = "/images/Top_Can_Green_Buoy_Small.png";
 								break;
-							case LAT_PILLAR:
-							case LAT_SPAR:
+							case PILLAR:
+							case SPAR:
 								image = "/images/Top_Can_Green_Buoy.png";
 								break;
-							case LAT_BEACON:
-							case LAT_TOWER:
+							case BEACON:
+							case TOWER:
 								image = "/images/Top_Can_Green_Beacon.png";
 								break;
-							case LAT_FLOAT:
+							case FLOAT:
 								image = "/images/Top_Can_Green_Float.png";
 								break;
@@ -649,16 +545,16 @@
 						if (region == IALA_A)
 							switch (style) {
-							case LAT_CONE:
+							case CONE:
 								image = "/images/Top_Cone_Green_Buoy_Small.png";
 								break;
-							case LAT_PILLAR:
-							case LAT_SPAR:
+							case PILLAR:
+							case SPAR:
 								image = "/images/Top_Cone_Green_Buoy.png";
 								break;
-							case LAT_BEACON:
-							case LAT_TOWER:
+							case BEACON:
+							case TOWER:
 								image = "/images/Top_Cone_Green_Beacon.png";
 								break;
-							case LAT_FLOAT:
+							case FLOAT:
 								image = "/images/Top_Cone_Green_Float.png";
 								break;
@@ -666,16 +562,16 @@
 						else
 							switch (style) {
-							case LAT_CONE:
+							case CONE:
 								image = "/images/Top_Cone_Red_Buoy_Small.png";
 								break;
-							case LAT_PILLAR:
-							case LAT_SPAR:
+							case PILLAR:
+							case SPAR:
 								image = "/images/Top_Cone_Red_Buoy.png";
 								break;
-							case LAT_BEACON:
-							case LAT_TOWER:
+							case BEACON:
+							case TOWER:
 								image = "/images/Top_Cone_Red_Beacon.png";
 								break;
-							case LAT_FLOAT:
+							case FLOAT:
 								image = "/images/Top_Cone_Red_Float.png";
 								break;
@@ -684,10 +580,11 @@
 					}
 					if (!image.isEmpty())
-						dlg.lM06Icon.setIcon(new ImageIcon(getClass().getResource(image)));
+						dlg.panelMain.topIcon.setIcon(new ImageIcon(getClass()
+								.getResource(image)));
 				}
 			} else
-				dlg.lM01Icon.setIcon(null);
+				dlg.panelMain.shapeIcon.setIcon(null);
 		}
-*/	}
+	}
 
 	public void saveSign() {
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 24823)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkLight.java	(revision 24824)
@@ -2,4 +2,6 @@
 
 import java.util.Map;
+
+import javax.swing.ImageIcon;
 
 import org.openstreetmap.josm.data.osm.Node;
@@ -70,37 +72,25 @@
 			return;
 		super.paintSign();
+*/
+		if (isValid()) {
 
-		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(
+			switch (getCategory()) {
+			case LIGHT_HOUSE:
+				dlg.panelMain.shapeIcon.setIcon(new ImageIcon(getClass().getResource(
 						"/images/Light_House.png")));
 				break;
 
-			case SeaMark.LIGHT_MAJOR:
-				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(
+			case LIGHT_MAJOR:
+				dlg.panelMain.shapeIcon.setIcon(new ImageIcon(getClass().getResource(
 						"/images/Light_Major.png")));
 				break;
 
-			case SeaMark.LIGHT_MINOR:
-				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(
+			case LIGHT_MINOR:
+				dlg.panelMain.shapeIcon.setIcon(new ImageIcon(getClass().getResource(
 						"/images/Light_Minor.png")));
 				break;
 
-			case SeaMark.LIGHT_VESSEL:
-				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(
+			case LIGHT_VESSEL:
+				dlg.panelMain.shapeIcon.setIcon(new ImageIcon(getClass().getResource(
 						"/images/Major_Float.png")));
 				break;
@@ -109,5 +99,5 @@
 			}
 		}
-*/	}
+	}
 
 	public void saveSign() {
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 24823)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkSaw.java	(revision 24824)
@@ -2,4 +2,6 @@
 
 import java.util.Map;
+
+import javax.swing.ImageIcon;
 
 import org.openstreetmap.josm.data.osm.Node;
@@ -14,5 +16,5 @@
 		super(dia, node);
 	}
-	
+
 	public void parseMark() {
 
@@ -39,120 +41,74 @@
 			setName(keys.get("seamark:light_float:name"));
 
-/*
-
-		setBuoyIndex(SAFE_WATER);
-		setColour(SeaMark.RED_WHITE);
-		setLightColour("W");
-		setRegion(Main.pref.get("tomsplugin.IALA").equals("B"));
-
-		if (keys.containsKey("seamark:buoy_safe_water:shape")) {
-			str = keys.get("seamark:buoy_safe_water:shape");
-
-			if (str.equals("pillar"))
-				setStyleIndex(SAFE_PILLAR);
-			else if (str.equals("spar"))
-				setStyleIndex(SAFE_SPAR);
-			else if (str.equals("sphere"))
-				setStyleIndex(SAFE_SPHERE);
-		} else if ((keys.containsKey("seamark:type"))
-				&& (keys.get("seamark:type").equals("light_float"))) {
-			setStyleIndex(SAFE_FLOAT);
-		} else if ((keys.containsKey("seamark:type"))
-				&& (keys.get("seamark:type").equals("beacon_safe_water"))) {
-			setStyleIndex(SAFE_BEACON);
-		}
-
-		if (getStyleIndex() >= dlg.cbM01StyleOfMark.getItemCount())
-			setStyleIndex(0);
-
-		if (keys.containsKey("seamark:topmark:shape")
-				|| keys.containsKey("seamark:topmark:colour")) {
-			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"));
-		dlg.cbM01Kennung.addItem("Iso");
-		dlg.cbM01Kennung.addItem("Oc");
-		dlg.cbM01Kennung.addItem("LFl");
-		dlg.cbM01Kennung.addItem("Mo");
-		dlg.cbM01Kennung.setSelectedIndex(0);
-	}
-
-	public boolean isValid() {
-		return (getBuoyIndex() > 0) && (getStyleIndex() > 0);
-	}
-
-	public void setLightColour() {
-		super.setLightColour("W");
-	}
-*/
+		/*
+		 * 
+		 * setBuoyIndex(SAFE_WATER);
+		 *  setColour(SeaMark.RED_WHITE);
+		 * setLightColour("W");
+		 * setRegion(Main.pref.get("tomsplugin.IALA").equals("B"));
+		 * 
+		 * if (keys.containsKey("seamark:buoy_safe_water:shape")) {
+		 *  str = keys.get("seamark:buoy_safe_water:shape");
+		 * 
+		 * if (str.equals("pillar")) setStyleIndex(SAFE_PILLAR);
+		 *  else if
+		 * (str.equals("spar")) setStyleIndex(SAFE_SPAR);
+		 *  else if (str.equals("sphere")) setStyleIndex(SAFE_SPHERE);
+		 *   } else if ((keys.containsKey("seamark:type")) &&
+		 * (keys.get("seamark:type").equals("light_float"))) {
+		 * setStyleIndex(SAFE_FLOAT);
+		 *  } else if ((keys.containsKey("seamark:type")) &&
+		 * (keys.get("seamark:type").equals("beacon_safe_water"))) {
+		 * setStyleIndex(SAFE_BEACON); }
+		 * 
+		 * if (getStyleIndex() >= dlg.cbM01StyleOfMark.getItemCount())
+		 * setStyleIndex(0);
+		 * 
+		 * if (keys.containsKey("seamark:topmark:shape") ||
+		 * keys.containsKey("seamark:topmark:colour")) { 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"));
+	 * dlg.cbM01Kennung.addItem("Iso"); dlg.cbM01Kennung.addItem("Oc");
+	 * dlg.cbM01Kennung.addItem("LFl"); dlg.cbM01Kennung.addItem("Mo");
+	 * dlg.cbM01Kennung.setSelectedIndex(0); }
+	 * 
+	 * public boolean isValid() { return (getBuoyIndex() > 0) &&
+	 * (getStyleIndex() > 0); }
+	 * 
+	 * public void setLightColour() { super.setLightColour("W"); }
+	 */
 	public void paintSign() {
-/*		if (dlg.paintlock)
-			return;
-		super.paintSign();
-
-		dlg.sM01StatusBar.setText(getErrMsg());
-
+		/*
+		 * if (dlg.paintlock) return; super.paintSign();
+		 */
 		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";
 
-			switch (getStyleIndex()) {
-			case SAFE_PILLAR:
+			switch (getShape()) {
+			case PILLAR:
 				image += "_Pillar";
 				break;
-			case SAFE_SPAR:
+			case SPAR:
 				image += "_Spar";
 				break;
-			case SAFE_SPHERE:
+			case SPHERE:
 				image += "_Sphere";
 				break;
-			case SAFE_BEACON:
+			case BEACON:
 				image += "_Beacon";
 				break;
-			case SAFE_FLOAT:
+			case FLOAT:
 				image += "_Float";
 				break;
@@ -162,29 +118,34 @@
 			if (!image.equals("/images/Safe_Water")) {
 				image += ".png";
-				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(image)));
+				dlg.panelMain.shapeIcon.setIcon(new ImageIcon(getClass()
+						.getResource(image)));
 				if (hasTopMark()) {
 					image = "";
-					switch (getStyleIndex()) {
-					case SAFE_PILLAR:
-					case SAFE_SPAR:
+					switch (getShape()) {
+					case PILLAR:
+					case SPAR:
 						image = "/images/Top_Sphere_Red_Buoy.png";
 						break;
-					case SAFE_SPHERE:
+					case SPHERE:
 						image = "/images/Top_Sphere_Red_Buoy_Small.png";
 						break;
-					case SAFE_BEACON:
+					case BEACON:
 						image = "/images/Top_Sphere_Red_Beacon.png";
 						break;
-					case SAFE_FLOAT:
+					case FLOAT:
 						image = "/images/Top_Sphere_Red_Float.png";
 						break;
 					}
 					if (!image.isEmpty())
-						dlg.lM06Icon.setIcon(new ImageIcon(getClass().getResource(image)));
-				}
-			} else
-				dlg.lM01Icon.setIcon(null);
-		}
-*/	}
+						dlg.panelMain.topIcon.setIcon(new ImageIcon(getClass()
+								.getResource(image)));
+				} else
+					dlg.panelMain.topIcon.setIcon(null);
+			} else {
+				dlg.panelMain.shapeIcon.setIcon(null);
+				dlg.panelMain.topIcon.setIcon(null);
+			}
+		}
+	}
 
 	public void saveSign() {
@@ -225,5 +186,6 @@
 		case SPHERE:
 			Main.main.undoRedo.add(new ChangePropertyCommand(node,
-					"seamark:buoy_safe_water:colour_pattern", "vertical stripes"));
+					"seamark:buoy_safe_water:colour_pattern",
+					"vertical stripes"));
 			Main.main.undoRedo.add(new ChangePropertyCommand(node,
 					"seamark:buoy_safe_water:colour", "red;white"));
@@ -231,5 +193,6 @@
 		case BEACON:
 			Main.main.undoRedo.add(new ChangePropertyCommand(node,
-					"seamark:beacon_safe_water:colour_pattern", "vertical stripes"));
+					"seamark:beacon_safe_water:colour_pattern",
+					"vertical stripes"));
 			Main.main.undoRedo.add(new ChangePropertyCommand(node,
 					"seamark:beacon_safe_water:colour", "red;white"));
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 24823)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkSpec.java	(revision 24824)
@@ -2,4 +2,6 @@
 
 import java.util.Map;
+
+import javax.swing.ImageIcon;
 
 import org.openstreetmap.josm.data.osm.Node;
@@ -9,4 +11,6 @@
 import oseam.dialogs.OSeaMAction;
 import oseam.seamarks.SeaMark;
+import oseam.seamarks.SeaMark.Cat;
+import oseam.seamarks.SeaMark.Styl;
 
 public class MarkSpec extends SeaMark {
@@ -49,15 +53,15 @@
 
 			if (str.equals("pillar"))
-				setStyleIndex(SPEC_PILLAR);
+				setStyleIndex(PILLAR);
 			else if (str.equals("can"))
-				setStyleIndex(SPEC_CAN);
+				setStyleIndex(CAN);
 			else if (str.equals("conical"))
-				setStyleIndex(SPEC_CONE);
+				setStyleIndex(CONE);
 			else if (str.equals("spar"))
-				setStyleIndex(SPEC_SPAR);
+				setStyleIndex(SPAR);
 			else if (str.equals("sphere"))
-				setStyleIndex(SPEC_SPHERE);
+				setStyleIndex(SPHERE);
 			else if (str.equals("barrel"))
-				setStyleIndex(SPEC_BARREL);
+				setStyleIndex(BARREL);
 		}
 
@@ -65,11 +69,11 @@
 			str = keys.get("seamark:beacon_special_purpose:shape");
 			if (str.equals("tower"))
-				setStyleIndex(SPEC_TOWER);
+				setStyleIndex(TOWER);
 			else
-				setStyleIndex(SPEC_BEACON);
+				setStyleIndex(BEACON);
 		}
 
 		if (keys.containsKey("seamark:light_float:colour")) {
-			setStyleIndex(SPEC_FLOAT);
+			setStyleIndex(FLOAT);
 		}
 
@@ -80,10 +84,10 @@
 			if (keys.containsKey("seamark:beacon_special_purpose:shape")
 					&& keys.get("seamark:beacon_special_purpose:shape").equals("tower"))
-				setStyleIndex(SPEC_TOWER);
+				setStyleIndex(TOWER);
 			else
-				setStyleIndex(SPEC_BEACON);
+				setStyleIndex(BEACON);
 		} else if (keys.containsKey("seamark:light_float:colour")
 				&& keys.get("seamark:light_float:colour").equals("yellow"))
-			setStyleIndex(SPEC_FLOAT);
+			setStyleIndex(FLOAT);
 
 		if (getStyleIndex() >= dlg.cbM01StyleOfMark.getItemCount())
@@ -108,5 +112,4 @@
 		}
 
-		refreshLights();
 		parseLights(keys);
 		parseFogRadar(keys);
@@ -116,22 +119,8 @@
 		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);
+		return (getCategory() != Cat.UNKNOWN_CAT)
+				&& (getShape() != Styl.UNKNOWN_SHAPE);
 	}
 
@@ -139,81 +128,40 @@
 		super.setLightColour("W");
 	}
-*/
+
 	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";
 
-			switch (getStyleIndex()) {
-			case SPEC_PILLAR:
+			switch (getShape()) {
+			case PILLAR:
 				image += "_Pillar";
 				break;
-			case SPEC_CAN:
+			case CAN:
 				image += "_Can";
 				break;
-			case SPEC_CONE:
+			case CONE:
 				image += "_Cone";
 				break;
-			case SPEC_SPAR:
+			case SPAR:
 				image += "_Spar";
 				break;
-			case SPEC_SPHERE:
+			case SPHERE:
 				image += "_Sphere";
 				break;
-			case SPEC_BARREL:
+			case BARREL:
 				image += "_Barrel";
 				break;
-			case SPEC_FLOAT:
+			case FLOAT:
 				image += "_Float";
 				break;
-			case SPEC_BEACON:
+			case BEACON:
 				image += "_Beacon";
 				break;
-			case SPEC_TOWER:
+			case TOWER:
 				image += "_Tower";
 				break;
@@ -223,10 +171,11 @@
 			if (!image.equals("/images/Special_Purpose")) {
 				image += ".png";
-				dlg.lM01Icon.setIcon(new ImageIcon(getClass().getResource(image)));
-				if (hasTopMark()) {
+				dlg.panelMain.topIcon.setIcon(new ImageIcon(getClass()
+						.getResource(image)));
+/*				if (hasTopMark()) {
 					image = "";
-					switch (getStyleIndex()) {
-					case SPEC_PILLAR:
-					case SPEC_SPAR:
+					switch (getShape()) {
+					case PILLAR:
+					case SPAR:
 						switch (getTopMarkIndex()) {
 						case TOP_YELLOW_X:
@@ -244,8 +193,8 @@
 						}
 						break;
-					case SPEC_CAN:
-					case SPEC_CONE:
-					case SPEC_SPHERE:
-					case SPEC_BARREL:
+					case CAN:
+					case CONE:
+					case SPHERE:
+					case BARREL:
 						switch (getTopMarkIndex()) {
 						case TOP_YELLOW_X:
@@ -263,6 +212,6 @@
 						}
 						break;
-					case SPEC_BEACON:
-					case SPEC_TOWER:
+					case BEACON:
+					case TOWER:
 						switch (getTopMarkIndex()) {
 						case TOP_YELLOW_X:
@@ -280,5 +229,5 @@
 						}
 						break;
-					case SPEC_FLOAT:
+					case FLOAT:
 						switch (getTopMarkIndex()) {
 						case TOP_YELLOW_X:
@@ -300,8 +249,8 @@
 						dlg.lM06Icon.setIcon(new ImageIcon(getClass().getResource(image)));
 				}
-			} else
-				dlg.lM01Icon.setIcon(null);
-		}
-*/	}
+*/			} else
+				dlg.panelMain.shapeIcon.setIcon(null);
+		}
+	}
 
 	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 24823)
+++ /applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/SeaMark.java	(revision 24824)
@@ -162,4 +162,14 @@
 	public void setValid(boolean val) {
 		valid = val;
+	}
+
+	private boolean TopMark = false;
+
+	public boolean hasTopMark() {
+		return TopMark;
+	}
+
+	public void setTopMark(boolean topMark) {
+		TopMark = topMark;
 	}
 
