public SettlementChooserView() {
		display = new Display();
		shell = new Shell(display);
		Monitor primary = display.getPrimaryMonitor();
		Rectangle r = primary.getBounds();
		shell.setBounds((int) (r.width * 0.1), (int) (r.height * 0.1), (int) (r.width * 0.8), (int) (r.height * 0.8));
		Point shellSize = shell.getSize();
		shell.setMinimumSize(600, 600);
		FormLayout layout = new FormLayout();
		shell.setLayout(layout);
		shell.setText("CLC processor");

		instantiateWidgets();

		layoutWidgets(shellSize);

		polygonListSC.setContent(polygonList);
		polygonListSC.setExpandHorizontal(true);
		polygonListSC.setExpandVertical(true);

		polygonList.addMouseWheelListener(new MouseWheelListener() {
			@Override
			public void mouseScrolled(MouseEvent e) {
				int listItemHeight = polygonList.computeSize(SWT.DEFAULT, SWT.DEFAULT).y / polygonList.getItemCount();
				if (e.count == -3) {
					int topIndex = polygonList.getSelectionIndex();
					// polygonList.setSelection(++topIndex);
					polygonListSC.setOrigin(polygonListSC.getOrigin().x, polygonListSC.getOrigin().y + listItemHeight
							* 10);
				} else if (e.count == 3) {
					int topIndex = polygonList.getSelectionIndex();
					// polygonList.setSelection(--topIndex);
					polygonListSC.setOrigin(polygonListSC.getOrigin().x, polygonListSC.getOrigin().y - listItemHeight
							* 10);
				}
			}
		});

		settlementListSC.setContent(settlementList);
		settlementListSC.setExpandHorizontal(true);
		settlementListSC.setExpandVertical(true);

		settlementList.addMouseWheelListener(new MouseWheelListener() {
			@Override
			public void mouseScrolled(MouseEvent e) {
				int listItemHeight = settlementList.computeSize(SWT.DEFAULT, SWT.DEFAULT).y
						/ settlementList.getItemCount();
				if (e.count == -3) {
					int topIndex = settlementList.getSelectionIndex();
					settlementList.setSelection(++topIndex);
					settlementListSC.setOrigin(settlementListSC.getOrigin().x, settlementListSC.getOrigin().y
							+ listItemHeight);
				} else if (e.count == 3) {
					int topIndex = settlementList.getSelectionIndex();
					settlementList.setSelection(--topIndex);
					settlementListSC.setOrigin(settlementListSC.getOrigin().x, settlementListSC.getOrigin().y
							- listItemHeight);
				}
			}
		});

		neighbourListSC.setContent(neighbourList);
		neighbourListSC.setExpandHorizontal(true);
		neighbourListSC.setExpandVertical(true);

		neighbourList.addMouseWheelListener(new MouseWheelListener() {
			@Override
			public void mouseScrolled(MouseEvent e) {
				int listItemHeight = neighbourList.computeSize(SWT.DEFAULT, SWT.DEFAULT).y
						/ neighbourList.getItemCount();
				if (e.count == -3) {
					int topIndex = neighbourList.getSelectionIndex();
					neighbourList.setSelection(++topIndex);
					neighbourListSC.setOrigin(neighbourListSC.getOrigin().x, neighbourListSC.getOrigin().y
							+ listItemHeight);
				} else if (e.count == 3) {
					int topIndex = neighbourList.getSelectionIndex();
					neighbourList.setSelection(--topIndex);
					neighbourListSC.setOrigin(neighbourListSC.getOrigin().x, neighbourListSC.getOrigin().y
							- listItemHeight);
				}
			}
		});

		excludedNeighbourListSC.setContent(excludedNeighbourList);
		excludedNeighbourListSC.setExpandHorizontal(true);
		excludedNeighbourListSC.setExpandVertical(true);

		excludedNeighbourList.addMouseWheelListener(new MouseWheelListener() {
			@Override
			public void mouseScrolled(MouseEvent e) {
				int listItemHeight = excludedNeighbourList.computeSize(SWT.DEFAULT, SWT.DEFAULT).y
						/ excludedNeighbourList.getItemCount();
				if (e.count == -3) {
					int topIndex = excludedNeighbourList.getSelectionIndex();
					excludedNeighbourList.setSelection(++topIndex);
					excludedNeighbourListSC.setOrigin(excludedNeighbourListSC.getOrigin().x, excludedNeighbourListSC
							.getOrigin().y + listItemHeight);
				} else if (e.count == 3) {
					int topIndex = excludedNeighbourList.getSelectionIndex();
					excludedNeighbourList.setSelection(--topIndex);
					excludedNeighbourListSC.setOrigin(excludedNeighbourListSC.getOrigin().x, excludedNeighbourListSC
							.getOrigin().y - listItemHeight);
				}
			}
		});

	}