[Squirrel-sql-commits] sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent Data
A Java SQL client for any JDBC compliant database
Brought to you by:
colbell,
gerdwagner
From: Gerd W. <ger...@us...> - 2005-12-21 21:11:24
|
Update of /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6253/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent Modified Files: DataTypeBigDecimal.java DataTypeBlob.java DataTypeClob.java DataTypeDate.java DataTypeOther.java DataTypeString.java DataTypeTime.java DataTypeTimestamp.java DataTypeUnknown.java I18NStrings.properties Log Message: I18n Index: DataTypeDate.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeDate.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** DataTypeDate.java 6 May 2005 20:44:42 -0000 1.15 --- DataTypeDate.java 21 Dec 2005 21:11:15 -0000 1.16 *************** *** 52,55 **** --- 52,57 ---- import net.sourceforge.squirrel_sql.fw.gui.OkJPanel; import net.sourceforge.squirrel_sql.fw.gui.RightLabel; + import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; + import net.sourceforge.squirrel_sql.fw.util.StringManager; /** *************** *** 83,86 **** --- 85,92 ---- implements IDataTypeComponent { + private static final StringManager s_stringMgr = + StringManagerFactory.getStringManager(DataTypeDate.class); + + /* the whole column definition */ private ColumnDisplayDefinition _colDef; *************** *** 91,98 **** /* table of which we are part (needed for creating popup dialog) */ private JTable _table; ! /* The JTextComponent that is being used for editing */ private IRestorableTextComponent _textComponent; ! /* The CellRenderer used for this data type */ //??? For now, use the same renderer as everyone else. --- 97,104 ---- /* table of which we are part (needed for creating popup dialog) */ private JTable _table; ! /* The JTextComponent that is being used for editing */ private IRestorableTextComponent _textComponent; ! /* The CellRenderer used for this data type */ //??? For now, use the same renderer as everyone else. *************** *** 119,138 **** // flag for whether we have already loaded the properties or not private static boolean propertiesAlreadyLoaded = false; ! // flag for whether to use the default Java format (true) // or the Locale-dependent format (false) private static boolean useJavaDefaultFormat = true; ! // which locale-dependent format to use; short, medium, long, or full private static int localeFormat = DEFAULT_LOCALE_FORMAT; ! // Whether to force user to enter dates in exact format or use heuristics to guess it private static boolean lenient = true; ! // The DateFormat object to use for all locale-dependent formatting. // This is reset each time the user changes the previous settings. private static DateFormat dateFormat = DateFormat.getDateInstance(localeFormat); ! ! /** --- 125,144 ---- // flag for whether we have already loaded the properties or not private static boolean propertiesAlreadyLoaded = false; ! // flag for whether to use the default Java format (true) // or the Locale-dependent format (false) private static boolean useJavaDefaultFormat = true; ! // which locale-dependent format to use; short, medium, long, or full private static int localeFormat = DEFAULT_LOCALE_FORMAT; ! // Whether to force user to enter dates in exact format or use heuristics to guess it private static boolean lenient = true; ! // The DateFormat object to use for all locale-dependent formatting. // This is reset each time the user changes the previous settings. private static DateFormat dateFormat = DateFormat.getDateInstance(localeFormat); ! ! /** *************** *** 143,150 **** _colDef = colDef; _isNullable = colDef.isNullable(); ! loadProperties(); } ! /** Internal function to get the user-settable properties from the DTProperties, * if they exist, and to ensure that defaults are set if the properties have --- 149,156 ---- _colDef = colDef; _isNullable = colDef.isNullable(); ! loadProperties(); } ! /** Internal function to get the user-settable properties from the DTProperties, * if they exist, and to ensure that defaults are set if the properties have *************** *** 157,161 **** */ private static void loadProperties() { ! //set the property values // Note: this may have already been done by another instance of --- 163,167 ---- */ private static void loadProperties() { ! //set the property values // Note: this may have already been done by another instance of *************** *** 168,172 **** if (useJavaDefaultFormatString != null && useJavaDefaultFormatString.equals("false")) useJavaDefaultFormat =false; ! // get which locale-dependent format to use localeFormat =DateFormat.SHORT; // set to use the Java default --- 174,178 ---- if (useJavaDefaultFormatString != null && useJavaDefaultFormatString.equals("false")) useJavaDefaultFormat =false; ! // get which locale-dependent format to use localeFormat =DateFormat.SHORT; // set to use the Java default *************** *** 175,179 **** if (localeFormatString != null) localeFormat = Integer.parseInt(localeFormatString); ! // use lenient input or force user to enter exact format lenient = true; // set to allow less stringent input --- 181,185 ---- if (localeFormatString != null) localeFormat = Integer.parseInt(localeFormatString); ! // use lenient input or force user to enter exact format lenient = true; // set to allow less stringent input *************** *** 184,188 **** } } ! /** * Return the name of the java class used to hold this data type. --- 190,194 ---- } } ! /** * Return the name of the java class used to hold this data type. *************** *** 203,207 **** * First we have the methods for in-cell and Text-table operations */ ! /** * Render a value into text for this DataType. --- 209,213 ---- * First we have the methods for in-cell and Text-table operations */ ! /** * Render a value into text for this DataType. *************** *** 211,215 **** if (useJavaDefaultFormat == true || value == null) return (String)_renderer.renderObject(value); ! // use a date formatter if (value == null) --- 217,221 ---- if (useJavaDefaultFormat == true || value == null) return (String)_renderer.renderObject(value); ! // use a date formatter if (value == null) *************** *** 217,226 **** else return (String)_renderer.renderObject(dateFormat.format(value)); } ! /** * This Data Type can be edited in a table cell. */ public boolean isEditableInCell(Object originalValue) { ! return true; } --- 223,232 ---- else return (String)_renderer.renderObject(dateFormat.format(value)); } ! /** * This Data Type can be edited in a table cell. */ public boolean isEditableInCell(Object originalValue) { ! return true; } *************** *** 237,241 **** return false; } ! /** * Return a JTextField usable in a CellEditor. --- 243,247 ---- return false; } ! /** * Return a JTextField usable in a CellEditor. *************** *** 243,250 **** public JTextField getJTextField() { _textComponent = new RestorableJTextField(); ! // special handling of operations while editing this data type ((RestorableJTextField)_textComponent).addKeyListener(new KeyTextHandler()); ! // // handle mouse events for double-click creation of popup dialog. --- 249,256 ---- public JTextField getJTextField() { _textComponent = new RestorableJTextField(); ! // special handling of operations while editing this data type ((RestorableJTextField)_textComponent).addKeyListener(new KeyTextHandler()); ! // // handle mouse events for double-click creation of popup dialog. *************** *** 318,327 **** return false; } ! /* ! * Now the functions for the Popup-related operations. ! */ ! /** * Returns true if data type may be edited in the popup, --- 324,333 ---- return false; } ! /* ! * Now the functions for the Popup-related operations. ! */ ! /** * Returns true if data type may be edited in the popup, *************** *** 338,349 **** public JTextArea getJTextArea(Object value) { _textComponent = new RestorableJTextArea(); ! // value is a simple string representation of the data, // the same one used in Text and in-cell operations. ((RestorableJTextArea)_textComponent).setText(renderObject(value)); ! // special handling of operations while editing this data type ((RestorableJTextArea)_textComponent).addKeyListener(new KeyTextHandler()); ! return (RestorableJTextArea)_textComponent; } --- 344,355 ---- public JTextArea getJTextArea(Object value) { _textComponent = new RestorableJTextArea(); ! // value is a simple string representation of the data, // the same one used in Text and in-cell operations. ((RestorableJTextArea)_textComponent).setText(renderObject(value)); ! // special handling of operations while editing this data type ((RestorableJTextArea)_textComponent).addKeyListener(new KeyTextHandler()); ! return (RestorableJTextArea)_textComponent; } *************** *** 358,371 **** /* * The following is used in both cell and popup operations. - */ - - /* - * Internal class for handling key events during editing - * of both JTextField and JTextArea. */ private class KeyTextHandler extends KeyAdapter { ! public void keyTyped(KeyEvent e) { char c = e.getKeyChar(); ! // as a coding convenience, create a reference to the text component // that is typecast to JTextComponent. this is not essential, as we --- 364,377 ---- /* * The following is used in both cell and popup operations. */ + + /* + * Internal class for handling key events during editing + * of both JTextField and JTextArea. + */ private class KeyTextHandler extends KeyAdapter { ! public void keyTyped(KeyEvent e) { char c = e.getKeyChar(); ! // as a coding convenience, create a reference to the text component // that is typecast to JTextComponent. this is not essential, as we *************** *** 373,378 **** JTextComponent _theComponent = (JTextComponent)DataTypeDate.this._textComponent; String text = _theComponent.getText(); ! ! // tabs and newlines get put into the text before this check, // so remove them --- 379,384 ---- JTextComponent _theComponent = (JTextComponent)DataTypeDate.this._textComponent; String text = _theComponent.getText(); ! ! // tabs and newlines get put into the text before this check, // so remove them *************** *** 444,453 **** ! ! /* ! * DataBase-related functions ! */ ! /** * On input from the DB, read the data from the ResultSet into the appropriate --- 450,459 ---- ! ! /* ! * DataBase-related functions ! */ ! /** * On input from the DB, read the data from the ResultSet into the appropriate *************** *** 456,460 **** public Object readResultSet(ResultSet rs, int index, boolean limitDataRead) throws java.sql.SQLException { ! Date data = rs.getDate(index); if (rs.wasNull()) --- 462,466 ---- public Object readResultSet(ResultSet rs, int index, boolean limitDataRead) throws java.sql.SQLException { ! Date data = rs.getDate(index); if (rs.wasNull()) *************** *** 482,487 **** return _colDef.getLabel() + "={d '" + value.toString() +"'}"; } ! ! /** * When updating the database, insert the appropriate datatype into the --- 488,493 ---- return _colDef.getLabel() + "={d '" + value.toString() +"'}"; } ! ! /** * When updating the database, insert the appropriate datatype into the *************** *** 497,501 **** } } ! /** * Get a default value for the table used to input data for a new row --- 503,507 ---- } } ! /** * Get a default value for the table used to input data for a new row *************** *** 507,511 **** StringBuffer mbuf = new StringBuffer(); Object newObject = validateAndConvert(dbDefaultValue, null, mbuf); ! // if there was a problem with converting, then just fall through // and continue as if there was no default given in the DB. --- 513,517 ---- StringBuffer mbuf = new StringBuffer(); Object newObject = validateAndConvert(dbDefaultValue, null, mbuf); ! // if there was a problem with converting, then just fall through // and continue as if there was no default given in the DB. *************** *** 514,532 **** return newObject; } ! // no default in DB. If nullable, use null. if (_isNullable) return null; ! // field is not nullable, so create a reasonable default value return new Date( new java.util.Date().getTime()); } ! ! /* ! * File IO related functions ! */ ! ! /** * Say whether or not object can be exported to and imported from --- 520,538 ---- return newObject; } ! // no default in DB. If nullable, use null. if (_isNullable) return null; ! // field is not nullable, so create a reasonable default value return new Date( new java.util.Date().getTime()); } ! ! /* ! * File IO related functions ! */ ! ! /** * Say whether or not object can be exported to and imported from *************** *** 535,541 **** */ public boolean canDoFileIO() { ! return true; } ! /** * Read a file and construct a valid object from its contents. --- 541,547 ---- */ public boolean canDoFileIO() { ! return true; } ! /** * Read a file and construct a valid object from its contents. *************** *** 554,599 **** */ public String importObject(FileInputStream inStream) ! throws IOException { ! ! InputStreamReader inReader = new InputStreamReader(inStream); ! ! int fileSize = inStream.available(); ! ! char charBuf[] = new char[fileSize]; ! ! int count = inReader.read(charBuf, 0, fileSize); ! ! if (count != fileSize) ! throw new IOException( ! "Could read only "+ count + ! " chars from a total file size of " + fileSize + ! ". Import failed."); ! ! // convert file text into a string ! // Special case: some systems tack a newline at the end of ! // the text read. Assume that if last char is a newline that ! // we want everything else in the line. ! String fileText; ! if (charBuf[count-1] == KeyEvent.VK_ENTER) ! fileText = new String(charBuf, 0, count-1); ! else fileText = new String(charBuf); ! ! // test that the string is valid by converting it into an ! // object of this data type ! StringBuffer messageBuffer = new StringBuffer(); ! validateAndConvertInPopup(fileText, null, messageBuffer); ! if (messageBuffer.length() > 0) { ! // convert number conversion issue into IO issue for consistancy ! throw new IOException( ! "Text does not represent data of type "+getClassName()+ ! ". Text was:\n"+fileText); ! } ! ! // return the text from the file since it does ! // represent a valid data value ! return fileText; } ! /** * Construct an appropriate external representation of the object --- 560,605 ---- */ public String importObject(FileInputStream inStream) ! throws IOException { ! ! InputStreamReader inReader = new InputStreamReader(inStream); ! ! int fileSize = inStream.available(); ! ! char charBuf[] = new char[fileSize]; ! ! int count = inReader.read(charBuf, 0, fileSize); ! ! if (count != fileSize) ! throw new IOException( ! "Could read only "+ count + ! " chars from a total file size of " + fileSize + ! ". Import failed."); ! ! // convert file text into a string ! // Special case: some systems tack a newline at the end of ! // the text read. Assume that if last char is a newline that ! // we want everything else in the line. ! String fileText; ! if (charBuf[count-1] == KeyEvent.VK_ENTER) ! fileText = new String(charBuf, 0, count-1); ! else fileText = new String(charBuf); ! ! // test that the string is valid by converting it into an ! // object of this data type ! StringBuffer messageBuffer = new StringBuffer(); ! validateAndConvertInPopup(fileText, null, messageBuffer); ! if (messageBuffer.length() > 0) { ! // convert number conversion issue into IO issue for consistancy ! throw new IOException( ! "Text does not represent data of type "+getClassName()+ ! ". Text was:\n"+fileText); ! } ! ! // return the text from the file since it does ! // represent a valid data value ! return fileText; } ! /** * Construct an appropriate external representation of the object *************** *** 616,642 **** */ public void exportObject(FileOutputStream outStream, String text) ! throws IOException { ! ! OutputStreamWriter outWriter = new OutputStreamWriter(outStream); ! ! // check that the text is a valid representation ! StringBuffer messageBuffer = new StringBuffer(); ! validateAndConvertInPopup(text, null, messageBuffer); ! if (messageBuffer.length() > 0) { ! // there was an error in the conversion ! throw new IOException(new String(messageBuffer)); ! } ! ! // just send the text to the output file outWriter.write(text); outWriter.flush(); outWriter.close(); } ! /* ! * Property change control panel ! */ ! /** * Generate a JPanel containing controls that allow the user --- 622,648 ---- */ public void exportObject(FileOutputStream outStream, String text) ! throws IOException { ! ! OutputStreamWriter outWriter = new OutputStreamWriter(outStream); ! ! // check that the text is a valid representation ! StringBuffer messageBuffer = new StringBuffer(); ! validateAndConvertInPopup(text, null, messageBuffer); ! if (messageBuffer.length() > 0) { ! // there was an error in the conversion ! throw new IOException(new String(messageBuffer)); ! } ! ! // just send the text to the output file outWriter.write(text); outWriter.flush(); outWriter.close(); } ! /* ! * Property change control panel ! */ ! /** * Generate a JPanel containing controls that allow the user *************** *** 656,676 **** */ public static OkJPanel getControlPanel() { ! /* ! * If you add this method to one of the standard DataTypes in the ! * fw/datasetviewer/cellcomponent directory, you must also add the name ! * of that DataType class to the list in CellComponentFactory, method ! * getControlPanels, variable named initialClassNameList. ! * If the class is being registered with the factory using registerDataType, ! * then you should not include the class name in the list (it will be found ! * automatically), but if the DataType is part of the case statement in the ! * factory method getDataTypeObject, then it does need to be explicitly listed ! * in the getControlPanels method also. ! */ ! // if this panel is called before any instances of the class have been // created, we need to load the properties from the DTProperties. loadProperties(); ! return new BlobOkJPanel(); } --- 662,682 ---- */ public static OkJPanel getControlPanel() { ! /* ! * If you add this method to one of the standard DataTypes in the ! * fw/datasetviewer/cellcomponent directory, you must also add the name ! * of that DataType class to the list in CellComponentFactory, method ! * getControlPanels, variable named initialClassNameList. ! * If the class is being registered with the factory using registerDataType, ! * then you should not include the class name in the list (it will be found ! * automatically), but if the DataType is part of the case statement in the ! * factory method getDataTypeObject, then it does need to be explicitly listed ! * in the getControlPanels method also. ! */ ! // if this panel is called before any instances of the class have been // created, we need to load the properties from the DTProperties. loadProperties(); ! return new BlobOkJPanel(); } *************** *** 681,694 **** public DateFormatTypeCombo() { ! addItem("Full (" + ! DateFormat.getDateInstance(DateFormat.FULL).format(new java.util.Date()) + ")" ); ! addItem("Long (" + ! DateFormat.getDateInstance(DateFormat.LONG).format(new java.util.Date()) + ")" ); ! addItem("Medium (" + ! DateFormat.getDateInstance(DateFormat.MEDIUM).format(new java.util.Date()) + ")" ); ! addItem("Short (" + ! DateFormat.getDateInstance(DateFormat.SHORT).format(new java.util.Date()) + ")" ); } ! public void setSelectedIndex(int option) { if (option == DateFormat.SHORT) --- 687,700 ---- public DateFormatTypeCombo() { ! // i18n[dataTypeDate.full=Full ({0})] ! addItem(s_stringMgr.getString("dataTypeDate.full", DateFormat.getDateInstance(DateFormat.FULL).format(new java.util.Date()))); ! // i18n[dataTypeDate.long=Long ({0})] ! addItem(s_stringMgr.getString("dataTypeDate.long", DateFormat.getDateInstance(DateFormat.LONG).format(new java.util.Date()))); ! // i18n[dataTypeDate.medium=Medium ({0})] ! addItem(s_stringMgr.getString("dataTypeDate.medium", DateFormat.getDateInstance(DateFormat.MEDIUM).format(new java.util.Date()))); ! // i18n[dataTypeDate.short=Short ({0})] ! addItem(s_stringMgr.getString("dataTypeDate.short", DateFormat.getDateInstance(DateFormat.SHORT).format(new java.util.Date()))); } ! public void setSelectedIndex(int option) { if (option == DateFormat.SHORT) *************** *** 700,704 **** else super.setSelectedIndex(0); } ! public int getValue() { if (getSelectedIndex() == 3) --- 706,710 ---- else super.setSelectedIndex(0); } ! public int getValue() { if (getSelectedIndex() == 3) *************** *** 710,823 **** else return DateFormat.FULL; } ! } ! ! /** * Inner class that extends OkJPanel so that we can call the ok() * method to save the data when the user is happy with it. */ ! private static class BlobOkJPanel extends OkJPanel { ! /* * GUI components - need to be here because they need to be * accessible from the event handlers to alter each other's state. */ ! // check box for whether to use Java Default or a Locale-dependent format ! private JCheckBox useJavaDefaultFormatChk = new JCheckBox( ! "Use default format (" + ! new java.sql.Date(new java.util.Date().getTime()).toString() + ")"); ! ! // label for the date format combo, used to enable/disable text ! private RightLabel dateFormatTypeDropLabel = new RightLabel(" or locale-dependent format:"); ! ! // Combo box for read-all/read-part of blob ! private DateFormatTypeCombo dateFormatTypeDrop = new DateFormatTypeCombo(); ! // checkbox for whether to interpret input leniently or not ! private JCheckBox lenientChk = new JCheckBox("allow inexact format on input"); ! public BlobOkJPanel() { ! ! /* set up the controls */ ! // checkbox for Java default/non-default format ! useJavaDefaultFormatChk.setSelected(useJavaDefaultFormat); ! useJavaDefaultFormatChk.addChangeListener(new ChangeListener(){ ! public void stateChanged(ChangeEvent e) { ! dateFormatTypeDrop.setEnabled( ! useJavaDefaultFormatChk.isSelected()); ! dateFormatTypeDropLabel.setEnabled( ! useJavaDefaultFormatChk.isSelected()); ! lenientChk.setEnabled( ! useJavaDefaultFormatChk.isSelected()); ! } ! }); ! ! // Combo box for read-all/read-part of blob ! dateFormatTypeDrop = new DateFormatTypeCombo(); ! dateFormatTypeDrop.setSelectedIndex( localeFormat ); ! // lenient checkbox ! lenientChk.setSelected(lenient); ! ! // handle cross-connection between fields ! dateFormatTypeDrop.setEnabled( ! useJavaDefaultFormatChk.isSelected()); ! dateFormatTypeDropLabel.setEnabled( ! useJavaDefaultFormatChk.isSelected()); ! lenientChk.setEnabled( ! useJavaDefaultFormatChk.isSelected()); ! /* ! * Create the panel and add the GUI items to it ! */ ! ! setLayout(new GridBagLayout()); ! ! setBorder(BorderFactory.createTitledBorder("Date (SQL type 91)")); ! final GridBagConstraints gbc = new GridBagConstraints(); ! gbc.fill = GridBagConstraints.HORIZONTAL; ! gbc.insets = new Insets(4, 4, 4, 4); ! gbc.anchor = GridBagConstraints.WEST; ! gbc.gridx = 0; ! gbc.gridy = 0; ! gbc.gridwidth = GridBagConstraints.REMAINDER; ! add(useJavaDefaultFormatChk, gbc); ! gbc.gridwidth = 1; ! gbc.gridx = 0; ! ++gbc.gridy; ! add(dateFormatTypeDropLabel, gbc); ! ++gbc.gridx; ! add(dateFormatTypeDrop, gbc); ! gbc.gridx = 0; ! ++gbc.gridy; ! add(lenientChk, gbc); ! } // end of constructor for inner class ! ! ! /** * User has clicked OK in the surrounding JPanel, * so save the current state of all variables */ ! public void ok() { ! // get the values from the controls and set them in the static properties ! useJavaDefaultFormat = useJavaDefaultFormatChk.isSelected(); ! DTProperties.put( ! thisClassName, ! "useJavaDefaultFormat", new Boolean(useJavaDefaultFormat).toString()); ! ! ! localeFormat = dateFormatTypeDrop.getValue(); ! dateFormat = DateFormat.getDateInstance(localeFormat); // lenient is set next ! DTProperties.put( ! thisClassName, ! "localeFormat", Integer.toString(localeFormat)); ! ! lenient = lenientChk.isSelected(); ! dateFormat.setLenient(lenient); ! DTProperties.put( ! thisClassName, ! "lenient", new Boolean(lenient).toString()); ! } ! } // end of inner class } --- 716,836 ---- else return DateFormat.FULL; } ! } ! ! /** * Inner class that extends OkJPanel so that we can call the ok() * method to save the data when the user is happy with it. */ ! private static class BlobOkJPanel extends OkJPanel ! { ! /* * GUI components - need to be here because they need to be * accessible from the event handlers to alter each other's state. */ ! // check box for whether to use Java Default or a Locale-dependent format ! private JCheckBox useJavaDefaultFormatChk = new JCheckBox( ! // i18n[dataTypeDate.useDefaultFormat=Use default format ({0})] ! s_stringMgr.getString("dataTypeDate.useDefaultFormat", new java.sql.Date(new java.util.Date().getTime()).toString())); ! // label for the date format combo, used to enable/disable text ! // i18n[dataTypeDate.orlocaleIndependent= or locale-dependent format:] ! private RightLabel dateFormatTypeDropLabel = new RightLabel(s_stringMgr.getString("dataTypeDate.orlocaleIndependent")); ! // Combo box for read-all/read-part of blob ! private DateFormatTypeCombo dateFormatTypeDrop = new DateFormatTypeCombo(); ! // checkbox for whether to interpret input leniently or not ! // i18n[dataTypeDate.allowInexact=allow inexact format on input] ! private JCheckBox lenientChk = new JCheckBox(s_stringMgr.getString("dataTypeDate.allowInexact")); ! public BlobOkJPanel() ! { ! /* set up the controls */ ! // checkbox for Java default/non-default format ! useJavaDefaultFormatChk.setSelected(useJavaDefaultFormat); ! useJavaDefaultFormatChk.addChangeListener(new ChangeListener() ! { ! public void stateChanged(ChangeEvent e) ! { ! dateFormatTypeDrop.setEnabled(! useJavaDefaultFormatChk.isSelected()); ! dateFormatTypeDropLabel.setEnabled(! useJavaDefaultFormatChk.isSelected()); ! lenientChk.setEnabled(! useJavaDefaultFormatChk.isSelected()); ! } ! }); ! // Combo box for read-all/read-part of blob ! dateFormatTypeDrop = new DateFormatTypeCombo(); ! dateFormatTypeDrop.setSelectedIndex(localeFormat); ! // lenient checkbox ! lenientChk.setSelected(lenient); ! // handle cross-connection between fields ! dateFormatTypeDrop.setEnabled(! useJavaDefaultFormatChk.isSelected()); ! dateFormatTypeDropLabel.setEnabled(! useJavaDefaultFormatChk.isSelected()); ! lenientChk.setEnabled(! useJavaDefaultFormatChk.isSelected()); ! /* ! * Create the panel and add the GUI items to it ! */ ! setLayout(new GridBagLayout()); ! // i18n[dataTypeDate.typeDate=Date (SQL type 91)] ! setBorder(BorderFactory.createTitledBorder(s_stringMgr.getString("dataTypeDate.typeDate"))); ! final GridBagConstraints gbc = new GridBagConstraints(); ! gbc.fill = GridBagConstraints.HORIZONTAL; ! gbc.insets = new Insets(4, 4, 4, 4); ! gbc.anchor = GridBagConstraints.WEST; ! ! gbc.gridx = 0; ! gbc.gridy = 0; ! ! gbc.gridwidth = GridBagConstraints.REMAINDER; ! add(useJavaDefaultFormatChk, gbc); ! ! gbc.gridwidth = 1; ! gbc.gridx = 0; ! ++gbc.gridy; ! add(dateFormatTypeDropLabel, gbc); ! ! ++gbc.gridx; ! add(dateFormatTypeDrop, gbc); ! ! gbc.gridx = 0; ! ++gbc.gridy; ! add(lenientChk, gbc); ! ! } // end of constructor for inner class ! ! ! /** * User has clicked OK in the surrounding JPanel, * so save the current state of all variables */ ! public void ok() ! { ! // get the values from the controls and set them in the static properties ! useJavaDefaultFormat = useJavaDefaultFormatChk.isSelected(); ! DTProperties.put( ! thisClassName, ! "useJavaDefaultFormat", new Boolean(useJavaDefaultFormat).toString()); ! ! ! localeFormat = dateFormatTypeDrop.getValue(); ! dateFormat = DateFormat.getDateInstance(localeFormat); // lenient is set next ! DTProperties.put( ! thisClassName, ! "localeFormat", Integer.toString(localeFormat)); ! ! lenient = lenientChk.isSelected(); ! dateFormat.setLenient(lenient); ! DTProperties.put( ! thisClassName, ! "lenient", new Boolean(lenient).toString()); ! } ! } // end of inner class } Index: I18NStrings.properties =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/I18NStrings.properties,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** I18NStrings.properties 14 Jul 2004 12:31:13 -0000 1.3 --- I18NStrings.properties 21 Dec 2005 21:11:15 -0000 1.4 *************** *** 7,8 **** --- 7,57 ---- DataTypeUnknown.unknown=<Unknown ({0})> + + # + #Missing/changed properties generated by I18n Plugin on Wed Dec 21 21:35:30 CET 2005 + # + dataTypeBigDecimal.newlinesAsbackslashN=Show newlines as \\n within cells + dataTypeBigDecimal.precisionEceeded=Precision Exceeded: Number of digits in number ({0})\nis greater than allowed in column ({1}) + dataTypeBigDecimal.read2=Read + dataTypeBigDecimal.readContentsOnFirstLoad=Read contents when table is first loaded; + dataTypeBigDecimal.scaleEceeded=Scale Exceeded: Number of digits to right of decimal place ({0})\nis greater than allowed in column ({1}). + dataTypeBlob.blobType=BLOB (SQL type 2004): + dataTypeBlob.readOnFirstLoad=Read contents when table is first loaded: + dataTypeClob.typeClob=CLOB (SQL type 2005) + dataTypeDate.allowInexact=allow inexact format on input + dataTypeDate.full=Full ({0}) + dataTypeDate.long=Long ({0}) + dataTypeDate.medium=Medium ({0}) + dataTypeDate.orlocaleIndependent= or locale-dependent format: + dataTypeDate.short=Short ({0}) + dataTypeDate.typeDate=Date (SQL type 91) + dataTypeDate.useDefaultFormat=Use default format ({0}) + dataTypeOther.readContentsWhenLoaded=Read contents when table is first loaded and display as string + dataTypeOther.sqlOtherType=SQL Other (SQL type 1111) + dataTypeString.allowLongVarchar=Allow LONGVARCHAR type to be used in WHERE clause + dataTypeString.limitReadOnly=Limit read only on columns with these names: + dataTypeString.limitSize=Limit size of strings read during initial table load to max of: + dataTypeString.newlines=Show newlines as \\n within cells + dataTypeString.typeChar=CHAR, VARCHAR, LONGVARCHAR (SQL types 1, 12, -1) + dataTypeTime.full=Full ({0}) + dataTypeTime.inexact=allow inexact format on input + dataTypeTime.long=Long ({0}) + dataTypeTime.medium=Medium ({0}) + dataTypeTime.short=Short ({0}) + dataTypeTime.typeTime=Time (SQL type 92) + dataTypeTime.useDefaultFormat=Use default format ({0}) + dataTypeTimestamp.full=Full ({0}) + dataTypeTimestamp.long=Long ({0}) + dataTypeTimestamp.medium=Medium ({0}) + dataTypeTimestamp.short=Short ({0}) + dataTypeUnknown.readContentsOnLoad=Read contents when table is first loaded and display as string + dataTypeUnknown.unknownTypes=Unknown DataTypes (non-standard SQL type codes) + dateTypeTimestamp.allowInexact=allow inexact format on input + dateTypeTimestamp.defaultFormat=Use default format ({0}) + dateTypeTimestamp.generateWhereClause=For internally generated WHERE clauses: + dateTypeTimestamp.jdbcEscape=Use JDBC standard escape format ( {ts '{0}'} ) + dateTypeTimestamp.orLocaleDependend= or locale-dependent format: + dateTypeTimestamp.stringVersion=Use String version of Timestamp ( {ts '{0}'} ) + dateTypeTimestamp.timestampInWhere=Do not use Timstamp in WHERE clause + dateTypeTimestamp.typeTimestamp=Timestamp (SQL type 93) + Index: DataTypeTime.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeTime.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** DataTypeTime.java 6 May 2005 20:44:42 -0000 1.14 --- DataTypeTime.java 21 Dec 2005 21:11:15 -0000 1.15 *************** *** 50,53 **** --- 50,56 ---- import net.sourceforge.squirrel_sql.fw.gui.OkJPanel; import net.sourceforge.squirrel_sql.fw.gui.RightLabel; + import net.sourceforge.squirrel_sql.fw.util.StringManager; + import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; + /** * @author gwg *************** *** 80,83 **** --- 83,90 ---- implements IDataTypeComponent { + + private static final StringManager s_stringMgr = + StringManagerFactory.getStringManager(DataTypeTime.class); + /* the whole column definition */ private ColumnDisplayDefinition _colDef; *************** *** 374,378 **** */ private class KeyTextHandler extends KeyAdapter { ! public void keyTyped(KeyEvent e) { char c = e.getKeyChar(); --- 381,385 ---- */ private class KeyTextHandler extends KeyAdapter { ! public void keyTyped(KeyEvent e) { char c = e.getKeyChar(); *************** *** 541,545 **** */ public boolean canDoFileIO() { ! return true; } --- 548,552 ---- */ public boolean canDoFileIO() { ! return true; } *************** *** 560,602 **** */ public String importObject(FileInputStream inStream) ! throws IOException { ! InputStreamReader inReader = new InputStreamReader(inStream); ! int fileSize = inStream.available(); ! char charBuf[] = new char[fileSize]; ! int count = inReader.read(charBuf, 0, fileSize); ! if (count != fileSize) ! throw new IOException( ! "Could read only "+ count + ! " chars from a total file size of " + fileSize + ! ". Import failed."); ! // convert file text into a string ! // Special case: some systems tack a newline at the end of ! // the text read. Assume that if last char is a newline that ! // we want everything else in the line. ! String fileText; ! if (charBuf[count-1] == KeyEvent.VK_ENTER) ! fileText = new String(charBuf, 0, count-1); ! else fileText = new String(charBuf); ! // test that the string is valid by converting it into an ! // object of this data type ! StringBuffer messageBuffer = new StringBuffer(); ! validateAndConvertInPopup(fileText, null, messageBuffer); ! if (messageBuffer.length() > 0) { ! // convert number conversion issue into IO issue for consistancy ! throw new IOException( ! "Text does not represent data of type "+getClassName()+ ! ". Text was:\n"+fileText); ! } ! // return the text from the file since it does ! // represent a valid data value ! return fileText; } --- 567,609 ---- */ public String importObject(FileInputStream inStream) ! throws IOException { ! InputStreamReader inReader = new InputStreamReader(inStream); ! int fileSize = inStream.available(); ! char charBuf[] = new char[fileSize]; ! int count = inReader.read(charBuf, 0, fileSize); ! if (count != fileSize) ! throw new IOException( ! "Could read only "+ count + ! " chars from a total file size of " + fileSize + ! ". Import failed."); ! // convert file text into a string ! // Special case: some systems tack a newline at the end of ! // the text read. Assume that if last char is a newline that ! // we want everything else in the line. ! String fileText; ! if (charBuf[count-1] == KeyEvent.VK_ENTER) ! fileText = new String(charBuf, 0, count-1); ! else fileText = new String(charBuf); ! // test that the string is valid by converting it into an ! // object of this data type ! StringBuffer messageBuffer = new StringBuffer(); ! validateAndConvertInPopup(fileText, null, messageBuffer); ! if (messageBuffer.length() > 0) { ! // convert number conversion issue into IO issue for consistancy ! throw new IOException( ! "Text does not represent data of type "+getClassName()+ ! ". Text was:\n"+fileText); ! } ! // return the text from the file since it does ! // represent a valid data value ! return fileText; } *************** *** 622,638 **** */ public void exportObject(FileOutputStream outStream, String text) ! throws IOException { ! OutputStreamWriter outWriter = new OutputStreamWriter(outStream); ! // check that the text is a valid representation ! StringBuffer messageBuffer = new StringBuffer(); ! validateAndConvertInPopup(text, null, messageBuffer); ! if (messageBuffer.length() > 0) { ! // there was an error in the conversion ! throw new IOException(new String(messageBuffer)); ! } ! // just send the text to the output file outWriter.write(text); outWriter.flush(); --- 629,645 ---- */ public void exportObject(FileOutputStream outStream, String text) ! throws IOException { ! OutputStreamWriter outWriter = new OutputStreamWriter(outStream); ! // check that the text is a valid representation ! StringBuffer messageBuffer = new StringBuffer(); ! validateAndConvertInPopup(text, null, messageBuffer); ! if (messageBuffer.length() > 0) { ! // there was an error in the conversion ! throw new IOException(new String(messageBuffer)); ! } ! // just send the text to the output file outWriter.write(text); outWriter.flush(); *************** *** 687,698 **** public DateFormatTypeCombo() { ! addItem("Full (" + ! DateFormat.getTimeInstance(DateFormat.FULL).format(new java.util.Date()) + ")" ); ! addItem("Long (" + ! DateFormat.getTimeInstance(DateFormat.LONG).format(new java.util.Date()) + ")" ); ! addItem("Medium (" + ! DateFormat.getTimeInstance(DateFormat.MEDIUM).format(new java.util.Date()) + ")" ); ! addItem("Short (" + ! DateFormat.getTimeInstance(DateFormat.SHORT).format(new java.util.Date()) + ")" ); } --- 694,705 ---- public DateFormatTypeCombo() { ! // i18n[dataTypeTime.full=Full ({0})] ! addItem(s_stringMgr.getString("dataTypeTime.full", DateFormat.getTimeInstance(DateFormat.FULL).format(new java.util.Date()))); ! // i18n[dataTypeTime.long=Long ({0})] ! addItem(s_stringMgr.getString("dataTypeTime.long", DateFormat.getTimeInstance(DateFormat.LONG).format(new java.util.Date()))); ! // i18n[dataTypeTime.medium=Medium ({0})] ! addItem(s_stringMgr.getString("dataTypeTime.medium", DateFormat.getTimeInstance(DateFormat.MEDIUM).format(new java.util.Date()))); ! // i18n[dataTypeTime.short=Short ({0})] ! addItem(s_stringMgr.getString("dataTypeTime.short", DateFormat.getTimeInstance(DateFormat.SHORT).format(new java.util.Date()))); } *************** *** 723,828 **** * method to save the data when the user is happy with it. */ ! private static class BlobOkJPanel extends OkJPanel { ! /* * GUI components - need to be here because they need to be * accessible from the event handlers to alter each other's state. */ ! // check box for whether to use Java Default or a Locale-dependent format ! private JCheckBox useJavaDefaultFormatChk = new JCheckBox( ! "Use default format (" + ! new Time(new java.util.Date().getTime()).toString() + ")"); - // label for the date format combo, used to enable/disable text - private RightLabel dateFormatTypeDropLabel = new RightLabel(" or locale-dependent format:"); ! // Combo box for read-all/read-part of blob ! private DateFormatTypeCombo dateFormatTypeDrop = new DateFormatTypeCombo(); ! // checkbox for whether to interpret input leniently or not ! private JCheckBox lenientChk = new JCheckBox("allow inexact format on input"); ! public BlobOkJPanel() { - /* set up the controls */ - // checkbox for Java default/non-default format - useJavaDefaultFormatChk.setSelected(useJavaDefaultFormat); - useJavaDefaultFormatChk.addChangeListener(new ChangeListener(){ - public void stateChanged(ChangeEvent e) { - dateFormatTypeDrop.setEnabled( ! useJavaDefaultFormatChk.isSelected()); - dateFormatTypeDropLabel.setEnabled( ! useJavaDefaultFormatChk.isSelected()); - lenientChk.setEnabled( ! useJavaDefaultFormatChk.isSelected()); - } - }); ! // Combo box for read-all/read-part of blob ! dateFormatTypeDrop = new DateFormatTypeCombo(); ! dateFormatTypeDrop.setSelectedIndex( localeFormat ); ! // lenient checkbox ! lenientChk.setSelected(lenient); ! // handle cross-connection between fields ! dateFormatTypeDrop.setEnabled( ! useJavaDefaultFormatChk.isSelected()); ! dateFormatTypeDropLabel.setEnabled( ! useJavaDefaultFormatChk.isSelected()); ! lenientChk.setEnabled( ! useJavaDefaultFormatChk.isSelected()); ! /* * Create the panel and add the GUI items to it */ ! setLayout(new GridBagLayout()); - setBorder(BorderFactory.createTitledBorder("Time (SQL type 92)")); - final GridBagConstraints gbc = new GridBagConstraints(); - gbc.fill = GridBagConstraints.HORIZONTAL; - gbc.insets = new Insets(4, 4, 4, 4); - gbc.anchor = GridBagConstraints.WEST; ! gbc.gridx = 0; ! gbc.gridy = 0; ! gbc.gridwidth = GridBagConstraints.REMAINDER; ! add(useJavaDefaultFormatChk, gbc); ! gbc.gridwidth = 1; ! gbc.gridx = 0; ! ++gbc.gridy; ! add(dateFormatTypeDropLabel, gbc); ! ++gbc.gridx; ! add(dateFormatTypeDrop, gbc); ! gbc.gridx = 0; ! ++gbc.gridy; ! add(lenientChk, gbc); ! } // end of constructor for inner class ! /** * User has clicked OK in the surrounding JPanel, * so save the current state of all variables */ ! public void ok() { ! // get the values from the controls and set them in the static properties ! useJavaDefaultFormat = useJavaDefaultFormatChk.isSelected(); ! DTProperties.put( ! thisClassName, ! "useJavaDefaultFormat", new Boolean(useJavaDefaultFormat).toString()); ! localeFormat = dateFormatTypeDrop.getValue(); ! dateFormat = DateFormat.getTimeInstance(localeFormat); // lenient is set next ! DTProperties.put( ! thisClassName, ! "localeFormat", Integer.toString(localeFormat)); ! lenient = lenientChk.isSelected(); ! dateFormat.setLenient(lenient); ! DTProperties.put( ! thisClassName, ! "lenient", new Boolean(lenient).toString()); ! } } // end of inner class --- 730,846 ---- * method to save the data when the user is happy with it. */ ! private static class BlobOkJPanel extends OkJPanel ! { ! /* * GUI components - need to be here because they need to be * accessible from the event handlers to alter each other's state. */ ! // check box for whether to use Java Default or a Locale-dependent format ! private JCheckBox useJavaDefaultFormatChk = ! // i18n[dataTypeTime.useDefaultFormat=Use default format ({0})] ! new JCheckBox(s_stringMgr.getString("dataTypeTime.useDefaultFormat", new Time(new java.util.Date().getTime()).toString())); ! // label for the date format combo, used to enable/disable text ! // i18n[dataTypeTime.useDefaultFormat2= or locale-dependent format:] ! private RightLabel dateFormatTypeDropLabel = new RightLabel(s_stringMgr.getString("dataTypeTime.useDefaultFormat2")); + // Combo box for read-all/read-part of blob + private DateFormatTypeCombo dateFormatTypeDrop = new DateFormatTypeCombo(); ! // checkbox for whether to interpret input leniently or not ! // i18n[dataTypeTime.inexact=allow inexact format on input] ! private JCheckBox lenientChk = new JCheckBox(s_stringMgr.getString("dataTypeTime.inexact")); ! public BlobOkJPanel() ! { ! /* set up the controls */ ! // checkbox for Java default/non-default format ! useJavaDefaultFormatChk.setSelected(useJavaDefaultFormat); ! useJavaDefaultFormatChk.addChangeListener(new ChangeListener() ! { ! public void stateChanged(ChangeEvent e) ! { ! dateFormatTypeDrop.setEnabled(! useJavaDefaultFormatChk.isSelected()); ! dateFormatTypeDropLabel.setEnabled(! useJavaDefaultFormatChk.isSelected()); ! lenientChk.setEnabled(! useJavaDefaultFormatChk.isSelected()); ! } ! }); ! // Combo box for read-all/read-part of blob ! dateFormatTypeDrop = new DateFormatTypeCombo(); ! dateFormatTypeDrop.setSelectedIndex(localeFormat); ! // lenient checkbox ! lenientChk.setSelected(lenient); ! ! // handle cross-connection between fields ! dateFormatTypeDrop.setEnabled(! useJavaDefaultFormatChk.isSelected()); ! dateFormatTypeDropLabel.setEnabled(! useJavaDefaultFormatChk.isSelected()); ! lenientChk.setEnabled(! useJavaDefaultFormatChk.isSelected()); ! ! /* * Create the panel and add the GUI items to it */ ! setLayout(new GridBagLayout()); ! // i18n[dataTypeTime.typeTime=Time (SQL type 92)] ! setBorder(BorderFactory.createTitledBorder(s_stringMgr.getString("dataTypeTime.typeTime"))); ! final GridBagConstraints gbc = new GridBagConstraints(); ! gbc.fill = GridBagConstraints.HORIZONTAL; ! gbc.insets = new Insets(4, 4, 4, 4); ! gbc.anchor = GridBagConstraints.WEST; ! gbc.gridx = 0; ! gbc.gridy = 0; ! gbc.gridwidth = GridBagConstraints.REMAINDER; ! add(useJavaDefaultFormatChk, gbc); ! gbc.gridwidth = 1; ! gbc.gridx = 0; ! ++gbc.gridy; ! add(dateFormatTypeDropLabel, gbc); ! ++gbc.gridx; ! add(dateFormatTypeDrop, gbc); ! gbc.gridx = 0; ! ++gbc.gridy; ! add(lenientChk, gbc); ! ! } // end of constructor for inner class ! /** * User has clicked OK in the surrounding JPanel, * so save the current state of all variables */ ! public void ok() ! { ! // get the values from the controls and set them in the static properties ! useJavaDefaultFormat = useJavaDefaultFormatChk.isSelected(); ! DTProperties.put( ! thisClassName, ! "useJavaDefaultFormat", new Boolean(useJavaDefaultFormat).toString()); ! localeFormat = dateFormatTypeDrop.getValue(); ! dateFormat = DateFormat.getTimeInstance(localeFormat); // lenient is set next ! DTProperties.put( ! thisClassName, ! "localeFormat", Integer.toString(localeFormat)); ! lenient = lenientChk.isSelected(); ! dateFormat.setLenient(lenient); ! DTProperties.put( ! thisClassName, ! "lenient", new Boolean(lenient).toString()); ! } } // end of inner class Index: DataTypeTimestamp.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/cellcomponent/DataTypeTimestamp.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** DataTypeTimestamp.java 6 May 2005 20:44:42 -0000 1.15 --- DataTypeTimestamp.java 21 Dec 2005 21:11:15 -0000 1.16 *************** *** 55,58 **** --- 55,61 ---- import net.sourceforge.squirrel_sql.fw.gui.OkJPanel; import net.sourceforge.squirrel_sql.fw.gui.RightLabel; + import net.sourceforge.squirrel_sql.fw.util.StringManager; + import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; + /** * @author gwg *************** *** 85,88 **** --- 88,96 ---- implements IDataTypeComponent { + + private static final StringManager s_stringMgr = + StringManagerFactory.getStringManager(DataTypeTimestamp.class); + + /* the whole column definition */ private ColumnDisplayDefinition _colDef; *************** *** 135,139 **** // This is reset each time the user changes the previous settings. private static DateFormat dateFormat = ! DateFormat.getDateTimeInstance(localeFormat, localeFormat); // values for how to use timestamps in WHERE clauses --- 143,147 ---- // This is reset each time the user changes the previous settings. private static DateFormat dateFormat = ! DateFormat.getDateTimeInstance(localeFormat, localeFormat); // values for how to use timestamps in WHERE clauses *************** *** 381,385 **** */ private class KeyTextHandler extends KeyAdapter { ! public void keyTyped(KeyEvent e) { char c = e.getKeyChar(); --- 389,393 ---- */ private class KeyTextHandler extends KeyAdapter { ! public void keyTyped(KeyEvent e) { char c = e.getKeyChar(); *************** *** 555,559 **** */ public boolean canDoFileIO() { ! return true; } --- 563,567 ---- */ public boolean canDoFileIO() { ! return true; } *************** *** 574,616 **** */ public String importObject(FileInputStream inStream) ! throws IOException { ! InputStreamReader inReader = new InputStreamReader(inStream); ! int fileSize = inStream.available(); ! char charBuf[] = new char[fileSize]; ! int count = inReader.read(charBuf, 0, fileSize); ! if (count != fileSize) ! throw new IOException( ! "Could read only "+ count + ! " chars from a total file size of " + fileSize + ! ". Import failed."); ! // convert file text into a string ! // Special case: some systems tack a newline at the end of ! // the text read. Assume that if last char is a newline that ! // we want everything else in the line. ! String fileText; ! if (charBuf[count-1] == KeyEvent.VK_ENTER) ! fileText = new String(charBuf, 0, count-1); ! else fileText = new String(charBuf); ! // test that the string is valid by converting it into an ! // object of this data type ! StringBuffer messageBuffer = new StringBuffer(); ! validateAndConvertInPopup(fileText, null, messageBuffer); ! if (messageBuffer.length() > 0) { ! // convert number conversion issue into IO issue for consistancy ! throw new IOException( ! "Text does not represent data of type "+getClassName()+ ! ". Text was:\n"+fileText); ! } ! // return the text from the file since it does ! // represent a valid data value ! return fileText; } --- 582,624 ---- */ public String importObject(FileInputStream inStream) ! throws IOException { ! InputStreamReader inReader = new InputStreamReader(inStream); ! int fileSize = inStream.available(); ! char charBuf[] = new char[fileSize]; ! int count = inReader.read(charBuf, 0, fileSize); ! if (count != fileSize) ! throw new IOException( ! "Could read only "+ count + ! " chars from a total file size of " + fileSize + ! ". Import failed."); ! // convert file text into a string ! // Special case: some systems tack a newline at the end of ! // the text read. Assume that if last char is a newline that ! // we want everything else in the line. ! String fileText; ! if (charBuf[count-1] == KeyEvent.VK_ENTER) ! fileText = new String(charBuf, 0, count-1); ! else fileText = new String(charBuf); ! // test that the string is valid by converting it into an ! // object of this data type ! StringBuffer messageBuffer = new StringBuffer(); ! validateAndConvertInPopup(fileText, null, messageBuffer); ! if (messageBuffer.length() > 0) { ! // convert number conversion issue into IO issue for consistancy ! throw new IOException( ! "Text does not represent data of type "+getClassName()+ ! ". Text was:\n"+fileText); ! } ! // return the text from the file since it does ! // represent a valid data value ! return fileText; } *************** *** 636,652 **** */ public void exportObject(FileOutputStream outStream, String text) ! throws IOException { ! OutputStreamWriter outWriter = new OutputStreamWriter(outStream); ! // check that the text is a valid representation ! StringBuffer messageBuffer = new StringBuffer(); ! validateAndConvertInPopup(text, null, messageBuffer); ! if (messageBuffer.length() > 0) { ! // there was an error in the conversion ! throw new IOException(new String(messageBuffer)); ! } ! // just send the text to the output file outWriter.write(text); outWriter.flush(); --- 644,660 ---- */ public void exportObject(FileOutputStream outStream, String text) ! throws IOException { ! OutputStreamWriter outWriter = new OutputStreamWriter(outStream); ! // check that the text is a valid representation ! StringBuffer messageBuffer = new StringBuffer(); ! validateAndConvertInPopup(text, null, messageBuffer); ! if (messageBuffer.length() > 0) { ! // there was an error in the conversion ! throw new IOException(new String(messageBuffer)); ! } ! // just send the text to the output file outWriter.write(text); outWriter.flush(); *************** *** 702,713 **** public DateFormatTypeCombo() { ! addItem("Full (" + ! DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format(new java.util.Date()) + ")" ); ! addItem("Long (" + ! DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG).format(new java.util.Date()) + ")" ); ! addItem("Medium (" + ! DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM).format(new java.util.Date()) + ")" ); ! addItem("Short (" + ! DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format(new java.util.Date()) + ")" ); } --- 710,722 ---- public DateFormatTypeCombo() { ! ! // i18n[dataTypeTimestamp.full=Full ({0})] ! addItem(s_stringMgr.getString("dataTypeTimestamp.full", DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format(new java.util.Date()))); ! // i18n[dataTypeTimestamp.long=Long ({0})] ! addItem(s_stringMgr.getString("dataTypeTimestamp.long", DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG).format(new java.util.Date()))); ! // i18n[dataTypeTimestamp.medium=Medium ({0})] ! addItem(s_stringMgr.getString("dataTypeTimestamp.medium", DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM).format(new java.util.Date()))); ! // i18n[dataTypeTimestamp.short=Short ({0})] ! addItem(s_stringMgr.getString("dataTypeTimestamp.short", DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format(new java.util.Date()))); } *************** *** 745,753 **** // check box for whether to use Java Default or a Locale-dependent format private JCheckBox useJavaDefaultFormatChk = new JCheckBox( ! "Use default format (" + ! new Timestamp(new java.util.Date().getTime()).toString() + ")"); // label for the date format combo, used to enable/disable text ! private RightLabel dateFormatTypeDropLabel = new RightLabel(" or locale-dependent format:"); // Combo box for read-all/read-part of blob --- 754,763 ---- // check box for whether to use Java Default or a Locale-dependent format private JCheckBox useJavaDefaultFormatChk = new JCheckBox( ! // i18n[dateTypeTimestamp.defaultFormat=Use default format ({0})] ! s_stringMgr.getString("dateTypeTimestamp.defaultFormat", new Timestamp(new java.util.Date().getTime()).toString())); // label for the date format combo, used to enable/disable text ! // i18n[dateTypeTimestamp.orLocaleDependend= or locale-dependent format:] ! private RightLabel dateFormatTypeDropLabel = new RightLabel(s_stringMgr.getString("dateTypeTimestamp.orLocaleDependend")); // Combo box for read-all/read-part of blob *************** *** 755,771 **** // checkbox for whether to interpret input leniently or not ! private JCheckBox lenientChk = new JCheckBox("allow inexact format on input"); // Objects needed to handle radio buttons private JRadioButton doNotUseButton = ! new JRadioButton("Do not use Timstamp in WHERE clause"); private JRadioButton useTimestampFormatButton = ! new JRadioButton("Use JDBC standard escape format ( \"{ts '"+ ! new Timestamp(new Date().getTime()).toString() + "'}\")"); private JRadioButton useStringFormatButton = ! new JRadioButton("Use String version of Timestamp ('"+ ! new Timestamp(new Date().getTime()).toString() + "')"); // IMPORTANT: put the buttons into the array in same order as their // associated values defined for whereClauseUsage. private ButtonModel radioButtonModels[] = { doNotUseButton.getModel(), --- 765,787 ---- // checkbox for whether to interpret input leniently or not ! // i18n[dateTypeTimestamp.allowInexact=allow inexact format on input] ! private JCheckBox lenientChk = new JCheckBox(s_stringMgr.getString("dateTypeTimestamp.allowInexact")); // Objects needed to handle radio buttons private JRadioButton doNotUseButton = ! // i18n[dateTypeTimestamp.timestampInWhere=Do not use Timstamp in WHERE clause] ! new JRadioButton(s_stringMgr.getString("dateTypeTimestamp.timestampInWhere")); ! private JRadioButton useTimestampFormatButton = ! // i18n[dateTypeTimestamp.jdbcEscape=Use JDBC standard escape format ( {ts '{0}'} )] ! new JRadioButton(s_stringMgr.getString("dateTypeTimestamp.jdbcEscape", new Timestamp(new Date().getTime()).toString())); ! private JRadioButton useStringFormatButton = ! // i18n[dateTypeTimestamp.stringVersion=Use String version of Timestamp ( {ts '{0}'} )] ! new JRadioButton(s_stringMgr.getString("dateTypeTimestamp.stringVersion", new Timestamp(new Date().getTime()).toString())); ! // IMPORTANT: put the buttons into the array in same order as their // associated values defined for whereClauseUsage. + private ButtonModel radioButtonModels[] = { doNotUseButton.getModel(), *************** *** 813,817 **** setLayout(new GridBagLayout()); ! setBorder(BorderFactory.createTitledBorder("Timestamp (SQL type 93)")); final GridBagConstraints gbc = new GridBagConstraints(); gbc.fill = GridBagConstraints.HORIZONTAL; --- 829,834 ---- setLayout(new GridBagLayout()); ! // i18n[dateTypeTimestamp.typeTimestamp=Timestamp (SQL type 93)] ! setBorder(BorderFactory.createTitledBorder(s_stringMgr.getString("dateTypeTim... [truncated message content] |