private boolean showData(Curve c) {

		if (c == null)
			return false;
		double[] data = c.getData();
		if (data == null)
			return false;
		int n = data.length;
		if (n <= 2)
			return false;

		final JDialog dataWindow = new JDialog(JOptionPane.getFrameForComponent(XYGrapher.this), "Data", true);
		dataWindow.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
		dataWindow.setLocation(200, 200);

		Object[][] rd = new Object[n >> 1][3];
		String[] cn = new String[] { "i", "x", "y" };
		Legend legend = c.getLegend();
		if (legend != null && legend.getText() != null) {
			String t = legend.getText();
			dataWindow.setTitle(t);
			int q = t.indexOf("-");
			if (q != -1) {
				cn[1] = t.substring(0, q);
				cn[2] = t.substring(q + 1);
			}
		}
		else {
			dataWindow.setTitle("Data");
		}
		int k2;
		for (int k = 0; k < n; k += 2) {
			k2 = k >> 1;
			rd[k2][0] = k2;
			rd[k2][1] = data[k];
			rd[k2][2] = data[k + 1];
		}

		JTable table = new JTable(rd, cn);
		table.setModel(new DefaultTableModel(rd, cn) {
			public boolean isCellEditable(int row, int col) {
				return false;
			}
		});
		dataWindow.getContentPane().add(new JScrollPane(table), BorderLayout.CENTER);

		JPanel p = new JPanel();
		dataWindow.getContentPane().add(p, BorderLayout.SOUTH);
		String s = getInternationalText("Close");
		JButton button = new JButton(s != null ? s : "Close");
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				dataWindow.dispose();
			}
		});
		p.add(button);

		dataWindow.pack();
		dataWindow.setVisible(true);
		return true;

	}