public ContextMenuPage() { ContextMenuItem menuItem1 = new ContextMenuItem(); menuItem1.setLabel("Option 1"); menuItem1.setAction("alert('Option 1');"); ContextMenuItem menuItem2 = new ContextMenuItem(); menuItem2.setDisabled(true); menuItem2.setLabel("Option 2"); menuItem2.setAction("alert('Option 2');"); ContextMenuItem menuItem3 = new ContextMenuItem(); menuItem3.setLabel("Option 3"); menuItem3.setAction("alert('Option 3');"); menuItem3.setHoverTitle("Option3 plays an important role."); ContextMenuBehavior menuBehavior1 = new ContextMenuBehavior(); WebMarkupContainer divContainer = new WebMarkupContainer("divmenu"); divContainer.add(menuBehavior1); add(divContainer); menuBehavior1.addMenuItem(menuItem1); menuBehavior1.addMenuItem(menuItem2); ContextMenuBehavior menuBehavior2 = new ContextMenuBehavior(); Button button = new Button("menuButton"); button.add(menuBehavior2); add(button); menuBehavior2.addMenuItem(menuItem1); menuBehavior2.addSeperator(); menuBehavior2.addMenuItem(menuItem2); menuBehavior2.addSeperator(); menuBehavior2.addMenuItem(menuItem3); menuBehavior2.setThemes(ContextMenuBehavior.Theme.VISTA); menuBehavior2.setOpenOnLeftClick(true); }
protected void constructPanel() { Form<AgentPortalCustomCashInConfirmPanel> form = new Form<AgentPortalCustomCashInConfirmPanel>( "cashInConfirmForm", new CompoundPropertyModel<AgentPortalCustomCashInConfirmPanel>(this)); form.add(new FeedbackPanel("errorMessages")); form.add(new Label("cashInBean.accountNumber")); form.add(new Label("cashInBean.msisdn")); form.add(new Label("cashInBean.displayName")); form.add(new AmountLabel("cashInBean.cashinAmount", true, true)); // Add Confirm button Button confirmButton = new Button("submitConfirm") { private static final long serialVersionUID = 1L; @Override public void onSubmit() { if (!PortalUtils.exists(cashInBean)) { cashInBean = new AgentCustomCashInBean(); } performCashIn(); }; }; confirmButton.add(new AttributePrepender("onclick", Model.of("loading(submitConfirm)"), ";")); form.add(confirmButton); // Add Back button form.add( new Button("submitBack") { private static final long serialVersionUID = 1L; @Override public void onSubmit() { setResponsePage(new AgentPortalCustomCashInPage()); }; }); // Add Cancel button form.add( new Button("submitCancle") { private static final long serialVersionUID = 1L; @Override public void onSubmit() { basePage.handleCancelButtonRedirectToHomePage(AgentPortalHomePage.class); }; }); add(form); }
protected void constructPanel() { final String chooseDtTxt = this.getLocalizer().getString("datepicker.chooseDate", mobBasePage); add( new HeaderContributor( new IHeaderContributor() { private static final long serialVersionUID = 1L; @Override public void renderHead(IHeaderResponse response) { // localize the jquery datepicker based on users locale setting // locale specific js includes for datepicker are available at // http://jquery-ui.googlecode.com/svn/trunk/ui/i18n/ String localeLang = getLocale().getLanguage().toLowerCase(); LOG.debug("Using DatePicker for locale language: {}", localeLang); if (PortalUtils.exists(localeLang)) { response.renderJavascriptReference( "scripts/jquery/i18n/jquery.ui.datepicker-" + localeLang + ".js"); } response.renderJavascript( "\n" + "jQuery(document).ready(function($) { \n" + " $('#birthDate').datepicker( { \n" + " 'buttonText' : '" + chooseDtTxt + "', \n" + " 'changeMonth' : true, \n" + " 'changeYear' : true, \n" + " 'yearRange' : '-100:+0', \n" + " 'showOn': 'both', \n" + " 'dateFormat' : '" + Constants.DATE_FORMAT_PATTERN_PICKER + "', \n" + " 'buttonImage': 'images/calendar.gif', \n" + " 'buttonOnlyImage': true} ); \n" + "});\n", "datePicker"); } })); final Form<?> form = new Form("standingDataForm", new CompoundPropertyModel<StandingDataPanel>(this)); if (!PortalUtils.exists(getCustomer().getTaskId())) mobBasePage.getMobiliserWebSession().setShowContact(true); form.add(new FeedbackPanel("errorMessages")); form.add( new RequiredTextField<String>("customer.address.firstName") .setRequired(true) .add(new PatternValidator(Constants.REGEX_FIRSTNAME)) .add(Constants.mediumStringValidator) .add(Constants.mediumSimpleAttributeModifier)) .add(new ErrorIndicator()); form.add( new DateTextField( "birthDateField", new PropertyModel<Date>(this, "customer.birthDateString"), new PatternDateConverter(Constants.DATE_FORMAT_PATTERN_PARSE, false)) .setRequired(true) .add(new ErrorIndicator())); form.add( new LocalizableLookupDropDownChoice<Integer>( "customer.customerTypeId", Integer.class, Constants.RESOURCE_BUNDLE_CUSTOMER_TYPE, this, Boolean.FALSE, true) .setNullValid(false) .setRequired(true)); form.add( new RequiredTextField<String>("customer.address.lastName") .setRequired(true) .add(new PatternValidator(Constants.REGEX_FIRSTNAME)) .add(Constants.mediumStringValidator) .add(Constants.mediumSimpleAttributeModifier)) .add(new ErrorIndicator()); form.add( new LocalizableLookupDropDownChoice<String>( "customer.language", String.class, Constants.RESOURCE_BUNDLE_LANGUAGES, this, false, true) .add(new ErrorIndicator())); form.add( new LocalizableLookupDropDownChoice<String>( "customer.timeZone", String.class, Constants.RESOURCE_BUNDLE_TIMEZONES, this, false, true) .add(new ErrorIndicator())); form.add( new TextField<String>("customer.address.street1") .add(new PatternValidator(Constants.REGEX_STREET1)) .add(Constants.mediumStringValidator) .add(Constants.mediumSimpleAttributeModifier) .add(new ErrorIndicator())); form.add( new TextField<String>("customer.address.houseNo") .add(StringValidator.lengthBetween(1, 20)) .add(Constants.mediumStringValidator) .add(Constants.mediumSimpleAttributeModifier) .add(new ErrorIndicator())); form.add( new TextField<String>("customer.address.state") .add(new PatternValidator(Constants.REGEX_STATE)) .add(Constants.mediumStringValidator) .add(Constants.mediumSimpleAttributeModifier) .add(new ErrorIndicator())); form.add( new LocalizableLookupDropDownChoice<String>( "customer.address.kvCountry", String.class, "countries", this, false, true) .setNullValid(false) .setRequired(true) .add(new ErrorIndicator())); form.add( new TextField<String>("customer.address.street2") .add(new PatternValidator(Constants.REGEX_STREET1)) .add(Constants.mediumStringValidator) .add(Constants.mediumSimpleAttributeModifier) .add(new ErrorIndicator())); form.add( new TextField<String>("customer.address.city") .setRequired(false) .add(new PatternValidator(Constants.REGEX_CITY)) .add(Constants.mediumStringValidator) .add(Constants.mediumSimpleAttributeModifier) .add(new ErrorIndicator())); form.add( new TextField<String>("customer.address.zip") .add(new PatternValidator(Constants.REGEX_ZIP)) .add(Constants.mediumStringValidator) .add(Constants.mediumSimpleAttributeModifier) .add(new ErrorIndicator())); TextField<String> msisdn = new TextField<String>("customer.msisdn"); if (!mobBasePage.getConfiguration().isMsisdnOtpConfirmed()) { msisdn.add(new SimpleAttributeModifier("readonly", "readonly")); msisdn.add(new SimpleAttributeModifier("style", "background-color: #E6E6E6;")); } form.add( msisdn .add(new PatternValidator(Constants.REGEX_PHONE_NUMBER)) .add(Constants.mediumStringValidator) .add(Constants.mediumSimpleAttributeModifier) .add(new ErrorIndicator())); form.add( new TextField<String>("customer.address.email") .setRequired(true) .add(EmailAddressValidator.getInstance()) .add(Constants.mediumStringValidator) .add(Constants.mediumSimpleAttributeModifier) .add(new ErrorIndicator())); form.add( new LocalizableLookupDropDownChoice<Integer>( "customer.kvInfoMode", Integer.class, "sendModes", this, Boolean.FALSE, true) .setNullValid(false) .setRequired(true)); WebMarkupContainer networkProviderDiv = new WebMarkupContainer("networkProviderDiv"); networkProviderDiv.add( new LocalizableLookupDropDownChoice<String>( "customer.networkProvider", String.class, "networkproviders", this, false, true) .setNullValid(false) .setRequired(true) .add(new ErrorIndicator())); // network provider selection to be made only for mbanking customer // types if (customer.getCustomerTypeId() != null && customer.getCustomerTypeId().intValue() == Constants.MBANKING_CUSTOMER_TYPE) { networkProviderDiv.setVisible(true); } else { networkProviderDiv.setVisible(false); } form.add(networkProviderDiv); form.add( new KeyValueDropDownChoice<Long, String>( "customer.feeSetId", mobBasePage.getFeeSets(getCustomer().getFeeSetId())) { private static final long serialVersionUID = 1L; @Override protected CharSequence getDefaultChoice(Object selected) { return null; }; }.setNullValid(false)); form.add( new KeyValueDropDownChoice<Long, String>( "customer.limitId", getLimitSets(getCustomer().getLimitId())) { private static final long serialVersionUID = 1L; }.setNullValid(true)); Button feeSetConfButton = new Button("feeSetConf") { private static final long serialVersionUID = 1L; @Override public void onSubmit() { setResponsePage(new IndividualFeeSetConfig(getCustomer())); }; }.setDefaultFormProcessing(false); feeSetConfButton.add(new PrivilegedBehavior(mobBasePage, Constants.PRIV_CUST_WRITE)); form.add(feeSetConfButton); Button limitSetConfButton = new Button("limitSetConf") { private static final long serialVersionUID = 1L; @Override public void onSubmit() { setResponsePage(new IndividualLimitSetConfig(getCustomer())); }; }.setDefaultFormProcessing(false); limitSetConfButton.add(new PrivilegedBehavior(mobBasePage, Constants.PRIV_CUST_WRITE)); form.add(limitSetConfButton); form.add( new LocalizableLookupDropDownChoice<String>( "customer.securityQuestion", String.class, Constants.RESOURCE_BUNDLE_SEC_QUESTIONS, this, false, true) .setNullValid(false) .setRequired(true) .add(new ErrorIndicator())); form.add( new TextField<String>("customer.userName") .add(new PatternValidator(Constants.REGEX_USERNAME)) .add(Constants.mediumStringValidator) .add(Constants.mediumSimpleAttributeModifier) .add(new ErrorIndicator())); form.add( new RequiredTextField<String>("customer.SecQuesAns") .add(new PatternValidator(Constants.REGEX_SECURITY_ANSWER)) .add(Constants.mediumStringValidator) .add(Constants.mediumSimpleAttributeModifier) .add(new ErrorIndicator())); PrivilegedBehavior cancelReasonBehavior = new PrivilegedBehavior(mobBasePage, Constants.PRIV_CUST_CANCEL); cancelReasonBehavior.setMissingPrivilegeHidesComponent(false); KeyValueDropDownChoice<Integer, String> custStatus = new KeyValueDropDownChoice<Integer, String>( "customer.active", mobBasePage.getCustomerStatus()); custStatus.add( new SimpleAttributeModifier( "onchange", "confirmDeactivation('" + getLocalizer().getString("customer.deactivate.warning", mobBasePage) + "')")); form.add(custStatus.setNullValid(false).setRequired(true).add(cancelReasonBehavior)); WebMarkupContainer blackListReasonDiv = new WebMarkupContainer("blackListReasonDiv"); PrivilegedBehavior blackListBehavior = new PrivilegedBehavior(mobBasePage, Constants.PRIV_CUST_BLACKLIST); blackListBehavior.setMissingPrivilegeHidesComponent(false); blackListReasonDiv.add( new LocalizableLookupDropDownChoice<Integer>( "customer.blackListReason", Integer.class, "blackListReasons", this, Boolean.FALSE, true) .setNullValid(false) .setRequired(true) .add(blackListBehavior)); form.add(blackListReasonDiv); WebMarkupContainer cancelDivContainer = new WebMarkupContainer("cancelDivContainer"); LocalizableLookupDropDownChoice<Integer> cancelationreason = new LocalizableLookupDropDownChoice<Integer>( "customer.cancelationReason", Integer.class, "cancellationReasons", this, false, true); cancelationreason.add( new SimpleAttributeModifier( "onchange", "confirmCancellation('" + getLocalizer().getString("customer.cancel.warning", mobBasePage) + "')")); cancelDivContainer.add( cancelationreason.setNullValid(false).setRequired(true).add(cancelReasonBehavior)); // cancelDivContainer // .setVisible(getCustomer().getCustomerTypeId() == // Constants.CONSUMER_IDTYPE // || getCustomer().getCustomerTypeId() == // Constants.CUSTOMER_ROLE_MONEY_MERCHANT); form.add(cancelDivContainer); Button changenMsisdnButton = new Button("changeMsisdn") { private static final long serialVersionUID = 1L; @Override public void onSubmit() { Customer customer = mobBasePage.getCustomerByIdentification( Constants.IDENT_TYPE_CUST_ID, String.valueOf(getCustomer().getId())); if (customer.getCancellationReasonId() != 0 || !customer.isActive()) { error( getLocalizer() .getString("customer.msisdn.change.error.customerinactive", mobBasePage)); return; } mobBasePage.getMobiliserWebSession().setCustomerOtp(null); mobBasePage.getMobiliserWebSession().setCustomerOtpCount(0); mobBasePage.getMobiliserWebSession().setCustomerOtpLimitHit(false); setResponsePage(new ChangeMsisdnPage(getCustomer())); }; }.setDefaultFormProcessing(false); changenMsisdnButton.setVisible(!mobBasePage.getConfiguration().isMsisdnOtpConfirmed()); changenMsisdnButton.add(new PrivilegedBehavior(mobBasePage, Constants.PRIV_CUST_WRITE)); form.add(changenMsisdnButton); changenMsisdnButton.setVisible(!mobBasePage.getConfiguration().isMsisdnOtpConfirmed()); form.add( new Button("resetPin") { private static final long serialVersionUID = 1L; @Override public void onSubmit() { Customer customer = mobBasePage.getCustomerByIdentification( Constants.IDENT_TYPE_MSISDN, getCustomer().getMsisdn()); if (!PortalUtils.exists(customer)) { error(getLocalizer().getString("customer.reset.password.noMsisdn", mobBasePage)); return; } setResponsePage(new ResetCredentialPage(getCustomer(), this.getWebPage(), "pin")); }; }.setDefaultFormProcessing(false) .add(new PrivilegedBehavior(mobBasePage, Constants.PRIV_CUST_PINCALL))); form.add( new Button("resetPassword") { private static final long serialVersionUID = 1L; @Override public void onSubmit() { Address address = mobBasePage.getAddressByCustomer(getCustomer().getId()); if (address == null || !PortalUtils.exists(address.getEmail())) { error(getLocalizer().getString("customer.reset.password.noEmail", mobBasePage)); return; } setResponsePage(new ResetCredentialPage(getCustomer(), this.getWebPage(), "password")); }; }.setDefaultFormProcessing(false) .add(new PrivilegedBehavior(mobBasePage, Constants.PRIV_CUST_PASSWORD))); form.add( new Button("update") { private static final long serialVersionUID = 1L; @Override public void onSubmit() { if (updateCustomer()) { LOG.info( "Data updated successfully for customer[" + mobBasePage.getMobiliserWebSession().getCustomer().getId() + "]"); getSession().info(getLocalizer().getString("data.update.successful", mobBasePage)); setResponsePage(new StandingDataPage(getCustomer())); } }; }.add(new PrivilegedBehavior(mobBasePage, Constants.PRIV_CUST_WRITE)) .setVisible(!PortalUtils.exists(getCustomer().getTaskId()))); form.add( new Button("approve") { private static final long serialVersionUID = 1L; @Override public void onSubmit() { approveCustomer(true); }; }.setDefaultFormProcessing(false) .setVisible(PortalUtils.exists(getCustomer().getTaskId()))); form.add( new Button("reject") { private static final long serialVersionUID = 1L; @Override public void onSubmit() { approveCustomer(false); }; }.setDefaultFormProcessing(false) .setVisible(PortalUtils.exists(getCustomer().getTaskId()))); if (PortalUtils.exists(getCustomer().getTaskId())) { Iterator iter = form.iterator(); Component component; for (int i = 0; iter.hasNext(); i++) { component = (Component) iter.next(); if (component.getId().equals("approve") || component.getId().equals("reject") || component instanceof FeedbackPanel) { continue; } else if (component instanceof Button) { component.setVisible(false); } else { if (component.getId().equals("blackListReasonDiv") || component.getId().equals("cancelDivContainer")) { Iterator iter1 = ((WebMarkupContainer) component).iterator(); Component comp; for (int j = 0; iter1.hasNext(); j++) { comp = (Component) iter1.next(); comp.setEnabled(false); comp.add(new SimpleAttributeModifier("readonly", "readonly")); comp.add(new SimpleAttributeModifier("style", "background-color: #E6E6E6;")); } } else { component.setEnabled(false); component.add(new SimpleAttributeModifier("readonly", "readonly")); component.add(new SimpleAttributeModifier("style", "background-color: #E6E6E6;")); } } } } add(form); LOG.debug( "PatternDateConverter format: " + Constants.DATE_FORMAT_PATTERN_PARSE + " DatePicker format: " + Constants.DATE_FORMAT_PATTERN_PICKER); }
private void createAttachmentsListDataView( WebMarkupContainer attachmentContainer, final Form form) { WebMarkupContainer msgAttachmentsContainer = new WebMarkupContainer("msgAttachmentsContainer"); dataProvider = new MessageAttachmentDataProvider(WICKET_ID_name, basePage); msgAttachmentList = new ArrayList<MessageAttachment>(); final DataView<MessageAttachment> dataView = new DataView<MessageAttachment>(WICKET_ID_pageable, dataProvider) { @Override protected void onBeforeRender() { try { if (!isCreateMode) dataProvider.loadMsgAttachmentsList(message.getId(), forceReload); forceReload = false; refreshTotalItemCount(); // reset rowIndex rowIndex = 1; } catch (DataProviderLoadException dple) { LOG.error("# An error occurred while loading friends and family list", dple); error(getLocalizer().getString("msgAttachments.load.error", this)); } refreshTotalItemCount(); super.onBeforeRender(); } @Override protected void populateItem(final Item<MessageAttachment> item) { final MessageAttachment entry = item.getModelObject(); msgAttachmentList.add(entry); // Select box AjaxCheckBox selectedCheckBox = new AjaxCheckBoxImpl(WICKET_ID_selected, new Model(isSelected(entry)), entry); selectedCheckBox.setOutputMarkupId(true); selectedCheckBox.setMarkupId(WICKET_ID_selected + rowIndex++); item.add(selectedCheckBox); item.add(new Label(WICKET_ID_name, entry.getName())); // set items in even/odd rows to different css style classes item.add( new AttributeModifier( Constants.CSS_KEYWARD_CLASS, true, new AbstractReadOnlyModel<String>() { @Override public String getObject() { return (item.getIndex() % 2 == 1) ? Constants.CSS_STYLE_ODD : Constants.CSS_STYLE_EVEN; } })); } private void refreshTotalItemCount() { totalItemString = new Integer(dataProvider.size()).toString(); int total = getItemCount(); if (total > 0) { startIndex = getCurrentPage() * getItemsPerPage() + 1; endIndex = startIndex + getItemsPerPage() - 1; if (endIndex > total) endIndex = total; } else { startIndex = 0; endIndex = 0; } } class AjaxCheckBoxImpl extends AjaxCheckBox { private final MessageAttachment entry; public AjaxCheckBoxImpl(String id, IModel<Boolean> model, MessageAttachment entry) { super(id, model); this.entry = entry; } @Override public boolean isEnabled() { return true; } @Override protected void onComponentTag(final ComponentTag tag) { super.onComponentTag(tag); if (getModelObject()) { tag.put("checked", "checked"); } } @Override protected void onUpdate(AjaxRequestTarget target) { boolean checkBoxSelected = getModelObject(); if (checkBoxSelected) { LOG.info("Added {} to deletion list", entry.getId()); selectedAttachments.add(entry); } else { LOG.info("Removed {} from deletion list", entry.getId()); selectedAttachments.remove(entry); } } } }; dataView.setItemsPerPage(10); msgAttachmentsContainer.add(dataView); msgAttachmentsContainer.add( new OrderByBorder(WICKET_ID_orderByName, WICKET_ID_name, dataProvider) { @Override protected void onSortChanged() { // For some reasons the dataView can be null when the page is // loading // and the sort is clicked (clicking the name header), so handle // it if (dataView != null) { dataView.setCurrentPage(0); } } }); Button removeButton = new Button("removeAttachment") { private static final long serialVersionUID = 1L; @Override public void onSubmit() { handleRemove(); createAttachmentContainer(form); }; @Override public boolean isVisible() { if (dataView.getItemCount() > 0) { return super.isVisible(); } else { return false; } } }.setDefaultFormProcessing(false); removeButton.add( new SimpleAttributeModifier( "onclick", "return confirm('" + getLocalizer().getString("msgAttachments.remove.confirm", this) + "');")); msgAttachmentsContainer.add(removeButton); msgAttachmentsContainer.add( new MultiLineLabel( WICKET_ID_noItemsMsg, getLocalizer().getString("msgAttachments.noItemsMsg", this) + "\n" + getLocalizer().getString("msgAttachments.addMsgAttachmentsHelp", this)) { @Override public boolean isVisible() { if (dataView.getItemCount() > 0) { return false; } else { return super.isVisible(); } } }); // Navigator example: << < 1 2 > >> msgAttachmentsContainer.add(new CustomPagingNavigator(WICKET_ID_navigator, dataView)); msgAttachmentsContainer.add( new Label(WICKET_ID_totalItems, new PropertyModel<String>(this, "totalItemString"))); msgAttachmentsContainer.add( new Label(WICKET_ID_startIndex, new PropertyModel(this, "startIndex"))); msgAttachmentsContainer.add(new Label(WICKET_ID_endIndex, new PropertyModel(this, "endIndex"))); attachmentContainer.addOrReplace(msgAttachmentsContainer); }