A sticky piston base is actually an own block id and is not a data value. (For reference: http://www.minecraftwiki.net/wiki/Data_values) For colored wool, use block.getData() and cast it to Wool, then you have the required methods to perform your checks.
You can't cast a byte to Wool. If you use block.getData(), then you get one of the subscript numbers in http://www.minecraftwiki.net/images/8/8c/DataValuesBeta.png
Oh yeah, block.getData() returns the raw value, what I in fact meant is that: block.getState().getData(). Make sure to save the state in a variable and update it when you modify it, though.
In my humble opinion, bukkit handles data with blocks poorly. Expect to begin memorizing random values. Or use Spout. Spout has a great block API. Your problem would be this easy with Spout: block.getMaterial().equals(MaterialData.redWool)