In NB 6.8, here’s how to tell netbeans to treat bxml files as xml.
Go to tools -> options -> Miscellaneous -> Files.
Click ‘New’
Set bxml as the file extension.
Under ‘Associated File Type:’ select ‘XML Files (text/xml)
Click OK
Coding, Beer, whatever else
In NB 6.8, here’s how to tell netbeans to treat bxml files as xml.
Go to tools -> options -> Miscellaneous -> Files.
Click ‘New’
Set bxml as the file extension.
Under ‘Associated File Type:’ select ‘XML Files (text/xml)
Click OK
Pivot 2.0 has been posted
Using hashlib, and binascii we can use python to both generate a digest and grab an ace token for that digest.
While this example only sends one request in a call, you should batch your requests prior to requesting a token. Just send a ‘list’ of tokenRequest objects to requestTokensImmediate. The IMS will support up to 10,000 requests per call.
import hashlib import binascii from suds.client import Client filename='test2.py' digFile = open(filename,'rb') hashAlg = hashlib.sha256() hashAlg.update(digFile.read()) filedigest = binascii.b2a_hex(hashAlg.digest()) url='http://ims.umiacs.umd.edu:8080/ace-ims/IMSWebService?wsdl' client = Client(url) print filename, ' ', filedigest request = client.factory.create('tokenRequest') request.hashValue = filedigest request.name = filename result = client.service.requestTokensImmediate('SHA-256-0',request) print result
The result spits back a token that you can use to validate a file.
[python] [toaster@loach ace-cli]$ python test2.py test2.py 164182eef9792e2e1c5005cd9240ff508aef042b8fa344597431eae39370c784 [(tokenResponse){ digestService = "SHA-256" name = "test2.py" proofElements[] = (proofElement){ hashes[] = "c5e82872eeee3dfa539202a9757f8a5364b6fded4dfcb40b66084158f2b5c627", index = 0 }, (proofElement){ hashes[] = "6e16a71847403f4e586625463160993bfab189c0bba771d81354c03d9c3591fd", index = 0 }, (proofElement){ hashes[] = "0879b385c366d07142446a18dfb6d19c468a733991e9685fc75ce6f4b929b659", index = 0 }, (proofElement){ hashes[] = "e19dd18bd9eabf79a074d72231a7117bd2319a859d31a429575b4657e85d0c95", index = 1 }, roundId = 2893078 statusCode = 100 timestamp = 2011-01-07 13:08:27.000253 tokenClassName = "SHA-256-0" }]
Pivot nicely provides a few nice effects for items. This is useful for images, etc but if you want to make a simple text-based header it needs the tiniest bit of tweaking.
What we need is to translate the reflection so it overlaps the text a little.
We can just modify the Reflection effect and two properties for x & y reflection translation and tweak where the reflection is drawn. Here’s the modified ConfigurableReflection class
public class ConfigurableReflection extends ReflectionDecorator { private Component component = null; private Graphics2D graphics = null; private BufferedImage componentImage = null; private Graphics2D componentImageGraphics = null; private int yTranslate = 0; private int xTranslate = 0; public void setXTranslate(int xTranslate) { this.xTranslate = xTranslate; } public void setYTranslate(int yTranslate) { this.yTranslate = yTranslate; } public int getXTranslate() { return xTranslate; } public int getYTranslate() { return yTranslate; } @Override public Graphics2D prepare(Component component, Graphics2D graphics) { this.component = component; this.graphics = graphics; int width = component.getWidth(); int height = component.getHeight(); componentImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); componentImageGraphics = componentImage.createGraphics(); // Clear the image background componentImageGraphics.setComposite(AlphaComposite.Clear); componentImageGraphics.fillRect(0, 0, componentImage.getWidth(), componentImage.getHeight()); componentImageGraphics.setComposite(AlphaComposite.SrcOver); return componentImageGraphics; } @Override public void update() { // Draw the component graphics.drawImage(componentImage, 0, 0, null); // Draw the reflection int width = componentImage.getWidth(); int height = componentImage.getHeight(); GradientPaint mask = new GradientPaint(0, height / 4f, new Color(1.0f, 1.0f, 1.0f, 0.0f), 0, height, new Color(1.0f, 1.0f, 1.0f, 0.5f)); componentImageGraphics.setPaint(mask); componentImageGraphics.setComposite(AlphaComposite.DstIn); componentImageGraphics.fillRect(0, 0, width, height); componentImageGraphics.dispose(); componentImageGraphics = null; componentImage.flush(); graphics.transform(getTransform(component)); graphics.drawImage(componentImage, 0, 0, null); componentImage = null; component = null; graphics = null; } @Override public Bounds getBounds(Component component) { // MODIFICATION for new translation return new Bounds(0, 0, component.getWidth() + xTranslate, component.getHeight() * 2 + yTranslate); } @Override public AffineTransform getTransform(Component component) { AffineTransform transform = AffineTransform.getScaleInstance(1.0, -1.0); // MODIFICATION for new translation transform.translate(xTranslate, -((component.getHeight() * 2) + yTranslate)); return transform; } }
I got a little tired re-running my entire app just to see what the current pivot layout would look like, so here’s a quick and dirty plugin for Netbeans 6.8 which does the following:
To use this module on a pivot project, Right-click on project, select properties and add the new Pivot 1.5.1 library to your project. When viewing a file, you first need to build your project then right click on the .wtkx files to preview.