How to display time duration (NOT dates) with an input mask in a JTable?
Background: I am trying to display in a JTable, in two columns, the start position and time duration of an audio clip.
They are stored as type float internally eg. startPosition = 72.7 seconds.
However I wish to display on screen in the table in HH:mm:ss:S format. eg. 00:01:12:7. The user can edit the cell and input values to update the internal member fields.
Problem: I am finding it very difficult to implement this - what with the interactions of MaskFormatter, DefaultCellEditor etc.
Also using SimpleDateFormat and DateFormatter does not work as they insist on displaying the day, month, year also in the table cell.
Taking the Swing Tutorial TableFTFEditDemo example as a template,
(http://java.sun.com/docs/books/tutorial/uiswing/components/example-1dot4/index.html#TableFTFEditDemo)
does anyone know how to do this?
I can post my (buggy) modifications to the example code - if it would help.
Appreciate any help.
thanks,
Anil
Here are my modifications to the TableFTFEditDemo example. If you run it, you get an exception
like java.lang.NumberFormatException: For input string: "18:00:03.500"
The two modified classes are taken from the Tutorial and are listed below:
=================
* IntegerEditor is a 1.4 class used by TableFTFEditDemo.java.
import javax.swing.AbstractAction;
import javax.swing.BorderFactory;
import javax.swing.DefaultCellEditor;
import javax.swing.JFormattedTextField;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.SwingUtilities;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.Color;
import java.awt.Component;
import java.awt.Toolkit;
import java.text.DateFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.swing.text.DateFormatter;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.text.MaskFormatter;
import javax.swing.text.NumberFormatter;
class TimeRenderer {
float seconds;
TimeRenderer(String str) {
int hSec = Integer.parseInt(str.substring(0,2)) * 60 * 60;
int mSec = Integer.parseInt(str.substring(2,4)) * 60;
int sSec = Integer.parseInt(str.substring(4,6));
float tSec = Integer.parseInt(str.substring(6,7))/10.0F;
seconds = hSec + mSec + sSec + tSec;
* Implements a cell editor that uses a formatted text field to edit Integer
* values.
public class IntegerEditor extends DefaultCellEditor {
JFormattedTextField ftf;
static Date zeroTime = new Date(0L);
private boolean DEBUG = true;
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.S");
MaskFormatter maskFo = new MaskFormatter("##:##:##.#");
protected MaskFormatter createFormatter(String s) {
MaskFormatter formatter = null;
try {
formatter = new MaskFormatter(s);
} catch (java.text.ParseException exc) {
System.err.println("formatter is bad: " + exc.getMessage());
System.exit(-1);
return formatter;
public IntegerEditor(int min, int max) throws ParseException {
super(new JFormattedTextField(new MaskFormatter("##:##:##.#")));
ftf = (JFormattedTextField) getComponent();
// Set up the editor for the cells.
ftf.setFormatterFactory(new DefaultFormatterFactory(new DateFormatter(sdf)));
ftf.setFocusLostBehavior(JFormattedTextField.PERSIST);
// React when the user presses Enter while the editor is
// active. (Tab is handled as specified by
// JFormattedTextField's focusLostBehavior property.)
ftf.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "check");
ftf.getActionMap().put("check", new AbstractAction() {
public void actionPerformed(ActionEvent e) {
if (!ftf.isEditValid()) { // The text is invalid.
ftf.setBorder(BorderFactory.createLineBorder(Color.RED));
ftf.setBackground(Color.PINK);
ftf.postActionEvent(); // inform the editor
} else
try { // The text is valid,
ftf.commitEdit(); // so use it.
ftf.postActionEvent(); // stop editing
} catch (java.text.ParseException exc) {
// Override to invoke setValue on the formatted text field.
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
JFormattedTextField ftf = (JFormattedTextField) super
.getTableCellEditorComponent(table, value, isSelected, row, column);
System.out.println("value:" + value);
// long milliseconds =(long) (Float.parseFloat(value.toString()) * 1000);
long milliseconds =(long) (((Float) value).floatValue() * 1000);
Date dt = new Date(milliseconds);
ftf.setValue(dt);
return ftf;
// Override to ensure that the value remains an Integer.
public Object getCellEditorValue() {
JFormattedTextField ftf = (JFormattedTextField) getComponent();
Object o = ftf.getValue();
try {
Calendar cal = Calendar.getInstance();
cal.setTime((Date)o);
float seconds = cal.getTimeInMillis()/1000.0F;
return sdf.format(o);
//return new Float(seconds);
} catch (Exception exc) {
System.err.println("getCellEditorValue: can't parse o: " + o);
exc.printStackTrace();
return null;
// Override to check whether the edit is valid,
// setting the value if it is and complaining if
// it isn't. If it's OK for the editor to go
// away, we need to invoke the superclass's version
// of this method so that everything gets cleaned up.
public boolean stopCellEditing() {
JFormattedTextField ftf = (JFormattedTextField) getComponent();
if (ftf.isEditValid()) {
try {
ftf.commitEdit();
} catch (java.text.ParseException exc) {
} else { // text is invalid
ftf.setBorder(BorderFactory.createLineBorder(Color.RED));
ftf.setBackground(Color.PINK);
return false; // don't let the editor go away
return super.stopCellEditing();
//=====================================================
* TableFTFEditDemo.java is a 1.4 application that requires one other file:
* IntegerEditor.java
import javax.swing.JFrame;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.text.ParseException;
* This is exactly like TableDemo, except that it uses a
* custom cell editor to validate integer input.
public class TableFTFEditDemo extends JPanel {
private boolean DEBUG = false;
public TableFTFEditDemo() throws ParseException {
super(new GridLayout(1,0));
JTable table = new JTable(new MyTableModel());
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
//Create the scroll pane and add the table to it.
JScrollPane scrollPane = new JScrollPane(table);
//Set up stricter input validation for the integer column.
// table.setDefaultEditor(Float.class,
// new IntegerEditor(0, 100));
//If we didn't want this editor to be used for other
//Integer columns, we'd do this:
table.getColumnModel().getColumn(3).setCellEditor(
new IntegerEditor(0, 100));
//Add the scroll pane to this panel.
add(scrollPane);
class MyTableModel extends AbstractTableModel {
private String[] columnNames = {"First Name",
"Last Name",
"Sport",
"# of Years",
"Vegetarian"};
private Object[][] data = {
{"Mary", "Campione",
"Snowboarding", new Float(5.7), new Boolean(false)},
{"Alison", "Huml",
"Rowing", new Float(3.5), new Boolean(true)},
{"Kathy", "Walrath",
"Knitting", new Float(2.9), new Boolean(false)},
{"Sharon", "Zakhour",
"Speed reading", new Float(20.8), new Boolean(true)},
{"Philip", "Milne",
"Pool", new Float(10.5), new Boolean(false)}
public int getColumnCount() {
return columnNames.length;
public int getRowCount() {
return data.length;
public String getColumnName(int col) {
return columnNames[col];
public Object getValueAt(int row, int col) {
return data[row][col];
* JTable uses this method to determine the default renderer/
* editor for each cell. If we didn't implement this method,
* then the last column would contain text ("true"/"false"),
* rather than a check box.
public Class getColumnClass(int c) {
Object obj = getValueAt(0, c);
System.out.println("getColumnClass.obj:" + obj);
return obj.getClass();
public boolean isCellEditable(int row, int col) {
//Note that the data/cell address is constant,
//no matter where the cell appears onscreen.
if (col < 2) {
return false;
} else {
return true;
public void setValueAt(Object value, int row, int col) {
if (DEBUG) {
System.out.println("Setting value at " + row + "," + col
+ " to " + value
+ " (an instance of "
+ value.getClass() + ")");
data[row][col] = value;
fireTableCellUpdated(row, col);
if (DEBUG) {
System.out.println("New value of data:");
printDebugData();
private void printDebugData() {
int numRows = getRowCount();
int numCols = getColumnCount();
for (int i=0; i < numRows; i++) {
System.out.print(" row " + i + ":");
for (int j=0; j < numCols; j++) {
System.out.print(" " + data[i][j]);
System.out.println();
System.out.println("--------------------------");
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event-dispatching thread.
* @throws ParseException
private static void createAndShowGUI() throws ParseException {
//Make sure we have nice window decorations.
JFrame.setDefaultLookAndFeelDecorated(true);
//Create and set up the window.
JFrame frame = new JFrame("TableFTFEditDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
TableFTFEditDemo newContentPane = new TableFTFEditDemo();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);
//Display the window.
frame.pack();
frame.setVisible(true);
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
createAndShowGUI();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Similar Messages
-
How to Display Time-Dependent Characteristic Data In Query
Hi Experts,
I have encountered a problem. I want to use Time-Dependent Chart. And want to display different value according characteristc's valid from time. For Example,
The Characteristic 0COSTCENTER has the navigation attribute 0COMPANY, The data as:
0COSTCENTER Valid from Valid To 0COMPANY
BW2305 20070101 20070430 A
BW2305 20070501 99991231 B
I want the report can display as :
0COSTCENTER Valid from Valid To 0COMPANY AMOUNT
BW2305 20070101 20070430 A 1000
BW2305 20070501 99991231 B 2000
But when I set the query's key date 20070420, the report display as:
0COSTCENTER Valid from Valid To 0COMPANY AMOUNT
BW2305 20070101 20070430 A 1000
BW2305 20070501 99991231 A 2000
when I set the query's key date 20070520, the report display as:
0COSTCENTER Valid from Valid To 0COMPANY AMOUNT
BW2305 20070101 20070430 B 1000
BW2305 20070501 99991231 B 2000
Can anybody tell me how I can get report expected.
Thanks in advance.
SFHi,
1) Add the characterstics 0COSTCENTER ,0DATETO,DATEFROM and 0COMPANY to the cube.
2) And also add these 4 IOs to the Communication structures which has update rules with the concern cube.
3) I hope , you already have 0COSTCENTER in the Commnication structure and mapping for that infoobject at both Update rules and Transfer rules.
4) Leave to the Blank(no mapping) mappings for the IOs 0DATETO,DATEFROM and 0COMPANY in the Transfer rules.But make 1:1 mapping in the Update rules for these 2 infoobjects.
5) Write the below code in the strt routine of the Update rules:
TYPES: BEGIN OF type4.
include structure like /BI0/QCOSTCENTER.
TYPES END OF type4.
DATA:
ITAB4 TYPE STANDARD TABLE OF TYPE4
WITH HEADER LINE
WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.
SELECT * FROM /BI0/QCOSTCENTER INTO CORRESPONDING FIELDS
OF TABLE ITAB4
WHERE OBJVERS = 'A'.
loop at DATA_PACKAGE.
READ TABLE ITAB4 WITH KEY COSTCENTER = DATA_PACKAGE-MATERIAL
DATETO LE DATA_PACKAGE-PSTNG_DATE
DATEFROM GE DATA_PACKAGE-PSTNG_DATE.
IF SY-SUBRC EQ 0.
DATA_PACKAGE-DATETO = ITAB4-DATETO.
DATA_PACKAGE-DATEFROM = ITAB4-DATEFROM.
DATA_PACKAGE-COMP_CODE = ITAB4-COMP_CODE.
ENDIF.
Modify DATA_PACKAGE.
endloop.
ABORT = 0.
Here I assumed you have Posting date in the Communication structure and used to map to Fiscalperiod of the cube.
6) Do the Master data upload to Cost center and active the master data of it always before uploading the data to cube.
7) Do the uploading to cube from Sratch.
With rgds,
Anil Kumar Sharma .P
Message was edited by:
Anil Kumar Sharma -
How to display more than one column with for each
Hi guys,
how to display more than one column with for each like below?
for each
Item1
Item2
Item3
Item4
Item5
Item6
Item7
Item8
Item9
Item10
End for each
for each
Item1 Item2 Item3
Item4 Item5 Item6
Item7 Item8 Item9
Item10
End for eachTake a look at this to see if the solution provided would work for you: https://blogs.oracle.com/xmlpublisher/entry/multi_column_row_woes
Won't you have more than 10 records in your data file ? If you are going to have only 10 items then you may be able to use position() function to limit it to 3 each..
Take a look at this: https://blogs.oracle.com/xmlpublisher/entry/turning_rows_into_columns
Thanks,
Bipuser -
After update my iphone 4, I have problem charging my phone. It will always display charging is not supported with this accessory. What happen to iOS 5, how come it can register my charger?
I have a 3Gs and I cant charge my iPone with any of my non Apple charges such as my Logitech stereo since I upgraded to IOS5... what did Apple do?
/M -
How to use Time Capsule via INTERNET WITH WINDOWS 7 SMB Cloud
how to use Time Capsule via INTERNET WITH WINDOWS 7 SMB Cloud
Get a vpn router.. I have no idea where you are in the world but you can find reasonable stuff for not too much money or even a general router that takes third party firmware like dd-wrt can run openvpn.
Set up the vpn router in place of the TC, as the main router in the network. Simply bridge the TC and place it behind the router. It will be accessible as part of the network via the vpn.
This is the only safe way to do it via windows.
http://www.dyncommunity.com/questions/18132/accessing-time-capsule-from-windows- 7-over-the-int.html
If you google around I have seen posts about how to access TC by port forwarding SMB on the TC.. using a different port.. To me this is going to slow down the hackers by a day or two.. then they will discover the open port and access your network.. not just the TC.. they now have SMB access to everything. Don't do it. There is very little security on SMB. -
Display dropdown by key data with sorting
Hi,
My requirement is to display dropdown by key data with sorting getting this data from XML in KM.
Tell me different possibilities to sort the data.
Regards,
surya.Hi,
Use DropDownByIndex instead of DropDownByKey
Create a node with a attribute for eg. Colors node with Color attribute and add the values in the elements of the node, Bind attribute to DropDownByIndex UI.
Create a custom comparator class like below
import java.util.Comparator;
import com.sap.tc.webdynpro.progmodel.api.IWDNodeElement;
import com.sap.tc.webdynpro.progmodel.repository.enums.WDComponentLifecycleEnumInfo;
public class CustomComparator implements Comparator {
String attribute;
public CustomComparator(String attrib) {
this.attribute = attrib;
public int compare(Object o1, Object o2) {
try
IWDNodeElement units1 = (IWDNodeElement) o1;
IWDNodeElement units2 = (IWDNodeElement) o2;
return units1.getAttributeAsText(attribute).compareTo(units2.getAttributeAsText(attribute));
catch (Exception e)
e.printStackTrace();
//arbitrary order
return 1;
Once you read values in the Colors node, call the sortElements method of the node as below to sort the elements of the node
wdContext.nodeColors().sortElements(new CustomComparator("Color"));
Regards,
Amol -
Why weren't we told that display mirroring would not work with a Mac older than 12 months?
Why weren't we told that display mirroring would not work with a Mac older than 12 months?
You were, just not directly. If you go to apple's mountain lion webpage, you'll see this note at the bottom:
1. AirPlay Mirroring requires a second-generation Apple TV or later, and is supported on the following Mac models: iMac (Mid 2011 or newer), Mac mini (Mid 2011 or newer), MacBook Air (Mid 2011 or newer), and MacBook Pro (Early 2011 or newer).
http://www.apple.com/osx/whats-new/features.html -
How do you move photos NOT taken with ipod ONTO the ipod?
How do you move photos NOT taken with ipod touch ONTO the ipod touch - click and drag isn't working. Thanks.
You can sync them via the iPod's Photos configuration pane in iTunes. See here for more information and instructions.
iOS and iPod: Syncing photos using iTunes
B-rock -
How to display time/date on bottom task bar windows 7
How do I get the time and date to display on the bottom taskbar, I deleted it when I was trying to clear
browsing on google and now can't figure out how to retrieve it. Thank youA couple of notes regarding others' helpful posts:
The small icons is sort of a red herring - there is nothing about small icons that prohibits the date from showing, but if your taskbar is only one row high, there will not be enough space to SEE the date with small icons. I use small icons and a two row
taskbar. To make it two (or more) rows, just hover the mouse over the top edge of the taskbar and click-drag upward.
Alo, I had re-formated my date as dddd, MMM d, and all was swell - suddenly, today the date disappeared! After much frustration, I realized that "Wednesday, Nov. 23" was just too long for the space allotted! I changed the format to "ddd, MMM d" and it suddenly
appeared. I don't understand why MS can just expand the clock are to fit what's there...
best regards,
Ian -
I do not take time to match data with the PC time
Hi
I have a question and do not know why I did not coincide with the time that stores a data graph with the time at which the data is stored on the PC should be every 0.5s and there values are 0 almost, 46s between data and information.
Attached is a picture and -vi.
By the way why do not load the stage number and always reads 0?
Thanks for your help.
Attachments:
Ejemplo guardado tabla.vi 73 KBHi Vltan.
I modified my vi.la simulation signal at 10 Hz and period 0.1s.
Where I have the problem is that when the pc was not increased in 0.1s.When the while loop period is 0.1s.
You can modify my vi.
Attachments:
Ejemplo guardado tabla II.vi 73 KB -
How to display document last modfied date time in core result web part?
Hi,
We have a requirment in the sharepoint application where we need to display last modified date&time of document in core result web part.
To support this we have specify the property <Column Name="Write"/> in custom XSL.
But it displays only the modified date.Is there is way to display modified date and time as well?
D.GaneshIf you want to modify the
XML can do i tin the
template "DisplayTemplate":
An example:
Replace
<xsl:value-of select="write" />
by
<xsl:value-of select="ddwrt:FormatDate($write, 1033, 2)"/>
But I think the managed property"Write"
is returned only as
Date without
Time. By
this time will
always 00:00.
To see the resulting XML
can replace
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<xmp><xsl:copy-of select="*"/></xmp>
</xsl:template>
</xsl:stylesheet>
Where you see the format
of "write"
http://msdn.microsoft.com/en-us/library/ms546985(v=office.14).aspx
Miguel de Hortaleza -
How to display time with min ,sec in select lis lov - 0-23 hrs and 0-59 min
Hi,
How to use time between 0-23 hrs,0-59 min in select list and insert selected value into single column.Like if i select 20:00 hrs,34 min ,value should be insert into single database column.
Please help me to get the answer of this question.
Kind Regards,
Harish SharmaOne select list would have 24 x 60 entriies. You should use two. One for hours and the other one for minutes. The SQL could be:
SELECT LEVEL d, LEVEL r
FROM DUAL
CONNECT BY LEVEL < 25;
SELECT LEVEL d, LEVEL r
FROM DUAL
CONNECT BY LEVEL < 61;The source is static. The actual column (for example :P1_TIME_COLUMN) with source database column is hidden. You would have a computation (PL/SQL Function) on submit which would then bring the two selected values together:
DECLARE
v_time VARCHAR2 (40);
BEGIN
v_time := :p1_select_list1 || ':' || :p1_select_list2;
RETURN v_time;
END;Denes Kubicek
http://deneskubicek.blogspot.com/
http://www.apress.com/9781430235125
http://apex.oracle.com/pls/apex/f?p=31517:1
http://www.amazon.de/Oracle-APEX-XE-Praxis/dp/3826655494
------------------------------------------------------------------- -
How to display metadata such as data load date in answers report title?
We have a requirement to display the last load date of the data relevant to the report the user is viewing. We have such information stored in a metadata table listed by the fact table the report is referencing. Our proposed solution is to create new answers reports off of this metadata table and put each report (with the appropriate filter on the fact table) on each dashboard section where the corresponding report is placed. One problem with this approach is the load date information will not be reflected in the print form of the report as the date is dashboard content - not report content. Is there any way to overcome this situation (other than create a ton of variables specifically created for this purpose)? I'm open to entertaining javascript ideas, if necessary. I would love to know how to push this OBIEE envelope further. Thanks in advance.
Hi,
I discuss with some people who are familiar with SharePoint, we both thought Windows Explorer may
not accept the custom metadata.
if we want to do some customization, it is recommended to ask for help in development forum.
http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/home?category=windowsdesktopdev
If you have any feedback on our support, please click
here
Alex Zhao
TechNet Community Support -
How to display success message when data is changed in the custom tab in MM
Hi,
I have added a new custom data tab in the MM01/MM02/MM03 transactions. Whenever I do changes to fields in the custom tab in MM02 transaction, and no changes in the standard tabs, I will get a message stating "No Changes Made".
But if I do changes in the standard tabs, it works as usual with display of message "Changes to particular material has been done.
Please let me know, if anyone of you know, how to display the success message if the changes to the custom tab is done.
Thanks in advance,
sudhanvaHi Sudhanva,
The exit EXIT_SAPLMGMU_0001 is a function exit that you can use for custom validation but not to add custom tab/screen.
But the message issued by SAP is not related to this Function Exit.
If you have used a Screen Exit, then there must be some Function Exits also in the same Enhancement using which you can assign the value of custom fields to/from the standard structure. Thus when the value of any custom field is changed the system can understand that the some changes have been changed and will not issue the message.
In case you have used a BADI, there can be other methods in the BADi using whcih you can assign the value of custom fields to/from the standard structure. This might also prevent the message from being displayed.
I could try giving you further details if you can provide the name of the Enhancement/BADi that you used to add the additional tab.
Hope this helps.
Regards,
Abhisek. -
How to display maximum (most recent) date value in a query
hello,
I have the following query:
StudentNumber | ExternalOrganization | Date | | NumbeOfAdmissions
0112 050 06/27/2007 1
0234 060 07/15/2008 1
1356 025 01/08/2008 1
My dilemma is how to display only the row that has the most recent Date, e.g. here I want to only see the row with student number 0234 and date 07/15/2008; everything else should be hidden.
I know it should be very simple....yes/no?
thanksHi
even I am facing the same problem..
Can you please tell me what did you do to get most recent record..
Even I have made my date field as KF.. n have put condition on it.. but not getting desired result.. may be I am missing something.. somewhere..
I resolved it.. thanks
Regards
Swati
Edited by: Swati on Feb 17, 2009 7:49 AM
Maybe you are looking for
-
Change photo album view to filmstrip
Hello, I am very new to using dreamweaver and fireworks. I created a photo album in fireworks and have created a link to it from my webpage, I now want to modify it to show in filmstrip as opposed to the thumbnails that were set up by default, any id
-
IPhone does not remember song or track or position in playlist or audio book
I am hoping Apple will fix a problem with Ios7.0.x where iPhone does not remember song or track or position in playlist or audio book. It worked fine with ios6.x
-
How to fix permissions in /Library/Audio/Plug-ins in Lion
I noticed that very annoyingly, Lion comes with the following default permissions for /Library/Audio/Plug-ins: drwxr-xr-x 9 root wheel 306 Oct 7 07:37 Plug-Ins That means that you the user cannot drag a plug-in in and out as you wish. What a pain
-
my ipod wont play music on my ihome and I know it is not the ihome because I put my brothers ipod on it and it worked I dont know what is going on please help me
-
SOS! MEMORY PROBLEM AFTER NET USAGE!
Hi all, I'm using Nokia 5233 purchased in November 2010. Recently i have also updated the phone software to latest version 40.0.1. My problem is as follows: I use the net very frequently sites like facebook, gmail, yahoo chat, rediffmail and google.