home *** CD-ROM | disk | FTP | other *** search
- import java.awt.BorderLayout;
- import java.awt.Button;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Event;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.Panel;
- import java.awt.Rectangle;
- import java.awt.image.ImageObserver;
- import java.util.Date;
-
- public class JDPCalendarPicker extends Panel {
- Image offscreen;
- Rectangle offscreensize;
- // $FF: renamed from: gr java.awt.Graphics
- Graphics field_0;
- Container target;
- JDPButton leftButton;
- JDPButton rightButton;
- Date thisDate;
- Date showingDate;
- boolean borderOn;
- Rectangle Bounds;
- // $FF: renamed from: fm java.awt.FontMetrics
- protected FontMetrics field_1;
- int[] boldWidths;
- Font thisFont;
- Font lastFont;
- int prevFontHeight;
- Rectangle[] dateRectangles;
- Date[] dates;
- public static String[] months = new String[]{"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
- public static String[] day = new String[]{"S", "M", "T", "W", "T", "F", "S"};
-
- public static void setDays(String[] var0) {
- if (var0 != null && var0.length == 7) {
- day = new String[7];
-
- for(int var1 = 0; var1 < var0.length; ++var1) {
- day[var1] = var0[var1];
- }
-
- }
- }
-
- void datePanelMain() {
- ((Container)this).setLayout(new BorderLayout());
- this.thisDate = new Date();
- this.thisDate.setHours(0);
- this.thisDate.setMinutes(0);
- this.thisDate.setSeconds(0);
- this.showingDate = new Date();
- this.leftButton = new JDPButton(1);
- this.rightButton = new JDPButton(2);
- ((Container)this).add("East", this.leftButton);
- ((Container)this).add("West", this.rightButton);
- }
-
- public void setDate(Date var1) {
- this.thisDate = new Date(var1.getTime());
- this.thisDate.setHours(0);
- this.thisDate.setMinutes(0);
- this.thisDate.setSeconds(0);
- this.showingDate = new Date(var1.getTime());
- ((Component)this).repaint();
- }
-
- public void setDate(String var1) {
- if (var1 != null && !var1.equals("")) {
- this.setDate(JDPDate.unformat(var1, JDesignerPro.dateFormat));
- } else {
- this.setDate(new Date());
- }
- }
-
- public Date getDate() {
- this.thisDate.setHours(0);
- this.thisDate.setMinutes(0);
- this.thisDate.setSeconds(0);
- return new Date(this.thisDate.getTime());
- }
-
- public void paint(Graphics var1) {
- this.update(var1);
- }
-
- public void setBorder(boolean var1) {
- this.borderOn = var1;
- ((Component)this).repaint();
- }
-
- public boolean getBorder() {
- return this.borderOn;
- }
-
- public Dimension minimumSize() {
- Dimension var1 = new Dimension(100, 100);
- this.StringWidth(" ");
-
- try {
- if (this.field_1 == null && ((Component)this).getParent() != null) {
- this.field_1 = ((Component)this).getParent().getGraphics().getFontMetrics();
- this.lastFont = ((Component)this).getParent().getGraphics().getFont();
- if (this.field_1 != null) {
- this.boldWidths = this.field_1.getWidths();
- }
- }
-
- if (this.field_1 != null) {
- this.field_1 = ((Component)this).getParent().getGraphics().getFontMetrics();
- if (this.field_1 != null) {
- int var2 = this.field_1.getHeight();
- int var3 = this.StringWidth("2");
- var1 = new Dimension(var3 * 20, (int)((double)var2 * (double)8.5F));
- }
- }
- } catch (Exception var4) {
- }
-
- return var1;
- }
-
- public void update(Graphics var1) {
- Rectangle var2 = ((Component)this).bounds();
- if (var2.width != 0 && var2.height != 0) {
- if (this.offscreen == null || var2.width != this.offscreensize.width || var2.height != this.offscreensize.height) {
- if (var2.width < 6) {
- var2.width = 6;
- }
-
- if (var2.height < 6) {
- var2.height = 6;
- }
-
- this.offscreen = ((Component)this).createImage(var2.width, var2.height);
- this.offscreensize = var2;
- this.field_0 = this.offscreen.getGraphics();
- this.field_0.setFont(((Component)this).getFont());
- }
-
- Color var3 = ((Component)this).getBackground();
- this.field_0.setColor(var3);
- this.field_0.fillRect(0, 0, var2.width, var2.height);
- this.field_0.setColor(((Component)this).getForeground());
- this.field_0.setFont(((Component)this).getFont());
- this.StringWidth("");
- int var4 = 0;
- if (this.field_1 != null) {
- var4 = this.field_1.getHeight();
- if (var4 != this.prevFontHeight && this.prevFontHeight != 0 || var4 != ((Component)this).bounds().height) {
- this.prevFontHeight = var4;
- if (this.target == null) {
- this.target = ((Component)this).getParent();
- }
-
- if (this.target != null && this.target instanceof JDPPopupComponent) {
- this.target.layout();
- this.target.paintAll(this.target.getGraphics());
- }
- }
-
- this.prevFontHeight = var4;
- }
-
- this.Bounds = ((Component)this).bounds();
- int var5 = (int)((double)this.Bounds.width / (double)7.5F);
- String var6 = months[this.showingDate.getMonth()] + " " + Integer.toString(this.showingDate.getYear() + 1900);
- int var7 = this.StringWidth(var6);
- this.field_0.drawString(var6, (this.Bounds.width - var7) / 2, var4);
- int var8 = 1;
- this.field_0.drawString(day[0], var8++ * var5 + 2 - this.StringWidth(day[0]), var4 * 2);
- this.field_0.drawString(day[1], var8++ * var5 + 2 - this.StringWidth(day[1]), var4 * 2);
- this.field_0.drawString(day[2], var8++ * var5 + 2 - this.StringWidth(day[2]), var4 * 2);
- this.field_0.drawString(day[3], var8++ * var5 + 2 - this.StringWidth(day[3]), var4 * 2);
- this.field_0.drawString(day[4], var8++ * var5 + 2 - this.StringWidth(day[4]), var4 * 2);
- this.field_0.drawString(day[5], var8++ * var5 + 2 - this.StringWidth(day[5]), var4 * 2);
- this.field_0.drawString(day[6], var8++ * var5 + 2 - this.StringWidth(day[6]), var4 * 2);
- Date var9 = new Date(this.showingDate.getTime());
- var9.setDate(1);
- int var10 = var9.getDay();
- var9.setTime(var9.getTime() - (long)(var10 * 24 * 60 * 60 * 1000));
- var9.setHours(0);
- this.field_0.setColor(JDPUtils.darker(var3));
- int var13 = 0;
- this.dateRectangles = new Rectangle[50];
- this.dates = new Date[50];
- int var14 = 3;
-
- do {
- int var15 = 1;
-
- do {
- String var11 = Integer.toString(var9.getDate());
- if (var11.equals("1")) {
- if (this.field_0.getColor().equals(((Component)this).getForeground())) {
- this.field_0.setColor(JDPUtils.darker(var3));
- } else {
- this.field_0.setColor(((Component)this).getForeground());
- }
- }
-
- this.dates[var13] = new Date(var9.getTime());
- this.dateRectangles[var13++] = new Rectangle((var15 - 1) * var5 + 5, (int)((double)var4 * ((double)var14 - 0.7)), var5 - 2, (int)((double)var4 * 0.9));
- Color var12 = this.field_0.getColor();
- if (this.thisDate.equals(var9)) {
- this.field_0.fillRect((var15 - 1) * var5 + 5, (int)((double)var4 * ((double)var14 - 0.7)), var5 - 2, (int)((double)var4 * 0.9));
- this.field_0.setColor(var3);
- }
-
- this.field_0.drawString(var11, var15 * var5 + 2 - this.StringWidth(var11), var4 * var14);
- this.field_0.setColor(var12);
- var9.setTime(var9.getTime() + 108000000L);
- var9.setHours(0);
- ++var15;
- } while(var15 < 8);
-
- ++var14;
- } while(var14 < 9);
-
- this.field_0.setColor(JDPUtils.darker(var3));
- this.field_0.drawLine(3, var4 * 2 + 1, this.Bounds.width - 4, var4 * 2 + 1);
- this.field_0.setColor(JDPUtils.brighter(var3));
- this.field_0.drawLine(3, var4 * 2 + 2, this.Bounds.width - 4, var4 * 2 + 2);
- if (this.borderOn) {
- this.field_0.setColor(JDPUtils.brighter(var3));
- this.field_0.drawLine(0, 0, this.Bounds.width - 1, 0);
- this.field_0.drawLine(0, 0, 0, this.Bounds.height - 1);
- this.field_0.setColor(JDPUtils.darker(var3));
- this.field_0.drawLine(0, this.Bounds.height - 1, 0, this.Bounds.height - 1);
- this.field_0.drawLine(this.Bounds.width - 1, 0, this.Bounds.width - 1, 0);
- this.field_0.drawLine(1, this.Bounds.height - 2, this.Bounds.width - 2, this.Bounds.height - 2);
- this.field_0.drawLine(this.Bounds.width - 2, 1, this.Bounds.width - 2, this.Bounds.height - 2);
- this.field_0.setColor(Color.black);
- this.field_0.drawLine(1, this.Bounds.height - 1, this.Bounds.width - 1, this.Bounds.height - 1);
- this.field_0.drawLine(this.Bounds.width - 1, 1, this.Bounds.width - 1, this.Bounds.height - 1);
- }
-
- var1.drawImage(this.offscreen, 0, 0, (ImageObserver)null);
- Dimension var23 = this.leftButton.minimumSize();
- this.leftButton.reshape(4, 4, var23.width, var23.height);
- this.rightButton.reshape(this.Bounds.width - 4 - var23.width, 4, var23.width, var23.height);
- }
- }
-
- public String getDateString() {
- this.thisDate.setHours(0);
- this.thisDate.setMinutes(0);
- this.thisDate.setSeconds(0);
- return JDPDate.format(this.thisDate, JDesignerPro.dateFormat);
- }
-
- public JDPCalendarPicker() {
- if (!JDPButton.activated) {
- System.out.println("Software Violation - this class may only be used in conjunction with JDesignerPro.");
- } else {
- this.datePanelMain();
- }
- }
-
- public Dimension preferredSize() {
- return this.minimumSize();
- }
-
- public void layout() {
- ((Component)this).repaint();
- }
-
- public boolean handleEvent(Event var1) {
- switch (var1.id) {
- case 202:
- ((Component)this).repaint();
- return false;
- case 401:
- if (var1.key == 10) {
- Event var8 = new Event(this, var1.when, 1001, var1.x, var1.y, var1.key, var1.modifiers, this.getDateString());
- super.postEvent(var8);
- return true;
- }
-
- return false;
- case 403:
- switch (var1.key) {
- case 1002:
- case 1004:
- int var7 = this.showingDate.getMonth() - 1;
- if (var7 < 0) {
- this.showingDate.setMonth(11);
- this.showingDate.setYear(this.showingDate.getYear() - 1);
- } else {
- this.showingDate.setMonth(var7);
- }
-
- this.showingDate.setHours(0);
- this.showingDate.setMinutes(0);
- this.showingDate.setSeconds(0);
- this.thisDate = new Date(this.showingDate.getTime());
- ((Component)this).repaint();
- return true;
- case 1003:
- case 1005:
- int var6 = this.showingDate.getMonth() + 1;
- if (var6 > 11) {
- this.showingDate.setMonth(0);
- this.showingDate.setYear(this.showingDate.getYear() + 1);
- } else {
- this.showingDate.setMonth(var6);
- }
-
- this.showingDate.setHours(0);
- this.showingDate.setMinutes(0);
- this.showingDate.setSeconds(0);
- this.thisDate = new Date(this.showingDate.getTime());
- ((Component)this).repaint();
- return true;
- case 1006:
- this.showingDate.setTime(this.showingDate.getTime() - 75600000L);
- this.showingDate.setHours(0);
- this.showingDate.setMinutes(0);
- this.showingDate.setSeconds(0);
- this.thisDate = new Date(this.showingDate.getTime());
- ((Component)this).repaint();
- return true;
- case 1007:
- this.showingDate.setTime(this.showingDate.getTime() + 97200000L);
- this.showingDate.setHours(0);
- this.showingDate.setMinutes(0);
- this.showingDate.setSeconds(0);
- this.thisDate = new Date(this.showingDate.getTime());
- ((Component)this).repaint();
- return true;
- default:
- return true;
- }
- case 502:
- int var5 = 0;
-
- while(this.dateRectangles[var5] == null || !this.dateRectangles[var5].inside(var1.x, var1.y)) {
- ++var5;
- if (var5 >= 50) {
- return true;
- }
- }
-
- this.thisDate = new Date(this.dates[var5].getTime());
- this.showingDate = new Date(this.dates[var5].getTime());
- ((Component)this).repaint();
- Event var3 = new Event(this, var1.when, 1001, var1.x, var1.y, var1.key, var1.modifiers, this.getDateString());
- super.postEvent(var3);
- return true;
- case 1001:
- if (var1.target.equals(this.leftButton)) {
- ((Component)this).requestFocus();
- int var4 = this.showingDate.getMonth() - 1;
- if (var4 < 0) {
- this.showingDate.setMonth(11);
- this.showingDate.setYear(this.showingDate.getYear() - 1);
- } else {
- this.showingDate.setMonth(var4);
- }
-
- ((Component)this).repaint();
- return true;
- } else if (var1.target.equals(this.rightButton)) {
- ((Component)this).requestFocus();
- int var2 = this.showingDate.getMonth() + 1;
- if (var2 > 11) {
- this.showingDate.setMonth(0);
- this.showingDate.setYear(this.showingDate.getYear() + 1);
- } else {
- this.showingDate.setMonth(var2);
- }
-
- ((Component)this).repaint();
- return true;
- } else {
- if (var1.target instanceof Button) {
- return true;
- }
-
- return false;
- }
- case 1005:
- return false;
- default:
- return false;
- }
- }
-
- int StringWidth(String var1) {
- if (this.field_0 != null && (this.field_1 == null || this.lastFont == null || this.field_0 != null && !this.field_0.getFont().equals(this.lastFont))) {
- this.field_1 = this.field_0.getFontMetrics();
- this.lastFont = this.field_0.getFont();
- this.boldWidths = this.field_1.getWidths();
- }
-
- return this.field_1 != null ? this.field_1.stringWidth(var1) : 0;
- }
-
- public static void setMonths(String[] var0) {
- if (var0 != null && var0.length == 12) {
- months = new String[12];
-
- for(int var1 = 0; var1 < var0.length; ++var1) {
- months[var1] = var0[var1];
- }
-
- }
- }
- }
-