Save This Page
Home » openjdk-7 » net.sourceforge » neurosdbm » [javadoc | source]
    1   /*
    2    * Created on Oct 3, 2003
    3    *
    4    * To change the template for this generated file go to
    5    * Window>Preferences>Java>Code Generation>Code and Comments
    6    */
    7   package net.sourceforge.neurosdbm;
    8   
    9   import java.awt.Color;
   10   import java.awt.Component;
   11   import java.util.ArrayList;
   12   
   13   import javax.swing.JTable;
   14   import javax.swing.table.DefaultTableCellRenderer;
   15   
   16   import net.sourceforge.neurosdbm.db.AudioDisplayRecord;
   17   import net.sourceforge.neurosdbm.db.Database;
   18   import net.sourceforge.neurosdbm.db.DisplayIndex;
   19   
   20   /**
   21    * @author carwashi
   22    *
   23    * To change the template for this generated type comment go to
   24    * Window>Preferences>Java>Code Generation>Code and Comments
   25    */
   26   public class NeurosTableRowRenderer extends DefaultTableCellRenderer {
   27   
   28   	public Component getTableCellRendererComponent(
   29   		JTable table,
   30   		Object value,
   31   		boolean selected,
   32   		boolean focused,
   33   		int row,
   34   		int column) {
   35   		setEnabled(table == null || table.isEnabled()); // see question above
   36   
   37   		NeurosTableModel model = (NeurosTableModel) table.getModel();
   38   		Database database = model.getDatabase();
   39   		boolean highlight = NeurosProperties.isHighlightTracks();
   40   		if (highlight) {
   41   			try {
   42   				switch (model.getDbData()) {
   43   					case NeurosTableModel.BLANK :
   44   						return null;
   45   
   46   					case NeurosTableModel.AUDIO_SONGS :
   47   					case NeurosTableModel.PCAUDIO_SONGS :
   48   					
   49   						{
   50   							AudioDisplayRecord dispTrack =
   51   								model.getAudioDisplayRecord(row);
   52   							if (dispTrack != null) {
   53   								if (database
   54   									.syncQueueContains(
   55   										dispTrack.getAudioRecord())) {
   56   									setBackground(Color.green);
   57   								} else if (
   58   									database.deleteQueueContains(
   59   										dispTrack.getAudioRecord())) {
   60   									setBackground(Color.RED);
   61   								} else {
   62   									setBackground(null);
   63   								}
   64   							}
   65   							break;
   66   						}
   67   					case NeurosTableModel.AUDIO_PLAYLISTS :
   68   					case NeurosTableModel.PCAUDIO_PLAYLISTS :
   69   						{
   70   							setBackground(null);
   71   							break;
   72   						}
   73   					case NeurosTableModel.AUDIO_ARTISTS :
   74   					case NeurosTableModel.PCAUDIO_ARTISTS :
   75   					case NeurosTableModel.AUDIO_ALBUMS :
   76   					case NeurosTableModel.PCAUDIO_ALBUMS :
   77   					case NeurosTableModel.AUDIO_GENRES :
   78   					case NeurosTableModel.PCAUDIO_GENRES :
   79   						{
   80   							boolean added = false;
   81   							boolean deleted = false;
   82   							boolean allAdded = true;
   83   							boolean allDeleted = true;
   84   							
   85   							int[] artists = new int[1];
   86   							artists[0] = row;
   87   							ArrayList artistTracks = model.getSelectedTracks(artists);
   88   							for (int j = 0; j < artistTracks.size(); j++){
   89   								AudioDisplayRecord record = (AudioDisplayRecord) artistTracks.get(j);
   90   								if (database.deleteQueueContains(record.getAudioRecord())){
   91   									deleted = true;
   92   									allAdded = false;
   93   								}
   94   								else if (database.syncQueueContains((record.getAudioRecord()))){
   95   									added = true;
   96   									allDeleted = false;
   97   								}
   98   								else {
   99   									allDeleted = false;
  100   									allAdded = false;
  101   								}
  102   								if (allAdded) {
  103   									setBackground(Color.green);
  104   								}
  105   								else if (allDeleted){
  106   										setBackground(Color.red);
  107   								}
  108   								else if (added || deleted) {
  109   									setBackground(Color.yellow);
  110   								}
  111   								else {
  112   									setBackground(null);
  113   								}
  114   							}
  115   							
  116   							break;
  117   						}
  118   						
  119   					default :
  120   						{
  121   							setBackground(null);
  122   						}
  123   				}
  124   			} catch (Exception e) {
  125   				model.exceptionHandler(e);
  126   			}
  127   		} 
  128   		else {
  129   			setBackground(null);
  130   		}
  131   
  132   		super.getTableCellRendererComponent(
  133   			table,
  134   			value,
  135   			selected,
  136   			focused,
  137   			row,
  138   			column);
  139   
  140   		return this;
  141   	}
  142   
  143   }

Save This Page
Home » openjdk-7 » net.sourceforge » neurosdbm » [javadoc | source]