Index: applications/editors/josm/plugins/smed/plugs/harbour/src/harbour/dialogs/HarbourAction.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/harbour/src/harbour/dialogs/HarbourAction.java	(revision 24537)
+++ applications/editors/josm/plugins/smed/plugs/harbour/src/harbour/dialogs/HarbourAction.java	(revision 24540)
@@ -12,4 +12,5 @@
 import javax.swing.JComboBox;
 import javax.swing.ImageIcon;
+import javax.swing.JToggleButton;
 
 public class HarbourAction {
@@ -30,6 +31,4 @@
 	private JButton fastforButton = null;
 	private JLabel queryLabel = null;
-	private JButton queryButton = null;
-	private JButton changequeryButton = null;
 	private JComboBox typComboBox = null;
 	private JLabel typeLabel = null;
@@ -45,5 +44,7 @@
 	private PanelEnv panelEnv = null;
 	private PanelRelations panelRelations = null;
-	
+	private JComboBox queryComboBox = null;
+	private JButton queryjButton = null;
+	private JToggleButton chartButton = null;
 	public HarbourAction() {
 		panelGeneral= new PanelGeneral();
@@ -76,21 +77,21 @@
 		if (harbourPanel == null) {
 			regLabel = new JLabel();
-			regLabel.setBounds(new Rectangle(100, 32, 54, 20));
+			regLabel.setBounds(new Rectangle(90, 32, 45, 20));
 			regLabel.setText("Region:");
 			noLabel1 = new JLabel();
-			noLabel1.setBounds(new Rectangle(232, 32, 26, 20));
+			noLabel1.setBounds(new Rectangle(200, 32, 26, 20));
 			noLabel1.setText("Nr.:");
 			countryLabel = new JLabel();
-			countryLabel.setBounds(new Rectangle(2, 32, 40, 20));
+			countryLabel.setBounds(new Rectangle(2, 32, 32, 20));
 			countryLabel.setText("Land:");
 			typeLabel = new JLabel();
-			typeLabel.setBounds(new Rectangle(289, 5, 43, 20));
+			typeLabel.setBounds(new Rectangle(289, 32, 30, 20));
 			typeLabel.setText("Type:");
 			queryLabel = new JLabel();
-			queryLabel.setBounds(new Rectangle(212, 334, 80, 15));
+			queryLabel.setBounds(new Rectangle(201, 334, 72, 15));
 			queryLabel.setFont(new Font("Dialog", Font.PLAIN, 12));
 			queryLabel.setText("Suche nach:");
 			setLabel = new JLabel();
-			setLabel.setBounds(new Rectangle(2, 330, 68, 21));
+			setLabel.setBounds(new Rectangle(2, 330, 60, 21));
 			setLabel.setFont(new Font("Dialog", Font.PLAIN, 12));
 			setLabel.setText("Datensatz:");
@@ -120,6 +121,4 @@
 			harbourPanel.add(getFastforButton(), null);
 			harbourPanel.add(queryLabel, null);
-			harbourPanel.add(getQueryButton(), null);
-			harbourPanel.add(getChangequeryButton(), null);
 			harbourPanel.add(getTypComboBox(), null);
 			harbourPanel.add(typeLabel, null);
@@ -130,4 +129,7 @@
 			harbourPanel.add(regLabel, null);
 			harbourPanel.add(getRegTextField(), null);
+			harbourPanel.add(getQueryComboBox(), null);
+			harbourPanel.add(getQueryjButton(), null);
+			harbourPanel.add(getChartButton(), null);
 		}
 		return harbourPanel;
@@ -154,4 +156,5 @@
 					panelRelations.setVisible(false);
 					panelGeneral.setVisible(true);
+					chartButton.setEnabled(false);
 				}
 			});
@@ -178,4 +181,5 @@
 					panelRelations.setVisible(false);
 					panelLimits.setVisible(true);
+					chartButton.setEnabled(false);
 				}
 			});
@@ -202,4 +206,5 @@
 					panelRelations.setVisible(false);
 					panelServices.setVisible(true);
+					chartButton.setEnabled(false);
 				}
 			});
@@ -225,5 +230,6 @@
 					panelServices.setVisible(false);
 					panelRelations.setVisible(false);
-					panelEnv.setVisible(true);	
+					panelEnv.setVisible(true);
+					chartButton.setEnabled(true);
 				}
 			});
@@ -250,4 +256,5 @@
 					panelEnv.setVisible(false);
 					panelRelations.setVisible(true);
+					chartButton.setEnabled(true);
 				}
 			});
@@ -264,5 +271,5 @@
 		if (nameTextField == null) {
 			nameTextField = new JTextField();
-			nameTextField.setBounds(new Rectangle(92, 2, 185, 25));
+			nameTextField.setBounds(new Rectangle(88, 2, 196, 25));
 		}
 		return nameTextField;
