Package edu.stanford.genetics.treeview

Source Code of edu.stanford.genetics.treeview.HeaderSummaryPanel

/* BEGIN_HEADER                                              Java TreeView
*
* $Author: alokito $
* $RCSfile: HeaderSummaryPanel.java,v $
* $Revision: 1.9 $
* $Date: 2005-12-05 05:27:53 $
* $Name:  $
*
* This file is part of Java TreeView
* Copyright (C) 2001-2003 Alok Saldanha, All Rights Reserved. Modified by Alex Segal 2004/08/13. Modifications Copyright (C) Lawrence Berkeley Lab.
*
* This software is provided under the GNU GPL Version 2. In particular,
*
* 1) If you modify a source file, make a comment in it containing your name and the date.
* 2) If you distribute a modified version, you must do it under the GPL 2.
* 3) Developers are encouraged but not required to notify the Java TreeView maintainers at alok@genome.stanford.edu when they make a useful addition. It would be nice if significant contributions could be merged into the main distribution.
*
* A full copy of the license can be found in gpl.txt or online at
* http://www.gnu.org/licenses/gpl.txt
*
* END_HEADER
*/
package edu.stanford.genetics.treeview;

import java.util.Observable;
import java.util.Observer;

import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
/**
* enables editing of a headerSummary object.
*/
public class HeaderSummaryPanel extends JPanel  implements SettingsPanel,Observer {
    private HeaderInfo headerInfo;
  /** Setter for headerInfo */
  public void setHeaderInfo(HeaderInfo headerInfo) {
    if (this.headerInfo != null) this.headerInfo.deleteObserver(this);
    this.headerInfo = headerInfo;
    headerInfo.addObserver(this);
    synchronizeFrom();
  }
  /** Getter for headerInfo */
  public HeaderInfo getHeaderInfo() {
    return headerInfo;
  }
 
 
 
  private HeaderSummary headerSummary;
  /** Setter for headerSummary */
  public void setHeaderSummary(HeaderSummary headerSummary) {
    this.headerSummary = headerSummary;
    synchronizeFrom();
  }
  /** Getter for headerSummary */
  public HeaderSummary getHeaderSummary() {
    return headerSummary;
  }
  private JList headerList = new JList(new String [0]);
  /** Setter for headerList */
  public void setHeaderList(String [] headers) {
    if (headers == null) {
      headerList.setListData(new String [0]);
    } else {
      headerList.setListData(headers);
    }
  }
  /** Getter for headerList */
  public JList getHeaderList() {
    return headerList;
  }
 
  public void synchronizeFrom() {
      int [] included = getHeaderSummary().getIncluded();
      JList list = getHeaderList();
      if (list == null) return;
      list.clearSelection();
      for (int i = 0; i < included.length; i++) {
        int index = included[i];
        if ((index >=0) && (index < list.getModel().getSize())) {
          list.addSelectionInterval(index,index);
        }
      }
  }
  public void synchronizeTo() {
    getHeaderSummary().setIncluded(getHeaderList().getSelectedIndices());
  }
 
  public HeaderSummaryPanel(HeaderInfo headerInfo, HeaderSummary headerSummary) {
    setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
    this.headerInfo = headerInfo;
    this.headerSummary = headerSummary;

    add(new JLabel("Headers to include"));
    setHeaderList(headerInfo.getNames());
    headerList.setVisibleRowCount(5);
    add(new JScrollPane(getHeaderList()));
    ListSelectionListener tmp = new ListSelectionListener() {
      public void valueChanged(ListSelectionEvent e) {
        synchronizeTo();
      }
    };
    getHeaderList().addListSelectionListener(tmp);
    synchronizeFrom();
  }

  /* (non-Javadoc)
   * @see java.util.Observer#update(java.util.Observable, java.lang.Object)
   */
  public void update(Observable o, Object arg) {
    if (o == headerInfo) {
      setHeaderList(headerInfo.getNames());
      synchronizeFrom();
      repaint();
    } else {
      LogBuffer.println("HeaderSummaryPanel got update from unexpected observable " + o);
    }
  }
}
TOP

Related Classes of edu.stanford.genetics.treeview.HeaderSummaryPanel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.