private void createComponents()
	{
		model = new SketchModel();
		canvas = new Canvas3D(this, SWT.BORDER | SWT.DOUBLE_BUFFERED, model);
		canvas.setVisible(true);
		SelectionListener buttonListener = new ButtonListener(model, canvas, this);
						
		clear = new Button(this, SWT.NONE);
		clear.setText("Clear");
		clear.addSelectionListener(buttonListener);
		
		outline = new Button(this, SWT.NONE);
		outline.setText("Outline");
		outline.addSelectionListener(buttonListener);
		
		triangles = new Button(this, SWT.NONE);
		triangles.setText("Triangles");
		triangles.addSelectionListener(buttonListener);
		
		midpoints = new Button(this, SWT.NONE);
		midpoints.setText("Midpoints");
		midpoints.addSelectionListener(buttonListener);
		
		chordal = new Button(this, SWT.NONE);
		chordal.setText("Chordal Axis");
		chordal.addSelectionListener(buttonListener);
		
		pruneStep = new Button(this, SWT.NONE);
		pruneStep.setText("Prune Step");
		pruneStep.addSelectionListener(buttonListener);
		
		pruneAll = new Button(this, SWT.NONE);
		pruneAll.setText("Prune All");
		pruneAll.addSelectionListener(buttonListener);
		
		pruned = new Button(this, SWT.NONE);
		pruned.setText("Pruned");
		pruned.addSelectionListener(buttonListener);
		
		subdivide = new Button(this, SWT.NONE);
		subdivide.setText("Subdivide");
		subdivide.addSelectionListener(buttonListener);
		
		raised = new Button(this, SWT.NONE);
		raised.setText("Raised Axis");
		raised.addSelectionListener(buttonListener);
		
		mesh = new Button(this, SWT.NONE);
		mesh.setText("Mesh");
		mesh.addSelectionListener(buttonListener);
		
		axes = new Button(this, SWT.NONE);
		axes.setText("Axes");
		axes.addSelectionListener(buttonListener);
		
		resetCamera = new Button(this, SWT.NONE);
		resetCamera.setText("Reset Camera");
		resetCamera.addSelectionListener(buttonListener);
		
		resetPruning = new Button(this, SWT.NONE);
		resetPruning.setText("Reset Pruning");
		resetPruning.addSelectionListener(buttonListener);
	}