Index: /applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 22945)
+++ /applications/editors/josm/plugins/toms/src/toms/dialogs/SmpDialogAction.java	(revision 22946)
@@ -11,4 +11,9 @@
 import java.awt.SystemColor;
 import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ItemListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.FocusAdapter;
+import java.awt.event.FocusEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.WindowEvent;
@@ -102,32 +107,54 @@
 	private JDialog dM01SeaMap = null;
 	private JPanel pM01SeaMap = null;
-	private JLabel lM01TimeUnit = null;
-	private JLabel lM01RepeatTime = null;
-	private JLabel lM01Kennung = null;
-	private JLabel lM01Name = null;
-	private JLabel lM01Props02 = null;
-	private JLabel lM01StyleOfMark = null;
-	private JLabel lM01TypeOfMark = null;
+	private JLabel lM01Head = null;
 	private JLabel lM01Region = null;
-	private JLabel lM01Head = null;
-	public JLabel lM01Icon01 = null;
-	public JLabel lM01Icon02 = null;
+	private JLabel lM02Region = null;
 	public ButtonGroup bgM01Region = null;
 	public JRadioButton rbM01RegionA = null;
 	public JRadioButton rbM01RegionB = null;
+	public JLabel lM01Icon01 = null;
+	public JLabel lM01Icon02 = null;
+	public JLabel lM01FireMark = null;
+	private JLabel lM01Name = null;
+	public JTextField tfM01Name = null;
+	private JLabel lM01StyleOfMark = null;
+	private JLabel lM01CatOfMark = null;
+	private JLabel lM01TypeOfMark = null;
+	private JLabel lM01Props02 = null;
 	public JComboBox cbM01TypeOfMark = null;
+	public JComboBox cbM01CatOfMark = null;
 	public JComboBox cbM01StyleOfMark = null;
+	public JCheckBox cM01TopMark = null;
+	public JComboBox cbM01TopMark = null;
+	private JCheckBox cM01Radar = null;
+	private JCheckBox cM01Racon = null;
+	private JComboBox cbM01Racon = null;
+	private JTextField tfM01Racon = null;
+	private JLabel lM01Racon = null;
+	private JCheckBox cM01Fog = null;
+	private JComboBox cbM01Fog = null;
+	private JLabel lM01FogGroup = null;
+	private JTextField tfM01FogGroup = null;
+	private JLabel lM01FogPeriod = null;
+	private JTextField tfM01FogPeriod = null;
+	public JCheckBox cM01Fired = null;
+	public ButtonGroup bgM01Fired = null;
+	public JRadioButton rbM01Fired1 = null;
+	public JRadioButton rbM01FiredN = null;
+	public JComboBox cbM01Sector = null;
+	private JLabel lM01Group = null;
+	public JTextField tfM01Group = null;
+	private JLabel lM01RepeatTime = null;
+	public JTextField tfM01RepeatTime = null;
+	private JLabel lM01Kennung = null;
+	public JComboBox cbM01Kennung = null;
+	private JLabel lM01Height = null;
+	public JTextField tfM01Height = null;
+	private JLabel lM01Range = null;
+	public JTextField tfM01Range = null;
 	public JButton bM01Save = null;
-	public JCheckBox cM01TopMark = null;
-	private JCheckBox cM01Radar = null;
-	public JCheckBox cM01Fired = null;
-	private JCheckBox cM01Fog = null;
+	private JButton bM01Close = null;
+	private JCheckBox cM01IconVisible = null;
 	public JTextField sM01StatusBar = null;
-	public JTextField tfM01Name = null;
-	private JButton bM01Close = null;
-	public JTextField tfM01RepeatTime = null;
-	public JComboBox cbM01Kennung = null;
-	public JTextField tfM01FireMark = null;
-	private JCheckBox cM01IconVisible = null;
 
 	public JMenuItem getSmpItem() {
@@ -433,6 +460,5 @@
 		if (dM01SeaMap == null) {
 			dM01SeaMap = new JDialog();
-			dM01SeaMap.setSize(new Dimension(353, 373));
-			// dM01SeaMap.setSize(new Dimension(400, 400));
+			dM01SeaMap.setSize(new Dimension(400, 400));
 			dM01SeaMap.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
 			dM01SeaMap.setModal(false);
@@ -455,15 +481,10 @@
 					SmpItem.setEnabled(true);
 				}
-
 				public void windowActivated(WindowEvent arg0) {
-
 					parseSeaMark();
 					buoy.paintSign();
 				}
-
-			});
-
-		}
-
+			});
+		}
 		return dM01SeaMap;
 	}