@@ -277,5 +284,5 @@
 		if (fastbackButton == null) {
 			fastbackButton = new JButton();
-			fastbackButton.setBounds(new Rectangle(70, 330, 20, 20));
+			fastbackButton.setBounds(new Rectangle(62, 330, 20, 20));
 		}
 		return fastbackButton;
@@ -290,5 +297,5 @@
 		if (backButton == null) {
 			backButton = new JButton();
-			backButton.setBounds(new Rectangle(89, 330, 20, 20));
+			backButton.setBounds(new Rectangle(81, 330, 20, 20));
 		}
 		return backButton;
@@ -303,5 +310,5 @@
 		if (setTextField == null) {
 			setTextField = new JTextField();
-			setTextField.setBounds(new Rectangle(109, 329, 60, 23));
+			setTextField.setBounds(new Rectangle(101, 329, 60, 23));
 			setTextField.setText("");
 		}
@@ -317,5 +324,5 @@
 		if (forButton == null) {
 			forButton = new JButton();
-			forButton.setBounds(new Rectangle(168, 330, 20, 20));
+			forButton.setBounds(new Rectangle(160, 330, 20, 20));
 		}
 		return forButton;
@@ -330,36 +337,7 @@
 		if (fastforButton == null) {
 			fastforButton = new JButton();
-			fastforButton.setBounds(new Rectangle(187, 330, 20, 20));
+			fastforButton.setBounds(new Rectangle(179, 330, 20, 20));
 		}
 		return fastforButton;
-	}
-
-	/**
-	 * This method initializes queryButton	
-	 * 	
-	 * @return javax.swing.JButton	
-	 */
-	private JButton getQueryButton() {
-		if (queryButton == null) {
-			queryButton = new JButton();
-			queryButton.setBounds(new Rectangle(292, 330, 80, 20));
-			queryButton.setFont(new Font("Dialog", Font.PLAIN, 12));
-			queryButton.setToolTipText("");
-			queryButton.setText("Hafen");
-		}
-		return queryButton;
-	}
-
-	/**
-	 * This method initializes changequeryButton	
-	 * 	
-	 * @return javax.swing.JButton	
-	 */
-	private JButton getChangequeryButton() {
-		if (changequeryButton == null) {
-			changequeryButton = new JButton();
-			changequeryButton.setBounds(new Rectangle(371, 330, 20, 20));
-		}
-		return changequeryButton;
 	}
 
@@ -372,5 +350,5 @@
 		if (typComboBox == null) {
 			typComboBox = new JComboBox();
-			typComboBox.setBounds(new Rectangle(335, 3, 60, 25));
+			typComboBox.setBounds(new Rectangle(323, 28, 72, 25));
 		}
 		return typComboBox;
@@ -385,5 +363,5 @@
 		if (countryComboBox == null) {
 			countryComboBox = new JComboBox();
-			countryComboBox.setBounds(new Rectangle(44, 29, 50, 25));
+			countryComboBox.setBounds(new Rectangle(36, 29, 50, 25));
 		}
 		return countryComboBox;
@@ -398,5 +376,5 @@
 		if (noTextField == null) {
 			noTextField = new JTextField();
-			noTextField.setBounds(new Rectangle(262, 29, 70, 25));
+			noTextField.setBounds(new Rectangle(225, 29, 60, 25));
 			noTextField.setText("");
 		}
@@ -412,8 +390,54 @@
 		if (regTextField == null) {
 			regTextField = new JTextField();
-			regTextField.setBounds(new Rectangle(158, 29, 70, 25));
+			regTextField.setBounds(new Rectangle(135, 29, 60, 25));
 		}
 		return regTextField;
 	}
 
+	/**
+	 * This method initializes queryComboBox	
+	 * 	
+	 * @return javax.swing.JComboBox	
+	 */
+	private JComboBox getQueryComboBox() {
+		if (queryComboBox == null) {
+			queryComboBox = new JComboBox();
+			queryComboBox.addItem("Hafen");
+			queryComboBox.addItem("Land");
+			queryComboBox.addItem("Nummer");
+			queryComboBox.addItem("Region");
+			queryComboBox.addItem("Type");
+			queryComboBox.addItem("Query");
+			queryComboBox.setBounds(new Rectangle(272, 331, 86, 20));
+		}
+		return queryComboBox;
+	}
+
+	/**
+	 * This method initializes queryjButton	
+	 * 	
+	 * @return javax.swing.JButton	
+	 */
+	private JButton getQueryjButton() {
+		if (queryjButton == null) {
+			queryjButton = new JButton();
+			queryjButton.setBounds(new Rectangle(364, 330, 28, 20));
+		}
+		return queryjButton;
+	}
+
+	/**
+	 * This method initializes chartButton	
+	 * 	
+	 * @return javax.swing.JButton	
+	 */
+	private JToggleButton getChartButton() {
+		if (chartButton == null) {
+			chartButton = new JToggleButton();
+			chartButton.setBounds(new Rectangle(365, 5, 28, 18));
+			chartButton.setEnabled(false);
+		}
+		return chartButton;
+	}
+
 }
