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.