javauis/lcdui_qt/src/javax/microedition/lcdui/DateField.java
changeset 61 bf7ee68962da
parent 23 98ccebc37403
equal deleted inserted replaced
48:e0d6e9bd3ca7 61:bf7ee68962da
    23 /**
    23 /**
    24  * Implementation of LCDUI <code>DateField</code> class.
    24  * Implementation of LCDUI <code>DateField</code> class.
    25  */
    25  */
    26 public class DateField extends Item
    26 public class DateField extends Item
    27 {
    27 {
    28 
       
    29     /**
    28     /**
    30      * Input mode that displays only date.
    29      * Input mode that displays only date.
    31      */
    30      */
    32     public static final int DATE = 1;
    31     public static final int DATE = 1;
    33 
    32 
    38 
    37 
    39     /**
    38     /**
    40      * Input mode which display both date and time.
    39      * Input mode which display both date and time.
    41      */
    40      */
    42     public static final int DATE_TIME = 3;
    41     public static final int DATE_TIME = 3;
       
    42 
       
    43     /**
       
    44      * If DateField is changed, reasons for Re-layouting.
       
    45      */
       
    46 	static final int UPDATE_DATE = UPDATE_ITEM_MAX << 1;
       
    47 	static final int UPDATE_INPUTMODE = UPDATE_ITEM_MAX << 2;
       
    48 
    43 
    49 
    44     private Date date;
    50     private Date date;
    45 
    51 
    46     private int mode;
    52     private int mode;
    47 
    53 
    98         else if(mode == DATE)
   104         else if(mode == DATE)
    99         {
   105         {
   100             calendar.set(Calendar.HOUR_OF_DAY,0);
   106             calendar.set(Calendar.HOUR_OF_DAY,0);
   101             calendar.set(Calendar.MINUTE,0);
   107             calendar.set(Calendar.MINUTE,0);
   102             calendar.set(Calendar.SECOND,0);
   108             calendar.set(Calendar.SECOND,0);
   103         }
   109             calendar.set(Calendar.MILLISECOND,0);
   104         return calendar.getTime();//date;
   110         }
       
   111         return calendar.getTime();
   105     }
   112     }
   106 
   113 
   107     /**
   114     /**
   108      * Sets the date to this DateField.
   115      * Sets the date to this DateField.
   109      *
   116      *
   110      * @param newDate New date. If null, current date is cleared.
   117      * @param newDate New date. If null, current date is cleared.
   111      */
   118      */
   112     public void setDate(Date newDate)
   119     public void setDate(Date newDate)
   113     {
   120     {
   114         internalSetDate(newDate);
   121         internalSetDate(newDate);
   115         updateParent(UPDATE_CONTENT);
   122         updateParent((newDate == null ? UPDATE_DATE | UPDATE_SIZE_CHANGED : UPDATE_DATE)); 
   116     }
   123     }
   117 
   124 
   118     /**
   125     /**
   119      * Gets input mode of this DateField.
   126      * Gets input mode of this DateField.
   120      *
   127      *
   140                 && (inputMode != DATE_TIME))
   147                 && (inputMode != DATE_TIME))
   141         {
   148         {
   142             throw new IllegalArgumentException(
   149             throw new IllegalArgumentException(
   143                 MsgRepository.DATEFIELD_EXCEPTION_INVALID_MODE);
   150                 MsgRepository.DATEFIELD_EXCEPTION_INVALID_MODE);
   144         }
   151         }
   145         mode = inputMode;
   152 
   146         updateParent(UPDATE_SIZE_CHANGED);
   153 		if(getInputMode() != inputMode)
       
   154 		{
       
   155 	        mode = inputMode;
       
   156 	        updateParent(UPDATE_INPUTMODE | UPDATE_SIZE_CHANGED);
       
   157 		}
   147     }
   158     }
   148 
   159 
   149     /**
   160     /**
   150      * Calculates minimum size of this item.
   161      * Calculates minimum size of this item.
   151      *
   162      *
   205                 {
   216                 {
   206                     date = null;
   217                     date = null;
   207                 }
   218                 }
   208                 else
   219                 else
   209                 {
   220                 {
       
   221                     calendar.set(Calendar.SECOND,0);
       
   222 	                calendar.set(Calendar.MILLISECOND,0);
   210                     date = calendar.getTime();
   223                     date = calendar.getTime();
   211                 }
   224                 }
   212                 break;
   225                 break;
   213             case DATE:
   226             case DATE:
   214                 calendar.set(Calendar.HOUR_OF_DAY, 0);
   227                 calendar.set(Calendar.HOUR_OF_DAY, 0);
   215                 calendar.set(Calendar.MINUTE, 0);
   228                 calendar.set(Calendar.MINUTE, 0);
       
   229                 calendar.set(Calendar.SECOND,0);
       
   230                 calendar.set(Calendar.MILLISECOND,0);
   216                 date = calendar.getTime();
   231                 date = calendar.getTime();
   217                 break;
   232                 break;
   218             case DATE_TIME:
   233             case DATE_TIME:
       
   234                 calendar.set(Calendar.SECOND,0);
       
   235                 calendar.set(Calendar.MILLISECOND,0);
   219                 date = calendar.getTime();
   236                 date = calendar.getTime();
   220                 break;
   237                 break;
   221             default:
   238             default:
   222                 break;
   239                 break;
   223             }
   240             }