Index: applications/editors/josm/plugins/smed/plugs/harbour/src/harbour/panels/PanelLimits.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/harbour/src/harbour/panels/PanelLimits.java	(revision 24537)
+++ applications/editors/josm/plugins/smed/plugs/harbour/src/harbour/panels/PanelLimits.java	(revision 24540)
@@ -59,5 +59,5 @@
 	private void initialize() {
         unitLabel = new JLabel();
-        unitLabel.setBounds(new Rectangle(235, 53, 50, 20));
+        unitLabel.setBounds(new Rectangle(241, 53, 43, 20));
         unitLabel.setFont(new Font("Dialog", Font.PLAIN, 12));
         unitLabel.setText("Einheit:");
Index: applications/editors/josm/plugins/smed/plugs/harbour/src/harbour/panels/PanelServices.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/harbour/src/harbour/panels/PanelServices.java	(revision 24537)
+++ applications/editors/josm/plugins/smed/plugs/harbour/src/harbour/panels/PanelServices.java	(revision 24540)
@@ -1,3 +1,5 @@
 package harbour.panels;
+
+import harbour.widgets.TristateCheckBox;
 
 import java.awt.Color;
@@ -8,10 +10,72 @@
 import javax.swing.JLabel;
 import java.awt.Rectangle;
+import javax.swing.JCheckBox;
+import java.awt.Font;
+import javax.swing.JComboBox;
+import javax.swing.ImageIcon;
 
 public class PanelServices extends JPanel {
 
 	private static final long serialVersionUID = 1L;
+	private JLabel raPicLabel = null;
+	private TristateCheckBox telCheckBox = null;
+	private TristateCheckBox faxCheckBox = null;
+	private TristateCheckBox radioCheckBox = null;
+	private TristateCheckBox raTelCheckBox = null;
+	private JLabel infraLabel = null;
+	private TristateCheckBox opnvCheckBox = null;
+	private TristateCheckBox railCheckBox = null;
+	private JLabel airLabel = null;
+	private TristateCheckBox airCheckBox = null;
+	private JLabel loadLabel = null;
+	private TristateCheckBox kaiCheckBox = null;
+	private TristateCheckBox ancCheckBox = null;
+	private JLabel moorLabel = null;
+	private JLabel craneLabel = null;
+	private JLabel hLabel = null;
+	private JLabel fLabel = null;
+	private JLabel zLabel = null;
+	private JLabel nLabel = null;
+	private TristateCheckBox slipCheckBox = null;
+	private JLabel fixLabel = null;
+	private TristateCheckBox hfCheckBox = null;
+	private TristateCheckBox ffCheckBox = null;
+	private TristateCheckBox zfCheckBox = null;
+	private TristateCheckBox nfCheckBox = null;
+	private TristateCheckBox dockCheckBox = null;
+	private JLabel mobLabel = null;
+	private TristateCheckBox hmCheckBox = null;
+	private TristateCheckBox fmCheckBox = null;
+	private TristateCheckBox zmCheckBox = null;
+	private TristateCheckBox nmCheckBox = null;
+	private JLabel schwLabel = null;
+	private TristateCheckBox hsCheckBox = null;
+	private TristateCheckBox fsCheckBox = null;
+	private TristateCheckBox zsCheckBox = null;
+	private TristateCheckBox nsCheckBox = null;
+	private JLabel DLLabel = null;
+	private TristateCheckBox anbCheckBox = null;
+	private TristateCheckBox repCheckBox = null;
 	private JLabel servLabel = null;
-
+	private TristateCheckBox medCheckBox = null;
+	private TristateCheckBox degCheckBox = null;
+	private JLabel recLabel = null;
+	private TristateCheckBox recmCheckBox = null;
+	private TristateCheckBox recwCheckBox = null;
+	private JLabel dLabel = null;
+	private TristateCheckBox workCheckBox = null;
+	private TristateCheckBox elCheckBox = null;
+	private TristateCheckBox stCheckBox = null;
+	private TristateCheckBox navCheckBox = null;
+	private JLabel provLabel = null;
+	private TristateCheckBox oilCheckBox = null;
+	private TristateCheckBox dieselCheckBox = null;
+	private TristateCheckBox waterCheckBox = null;
+	private TristateCheckBox provCheckBox = null;
+	private TristateCheckBox deckCheckBox = null;
+	private TristateCheckBox mCheckBox = null;
+	private TristateCheckBox mmCheckBox = null;
+	private TristateCheckBox imCheckBox = null;
+	private TristateCheckBox bmCheckBox = null;
 	/**
 	 * This is the default constructor
@@ -28,12 +92,744 @@
 	 */
 	private void initialize() {
+		
+		provLabel = new JLabel();
+		provLabel.setBounds(new Rectangle(1, 225, 45, 20));
+		provLabel.setFont(new Font("Dialog", Font.PLAIN, 12));
+		provLabel.setText("Gueter:");
+		dLabel = new JLabel();
+		dLabel.setBounds(new Rectangle(1, 205, 45, 20));
+		dLabel.setFont(new Font("Dialog", Font.PLAIN, 12));
+		dLabel.setText(" Dienst:");
+		recLabel = new JLabel();
+		recLabel.setBounds(new Rectangle(187, 165, 90, 20));
+		recLabel.setFont(new Font("Dialog", Font.PLAIN, 12));
+		recLabel.setText("Entsorgungen:");
 		servLabel = new JLabel();
-		servLabel.setBounds(new Rectangle(128, 22, 69, 36));
-		servLabel.setText("Services");
-		
+		servLabel.setBounds(new Rectangle(1, 185, 45, 20));
+		servLabel.setFont(new Font("Dialog", Font.PLAIN, 12));
+		servLabel.setText("Service:");
+		DLLabel = new JLabel();
+		DLLabel.setBounds(new Rectangle(3, 165, 147, 20));
+		DLLabel.setText("weitere Dienstleistungen");
+		schwLabel = new JLabel();
+		schwLabel.setBounds(new Rectangle(5, 142, 40, 16));
+		schwLabel.setFont(new Font("Dialog", Font.PLAIN, 12));
+		schwLabel.setText("  schw.");
+		mobLabel = new JLabel();
+		mobLabel.setBounds(new Rectangle(5, 126, 40, 16));
+		mobLabel.setFont(new Font("Dialog", Font.PLAIN, 12));
+		mobLabel.setText("  mobil");
+		fixLabel = new JLabel();
+		fixLabel.setBounds(new Rectangle(5, 110, 40, 16));
+		fixLabel.setFont(new Font("Dialog", Font.PLAIN, 12));
+		fixLabel.setText("     fest");
+		nLabel = new JLabel();
+		nLabel.setBounds(new Rectangle(200, 90, 38, 20));
+		nLabel.setFont(new Font("Dialog", Font.PLAIN, 12));
+		nLabel.setText("  0-25t");
+		zLabel = new JLabel();
+		zLabel.setBounds(new Rectangle(150, 90, 45, 20));
+		zLabel.setFont(new Font("Dialog", Font.PLAIN, 12));
+		zLabel.setText(" 25-50t");
+		fLabel = new JLabel();
+		fLabel.setBounds(new Rectangle(100, 90, 45, 20));
+		fLabel.setFont(new Font("Dialog", Font.PLAIN, 12));
+		fLabel.setText("50-100t");
+		hLabel = new JLabel();
+		hLabel.setBounds(new Rectangle(50, 90, 45, 20));
+		hLabel.setFont(new Font("Dialog", Font.PLAIN, 12));
+		hLabel.setText("  >100t");
+		craneLabel = new JLabel();
+		craneLabel.setBounds(new Rectangle(5, 90, 42, 20));
+		craneLabel.setText("    Kran");
+		moorLabel = new JLabel();
+		moorLabel.setBounds(new Rectangle(145, 50, 65, 16));
+		moorLabel.setFont(new Font("Dialog", Font.PLAIN, 12));
+		moorLabel.setText("Ankerplatz:");
+		loadLabel = new JLabel();
+		loadLabel.setBounds(new Rectangle(3, 50, 97, 16));
+		loadLabel.setText("Laden / Entladen");
+		airLabel = new JLabel();
+		airLabel.setBounds(new Rectangle(215, 26, 20, 20));
+		// airLabel.setText("JLabel");
+		airLabel.setIcon(new ImageIcon(getClass().getResource("/images/Airplane_20x19.png")));
+		infraLabel = new JLabel();
+		infraLabel.setBounds(new Rectangle(5, 26, 20, 20));
+		// infraLabel.setText("JLabel");
+		infraLabel.setIcon(new ImageIcon(getClass().getResource("/images/Bahn_20x16.png")));
+		raPicLabel = new JLabel();
+		raPicLabel.setBounds(new Rectangle(5, 2, 20, 20));
+		// raPicLabel.setText("\"\"");
+		raPicLabel.setIcon(new ImageIcon(getClass().getResource("/images/Telefon_14x20.png")));
 		this.setSize(330, 270);
 		this.setLayout(null);
 		this.setBorder(BorderFactory.createLineBorder(Color.black, 1));
+		this.add(raPicLabel, null);
+		this.add(getTelCheckBox(), null);
+		this.add(getFaxCheckBox(), null);
+		this.add(getRadioCheckBox(), null);
+		this.add(getRaTelCheckBox(), null);
+		this.add(infraLabel, null);
+		this.add(getOpnvCheckBox(), null);
+		this.add(getRailCheckBox(), null);
+		this.add(airLabel, null);
+		this.add(getAirCheckBox(), null);
+		this.add(loadLabel, null);
+		this.add(getKaiCheckBox(), null);
+		this.add(getAncCheckBox(), null);
+		this.add(moorLabel, null);
+		this.add(craneLabel, null);
+		this.add(hLabel, null);
+		this.add(fLabel, null);
+		this.add(zLabel, null);
+		this.add(nLabel, null);
+		this.add(getSlipCheckBox(), null);
+		this.add(fixLabel, null);
+		this.add(getHfCheckBox(), null);
+		this.add(getFfCheckBox(), null);
+		this.add(getZfCheckBox(), null);
+		this.add(getNfCheckBox(), null);
+		this.add(getDockCheckBox(), null);
+		this.add(mobLabel, null);
+		this.add(getHmCheckBox(), null);
+		this.add(getFmCheckBox(), null);
+		this.add(getZmCheckBox(), null);
+		this.add(getNmCheckBox(), null);
+		this.add(schwLabel, null);
+		this.add(getHsCheckBox(), null);
+		this.add(getFsCheckBox(), null);
+		this.add(getZsCheckBox(), null);
+		this.add(getNsCheckBox(), null);
+		this.add(DLLabel, null);
+		this.add(getAnbCheckBox(), null);
+		this.add(getRepCheckBox(), null);
 		this.add(servLabel, null);
+		this.add(getMedCheckBox(), null);
+		this.add(getDegCheckBox(), null);
+		this.add(recLabel, null);
+		this.add(getRecmCheckBox(), null);
+		this.add(getRecwCheckBox(), null);
+		this.add(dLabel, null);
+		this.add(getWorkCheckBox(), null);
+		this.add(getElCheckBox(), null);
+		this.add(getStCheckBox(), null);
+		this.add(getNavCheckBox(), null);
+		this.add(provLabel, null);
+		this.add(getOilCheckBox(), null);
+		this.add(getDieselCheckBox(), null);
+		this.add(getWaterCheckBox(), null);
+		this.add(getProvCheckBox(), null);
+		this.add(getDeckCheckBox(), null);
+		this.add(getMCheckBox(), null);
+		this.add(getMmCheckBox(), null);
+		this.add(getImCheckBox(), null);
+		this.add(getBmCheckBox(), null);
+	}
+
+	/**
+	 * This method initializes telCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getTelCheckBox() {
+		if (telCheckBox == null) {
+			telCheckBox = new TristateCheckBox();
+			telCheckBox.setBounds(new Rectangle(30, 2, 70, 20));
+			telCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			telCheckBox.setText("Telefon");
+		}
+		return telCheckBox;
+	}
+
+	/**
+	 * This method initializes faxCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getFaxCheckBox() {
+		if (faxCheckBox == null) {
+			faxCheckBox = new TristateCheckBox();
+			faxCheckBox.setBounds(new Rectangle(98, 2, 70, 20));
+			faxCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			faxCheckBox.setText("Fax");
+		}
+		return faxCheckBox;
+	}
+
+	/**
+	 * This method initializes radioCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getRadioCheckBox() {
+		if (radioCheckBox == null) {
+			radioCheckBox = new TristateCheckBox();
+			radioCheckBox.setBounds(new Rectangle(170,2, 70, 20));
+			radioCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			radioCheckBox.setText("Funk");
+		}
+		return radioCheckBox;
+	}
+
+	/**
+	 * This method initializes raTelCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getRaTelCheckBox() {
+		if (raTelCheckBox == null) {
+			raTelCheckBox = new TristateCheckBox();
+			raTelCheckBox.setBounds(new Rectangle(240, 2, 89, 21));
+			raTelCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			raTelCheckBox.setText("Funktelefon");
+		}
+		return raTelCheckBox;
+	}
+
+	/**
+	 * This method initializes opnvCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getOpnvCheckBox() {
+		if (opnvCheckBox == null) {
+			opnvCheckBox = new TristateCheckBox();
+			opnvCheckBox.setBounds(new Rectangle(30, 26, 70, 20));
+			opnvCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			opnvCheckBox.setText("OEPNV");
+		}
+		return opnvCheckBox;
+	}
+
+	/**
+	 * This method initializes railCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getRailCheckBox() {
+		if (railCheckBox == null) {
+			railCheckBox = new TristateCheckBox();
+			railCheckBox.setBounds(new Rectangle(98, 26, 72, 20));
+			railCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			railCheckBox.setText("Bahnhof");
+		}
+		return railCheckBox;
+	}
+
+	/**
+	 * This method initializes airCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getAirCheckBox() {
+		if (airCheckBox == null) {
+			airCheckBox = new TristateCheckBox();
+			airCheckBox.setBounds(new Rectangle(240, 26, 89, 20));
+			airCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			airCheckBox.setText("Flughafen");
+		}
+		return airCheckBox;
+	}
+
+	/**
+	 * This method initializes kaiCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getKaiCheckBox() {
+		if (kaiCheckBox == null) {
+			kaiCheckBox = new TristateCheckBox();
+			kaiCheckBox.setBounds(new Rectangle(5, 65, 70, 20));
+			kaiCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			kaiCheckBox.setText("Kai");
+		}
+		return kaiCheckBox;
+	}
+
+	/**
+	 * This method initializes ancCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getAncCheckBox() {
+		if (ancCheckBox == null) {
+			ancCheckBox = new TristateCheckBox();
+			ancCheckBox.setBounds(new Rectangle(75, 65, 70, 20));
+			ancCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			ancCheckBox.setText("Anker");
+		}
+		return ancCheckBox;
+	}
+
+	/**
+	 * This method initializes slipCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getSlipCheckBox() {
+		if (slipCheckBox == null) {
+			slipCheckBox = new TristateCheckBox();
+			slipCheckBox.setBounds(new Rectangle(247, 90, 78, 20));
+			slipCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			slipCheckBox.setText("Schleppe");
+		}
+		return slipCheckBox;
+	}
+
+	/**
+	 * This method initializes hfCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private JCheckBox getHfCheckBox() {
+		if (hfCheckBox == null) {
+			hfCheckBox = new TristateCheckBox();
+			hfCheckBox.setBounds(new Rectangle(60, 108, 20, 20));
+		}
+		return hfCheckBox;
+	}
+
+	/**
+	 * This method initializes ffCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getFfCheckBox() {
+		if (ffCheckBox == null) {
+			ffCheckBox = new TristateCheckBox();
+			ffCheckBox.setBounds(new Rectangle(110, 108, 20, 20));
+		}
+		return ffCheckBox;
+	}
+
+	/**
+	 * This method initializes zfCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getZfCheckBox() {
+		if (zfCheckBox == null) {
+			zfCheckBox = new TristateCheckBox();
+			zfCheckBox.setBounds(new Rectangle(160, 108, 20, 20));
+		}
+		return zfCheckBox;
+	}
+
+	/**
+	 * This method initializes nfCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getNfCheckBox() {
+		if (nfCheckBox == null) {
+			nfCheckBox = new TristateCheckBox();
+			nfCheckBox.setBounds(new Rectangle(210, 108, 20, 20));
+		}
+		return nfCheckBox;
+	}
+
+	/**
+	 * This method initializes dockCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getDockCheckBox() {
+		if (dockCheckBox == null) {
+			dockCheckBox = new TristateCheckBox();
+			dockCheckBox.setBounds(new Rectangle(247, 108, 78, 20));
+			dockCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			dockCheckBox.setText("Dock");
+		}
+		return dockCheckBox;
+	}
+
+	/**
+	 * This method initializes hmCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getHmCheckBox() {
+		if (hmCheckBox == null) {
+			hmCheckBox = new TristateCheckBox();
+			hmCheckBox.setBounds(new Rectangle(60, 124, 20, 20));
+		}
+		return hmCheckBox;
+	}
+
+	/**
+	 * This method initializes fmCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getFmCheckBox() {
+		if (fmCheckBox == null) {
+			fmCheckBox = new TristateCheckBox();
+			fmCheckBox.setBounds(new Rectangle(110, 124, 20, 20));
+		}
+		return fmCheckBox;
+	}
+
+	/**
+	 * This method initializes zmCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getZmCheckBox() {
+		if (zmCheckBox == null) {
+			zmCheckBox = new TristateCheckBox();
+			zmCheckBox.setBounds(new Rectangle(160, 124, 20, 20));
+		}
+		return zmCheckBox;
+	}
+
+	/**
+	 * This method initializes nmCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getNmCheckBox() {
+		if (nmCheckBox == null) {
+			nmCheckBox = new TristateCheckBox();
+			nmCheckBox.setBounds(new Rectangle(210, 124, 20, 20));
+		}
+		return nmCheckBox;
+	}
+
+	/**
+	 * This method initializes hsCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getHsCheckBox() {
+		if (hsCheckBox == null) {
+			hsCheckBox = new TristateCheckBox();
+			hsCheckBox.setBounds(new Rectangle(60, 140, 20, 20));
+		}
+		return hsCheckBox;
+	}
+
+	/**
+	 * This method initializes fsCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getFsCheckBox() {
+		if (fsCheckBox == null) {
+			fsCheckBox = new TristateCheckBox();
+			fsCheckBox.setBounds(new Rectangle(110, 140, 20, 20));
+		}
+		return fsCheckBox;
+	}
+
+	/**
+	 * This method initializes zsCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getZsCheckBox() {
+		if (zsCheckBox == null) {
+			zsCheckBox = new TristateCheckBox();
+			zsCheckBox.setBounds(new Rectangle(160, 140, 21, 21));
+		}
+		return zsCheckBox;
+	}
+
+	/**
+	 * This method initializes nsCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getNsCheckBox() {
+		if (nsCheckBox == null) {
+			nsCheckBox = new TristateCheckBox();
+			nsCheckBox.setBounds(new Rectangle(210, 140, 21, 21));
+		}
+		return nsCheckBox;
+	}
+
+	/**
+	 * This method initializes anbCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getAnbCheckBox() {
+		if (anbCheckBox == null) {
+			anbCheckBox = new TristateCheckBox();
+			anbCheckBox.setBounds(new Rectangle(247, 124, 78, 20));
+			anbCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			anbCheckBox.setText("Zug");
+		}
+		return anbCheckBox;
+	}
+
+	/**
+	 * This method initializes repCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getRepCheckBox() {
+		if (repCheckBox == null) {
+			repCheckBox = new TristateCheckBox();
+			repCheckBox.setBounds(new Rectangle(247, 140, 82, 20));
+			repCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			repCheckBox.setText("Reperatur");
+		}
+		return repCheckBox;
+	}
+
+	/**
+	 * This method initializes medCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getMedCheckBox() {
+		if (medCheckBox == null) {
+			medCheckBox = new TristateCheckBox();
+			medCheckBox.setBounds(new Rectangle(42, 185, 66, 20));
+			medCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			medCheckBox.setText("Medizin");
+		}
+		return medCheckBox;
+	}
+
+	/**
+	 * This method initializes degCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getDegCheckBox() {
+		if (degCheckBox == null) {
+			degCheckBox = new TristateCheckBox();
+			degCheckBox.setBounds(new Rectangle(104, 185, 80, 20));
+			degCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			degCheckBox.setText("Degauss");
+		}
+		return degCheckBox;
+	}
+
+	/**
+	 * This method initializes recmCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getRecmCheckBox() {
+		if (recmCheckBox == null) {
+			recmCheckBox = new TristateCheckBox();
+			recmCheckBox.setBounds(new Rectangle(180, 185, 55, 20));
+			recmCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			recmCheckBox.setText("Muell"); // waste
+		}
+		return recmCheckBox;
+	}
+
+	/**
+	 * This method initializes recwCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getRecwCheckBox() {
+		if (recwCheckBox == null) {
+			recwCheckBox = new TristateCheckBox();
+			recwCheckBox.setBounds(new Rectangle(244, 185, 65, 20));
+			recwCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			recwCheckBox.setText("Ballast");
+		}
+		return recwCheckBox;
+	}
+
+	/**
+	 * This method initializes workCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getWorkCheckBox() {
+		if (workCheckBox == null) {
+			workCheckBox = new TristateCheckBox();
+			workCheckBox.setBounds(new Rectangle(42, 205, 66, 20));
+			workCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			workCheckBox.setText("Arbeit");
+		}
+		return workCheckBox;
+	}
+
+	/**
+	 * This method initializes elCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getElCheckBox() {
+		if (elCheckBox == null) {
+			elCheckBox = new TristateCheckBox();
+			elCheckBox.setBounds(new Rectangle(104, 205, 80, 20));
+			elCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			elCheckBox.setText("Elektrik");
+		}
+		return elCheckBox;
+	}
+
+	/**
+	 * This method initializes stCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getStCheckBox() {
+		if (stCheckBox == null) {
+			stCheckBox = new TristateCheckBox();
+			stCheckBox.setBounds(new Rectangle(180, 205, 62, 20));
+			stCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			stCheckBox.setText("Dampf");
+		}
+		return stCheckBox;
+	}
+
+	/**
+	 * This method initializes navCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getNavCheckBox() {
+		if (navCheckBox == null) {
+			navCheckBox = new TristateCheckBox();
+			navCheckBox.setBounds(new Rectangle(244, 205, 83, 20));
+			navCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			navCheckBox.setText("Navigation");
+		}
+		return navCheckBox;
+	}
+
+	/**
+	 * This method initializes oilCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getOilCheckBox() {
+		if (oilCheckBox == null) {
+			oilCheckBox = new TristateCheckBox();
+			oilCheckBox.setBounds(new Rectangle(42, 225, 60, 20));
+			oilCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			oilCheckBox.setText("Oel");
+		}
+		return oilCheckBox;
+	}
+
+	/**
+	 * This method initializes dieselCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getDieselCheckBox() {
+		if (dieselCheckBox == null) {
+			dieselCheckBox = new TristateCheckBox();
+			dieselCheckBox.setBounds(new Rectangle(104, 225, 80, 20));
+			dieselCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			dieselCheckBox.setText("Diesel");
+		}
+		return dieselCheckBox;
+	}
+
+	/**
+	 * This method initializes waterCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getWaterCheckBox() {
+		if (waterCheckBox == null) {
+			waterCheckBox = new TristateCheckBox();
+			waterCheckBox.setBounds(new Rectangle(180, 225, 68
+					, 20));
+			waterCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			waterCheckBox.setText("Wasser");
+		}
+		return waterCheckBox;
+	}
+
+	/**
+	 * This method initializes provCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getProvCheckBox() {
+		if (provCheckBox == null) {
+			provCheckBox = new TristateCheckBox();
+			provCheckBox.setBounds(new Rectangle(244, 225, 83, 20));
+			provCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			provCheckBox.setText("Proviant");
+		}
+		return provCheckBox;
+	}
+
+	/**
+	 * This method initializes deckCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getDeckCheckBox() {
+		if (deckCheckBox == null) {
+			deckCheckBox = new TristateCheckBox();
+			deckCheckBox.setBounds(new Rectangle(42, 245, 60, 20));
+			deckCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			deckCheckBox.setText("Deck");
+		}
+		return deckCheckBox;
+	}
+
+	/**
+	 * This method initializes mCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getMCheckBox() {
+		if (mCheckBox == null) {
+			mCheckBox = new TristateCheckBox();
+			mCheckBox.setBounds(new Rectangle(104, 245, 80, 20));
+			mCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			mCheckBox.setText("Maschine");
+		}
+		return mCheckBox;
+	}
+
+	/**
+	 * This method initializes mmCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getMmCheckBox() {
+		if (mmCheckBox == null) {
+			mmCheckBox = new TristateCheckBox();
+			mmCheckBox.setBounds(new Rectangle(145, 65, 55, 20));
+			mmCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			mmCheckBox.setText("Med.");
+		}
+		return mmCheckBox;
+	}
+
+	/**
+	 * This method initializes imCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getImCheckBox() {
+		if (imCheckBox == null) {
+			imCheckBox = new TristateCheckBox();
+			imCheckBox.setBounds(new Rectangle(200, 65, 55, 20));
+			imCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			imCheckBox.setText("Ice");
+		}
+		return imCheckBox;
+	}
+
+	/**
+	 * This method initializes bmCheckBox	
+	 * 	
+	 * @return javax.swing.JCheckBox	
+	 */
+	private TristateCheckBox getBmCheckBox() {
+		if (bmCheckBox == null) {
+			bmCheckBox = new TristateCheckBox();
+			bmCheckBox.setBounds(new Rectangle(255, 65, 60, 20));
+			bmCheckBox.setFont(new Font("Dialog", Font.PLAIN, 12));
+			bmCheckBox.setText("Beach");
+		}
+		return bmCheckBox;
 	}
 
Index: applications/editors/josm/plugins/smed/plugs/harbour/src/harbour/widgets/SizePanel.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/harbour/src/harbour/widgets/SizePanel.java	(revision 24537)
+++ applications/editors/josm/plugins/smed/plugs/harbour/src/harbour/widgets/SizePanel.java	(revision 24540)
@@ -98,5 +98,5 @@
 		tieLabel.setText("Ankerplatz");
 		chLabel = new JLabel();
-		chLabel.setBounds(new Rectangle(75, 25, 75, 15));
+		chLabel.setBounds(new Rectangle(75, 25, 70, 15));
 		chLabel.setFont(new Font("Dialog", Font.PLAIN, 12));
 		chLabel.setText("Fahrwasser");
Index: applications/editors/josm/plugins/smed/plugs/harbour/src/harbour/widgets/TristateCheckBox.java
===================================================================
--- applications/editors/josm/plugins/smed/plugs/harbour/src/harbour/widgets/TristateCheckBox.java	(revision 24537)
+++ applications/editors/josm/plugins/smed/plugs/harbour/src/harbour/widgets/TristateCheckBox.java	(revision 24540)
@@ -33,7 +33,7 @@
 	private TristateDecorator model;
 	
-	Icon d = new ImageIcon(getClass().getResource("/images/qm.png"));
-	Icon s = new ImageIcon(getClass().getResource("/images/cm.png"));
-	Icon n = new ImageIcon(getClass().getResource("/images/xm.png"));
+	Icon d = new ImageIcon(getClass().getResource("/images/qm_12x12.png"));
+	Icon s = new ImageIcon(getClass().getResource("/images/cm_12x12.png"));
+	Icon n = new ImageIcon(getClass().getResource("/images/xm_12x12.png"));
 	
 	@SuppressWarnings("serial")
