public String objectToString(final Object object) { if (object == null || object instanceof String == false) { return ""; } final String number = (String) object; return number + '|' + StringHelper.removeNonDigits(number) + '|' + NumberHelper.extractPhonenumber(number); }
@Override public synchronized PFUserDO deserialize( final JsonElement jsonElement, final Type type, final JsonDeserializationContext jsonDeserializationContext) { final Integer userId = NumberHelper.parseInteger(jsonElement.getAsString()); if (userId == null) { return null; } return Registry.instance().getUserGroupCache().getUser(userId); }
/** * For special phone numbers: id:# or # | name. * * @return true, if the phone number was successfully processed. */ private boolean processPhoneNumber() { final String phoneNumber = form.getPhoneNumber(); if (StringUtils.isNotEmpty(phoneNumber) == true) { if (phoneNumber.startsWith("id:") == true && phoneNumber.length() > 3) { final Integer id = NumberHelper.parseInteger(phoneNumber.substring(3)); if (id != null) { form.setPhoneNumber(""); final AddressDO address = addressDao.getById(id); if (address != null) { form.setAddress(address); final String no = getFirstPhoneNumber(); if (StringUtils.isNotEmpty(no) == true) { setPhoneNumber(no, true); } } } return true; } else if (phoneNumber.indexOf(SEPARATOR) >= 0) { final int pos = phoneNumber.indexOf(SEPARATOR); final String rest = phoneNumber.substring(pos + SEPARATOR.length()); final int numberPos = rest.indexOf('#'); form.setPhoneNumber(phoneNumber.substring(0, pos)); if (numberPos > 0) { final Integer id = NumberHelper.parseInteger(rest.substring(numberPos + 1)); if (id != null) { final AddressDO address = addressDao.getById(id); if (address != null) { form.setAddress(address); } } else { form.setAddress(null); } } else { form.setAddress(null); } return true; } } return false; }
String extractPhonenumber(final String number) { final String result = NumberHelper.extractPhonenumber( number, Configuration.getInstance() .getStringValue(ConfigurationParam.DEFAULT_COUNTRY_PHONE_PREFIX)); if (StringUtils.isNotEmpty(result) == true && StringUtils.isNotEmpty(ConfigXml.getInstance().getTelephoneSystemNumber()) == true && result.startsWith(ConfigXml.getInstance().getTelephoneSystemNumber()) == true) { return result.substring(ConfigXml.getInstance().getTelephoneSystemNumber().length()); } return result; }
/** * @see org.projectforge.ldap.LdapDao#mapToObject(java.lang.String, * javax.naming.directory.Attributes) */ @Override protected LdapGroup mapToObject(final String dn, final Attributes attributes) throws NamingException { final LdapGroup group = new LdapGroup(); group.setBusinessCategory(LdapUtils.getAttributeStringValue(attributes, "businessCategory")); group.setDescription(LdapUtils.getAttributeStringValue(attributes, "description")); group.setOrganization(LdapUtils.getAttributeStringValue(attributes, "o")); final String[] members = LdapUtils.getAttributeStringValues(attributes, "uniqueMember"); if (members != null) { for (final String member : members) { group.addMember(member, ldapConfig.getBaseDN()); } } final boolean posixAccountsConfigured = isPosixAccountsConfigured(); if (posixAccountsConfigured == true) { final String no = LdapUtils.getAttributeStringValue(attributes, "gidNumber"); group.setGidNumber(NumberHelper.parseInteger(no)); } return group; }
/** * @param pageParameters * @param key * @param objectType * @see #putPageParameter(PageParameters, String, Object) */ public static Object getPageParameter( final PageParameters pageParameters, final String key, final Class<?> objectType) { if (objectType.isAssignableFrom(Date.class) == true) { final StringValue sval = pageParameters.get(key); if (sval.isNull() == true) { return null; } return new Date(sval.toLongObject()); } else if (objectType.isAssignableFrom(Boolean.class) == true) { return pageParameters.get(key).toBooleanObject(); } else if (objectType.isPrimitive() == true) { if (Boolean.TYPE.equals(objectType)) { return pageParameters.get(key).toBooleanObject(); } else if (Integer.TYPE.equals(objectType) == true) { return pageParameters.get(key).toInteger(); } else if (Long.TYPE.equals(objectType) == true) { return pageParameters.get(key).toLong(); } else if (Float.TYPE.equals(objectType) == true) { return new Float(pageParameters.get(key).toDouble()); } else if (Double.TYPE.equals(objectType) == true) { return pageParameters.get(key).toDouble(); } else if (Character.TYPE.equals(objectType) == true) { return pageParameters.get(key).toChar(); } else { log.warn( "Primitive objectType '" + objectType + "' not yet implemented. Parameter type '" + key + "' is ignored."); } } else if (Enum.class.isAssignableFrom(objectType) == true) { final StringValue sval = pageParameters.get(key); if (sval.isNull() == true) { return null; } final String sValue = sval.toString(); @SuppressWarnings({"unchecked", "rawtypes"}) final Enum<?> en = Enum.valueOf((Class<Enum>) objectType, sValue); return en; } else if (objectType.isAssignableFrom(Integer.class) == true) { final StringValue sval = pageParameters.get(key); if (sval.isNull() == true) { return null; } return sval.toInteger(); } else if (objectType.isAssignableFrom(String.class) == true) { return pageParameters.get(key).toString(); } else if (objectType.isAssignableFrom(TimePeriod.class) == true) { final String sValue = pageParameters.get(key).toString(); if (sValue == null) { return null; } final int pos = sValue.indexOf('-'); if (pos < 0) { log.warn( "PageParameter of type TimePeriod '" + objectType.getName() + "' in wrong format: " + sValue); return null; } final Long fromTime = NumberHelper.parseLong(sValue.substring(0, pos)); final Long toTime = pos < sValue.length() - 1 ? NumberHelper.parseLong(sValue.substring(pos + 1)) : null; return new TimePeriod( fromTime != null ? new Date(fromTime) : null, toTime != null ? new Date(toTime) : null); } else { log.error("PageParameter of type '" + objectType.getName() + "' not yet supported."); } return null; }
@Override protected void init() { super.init(); // GRID 50% - BLOCK gridBuilder.newSplitPanel(GridSize.COL50); { // Number final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.number")); fs.add(new DivTextPanel(fs.newChildId(), "C-")); numberField = new MinMaxNumberField<Integer>( InputPanel.WICKET_ID, new PropertyModel<Integer>(data, "number"), 0, 99999999); numberField.setMaxLength(8); WicketUtils.setSize(numberField, 6); fs.add(numberField); if (NumberHelper.greaterZero(getData().getNumber()) == false) { fs.addHelpIcon(getString("fibu.tooltip.nummerWirdAutomatischVergeben")); } } { // Date final FieldsetPanel fs = gridBuilder.newFieldset(getString("date")); datePanel = new DatePanel( fs.newChildId(), new PropertyModel<Date>(data, "date"), DatePanelSettings.get().withTargetType(java.sql.Date.class)); fs.add(datePanel); } { // Title final FieldsetPanel fs = gridBuilder.newFieldset(getString("title")); fs.add(createAutocompleteTextField("title")) .getField() .setRequired(true) .add(WicketUtils.setFocus()); } { // Contract type final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.type")); final List<ContractType> contractTypes = ConfigXml.getInstance().getContractTypes(); final LabelValueChoiceRenderer<ContractType> typeChoiceRenderer = new LabelValueChoiceRenderer<ContractType>(contractTypes); final DropDownChoice<ContractType> typeChoice = new DropDownChoice<ContractType>( fs.getDropDownChoiceId(), new PropertyModel<ContractType>(data, "type"), typeChoiceRenderer.getValues(), typeChoiceRenderer); typeChoice.setNullValid(false); fs.add(typeChoice); } { // Status final FieldsetPanel fs = gridBuilder.newFieldset(getString("status")); // DropDownChoice for convenient selection of time periods. final LabelValueChoiceRenderer<String> statusChoiceRenderer = new LabelValueChoiceRenderer<String>(); for (final ContractStatus status : ContractStatus.values()) { statusChoiceRenderer.addValue(status.name(), getString(status.getI18nKey())); } final DropDownChoice<String> statusChoice = new DropDownChoice<String>( fs.getDropDownChoiceId(), new PropertyModel<String>(data, "status"), statusChoiceRenderer.getValues(), statusChoiceRenderer); statusChoice.setNullValid(false); fs.add(statusChoice); } gridBuilder.newSplitPanel(GridSize.COL50); { // Reference final FieldsetPanel fs = gridBuilder.newFieldset(getString("fibu.common.reference")); fs.add( new MaxLengthTextField( InputPanel.WICKET_ID, new PropertyModel<String>(data, "reference"))); } { // Resubmission date final FieldsetPanel fs = gridBuilder.newFieldset(getString("resubmissionOnDate")); resubmissionDatePanel = new DatePanel( fs.newChildId(), new PropertyModel<Date>(data, "resubmissionOnDate"), DatePanelSettings.get().withTargetType(java.sql.Date.class)); fs.add(resubmissionDatePanel); } { // Due date final FieldsetPanel fs = gridBuilder.newFieldset(getString("dueDate")); dueDatePanel = new DatePanel( fs.newChildId(), new PropertyModel<Date>(data, "dueDate"), DatePanelSettings.get().withTargetType(java.sql.Date.class)); fs.add(dueDatePanel); } { // Signing date final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.signing"), getString("date")); signingDatePanel = new DatePanel( fs.newChildId(), new PropertyModel<Date>(data, "signingDate"), DatePanelSettings.get().withTargetType(java.sql.Date.class)); fs.add(signingDatePanel); } { // Validity final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.validity")); validFromDatePanel = new DatePanel( fs.newChildId(), new PropertyModel<Date>(data, "validFrom"), DatePanelSettings.get().withTargetType(java.sql.Date.class)); fs.add(validFromDatePanel); fs.add(new DivTextPanel(fs.newChildId(), "-")); validUntilDatePanel = new DatePanel( fs.newChildId(), new PropertyModel<Date>(data, "validUntil"), DatePanelSettings.get().withTargetType(java.sql.Date.class)); fs.add(validUntilDatePanel); } gridBuilder.newSplitPanel(GridSize.COL50); { // CocontractorA final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.coContractorA")); fs.add(createAutocompleteTextField("coContractorA")); } { // CopersonA final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.contractPersonA")); fs.add(createAutocompleteTextField("contractPersonA")); } { // SignerA final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.signerA")); fs.add(createAutocompleteTextField("signerA")); } /* GRID8 */ gridBuilder.newSplitPanel(GridSize.COL50); { // CocontractorB final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.coContractorB")); fs.add(createAutocompleteTextField("coContractorB")); } { // CopersonB final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.contractPersonB")); fs.add(createAutocompleteTextField("contractPersonB")); } { // SignerB final FieldsetPanel fs = gridBuilder.newFieldset(getString("legalAffaires.contract.signerB")); fs.add(createAutocompleteTextField("signerB")); } /* GRID16 */ gridBuilder.newGridPanel(); { // Text with JIRA support final FieldsetPanel fs = gridBuilder.newFieldset(getString("text")); final IModel<String> model = new PropertyModel<String>(data, "text"); fs.add(new MaxLengthTextArea(TextAreaPanel.WICKET_ID, model)); fs.addJIRAField(model); } { // Filing final FieldsetPanel fs = gridBuilder.newFieldset(getString("filing")); fs.add( new MaxLengthTextField(InputPanel.WICKET_ID, new PropertyModel<String>(data, "filing"))); } addCloneButton(); }