1 14 package org.compiere.grid.ed; 15 16 import javax.swing.text.*; 17 import javax.swing.event.*; 18 import java.text.*; 19 import java.util.*; 20 import java.awt.*; 21 22 import org.compiere.util.*; 23 24 32 public final class MDocTime extends PlainDocument 33 { 34 39 public MDocTime(boolean isHour, boolean is12Hour) 40 { 41 super(); 42 m_isHour = isHour; 43 m_is12Hour = is12Hour; 44 } 46 private boolean m_isHour; 47 private boolean m_is12Hour; 48 49 56 public void insertString (int offset, String string, AttributeSet attr) 57 throws BadLocationException 58 { 59 62 if (string != null && string.length() == 1) 65 { 66 if (offset > 2) 68 return; 69 70 if (!Character.isDigit(string.charAt(0))) 72 { 73 Log.trace(Log.l4_Data, "MDocTime.insertString - no Digit", string); 74 return; 75 } 76 77 char[] cc = getText().toCharArray(); 79 cc[offset] = string.charAt(0); 80 String result = new String (cc); 81 82 int i = 0; 83 try 84 { 85 i = Integer.parseInt(result.trim()); 86 } 87 catch (Exception e) 88 { 89 Log.error("MDocTime.insertString" + e); 90 } 91 if (i < 0) 92 { 93 Log.trace(Log.l4_Data, "MDocTime.insertString - invalid value: " + i); 94 return; 95 } 96 if (!m_isHour && i > 59) 98 { 99 Log.trace(Log.l4_Data, "MDocTime.insertString - invalid minute value: " + i); 100 return; 101 } 102 if (m_isHour && m_is12Hour && i > 12) 104 { 105 Log.trace(Log.l4_Data, "MDocTime.insertString - invalid 12 hour value: " + i); 106 return; 107 } 108 if (m_isHour && !m_is12Hour && i > 24) 109 { 110 Log.trace(Log.l4_Data, "MDocTime.insertString - invalid 24 hour value: " + i); 111 return; 112 } 113 } 116 super.insertString(offset, string, attr); 118 } 120 126 public void remove (int offset, int length) 127 throws BadLocationException 128 { 129 131 super.remove(offset, length); 132 } 134 138 private String getText() 139 { 140 StringBuffer sb = new StringBuffer (); 141 try 142 { 143 sb.append(getContent().getString(0, getContent().length()-1)); } 145 catch (Exception e) 146 { 147 } 148 while (sb.length() < 2) 149 sb.insert(0, ' '); 150 return sb.toString(); 151 } 153 } | Popular Tags |