Return to the cell after data validation in JTable

Hi,
I am implementing an editable JTable. I want the focus or selection return to the current editing cell when the user inputing a wrong format data. I can catch the validation error and pop up a error message to user. But I can not return the focus or selection to the editing cell.
If anyone has already solved this problem, please give me your solution.
Thank you!
I have tried:
1.
In tableChanged(TableModelEvent e) method:
int row = e.getFirstRow();
int column = e.getColumn();
Object data = newJTable.getValueAt(row, column);
if(!validation(data)) // return true if validation OK
editFailed = true;//class variable
previousRow = row;//class variable
previousCol = column;//class variable
Add a focus listener to the table and implement the focus listener's focusLost method with:
if(validationFailed)
table.editCellAt(previousRow, previousCol);
This does move the focus to the editing cells if you want to continue to edit the table.
Problems are
If you move the focus out of the table, the wrong date will be in the table or not edited.
The selection color was shown on the next cell where you pointed your mouse to after you leave the editing cells.
2. I have also tried to use:
in the above focusLost method
table.clearSelection();
table.editCellAt(previousRow, previousCol);
table.setRowSelectionInterval(previousRow, previousRow);
table.setColumnSelectionInterval(previousCol, previousRow);
But it did not change the selection.
Shaolong

This is the fix for the above problem.
Basically we need to handle both mouse/keyboard actions on our own.
This code returns the control to errorCell..
/* TableCellValidator class */
/* The class basically validates the input entry in a cell and */
/* pops up a JOptionPane if its an invalid input */
/* And an OK is clicked on the JOptionPane, the control returns back */
/* to the same cell */
/* Basic Idea: The controls Arrow/Tab/mouse clicks are handled by our */
/* ----------- custom table. Its has been slightly tricky to handle */
/* mouse clicks, since when you click the next cell, the */
/* editingrow/editingcol advances. Hence the */
/* previousrow/previouscol has been captured in the */
/* setValueAt method. */
/* To capture Table/Arrow/Numeric Arrow, The keyStrokes(TAB etc)*/
/* assigned different AbstractionActions to execute like */
/* validateBeforeTabbingToNextCell */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public class TableCellValidator {
* Constructor.
* Basically instantiates the class and sets up the
* JFrame object and the table.
public TableCellValidator() {
JFrame f = new JFrame("JTable test");
f.getContentPane().add(new JScrollPane(createTable()), "Center");
f.pack();
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
* A method which created our custom table.
* The JTable methods processMouseEvent
* and setValueAt are overridden to handle
* Mouseclicks.
* The Tables ActionMap is fed with different
* AbstractAction classes eg: (validateBeforeTabbingToNextCell)
* (Scroll down below for the innerclass
* validateBeforeTabbingToNextCell).
* So basically when TAB is pressed the stuff present
* in the validateBeforeTabbingToNextCell's actionPerformed(..)
* method is performed.
* So we need to handle all the stuff a TAB does.
* ie. if a TAB hits the end of the row, we need to increment
* it to the next Row (if the validation is successful)
* in the current row etc..
* @return JTable
* @see validateBeforeTabbingToNextCell
* @see validateBeforeShiftTabbingToNextCell
* @see validateBeforeMovingToNextCell
* @see validateBeforeMovingDownToCell
* @see validateBeforeMovingUpToCell
* @see validateBeforeMovingLeftToCell
private JTable createTable() {
JTable table = new JTable(createModel()){
private int previousRow =0;
private int previousCol =0;
* Processes mouse events occurring on this component by
* dispatching them to any registered
* <code>MouseListener</code> objects.
* <p>
* This method is not called unless mouse events are
* enabled for this component. Mouse events are enabled
* when one of the following occurs:
* <p><ul>
* <li>A <code>MouseListener</code> object is registered
* via <code>addMouseListener</code>.
* </ul>
* <p>Note that if the event parameter is <code>null</code>
* the behavior is unspecified and may result in an
* exception.
* @param e the mouse event
* @see java.awt.event.MouseEvent
* @see java.awt.event.MouseListener
* @see #addMouseListener
* @see #enableEvents
* @since JDK1.1
protected void processMouseEvent(MouseEvent e) {
boolean canMoveFocus = true;
int currentRowAndColumn[] = getCurrentRowAndColumn(this); //we pull the current row and column
int row = currentRowAndColumn[0];
int column = currentRowAndColumn[1];
if ( e.getID() == MouseEvent.MOUSE_PRESSED || e.getID() == MouseEvent.MOUSE_CLICKED) {
stopCurrentCellBeingEdited(this); //stop the cellbeing edited to grab its value
final String value = (String)getModel().getValueAt(row,column);
try {
Integer.parseInt(value);
} catch (NumberFormatException nfe) {
SwingUtilities.invokeLater(new Runnable(){
public void run() {
JOptionPane.showMessageDialog(null,"Alpha value ="+ value ,"Invalid entry!",JOptionPane.WARNING_MESSAGE);
changeSelection(previousRow,previousCol, true, true);
editCellAt(previousRow, previousCol);
requestFocus(); // or t.getEditorCompo
if ( canMoveFocus ) {
super.processMouseEvent(e);
* The method setValueAt of the JTable is overridden
* to save the previousRow/previousCol to enable us to
* get back to the error cell when a Mouse is clicked.
* This is circumvent the problem, when a mouse is clicked in
* a different cell, the control goes to that cell and
* when you ask for getEditingRow , it returns the row that
* the current mouse click occurred. But we need a way
* to stop at the previous cell(ie. the cell that we were editing
* before the mouse click occurred) when an invalid data has
* been entered and return the focus to that cell
* @param aValue
* @param row
* @param col
public void setValueAt(Object aValue,int row, int col) {     
this.previousRow = row;
this.previousCol = col;
super.setValueAt(aValue,row,col);
/* These are the various KeyStrokes like
ENTER,SHIFT-TAB,TAB,Arrow Keys,Numeric Arrow keys being assigned an Abstract action (key string ) in to the
inputMap first . Then an Action is assigned in the ActionMap object
table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_TAB,0) ,"validateBeforeTabbingToNextCell");
table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_TAB,1) ,"validateBeforeShiftTabbingToNextCell");
table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT,0) ,"validateBeforeMovingToNextCell");
table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_KP_RIGHT,0) ,"validateBeforeMovingToNextCell");
table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN,0) ,"validateBeforeMovingDownToCell");
table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_KP_DOWN,0) ,"validateBeforeMovingDownToCell");
table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0) ,"validateBeforeMovingDownToCell");
table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_UP,0) ,"validateBeforeMovingUpToCell");
table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_KP_UP,0) ,"validateBeforeMovingUpToCell");
table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT,0) ,"validateBeforeMovingLeftToCell");
table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_KP_LEFT,0) ,"validateBeforeMovingLeftToCell");
table.getActionMap().put("validateBeforeTabbingToNextCell",
new validateBeforeTabbingToNextCell());
table.getActionMap().put("validateBeforeShiftTabbingToNextCell",
new validateBeforeShiftTabbingToNextCell());
table.getActionMap().put("validateBeforeMovingToNextCell",
new validateBeforeMovingToNextCell());
table.getActionMap().put("validateBeforeMovingDownToCell",
new validateBeforeMovingDownToCell());
table.getActionMap().put("validateBeforeMovingUpToCell",
new validateBeforeMovingUpToCell());
table.getActionMap().put("validateBeforeMovingLeftToCell",
new validateBeforeMovingLeftToCell());
table.setPreferredScrollableViewportSize(table.getPreferredSize());
return table;
* A table model is created here for 5 rows/5 columns.
* And the isCellEditable is overridden to return true,
* indicating that the cell can be edited.
* So fine tuned control can be done here by saying,
* the user can be allowed to edit Row 1,3 or 5 only.
* or column 1 only etc..
* @return DefaultTableModel
private DefaultTableModel createModel() {
DefaultTableModel model = new DefaultTableModel(5, 5) {
public boolean isCellEditable(int row, int column) {
return true;
return model;
* This method basically returns the currentRow/currentCol value
* If the current Row/Col is being edited then
* it returns the getEditingRow/getEditingColumn
* If its not being edited,
* it return the getAnchorSelectionIndex of the JTables
* ListSelectionModel.
* If the column or row is -1, then it return 0.
* The first element in the int[] array is the row
* The second element in the int[] array is the column
* @param t input a JTable
* @return int[]
* @see ListSelectionModel
* @see JTable
private int[] getCurrentRowAndColumn(JTable t){
int[] currentRowAndColum = new int[2];
int row, column;
if (t.isEditing()) {
row = t.getEditingRow();
column = t.getEditingColumn();
} else {
row = t.getSelectionModel().getAnchorSelectionIndex();
if (row == -1) {
if (t.getRowCount() == 0) {
//actually this should never happen.. we need to return an exception
return null;
column =t.getColumnModel().getSelectionModel().getAnchorSelectionIndex();
if (column == -1) {
if (t.getColumnCount() == 0) {
//actually this should never happen.. we need to return an exception
return null;
column = 0;
currentRowAndColum[0]=row;
currentRowAndColum[1]=column;
return currentRowAndColum;
* Tbis basically a wrapper method for CellEditors,
* stopCellEditing method.
* We need to do this because,
* for instance we have entered a value in Cell[0,0] as 3
* and when we press TAB or mouse click or any other relevant
* navigation keys,
* ** IF the cell is BEING EDITED,
* when we do a getValueAt(cellrow,cellcol) at the TableModel
* level , it would return "null". To overcome this problem,
* we tell the cellEditor to stop what its doing. and then
* when you do a getValueAt[cellrow,cellcol] it would
* return us the current cells value
* @param t Input a JTable
* @see CellEditor
private void stopCurrentCellBeingEdited(JTable t){
CellEditor ce = t.getCellEditor(); /*this not the ideal way to do..
since there is no way the CellEditor could be null.
But a nullpointer arises when trying to work with mouse.. rather than just
keyboard" */
if (ce!=null) {
ce.stopCellEditing();
* The following Action class handles when a
* RIGHT ARROW or NUMERIC RIGHT ARROW is pressed.
* There just a basic checking for Numeric values
* (Integer.parseInt) inside the code.
* When validation is successfull, we need to move it to the
* next Cell.. else take it back to the currentCell
class validateBeforeMovingToNextCell extends AbstractAction {
* The following Action class handles when a
* DOWN ARROW or NUMERIC DOWN ARROW is pressed.
* There is just a basic checking for Numeric values
* (Integer.parseInt) inside the code.
* When validation is successfull, we need to move it to
* down by one Cell.. else take it back to the currentCell
* @param e
public void actionPerformed(ActionEvent e) {
JTable t = (JTable) e.getSource();
int currentRowAndColumn[] = getCurrentRowAndColumn(t);
int row = currentRowAndColumn[0];
int column = currentRowAndColumn[1];
stopCurrentCellBeingEdited(t);
String value = (String)t.getModel().getValueAt(row,column);
if (value!= null && !value.equals("")) {
try {
Integer.parseInt(value);
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null,"Please input numeric values at cell[row="+row+","+"col="+column+"]","Invalid Input!!",JOptionPane.WARNING_MESSAGE);
t.changeSelection(row, column, true, true);
t.editCellAt(row,column);
t.getEditorComponent().requestFocus();
return;
column++;
if (column >= t.getColumnCount())
column = column-1;
if (t.isCellEditable(row, column)) {
t.changeSelection(row, column, true, true);
t.editCellAt(row, column);
if ((t.getEditingRow() == row)
&& (t.getEditingColumn() == column)) {
t.requestFocus();
return;
* The following Action class handles when a
* DOWN ARROW or NUMERIC DOWN ARROW is pressed.
* There just a basic checking for Numeric values
* (Integer.parseInt) inside the code.
* When validation is successfull, we need to move it to the
* down by Cell.. else take it back to the currentCell
class validateBeforeMovingDownToCell extends AbstractAction {
public void actionPerformed(ActionEvent e) {
JTable t = (JTable) e.getSource();
int currentRowAndColumn[] = getCurrentRowAndColumn(t);
int row = currentRowAndColumn[0];
int column = currentRowAndColumn[1];
stopCurrentCellBeingEdited(t);
String value = (String)t.getModel().getValueAt(row,column);
if (value!= null && !value.equals("")) {
try {
Integer.parseInt(value);
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null,"Please input numeric values at cell[row="+row+","+"col="+column+"]","Invalid Input!!",JOptionPane.WARNING_MESSAGE);
t.changeSelection(row, column, true, true);
t.editCellAt(row,column);
t.getEditorComponent().requestFocus();
return;
row++;
if (row >= t.getRowCount())
row = row - 1;
if (t.isCellEditable(row, column)) {
t.changeSelection(row, column, true, true);
t.editCellAt(row, column);
if ((t.getEditingRow() == row)
&& (t.getEditingColumn() == column)) {
t.requestFocus();
return;
* The following Action class handles when a
* UP ARROW or NUMERIC UP ARROW is pressed.
* There just a basic checking for Numeric values
* (Integer.parseInt) inside the code.
* When validation is successfull, we need to move the cursor/
* editable status up by a Cell.. else take it back to the currentCell
class validateBeforeMovingUpToCell extends AbstractAction {
public void actionPerformed(ActionEvent e) {
JTable t = (JTable) e.getSource();
int currentRowAndColumn[] = getCurrentRowAndColumn(t);
int row = currentRowAndColumn[0];
int column = currentRowAndColumn[1];
stopCurrentCellBeingEdited(t);
String value = (String)t.getModel().getValueAt(row,column);
if (value!= null && !value.equals("")) {
try {
Integer.parseInt(value);
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null,"Please input numeric values at cell[row="+row+","+"col="+column+"]","Invalid Input!!",JOptionPane.WARNING_MESSAGE);
t.changeSelection(row, column, true, true);
t.editCellAt(row,column);
t.getEditorComponent().requestFocus();
return;
row--;
if (row <0)
row = 0;
if (t.isCellEditable(row, column)) {
t.changeSelection(row, column, true, true);
t.editCellAt(row, column);
if ((t.getEditingRow() == row)
&& (t.getEditingColumn() == column)) {
t.requestFocus();
return;
* The following Action class handles when a
* LEFT ARROW or NUMERIC LEFT ARROW is pressed.
* There just a basic checking for Numeric values
* (Integer.parseInt) inside the code.
* When validation is successfull, we need to move the cursor/
* editable status up by a Cell.. else take it back to the currentCell
class validateBeforeMovingLeftToCell extends AbstractAction {
public void actionPerformed(ActionEvent e) {
JTable t = (JTable) e.getSource();
int currentRowAndColumn[] = getCurrentRowAndColumn(t);
int row = currentRowAndColumn[0];
int column = currentRowAndColumn[1];
stopCurrentCellBeingEdited(t);
String value = (String)t.getModel().getValueAt(row,column);
if (value!= null && !value.equals("")) {
try {
Integer.parseInt(value);
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null,"Please input numeric values at cell[row="+row+","+"col="+column+"]","Invalid Input!!",JOptionPane.WARNING_MESSAGE);
t.changeSelection(row, column, true, true);
t.editCellAt(row,column);
t.getEditorComponent().requestFocus();
return;
column--;
if (column <0)
column = 0;
if (t.isCellEditable(row, column)) {
t.changeSelection(row, column, true, true);
t.editCellAt(row, column);
if ((t.getEditingRow() == row)
&& (t.getEditingColumn() == column)) {
t.requestFocus();
return;
* The following Action class handles when a TAB is pressed.
* There just a basic checking for Numeric values
* (Integer.parseInt) inside the code.
* When validation is successfull, we need to move the cursor/
* editable status up by a Cell.. else take it back to the currentCell
class validateBeforeTabbingToNextCell extends AbstractAction {
public void actionPerformed(ActionEvent e) {
JTable t = (JTable) e.getSource();
int currentRowAndColumn[] = getCurrentRowAndColumn(t);
int row = currentRowAndColumn[0];
int column = currentRowAndColumn[1];
stopCurrentCellBeingEdited(t);
String value = (String)t.getModel().getValueAt(row,column);
if (value!= null && !value.equals("")) {
try {
Integer.parseInt(value);
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null,"Please input numeric values at cell[row="+row+","+"col="+column+"]","Invalid Input!!",JOptionPane.WARNING_MESSAGE);
t.changeSelection(row, column, true, true);
t.editCellAt(row,column);
t.getEditorComponent().requestFocus();
return;
column++;
int rows = t.getRowCount(), columns = t.getColumnCount();
while (row < rows) {
while (column < columns) {
if (t.isCellEditable(row, column)) {
t.changeSelection(row, column, true, true);
t.editCellAt(row, column);
if ((t.getEditingRow() == row)
&& (t.getEditingColumn() == column)) {
t.requestFocus();
return;
column++;
row++;
column = 0;
row = 0;
if (t.isCellEditable(row, column)) {
t.changeSelection(row, column, true, true);
t.editCellAt(row, column);
if ((t.getEditingRow() == row)
&& (t.getEditingColumn() == column)) {
t.requestFocus();
return;
* The following Action class handles when a SHIFT TAB is pressed.
* There just a basic checking for Numeric values
* (Integer.parseInt) inside the code.
* When validation is successfull, we need to move the cursor/
* editable status up by a Cell.. else take it back to the currentCell
class validateBeforeShiftTabbingToNextCell extends AbstractAction {
public void actionPerformed(ActionEvent e) {
JTable t = (JTable) e.getSource();
int currentRowAndColumn[] = getCurrentRowAndColumn(t);
int row = currentRowAndColumn[0];
int column = currentRowAndColumn[1];
stopCurrentCellBeingEdited(t);
String value = (String)t.getModel().getValueAt(row,column);
if (value!= null && !value.equals("")) {
try {
Integer.parseInt(value);
} catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null,"Please input numeric values at cell[row="+row+","+"col="+column+"]","Invalid Input!!",JOptionPane.WARNING_MESSAGE);
t.changeSelection(row, column, true, true);
t.editCellAt(row,column);
t.getEditorComponent().requestFocus();
return;
column--;
int rows = t.getRowCount(), columns = t.getColumnCount();
while ((row < rows) && (row >= 0)) {
while ((column < columns) && (column >= 0)) {
if (t.isCellEditable(row, column)) {
t.changeSelection(row, column, true, true);
t.editCellAt(row, column);
if ((t.getEditingRow() == row)
&& (t.getEditingColumn() == column)) {
t.requestFocus();
return;
column--;
row--;
column = columns - 1;
row = rows - 1;
if (t.isCellEditable(row, column)) {
t.changeSelection(row, column, true, true);
t.editCellAt(row, column);
if ((t.getEditingRow() == row)
&& (t.getEditingColumn() == column)) {
t.requestFocus();
return;
public static void main(String[] args) {
new TableCellValidator();

Similar Messages

  • Is there a setting to return to the inbox after deleting/filing an open email?

    Hi all,
    I'm running iPhone 4s. Is there a setting to have the mail client return to the inbox after deleting/filing an open email? It currently just opens the next email.
    Any help is greatly appreciated.
    Thanks.

    Hi,
    You could try is to '''Disable''' the Foxit, Adobe and Office '''Plugins''' in '''Tools '''('''Alt '''+ '''T''') > '''Add-ons''' and use the normal Firefox Open with (when you click on a link) to browse/open it in the required application.
    [https://support.mozilla.org/en-US/kb/Using%20plugins%20with%20Firefox Using plugins]

  • T.Code for  issues return by the user after month closing

    Dear SAPient's,
    Give us the transaction facility available in SAP to account the issues
    return by the user after month closing.
    regards,
    Bijay Jha

    Dear SAPient's,
    Actually I want to know that when the Goods Issued and from that some goods are returned back due to any reason.
    I want to know Is there any T.Code from which i can get full details of Goods which is returned after Issuing in one month.
    Warm Regards,
    Bijay Kumar Jha

  • I am having trouble with the "numbers" app on my MacBook Air. I go to print my document and that works just fine. I cannot however return to the document after printing. What do I have to do?

    I am having trouble with the "numbers" app on my MacBook Air. I go to print my document and that works just fine. I cannot however return to the document after printing. What do I have to do?

    RR,
    Not to worry, you're not the first to expect Print to finish by returning you to the edit mode. The thing is that Printing is so hit and miss with this version of the app, you will probably want to stay in the Print window for more than one attempt.
    Jerry

  • Setting tooltip when the content of the cell is not visible in jtable

    hello,
    i want to set a tooltip when the content of the cell is not visible in jtable
    please guide me.
    thanks
    daya

    thanks for your replay,
    i did in this way
    final TableColumn colTableColumn = getColumnModel().getColumn(vColIndex);
                        if (colTableColumn.getWidth() < this.getPreferredSize().width)
                            setToolTipText(value.toString());
                        else
                            setToolTipText(null);
                        }thanks
    daya

  • How to keep the select arrow on the same button when returning to the menue after finished feature?

    Hello,
    just after my primary question is answered and I corrected my buttons there's another one which I cannot answer myself:
    I'm putting together a DVD with menues which contain a lot of options/buttons. People who watched the DVD wanted that the select/highlight arrow stays/returns to the button they selected prior. That's because there are so many buttons/options that some people might not remember which feature they just watched. So this means if people select the "Vacation 2008" button/feature the select/highlight arrow should be on the same button after the feature is finished and it returns to the menue.
    Since I haven't seen any functions/options for this: Is it possible to do or isn't it or does it happen just naturally?
    Hope this isn't too confusing :-)
    Help is appreciated!
    Thank you,
    Chris...

    ChrisHei wrote:
    Where would I select "Last Menu" for this to happen? In the properties for the button or for the timeline? And where exactly: "overwrite" or "remote menu" selection?
    Not in any override. Don't set any overrides unless you understand exactly how they work, or they will royally mess up your disc navigation.
    Normally, you select "Return to Last Menu" for an end action of the object (timeline, slideshow, playlist, etc.) that is playing. You can also set the Menu Remote property for the timeline/slideshow to "Return to Last Menu".

  • Choosing the type of data valid for caching

    During discussions with other members of our team, we have been questioning what objects we should and shouldn't cache.
         One suggestion has been to cache account details whilst they are used (like a user session) and then either remove or let the objects expire from the cache. This would allow system components to access the object without having to pass the object around.
         To me, this isn't the sort of data that is traditionally cached but I'd be interested to hear other views. Coherence does seem to allow the boundaries to be pushed.
         Mike

    Hi Mike,
         Coherence is commonly used for a number of scenarios:
         1) The most obvious, data caching (near cache)
         2) Metadata and security information (replicated cache)
         3) Session management (near cache)
         4) Messaging and queueing (distributed cache)
         Coherence is very well suited for most situations that involve sharing data between cluster members or communicating between members. Pretty much any scenario outside of bulk video streaming (though people do ask about that occasionally).
         In your situation, Coherence makes data sharing extremely simple, which is a further benefit (no need for RMI, etc).
         The decision is based on whether it is cheaper to pull data from cache than from an external data source. The answer is almost always yes, for two reasons: (1) cached data is very efficient to manage and access and (2) the application tier is very inexpensive (cost-wise) in terms of capital and recurring expenses relative to the back-end tier(s).
         Jon Purdy
         Tangosol, Inc.

  • Re: How long does it take for vdbench to stop after data validation error?

    Hi,
    I'm a newbe to this community - so please excuse me if I've made some mistake during this request.
    I'm replying here as opening a new thread was not possible for me.
    This is  DI related issue also (If you can separate it later - that is preferred).
    I'm setting data_error=1000000 or any other very large number to have a continues testing for long time.
    The scenario I'm experiencing is the following:
    - Initially I get an I/O error from the storage device
    - After a few more io's I'm getting DI errors.
    The DI errors were checked by R&D and the reply and explanation were the following:
    The guy showed an I/O going into the disk and receiving an IO error.
    Later on the vdbench is trying to READ the same i/o that got the IO error as if it was actually written to the disk (which did not happen), thus receiving DI error.
    Is this a bug in vdbench or expected behavior? and how can I avoid this scenario / running long test that do not stop upon single DI failure or ignore IO error?
    Hi,
    Thanks,
    Lior./

    Vdbench50401. I won't have system access for the next week so I am only 99% sure, but one of the later versions before 50402 indeed had a case where a failed write was later on re-read and an invalid corruption therefore was reported. 50402 definitely fixes that.
    Note though, that the write error never should have happened in the first place so that in itself to me already is a data corruption.
    Henk.

  • I can no longer click on a tab 'inbox' to return to the inbox after reading an email tab is not shown when I go to a mwssage

    The 'inbox' tab has suddenly disappeared from the top left of my screen. I can no longer return from a message to the inbox in one click. Can somebody help?
    Regards
    Trevor Green

    Thunderbird has had a tabbed interface since version three and still this forum gets people complaining they can not see the inbox tab because they never actually close a tab.
    So right click a tab and select close other tabs. Perhaps you might consider closing the tabs you open to read your mail when you are done with them and then you will not have the hassle.

  • What equipment (HTC Imagio) do I need to return with the cell phone?

    Hi,
    I took a one month global travel program Imagio phone, and now need to return the equipment for credit. However, I can't recall all the pieces that came with it. So far, I have the htc imagio phone unit, along with the following:
    one connection wire
    one unit (the charger?) with a 2-prong plug built into it
    one htc unit (adapter?) also with a 2-prong plug built into it
    a teeny-teeny-tiny screwdriver
    Does anyone know if I am missing any part? Sorry my memory is so lame. I know, I should have written it down! My bad.
    Thanks, VeeMar

    Just return the modem and its power cord/power pack. When they provide Ethernet cables, coax, and splitters, those items become yours.

  • Conditional formating if the cell contains any date

    Hi,
    In my excel sheet i have one column containing only date (US format) or else they are blank. I want to format the cells containing date to Red color. How do i do it
    Please help

    If you mean the font colour, just format the cells to have red font.
    So I guess you mean interior colour.
    You haven't said which version of Excel - it always helps.
    For Excel 2003, for example, select the cells then
    Format > Conditional Formatting > Cell Value Is > Greater Than: 0 > Format > Patterns > Red
    For Excel 2007 or 2010, Home > Conditional Formatting > Highlight Cells Rules  > Greater Than > 0 with Light red fill
    Bill Manville. Excel MVP, Oxford, England. www.manville.org.uk

  • How to do date validation in Web Dynpro java

    Hi
    We have one requirement that One input field with date type is there.When we take Date type input field then in web dynpro Date navigater is appearing by default.Our requirement is if user enters the date manually in the input filed instead of chossing the date from the Date navigator then how we will do the following date validations manually:
    a. If user is entering the date in any format then it should convert it to dd.mm.yy format.
    b. How to do leap year validation?Suppose user is entering   29.02.20007 then it should display Invalid date.
    c. How to do the follwing date validation:
        Let's say that current running hours(Text Vie
    w) on a given engine is 100, entered on 10-Jun-2008(Running hour date-Text view)).
    -On 15-Jun-2008(New Running Hour Date-input field), I try to enter a value of 300 hours(New running hour-input field).
    -This is impossible, because only 5x24=120 hrs has passed from the previous update.
    -Hence, in this case the maximum value I can enter is 100+120=220.
    Can anybody help me in solving the above 3 date validation?

    Hi Susmita,
    For your 3 rd requirement...
    Initially you will be storing the first date entered by the user right???
    Say that date is D1. and user entered hours is H1.
    now after some days at day D2 user again trying to enter some hours say H2. Now you have to restrict user from entering hours which are
    greater than 24*D2-D1....
    so now you have to get D2-D1....
    For this....
    long l1=youdate1.getTime();   // This will convert your Date D1 into long...
    then,
    Date d=new Date(System.currentTimeMillis());
    long l2=d.getTime();  //which is a long value of current date...
    So Now l2-l1 will give you number of days between past date and today's date...
    So On Save you check for
    if((l2-l1)*24<(H2-H1))
    message("Please enter valied number of hours");
    Hope this will help you....
    Regards,
    Srinivas.

  • EPM Formatting Sheet Issue - Right click on the cell and lock the cell

    Dear Experts,
    I have come across an issue. Earlier I worked on BPC NW 10 integrated with Ms Excel 2007. I applied a feature of locking the cell linked with specific member in Input Template and Report by going to EPM Formatting Sheet, selecting dimension member (Which I want to lock in Input Sheet and Report), right clicking on the cell under Data Column and selecting the option "Lock the Cell". As I protect my Input sheet and Report, and do refresh, the cell linked with specific dimension member get locked. Hope everyone has used this feature.
    Now I have Ms Excel 2013 installed in system. I am not able to find this feature. if anyone has tried this feature in BPC NW 10 with Ms Excel 2013. Please help me out. As this was good feature by BPC.
    Regards,
    David

    Hi Andy,
    I am using Excel 2013, When I checked, I did not find "Lock Option". When I was using Excel 2007, then I had this locking option. below are the details that you asked for...
    When I right click on cell in EPM formatting sheet, I get options as shown below in screen shot, but there is no "Lock Option"
    Regards,
    David

  • Data Validation in XML Spreadsheet 2003

    Hi,
    try this:
    1) create new Excel worksheet
    2) select A1:A10
    3) set Data Validation to List, on Sheet2!A1:A10
    4) save the file as XML Worksheet 2003
    5) reopen the file
    6) data validation does not work anymore
    is this a bug?

    Hi
    You don't say what version of Excel you are using. However I can confirm that the feature does fail when following your method in 2010.
    The file type you are using does not support "Data Consolidation References" (see help in propmt when saving file).  This includes linking between sheets.  You'll notice your data validation source becomes =sheet2!#REF.
    If the list was on the same sheet then the validation would work.
    Hope this helps
    G North MCT

  • Is there any way for a formula to ignore other cells without data in them yet?

    I'm trying to create a spreadsheet to track my grades. I have all the formulas set up (quizzes, tests, etc. are calculated separately because they are all weighted differently towards the final grade). The "Final Grade" formula has an error because some of the other sets don't have data in them yet (i.e. haven't taken a test yet). Is there any way to get the Final Grade formula to ignore the cells without data yet?
    Formula for each category (quizzes, tests, etc): ((SUM [total point column]) / (SUM [total points possible column])) * 100
    Formula for Final Grade: (([quiz grade] * 0.15) + ([test grade] * 0.25)) * 100

    Hi badwolfgirl,
    I agree with quinn that merged cells can lead to many problems. Here is a table with no merged cells
    Two Header Rows, one Header Column and one Footer Row.
    I have used Cell Fills (colours) to distinguish Quizzes, Tests, Final Exam and Projects.
    Formula in Footer B8
    =IF(SUM(C)=0,"",100×SUM(C)÷SUM(D))
    if the SUM of C is 0 (zero), insert "" (NULL) to make it appear blank. Else insert 100xSUM(C)/SUM(D) to show the % score.
    Formula in C8
    =SUM(C)
    Formula in D8
    =SUM(D)
    Select B8 to D8 and drag the yellow Fill Handle to the right.
    If you want the appearance of merged cells, you can delete the contents of B1 and D1, then show No Border to the left and right of C1
    And so on for EFG etc.
    The cells are still there (to avoid problems down the track.
    Regards,
    Ian.
    Edited to rearrange paragraphs. Ian.

Maybe you are looking for

  • Error when executing FM in Target System for File to RFC flow

    Hi, I am doing File to RFC. I have given Dialog User(my user) login details in RFC reciver Comm Channel for Testing purpose. I am getting the below error. Receiver channel 'CC_P1EUNL_WRAPPER_RFC_Rcv' for party '', service 'INTEGRATION_SERVER_PID' (in

  • Stuck in Recovery Mode

    Hi! I downloaded iOS7 via a Wi-Fi network earlier today, and I've been waiting to install it until recently. However, I was having a couple errors when I tried installing it, so I turned it off and back on again, and it started installing just fine.

  • How to close a row in a Sales Order?

    Hi , How can i close a row in a sales order , I can do it in the purchase order, but in the sales order if i have two or more items of which i need to close one, i cannot do so as it gives an error. SAP version used 2005B PL41. Jyoti

  • Scroll Bar no longer visible - how do I get it back??

    I have recently upgraded my Mac desktop to Mountain Lion and I no longer have the scroll bar visible when I use Safari. Any ideas how I can get it back please? Thanks

  • TS2755 My iMessages on iPad 2 work only part of the time .

    My iMessages works intermittently. It work fine for days, then has a few hours where it will not deliver messages. I have a wifi connection, not phone connection. My husband's iPhone works fine using the same wifi network whirl I am having trouble. I