home *** CD-ROM | disk | FTP | other *** search
- import java.awt.BorderLayout;
- 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.Panel;
- import java.awt.Rectangle;
- import java.awt.TextField;
- import java.awt.Window;
- import java.util.Date;
-
- public class JDPDate extends Panel {
- JDPButton downButton;
- TextField text;
- JDPCalendarPicker calendar;
- JDPUser user;
- JDPPopupComponent popup;
- JDPPopupWindow popupw;
- Panel pulldown;
- int totalHeight;
- long lastEventTime;
- Font currentFont;
- Color fgColor;
- Color bgColor;
- static String defaultFormat;
- Date thisDate;
- static boolean invalidDate;
- boolean usePopup;
- Container parent;
- boolean popupShowing;
-
- void selectPopupType() {
- if (this.parent == null) {
- this.parent = super.getParent();
- if (this.parent != null) {
- for(; !(this.parent instanceof Window); this.parent = this.parent.getParent()) {
- if (this.parent instanceof JDesignerPro) {
- this.usePopup = true;
- }
- }
-
- if (this.parent instanceof JDPMainWindow) {
- this.usePopup = true;
- }
- }
- }
-
- }
-
- public JDPDate(JDPUser var1) {
- this.initDate(var1, "", 20);
- }
-
- public JDPDate(JDPUser var1, int var2) {
- this.initDate(var1, "", var2);
- }
-
- public JDPDate(JDPUser var1, String var2, int var3) {
- this.initDate(var1, var2, var3);
- }
-
- void initDate(JDPUser var1, String var2, int var3) {
- this.usePopup = false;
- this.user = var1;
- if (var1 != null && var1.popup != null) {
- this.pulldown = new Panel();
- this.pulldown.setLayout(new BorderLayout());
- this.popup = var1.popup;
- this.popupw = new JDPPopupWindow(var1, this);
- Panel var4 = new Panel();
- ((Container)var4).setLayout(new BorderLayout());
- ((Container)var4).add("Center", this.pulldown);
- this.popup.add(var4);
- this.downButton = new JDPButton(5);
- if (var1.jdpMainWindow != null) {
- this.downButton.setBackground(var1.jdpMainWindow.getBackground());
- } else {
- this.downButton.setBackground(var1.JDesignerPro.getBackground());
- }
-
- this.text = new TextField(var2, var3);
- ((Container)this).setLayout(new BorderLayout());
- Panel var5 = new Panel();
- ((Container)var5).setLayout(new BorderLayout());
- ((Container)var5).add("East", this.downButton);
- ((Container)var5).add("Center", this.text);
- ((Container)this).add("North", var5);
- }
- }
-
- public static String formatForSql(String var0, String var1) {
- return var0 != null && !var0.trim().equals("") ? formatForSql(unformat(var0), var1) : "null";
- }
-
- public static void setDefaultFormat(String var0) {
- defaultFormat = var0;
- }
-
- public static String getDefaultFormat() {
- checkDefaultFormat();
- return defaultFormat;
- }
-
- public static String formatForSql(Date var0, String var1) {
- if (var0 == null) {
- return "null";
- } else {
- String[] var2 = new String[]{"'", "'"};
- if (var1 != null) {
- if (var1.indexOf(JDPJagg.VFOXPRO) >= 0) {
- var2[0] = "CTOD('";
- var2[1] = "')";
- } else if (var1.indexOf(JDPJagg.SYBASE) < 0 && var1.indexOf(JDPJagg.SYBASE10) < 0 && var1.indexOf(JDPJagg.ANYWHERE) < 0 && var1.indexOf(JDPJagg.SOLIDSERVER) < 0) {
- if (var1.indexOf(JDPJagg.ORACLE) < 0 && var1.indexOf(JDPJagg.POLITE) < 0) {
- if (var1.indexOf(JDPJagg.RDB) >= 0) {
- var2[0] = "cast('";
- var2[1] = "' as date vms)";
- } else if (var1.indexOf(JDPJagg.DB2) >= 0) {
- var2[0] = "DATE('";
- var2[1] = "')";
- } else if (var1.indexOf(JDPJagg.CLOUDSCAPE) >= 0) {
- var2[0] = "DATE'";
- var2[1] = "'";
- }
- } else {
- var2[0] = "to_date('";
- var2[1] = "', 'yyyy/mm/dd')";
- }
- }
- }
-
- String var3 = "";
- if (var1 == null) {
- var3 = format(var0, "yyyy/mm/dd");
- } else if (var1.indexOf(JDPJagg.ORACLE) < 0 && var1.indexOf(JDPJagg.POLITE) < 0) {
- if (var1.indexOf(JDPJagg.VFOXPRO) < 0 && var1.indexOf(JDPJagg.INFORMIX) < 0) {
- if (var1.indexOf(JDPJagg.RDB) >= 0) {
- var3 = format(var0, "yyyymmdd");
- } else if (var1.indexOf(JDPJagg.ADABAS) < 0 && var1.indexOf(JDPJagg.SOLIDSERVER) < 0 && var1.indexOf(JDPJagg.DB2) < 0 && var1.indexOf(JDPJagg.CLOUDSCAPE) < 0) {
- var3 = format(var0, "yyyy/mm/dd");
- } else {
- var3 = format(var0, "yyyy-mm-dd");
- }
- } else {
- var3 = format(var0, "mm/dd/yyyy");
- }
- } else {
- var3 = format(var0, "yyyy/mm/dd");
- }
-
- return var2[0] + var3 + var2[1];
- }
- }
-
- public static String formatSystem(long var0) {
- return format(new Date(var0), "yyyy/mm/dd");
- }
-
- void displayPulldown() {
- this.selectPopupType();
- if (this.usePopup && this.popupShowing) {
- if (this.popup.getEventListener().equals(this)) {
- this.popup.hide();
- }
-
- this.popupShowing = false;
- } else if (!this.usePopup && this.popupShowing) {
- if (this.popupw.getEventListener().equals(this)) {
- this.popupw.hide();
- }
-
- this.popupShowing = false;
- } else {
- this.popupShowing = true;
- int var1 = ((Component)this).bounds().x;
- int var2 = ((Component)this).bounds().y;
-
- for(Container var3 = ((Component)this).getParent(); var3 != null && !var3.equals(this.popup.getParent()); var3 = ((Component)var3).getParent()) {
- Rectangle var4 = ((Component)var3).bounds();
- var1 += var4.x;
- var2 += var4.y;
- }
-
- this.loadPulldown();
- if (this.usePopup) {
- this.popup.display(var1 + 1, var2 + this.text.bounds().height, var2);
- this.popup.setEventListener(this);
- } else {
- this.popupw.display(var1 + 1, var2 + this.text.bounds().height, var2);
- this.popupw.setEventListener(this);
- }
-
- this.calendar.requestFocus();
- }
- }
-
- void loadPulldown() {
- this.createCalendar();
- this.calendar.setDate(this.text.getText());
- FontMetrics var1 = this.downButton.getGraphics().getFontMetrics();
- var1.getHeight();
- if (this.usePopup) {
- this.popup.removeAll();
- this.popup.setFont(this.getFont());
- this.popup.setForeground(this.getForeground());
- this.popup.setBackground(this.getBackground());
- this.popup.add("Center", this.calendar);
- } else {
- this.popupw.removeAll();
- this.popupw.setFont(this.getFont());
- this.popupw.setForeground(this.getForeground());
- this.popupw.setBackground(this.getBackground());
- this.popupw.add("Center", this.calendar);
- }
- }
-
- void createCalendar() {
- if (this.calendar == null) {
- this.calendar = new JDPCalendarPicker();
- this.calendar.setBorder(true);
- this.calendar.setFont(this.text.getFont());
- this.calendar.setForeground(this.text.getForeground());
- this.calendar.setBackground(this.text.getBackground());
- }
-
- }
-
- public Dimension preferredSize() {
- return this.minimumSize();
- }
-
- public int getColumns() {
- return this.text.getColumns();
- }
-
- public static String format(String var0) {
- if (var0.trim().equals("")) {
- return "";
- } else {
- checkDefaultFormat();
- Date var1 = unformat(var0, defaultFormat);
- return format(var1, "yyyy/mm/dd");
- }
- }
-
- public static String format(long var0) {
- return var0 == 0L ? "" : format(new Date(var0));
- }
-
- public static String format(String var0, String var1) {
- checkDefaultFormat();
- Date var2 = unformat(var0, defaultFormat);
- return format(var2, var1);
- }
-
- public static String format(Date var0) {
- checkDefaultFormat();
- return format(var0, defaultFormat);
- }
-
- public static String format(Date var0, String var1) {
- if (var0 == null) {
- var0 = new Date();
- }
-
- String var2 = Integer.toString(var0.getMonth() + 1);
- if (var2.length() == 1) {
- var2 = "0" + var2;
- }
-
- String var3 = Integer.toString(var0.getDate());
- if (var3.length() == 1) {
- var3 = "0" + var3;
- }
-
- String var4 = Integer.toString(var0.getYear() + 1900);
- String var5 = Integer.toString(var0.getHours());
- String var6 = Integer.toString(var0.getMinutes());
- if (var6.length() == 1) {
- var6 = "0" + var6;
- }
-
- String var7 = Integer.toString(var0.getSeconds());
- if (var7.length() == 1) {
- var7 = "0" + var7;
- }
-
- int var8 = var0.getHours();
- String var9 = "am";
- String var10 = "AM";
- if (var8 > 11) {
- var9 = "pm";
- var10 = "PM";
- }
-
- if (var8 > 12) {
- var8 -= 12;
- }
-
- if (var8 == 0) {
- var8 = 12;
- }
-
- var5 = Integer.toString(var8);
- String var11 = var9;
- if (var1.indexOf("AM") >= 0 || var1.indexOf("PM") >= 0) {
- var11 = var10;
- }
-
- var1 = var1.toLowerCase();
- var1 = JDPUtils.replace(var1, "hh", var5, 1);
- var1 = JDPUtils.replace(var1, ":mm", ":" + var6, 1);
- var1 = JDPUtils.replace(var1, "mm:", var6 + ":", 1);
- var1 = JDPUtils.replace(var1, "mn", var6, 1);
- var1 = JDPUtils.replace(var1, "ss", var7, 1);
- var1 = JDPUtils.replace(var1, "yyyy", var4, 1);
- if (var4.length() >= 4) {
- var1 = JDPUtils.replace(var1, "yy", var4.substring(2, 4), 1);
- }
-
- var1 = JDPUtils.replace(var1, "mm", var2, 1);
- var1 = JDPUtils.replace(var1, "dd", var3, 1);
- var1 = JDPUtils.replace(var1, "am", var11, 1);
- var1 = JDPUtils.replace(var1, "pm", var11, 1);
- if (var1 == null) {
- var1 = "";
- }
-
- return var1;
- }
-
- public void setDate(Date var1) {
- checkDefaultFormat();
- this.thisDate = var1;
- this.text.setText(format(var1, defaultFormat));
- }
-
- public Date getDate() {
- this.setText(this.getText());
- return this.thisDate;
- }
-
- public static boolean unformattedDateValid() {
- return !invalidDate;
- }
-
- public void setBackground(Color var1) {
- this.bgColor = var1;
- this.text.setBackground(var1);
- this.createCalendar();
- this.calendar.setBackground(var1);
- if (!var1.equals(Color.white)) {
- this.downButton.setBackground(var1);
- }
-
- }
-
- public Color getBackground() {
- if (this.bgColor != null) {
- return this.bgColor;
- } else {
- Container var1 = ((Component)this).getParent();
- return var1 != null ? ((Component)var1).getBackground() : null;
- }
- }
-
- public void setEditable(boolean var1) {
- this.text.setEditable(var1);
- }
-
- public boolean getEditable() {
- return this.text.isEditable();
- }
-
- public Dimension minimumSize() {
- this.createCalendar();
- Dimension var1 = this.calendar.minimumSize();
- if (this.text != null) {
- Dimension var2 = ((Component)this.text).minimumSize();
- var1.height = var2.height;
- var1.width = var2.width;
- }
-
- return var1;
- }
-
- public void setFont(Font var1) {
- this.currentFont = var1;
- this.text.setFont(var1);
- this.createCalendar();
- this.calendar.setFont(this.text.getFont());
- this.downButton.setFont(var1);
- }
-
- public Font getFont() {
- if (this.currentFont != null) {
- return this.currentFont;
- } else {
- Container var1 = ((Component)this).getParent();
- return var1 != null ? ((Component)var1).getFont() : null;
- }
- }
-
- static {
- defaultFormat = JDesignerPro.dateFormat;
- }
-
- public static Date unformat(String var0) {
- checkDefaultFormat();
- return unformat(var0, defaultFormat);
- }
-
- public static Date unformat(String var0, String var1) {
- int var2 = 1;
- int var3 = 1;
- int var4 = 0;
- int var5 = 0;
- int var6 = 0;
- int var7 = 0;
- invalidDate = false;
- Date var8 = new Date();
- if (var0 != null && !var0.equals("")) {
- for(int var9 = 0; var9 < var1.length(); ++var9) {
- if (var1.charAt(var9) != 'm' && var1.charAt(var9) != 'd' && var1.charAt(var9) != 'y' && var1.charAt(var9) != 'h' && var1.charAt(var9) != 's') {
- if (var9 < var0.length()) {
- if (var0.charAt(var9) != var1.charAt(var9) && var0.charAt(var9 - 1) == var1.charAt(var9)) {
- var0 = var0.substring(0, var9 - 2) + "0" + var0.substring(var9 - 2);
- }
- } else {
- var0 = var0 + "0";
- }
- }
- }
-
- var1 = var1.toLowerCase();
- int var23 = var1.indexOf("yyyy");
- if (var23 >= 0) {
- try {
- var4 = Integer.parseInt(var0.substring(var23, var23 + 4));
- var4 -= 1900;
- } catch (Exception var18) {
- try {
- var4 = Integer.parseInt(var0.substring(var23, var23 + 2));
- } catch (Exception var17) {
- invalidDate = true;
- }
- }
- } else {
- var23 = var1.indexOf("yy");
- if (var23 >= 0) {
- try {
- if (var0.length() < var23 + 2) {
- var0 = var0.substring(0, var23) + "0" + var0.substring(var23);
- }
-
- var4 = Integer.parseInt(var0.substring(var23, var23 + 2));
- int var10 = var4 + 1900;
-
- for(int var11 = var8.getYear() + 1900; var11 - var10 > 50; var10 += 100) {
- }
-
- var4 = var10 - 1900;
- } catch (Exception var19) {
- invalidDate = true;
- }
- }
- }
-
- var23 = var1.indexOf("mm");
- if (var23 >= 0) {
- try {
- var2 = Integer.parseInt(var0.substring(var23, var23 + 2));
- } catch (Exception var16) {
- invalidDate = true;
- }
- }
-
- var23 = var1.indexOf("dd");
- if (var23 >= 0) {
- try {
- var3 = Integer.parseInt(var0.substring(var23, var23 + 2));
- } catch (Exception var15) {
- invalidDate = true;
- }
- }
-
- var23 = var1.indexOf("hh");
- if (var23 >= 0) {
- try {
- var5 = Integer.parseInt(var0.substring(var23, var23 + 2));
- } catch (Exception var14) {
- invalidDate = true;
- }
- }
-
- var23 = var1.indexOf("mm:");
- if (var23 >= 0) {
- try {
- var6 = Integer.parseInt(var0.substring(var23, var23 + 2));
- } catch (Exception var13) {
- invalidDate = true;
- }
- }
-
- var23 = var1.indexOf("ss");
- if (var23 >= 0) {
- try {
- var7 = Integer.parseInt(var0.substring(var23, var23 + 2));
- } catch (Exception var12) {
- invalidDate = true;
- }
- }
-
- boolean var30 = false;
- if (var2 > 0 && var2 <= 12 && var4 >= 0 && var3 >= 1 && var3 <= 31) {
- if (var2 != 4 && var2 != 6 && var2 != 9 && var2 != 11) {
- if (var2 == 2) {
- if (var4 % 4 == 0) {
- if (var3 <= 29) {
- var30 = true;
- }
- } else if (var3 <= 28) {
- var30 = true;
- }
- } else {
- var30 = true;
- }
- } else if (var3 <= 30) {
- var30 = true;
- }
- }
-
- if (!var30) {
- invalidDate = true;
- }
-
- if (var2 < 1) {
- var2 = 1;
- }
-
- Date var31 = new Date(var4, var2 - 1, var3, var5, var6, var7);
- return var31;
- } else {
- return var8;
- }
- }
-
- static void checkDefaultFormat() {
- if (defaultFormat == null || defaultFormat.equals("")) {
- defaultFormat = JDesignerPro.dateFormat;
- if (defaultFormat == null || defaultFormat.equals("")) {
- defaultFormat = "mm/dd/yy";
- }
- }
-
- }
-
- public void setForeground(Color var1) {
- this.fgColor = var1;
- this.text.setForeground(var1);
- this.createCalendar();
- this.calendar.setForeground(var1);
- this.downButton.setForeground(var1);
- }
-
- public Color getForeground() {
- if (this.fgColor != null) {
- return this.fgColor;
- } else {
- Container var1 = ((Component)this).getParent();
- return var1 != null ? ((Component)var1).getForeground() : null;
- }
- }
-
- public void setEnabled(boolean var1) {
- if (var1) {
- this.text.enable();
- this.downButton.enable();
- } else {
- this.text.disable();
- this.downButton.disable();
- }
- }
-
- public boolean getEnabled() {
- return this.text.isEnabled();
- }
-
- public boolean handleEvent(Event var1) {
- switch (var1.id) {
- case 1001:
- if (var1.target.equals(this.calendar)) {
- this.text.setText(this.calendar.getDateString());
- this.thisDate = this.calendar.getDate();
- this.displayPulldown();
- Event var7 = new Event(this, var1.when, var1.id, var1.x, var1.y, var1.key, var1.modifiers, this.calendar.getDateString());
- super.postEvent(var7);
- return true;
- } else if (var1.target.equals(this.downButton)) {
- if (var1.when > 0L && var1.when - this.lastEventTime < 200L) {
- this.popupShowing = true;
- }
-
- this.displayPulldown();
- return true;
- } else {
- if (var1.target.equals(this.text)) {
- format(this.text.getText());
- if (this.user != null && this.user.mainmsg != null && !unformattedDateValid()) {
- this.text.requestFocus();
- this.text.selectAll();
- this.user.mainmsg.setStatusMsg(JDPLang.get("Message11"), 4);
- return true;
- }
-
- Event var6 = new Event(this, var1.when, var1.id, var1.x, var1.y, var1.key, var1.modifiers, this.text.getText());
- super.postEvent(var6);
- }
-
- return false;
- }
- case 1002:
- case 1003:
- default:
- return false;
- case 1004:
- if (this.usePopup && this.calendar != null && (var1.target.equals(this.calendar.leftButton) || var1.target.equals(this.calendar.rightButton)) && !this.popup.isVisible()) {
- this.popup.show();
- this.popupShowing = true;
- return true;
- } else if (!this.usePopup && this.calendar != null && (var1.target.equals(this.calendar.leftButton) || var1.target.equals(this.calendar.rightButton)) && !this.popupw.isVisible()) {
- this.popupw.show();
- this.popupShowing = true;
- return true;
- } else if (!var1.target.equals(this.calendar) && !var1.target.equals(this.text)) {
- return false;
- } else {
- Event var5 = new Event(this, var1.when, var1.id, var1.x, var1.y, var1.key, var1.modifiers, (Object)null);
- super.postEvent(var5);
- return true;
- }
- case 1005:
- if (this.usePopup && this.calendar != null && var1.target.equals(this.calendar) && this.popupShowing) {
- this.lastEventTime = (new Date()).getTime();
- if (this.popup.getEventListener().equals(this)) {
- this.popup.hide();
- }
-
- this.popupShowing = false;
- Event var4 = new Event(this, var1.when, var1.id, var1.x, var1.y, var1.key, var1.modifiers, (Object)null);
- super.handleEvent(var4);
- return true;
- } else if (!this.usePopup && this.calendar != null && var1.target.equals(this.calendar) && this.popupShowing) {
- this.lastEventTime = (new Date()).getTime();
- if (this.popupw.getEventListener().equals(this)) {
- this.popupw.hide();
- }
-
- this.popupShowing = false;
- Event var3 = new Event(this, var1.when, var1.id, var1.x, var1.y, var1.key, var1.modifiers, (Object)null);
- super.handleEvent(var3);
- return true;
- } else {
- this.lastEventTime = 0L;
- if (!var1.target.equals(this.calendar) && !var1.target.equals(this.text)) {
- return false;
- } else {
- Event var2 = new Event(this, var1.when, var1.id, var1.x, var1.y, var1.key, var1.modifiers, (Object)null);
- super.postEvent(var2);
- return true;
- }
- }
- }
- }
-
- public void setText(String var1) {
- this.text.setText(var1);
- if (var1.equals("")) {
- this.thisDate = null;
- } else {
- this.setDate(unformat(var1));
- }
- }
-
- public String getText() {
- return this.text.getText();
- }
- }
-