/*
* 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.javascript;
import com.webobjects.appserver.WOComponent;
import com.webobjects.appserver.WOContext;
import com.webobjects.foundation.NSDictionary;
import er.extensions.foundation.ERXValueUtilities;
/**
* Useful for creating a javascript window for a form submit.
* @binding multipleSubmit true the form multiple submit
* @binding targetDictionary dictionary (optionally) containing
* <ul>
* <li>width - width of the window</li>
* <li>targetName - name of the target window</li>
* <li>height - height of the target window</li>
* <li>scrollbars - NO/false if you don't want scrollbars</li>
* </ul>
*/
public class ERXJSFormForTarget 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 ERXJSFormForTarget(WOContext aContext) {
super(aContext);
}
public Boolean multipleSubmit;
public NSDictionary targetDictionary;
public String targetString(){
String result = "";
if(targetDictionary != null){
StringBuilder buffer = new StringBuilder();
buffer.append( targetDictionary.valueForKey("targetName")!=null ?
targetDictionary.valueForKey("targetName") : "foobar");
buffer.append(":width=");
buffer.append( targetDictionary.valueForKey("width")!=null ?
targetDictionary.valueForKey("width") : "{window.screen.width/2}");
buffer.append(", height=");
buffer.append( targetDictionary.valueForKey("height")!=null ?
targetDictionary.valueForKey("height") : "{myHeight}");
buffer.append(',');
buffer.append( ERXValueUtilities.booleanValueWithDefault(targetDictionary.valueForKey("scrollbars"), true) ? " " : "scrollbars");
buffer.append(", {(isResizable)?'resizable':''}, status");
//System.out.println("buffer = "+buffer.toString());
result = buffer.toString();
}else{
result = "foobar:width={window.screen.width/2}, height={myHeight}, scrollbars, {(isResizable)?'resizable':''}, status";
}
return result;
}
}