home *** CD-ROM | disk | FTP | other *** search
- package actual;
-
- import java.awt.AWTEvent;
- import java.awt.AWTEventMulticaster;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.MouseEvent;
-
- public class OpenlookButton extends Component {
- static int capWidth = 20;
- String label;
- protected boolean pressed;
- ActionListener actionListener;
-
- public OpenlookButton() {
- this("");
- }
-
- public OpenlookButton(String var1) {
- this.pressed = false;
- this.label = var1;
- ((Component)this).enableEvents(16L);
- }
-
- public String getLabel() {
- return this.label;
- }
-
- public void setLabel(String var1) {
- this.label = var1;
- ((Component)this).invalidate();
- ((Component)this).repaint();
- }
-
- public void paint(Graphics var1) {
- int var2 = ((Component)this).getSize().width - 1;
- int var3 = ((Component)this).getSize().height - 1;
- Color var4 = ((Component)this).getBackground();
- Color var5;
- Color var6;
- if (this.pressed) {
- var5 = var4.darker();
- var6 = var4.brighter();
- } else {
- var5 = var4.brighter();
- var6 = var4.darker();
- }
-
- var1.setColor(var4);
- var1.fillArc(0, 0, capWidth, var3, 90, 180);
- var1.fillArc(var2 - capWidth, 0, capWidth, var3, 270, 180);
- var1.fillRect(capWidth / 2, 0, var2 - capWidth, var3);
- var1.setColor(var5);
- var1.drawLine(capWidth / 2, 0, var2 - capWidth / 2, 0);
- var1.setColor(var6);
- var1.drawLine(capWidth / 2, var3, var2 - capWidth / 2, var3);
- var1.setColor(var5);
- var1.drawArc(0, 0, capWidth, var3, 90, 140);
- var1.setColor(var6);
- var1.drawArc(0, 0, capWidth, var3, 230, 40);
- var1.setColor(var5);
- var1.drawArc(var2 - capWidth, 0, capWidth, var3, 50, 40);
- var1.setColor(var6);
- var1.drawArc(var2 - capWidth, 0, capWidth, var3, 270, 140);
- Font var7 = ((Component)this).getFont();
- if (var7 != null) {
- FontMetrics var8 = ((Component)this).getFontMetrics(((Component)this).getFont());
- var1.setColor(((Component)this).getForeground());
- var1.drawString(this.label, var2 / 2 - var8.stringWidth(this.label) / 2, var3 / 2 + var8.getHeight() / 2 - var8.getMaxDescent());
- }
-
- }
-
- public Dimension getPreferredSize() {
- Font var1 = ((Component)this).getFont();
- if (var1 != null) {
- FontMetrics var2 = ((Component)this).getFontMetrics(((Component)this).getFont());
- return new Dimension(var2.stringWidth(this.label) + capWidth * 2, var2.getHeight() + 10);
- } else {
- return new Dimension(100, 50);
- }
- }
-
- public Dimension getMinimumSize() {
- return new Dimension(100, 50);
- }
-
- public void addActionListener(ActionListener var1) {
- this.actionListener = AWTEventMulticaster.add(this.actionListener, var1);
- ((Component)this).enableEvents(16L);
- }
-
- public void removeActionListener(ActionListener var1) {
- this.actionListener = AWTEventMulticaster.remove(this.actionListener, var1);
- }
-
- public void processMouseEvent(MouseEvent var1) {
- switch (((AWTEvent)var1).getID()) {
- case 501:
- this.pressed = true;
- ((Component)this).repaint();
- break;
- case 502:
- if (this.actionListener != null) {
- this.actionListener.actionPerformed(new ActionEvent(this, 1001, this.label));
- }
-
- if (this.pressed) {
- this.pressed = false;
- ((Component)this).repaint();
- }
- case 503:
- case 504:
- default:
- break;
- case 505:
- if (this.pressed) {
- this.pressed = false;
- ((Component)this).repaint();
- }
- }
-
- super.processMouseEvent(var1);
- }
- }
-