Here is what I did...
ActionLink addOptionLink = new ActionLink("addOptionLink", "New Option",
this, "OnAddOptionLink");
optionFormTable.addActionLink(addOptionLink);
public class JSIFormTable extends FormTable {
private static final long serialVersionUID = 1L;
protected final List<ActionLink> actionLinks = new ArrayList<>();
public JSIFormTable() {
super();
}
public JSIFormTable(String name, Form form) {
super(name, form);
}
public JSIFormTable(String name) {
super(name);
}
public void addActionLink(ActionLink actionLink){
if (actionLink == null) {
throw new IllegalArgumentException("Null actionLink parameter");
}
actionLinks.add(actionLinks.size(), actionLink);
}
public void removeActionLink(ActionLink actionLink){
actionLinks.remove(actionLink);
}
public List<ActionLink> getActionLinks() {
return actionLinks;
}
/**
* Render the Form Buttons to the string buffer.
* <p/>
* This method is only invoked if the Form is created by the FormTable,
* and not when the Form is defined externally.
*
* @param buffer the StringBuffer to render to
*/
protected void renderButtons(HtmlStringBuffer buffer) {
Form form = getForm();
List<Button> buttonList = form.getButtonList();
List<ActionLink> actionLinks = getActionLinks();
if (!buttonList.isEmpty()) {
buffer.append("<table cellpadding=\"0\" cellspacing=\"0\"");
if (getAttribute("width") != null) {
buffer.appendAttribute("width", getAttribute("width"));
}
buffer.append("><tbody><tr><td");
buffer.appendAttribute("align", form.getButtonAlign());
buffer.append(">\n");
buffer.append("<table class=\"buttons\" id=\"");
buffer.append(getId());
buffer.append("-buttons\"><tbody>\n");
buffer.append("<tr class=\"buttons\">");
for (Button button : buttonList) {
buffer.append("<td class=\"buttons\"");
buffer.appendAttribute("style", form.getButtonStyle());
buffer.closeTag();
button.render(buffer);
buffer.append("</td>");
}
for (ActionLink actionLink : actionLinks) {
buffer.append("<td class=\"buttons\"");
buffer.closeTag();
actionLink.render(buffer);
buffer.append("</td>");
}
buffer.append("</tr>\n");
buffer.append("</tbody></table>\n");
buffer.append("</td></tr></tbody></table>\n");
}
}
}
On Tue, Aug 13, 2013 at 10:41 PM, Bob Schellink <[email protected]> wrote:
> Hi,
>
> Doesn't look like it does. You could override the method
> Formtable#protected void renderButtons to enable this. Or use the FormTable
> constructor which accepts a Form object.
>
> regards
>
> Bob
>
>
> On Wed, Aug 14, 2013 at 4:07 AM, Kristian Lind <[email protected]> wrote:
>
>> Hi.
>>
>> is it not possible the add a ActionLink to a FormTable. ?
>>
>> I have a submit button..
>>
>> Button button = new Submit("save", "Save", this, "onSaveOptionFormTable");
>> button.addStyleClass("btn btn-primary");
>> optionFormTable.getForm().add(button);
>>
>> But I would like to use a ActionLink, cause I need to go to another page
>> and need to set a parameter, and would like to have the button ( ActionLink
>> ) together with the save button.
>>
>> ActionLink addOptionLink = new ActionLink("addOptionLink", "New Option",
>> this, "OnAddOptionLink");
>> addOptionLink.addStyleClass("btn btn-primary");
>> addOptionLink.setParameter("productId", productId);
>> optionFormTable.getForm().add(addOptionLink);
>>
>> But the link does not show up... only the Save button.
>>
>>
>>
>> --
>> Best regards
>>
>> Kristian Lind
>>
>
>
--
Best regards
Kristian Lind