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

Reply via email to