Index: /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/actions/transform/affine/MovePointAction.java
===================================================================
--- /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/actions/transform/affine/MovePointAction.java	(revision 35029)
+++ /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/actions/transform/affine/MovePointAction.java	(revision 35030)
@@ -9,6 +9,4 @@
 
 import org.openstreetmap.josm.data.coor.LatLon;
-import org.openstreetmap.josm.data.coor.conversion.CoordinateFormatManager;
-import org.openstreetmap.josm.data.coor.conversion.ICoordinateFormat;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.plugins.piclayer.actions.GenericPicTransformAction;
@@ -77,7 +75,6 @@
     private void setLatLonOriginPoints(Point2D point) {
     	LatLon latLonPoint = MainApplication.getMap().mapView.getLatLon(point.getX(), point.getY());
-        ICoordinateFormat mCoord = CoordinateFormatManager.getDefaultFormat();
-        double latY = Double.parseDouble(mCoord.latToString(latLonPoint));
-        double lonX = Double.parseDouble(mCoord.lonToString(latLonPoint));
+    	double latY = latLonPoint.getY();
+    	double lonX = latLonPoint.getX();
         currentLayer.getTransformer().addLatLonOriginPoint(new Point2D.Double(lonX, latY));
     }
Index: /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/actions/transform/autocalibrate/AutoCalibrateHandler.java
===================================================================
--- /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/actions/transform/autocalibrate/AutoCalibrateHandler.java	(revision 35029)
+++ /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/actions/transform/autocalibrate/AutoCalibrateHandler.java	(revision 35030)
@@ -25,6 +25,4 @@
 import org.openstreetmap.josm.actions.OpenFileAction;
 import org.openstreetmap.josm.data.coor.LatLon;
-import org.openstreetmap.josm.data.coor.conversion.CoordinateFormatManager;
-import org.openstreetmap.josm.data.coor.conversion.ICoordinateFormat;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
@@ -32,4 +30,5 @@
 import org.openstreetmap.josm.gui.MapViewState.MapViewPoint;
 import org.openstreetmap.josm.gui.help.HelpBrowser;
+import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.plugins.piclayer.actions.transform.affine.MovePointAction;
 import org.openstreetmap.josm.plugins.piclayer.actions.transform.autocalibrate.helper.ObservableArrayList;
@@ -38,4 +37,5 @@
 import org.openstreetmap.josm.plugins.piclayer.gui.autocalibrate.ReferenceOptionView;
 import org.openstreetmap.josm.plugins.piclayer.gui.autocalibrate.ResultCheckView;
+import org.openstreetmap.josm.plugins.piclayer.gui.autocalibrate.SelectLayerView;
 import org.openstreetmap.josm.plugins.piclayer.layer.PicLayerAbstract;
 import org.openstreetmap.josm.tools.Logging;
@@ -55,4 +55,5 @@
 	private ReferenceOptionView refOptionView;
 	private File referenceFile;
+	private Layer referenceLayer;
 	private AutoCalibrator calibrator;
 	private ObservableArrayList<Point2D> originPointList;		// points set on picture to calibrate, scaled in LatLon
@@ -69,4 +70,5 @@
 		this.distance2To3 = 0.0;
 		this.referenceFile = null;
+		this.referenceLayer = null;
 		this.currentPicLayer = null;
 		this.mainWindow = new CalibrationWindow();
@@ -104,4 +106,5 @@
 			this.mainWindow.addDistance2FieldListener(new TextField2Listener());
 			this.mainWindow.addOpenFileButtonListener(new OpenFileButtonListener());
+			this.mainWindow.addSelectLayerButtonListener(new SelectLayerButtonListener());
 			this.mainWindow.addReferencePointButtonListener(new RefPointsButtonListener());
 			this.mainWindow.addCancelButtonListener(new CancelButtonListener());
