home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / JDesignerPro / Jdp3_0.exe / data1.cab / Program_Files / JDPDate.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-09  |  10.4 KB  |  692 lines

  1. import java.awt.BorderLayout;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Dimension;
  6. import java.awt.Event;
  7. import java.awt.Font;
  8. import java.awt.FontMetrics;
  9. import java.awt.Panel;
  10. import java.awt.Rectangle;
  11. import java.awt.TextField;
  12. import java.awt.Window;
  13. import java.util.Date;
  14.  
  15. public class JDPDate extends Panel {
  16.    JDPButton downButton;
  17.    TextField text;
  18.    JDPCalendarPicker calendar;
  19.    JDPUser user;
  20.    JDPPopupComponent popup;
  21.    JDPPopupWindow popupw;
  22.    Panel pulldown;
  23.    int totalHeight;
  24.    long lastEventTime;
  25.    Font currentFont;
  26.    Color fgColor;
  27.    Color bgColor;
  28.    static String defaultFormat;
  29.    Date thisDate;
  30.    static boolean invalidDate;
  31.    boolean usePopup;
  32.    Container parent;
  33.    boolean popupShowing;
  34.  
  35.    void selectPopupType() {
  36.       if (this.parent == null) {
  37.          this.parent = super.getParent();
  38.          if (this.parent != null) {
  39.             for(; !(this.parent instanceof Window); this.parent = this.parent.getParent()) {
  40.                if (this.parent instanceof JDesignerPro) {
  41.                   this.usePopup = true;
  42.                }
  43.             }
  44.  
  45.             if (this.parent instanceof JDPMainWindow) {
  46.                this.usePopup = true;
  47.             }
  48.          }
  49.       }
  50.  
  51.    }
  52.  
  53.    public JDPDate(JDPUser var1) {
  54.       this.initDate(var1, "", 20);
  55.    }
  56.  
  57.    public JDPDate(JDPUser var1, int var2) {
  58.       this.initDate(var1, "", var2);
  59.    }
  60.  
  61.    public JDPDate(JDPUser var1, String var2, int var3) {
  62.       this.initDate(var1, var2, var3);
  63.    }
  64.  
  65.    void initDate(JDPUser var1, String var2, int var3) {
  66.       this.usePopup = false;
  67.       this.user = var1;
  68.       if (var1 != null && var1.popup != null) {
  69.          this.pulldown = new Panel();
  70.          this.pulldown.setLayout(new BorderLayout());
  71.          this.popup = var1.popup;
  72.          this.popupw = new JDPPopupWindow(var1, this);
  73.          Panel var4 = new Panel();
  74.          ((Container)var4).setLayout(new BorderLayout());
  75.          ((Container)var4).add("Center", this.pulldown);
  76.          this.popup.add(var4);
  77.          this.downButton = new JDPButton(5);
  78.          if (var1.jdpMainWindow != null) {
  79.             this.downButton.setBackground(var1.jdpMainWindow.getBackground());
  80.          } else {
  81.             this.downButton.setBackground(var1.JDesignerPro.getBackground());
  82.          }
  83.  
  84.          this.text = new TextField(var2, var3);
  85.          ((Container)this).setLayout(new BorderLayout());
  86.          Panel var5 = new Panel();
  87.          ((Container)var5).setLayout(new BorderLayout());
  88.          ((Container)var5).add("East", this.downButton);
  89.          ((Container)var5).add("Center", this.text);
  90.          ((Container)this).add("North", var5);
  91.       }
  92.    }
  93.  
  94.    public static String formatForSql(String var0, String var1) {
  95.       return var0 != null && !var0.trim().equals("") ? formatForSql(unformat(var0), var1) : "null";
  96.    }
  97.  
  98.    public static void setDefaultFormat(String var0) {
  99.       defaultFormat = var0;
  100.    }
  101.  
  102.    public static String getDefaultFormat() {
  103.       checkDefaultFormat();
  104.       return defaultFormat;
  105.    }
  106.  
  107.    public static String formatForSql(Date var0, String var1) {
  108.       if (var0 == null) {
  109.          return "null";
  110.       } else {
  111.          String[] var2 = new String[]{"'", "'"};
  112.          if (var1 != null) {
  113.             if (var1.indexOf(JDPJagg.VFOXPRO) >= 0) {
  114.                var2[0] = "CTOD('";
  115.                var2[1] = "')";
  116.             } else if (var1.indexOf(JDPJagg.SYBASE) < 0 && var1.indexOf(JDPJagg.SYBASE10) < 0 && var1.indexOf(JDPJagg.ANYWHERE) < 0 && var1.indexOf(JDPJagg.SOLIDSERVER) < 0) {
  117.                if (var1.indexOf(JDPJagg.ORACLE) < 0 && var1.indexOf(JDPJagg.POLITE) < 0) {
  118.                   if (var1.indexOf(JDPJagg.RDB) >= 0) {
  119.                      var2[0] = "cast('";
  120.                      var2[1] = "' as date vms)";
  121.                   } else if (var1.indexOf(JDPJagg.DB2) >= 0) {
  122.                      var2[0] = "DATE('";
  123.                      var2[1] = "')";
  124.                   } else if (var1.indexOf(JDPJagg.CLOUDSCAPE) >= 0) {
  125.                      var2[0] = "DATE'";
  126.                      var2[1] = "'";
  127.                   }
  128.                } else {
  129.                   var2[0] = "to_date('";
  130.                   var2[1] = "', 'yyyy/mm/dd')";
  131.                }
  132.             }
  133.          }
  134.  
  135.          String var3 = "";
  136.          if (var1 == null) {
  137.             var3 = format(var0, "yyyy/mm/dd");
  138.          } else if (var1.indexOf(JDPJagg.ORACLE) < 0 && var1.indexOf(JDPJagg.POLITE) < 0) {
  139.             if (var1.indexOf(JDPJagg.VFOXPRO) < 0 && var1.indexOf(JDPJagg.INFORMIX) < 0) {
  140.                if (var1.indexOf(JDPJagg.RDB) >= 0) {
  141.                   var3 = format(var0, "yyyymmdd");
  142.                } else if (var1.indexOf(JDPJagg.ADABAS) < 0 && var1.indexOf(JDPJagg.SOLIDSERVER) < 0 && var1.indexOf(JDPJagg.DB2) < 0 && var1.indexOf(JDPJagg.CLOUDSCAPE) < 0) {
  143.                   var3 = format(var0, "yyyy/mm/dd");
  144.                } else {
  145.                   var3 = format(var0, "yyyy-mm-dd");
  146.                }
  147.             } else {
  148.                var3 = format(var0, "mm/dd/yyyy");
  149.             }
  150.          } else {
  151.             var3 = format(var0, "yyyy/mm/dd");
  152.          }
  153.  
  154.          return var2[0] + var3 + var2[1];
  155.       }
  156.    }
  157.  
  158.    public static String formatSystem(long var0) {
  159.       return format(new Date(var0), "yyyy/mm/dd");
  160.    }
  161.  
  162.    void displayPulldown() {
  163.       this.selectPopupType();
  164.       if (this.usePopup && this.popupShowing) {
  165.          if (this.popup.getEventListener().equals(this)) {
  166.             this.popup.hide();
  167.          }
  168.  
  169.          this.popupShowing = false;
  170.       } else if (!this.usePopup && this.popupShowing) {
  171.          if (this.popupw.getEventListener().equals(this)) {
  172.             this.popupw.hide();
  173.          }
  174.  
  175.          this.popupShowing = false;
  176.       } else {
  177.          this.popupShowing = true;
  178.          int var1 = ((Component)this).bounds().x;
  179.          int var2 = ((Component)this).bounds().y;
  180.  
  181.          for(Container var3 = ((Component)this).getParent(); var3 != null && !var3.equals(this.popup.getParent()); var3 = ((Component)var3).getParent()) {
  182.             Rectangle var4 = ((Component)var3).bounds();
  183.             var1 += var4.x;
  184.             var2 += var4.y;
  185.          }
  186.  
  187.          this.loadPulldown();
  188.          if (this.usePopup) {
  189.             this.popup.display(var1 + 1, var2 + this.text.bounds().height, var2);
  190.             this.popup.setEventListener(this);
  191.          } else {
  192.             this.popupw.display(var1 + 1, var2 + this.text.bounds().height, var2);
  193.             this.popupw.setEventListener(this);
  194.          }
  195.  
  196.          this.calendar.requestFocus();
  197.       }
  198.    }
  199.  
  200.    void loadPulldown() {
  201.       this.createCalendar();
  202.       this.calendar.setDate(this.text.getText());
  203.       FontMetrics var1 = this.downButton.getGraphics().getFontMetrics();
  204.       var1.getHeight();
  205.       if (this.usePopup) {
  206.          this.popup.removeAll();
  207.          this.popup.setFont(this.getFont());
  208.          this.popup.setForeground(this.getForeground());
  209.          this.popup.setBackground(this.getBackground());
  210.          this.popup.add("Center", this.calendar);
  211.       } else {
  212.          this.popupw.removeAll();
  213.          this.popupw.setFont(this.getFont());
  214.          this.popupw.setForeground(this.getForeground());
  215.          this.popupw.setBackground(this.getBackground());
  216.          this.popupw.add("Center", this.calendar);
  217.       }
  218.    }
  219.  
  220.    void createCalendar() {
  221.       if (this.calendar == null) {
  222.          this.calendar = new JDPCalendarPicker();
  223.          this.calendar.setBorder(true);
  224.          this.calendar.setFont(this.text.getFont());
  225.          this.calendar.setForeground(this.text.getForeground());
  226.          this.calendar.setBackground(this.text.getBackground());
  227.       }
  228.  
  229.    }
  230.  
  231.    public Dimension preferredSize() {
  232.       return this.minimumSize();
  233.    }
  234.  
  235.    public int getColumns() {
  236.       return this.text.getColumns();
  237.    }
  238.  
  239.    public static String format(String var0) {
  240.       if (var0.trim().equals("")) {
  241.          return "";
  242.       } else {
  243.          checkDefaultFormat();
  244.          Date var1 = unformat(var0, defaultFormat);
  245.          return format(var1, "yyyy/mm/dd");
  246.       }
  247.    }
  248.  
  249.    public static String format(long var0) {
  250.       return var0 == 0L ? "" : format(new Date(var0));
  251.    }
  252.  
  253.    public static String format(String var0, String var1) {
  254.       checkDefaultFormat();
  255.       Date var2 = unformat(var0, defaultFormat);
  256.       return format(var2, var1);
  257.    }
  258.  
  259.    public static String format(Date var0) {
  260.       checkDefaultFormat();
  261.       return format(var0, defaultFormat);
  262.    }
  263.  
  264.    public static String format(Date var0, String var1) {
  265.       if (var0 == null) {
  266.          var0 = new Date();
  267.       }
  268.  
  269.       String var2 = Integer.toString(var0.getMonth() + 1);
  270.       if (var2.length() == 1) {
  271.          var2 = "0" + var2;
  272.       }
  273.  
  274.       String var3 = Integer.toString(var0.getDate());
  275.       if (var3.length() == 1) {
  276.          var3 = "0" + var3;
  277.       }
  278.  
  279.       String var4 = Integer.toString(var0.getYear() + 1900);
  280.       String var5 = Integer.toString(var0.getHours());
  281.       String var6 = Integer.toString(var0.getMinutes());
  282.       if (var6.length() == 1) {
  283.          var6 = "0" + var6;
  284.       }
  285.  
  286.       String var7 = Integer.toString(var0.getSeconds());
  287.       if (var7.length() == 1) {
  288.          var7 = "0" + var7;
  289.       }
  290.  
  291.       int var8 = var0.getHours();
  292.       String var9 = "am";
  293.       String var10 = "AM";
  294.       if (var8 > 11) {
  295.          var9 = "pm";
  296.          var10 = "PM";
  297.       }
  298.  
  299.       if (var8 > 12) {
  300.          var8 -= 12;
  301.       }
  302.  
  303.       if (var8 == 0) {
  304.          var8 = 12;
  305.       }
  306.  
  307.       var5 = Integer.toString(var8);
  308.       String var11 = var9;
  309.       if (var1.indexOf("AM") >= 0 || var1.indexOf("PM") >= 0) {
  310.          var11 = var10;
  311.       }
  312.  
  313.       var1 = var1.toLowerCase();
  314.       var1 = JDPUtils.replace(var1, "hh", var5, 1);
  315.       var1 = JDPUtils.replace(var1, ":mm", ":" + var6, 1);
  316.       var1 = JDPUtils.replace(var1, "mm:", var6 + ":", 1);
  317.       var1 = JDPUtils.replace(var1, "mn", var6, 1);
  318.       var1 = JDPUtils.replace(var1, "ss", var7, 1);
  319.       var1 = JDPUtils.replace(var1, "yyyy", var4, 1);
  320.       if (var4.length() >= 4) {
  321.          var1 = JDPUtils.replace(var1, "yy", var4.substring(2, 4), 1);
  322.       }
  323.  
  324.       var1 = JDPUtils.replace(var1, "mm", var2, 1);
  325.       var1 = JDPUtils.replace(var1, "dd", var3, 1);
  326.       var1 = JDPUtils.replace(var1, "am", var11, 1);
  327.       var1 = JDPUtils.replace(var1, "pm", var11, 1);
  328.       if (var1 == null) {
  329.          var1 = "";
  330.       }
  331.  
  332.       return var1;
  333.    }
  334.  
  335.    public void setDate(Date var1) {
  336.       checkDefaultFormat();
  337.       this.thisDate = var1;
  338.       this.text.setText(format(var1, defaultFormat));
  339.    }
  340.  
  341.    public Date getDate() {
  342.       this.setText(this.getText());
  343.       return this.thisDate;
  344.    }
  345.  
  346.    public static boolean unformattedDateValid() {
  347.       return !invalidDate;
  348.    }
  349.  
  350.    public void setBackground(Color var1) {
  351.       this.bgColor = var1;
  352.       this.text.setBackground(var1);
  353.       this.createCalendar();
  354.       this.calendar.setBackground(var1);
  355.       if (!var1.equals(Color.white)) {
  356.          this.downButton.setBackground(var1);
  357.       }
  358.  
  359.    }
  360.  
  361.    public Color getBackground() {
  362.       if (this.bgColor != null) {
  363.          return this.bgColor;
  364.       } else {
  365.          Container var1 = ((Component)this).getParent();
  366.          return var1 != null ? ((Component)var1).getBackground() : null;
  367.       }
  368.    }
  369.  
  370.    public void setEditable(boolean var1) {
  371.       this.text.setEditable(var1);
  372.    }
  373.  
  374.    public boolean getEditable() {
  375.       return this.text.isEditable();
  376.    }
  377.  
  378.    public Dimension minimumSize() {
  379.       this.createCalendar();
  380.       Dimension var1 = this.calendar.minimumSize();
  381.       if (this.text != null) {
  382.          Dimension var2 = ((Component)this.text).minimumSize();
  383.          var1.height = var2.height;
  384.          var1.width = var2.width;
  385.       }
  386.  
  387.       return var1;
  388.    }
  389.  
  390.    public void setFont(Font var1) {
  391.       this.currentFont = var1;
  392.       this.text.setFont(var1);
  393.       this.createCalendar();
  394.       this.calendar.setFont(this.text.getFont());
  395.       this.downButton.setFont(var1);
  396.    }
  397.  
  398.    public Font getFont() {
  399.       if (this.currentFont != null) {
  400.          return this.currentFont;
  401.       } else {
  402.          Container var1 = ((Component)this).getParent();
  403.          return var1 != null ? ((Component)var1).getFont() : null;
  404.       }
  405.    }
  406.  
  407.    static {
  408.       defaultFormat = JDesignerPro.dateFormat;
  409.    }
  410.  
  411.    public static Date unformat(String var0) {
  412.       checkDefaultFormat();
  413.       return unformat(var0, defaultFormat);
  414.    }
  415.  
  416.    public static Date unformat(String var0, String var1) {
  417.       int var2 = 1;
  418.       int var3 = 1;
  419.       int var4 = 0;
  420.       int var5 = 0;
  421.       int var6 = 0;
  422.       int var7 = 0;
  423.       invalidDate = false;
  424.       Date var8 = new Date();
  425.       if (var0 != null && !var0.equals("")) {
  426.          for(int var9 = 0; var9 < var1.length(); ++var9) {
  427.             if (var1.charAt(var9) != 'm' && var1.charAt(var9) != 'd' && var1.charAt(var9) != 'y' && var1.charAt(var9) != 'h' && var1.charAt(var9) != 's') {
  428.                if (var9 < var0.length()) {
  429.                   if (var0.charAt(var9) != var1.charAt(var9) && var0.charAt(var9 - 1) == var1.charAt(var9)) {
  430.                      var0 = var0.substring(0, var9 - 2) + "0" + var0.substring(var9 - 2);
  431.                   }
  432.                } else {
  433.                   var0 = var0 + "0";
  434.                }
  435.             }
  436.          }
  437.  
  438.          var1 = var1.toLowerCase();
  439.          int var23 = var1.indexOf("yyyy");
  440.          if (var23 >= 0) {
  441.             try {
  442.                var4 = Integer.parseInt(var0.substring(var23, var23 + 4));
  443.                var4 -= 1900;
  444.             } catch (Exception var18) {
  445.                try {
  446.                   var4 = Integer.parseInt(var0.substring(var23, var23 + 2));
  447.                } catch (Exception var17) {
  448.                   invalidDate = true;
  449.                }
  450.             }
  451.          } else {
  452.             var23 = var1.indexOf("yy");
  453.             if (var23 >= 0) {
  454.                try {
  455.                   if (var0.length() < var23 + 2) {
  456.                      var0 = var0.substring(0, var23) + "0" + var0.substring(var23);
  457.                   }
  458.  
  459.                   var4 = Integer.parseInt(var0.substring(var23, var23 + 2));
  460.                   int var10 = var4 + 1900;
  461.  
  462.                   for(int var11 = var8.getYear() + 1900; var11 - var10 > 50; var10 += 100) {
  463.                   }
  464.  
  465.                   var4 = var10 - 1900;
  466.                } catch (Exception var19) {
  467.                   invalidDate = true;
  468.                }
  469.             }
  470.          }
  471.  
  472.          var23 = var1.indexOf("mm");
  473.          if (var23 >= 0) {
  474.             try {
  475.                var2 = Integer.parseInt(var0.substring(var23, var23 + 2));
  476.             } catch (Exception var16) {
  477.                invalidDate = true;
  478.             }
  479.          }
  480.  
  481.          var23 = var1.indexOf("dd");
  482.          if (var23 >= 0) {
  483.             try {
  484.                var3 = Integer.parseInt(var0.substring(var23, var23 + 2));
  485.             } catch (Exception var15) {
  486.                invalidDate = true;
  487.             }
  488.          }
  489.  
  490.          var23 = var1.indexOf("hh");
  491.          if (var23 >= 0) {
  492.             try {
  493.                var5 = Integer.parseInt(var0.substring(var23, var23 + 2));
  494.             } catch (Exception var14) {
  495.                invalidDate = true;
  496.             }
  497.          }
  498.  
  499.          var23 = var1.indexOf("mm:");
  500.          if (var23 >= 0) {
  501.             try {
  502.                var6 = Integer.parseInt(var0.substring(var23, var23 + 2));
  503.             } catch (Exception var13) {
  504.                invalidDate = true;
  505.             }
  506.          }
  507.  
  508.          var23 = var1.indexOf("ss");
  509.          if (var23 >= 0) {
  510.             try {
  511.                var7 = Integer.parseInt(var0.substring(var23, var23 + 2));
  512.             } catch (Exception var12) {
  513.                invalidDate = true;
  514.             }
  515.          }
  516.  
  517.          boolean var30 = false;
  518.          if (var2 > 0 && var2 <= 12 && var4 >= 0 && var3 >= 1 && var3 <= 31) {
  519.             if (var2 != 4 && var2 != 6 && var2 != 9 && var2 != 11) {
  520.                if (var2 == 2) {
  521.                   if (var4 % 4 == 0) {
  522.                      if (var3 <= 29) {
  523.                         var30 = true;
  524.                      }
  525.                   } else if (var3 <= 28) {
  526.                      var30 = true;
  527.                   }
  528.                } else {
  529.                   var30 = true;
  530.                }
  531.             } else if (var3 <= 30) {
  532.                var30 = true;
  533.             }
  534.          }
  535.  
  536.          if (!var30) {
  537.             invalidDate = true;
  538.          }
  539.  
  540.          if (var2 < 1) {
  541.             var2 = 1;
  542.          }
  543.  
  544.          Date var31 = new Date(var4, var2 - 1, var3, var5, var6, var7);
  545.          return var31;
  546.       } else {
  547.          return var8;
  548.       }
  549.    }
  550.  
  551.    static void checkDefaultFormat() {
  552.       if (defaultFormat == null || defaultFormat.equals("")) {
  553.          defaultFormat = JDesignerPro.dateFormat;
  554.          if (defaultFormat == null || defaultFormat.equals("")) {
  555.             defaultFormat = "mm/dd/yy";
  556.          }
  557.       }
  558.  
  559.    }
  560.  
  561.    public void setForeground(Color var1) {
  562.       this.fgColor = var1;
  563.       this.text.setForeground(var1);
  564.       this.createCalendar();
  565.       this.calendar.setForeground(var1);
  566.       this.downButton.setForeground(var1);
  567.    }
  568.  
  569.    public Color getForeground() {
  570.       if (this.fgColor != null) {
  571.          return this.fgColor;
  572.       } else {
  573.          Container var1 = ((Component)this).getParent();
  574.          return var1 != null ? ((Component)var1).getForeground() : null;
  575.       }
  576.    }
  577.  
  578.    public void setEnabled(boolean var1) {
  579.       if (var1) {
  580.          this.text.enable();
  581.          this.downButton.enable();
  582.       } else {
  583.          this.text.disable();
  584.          this.downButton.disable();
  585.       }
  586.    }
  587.  
  588.    public boolean getEnabled() {
  589.       return this.text.isEnabled();
  590.    }
  591.  
  592.    public boolean handleEvent(Event var1) {
  593.       switch (var1.id) {
  594.          case 1001:
  595.             if (var1.target.equals(this.calendar)) {
  596.                this.text.setText(this.calendar.getDateString());
  597.                this.thisDate = this.calendar.getDate();
  598.                this.displayPulldown();
  599.                Event var7 = new Event(this, var1.when, var1.id, var1.x, var1.y, var1.key, var1.modifiers, this.calendar.getDateString());
  600.                super.postEvent(var7);
  601.                return true;
  602.             } else if (var1.target.equals(this.downButton)) {
  603.                if (var1.when > 0L && var1.when - this.lastEventTime < 200L) {
  604.                   this.popupShowing = true;
  605.                }
  606.  
  607.                this.displayPulldown();
  608.                return true;
  609.             } else {
  610.                if (var1.target.equals(this.text)) {
  611.                   format(this.text.getText());
  612.                   if (this.user != null && this.user.mainmsg != null && !unformattedDateValid()) {
  613.                      this.text.requestFocus();
  614.                      this.text.selectAll();
  615.                      this.user.mainmsg.setStatusMsg(JDPLang.get("Message11"), 4);
  616.                      return true;
  617.                   }
  618.  
  619.                   Event var6 = new Event(this, var1.when, var1.id, var1.x, var1.y, var1.key, var1.modifiers, this.text.getText());
  620.                   super.postEvent(var6);
  621.                }
  622.  
  623.                return false;
  624.             }
  625.          case 1002:
  626.          case 1003:
  627.          default:
  628.             return false;
  629.          case 1004:
  630.             if (this.usePopup && this.calendar != null && (var1.target.equals(this.calendar.leftButton) || var1.target.equals(this.calendar.rightButton)) && !this.popup.isVisible()) {
  631.                this.popup.show();
  632.                this.popupShowing = true;
  633.                return true;
  634.             } else if (!this.usePopup && this.calendar != null && (var1.target.equals(this.calendar.leftButton) || var1.target.equals(this.calendar.rightButton)) && !this.popupw.isVisible()) {
  635.                this.popupw.show();
  636.                this.popupShowing = true;
  637.                return true;
  638.             } else if (!var1.target.equals(this.calendar) && !var1.target.equals(this.text)) {
  639.                return false;
  640.             } else {
  641.                Event var5 = new Event(this, var1.when, var1.id, var1.x, var1.y, var1.key, var1.modifiers, (Object)null);
  642.                super.postEvent(var5);
  643.                return true;
  644.             }
  645.          case 1005:
  646.             if (this.usePopup && this.calendar != null && var1.target.equals(this.calendar) && this.popupShowing) {
  647.                this.lastEventTime = (new Date()).getTime();
  648.                if (this.popup.getEventListener().equals(this)) {
  649.                   this.popup.hide();
  650.                }
  651.  
  652.                this.popupShowing = false;
  653.                Event var4 = new Event(this, var1.when, var1.id, var1.x, var1.y, var1.key, var1.modifiers, (Object)null);
  654.                super.handleEvent(var4);
  655.                return true;
  656.             } else if (!this.usePopup && this.calendar != null && var1.target.equals(this.calendar) && this.popupShowing) {
  657.                this.lastEventTime = (new Date()).getTime();
  658.                if (this.popupw.getEventListener().equals(this)) {
  659.                   this.popupw.hide();
  660.                }
  661.  
  662.                this.popupShowing = false;
  663.                Event var3 = new Event(this, var1.when, var1.id, var1.x, var1.y, var1.key, var1.modifiers, (Object)null);
  664.                super.handleEvent(var3);
  665.                return true;
  666.             } else {
  667.                this.lastEventTime = 0L;
  668.                if (!var1.target.equals(this.calendar) && !var1.target.equals(this.text)) {
  669.                   return false;
  670.                } else {
  671.                   Event var2 = new Event(this, var1.when, var1.id, var1.x, var1.y, var1.key, var1.modifiers, (Object)null);
  672.                   super.postEvent(var2);
  673.                   return true;
  674.                }
  675.             }
  676.       }
  677.    }
  678.  
  679.    public void setText(String var1) {
  680.       this.text.setText(var1);
  681.       if (var1.equals("")) {
  682.          this.thisDate = null;
  683.       } else {
  684.          this.setDate(unformat(var1));
  685.       }
  686.    }
  687.  
  688.    public String getText() {
  689.       return this.text.getText();
  690.    }
  691. }
  692.