001 package nl.cwi.sen1.gui.plugin; 002 003 import java.util.logging.Logger; 004 005 import prefuse.action.assignment.ColorAction; 006 import prefuse.visual.VisualItem; 007 008 public class GraphColorAction extends ColorAction { 009 private String m_dataField; 010 011 public GraphColorAction(String group, String dataField, String colorField) { 012 super(group, colorField); 013 setDataField(dataField); 014 } 015 016 public void setDataField(String field) { 017 m_dataField = field; 018 } 019 020 public int getColor(VisualItem item) { 021 Object o = lookup(item); 022 if (o != null) { 023 if (o instanceof ColorAction) { 024 return ((ColorAction) o).getColor(item); 025 } else if (o instanceof Integer) { 026 return ((Integer) o).intValue(); 027 } else { 028 Logger.getLogger(this.getClass().getName()).warning( 029 "Unrecognized Object from predicate chain."); 030 } 031 } 032 // Only change default color value opposed to super.getColor(item) 033 if (item.canGetInt(m_dataField)) { 034 return item.getInt(m_dataField); 035 } 036 return m_defaultColor; 037 } 038 }