@@ -156,4 +159,55 @@
 
 	/**
+	 * Select layer button listener
+	 * @author rebsc
+	 *
+	 */
+	private class SelectLayerButtonListener implements ActionListener {
+		private SelectLayerView selector;
+
+		@Override
+		public void actionPerformed(ActionEvent event) {
+			mainWindow.setVisible(false);
+
+			selector = new SelectLayerView();
+			selector.setVisible(true);
+
+			selector.setOkButtonListener(new SelectorOkButtonListener());
+			selector.setCancelButtonListener(new SelectorCancelButtonListener());
+		}
+
+		private class SelectorCancelButtonListener implements ActionListener {
+			@Override
+		    public void actionPerformed(ActionEvent e) {
+				selector.getFrame().dispatchEvent(new WindowEvent(selector.getFrame(), WindowEvent.WINDOW_CLOSING));
+		    }
+		}
+
+		private class SelectorOkButtonListener implements ActionListener {
+			@Override
+		    public void actionPerformed(ActionEvent e) {
+				String filename = (String) selector.getList().getSelectedValue();
+
+				if(filename != null) {
+					for(Layer l : MainApplication.getLayerManager().getLayers()) {
+						if(l.getName().equals(filename)) {
+							referenceLayer = l;
+							MainApplication.getLayerManager().setActiveLayer(l);
+						}
+					}
+				}
+
+				if(referenceLayer != null) {
+					mainWindow.setReferenceFileNameValue(filename);
+				}
+				else	calibrator.showErrorView(CalibrationErrorView.SELECT_LAYER_ERROR);
+
+				selector.setVisible(false);
+				mainWindow.setVisible(true);
+		    }
+		}
+	}
+
+	/**
 	 * Cancel button listener
 	 * @author rebsc
@@ -164,4 +218,5 @@
 	    public void actionPerformed(ActionEvent e) {
 			reset();
+			removeListChangedListener();
 	    }
 	}
@@ -221,5 +276,7 @@
 	    	public void windowClosing(WindowEvent wEvt) {
 	    		reset();
+	    		removeListChangedListener();
 	    	}
+
 		};
 		return adapter;
@@ -349,5 +406,5 @@
 		@Override
 		public void mouseClicked(MouseEvent e) {
-			if(referenceFile == null) {
+			if(referenceFile == null && referenceLayer == null) {
 				MainApplication.getMap().mapView.removeMouseListener(this);
 				return;
@@ -357,7 +414,6 @@
 				// add point to reference list in lat/lon scale
 				LatLon latLonPoint = MainApplication.getMap().mapView.getLatLon(e.getPoint().getX(),e.getPoint().getY());
-				ICoordinateFormat mCoord = CoordinateFormatManager.getDefaultFormat();
-				double latY = Double.parseDouble(mCoord.latToString(latLonPoint));
-				double lonX = Double.parseDouble(mCoord.lonToString(latLonPoint));
+				double latY = latLonPoint.getY();
+				double lonX = latLonPoint.getX();
 				Point2D llPoint = new Point2D.Double(lonX, latY);
 				referencePointList.add(llPoint);
@@ -397,5 +453,5 @@
 		@Override
 		public void mouseClicked(MouseEvent e) {
-			if(referenceFile == null) {
+			if(referenceFile == null && referenceLayer == null) {
 				MainApplication.getMap().mapView.removeMouseListener(this);
 				return;
@@ -405,7 +461,6 @@
 				// get pressed point in lat/lon
 				LatLon latLonPoint = MainApplication.getMap().mapView.getLatLon(e.getPoint().getX(),e.getPoint().getY());
-				ICoordinateFormat mCoord = CoordinateFormatManager.getDefaultFormat();
-				double latY = Double.parseDouble(mCoord.latToString(latLonPoint));
-				double lonX = Double.parseDouble(mCoord.lonToString(latLonPoint));
+			  	double latY = latLonPoint.getY();
+		    	double lonX = latLonPoint.getX();
 				Point2D llPoint = new Point2D.Double(lonX, latY);
 
@@ -470,10 +525,4 @@
 
 	// HELPER
-
-	private void addFileInNewLayer(File file) {
-		List<File> files = new ArrayList<>();
-		files.add(file);
-		OpenFileAction.openFiles(files);
-	}
 
 	public void prepare(PicLayerAbstract layer) {
@@ -491,4 +540,24 @@
 	}
 
+	private void reset() {
+		originPointList = new ObservableArrayList<>(3);
+		referencePointList = new ObservableArrayList<>(3);
+		distance1To2 = 0.0;
+		distance2To3 = 0.0;
+		this.referenceFile = null;
+		this.referenceLayer = null;
+		resetLists();
+		currentPicLayer.clearDrawReferencePoints();
+		currentPicLayer.invalidate();
+		mainWindow.setVisible(false);
+		mainWindow = new CalibrationWindow();
+		addListenerToMainView();
+	}
+
+	private void resetLists() {
+		currentPicLayer.getTransformer().clearOriginPoints();
+		currentPicLayer.getTransformer().clearLatLonOriginPoints();
+	}
+
 	private void addListChangedListenerToPointLists() {
 		OriginSizePropertyListener originListener = new OriginSizePropertyListener();
@@ -496,4 +565,9 @@
 		RefSizePropertyListener refListener = new RefSizePropertyListener();
 		this.referencePointList.addPropertyChangeListener(refListener);
+	}
+
+	private void removeListChangedListener() {
+		currentPicLayer.getTransformer().getLatLonOriginPoints().removeAllListener();
+		referencePointList.removeAllListener();
 	}
 
@@ -531,22 +605,8 @@
 	}
 
-	private void reset() {
-		originPointList = new ObservableArrayList<>(3);
-		referencePointList = new ObservableArrayList<>(3);
-		distance1To2 = 0.0;
-		distance2To3 = 0.0;
-		this.referenceFile = null;
-		resetLists();
-		currentPicLayer.clearDrawReferencePoints();
-		currentPicLayer.invalidate();
-		mainWindow.setVisible(false);
-		mainWindow = new CalibrationWindow();
-		addListenerToMainView();
-	}
-
-	private void resetLists() {
-		currentPicLayer.getTransformer().clearOriginPoints();
-		currentPicLayer.getTransformer().clearLatLonOriginPoints();
-	}
-
+	private void addFileInNewLayer(File file) {
+		List<File> files = new ArrayList<>();
+		files.add(file);
+		OpenFileAction.openFiles(files);
+	}
 }
Index: /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/actions/transform/autocalibrate/helper/ObservableArrayList.java
===================================================================
--- /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/actions/transform/autocalibrate/helper/ObservableArrayList.java	(revision 35029)
+++ /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/actions/transform/autocalibrate/helper/ObservableArrayList.java	(revision 35030)
@@ -89,3 +89,9 @@
     }
 
+	public void removeAllListener() {
+		PropertyChangeListener[] listener = changes.getPropertyChangeListeners();
+		int size = listener.length;
+		for(int i=0; i<size; i++)	changes.removePropertyChangeListener(listener[i]);
+	}
+
 }
Index: /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/gui/autocalibrate/CalibrationErrorView.java
===================================================================
--- /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/gui/autocalibrate/CalibrationErrorView.java	(revision 35029)
+++ /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/gui/autocalibrate/CalibrationErrorView.java	(revision 35030)
@@ -18,4 +18,5 @@
 
 	public final static String OUTLINE_FILE_ERROR = tr("Could not load outline file!");
+	public final static String SELECT_LAYER_ERROR = tr("Could not select layer!");
 	public final static String CALIBRATION_ERROR = tr("Calibration failed!");
 	public final static String DIMENSION_ERROR = tr("<html> Calibration failed!<br>"
Index: /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/gui/autocalibrate/CalibrationWindow.java
===================================================================
--- /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/gui/autocalibrate/CalibrationWindow.java	(revision 35029)
+++ /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/gui/autocalibrate/CalibrationWindow.java	(revision 35030)
@@ -59,4 +59,5 @@
 	 private JButton helpButton;
 	 private JButton openButton;
+	 private JButton selectLayerButton;
 	 private JButton runButton;
 	 private JButton cancelButton;
@@ -114,4 +115,5 @@
 	      helpButton = new JButton();
 	      openButton = new JButton();
+	      selectLayerButton = new JButton();
 	      runButton = new JButton();
 	      cancelButton = new JButton();
@@ -168,4 +170,5 @@
     	  setRefFileName();
 		  setOpenButton();
+		  setSelectLayerButton();
 	      setRefPointHeader();
 	      setRefPointNamesValues();
@@ -238,5 +241,5 @@
 		else {
 		    addEdgePointsButton = new JButton(tr("Add Points..."));
-			contentPanel.add(addEdgePointsButton, new GridBagConstraints(3, 1, 3, 1, 0.0, 0.0,
+			contentPanel.add(addEdgePointsButton, new GridBagConstraints(3, 1, GridBagConstraints.REMAINDER, 1, 0.0, 0.0,
 			          GridBagConstraints.CENTER, GridBagConstraints.BOTH,
 			          new Insets(5, 50, 5, 5), 0, 0));
@@ -253,5 +256,5 @@
 	private void setDistance1Field() {
 		distance1Field.setText("Click here...");
-	    contentPanel.add(distance1Field, new GridBagConstraints(3, 3, 2, 1, 0.0, 0.0,
+	    contentPanel.add(distance1Field, new GridBagConstraints(3, 3, GridBagConstraints.REMAINDER, 1, 0.0, 0.0,
 	            GridBagConstraints.CENTER, GridBagConstraints.BOTH,
 	            new Insets(5, 50, 5, 5), 0, 0));
@@ -267,5 +270,5 @@
 	private void setDistance2Field() {
 	    distance2Field.setText("Click here...");
-	    contentPanel.add(distance2Field, new GridBagConstraints(3, 4, 2, 1, 0.0, 0.0,
+	    contentPanel.add(distance2Field, new GridBagConstraints(3, 4, GridBagConstraints.REMAINDER, 1, 0.0, 0.0,
 	          GridBagConstraints.CENTER, GridBagConstraints.BOTH,
 	          new Insets(5, 50, 5, 5), 0, 0));
@@ -280,5 +283,5 @@
 
 	private void setRefFileName() {
-		refFileName.setText(tr("<html>File Name:"
+		refFileName.setText(tr("<html>Reference Name:"
 		      + "<br>"
 		      + "<br>"
@@ -286,7 +289,23 @@
 		      + "</html>"));
 
-		contentPanel.add(refFileName, new GridBagConstraints(0, 6, 3, 1, 0.0, 0.0,
+		contentPanel.add(refFileName, new GridBagConstraints(0, 6, GridBagConstraints.REMAINDER, 1, 0.0, 0.0,
 				GridBagConstraints.CENTER, GridBagConstraints.BOTH,
 				new Insets(5, 5, 5, 30), 0, 0));
+	}
+
+	private void setSelectLayerButton() {
+		String imageName = "layerlist.png";
+		Image image = null;
+		try {
+			image = ImageIO.read(getClass().getResource("/images/" + imageName));
+		} catch (Exception ex) {
+			System.out.println("Error: Could not load image " + imageName + "," + ex);
+	 	}
+
+		selectLayerButton.setToolTipText(tr("Select a layer as reference..."));
+	    selectLayerButton.setIcon(new ImageIcon(image));
+	    contentPanel.add(selectLayerButton, new GridBagConstraints(3, 6, 2, 1, 1.0, 0.0,
+	          GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+	          new Insets(5, 50, 5, 5), 0, 0));
 	}
 
@@ -300,9 +319,9 @@
 	 	}
 
-	    openButton = new JButton(tr("Open a File..."));
+		openButton.setToolTipText(tr("Open a file as reference..."));
 	    openButton.setIcon(new ImageIcon(image));
-	    contentPanel.add(openButton, new GridBagConstraints(3, 6, 2, 1, 0.0, 0.0,
-	          GridBagConstraints.CENTER, GridBagConstraints.BOTH,
-	          new Insets(5, 50, 5, 5), 0, 0));
+	    contentPanel.add(openButton, new GridBagConstraints(6, 6, GridBagConstraints.REMAINDER, 1, 1.0, 0.0,
+	          GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+	          new Insets(5, 5, 5, 5), 0, 0));
 	}
 
@@ -341,5 +360,5 @@
 						+ "</html>"));
 
-			  contentPanel.add(refPointValues, new GridBagConstraints(3, 8, 3, 1, 0.0, 0.0,
+			  contentPanel.add(refPointValues, new GridBagConstraints(3, 8, GridBagConstraints.REMAINDER, 1, 0.0, 0.0,
 					  GridBagConstraints.CENTER, GridBagConstraints.BOTH,
 				      new Insets(5, 5, 5, 30), 0, 0));
@@ -347,5 +366,5 @@
 		 else {
 		      addRefPointsButton = new JButton(tr("Add Points..."));
-			  contentPanel.add(addRefPointsButton, new GridBagConstraints(3, 8, 3, 1, 0.0, 0.0,
+			  contentPanel.add(addRefPointsButton, new GridBagConstraints(3, 8, GridBagConstraints.REMAINDER, 1, 0.0, 0.0,
 			            GridBagConstraints.CENTER, GridBagConstraints.BOTH,
 			            new Insets(5, 50, 5, 5), 0, 0));
@@ -381,5 +400,5 @@
 		Point2D p2 = null;
 		Point2D p3 = null;
-		DecimalFormat df = new DecimalFormat("###.###");
+		DecimalFormat df = new DecimalFormat("###,###.###");
 
 		if(this.originPoints.size() == 3) {
@@ -391,7 +410,7 @@
 
 		edgePointValues.setText(tr("<html>"
-			+ df.format(p1.getY()) + ", " + df.format(p1.getX()) + "<br>"
-			+ df.format(p2.getY()) + ", " + df.format(p2.getX()) + "<br>"
-			+ df.format(p3.getY()) + ", " + df.format(p3.getX()) + "<br>"
+			+ df.format(p1.getY()) + " , " + df.format(p1.getX()) + "<br>"
+			+ df.format(p2.getY()) + " , " + df.format(p2.getX()) + "<br>"
+			+ df.format(p3.getY()) + " , " + df.format(p3.getX()) + "<br>"
 					+ "</html>"));
 
@@ -434,6 +453,7 @@
 
 	private void refFileEntered() {
+		contentPanel.remove(selectLayerButton);
 		contentPanel.remove(openButton);
-		refFileName.setText(tr("<html>File Name:</html>"));
+		refFileName.setText(tr("<html>Reference Name:</html>"));
 		refFileNameValue.setText(referenceFileName);
 		contentPanel.add(refFileNameValue, new GridBagConstraints(3, 6, 2, 1, 0.0, 0.0,
@@ -451,5 +471,5 @@
 		Point2D p2 = null;
 		Point2D p3 = null;
-		DecimalFormat df = new DecimalFormat("###.###");
+		DecimalFormat df = new DecimalFormat("###,###.###");
 
 		if(this.referencePoints.size() == 3) {
@@ -461,7 +481,7 @@
 
 		refPointValues.setText(tr("<html>"
-				+ df.format(p1.getY()) + ", " + df.format(p1.getX()) + "<br>"
-				+ df.format(p2.getY()) + ", " + df.format(p2.getX()) + "<br>"
-				+ df.format(p3.getY()) + ", " + df.format(p3.getX()) + "<br>"
+				+ df.format(p1.getY()) + " , " + df.format(p1.getX()) + "<br>"
+				+ df.format(p2.getY()) + " , " + df.format(p2.getX()) + "<br>"
+				+ df.format(p3.getY()) + " , " + df.format(p3.getX()) + "<br>"
 						+ "</html>"));
 
@@ -539,16 +559,4 @@
 		if(!valueAsString.equals(""))	distance2Entered();
 	    updateState();
-	}
-
-	public void setOkButtonListener(ActionListener l) {
-	    this.runButton.addActionListener(l);
-	}
-
-	public void setCancelButtonListener(ActionListener l) {
-	    this.cancelButton.addActionListener(l);
-	}
-
-	public void setWindowListener(WindowListener l) {
-	    this.addWindowListener(l);
 	}
 
@@ -580,6 +588,22 @@
 	// LISTENER
 
+	public void setOkButtonListener(ActionListener l) {
+	    this.runButton.addActionListener(l);
+	}
+
+	public void setCancelButtonListener(ActionListener l) {
+	    this.cancelButton.addActionListener(l);
+	}
+
+	public void setWindowListener(WindowListener l) {
+	    this.addWindowListener(l);
+	}
+
 	public void addOpenFileButtonListener(ActionListener l) {
 		this.openButton.addActionListener(l);
+	}
+
+	public void addSelectLayerButtonListener(ActionListener l) {
+		this.selectLayerButton.addActionListener(l);
 	}
 
@@ -636,4 +660,5 @@
 			distance2Field.setEnabled(false);
 			openButton.setEnabled(false);
+			selectLayerButton.setEnabled(false);
 			addRefPointsButton.setEnabled(false);
 			runButton.setEnabled(false);
@@ -644,5 +669,8 @@
 				distance2Field.setEnabled(true);
 			}
-			if(dist1Value != null)			openButton.setEnabled(true);
+			if(dist1Value != null) {
+				openButton.setEnabled(true);
+				selectLayerButton.setEnabled(true);
+			}
 			if(referenceFileName != null)	addRefPointsButton.setEnabled(true);
 			if(!referencePoints.isEmpty())	runButton.setEnabled(true);
Index: /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/gui/autocalibrate/SelectLayerView.java
===================================================================
--- /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/gui/autocalibrate/SelectLayerView.java	(revision 35030)
+++ /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/gui/autocalibrate/SelectLayerView.java	(revision 35030)
@@ -0,0 +1,111 @@
+package org.openstreetmap.josm.plugins.piclayer.gui.autocalibrate;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.BorderLayout;
+import java.awt.Container;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.border.EmptyBorder;
+
+import org.openstreetmap.josm.gui.MainApplication;
+import org.openstreetmap.josm.gui.layer.Layer;
+
+public class SelectLayerView {
+
+	private String[] labels;
+	private JList<?> list;
+	private JFrame frame;
+	private JScrollPane scrollPane;
+	private JPanel buttonBar;
+	private JButton okButton;
+	private JButton cancelButton;
+	private Container contentPane;
+
+
+	public SelectLayerView(){
+		labels = new String[10];
+		getLayerNames();
+		list = new JList<Object>(labels);
+
+		frame = new JFrame("Layer Selector");
+	    frame.setSize(400, 200);
+	    frame.setLocationRelativeTo(frame.getOwner());
+
+		contentPane = frame.getContentPane();
+
+		setScrollPane();
+		contentPane.add(scrollPane, BorderLayout.CENTER);
+
+		setButtonBar();
+	    setOKButton();
+	    setCancelButton();
+	    contentPane.add(buttonBar, BorderLayout.SOUTH);
+	}
+
+	private void getLayerNames() {
+		java.util.List<Layer> layer = MainApplication.getLayerManager().getLayers();
+		for(int i=0; i<layer.size(); i++)	labels[i] = layer.get(i).getName();
+	}
+
+	public void setVisible(boolean value) {
+		frame.setVisible(value);
+	}
+
+	public JFrame getFrame() {
+		return this.frame;
+	}
+
+	public JList<?> getList(){
+		return this.list;
+	}
+
+	// COMPONENTS
+
+	private void setScrollPane() {
+		scrollPane = new JScrollPane(list);
+	}
+
+	private void setButtonBar() {
+		buttonBar = new JPanel();
+		buttonBar.setBorder(new EmptyBorder(12, 0, 0, 0));
+	    buttonBar.setLayout(new GridBagLayout());
+	    ((GridBagLayout) buttonBar.getLayout()).columnWidths = new int[] {0, 85, 80};
+	    ((GridBagLayout) buttonBar.getLayout()).columnWeights = new double[] {1.0, 0.0, 0.0};
+	}
+
+	private void setOKButton() {
+		okButton = new JButton();
+		okButton.setText(tr("OK"));
+	    buttonBar.add(okButton, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0,
+	          GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+	          new Insets(0, 0, 0, 5), 0, 0));
+	}
+
+	private void setCancelButton() {
+		cancelButton = new JButton();
+		cancelButton.setText(tr("Cancel"));
+	    buttonBar.add(cancelButton, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0,
+	          GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+	          new Insets(0, 0, 0, 0), 0, 0));
+	}
+
+	// LISTENER
+
+	public void setOkButtonListener(ActionListener l) {
+	    this.okButton.addActionListener(l);
+	}
+
+	public void setCancelButtonListener(ActionListener l) {
+	    this.cancelButton.addActionListener(l);
+	}
+
+}