@@ -471,18 +492,48 @@
 	private JPanel getPM01SeaMap() {
 		if (pM01SeaMap == null) {
-			lM01TimeUnit = new JLabel();
-			lM01TimeUnit.setBounds(new Rectangle(325, 230, 26, 20));
-			lM01TimeUnit.setFont(new Font("Dialog", Font.PLAIN, 12));
-			lM01TimeUnit.setText("s");
-
-			lM01RepeatTime = new JLabel();
-			lM01RepeatTime.setBounds(new Rectangle(245, 230, 70, 20));
-			lM01RepeatTime.setFont(new Font("Dialog", Font.PLAIN, 12));
-			lM01RepeatTime.setText("Period:");
-
-			lM01Kennung = new JLabel();
-			lM01Kennung.setBounds(new Rectangle(95, 230, 60, 20));
-			lM01Kennung.setFont(new Font("Dialog", Font.PLAIN, 12));
-			lM01Kennung.setText("Character:");
+
+			lM01Icon01 = new JLabel();
+			lM01Icon01.setBounds(new Rectangle(200, 20, 160, 200));
+			lM01Icon01.setIcon(null);
+			lM01Icon01.setText("");
+
+			lM01Icon02 = new JLabel();
+			lM01Icon02.setBounds(new Rectangle(200, 20, 160, 200));
+			lM01Icon02.setIcon(null);
+			lM01Icon02.setText("");
+
+			lM01FireMark = new JLabel();
+			lM01FireMark.setBounds(new Rectangle(310, 70, 80, 20));
+			lM01FireMark.setFont(new Font("Dialog", Font.PLAIN, 12));
+			lM01FireMark.setText("");
+
+			lM01Head = new JLabel();
+			lM01Head.setBounds(new Rectangle(5, 3, 316, 16));
+			lM01Head.setText("Seamark Properties");
+
+			lM01Region = new JLabel();
+			lM01Region.setBounds(new Rectangle(220, 7, 120, 16));
+			lM01Region.setFont(new Font("Dialog", Font.PLAIN, 12));
+			lM01Region.setText("Region:");
+
+			lM02Region = new JLabel();
+			lM02Region.setBounds(new Rectangle(270, 7, 120, 16));
+			lM02Region.setFont(new Font("Dialog", Font.BOLD, 12));
+			lM02Region.setText("IALA");
+
+			lM01TypeOfMark = new JLabel();
+			lM01TypeOfMark.setBounds(new Rectangle(5, 28, 120, 16));
+			lM01TypeOfMark.setFont(new Font("Dialog", Font.PLAIN, 12));
+			lM01TypeOfMark.setText("Type:");
+
+			lM01CatOfMark = new JLabel();
+			lM01CatOfMark.setBounds(new Rectangle(5, 58, 120, 16));
+			lM01CatOfMark.setFont(new Font("Dialog", Font.PLAIN, 12));
+			lM01CatOfMark.setText("Category:");
+
+			lM01StyleOfMark = new JLabel();
+			lM01StyleOfMark.setBounds(new Rectangle(5, 88, 148, 16));
+			lM01StyleOfMark.setFont(new Font("Dialog", Font.PLAIN, 12));
+			lM01StyleOfMark.setText("Shape:");
 
 			lM01Name = new JLabel();
@@ -492,48 +543,59 @@
 
 			lM01Props02 = new JLabel();
-			lM01Props02.setBounds(new Rectangle(5, 170, 90, 16));
+			lM01Props02.setBounds(new Rectangle(5, 150, 90, 16));
 			lM01Props02.setFont(new Font("Dialog", Font.PLAIN, 12));
 			lM01Props02.setText("Other Features:");
 
-			lM01StyleOfMark = new JLabel();
-			lM01StyleOfMark.setBounds(new Rectangle(5, 90, 148, 16));
-			lM01StyleOfMark.setFont(new Font("Dialog", Font.PLAIN, 12));
-			lM01StyleOfMark.setText("Shape:");
-
-			lM01TypeOfMark = new JLabel();
-			lM01TypeOfMark.setBounds(new Rectangle(5, 30, 120, 16));
-			lM01TypeOfMark.setFont(new Font("Dialog", Font.PLAIN, 12));
-			lM01TypeOfMark.setText("Type:");
-
-			lM01Region = new JLabel();
-			lM01Region.setBounds(new Rectangle(5, 60, 120, 16));
-			lM01Region.setFont(new Font("Dialog", Font.PLAIN, 12));
-			lM01Region.setText("Region:");
-
-			lM01Head = new JLabel();
-			lM01Head.setBounds(new Rectangle(5, 3, 316, 16));
-			lM01Head.setText("Seamark Properties");
-
-			lM01Icon01 = new JLabel();
-			lM01Icon01.setBounds(new Rectangle(225, 0, 160, 200));
-			lM01Icon01.setIcon(null);
-			lM01Icon01.setText("");
-
-			lM01Icon02 = new JLabel();
-			lM01Icon02.setBounds(new Rectangle(225, 0, 160, 200));
-			lM01Icon02.setIcon(null);
-			lM01Icon02.setText("");
-
-			rbM01RegionA = new JRadioButton("A", Main.pref.get("tomsplugin.IALA")
+			lM01Racon = new JLabel();
+			lM01Racon.setBounds(new Rectangle(335, 195, 65, 20));
+			lM01Racon.setFont(new Font("Dialog", Font.PLAIN, 12));
+			lM01Racon.setText("(          )");
+
+			lM01FogGroup = new JLabel();
+			lM01FogGroup.setBounds(new Rectangle(190, 220, 100, 20));
+			lM01FogGroup.setFont(new Font("Dialog", Font.PLAIN, 12));
+			lM01FogGroup.setText("Group: (          )");
+
+			lM01FogPeriod = new JLabel();
+			lM01FogPeriod.setBounds(new Rectangle(300, 220, 100, 20));
+			lM01FogPeriod.setFont(new Font("Dialog", Font.PLAIN, 12));
+			lM01FogPeriod.setText("Period:          s");
+
+			lM01Kennung = new JLabel();
+			lM01Kennung.setBounds(new Rectangle(35, 270, 60, 20));
+			lM01Kennung.setFont(new Font("Dialog", Font.PLAIN, 12));
+			lM01Kennung.setText("Character:");
+
+			lM01Group = new JLabel();
+			lM01Group.setBounds(new Rectangle(190, 270, 100, 20));
+			lM01Group.setFont(new Font("Dialog", Font.PLAIN, 12));
+			lM01Group.setText("Group: (          )");
+
+			lM01RepeatTime = new JLabel();
+			lM01RepeatTime.setBounds(new Rectangle(300, 270, 100, 20));
+			lM01RepeatTime.setFont(new Font("Dialog", Font.PLAIN, 12));
+			lM01RepeatTime.setText("Period:          s");
+
+			lM01Height = new JLabel();
+			lM01Height.setBounds(new Rectangle(190, 295, 100, 20));
+			lM01Height.setFont(new Font("Dialog", Font.PLAIN, 12));
+			lM01Height.setText("Height:           m");
+
+			lM01Range = new JLabel();
+			lM01Range.setBounds(new Rectangle(300, 295, 100, 20));
+			lM01Range.setFont(new Font("Dialog", Font.PLAIN, 12));
+			lM01Range.setText("Range:          M");
+
+			rbM01RegionA = new JRadioButton("-A", Main.pref.get("tomsplugin.IALA")
 					.equals("A"));
-			rbM01RegionA.setBounds(new Rectangle(60, 55, 40, 30));
-			rbM01RegionB = new JRadioButton("B", Main.pref.get("tomsplugin.IALA")
+			rbM01RegionA.setBounds(new Rectangle(305, 0, 50, 30));
+			rbM01RegionB = new JRadioButton("-B", Main.pref.get("tomsplugin.IALA")
 					.equals("B"));
-			rbM01RegionB.setBounds(new Rectangle(100, 55, 40, 30));
+			rbM01RegionB.setBounds(new Rectangle(352, 0, 50, 30));
 			bgM01Region = new ButtonGroup();
 			bgM01Region.add(rbM01RegionA);
 			bgM01Region.add(rbM01RegionB);
 			
-			java.awt.event.ActionListener alM01Region = new java.awt.event.ActionListener() {
+			ActionListener alM01Region = new ActionListener() {
 				public void actionPerformed(java.awt.event.ActionEvent e) {
 					if (buoy instanceof BuoyLat) {
@@ -547,36 +609,71 @@
 			rbM01RegionB.addActionListener(alM01Region);
 
+			rbM01Fired1 = new JRadioButton("Single", true);
+			rbM01Fired1.setBounds(new Rectangle(100, 240, 80, 30));
+			rbM01FiredN = new JRadioButton("Sectored", false);
+			rbM01FiredN.setBounds(new Rectangle(190, 240, 100, 30));
+			bgM01Fired = new ButtonGroup();
+			bgM01Fired.add(rbM01Fired1);
+			bgM01Fired.add(rbM01FiredN);
+			
+			ActionListener alM01Fired = new ActionListener() {
+				public void actionPerformed(java.awt.event.ActionEvent e) {
+						buoy.paintSign();
+				}
+			};
+			rbM01Fired1.addActionListener(alM01Fired);
+			rbM01FiredN.addActionListener(alM01Fired);
+
 			pM01SeaMap = new JPanel();
 			pM01SeaMap.setLayout(null);
-			pM01SeaMap.add(lM01TimeUnit, null);
-			pM01SeaMap.add(lM01RepeatTime, null);
-			pM01SeaMap.add(lM01Kennung, null);
-			pM01SeaMap.add(lM01Name, null);
-			pM01SeaMap.add(lM01Props02, null);
-			pM01SeaMap.add(lM01StyleOfMark, null);
-			pM01SeaMap.add(lM01TypeOfMark, null);
+			pM01SeaMap.add(lM01Head, null);
+			pM01SeaMap.add(rbM01RegionA, null);
+			pM01SeaMap.add(rbM01RegionB, null);
 			pM01SeaMap.add(lM01Region, null);
-			pM01SeaMap.add(lM01Head, null);
+			pM01SeaMap.add(lM02Region, null);
 			pM01SeaMap.add(lM01Icon01, null);
 			pM01SeaMap.add(lM01Icon02, null);
-			pM01SeaMap.add(rbM01RegionA, null);
-			pM01SeaMap.add(rbM01RegionB, null);
-			// pM01SeaMap.add(getTbM01Region(), null);
 			pM01SeaMap.add(getCbM01TypeOfMark(), null);
+			pM01SeaMap.add(lM01TypeOfMark, null);
+			pM01SeaMap.add(getCbM01CatOfMark(), null);
+			pM01SeaMap.add(lM01CatOfMark, null);
 			pM01SeaMap.add(getCbM01StyleOfMark(), null);
+			pM01SeaMap.add(lM01StyleOfMark, null);
+			pM01SeaMap.add(lM01Name, null);
+			pM01SeaMap.add(getTfM01Name(), null);
+			pM01SeaMap.add(lM01Props02, null);
+			pM01SeaMap.add(getCM01TopMark(), null);
+			pM01SeaMap.add(getCbM01TopMark(), null);
+			pM01SeaMap.add(getCM01Radar(), null);
+			pM01SeaMap.add(getCM01Racon(), null);
+			pM01SeaMap.add(getCbM01Racon(), null);
+			pM01SeaMap.add(getTfM01Racon(), null);
+			pM01SeaMap.add(lM01Racon, null);
+			pM01SeaMap.add(getCM01Fog(), null);
+			pM01SeaMap.add(getCbM01Fog(), null);
+			pM01SeaMap.add(getTfM01FogGroup(), null);
+			pM01SeaMap.add(lM01FogGroup, null);
+			pM01SeaMap.add(getTfM01FogPeriod(), null);
+			pM01SeaMap.add(lM01FogPeriod, null);
+			pM01SeaMap.add(getCM01Fired(), null);
+			pM01SeaMap.add(rbM01Fired1, null);
+			pM01SeaMap.add(rbM01FiredN, null);
+			pM01SeaMap.add(getCbM01Sector(), null);
+			pM01SeaMap.add(getTfM01RepeatTime(), null);
+			pM01SeaMap.add(lM01RepeatTime, null);
+			pM01SeaMap.add(getCbM01Kennung(), null);
+			pM01SeaMap.add(lM01Kennung, null);
+			pM01SeaMap.add(lM01Group, null);
+			pM01SeaMap.add(getTfM01Group(), null);
+			pM01SeaMap.add(lM01Height, null);
+			pM01SeaMap.add(getTfM01Height(), null);
+			pM01SeaMap.add(lM01Range, null);
+			pM01SeaMap.add(getTfM01Range(), null);
+			pM01SeaMap.add(lM01FireMark, null);
 			pM01SeaMap.add(getBM01Save(), null);
-			pM01SeaMap.add(getCM01TopMark(), null);
-			pM01SeaMap.add(getCM01Radar(), null);
-			pM01SeaMap.add(getCM01Fired(), null);
-			pM01SeaMap.add(getCM01Fog(), null);
 			pM01SeaMap.add(getSM01StatusBar(), null);
-			pM01SeaMap.add(getTfM01Name(), null);
 			pM01SeaMap.add(getBM01Close(), null);
-			pM01SeaMap.add(getTfM01RepeatTime(), null);
-			pM01SeaMap.add(getCbM01Kennung(), null);
-			pM01SeaMap.add(getTfM01FireMark(), null);
 			pM01SeaMap.add(getCM01IconVisible(), null);
 		}
-
 		return pM01SeaMap;
 	}
@@ -608,5 +705,5 @@
 			cbM01TypeOfMark.setEnabled(true);
 
-			cbM01TypeOfMark.addActionListener(new java.awt.event.ActionListener() {
+			cbM01TypeOfMark.addActionListener(new ActionListener() {
 				public void actionPerformed(java.awt.event.ActionEvent e) {
 					Node n;
@@ -678,24 +775,19 @@
 	}
 
-	/*
-	 * private JToggleButton getTbM01Region() { if (tbM01Region == null) {
-	 * tbM01Region = new JToggleButton();
-	 * 
-	 * tbM01Region.setBounds(new Rectangle(60, 55, 80, 25));
-	 * tbM01Region.setFont(new Font("Dialog", Font.PLAIN, 12));
-	 * tbM01Region.setEnabled(false); if
-	 * (Main.pref.get("tomsplugin.IALA").equals("B")) {
-	 * tbM01Region.setSelected(true); tbM01Region.setText("IALA-B"); } else {
-	 * tbM01Region.setSelected(false); tbM01Region.setText("IALA-A"); }
-	 * 
-	 * tbM01Region.addActionListener(new java.awt.event.ActionListener() { public
-	 * void actionPerformed(java.awt.event.ActionEvent e) { if
-	 * (tbM01Region.isSelected()) { buoy.setRegion(true);
-	 * tbM01Region.setText("IALA-B"); } else { buoy.setRegion(false);
-	 * tbM01Region.setText("IALA-A"); } buoy.paintSign(); } }); }
-	 * 
-	 * return tbM01Region; }
-	 */
-	
+	private JComboBox getCbM01CatOfMark() {
+		if (cbM01CatOfMark == null) {
+			cbM01CatOfMark = new JComboBox();
+			cbM01CatOfMark.setBounds(new Rectangle(80, 55, 120, 25));
+			cbM01CatOfMark.setFont(new Font("Dialog", Font.PLAIN, 12));
+			cbM01CatOfMark.setEnabled(true);
+			cbM01CatOfMark.addActionListener(new ActionListener() {
+				public void actionPerformed(ActionEvent e) {
+					int cat = cbM01CatOfMark.getSelectedIndex();
+				}
+			});
+		}
+		return cbM01CatOfMark;
+	}
+
 	private JComboBox getCbM01StyleOfMark() {
 		if (cbM01StyleOfMark == null) {
@@ -704,6 +796,6 @@
 			cbM01StyleOfMark.setFont(new Font("Dialog", Font.PLAIN, 12));
 			cbM01StyleOfMark.setEnabled(true);
-			cbM01StyleOfMark.addActionListener(new java.awt.event.ActionListener() {
-				public void actionPerformed(java.awt.event.ActionEvent e) {
+			cbM01StyleOfMark.addActionListener(new ActionListener() {
+				public void actionPerformed(ActionEvent e) {
 					int style = cbM01StyleOfMark.getSelectedIndex();
 					if (buoy != null && style != buoy.getStyleIndex()) {
@@ -714,26 +806,19 @@
 			});
 		}
-
 		return cbM01StyleOfMark;
 	}
 
-	private JButton getBM01Save() {
-		if (bM01Save == null) {
-			bM01Save = new JButton();
-			bM01Save.setBounds(new Rectangle(120, 290, 80, 20));
-			bM01Save.setText("Save");
-
-			bM01Save.addActionListener(new java.awt.event.ActionListener() {
-				public void actionPerformed(java.awt.event.ActionEvent e) {
-					cM01IconVisible.setIcon(new ImageIcon(getClass().getResource(
-							"/images/Auge.png")));
-					cM01IconVisible.setSelected(true);
-
-					buoy.saveSign();
-				}
-			});
-		}
-
-		return bM01Save;
+	private JTextField getTfM01Name() {
+		if (tfM01Name == null) {
+			tfM01Name = new JTextField();
+			tfM01Name.setBounds(new Rectangle(50, 120, 150, 20));
+			tfM01Name.addFocusListener(new FocusAdapter() {
+				public void focusLost(FocusEvent e) {
+					buoy.setName(tfM01Name.getText());
+				}
+			});
+		}
+
+		return tfM01Name;
 	}
 
@@ -741,13 +826,12 @@
 		if (cM01TopMark == null) {
 			cM01TopMark = new JCheckBox();
-			cM01TopMark.setBounds(new Rectangle(20, 190, 90, 20));
+			cM01TopMark.setBounds(new Rectangle(10, 170, 90, 20));
 			cM01TopMark.setFont(new Font("Dialog", Font.PLAIN, 12));
 			cM01TopMark.setText("Topmark");
-			cM01TopMark.addItemListener(new java.awt.event.ItemListener() {
-				public void itemStateChanged(java.awt.event.ItemEvent e) {
+			cM01TopMark.addItemListener(new ItemListener() {
+				public void itemStateChanged(ItemEvent e) {
 					if (buoy == null) {
 						return;
 					}
-
 					buoy.setTopMark(cM01TopMark.isSelected());
 					buoy.paintSign();
@@ -755,6 +839,20 @@
 			});
 		}
-
 		return cM01TopMark;
+	}
+
+	private JComboBox getCbM01TopMark() {
+		if (cbM01TopMark == null) {
+			cbM01TopMark = new JComboBox();
+			cbM01TopMark.setBounds(new Rectangle(100, 170, 70, 20));
+			cbM01TopMark.setFont(new Font("Dialog", Font.PLAIN, 12));
+			cbM01TopMark.setEnabled(true);
+			cbM01TopMark.addActionListener(new ActionListener() {
+				public void actionPerformed(ActionEvent e) {
+					int top = cbM01TopMark.getSelectedIndex();
+				}
+			});
+		}
+		return cbM01TopMark;
 	}
 
@@ -762,11 +860,101 @@
 		if (cM01Radar == null) {
 			cM01Radar = new JCheckBox();
-			cM01Radar.setBounds(new Rectangle(140, 190, 70, 20));
+			cM01Radar.setBounds(new Rectangle(10, 195, 120, 20));
 			cM01Radar.setFont(new Font("Dialog", Font.PLAIN, 12));
 			cM01Radar.setEnabled(false);
-			cM01Radar.setText("Radar");
-		}
-
+			cM01Radar.setText("Radar Reflector");
+		}
 		return cM01Radar;
+	}
+
+	private JCheckBox getCM01Racon() {
+		if (cM01Racon == null) {
+			cM01Racon = new JCheckBox();
+			cM01Racon.setBounds(new Rectangle(130, 195, 110, 20));
+			cM01Racon.setFont(new Font("Dialog", Font.PLAIN, 12));
+			cM01Racon.setEnabled(false);
+			cM01Racon.setText("Radar Beacon");
+		}
+		return cM01Racon;
+	}
+
+	private JComboBox getCbM01Racon() {
+		if (cbM01Racon == null) {
+			cbM01Racon = new JComboBox();
+			cbM01Racon.setBounds(new Rectangle(240, 195, 80, 20));
+			cbM01Racon.setFont(new Font("Dialog", Font.PLAIN, 12));
+			cbM01Racon.setEnabled(true);
+			cbM01Racon.addActionListener(new ActionListener() {
+				public void actionPerformed(ActionEvent e) {
+					int rac = cbM01Racon.getSelectedIndex();
+				}
+			});
+		}
+		return cbM01Racon;
+	}
+
+	private JTextField getTfM01Racon() {
+		if (tfM01Racon == null) {
+			tfM01Racon = new JTextField();
+			tfM01Racon.setBounds(new Rectangle(345, 195, 30, 20));
+			tfM01Racon.addFocusListener(new FocusAdapter() {
+				public void focusLost(FocusEvent e) {
+					buoy.setName(tfM01Racon.getText());
+				}
+			});
+		}
+		return tfM01Racon;
+	}
+
+	private JCheckBox getCM01Fog() {
+		if (cM01Fog == null) {
+			cM01Fog = new JCheckBox();
+			cM01Fog.setBounds(new Rectangle(10, 220, 90, 20));
+			cM01Fog.setFont(new Font("Dialog", Font.PLAIN, 12));
+			cM01Fog.setEnabled(false);
+			cM01Fog.setText("Fog Signal");
+		}
+		return cM01Fog;
+	}
+
+	private JComboBox getCbM01Fog() {
+		if (cbM01Fog == null) {
+			cbM01Fog = new JComboBox();
+			cbM01Fog.setBounds(new Rectangle(100, 220, 70, 20));
+			cbM01Fog.setFont(new Font("Dialog", Font.PLAIN, 12));
+			cbM01Fog.setEnabled(true);
+			cbM01Fog.addActionListener(new ActionListener() {
+				public void actionPerformed(ActionEvent e) {
+					int fog = cbM01Fog.getSelectedIndex();
+				}
+			});
+		}
+		return cbM01Fog;
+	}
+
+	private JTextField getTfM01FogGroup() {
+		if (tfM01FogGroup == null) {
+			tfM01FogGroup = new JTextField();
+			tfM01FogGroup.setBounds(new Rectangle(243, 220, 30, 20));
+			tfM01FogGroup.addFocusListener(new FocusAdapter() {
+				public void focusLost(FocusEvent e) {
+					buoy.setName(tfM01FogGroup.getText());
+				}
+			});
+		}
+		return tfM01FogGroup;
+	}
+
+	private JTextField getTfM01FogPeriod() {
+		if (tfM01FogPeriod == null) {
+			tfM01FogPeriod = new JTextField();
+			tfM01FogPeriod.setBounds(new Rectangle(345, 220, 30, 20));
+			tfM01FogPeriod.addFocusListener(new FocusAdapter() {
+				public void focusLost(FocusEvent e) {
+					buoy.setName(tfM01FogPeriod.getText());
+				}
+			});
+		}
+		return tfM01FogPeriod;
 	}
 
@@ -774,10 +962,10 @@
 		if (cM01Fired == null) {
 			cM01Fired = new JCheckBox();
-			cM01Fired.setBounds(new Rectangle(20, 230, 70, 20));
+			cM01Fired.setBounds(new Rectangle(10, 245, 70, 20));
 			cM01Fired.setFont(new Font("Dialog", Font.PLAIN, 12));
 			cM01Fired.setText("Lighted");
 			cM01Fired.setEnabled(false);
-			cM01Fired.addItemListener(new java.awt.event.ItemListener() {
-				public void itemStateChanged(java.awt.event.ItemEvent e) {
+			cM01Fired.addItemListener(new ItemListener() {
+				public void itemStateChanged(ItemEvent e) {
 					if (buoy == null) {
 						return;
@@ -794,38 +982,126 @@
 	}
 
-	private JCheckBox getCM01Fog() {
-		if (cM01Fog == null) {
-			cM01Fog = new JCheckBox();
-			cM01Fog.setBounds(new Rectangle(20, 210, 90, 20));
-			cM01Fog.setFont(new Font("Dialog", Font.PLAIN, 12));
-			cM01Fog.setEnabled(false);
-			cM01Fog.setText("Foghorn");
-		}
-
-		return cM01Fog;
-	}
-
-	private JTextField getSM01StatusBar() {
-		if (sM01StatusBar == null) {
-			sM01StatusBar = new JTextField();
-			sM01StatusBar.setBounds(new Rectangle(7, 319, 340, 20));
-			sM01StatusBar.setBackground(SystemColor.activeCaptionBorder);
-		}
-
-		return sM01StatusBar;
-	}
-
-	private JTextField getTfM01Name() {
-		if (tfM01Name == null) {
-			tfM01Name = new JTextField();
-			tfM01Name.setBounds(new Rectangle(50, 120, 175, 20));
-			tfM01Name.addFocusListener(new java.awt.event.FocusAdapter() {
-				public void focusLost(java.awt.event.FocusEvent e) {
-					buoy.setName(tfM01Name.getText());
-				}
-			});
-		}
-
-		return tfM01Name;
+	private JComboBox getCbM01Kennung() {
+		if (cbM01Kennung == null) {
+			cbM01Kennung = new JComboBox();
+			cbM01Kennung.setBounds(new Rectangle(100, 270, 70, 20));
+			cbM01Kennung.addActionListener(new ActionListener() {
+				public void actionPerformed(ActionEvent e) {
+					int i1, i2;
+					String g = "", c = "";
+					String it = (String) cbM01Kennung.getSelectedItem();
+
+					if (it == null)
+						return;
+					if (it.compareTo("Not set") == 0)
+						return;
+					if (buoy == null)
+						return;
+
+					i1 = it.indexOf("(");
+					i2 = it.indexOf(")", i1);
+					if (i1 >= 0) {
+						c = it.substring(0, i1);
+						if (i1 >= 0)
+							g = it.substring(i1 + 1, i2);
+					}
+					if (it.contains("+")) {
+						i1 = it.indexOf("+");
+						i2 = it.length();
+						if (c.equals(""))
+							c = it;
+						else
+							c = c + it.substring(i1, i2);
+					}
+					if (c.equals(""))
+						c = it;
+					buoy.setLightChar(c);
+					buoy.setLightGroup(g);
+					// buoy.setLightColour();
+					buoy.paintSign();
+				}
+			});
+		}
+		return cbM01Kennung;
+	}
+
+	private JComboBox getCbM01Sector() {
+		if (cbM01Sector == null) {
+			cbM01Sector = new JComboBox();
+			cbM01Sector.setBounds(new Rectangle(300, 245, 50, 20));
+			cbM01Sector.setFont(new Font("Dialog", Font.PLAIN, 12));
+			cbM01Sector.setEnabled(true);
+			cbM01Sector.addActionListener(new ActionListener() {
+				public void actionPerformed(ActionEvent e) {
+					int sec = cbM01Sector.getSelectedIndex();
+				}
+			});
+		}
+		return cbM01Sector;
+	}
+
+	private JTextField getTfM01RepeatTime() {
+		if (tfM01RepeatTime == null) {
+			tfM01RepeatTime = new JTextField();
+			tfM01RepeatTime.setBounds(new Rectangle(345, 270, 30, 20));
+			tfM01RepeatTime.addActionListener(new ActionListener() {
+				public void actionPerformed(ActionEvent e) {
+					String s = tfM01RepeatTime.getText();
+
+					buoy.setLightPeriod(s);
+					buoy.paintSign();
+				}
+			});
+
+			tfM01RepeatTime.addFocusListener(new FocusAdapter() {
+				public void focusLost(FocusEvent e) {
+					String s = tfM01RepeatTime.getText();
+
+					buoy.setLightPeriod(s);
+					buoy.paintSign();
+				}
+			});
+		}
+
+		return tfM01RepeatTime;
+	}
+
+	private JTextField getTfM01Group() {
+		if (tfM01Group == null) {
+			tfM01Group = new JTextField();
+			tfM01Group.setBounds(new Rectangle(243, 270, 30, 20));
+			tfM01Group.addFocusListener(new FocusAdapter() {
+				public void focusLost(FocusEvent e) {
+					buoy.setName(tfM01Group.getText());
+				}
+			});
+		}
+		return tfM01Group;
+	}
+
+	private JTextField getTfM01Height() {
+		if (tfM01Height == null) {
+			tfM01Height = new JTextField();
+			tfM01Height.setBounds(new Rectangle(243, 295, 30, 20));
+			tfM01Height.addFocusListener(new FocusAdapter() {
+				public void focusLost(FocusEvent e) {
+					buoy.setName(tfM01Height.getText());
+				}
+			});
+		}
+		return tfM01Height;
+	}
+
+	private JTextField getTfM01Range() {
+		if (tfM01Range == null) {
+			tfM01Range = new JTextField();
+			tfM01Range.setBounds(new Rectangle(345, 295, 30, 20));
+			tfM01Range.addFocusListener(new FocusAdapter() {
+				public void focusLost(FocusEvent e) {
+					buoy.setName(tfM01Range.getText());
+				}
+			});
+		}
+		return tfM01Range;
 	}
 
@@ -833,8 +1109,8 @@
 		if (bM01Close == null) {
 			bM01Close = new JButton();
-			bM01Close.setBounds(new Rectangle(20, 290, 80, 20));
+			bM01Close.setBounds(new Rectangle(20, 325, 80, 20));
 			bM01Close.setText("Close");
-			bM01Close.addActionListener(new java.awt.event.ActionListener() {
-				public void actionPerformed(java.awt.event.ActionEvent e) {
+			bM01Close.addActionListener(new ActionListener() {
+				public void actionPerformed(ActionEvent e) {
 					// aufraeumen
 					if (obuoy != null)
@@ -855,90 +1131,22 @@
 	}
 
-	private JTextField getTfM01RepeatTime() {
-		if (tfM01RepeatTime == null) {
-			tfM01RepeatTime = new JTextField();
-			tfM01RepeatTime.setBounds(new Rectangle(290, 230, 30, 20));
-			tfM01RepeatTime.addActionListener(new java.awt.event.ActionListener() {
-				public void actionPerformed(java.awt.event.ActionEvent e) {
-					String s = tfM01RepeatTime.getText();
-
-					buoy.setLightPeriod(s);
-					buoy.paintSign();
-				}
-			});
-
-			tfM01RepeatTime.addFocusListener(new java.awt.event.FocusAdapter() {
-				public void focusLost(java.awt.event.FocusEvent e) {
-					String s = tfM01RepeatTime.getText();
-
-					buoy.setLightPeriod(s);
-					buoy.paintSign();
-				}
-			});
-		}
-
-		return tfM01RepeatTime;
-	}
-
-	private JComboBox getCbM01Kennung() {
-		if (cbM01Kennung == null) {
-			cbM01Kennung = new JComboBox();
-			cbM01Kennung.setBounds(new Rectangle(160, 230, 70, 20));
-			cbM01Kennung.addActionListener(new java.awt.event.ActionListener() {
-				public void actionPerformed(java.awt.event.ActionEvent e) {
-					int i1, i2;
-					String g = "", c = "";
-					String it = (String) cbM01Kennung.getSelectedItem();
-
-					if (it == null)
-						return;
-
-					if (it.compareTo("Not set") == 0)
-						return;
-
-					if (buoy == null) {
-						return;
-					}
-
-					i1 = it.indexOf("(");
-					i2 = it.indexOf(")", i1);
-
-					if (i1 >= 0) {
-						c = it.substring(0, i1);
-						if (i1 >= 0)
-							g = it.substring(i1 + 1, i2);
-					}
-
-					if (it.contains("+")) {
-						i1 = it.indexOf("+");
-						i2 = it.length();
-						if (c.equals(""))
-							c = it;
-						else
-							c = c + it.substring(i1, i2);
-					}
-
-					if (c.equals(""))
-						c = it;
-					buoy.setLightChar(c);
-					buoy.setLightGroup(g);
-					// buoy.setLightColour();
-
-					buoy.paintSign();
-				}
-			});
-		}
-
-		return cbM01Kennung;
-	}
-
-	private JTextField getTfM01FireMark() {
-		if (tfM01FireMark == null) {
-			tfM01FireMark = new JTextField();
-			tfM01FireMark.setBounds(new Rectangle(240, 160, 100, 20));
-			tfM01FireMark.setEditable(false);
-		}
-
-		return tfM01FireMark;
+	private JButton getBM01Save() {
+		if (bM01Save == null) {
+			bM01Save = new JButton();
+			bM01Save.setBounds(new Rectangle(120, 325, 80, 20));
+			bM01Save.setText("Save");
+
+			bM01Save.addActionListener(new ActionListener() {
+				public void actionPerformed(ActionEvent e) {
+					cM01IconVisible.setIcon(new ImageIcon(getClass().getResource(
+							"/images/Auge.png")));
+					cM01IconVisible.setSelected(true);
+
+					buoy.saveSign();
+				}
+			});
+		}
+
+		return bM01Save;
 	}
 
@@ -946,10 +1154,10 @@
 		if (cM01IconVisible == null) {
 			cM01IconVisible = new JCheckBox();
-			cM01IconVisible.setBounds(new Rectangle(310, 290, 30, 21));
+			cM01IconVisible.setBounds(new Rectangle(310, 325, 30, 21));
 			cM01IconVisible.setIcon(new ImageIcon(getClass().getResource(
 					"/images/AugeN.png")));
 			cM01IconVisible.setSelected(false);
-			cM01IconVisible.addActionListener(new java.awt.event.ActionListener() {
-				public void actionPerformed(java.awt.event.ActionEvent e) {
+			cM01IconVisible.addActionListener(new ActionListener() {
+				public void actionPerformed(ActionEvent e) {
 					Command c;
 					Node n = null;
@@ -994,6 +1202,15 @@
 			});
 		}
-
 		return cM01IconVisible;
 	}
+	
+	private JTextField getSM01StatusBar() {
+		if (sM01StatusBar == null) {
+			sM01StatusBar = new JTextField();
+			sM01StatusBar.setBounds(new Rectangle(7, 355, 385, 20));
+			sM01StatusBar.setBackground(SystemColor.activeCaptionBorder);
+		}
+		return sM01StatusBar;
+	}
+
 }
Index: /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java
===================================================================
--- /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java	(revision 22945)
+++ /applications/editors/josm/plugins/toms/src/toms/seamarks/buoys/Buoy.java	(revision 22946)
@@ -257,9 +257,9 @@
 			if (lp != "" && lp != " ")
 				c = c + " " + lp + "s";
-			dlg.tfM01FireMark.setText(c);
+			dlg.lM01FireMark.setText(c);
 		} else {
 			dlg.tfM01RepeatTime.setEnabled(false);
 			dlg.cbM01Kennung.setEnabled(false);
-			dlg.tfM01FireMark.setText("");
+			dlg.lM01FireMark.setText("");
 		}
 
