public static LabelValueChoiceRenderer<Long> getDatumChoiceRenderer(final int lastNDays) { final LabelValueChoiceRenderer<Long> datumChoiceRenderer = new LabelValueChoiceRenderer<Long>(); for (int i = 0; i > -lastNDays; i--) { final DayHolder day = new DayHolder(); day.add(Calendar.DAY_OF_YEAR, i); datumChoiceRenderer.addValue( day.getSQLDate().getTime(), DateTimeFormatter.instance() .getFormattedDate( day.getSQLDate(), DateFormats.getFormatString(DateFormatType.DATE))); } return datumChoiceRenderer; }
/** @see org.apache.wicket.Component#onInitialize() */ @Override protected void onInitialize() { super.onInitialize(); if (socialMediaValues == null) { socialMediaValues = new ArrayList<SocialMediaValue>(); } newSocialMediaValue = new LabelValueBean<InstantMessagingType, String>( InstantMessagingType.AIM, DEFAULT_IM_VALUE); socialMediaChoiceRenderer = new LabelValueChoiceRenderer<InstantMessagingType>(); final InstantMessagingType[] ims = InstantMessagingType.values(); for (final InstantMessagingType im : ims) { socialMediaChoiceRenderer.addValue(im, im.toString()); } mainContainer = new WebMarkupContainer("main"); add(mainContainer.setOutputMarkupId(true)); socialMediaRepeater = new RepeatingView("liRepeater"); mainContainer.add(socialMediaRepeater); rebuildSocialMedias(); addNewSocialMediaContainer = new WebMarkupContainer("liAddNewIm"); mainContainer.add(addNewSocialMediaContainer.setOutputMarkupId(true)); init(addNewSocialMediaContainer); socialMediaRepeater.setVisible(true); }
@SuppressWarnings("serial") @Override protected void init() { super.init(); add( new IFormValidator() { @Override public FormComponent<?>[] getDependentFormComponents() { return dependentFormComponents; } @SuppressWarnings("unchecked") @Override public void validate(final Form<?> form) { final PFAutoCompleteTextField<SkillDO> skillTextField = (PFAutoCompleteTextField<SkillDO>) dependentFormComponents[0]; final DropDownChoice<SkillRating> skillRatingDropDown = (DropDownChoice<SkillRating>) dependentFormComponents[1]; if (skillTextField.getConvertedInput().isRateable() == true && skillRatingDropDown.getConvertedInput() == null) { error(getString("plugins.skillmatrix.error.rateableSkillWithNullRating")); } else if (skillTextField.getConvertedInput().isRateable() == false && skillRatingDropDown.getConvertedInput() != null) { error(getString("plugins.skillmatrix.error.unrateableSkillWithRating")); } final SkillRatingFilter filter = new SkillRatingFilter(); filter.setSearchFields("user.username"); filter.setSearchString(data.getUser().getUsername()); final List<SkillRatingDO> list = skillRatingDao.getList(filter); for (final SkillRatingDO skillRatingDO : list) { final boolean isDeleted = skillRatingDO.getSkill().isDeleted(); final boolean sameSkill = skillRatingDO.getSkill().getTitle() == skillTextField.getConvertedInput().getTitle(); final boolean sameSkillRating = skillRatingDO.getCreated().equals(data.getCreated()); if (isDeleted == false && sameSkill && sameSkillRating == false) { error(getString("plugins.skillmatrix.error.skillRatingExistsAlready")); break; } } } }); gridBuilder.newGridPanel(); { // User final FieldsetPanel fs = gridBuilder .newFieldset(getString("plugins.skillmatrix.skillrating.user")) .suppressLabelForWarning(); final DivTextPanel username = new DivTextPanel(fs.newChildId(), data.getUser().getUsername()); username.setStrong(); fs.add(username); } { // Skill, look at UserSelectPanel for fine tuning ( getConverter() ) final FieldsetPanel fs = gridBuilder.newFieldset(getString("plugins.skillmatrix.skillrating.skill")); final PFAutoCompleteTextField<SkillDO> autoCompleteTextField = new PFAutoCompleteTextField<SkillDO>( fs.getTextFieldId(), new PropertyModel<SkillDO>(data, "skill")) { @Override protected List<SkillDO> getChoices(final String input) { final BaseSearchFilter filter = new BaseSearchFilter(); filter.setSearchFields("title"); filter.setSearchString(input); final List<SkillDO> list = skillDao.getList(filter); return list; } @Override protected String formatLabel(final SkillDO skill) { if (skill == null) { return ""; } return skill.getTitle(); } @Override protected String formatValue(final SkillDO skill) { if (skill == null) { return ""; } return skill.getTitle(); } @SuppressWarnings({"unchecked", "rawtypes"}) @Override public <C> IConverter<C> getConverter(final Class<C> type) { return new IConverter() { @Override public Object convertToObject(final String value, final Locale locale) { if (StringUtils.isEmpty(value) == true) { getModel().setObject(null); return null; } final SkillDO skill = skillDao.getSkillTree().getSkill(value); if (skill == null) { error(getString("plugins.skillmatrix.error.skillNotFound")); } getModel().setObject(skill); final AjaxRequestTarget target = RequestCycle.get().find(AjaxRequestTarget.class); if (target != null) { target.add(SkillRatingEditForm.this.fs.getFieldset()); } return skill; } @Override public String convertToString(final Object value, final Locale locale) { if (value == null) { return ""; } final SkillDO skill = (SkillDO) value; return skill.getTitle(); } }; } }; autoCompleteTextField .withLabelValue(true) .withMatchContains(true) .withMinChars(2) .withAutoSubmit(false) .withWidth(400) .setRequired(true); autoCompleteTextField.add( new AjaxFormComponentUpdatingBehavior("onChange") { @Override protected void onUpdate(final AjaxRequestTarget target) { // AjaxRequestTarget needs this. } }); fs.add(autoCompleteTextField); dependentFormComponents[0] = autoCompleteTextField; } { // Skill rating fs = gridBuilder.newFieldset(getString("plugins.skillmatrix.skillrating.rating")); fs.getFieldset().setOutputMarkupId(true); final LabelValueChoiceRenderer<SkillRating> ratingChoiceRenderer = new LabelValueChoiceRenderer<SkillRating>(this, SkillRating.values()); final DropDownChoicePanel<SkillRating> skillChoice = new DropDownChoicePanel<SkillRating>( fs.newChildId(), new PropertyModel<SkillRating>(data, "skillRating"), ratingChoiceRenderer.getValues(), ratingChoiceRenderer) { @Override public boolean isVisible() { if (data == null || data.getSkill() == null || !data.getSkill().isRateable()) { return false; } else { return true; } } }; fs.add(skillChoice); dependentFormComponents[1] = skillChoice.getDropDownChoice(); } { // Since year final FieldsetPanel fs = gridBuilder.newFieldset(getString("plugins.skillmatrix.skillrating.sinceyear")); fs.add( new MinMaxNumberField<Integer>( fs.getTextFieldId(), new PropertyModel<Integer>(data, "sinceYear"), 0, 9000)); } { // Certificates final FieldsetPanel fs = gridBuilder.newFieldset(getString("plugins.skillmatrix.skillrating.certificates")); fs.add( new MaxLengthTextField( fs.getTextFieldId(), new PropertyModel<String>(data, "certificates"))); } { // Training courses final FieldsetPanel fs = gridBuilder.newFieldset(getString("plugins.skillmatrix.skillrating.trainingcourses")); fs.add( new MaxLengthTextField( fs.getTextFieldId(), new PropertyModel<String>(data, "trainingCourses"))); } { // Description final FieldsetPanel fs = gridBuilder.newFieldset(getString("plugins.skillmatrix.skillrating.description")); fs.add( new MaxLengthTextArea( fs.getTextAreaId(), new PropertyModel<String>(data, "description"))) .setAutogrow(); } { // Comment final FieldsetPanel fs = gridBuilder.newFieldset(getString("plugins.skillmatrix.skillrating.comment")); fs.add(new MaxLengthTextArea(fs.getTextAreaId(), new PropertyModel<String>(data, "comment"))) .setAutogrow(); } }
@SuppressWarnings("serial") @Override protected void init() { super.init(); /* GRID16 - BLOCK */ gridBuilder.newGridPanel(); { // Number final FieldsetPanel fs = gridBuilder.newFieldset(getString("fibu.kunde.nummer")); final MinMaxNumberField<Integer> number = new MinMaxNumberField<Integer>( InputPanel.WICKET_ID, new PropertyModel<Integer>(data, "id"), 0, KundeDO.MAX_ID) { @SuppressWarnings({"unchecked", "rawtypes"}) @Override public IConverter getConverter(final Class type) { return new IntegerConverter(3); } }; WicketUtils.setSize(number, 7); fs.add(number); if (isNew() == true) { WicketUtils.setFocus(number); } } { // Name final FieldsetPanel fs = gridBuilder.newFieldset(getString("fibu.kunde.name")); final RequiredMaxLengthTextField name = new RequiredMaxLengthTextField( InputPanel.WICKET_ID, new PropertyModel<String>(data, "name")); fs.add(name); if (isNew() == false) { WicketUtils.setFocus(name); } } if (Registry.instance().getKontoCache().isEmpty() == false) { // Show this field only if DATEV accounts does exist. final FieldsetPanel fs = gridBuilder.newFieldset(getString("fibu.konto")); final KontoSelectPanel kontoSelectPanel = new KontoSelectPanel( fs.newChildId(), new PropertyModel<KontoDO>(data, "konto"), null, "kontoId"); kontoSelectPanel .setKontoNumberRanges(AccountingConfig.getInstance().getDebitorsAccountNumberRanges()) .init(); fs.addHelpIcon(getString("fibu.kunde.konto.tooltip")); fs.add(kontoSelectPanel); } { // Identifier final FieldsetPanel fs = gridBuilder.newFieldset(getString("fibu.kunde.identifier")); fs.add( new MaxLengthTextField( InputPanel.WICKET_ID, new PropertyModel<String>(data, "identifier"))); } { // Identifier final FieldsetPanel fs = gridBuilder.newFieldset(getString("fibu.kunde.division")); fs.add( new MaxLengthTextField( InputPanel.WICKET_ID, new PropertyModel<String>(data, "division"))); } { // Identifier final FieldsetPanel fs = gridBuilder.newFieldset(getString("description")); fs.add( new MaxLengthTextArea( TextAreaPanel.WICKET_ID, new PropertyModel<String>(data, "description"))); } { // Status drop down box: final FieldsetPanel fs = gridBuilder.newFieldset(getString("status")); final LabelValueChoiceRenderer<KundeStatus> statusChoiceRenderer = new LabelValueChoiceRenderer<KundeStatus>(fs, KundeStatus.values()); final DropDownChoice<KundeStatus> statusChoice = new DropDownChoice<KundeStatus>( fs.getDropDownChoiceId(), new PropertyModel<KundeStatus>(data, "status"), statusChoiceRenderer.getValues(), statusChoiceRenderer); statusChoice.setNullValid(false).setRequired(true); fs.add(statusChoice); } }
@SuppressWarnings("serial") private void rebuildSocialMedias() { socialMediaRepeater.removeAll(); if (model.getObject().getSocialMedia() != null) { for (final LabelValueBean<InstantMessagingType, String> socialMediaValue : model.getObject().getSocialMedia()) { final WebMarkupContainer item = new WebMarkupContainer(socialMediaRepeater.newChildId()); socialMediaRepeater.add(item); final DropDownChoice<InstantMessagingType> socialMediaChoice = new DropDownChoice<InstantMessagingType>( "socialMediaChoice", new PropertyModel<InstantMessagingType>(socialMediaValue, "label"), socialMediaChoiceRenderer.getValues(), socialMediaChoiceRenderer); item.add(socialMediaChoice); socialMediaChoice.add( new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(final AjaxRequestTarget target) { // socialMediaValue.setSocialMediaType(socialMediaChoice.getModelObject()); // // model.getObject().setSocialMediaValues(contactDao.getSocialMediaValuesAsXml(socialMediaValues)); // target.add(mainContainer); } }); item.add( new AjaxMaxLengthEditableLabel( "editableLabel", new PropertyModel<String>(socialMediaValue, "value")) { @Override protected void onSubmit(final AjaxRequestTarget target) { super.onSubmit(target); model .getObject() .setSocialMedia(socialMediaValue.getLabel(), socialMediaValue.getValue()); rebuildSocialMedias(); target.add(mainContainer); } }); final WebMarkupContainer deleteDiv = new WebMarkupContainer("deleteDiv"); deleteDiv.setOutputMarkupId(true); deleteDiv.add( new AjaxIconLinkPanel( "delete", IconType.REMOVE, new PropertyModel<String>(socialMediaValue, "value")) { /** * @see * org.projectforge.web.wicket.flowlayout.AjaxIconLinkPanel#onClick(org.apache.wicket.ajax.AjaxRequestTarget) */ @Override protected void onClick(final AjaxRequestTarget target) { // super.onClick(target); // final Iterator<SocialMediaValue> it = socialMediaValues.iterator(); // while (it.hasNext() == true) { // if (it.next() == socialMediaValue) { // it.remove(); // } // } // rebuildSocialMedias(); // // model.getObject().setSocialMediaValues(contactDao.getSocialMediaValuesAsXml(socialMediaValues)); // target.add(mainContainer); } }); item.add(deleteDiv); } } }
@SuppressWarnings("serial") void init(final WebMarkupContainer item) { final DropDownChoice<InstantMessagingType> socialMediaChoice = new DropDownChoice<InstantMessagingType>( "socialMediaChoice", new PropertyModel<InstantMessagingType>(newSocialMediaValue, "label"), socialMediaChoiceRenderer.getValues(), socialMediaChoiceRenderer); item.add(socialMediaChoice); socialMediaChoice.add( new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(final AjaxRequestTarget target) { // // newSocialMediaValue.setLabel(socialMediaChoice.getModelObject().get(socialMediaChoice.getModelObject().getKey())); // // model.getObject().setSocialMediaValues(contactDao.getSocialMediaValuesAsXml(socialMediaValues)); // target.add(mainContainer); } }); item.add( new AjaxMaxLengthEditableLabel( "editableLabel", new PropertyModel<String>(newSocialMediaValue, "value")) { @Override protected void onSubmit(final AjaxRequestTarget target) { super.onSubmit(target); if (StringUtils.isNotBlank(newSocialMediaValue.getValue()) == true && newSocialMediaValue.getValue().equals(DEFAULT_IM_VALUE) == false) { model .getObject() .setSocialMedia(newSocialMediaValue.getLabel(), newSocialMediaValue.getValue()); } newSocialMediaValue.setValue(DEFAULT_IM_VALUE); rebuildSocialMedias(); target.add(mainContainer); } }); final WebMarkupContainer deleteDiv = new WebMarkupContainer("deleteDiv"); deleteDiv.setOutputMarkupId(true); deleteDiv.add( delete = new AjaxIconLinkPanel( "delete", IconType.REMOVE, new PropertyModel<String>(newSocialMediaValue, "value")) { /** * @see * org.projectforge.web.wicket.flowlayout.AjaxIconLinkPanel#onClick(org.apache.wicket.ajax.AjaxRequestTarget) */ @Override protected void onClick(final AjaxRequestTarget target) { // super.onClick(target); // final Iterator<SocialMediaValue> it = socialMediaValues.iterator(); // while (it.hasNext() == true) { // if (it.next() == newSocialMediaValue) { // it.remove(); // } // } // rebuildSocialMedias(); // // model.getObject().setSocialMediaValues(contactDao.getSocialMediaValuesAsXml(socialMediaValues)); // target.add(mainContainer); } }); item.add(deleteDiv); delete.setVisible(false); }
@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(); }
@SuppressWarnings("serial") @Override protected void init() { super.init(); gridBuilder.newGridPanel(); { final FieldsetPanel fs = gridBuilder.newFieldset(getString("plugins.teamcal.event.teamCal")); final List<TeamCalDO> list = teamCalDao.getAllCalendarsWithFullAccess(); final LabelValueChoiceRenderer<TeamCalDO> calChoiceRenderer = new LabelValueChoiceRenderer<TeamCalDO>(); for (final TeamCalDO cal : list) { calChoiceRenderer.addValue(cal, cal.getTitle()); } final DropDownChoice<TeamCalDO> calDropDownChoice = new DropDownChoice<TeamCalDO>( fs.getDropDownChoiceId(), new PropertyModel<TeamCalDO>(this, "calendar"), calChoiceRenderer.getValues(), calChoiceRenderer) { /** * @see * org.apache.wicket.markup.html.form.DropDownChoice#wantOnSelectionChangedNotifications() */ @Override protected boolean wantOnSelectionChangedNotifications() { return true; } /** * @see * org.apache.wicket.markup.html.form.DropDownChoice#onSelectionChanged(java.lang.Object) */ @Override protected void onSelectionChanged(final TeamCalDO newSelection) { parentPage.reconcile(); } }; calDropDownChoice.setNullValid(false); calDropDownChoice.setRequired(true); fs.add(calDropDownChoice); } { final FieldsetPanel fs = gridBuilder.newFieldset(getString("file"), "*.ics"); fileUploadField = new FileUploadField(FileUploadPanel.WICKET_ID); fs.add(new FileUploadPanel(fs.newChildId(), fileUploadField)); fs.add( new SingleButtonPanel( fs.newChildId(), new Button(SingleButtonPanel.WICKET_ID, new Model<String>("importEvents")) { @Override public final void onSubmit() { parentPage.importEvents(); } }, getString("upload"), SingleButtonPanel.NORMAL) .setTooltip(getString("common.import.upload.tooltip"))); addClearButton(fs); } { addImportFilterRadio(gridBuilder); } gridBuilder.newGridPanel(); final DivPanel panel = gridBuilder.getPanel(); storagePanel = new TeamCalImportStoragePanel(panel.newChildId(), parentPage, importFilter); panel.add(storagePanel); }