简体   繁体   中英

How do I make a Wicket Panel hidden?

So I have to edit code of a co-worker but I cannot seem to figure out how to adjust it so the panel is hidden when there is no data present. Currently it returns null when no data is present. If there is information available for a customer, it shows their full info. If there is not, I want to make the panel hidden. This is also a re-useable panel used throughout the site. What do I need to adjust to make this work?

@Override
protected void onInitialize()
{
    // TODO Auto-generated method stub
    super.onInitialize();        


    if(customer != null)
    {
        loadWithCustomer();
    }
    else
    {
        loadWithNoCustomer();
    }


}

@Override
protected void onBeforeRender() 
{
    super.onBeforeRender();

    AjaxLink<Void> createOrderLink = makeCreateOrderLink(customer);

    SkinnyBuSession session = (SkinnyBuSession) Session.get();      
    if(session != null && session.getCustomer() == null)
        createOrderLink.setEnabled(false);

    addOrReplace(createOrderLink);
}

private void loadWithCustomer()
{
    addOrReplace(new Label("heading",  customer.getAccountName()));


    Contact contact = null;
    if( customer.getContacts() != null && customer.getContacts().size() > 0)
    {
        contact = customer.getContacts().get(0);
    }
    else
    {
        contact = new Contact();//makeUpJunkContactForNow();
        customer.getContacts().add(contact);
    }
    Address address = null;
    if( customer.getAddresses() != null && customer.getAddresses().size() > 0)
    {
        address = customer.getAddresses().get(0);
    }
    else
    {
        address = new Address();//makeUpJunkAddressForNow();
        customer.getAddresses().add(address);
    }

    String phone = contact.getPhoneNumber() != null ? contact.getPhoneNumber().getNationalNumber() : "";
    if (phone != null && phone.length() == 10)
    {
        phone = String.format("(%s) %s-%s", phone.substring(0, 3), phone.substring(3, 6),phone.substring(6, 10));
    }       

    addOrReplace(new Label("accountName", customer.getAccountName()));
    addOrReplace(new Label("address1", address.getAddressLine1()));
    addOrReplace(new Label("address2", address.getAddressLine2()));
    addOrReplace(new Label("city", address.getCityName() + ","));
    addOrReplace(new Label("state", address.getStateCode()));
    addOrReplace(new Label("postalCode", address.getPostalCode()));
    addOrReplace(new Label("contactName", contact.getName()));
    addOrReplace(new Label("email", contact.getEmailAddress()));
    addOrReplace(new Label("phone", phone));        

}

private void loadWithNoCustomer()
{
    Label heading = new Label("heading", "");
    addOrReplace(heading.setVisible(false));

    addOrReplace(new Label("accountName", "").setVisible(false));
    addOrReplace(new Label("address1", "").setVisible(false));
    addOrReplace(new Label("address2", "").setVisible(false));
    addOrReplace(new Label("city", "").setVisible(false));
    addOrReplace(new Label("state", "").setVisible(false));
    addOrReplace(new Label("postalCode", "").setVisible(false));
    addOrReplace(new Label("contactName", "").setVisible(false));
    addOrReplace(new Label("email", "").setVisible(false));
    addOrReplace(new Label("phone", "").setVisible(false));

}

Override onConfigure and you can probably do something like this:

@Override
protected void onConfigure() {
     super.onConfigure();
     setVisible(customer != null);
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM