Author: pwang
Date: 2008-09-11 10:33:02 -0700 (Thu, 11 Sep 2008)
New Revision: 14881
Added:
csplugins/trunk/ucsd/pwang/SessionForWebPlugin/src/SessionForWebPlugin/SpeciesPanel.java
Log:
Original creation
Added:
csplugins/trunk/ucsd/pwang/SessionForWebPlugin/src/SessionForWebPlugin/SpeciesPanel.java
===================================================================
---
csplugins/trunk/ucsd/pwang/SessionForWebPlugin/src/SessionForWebPlugin/SpeciesPanel.java
2008-09-11 00:37:16 UTC (rev 14880)
+++
csplugins/trunk/ucsd/pwang/SessionForWebPlugin/src/SessionForWebPlugin/SpeciesPanel.java
2008-09-11 17:33:02 UTC (rev 14881)
@@ -0,0 +1,253 @@
+package SessionForWebPlugin;
+
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTable;
+import java.awt.Component;
+import java.awt.Cursor;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseMotionAdapter;
+import javax.swing.JDialog;
+
+import java.util.Map;
+import java.util.Vector;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableCellRenderer;
+import java.util.Set;
+import java.util.Iterator;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.event.ListSelectionEvent;
+
+//import SessionForWebPlugin.NetworksTable.NetworksTableMouseListener;
+//import SessionForWebPlugin.NetworksTable.NetworksTableMouseMotionListener;
+import javax.swing.event.MouseInputAdapter;
+
+import SessionForWebPlugin.NetworksTable.NetworksTableMouseMotionListener;
+
+
+public class SpeciesPanel extends JPanel implements ListSelectionListener
+{
+ private JDialog parent = null;
+ private DefaultTableModel model;
+ Vector<String> columnNames;
+
+ /** Creates new form NetworkSpeciesPanel */
+ public SpeciesPanel(JDialog parent) {
+ initComponents();
+ this.parent= parent;
+ MyActionListener l = new MyActionListener(parent);
+ btnAssign.addActionListener(l);
+
+ columnNames = new Vector<String>();
+ columnNames.add("Network Title");
+ columnNames.add("Species");
+
+ Vector<Vector<String>> data = getTableData();
+
+ model = new DefaultTableModel(data, columnNames);
+ tblNetworkSpecies.setModel(model);
+
+ SpeciesCellRenderer cellRender = new SpeciesCellRenderer();
+
tblNetworkSpecies.getColumnModel().getColumn(1).setCellRenderer(cellRender);
+ MyMouseInputAdapter ml = new MyMouseInputAdapter();
+ tblNetworkSpecies.addMouseListener(ml);
+ tblNetworkSpecies.addMouseMotionListener(new
NetworksTableMouseMotionListener());
+ tblNetworkSpecies.getSelectionModel().addListSelectionListener(this);
+ }
+
+ public void valueChanged(ListSelectionEvent e){
+ //System.out.println("ListSelectEvent is received\n");
+ int[] selectedRows = tblNetworkSpecies.getSelectedRows();
+ if (selectedRows.length ==0) {
+ btnAssign.setText("Assign species for all networks");
+ }
+ else if (selectedRows.length>0) {
+ btnAssign.setText("Assign species for selected
networks");
+ }
+ }
+
+ private class MyMouseInputAdapter extends MouseInputAdapter {
+
+ public void mouseClicked(MouseEvent e) {
+ int[] rows = tblNetworkSpecies.getSelectedRows();
+ int[] cols = tblNetworkSpecies.getSelectedColumns();
+
+ if (cols.length == 1 && cols[0] == 1) { // species is
clicked
+ String networkTitle = (String)
tblNetworkSpecies.getModel().getValueAt(rows[0], 0);
+
+ Map<String,String> theMap =
SessionForWebPlugin.networkTitleToIDMap();
+ String[] nertworkIDs = new String[1];
+ nertworkIDs[0] = theMap.get(networkTitle);;
+ SpeciesAssignmentDialog dlg = new
SpeciesAssignmentDialog(parent, true, nertworkIDs);
+ dlg.setSize(300, 300);
+ dlg.setVisible(true);
+ if (!dlg.isVisible()) {
+ updateTableData();
+ }
+ }
+ }
+ }
+
+
+ private void updateTableData() {
+ Vector<Vector<String>> data = getTableData();
+ model.setDataVector(data, columnNames);
+ model.fireTableDataChanged();
+ }
+
+ // Cannot use a MouseMotionListener to the TableCellRenderer as JTable
does not dispatch
+ // mouse events to the renderer
+ class NetworksTableMouseMotionListener extends MouseMotionAdapter
+ {
+ public void mouseMoved(MouseEvent e)
+ {
+ int col =
tblNetworkSpecies.convertColumnIndexToModel(tblNetworkSpecies.columnAtPoint(e.getPoint()));
+ if (col == 1)
+
tblNetworkSpecies.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
+ else
+
tblNetworkSpecies.setCursor(Cursor.getDefaultCursor());
+ }
+ }
+
+
+ class SpeciesCellRenderer extends JLabel implements TableCellRenderer
+ {
+ public Component getTableCellRendererComponent( JTable table,
+ Object value,
+ boolean
isSelected,
+ boolean
hasFocus,
+ int row, int
column)
+ {
+ setText(value.toString());
+ setName(new Integer(row).toString());
+ setOpaque(true);
+ //setForeground(Color.GREEN);
+ //setBackground(Color.WHITE);
+ setToolTipText("Click on the species value to edit.");
+ return this;
+ }
+ }
+
+
+ private Vector<Vector<String>> getTableData() {
+ Vector<Vector<String>> data = new Vector<Vector<String>>();
+
+ Map<String,String> theMap =
SessionForWebPlugin.networkTitleToSpeciesMap();
+
+ Set<String> keySet = theMap.keySet();
+ Iterator<String> it = keySet.iterator();
+
+ while (it.hasNext()) {
+ String networkTitle = (String) it.next();
+ String species = theMap.get(networkTitle);
+ if (species == null || species.trim().equals("")) {
+ species = "unknown";
+ }
+ Vector<String> oneRow = new Vector<String>();
+ oneRow.add(networkTitle);
+ oneRow.add(species);
+ data.add(oneRow);
+ }
+ return data;
+ }
+
+
+ class MyActionListener implements ActionListener {
+ JDialog parent= null;
+ public MyActionListener(JDialog parent) {
+ this.parent = parent;
+ }
+
+ public void actionPerformed(ActionEvent e){
+ int[] selectedRows = tblNetworkSpecies.getSelectedRows();
+ SpeciesAssignmentDialog dlg;
+
+ if (selectedRows.length ==0) {
+ dlg = new SpeciesAssignmentDialog(parent, true);
+ }
+ else { // (selectedRows.length>0) {
+ Map<String,String> theMap =
SessionForWebPlugin.networkTitleToIDMap();
+ String[] networkIDs = new String[selectedRows.length];
+ for (int i=0; i< selectedRows.length; i++) {
+ String networkTitle = (String)
tblNetworkSpecies .getModel().getValueAt(selectedRows[i], 0);
+ String id = theMap.get(networkTitle);
+ networkIDs[i] = id;
+ }
+ dlg = new SpeciesAssignmentDialog(parent, true,
networkIDs);
+ }
+
+ dlg.setSize(400, 300);
+ dlg.setVisible(true);
+ if (!dlg.isVisible()) {
+ updateTableData();
+ }
+ }
+ }
+
+ /** This method is called from within the constructor to
+ * initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is
+ * always regenerated by the Form Editor.
+ */
+ // <editor-fold defaultstate="collapsed" desc=" Generated Code ">
+ private void initComponents() {
+ java.awt.GridBagConstraints gridBagConstraints;
+
+ lbTitle = new javax.swing.JLabel();
+ jScrollPane1 = new javax.swing.JScrollPane();
+ tblNetworkSpecies = new javax.swing.JTable();
+ btnAssign = new javax.swing.JButton();
+
+ setLayout(new java.awt.GridBagLayout());
+
+ lbTitle.setText("Select networks to assign species");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.insets = new java.awt.Insets(5, 0, 5, 0);
+ add(lbTitle, gridBagConstraints);
+
+ tblNetworkSpecies.setModel(new javax.swing.table.DefaultTableModel(
+ new Object [][] {
+ {null, null},
+ {null, null},
+ {null, null}
+ },
+ new String [] {
+ "Network Title", "Species"
+ }
+ ) {
+ boolean[] canEdit = new boolean [] {
+ false, false
+ };
+
+ public boolean isCellEditable(int rowIndex, int columnIndex) {
+ return canEdit [columnIndex];
+ }
+ });
+ jScrollPane1.setViewportView(tblNetworkSpecies);
+
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridy = 1;
+ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+ gridBagConstraints.weightx = 1.0;
+ gridBagConstraints.weighty = 1.0;
+ add(jScrollPane1, gridBagConstraints);
+
+ btnAssign.setText("Assign species for all networks");
+ gridBagConstraints = new java.awt.GridBagConstraints();
+ gridBagConstraints.gridy = 2;
+ gridBagConstraints.insets = new java.awt.Insets(5, 0, 5, 0);
+ add(btnAssign, gridBagConstraints);
+
+ }// </editor-fold>
+
+
+ // Variables declaration - do not modify
+ private javax.swing.JButton btnAssign;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JLabel lbTitle;
+ private javax.swing.JTable tblNetworkSpecies;
+ // End of variables declaration
+
+}
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en
-~----------~----~----~----~------~----~------~--~---