public JPanel setup() {

		JPanel panel = new JPanel(new GridLayout(2, 2));
		panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));

		comboBox[0] = new JComboBox();
		comboBox[0].setRenderer(new ComboBoxRenderer.LineThickness());
		comboBox[0].setBorder(BorderFactory.createTitledBorder(LINE_THICKNESS));
		comboBox[0].setName(LINE_THICKNESS);
		comboBox[0].addItem(new Float(LineWidth.STROKE_WIDTH_0));
		comboBox[0].addItem(new Float(LineWidth.STROKE_WIDTH_1));
		comboBox[0].addItem(new Float(LineWidth.STROKE_WIDTH_2));
		comboBox[0].addItem(new Float(LineWidth.STROKE_WIDTH_3));
		comboBox[0].addItem(new Float(LineWidth.STROKE_WIDTH_4));
		comboBox[0].addItem(new Float(LineWidth.STROKE_WIDTH_5));
		al[0] = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				JComboBox cb = (JComboBox) e.getSource();
				set.setLineStroke(((Float) cb.getSelectedItem()).floatValue());
				graph.repaint();
			}
		};

		comboBox[1] = new JComboBox();
		comboBox[1].setRenderer(new ComboBoxRenderer.LineStyles());
		comboBox[1].setBorder(BorderFactory.createTitledBorder(LINE_STYLES));
		comboBox[1].setName(LINE_STYLES);
		comboBox[1].addItem(new Integer(LineStyle.STROKE_NUMBER_1));
		comboBox[1].addItem(new Integer(LineStyle.STROKE_NUMBER_2));
		comboBox[1].addItem(new Integer(LineStyle.STROKE_NUMBER_3));
		comboBox[1].addItem(new Integer(LineStyle.STROKE_NUMBER_4));
		comboBox[1].addItem(new Integer(LineStyle.STROKE_NUMBER_5));
		al[1] = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				JComboBox cb = (JComboBox) e.getSource();
				set.setLineStroke(((Integer) cb.getSelectedItem()).intValue());
				graph.repaint();
			}
		};

		comboBox[2] = new JComboBox();
		comboBox[2].setRenderer(new ComboBoxRenderer.ColorCell());
		comboBox[2].setBorder(BorderFactory.createTitledBorder(LINE_COLORS));
		comboBox[2].setName(LINE_COLORS);
		for (int i = 0; i <= ColorComboBox.INDEX_MORE_COLOR; i++)
			comboBox[2].addItem(new Integer(i));
		comboBox[2].addItem(new Integer(ColorComboBox.INDEX_COLOR_CHOOSER));
		al[2] = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				final JComboBox cb = (JComboBox) e.getSource();
				int i = (Integer) cb.getSelectedItem();
				if (i >= ColorComboBox.INDEX_COLOR_CHOOSER) {
					JColorChooser.createDialog(CurveDialog.this, "More Line Colors", true,
							ModelerUtilities.colorChooser, new ActionListener() {
								public void actionPerformed(ActionEvent ae) {
									set.setLineColor(ModelerUtilities.colorChooser.getColor());
									cb.setSelectedIndex(ColorComboBox.INDEX_MORE_COLOR);
									ColorRectangle cr = (ColorRectangle) cb.getRenderer();
									cr.setMoreColor(set.getLineColor());
								}
							}, null).setVisible(true);
				}
				else if (i == ColorComboBox.INDEX_MORE_COLOR) {
					ColorRectangle cr = (ColorRectangle) cb.getRenderer();
					set.setLineColor(cr.getMoreColor());
				}
				else {
					set.setLineColor(ColorRectangle.COLORS[i]);
				}
				graph.repaint();
			}
		};

		comboBox[3] = new JComboBox();
		comboBox[3].setRenderer(new ComboBoxRenderer.Symbols());
		comboBox[3].setBorder(BorderFactory.createTitledBorder(LINE_SYMBOLS));
		comboBox[3].setName(LINE_SYMBOLS);
		comboBox[3].addItem(new Integer(LineSymbols.SYMBOL_NUMBER_0));
		comboBox[3].addItem(new Integer(LineSymbols.SYMBOL_NUMBER_1));
		comboBox[3].addItem(new Integer(LineSymbols.SYMBOL_NUMBER_2));
		comboBox[3].addItem(new Integer(LineSymbols.SYMBOL_NUMBER_3));
		comboBox[3].addItem(new Integer(LineSymbols.SYMBOL_NUMBER_4));
		comboBox[3].addItem(new Integer(LineSymbols.SYMBOL_NUMBER_5));
		comboBox[3].addItem(new Integer(LineSymbols.SYMBOL_NUMBER_6));
		comboBox[3].addItem(new Integer(LineSymbols.SYMBOL_NUMBER_7));
		al[3] = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				JComboBox cb = (JComboBox) e.getSource();
				set.setSymbol((Integer) cb.getSelectedItem());
				graph.repaint();
			}
		};

		for (int i = 0; i < 4; i++) {
			comboBox[i].setBackground(panel.getBackground());
			panel.add(comboBox[i]);
		}

		JPanel panel2 = new JPanel(new BorderLayout());
		panel2.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
		panel2.add(panel, BorderLayout.NORTH);

		Hashtable<Integer, JLabel> tableOfLabels = new Hashtable<Integer, JLabel>();
		JLabel label0 = new JLabel("Dense");
		JLabel label1 = new JLabel("Sparse");
		label0.setFont(littleFont);
		label1.setFont(littleFont);
		tableOfLabels.put(1, label0);
		tableOfLabels.put(10, label1);

		spacingSlider = new JSlider(JSlider.HORIZONTAL, 1, 10, 5);
		spacingSlider.setBorder(BorderFactory.createTitledBorder("Symbol Spacing"));
		spacingSlider.setPaintTicks(true);
		spacingSlider.setPaintLabels(true);
		spacingSlider.setMajorTickSpacing(2);
		spacingSlider.setMinorTickSpacing(1);
		spacingSlider.setLabelTable(tableOfLabels);
		spacingSlider.addChangeListener(new ChangeListener() {
			public void stateChanged(ChangeEvent e) {
				if (set == null)
					return;
				JSlider source = (JSlider) e.getSource();
				if (!source.getValueIsAdjusting()) {
					set.setSymbolSpacing(source.getValue());
					graph.repaint();
				}
			}
		});
		panel2.add(spacingSlider, BorderLayout.CENTER);

		tableOfLabels = new Hashtable<Integer, JLabel>();
		label0 = new JLabel("Small");
		label1 = new JLabel("Large");
		label0.setFont(littleFont);
		label1.setFont(littleFont);
		tableOfLabels.put(4, label0);
		tableOfLabels.put(12, label1);

		sizeSlider = new JSlider(JSlider.HORIZONTAL, 4, 12, 6);
		sizeSlider.setBorder(BorderFactory.createTitledBorder("Symbol Size"));
		sizeSlider.setPaintTicks(true);
		sizeSlider.setPaintLabels(true);
		sizeSlider.setMinorTickSpacing(1);
		sizeSlider.setMajorTickSpacing(2);
		sizeSlider.setLabelTable(tableOfLabels);
		sizeSlider.addChangeListener(new ChangeListener() {
			public void stateChanged(ChangeEvent e) {
				if (set == null)
					return;
				JSlider source = (JSlider) e.getSource();
				if (!source.getValueIsAdjusting()) {
					set.setSymbolSize(source.getValue());
					graph.repaint();
				}
			}
		});
		panel2.add(sizeSlider, BorderLayout.SOUTH);

		return panel2;

	}