public void loadImage(final File fileToLoad) {
		controller.getImageBean().setStatus(ImageBean.LOADING);
		controller.setStatus("Loadin image...");
		
		new SwingWorker<Boolean, Void>() {
			@Override
			protected Boolean doInBackground() throws Exception {
				try {
					loadedImage = ImageIO.read(fileToLoad);
					return loadedImage != null;
				} catch (IOException e) {
					e.printStackTrace();
					return false;
				}
			}
			
			protected void done() {
				try {
					if (get()) {
						controller.getImageBean().setImage(loadedImage);
						controller.getImageBean().setStatus(ImageBean.LOADED);
						controller.setStatus("Image loaded", 5000);
						controller.setStatusResolution(new Dimension(
							loadedImage.getWidth(), 
							loadedImage.getHeight()
						));
					}
					else {
						controller.getImageBean().setStatus(ImageBean.ERROR_NOT_AN_IMAGE);
						controller.setStatus("File is not readable or not an image");
					}
				} catch (Exception e) {
					controller.setStatus("Error occured: "+e.getMessage());
					e.printStackTrace();
				}
			};
		}.execute();	
	}