m_Filters.setToolTipText("Edit a list of filters to transform instances");
  public PreprocessPanel() {    // Create/Configure/Connect components    m_OpenFileBut.setToolTipText("Open a set of instances from a file");    m_OpenURLBut.setToolTipText("Open a set of instances from a URL");    m_ReplaceBut      .setToolTipText("Replace the base relation with the working relation");    m_ApplyBut.setToolTipText("Update working relation with current filters");    m_SaveBut.setToolTipText("Save the working relation to a file");    m_FileChooser.setFileFilter(m_ArffFilter);    m_FileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);    m_OpenURLBut.addActionListener(new ActionListener() {      public void actionPerformed(ActionEvent e) {	setBaseInstancesFromURLQ();      }    });    m_OpenFileBut.addActionListener(new ActionListener() {      public void actionPerformed(ActionEvent e) {	setBaseInstancesFromFileQ();      }    });    m_ReplaceBut.addActionListener(new ActionListener() {      public void actionPerformed(ActionEvent e) {	setBaseInstances(m_WorkingInstances);      }    });    m_ApplyBut.addActionListener(new ActionListener() {      public void actionPerformed(ActionEvent e) {	setWorkingInstancesFromFilters();      }    });    m_SaveBut.addActionListener(new ActionListener() {      public void actionPerformed(ActionEvent e) {	saveWorkingInstancesToFileQ();      }    });    m_AttPanel.getSelectionModel()      .addListSelectionListener(new ListSelectionListener() {	public void valueChanged(ListSelectionEvent e) {	  if (!e.getValueIsAdjusting()) {	    ListSelectionModel lm = (ListSelectionModel) e.getSource();	    for (int i = e.getFirstIndex(); i <= e.getLastIndex(); i++) {	      if (lm.isSelectedIndex(i)) {		m_AttSummaryPanel.setAttribute(i);		break;	      }	    }	  }	}    });    m_BaseInstPanel.setBorder(BorderFactory			      .createTitledBorder("Base relation"));    m_WorkingInstPanel.setBorder(BorderFactory				 .createTitledBorder("Working relation"));    m_AttPanel.setBorder(BorderFactory.createTitledBorder("Attributes"));    m_Filters.setBorder(BorderFactory.createTitledBorder("Filters"));    m_AttSummaryPanel.setBorder(BorderFactory				.createTitledBorder("Attribute info"));    m_Filters.setValue(new Filter [0]);    m_ReplaceBut.setEnabled(false);    m_ApplyBut.setEnabled(false);    m_SaveBut.setEnabled(false);        // Set up the GUI layout    JPanel instInfo = new JPanel();    instInfo.setLayout(new GridLayout(1, 2));    instInfo.add(m_BaseInstPanel);    instInfo.add(m_WorkingInstPanel);    JPanel buttons = new JPanel();    buttons.setLayout(new GridLayout(1, 5));    buttons.add(m_OpenFileBut);    buttons.add(m_OpenURLBut);    buttons.add(m_ApplyBut);    buttons.add(m_ReplaceBut);    buttons.add(m_SaveBut);    JPanel filterNAttInfo = new JPanel();    filterNAttInfo.setLayout(new GridLayout(2, 1));    filterNAttInfo.add(m_Filters);    filterNAttInfo.add(m_AttSummaryPanel);    JPanel filters = new JPanel();    filters.setLayout(new GridLayout(1, 2));    filters.add(m_AttPanel);    filters.add(filterNAttInfo);    JPanel p3 = new JPanel();    p3.setLayout(new BorderLayout());    p3.add(instInfo, BorderLayout.NORTH);    p3.add(filters, BorderLayout.CENTER);        setLayout(new BorderLayout());    add(buttons, BorderLayout.NORTH);    add(p3, BorderLayout.CENTER);  }