logo       

RE: custom border: msg#00167

java.ulc.devel

Subject: RE: custom border

Hi,

It is indeed possible to create a custom border.

Please see the snippet at the end of this mail. The snippet is meant for ULC
6.1.

Moreover, please refer to ULC 6.1's ULC Extension Guide before you implement
your own extension.

I hope this helps.

Thanks and regards,

Janak

PS: Kindly subscribe and post to ulc-developer@xxxxxxxxxx

-----Original Message-----
From: ulc-news-admin@xxxxxxxxxxxxxxx
[mailto:ulc-news-admin@xxxxxxxxxxxxxxx]On Behalf Of bbroschinsky@xxxxxxxxx
Sent: Dienstag, 25. Juli 2006 17:22
To: ulc-news@xxxxxxxxxxxxxxx
Subject: custom border



Hi all,

Is it possible to create custom borders in ulc by extending ULCAbstract
border. I have a ULCTable and I have used a custom cell renderer to draw
borders around multiple cells using ULCMatteBorder, but I would like to
specify a custom color for the top, left, right, and bottom of the border.

Thanks for your help,

----------------------------------


import com.ulcjava.base.application.AbstractApplication;
import com.ulcjava.base.application.ULCBoxPane;
import com.ulcjava.base.application.ULCButton;
import com.ulcjava.base.application.ULCFrame;
import com.ulcjava.base.application.border.ULCAbstractBorder;
import com.ulcjava.base.application.util.Color;
import com.ulcjava.base.client.border.UIAbstractBorder;
import com.ulcjava.base.development.DevelopmentRunner;

import javax.swing.border.EmptyBorder;

import java.awt.Component;
import java.awt.Graphics;

public class CustomBorderSnippet extends AbstractApplication {

public void start() {

ULCButton button = new ULCButton("Button");
button.setBorder(new ULCMyBorder(Color.red, Color.green, Color.blue,
Color.yellow));

ULCBoxPane box = new ULCBoxPane();
box.add(ULCBoxPane.BOX_CENTER_CENTER, button);

ULCFrame frame = new ULCFrame("CustomBorderSnippet");
frame.setDefaultCloseOperation(ULCFrame.TERMINATE_ON_CLOSE);
frame.add(box);
frame.setSize(200, 200);
frame.setVisible(true);
}

public static void main(String[] args) {
DevelopmentRunner.setApplicationClass(CustomBorderSnippet.class);
DevelopmentRunner.main(args);
}

public static class ULCMyBorder extends ULCAbstractBorder {

private Color topColor, leftColor, bottomColor, rightColor;

public ULCMyBorder(Color t, Color l, Color b, Color r) {
topColor = t;
leftColor = l;
bottomColor = b;
rightColor = r;
}


protected String typeString() {
return UIMyBorder.class.getName();
}


protected void uploadStateUI() {
super.uploadStateUI();
setStateUI("topColor", topColor);
setStateUI("leftColor", leftColor);
setStateUI("bottomColor", bottomColor);
setStateUI("rightColor", rightColor);
}
}

public static class UIMyBorder extends UIAbstractBorder {

protected Object createBasicObject(Object[] arguments) {
return new MyBorder(3, 3, 3, 3);
}

}

public static class MyBorder extends EmptyBorder {

public MyBorder(int top, int left, int bottom, int right) {
super(top, left, bottom, right);
}

private java.awt.Color topColor, leftColor, bottomColor, rightColor;


public void setTopColor(java.awt.Color topColor) {
this.topColor = topColor;
}

public void setLeftColor(java.awt.Color leftColor) {
this.leftColor = leftColor;
}

public void setBottomColor(java.awt.Color bottomColor) {
this.bottomColor = bottomColor;
}

public void setRightColor(java.awt.Color rightColor) {
this.rightColor = rightColor;
}

/**
* Paints the border.
*/
public void paintBorder(Component c, Graphics g, int x, int y, int
width, int height) {
java.awt.Insets insets = getBorderInsets(c);
java.awt.Color oldColor = g.getColor();
g.translate(x, y);

g.setColor(topColor);
g.fillRect(0, 0, width - insets.right, insets.top);
g.setColor(leftColor);
g.fillRect(0, insets.top, insets.left, height - insets.top);
g.setColor(bottomColor);
g.fillRect(insets.left, height - insets.bottom, width -
insets.left, insets.bottom);
g.setColor(rightColor);
g.fillRect(width - insets.right, 0, insets.right, height -
insets.bottom);

g.translate(-x, -y);
g.setColor(oldColor);

}

}
}


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise