1 package org.columba.mail.filter.plugins; 17 18 import java.awt.Color ; 19 20 import org.columba.core.filter.AbstractFilter; 21 import org.columba.core.filter.FilterCriteria; 22 import org.columba.core.filter.IFilterCriteria; 23 import org.columba.core.folder.api.IFolder; 24 import org.columba.mail.folder.IMailbox; 25 26 27 31 public class ColorFilter extends AbstractFilter { 32 private int defaultColorRGB; 33 private int criteriaRGB; 34 private int criteriaCondition; 35 36 39 public ColorFilter() { 40 super(); 41 42 defaultColorRGB = Color.black.getRGB(); 43 } 44 45 46 public boolean process(IFolder folder, Object uid) throws Exception { 47 int messageRGB = defaultColorRGB; 48 Color messageColor = (Color ) ((IMailbox)folder).getAttribute(uid, "columba.color"); 49 50 if (messageColor != null) { 51 messageRGB = messageColor.getRGB(); 52 } 53 54 boolean result = false; 55 56 if ((criteriaCondition == FilterCriteria.IS) && 57 (messageRGB == criteriaRGB)) { 58 result = true; 59 } else if ((criteriaCondition == FilterCriteria.IS_NOT) && 60 (messageRGB != criteriaRGB)) { 61 result = true; 62 } 63 64 return result; 65 } 66 67 70 public void setUp(IFilterCriteria f) { 71 String colorString = f.getPatternString(); 72 criteriaRGB = 0; 73 try { 74 criteriaRGB = Integer.parseInt(colorString); 75 } catch (NumberFormatException e) { 76 criteriaRGB = 0; 77 } 78 79 criteriaCondition = f.getCriteria(); 80 } 81 } 82 | Popular Tags |