protected boolean validate()
	{
		m_file = new File(m_fileCombo.getText());
		if (!m_file.exists() || !m_file.isFile()) {
			m_errorMsg = "File not found:\n" + m_fileCombo.getText();
			return false;
		}
		if (!m_file.canRead()) {
			m_errorMsg = "Cannot read file:\n" + m_fileCombo.getText();
			return false;
		}
		try {
			if (m_wholeFileButton.getSelection())
			{
				// They want whole file.
				m_numLines = Integer.MAX_VALUE;
			}
			else
			{
				Integer i = new Integer(m_numLinesText.getText());
				if (i.intValue() < 0) {
					throw new NumberFormatException();
				}
				m_numLines = i.intValue();
			}
		}
		catch (NumberFormatException e) {
			m_errorMsg = "Number of lines to show must be a positive integer.";
			return false;
		}
		try {
			Integer i = new Integer(m_intervalText.getText());
			if (i.intValue() <= 0) {
				throw new NumberFormatException();
			}
			m_interval = i.intValue();
		}
		catch (NumberFormatException e) {
			m_errorMsg = "Refresh interval must be a positive integer.";
			return false;
		}
		return true;
	}