/*
* Copyright (C) NetStruxr, Inc. All rights reserved.
*
* This software is published under the terms of the NetStruxr
* Public Software License version 0.5, a copy of which has been
* included with this distribution in the LICENSE.NPL file. */
package er.extensions.components;
import java.util.Objects;
import com.webobjects.appserver.WOActionResults;
import com.webobjects.appserver.WOComponent;
import com.webobjects.appserver.WOContext;
/**
* Sets a key value when the hyperlink is clicked.
*
* @binding value The value to set when the hyperlink is set
* @binding binding The method to call to set the value
* @binding string optional link text
* @binding action optional action
* @binding class optional css class name
*/
public class ERXHyperlinkKeyValueSetter extends WOComponent {
/**
* Do I need to update serialVersionUID?
* See section 5.6 <cite>Type Changes Affecting Serialization</cite> on page 51 of the
* <a href="http://java.sun.com/j2se/1.4/pdf/serial-spec.pdf">Java Object Serialization Spec</a>
*/
private static final long serialVersionUID = 1L;
public ERXHyperlinkKeyValueSetter(WOContext aContext) {
super(aContext);
}
@Override
public boolean isStateless() { return true; }
public WOActionResults action() {
setValueForBinding(valueForBinding("value"), "binding");
return (WOActionResults) (canGetValueForBinding("action") ? valueForBinding("action") : null);
}
public boolean disabled() {
Object val = valueForBinding("binding");
return Objects.equals(val, valueForBinding("value"));
}
}