Author: schof
Date: Wed May 4 16:02:10 2005
New Revision: 168207
URL: http://svn.apache.org/viewcvs?rev=168207&view=rev
Log:
Partial fix for MyFaces-159
Modified:
myfaces/trunk/src/components/org/apache/myfaces/custom/tree2/UITreeData.java
myfaces/trunk/src/myfaces/javax/faces/Messages.properties
Modified:
myfaces/trunk/src/components/org/apache/myfaces/custom/tree2/UITreeData.java
URL:
http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/custom/tree2/UITreeData.java?rev=168207&r1=168206&r2=168207&view=diff
==============================================================================
---
myfaces/trunk/src/components/org/apache/myfaces/custom/tree2/UITreeData.java
(original)
+++
myfaces/trunk/src/components/org/apache/myfaces/custom/tree2/UITreeData.java
Wed May 4 16:02:10 2005
@@ -15,6 +15,8 @@
*/
package org.apache.myfaces.custom.tree2;
+import org.apache.myfaces.util.MessageUtils;
+
import javax.faces.component.UIComponentBase;
import javax.faces.component.NamingContainer;
import javax.faces.component.UIComponent;
@@ -26,14 +28,18 @@
import javax.faces.event.FacesListener;
import javax.faces.el.ValueBinding;
import javax.faces.application.FacesMessage;
+import javax.faces.application.*;
+import java.text.MessageFormat;
import java.io.Serializable;
import java.io.IOException;
import java.util.Iterator;
import java.util.Map;
import java.util.HashMap;
import java.util.List;
-
+import java.util.ResourceBundle;
+import java.util.Locale;
+import java.util.*;
/**
* TreeData is a [EMAIL PROTECTED] UIComponent} that supports binding data
stored in a tree represented
@@ -50,9 +56,9 @@
{
public static final String COMPONENT_TYPE = "org.apache.myfaces.Tree2";
- public static final String COMPONENT_FAMILY =
"org.apache.myfaces.HtmlTree2"; //"javax.faces.Data";
+ public static final String COMPONENT_FAMILY =
"org.apache.myfaces.HtmlTree2";
private static final String DEFAULT_RENDERER_TYPE =
"org.apache.myfaces.Tree2";
-
+ private static final String MISSING_NODE =
"org.apache.myfaces.tree2.MISSING_NODE";
private static final int PROCESS_DECODES = 1;
private static final int PROCESS_VALIDATORS = 2;
private static final int PROCESS_UPDATES = 3;
@@ -114,7 +120,8 @@
setNodeId(childEvent.getNodeId());
FacesEvent nodeEvent = childEvent.getFacesEvent();
nodeEvent.getComponent().broadcast(nodeEvent);
- setNodeId(currNodeId);
+ setNodeId("666:666:666");
+ //setNodeId(currNodeId);
return;
} else
{
@@ -287,7 +294,26 @@
{
return;
}
- model.setNodeId(nodeId);
+
+ try
+ {
+ model.setNodeId(nodeId);
+ }
+ catch (IndexOutOfBoundsException aob)
+ {
+ /**
+ * This might happen if we are trying to process a commandLink for
a node that node that no longer
+ * exists. Instead of allowing a RuntimeException to crash the
application, we will add a warning
+ * message so the user can optionally display the warning. Also,
we will allow the user to provide
+ * their own value binding method to be called so they can handle
it how they see fit.
+ */
+ FacesMessage message = MessageUtils.getMessage(MISSING_NODE, new
String[] {nodeId});
+ message.setSeverity(FacesMessage.SEVERITY_WARN);
+ FacesContext.getCurrentInstance().addMessage(getId(), message);
+
+ /** @todo call hook */
+ /** @todo figure out whether or not to abort this method
gracefully */
+ }
restoreDescendantState();
@@ -304,7 +330,6 @@
}
}
}
-
/**
* Gets an array of String containing the ID's of all of the [EMAIL
PROTECTED] TreeNode}s in the path to
Modified: myfaces/trunk/src/myfaces/javax/faces/Messages.properties
URL:
http://svn.apache.org/viewcvs/myfaces/trunk/src/myfaces/javax/faces/Messages.properties?rev=168207&r1=168206&r2=168207&view=diff
==============================================================================
--- myfaces/trunk/src/myfaces/javax/faces/Messages.properties (original)
+++ myfaces/trunk/src/myfaces/javax/faces/Messages.properties Wed May 4
16:02:10 2005
@@ -124,4 +124,7 @@
org.apache.myfaces.ticker.NOCONNECTION_detail = Maybe you are behind a
firewall?
org.apache.myfaces.ISBN.INVALID = Validation Error
-org.apache.myfaces.ISBN.INVALID_detail =The given value ({0}) is not a correct
isbn code.
\ No newline at end of file
+org.apache.myfaces.ISBN.INVALID_detail =The given value ({0}) is not a correct
isbn code.
+
+org.apache.myfaces.tree2.MISSING_NODE = Missing Node
+org.apache.myfaces.tree2.MISSING_NODE_detail = The requested node "{0}" does
not exist.
\ No newline at end of file