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

Reply via email to