private static void initGussian(Composite inComposite, int heightHint) {
		final Composite toolbar = new Composite(inComposite, SWT.BORDER);
		final Composite gaussion = new Composite(inComposite, SWT.BORDER);
		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
		gridData.grabExcessHorizontalSpace = true;

		gridData.heightHint = heightHint;
		gaussion.setLayoutData(gridData);
		gaussion.addListener(SWT.Paint, new Listener() {
			public void handleEvent(Event event) {
				ImageUtils.paintImage(event.gc, gaussionImage, gaussionImageHistogram);
			}
		});

		createToolbarGridData(toolbar);
		toolbar.setLayout(new GridLayout(100, false));

		Label label = new Label(toolbar, SWT.NONE);
		label.setText("Mean: ");
		final Text mt = new Text(toolbar, SWT.BORDER);
		mt.setText("0");

		label = new Label(toolbar, SWT.NONE);
		label.setText("Variance: ");
		final Text vt = new Text(toolbar, SWT.BORDER);
		vt.setText("100");

		Button button = new Button(toolbar, SWT.PUSH);
		button.setText("Add Gaussian Noise");
		button.setBounds(0, 0, 100, 30);
		button.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, true, 1, 1));
		button.addListener(SWT.MouseDown, new Listener() {
			public void handleEvent(Event event) {
				double mean = 2;
				try {
					mean = Double.parseDouble(mt.getText());
				} catch (Exception e) {
					e.printStackTrace();
				}

				double variance = 25;
				try {
					variance = Double.parseDouble(vt.getText());
				} catch (Exception e) {
					e.printStackTrace();
				}
				gaussionImage = addGaussionNoise(originalImage, mean, variance);
				gaussionImageHistogram = ImageUtils.analyzeHistogram(gaussionImage.getImageData());
				ImageUtils.paintImage(new GC(gaussion), gaussionImage, gaussionImageHistogram);
			}

		});

	}