The if
(StringUtils.isNotBlank(id)) {
is returning true...
So your Vehicle has a method getCustomer(), and the customer a method
getId()
My PrintProviderMockEnt has a method that return a list
of PrintProviderExceptionMockEnt...
public Set<PrintProviderExceptionMockEnt> getExceptions()
At the moment the user can only choose one exception, so there will always
only be one item in the list.
To try this I made a method
public PrintProviderExceptionMockEnt getException() {
That just returns the first and only exception in the list..
and change my Select to...
// Select exception
exception = new Select("exception", true);
But nothing is happening :(
On Sat, May 18, 2013 at 8:09 AM, Gilberto <[email protected]> wrote:
> My Vehicle class has the Customer class as instance variable[1]. Thus, I
> must create my Select with the appropriated bind path -
>
> Select customerSelect = new Select("customer.id");
>
> are you using this approach?
>
> [1]
> http://code.google.com/p/construtor/source/browse/trunk/park-samples/park-jpa/src/main/java/park/model/Vehicle.java
>
>
>
> 2013/5/18 Bob Schellink <[email protected]>
>
>> Do you use a debugger?
>>
>> Does this line execute?
>> if (StringUtils.isNotBlank(id)) {
>>
>> or the else part?
>>
>> In your onGet the form.copyFrom should populate the Select. If not your
>> naming is probably off. You can manually set the Select value with:
>>
>> select.setValue(idOfAnException);
>>
>> regards
>>
>> Bob
>>
>>
>> On 2013/05/18 02:55, Kristian Lind wrote:
>>
>> I can simply not get this to work...
>>
>> My PrintProviderMockEnt has a list of PrintProviderMockMTMExceptionEnt.
>> The user can, for now, only choose on exception... so there is only one
>> exception in that list.
>> It looks the the name field in working...
>>
>>
>> package com.farheap.jsi.dashboard.pages.customer;
>>
>> import java.util.ArrayList;
>> import java.util.Iterator;
>> import java.util.List;
>>
>> import org.apache.click.ActionListener;
>> import org.apache.click.Control;
>> import org.apache.click.control.Form;
>> import org.apache.click.control.HiddenField;
>> import org.apache.click.control.Option;
>> import org.apache.click.control.Select;
>> import org.apache.click.control.Submit;
>> import org.apache.click.control.TextField;
>> import org.apache.click.dataprovider.DataProvider;
>> import org.apache.click.util.ClickUtils;
>> import org.apache.commons.lang.StringUtils;
>> import org.slf4j.Logger;
>> import org.slf4j.LoggerFactory;
>>
>> import com.farheap.jsi.dashboard.utils.BorderedPage;
>> import com.farheap.jsi.dashboard.utils.SessionBeanManager;
>> import com.farheap.jsi.exceptions.BusinessException;
>> import com.farheap.jsi.exceptions.SystemException;
>> import com.farheap.jsi.model.PrintCustomerEnt;
>> import com.farheap.jsi.model.ppmock.PrintProviderExceptionMockEnt;
>> import com.farheap.jsi.model.ppmock.PrintProviderMockEnt;
>> import com.farheap.jsi.session.DashboardSBBeanLocal;
>>
>> /**
>> */
>> public class CustomerPrintProvider extends BorderedPage {
>> private static final long serialVersionUID = 1L;
>> private static final Logger logger =
>> LoggerFactory.getLogger(CustomerPrintProvider.class);
>> private static final String PAGE_TITLE_CREATE = "Add Test Print
>> Provider";
>> private static final String PAGE_TITLE_EDIT = "Edit Test Print
>> Provider";
>> private DashboardSBBeanLocal dashboardSBBeanLocal =
>> SessionBeanManager.getDashboardSBBeanLocal();
>> private EditForm form;
>> private boolean newTestPrintProvider = false;
>> private PrintProviderMockEnt printProviderMockEnt;
>> private PrintCustomerEnt printCustomerEnt;
>> private String id;
>> private String customerName;
>>
>> @Override
>> public final void onInit() {
>> super.onInit();
>> form = new EditForm("form");
>> addModel("newTestPrintProvider", newTestPrintProvider);
>> addControl(form);
>> }
>>
>> @Override
>> public void onGet() {
>> super.onGet();
>> customerName = getContext().getRequest().getUserPrincipal().getName();
>> id = getContext().getRequest().getParameter("id");
>> try {
>> printCustomerEnt = dashboardSBBeanLocal.findCustomer(customerName);
>> if (StringUtils.isNotBlank(id)) {
>> printProviderMockEnt =
>> dashboardSBBeanLocal.getPrintProviderMock(Long.parseLong(id));
>> form.copyFrom(printProviderMockEnt);
>> } else {
>> newTestPrintProvider = true;
>> }
>> } catch (BusinessException e) {
>> addModel("error", e.getMessage());
>> return;
>> } catch (SystemException e) {
>> // TODO show errorpage
>> logger.error(e.getMessage(), e);
>> }
>> }
>>
>> @Override
>> public final String getTitle() {
>> if (printProviderMockEnt == null) {
>> return PAGE_TITLE_CREATE;
>> } else {
>> return PAGE_TITLE_EDIT;
>> }
>> }
>>
>> public final boolean onSave() throws SystemException {
>> if (form.isValid()) {
>> try {
>> if (newTestPrintProvider) {
>> printProviderMockEnt = new PrintProviderMockEnt();
>> printProviderMockEnt.setName(form.nameField.getValue());
>> printProviderMockEnt.setPrintCustomerEnt(printCustomerEnt);
>> List<String> selectedValues = form.exception.getSelectedValues();
>> for (String strId : selectedValues) {
>> Long id = Long.parseLong(strId);
>> PrintProviderExceptionMockEnt printProviderExceptionMockEnt = new
>> PrintProviderExceptionMockEnt();
>> printProviderExceptionMockEnt.setId(id);
>> printProviderMockEnt.addException(printProviderExceptionMockEnt, true);
>> }
>> dashboardSBBeanLocal.saveNewPrintProviderMock(printProviderMockEnt);
>> } else {
>> PrintProviderMockEnt printProviderMockEnt =
>> dashboardSBBeanLocal.getPrintProviderMock((Long)
>> form.printProviderMockEntId.getValueObject());
>> printProviderMockEnt.setName(form.nameField.getValue());
>> printProviderMockEnt.getMtmException().clear();
>> List<String> selectedValues = form.exception.getSelectedValues();
>> for (String strId : selectedValues) {
>> Long id = Long.parseLong(strId);
>> PrintProviderExceptionMockEnt printProviderExceptionMockEnt = new
>> PrintProviderExceptionMockEnt();
>> printProviderExceptionMockEnt.setId(id);
>> printProviderMockEnt.addException(printProviderExceptionMockEnt, true);
>> }
>> dashboardSBBeanLocal.updatePrintProviderMock(printProviderMockEnt);
>> }
>> form.clearValues();
>> setRedirect(CustomerPrintProviders.class);
>> } catch (BusinessException e) {
>> addModel("error", e.getMessage());
>> return false;
>> } catch (SystemException e) {
>> logger.error(e.getMessage(), e);
>> throw e;
>> }
>> }
>> return true;
>> }
>>
>> public final boolean onCancel() {
>> setRedirect(CustomerPrintProviders.class);
>> return false;
>> }
>>
>> private class EditForm extends Form {
>>
>> private HiddenField printProviderMockEntId;
>> private TextField nameField;
>> private Select exception;
>>
>> public static final String DEFAULT_PRINT_PROVIDER_KEY = "Default";
>> public static final String DEFAULT_PRINT_PROVIDER_VALUE = "";
>>
>> public EditForm(final String name) {
>> super(name);
>> printProviderMockEntId = new HiddenField("printProviderMockEntId",
>> Long.class);
>> if (printProviderMockEnt != null) {
>> printProviderMockEntId.setValueObject(printProviderMockEnt.getId());
>> }
>> add(printProviderMockEntId);
>> nameField = new TextField("name", "Name", true);
>> nameField.setFocus(true);
>> add(nameField);
>>
>> // Select exception
>> exception = new Select("exceptions", true);
>> exception.setMultiple(false);
>> exception.setDataProvider(new DataProvider() {
>> public List<Option> getData() {
>> List<Option> options = new ArrayList<Option>();
>> List<PrintProviderExceptionMockEnt> allExceptions = new
>> ArrayList<PrintProviderExceptionMockEnt>();
>> try {
>> allExceptions = dashboardSBBeanLocal.getExceptions();
>> for (Iterator iterator = allExceptions.iterator(); iterator.hasNext();)
>> {
>> PrintProviderExceptionMockEnt printProviderExceptionMockEnt =
>> (PrintProviderExceptionMockEnt) iterator.next();
>> options.add(new Option(printProviderExceptionMockEnt.getId(),
>> printProviderExceptionMockEnt.getExceptionCode() + " : "
>> + printProviderExceptionMockEnt.getName()));
>> }
>> } catch (SystemException e) {
>> // TODO show errorpage
>> logger.error(e.getMessage(), e);
>> }
>> return options;
>> }
>> });
>> exception.setDefaultOption(Option.EMPTY_OPTION);
>> add(exception);
>> // Submit button
>> Submit save = new Submit("save", "Save");
>> save.setActionListener(new ActionListener() {
>> public boolean onAction(final Control control) {
>> try {
>> return onSave();
>> } catch (SystemException e) {
>> // TODO show errorpage
>> logger.error(e.getMessage(), e);
>> return false;
>> }
>> }
>> });
>>
>> save.addStyleClass("btn btn-primary");
>> add(save);
>>
>> Submit cancel = new Submit("cancel", "Cancel");
>> cancel.setActionListener(new ActionListener() {
>> public boolean onAction(final Control control) {
>> return onCancel();
>> }
>> });
>>
>> cancel.addStyleClass("btn");
>> add(cancel);
>>
>> ClickUtils.bind(save);
>> ClickUtils.bind(cancel);
>> if (isFormSubmission() && !save.isClicked() && !cancel.isClicked()) {
>> setValidate(false);
>> }
>>
>> setButtonAlign(Form.ALIGN_RIGHT);
>> }
>>
>> @Override
>> public void validate() {
>> super.validate();
>> }
>> }
>> }
>>
>>
>>
>>
>>
>>
>> On Fri, May 17, 2013 at 2:02 PM, Gilberto <[email protected]> wrote:
>>
>>> Sorry, didn't answer you question. But here it is: DataProvider
>>> interface[1].
>>>
>>> [1]
>>> http://click.apache.org/docs/click-api/org/apache/click/control/Select.html#setDataProvider%28org.apache.click.dataprovider.DataProvider%29
>>>
>>>
>>>
>>> 2013/5/17 Gilberto <[email protected]>
>>>
>>>> Complementing Bob's answer, here[1] you can see some examples.
>>>> Regards,
>>>>
>>>> Gilberto
>>>> [1]
>>>> http://code.google.com/p/construtor/source/browse/trunk/park-samples/park-jpa/src/main/java/park/web/page/EditVehicle.java
>>>>
>>>>
>>>> 2013/5/17 Kristian Lind <[email protected]>
>>>>
>>>>> I tried to use setValueObject, but nothing is working.. what should
>>>>> be the argument ?? and Option... a String. ??
>>>>>
>>>>>
>>>>> On Fri, May 17, 2013 at 8:57 AM, Bob Schellink <[email protected]>wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> Use this:
>>>>>>
>>>>>> http://click.apache.org/docs/click-api/org/apache/click/control/Form.html#copyFrom%28java.lang.Object%29
>>>>>>
>>>>>> or:
>>>>>>
>>>>>> http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setValueObject%28java.lang.Object%29
>>>>>>
>>>>>> regards
>>>>>>
>>>>>> Bob
>>>>>>
>>>>>>
>>>>>> On 2013/05/16 20:31, Kristian Lind wrote:
>>>>>>
>>>>>> Hi, I have a select where a user can select an option.
>>>>>>
>>>>>> // Select exception
>>>>>> exception = new Select("exception", true);
>>>>>> exception.setMultiple(false);
>>>>>> exception.setDataProvider(new DataProvider() {
>>>>>> public List<Option> getData() {
>>>>>> List<Option> options = new ArrayList<Option>();
>>>>>> List<PrintProviderErrorMockEnt> allErrors = new
>>>>>> ArrayList<PrintProviderErrorMockEnt>();
>>>>>> try {
>>>>>> allErrors = printProviderMockSBBeanLocal.getErrors();
>>>>>> for (Iterator iterator = allErrors.iterator(); iterator.hasNext();)
>>>>>> {
>>>>>> PrintProviderErrorMockEnt printProviderErrorMockEnt =
>>>>>> (PrintProviderErrorMockEnt) iterator.next();
>>>>>> options.add(new Option(printProviderErrorMockEnt.getId(),
>>>>>> printProviderErrorMockEnt.getErrorCode() + " : "
>>>>>> + printProviderErrorMockEnt.getName()));
>>>>>> }
>>>>>> } catch (SystemException e) {
>>>>>> // TODO show errorpage
>>>>>> logger.error(e.getMessage(), e);
>>>>>> }
>>>>>> return options;
>>>>>> }
>>>>>> });
>>>>>> exception.setDefaultOption(Option.EMPTY_OPTION);
>>>>>>
>>>>>>
>>>>>> When the user has selected a value and presses the submit button
>>>>>> the value is stored in database.
>>>>>> This same page is used when the user wants to edit the values....
>>>>>>
>>>>>> How do I set the select control, to have the option selected, that
>>>>>> the user did select previous when the wants the edit it...
>>>>>>
>>>>>> Kris
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Best regards
>>>>>
>>>>> Kristian Lind
>>>>>
>>>>
>>>>
>>>
>>
>>
>> --
>> Best regards
>>
>> Kristian Lind
>>
>>
>>
>
--
Best regards
Kristian Lind