List of usage examples for org.apache.wicket.ajax.markup.html AjaxLink AjaxLink
public AjaxLink(final String id)
From source file:com.doculibre.constellio.wicket.panels.admin.indexField.meta.MetaListPanel.java
License:Open Source License
@Override protected WebMarkupContainer createDeleteLink(String id, final IModel entityModel, final int index) { return new AjaxLink(id) { @SuppressWarnings("unchecked") @Override/* w w w . j av a2s .c om*/ public void onClick(AjaxRequestTarget target) { List<ConnectorInstanceMetaDTO> metas = (List<ConnectorInstanceMetaDTO>) MetaListPanel.this .getModelObject(); metas.remove(index); target.addComponent(MetaListPanel.this); } @Override protected IAjaxCallDecorator getAjaxCallDecorator() { return new AjaxCallDecorator() { @Override public CharSequence decorateScript(CharSequence script) { String confirmMsg = getLocalizer().getString("confirmDelete", MetaListPanel.this); return "if (confirm('" + confirmMsg + "')) {" + script + "} else { return false; }"; } }; } }; }
From source file:com.doculibre.constellio.wicket.panels.admin.indexField.values.EditIndexFieldLabelledValuesPanel.java
License:Open Source License
public EditIndexFieldLabelledValuesPanel(String id, IndexField indexField) { super(id);//from w w w.j a v a2s .c o m this.indexFieldModel = new ReloadableEntityModel<IndexField>(indexField); String titleKey = "labelledValues"; IModel titleModel = new StringResourceModel(titleKey, this, null); add(new Label("panelTitle", titleModel)); valuesContainer = new WebMarkupContainer("valuesContainer"); add(valuesContainer); valuesContainer.setOutputMarkupId(true); add(new FilterForm("filterForm")); add(new AddLabelForm("addForm")); final IModel localesModel = new LoadableDetachableModel() { @Override protected Object load() { AdminCollectionPanel collectionAdminPanel = (AdminCollectionPanel) findParent( AdminCollectionPanel.class); RecordCollection collection = collectionAdminPanel.getCollection(); return new ArrayList<Locale>(collection.getLocales()); } }; valuesContainer.add(new ListView("locales", localesModel) { @Override protected void populateItem(ListItem item) { Locale locale = (Locale) item.getModelObject(); item.add(new LocaleNameLabel("localeName", locale, true) { @Override public boolean isVisible() { AdminCollectionPanel collectionAdminPanel = (AdminCollectionPanel) findParent( AdminCollectionPanel.class); RecordCollection collection = collectionAdminPanel.getCollection(); return collection.getLocales().size() > 1; } }); } }); IModel labelledValuesModel = new LoadableDetachableModel() { @Override protected Object load() { IndexFieldServices indexFieldServices = ConstellioSpringUtils.getIndexFieldServices(); IndexField indexField = indexFieldModel.getObject(); List<String> indexFieldValues = indexFieldServices.suggestValues(indexField); for (I18NLabel labelledValue : indexField.getLabelledValues()) { indexFieldValues.add(labelledValue.getKey()); } return indexFieldValues; } }; valuesContainer.add(new ListView("items", labelledValuesModel) { @Override protected void populateItem(ListItem item) { final String indexFieldValue = (String) item.getModelObject(); final IModel newIndexFieldValueModel = new Model(indexFieldValue); AjaxEditableLabel editableLabel = new AjaxEditableLabel("value", newIndexFieldValueModel) { @Override protected void onSubmit(AjaxRequestTarget target) { IndexField indexField = indexFieldModel.getObject(); String newIndexFieldValue = (String) newIndexFieldValueModel.getObject(); if (newIndexFieldValue == null || !newIndexFieldValue.equals(indexFieldValue)) { IndexFieldServices indexFieldServices = ConstellioSpringUtils.getIndexFieldServices(); for (I18NLabel i18nLabel : indexField.getLabelledValues()) { if (i18nLabel.getKey().equals(indexFieldValue)) { if (newIndexFieldValue == null) { EntityManager entityManager = ConstellioPersistenceContext .getCurrentEntityManager(); if (!entityManager.getTransaction().isActive()) { entityManager.getTransaction().begin(); } indexField.getLabels().remove(i18nLabel); indexFieldServices.makePersistent(indexField, false); entityManager.getTransaction().commit(); entityManager.clear(); } else { i18nLabel.setKey(newIndexFieldValue); EntityManager entityManager = ConstellioPersistenceContext .getCurrentEntityManager(); if (!entityManager.getTransaction().isActive()) { entityManager.getTransaction().begin(); } indexFieldServices.makePersistent(indexField, false); entityManager.getTransaction().commit(); entityManager.clear(); } } } } super.onSubmit(target); } }; item.add(editableLabel); MultiLocaleComponentHolder labelledValuesHolder = new MultiLocaleComponentHolder("labels", indexFieldValue, indexFieldModel, "labelledValue", localesModel) { @Override protected void onPopulateItem(ListItem item, IModel componentModel, Locale locale) { AjaxEditableLabel editableLabel = new AjaxEditableLabel("editableLabel", componentModel) { @Override protected void onSubmit(AjaxRequestTarget target) { IndexField indexField = indexFieldModel.getObject(); IndexFieldServices indexFieldServices = ConstellioSpringUtils .getIndexFieldServices(); EntityManager entityManager = ConstellioPersistenceContext .getCurrentEntityManager(); if (!entityManager.getTransaction().isActive()) { entityManager.getTransaction().begin(); } indexFieldServices.makePersistent(indexField, false); entityManager.getTransaction().commit(); entityManager.clear(); super.onSubmit(target); } }; item.add(editableLabel); } }; item.add(labelledValuesHolder); item.add(new AjaxLink("deleteLink") { @Override public void onClick(AjaxRequestTarget target) { IndexField indexField = indexFieldModel.getObject(); IndexFieldServices indexFieldServices = ConstellioSpringUtils.getIndexFieldServices(); EntityManager entityManager = ConstellioPersistenceContext.getCurrentEntityManager(); if (!entityManager.getTransaction().isActive()) { entityManager.getTransaction().begin(); } for (Iterator<I18NLabel> it = indexField.getLabelledValues().iterator(); it.hasNext();) { I18NLabel labelledValue = it.next(); if (labelledValue.getKey().equals(indexFieldValue)) { it.remove(); } } indexFieldServices.makePersistent(indexField, false); entityManager.getTransaction().commit(); target.addComponent(valuesContainer); } @Override protected IAjaxCallDecorator getAjaxCallDecorator() { return new AjaxCallDecorator() { @Override public CharSequence decorateScript(CharSequence script) { String confirmMsg = getLocalizer().getString("confirmDelete", EditIndexFieldLabelledValuesPanel.this); return "if (confirm('" + confirmMsg + "')) {" + script + "} else { return false; }"; } }; } }); } }); }
From source file:com.doculibre.constellio.wicket.panels.admin.searchResultField.SearchResultFieldListPanel.java
License:Open Source License
@Override protected List<IColumn> getDataColumns() { List<IColumn> dataColumns = super.getDataColumns(); // Move up/*from www . ja v a 2 s .c o m*/ dataColumns.add(new HeaderlessColumn() { @Override public void populateItem(Item cellItem, String componentId, final IModel rowModel) { cellItem.add(new ImgLinkHolder(componentId) { @Override protected WebMarkupContainer newLink(String id) { return new AjaxLink(id) { @Override public void onClick(AjaxRequestTarget target) { SearchResultFieldServices searchResultFieldServices = ConstellioSpringUtils .getSearchResultFieldServices(); SearchResultField searchResultField = (SearchResultField) rowModel.getObject(); RecordCollection collection = searchResultField.getRecordCollection(); List<SearchResultField> searchResultFields = collection.getSearchResultFields(); int index = searchResultFields.indexOf(searchResultField); // Cannot move higher! if (index > 0) { SearchResultField previousSearchResultField = searchResultFields.set(index - 1, searchResultField); searchResultFields.set(index, previousSearchResultField); EntityManager entityManager = ConstellioPersistenceContext .getCurrentEntityManager(); if (!entityManager.getTransaction().isActive()) { entityManager.getTransaction().begin(); } searchResultFieldServices.makePersistent(searchResultField); searchResultFieldServices.makePersistent(previousSearchResultField); entityManager.getTransaction().commit(); entityManager.clear(); target.addComponent(findParent(AdminSearchResultFieldsPanel.class)); } } }; } @Override protected Component newImg(String id) { return new NonCachingImage(id, new ResourceReference(BaseConstellioPage.class, "images/up.png")); } }); } }); // Move down dataColumns.add(new HeaderlessColumn() { @Override public void populateItem(Item cellItem, String componentId, final IModel rowModel) { cellItem.add(new ImgLinkHolder(componentId) { @Override protected WebMarkupContainer newLink(String id) { return new AjaxLink(id) { @Override public void onClick(AjaxRequestTarget target) { SearchResultFieldServices searchResultFieldServices = ConstellioSpringUtils .getSearchResultFieldServices(); SearchResultField searchResultField = (SearchResultField) rowModel.getObject(); RecordCollection collection = searchResultField.getRecordCollection(); List<SearchResultField> searchResultFields = collection.getSearchResultFields(); int index = searchResultFields.indexOf(searchResultField); // Cannot move lower! if (index < searchResultFields.size() - 1) { SearchResultField previousSearchResultField = searchResultFields.set(index + 1, searchResultField); searchResultFields.set(index, previousSearchResultField); EntityManager entityManager = ConstellioPersistenceContext .getCurrentEntityManager(); if (!entityManager.getTransaction().isActive()) { entityManager.getTransaction().begin(); } searchResultFieldServices.makePersistent(searchResultField); searchResultFieldServices.makePersistent(previousSearchResultField); entityManager.getTransaction().commit(); entityManager.clear(); target.addComponent(findParent(AdminSearchResultFieldsPanel.class)); } } }; } @Override protected Component newImg(String id) { return new NonCachingImage(id, new ResourceReference(BaseConstellioPage.class, "images/down.png")); } }); } }); return dataColumns; }
From source file:com.doculibre.constellio.wicket.panels.admin.solrConfig.SolrConfigPanel.java
License:Open Source License
private ListView getPropertiesListView(List<PropertyRow> propertyRows) { return new ListView("properties", propertyRows) { @Override// w ww. jav a 2 s.c o m protected void populateItem(final ListItem item) { final PropertyRow propertyRow = (PropertyRow) item.getModelObject(); item.setOutputMarkupId(true); item.add(new Label("property", new StringResourceModel(propertyRow.getMessageKey(), SolrConfigPanel.this, null))); IModel stateModel = new LoadableDetachableModel() { protected Object load() { SolrConfig config = solrConfigModel.getObject(); boolean isSet = PropertyResolver.getValue(propertyRow.getProperty(), config) != null; return new StringResourceModel(isSet ? "yes" : "no", SolrConfigPanel.this, null) .getObject(); } }; item.add(new Label("state", stateModel)); AjaxLink defaultValueLink = new AjaxLink("defaultValue") { @Override public void onClick(AjaxRequestTarget target) { SolrConfig config = solrConfigModel.getObject(); PropertyResolver.setValue(propertyRow.getProperty(), config, null, null); target.addComponent(item); save(); } @Override public boolean isVisible() { SolrConfig config = solrConfigModel.getObject(); return PropertyResolver.getValue(propertyRow.getProperty(), config) != null; } }; item.add(defaultValueLink); IModel titleLabelModel = new LoadableDetachableModel() { @Override protected Object load() { boolean isServerConfig = solrConfigModel.getObject().getRecordCollection() == null; String resourceKey = isServerConfig ? "defaultValue" : "defaultServerValue"; return new StringResourceModel(resourceKey, SolrConfigPanel.this, null).getObject(); } }; defaultValueLink.add(new Label("label", titleLabelModel)); if (propertyRow.isModalEdit()) { item.add(new ModalImgLinkHolder("editComponent") { @Override public WebMarkupContainer newLink(String id) { return new AjaxLink(id) { @Override public void onClick(AjaxRequestTarget target) { ModalWindow editModal = getModalWindow(); editModal.setInitialHeight(MODAL_HEIGHT); editModal.setInitialWidth(MODAL_WIDTH); String editMsg = getLocalizer().getString("edit", SolrConfigPanel.this); editModal.setTitle(editMsg); WebMarkupContainer editContent = propertyRow .getEditLinkPanel(editModal.getContentId()); editModal.setContent(editContent); editModal.show(target); target.addComponent(item); } }; } @Override protected Component newImg(String id) { return new NonCachingImage(id, new ResourceReference(BaseConstellioPage.class, "images/ico_crayon.png")); } }); } else if (propertyRow.getType().equals(Boolean.class)) { final IModel valueModel = propertyRow.createModel(); item.add(new CheckBoxHolder("editComponent") { @Override protected WebMarkupContainer newInput(String id) { return new AjaxCheckBox(id, valueModel) { @Override protected void onUpdate(AjaxRequestTarget target) { save(); target.addComponent(item); } @Override public void detachModels() { super.detachModels(); valueModel.detach(); } }; } }); } else { final IModel valueModel = propertyRow.createModel(); item.add(new AjaxEditableLabel("editComponent", valueModel) { @Override protected void onSubmit(AjaxRequestTarget target) { super.onSubmit(target); save(); target.addComponent(item); } @Override public void detachModels() { super.detachModels(); valueModel.detach(); } }); } } }; }
From source file:com.doculibre.constellio.wicket.panels.elevate.ElevatePanel.java
License:Open Source License
public ElevatePanel(String id, Record record, final SimpleSearch simpleSearch) { super(id);//www .j ava2 s. c om this.recordModel = new RecordModel(record); // Query without facets collectionName = simpleSearch.getCollectionName(); Link elevateLink = new Link("elevateLink") { @Override public void onClick() { ElevateServices elevateServices = ConstellioSpringUtils.getElevateServices(); EntityManager entityManager = ConstellioPersistenceContext.getCurrentEntityManager(); if (!entityManager.getTransaction().isActive()) { entityManager.getTransaction().begin(); } Record record = recordModel.getObject(); elevateServices.elevate(record, simpleSearch); entityManager.getTransaction().commit(); PageFactoryPlugin pageFactoryPlugin = PluginFactory.getPlugin(PageFactoryPlugin.class); RequestCycle.get().setResponsePage(pageFactoryPlugin.getSearchResultsPage(), SearchResultsPage.getParameters(simpleSearch)); } }; add(elevateLink); elevateLink.add(new WebMarkupContainer("elevateImg") { @Override public boolean isVisible() { ElevateServices elevateServices = ConstellioSpringUtils.getElevateServices(); Record record = recordModel.getObject(); return !elevateServices.isElevated(record, simpleSearch); } }); elevateLink.add(new WebMarkupContainer("elevatedImg") { @Override public boolean isVisible() { ElevateServices elevateServices = ConstellioSpringUtils.getElevateServices(); Record record = recordModel.getObject(); return elevateServices.isElevated(record, simpleSearch); } }); add(new ModalImgLinkHolder("elevatedQueriesLinkHolder") { @Override protected WebMarkupContainer newLink(String id) { return new AjaxLink(id) { @Override public void onClick(AjaxRequestTarget target) { Record record = recordModel.getObject(); ModalWindow elevatedQueriesModal = getModalWindow(); elevatedQueriesModal.setContent(new EditRecordElevatedQueriesPanel( elevatedQueriesModal.getContentId(), record, simpleSearch)); elevatedQueriesModal.show(target); } }; } @Override protected Component newImg(String id) { Image image = new NonCachingImage(id, new ResourceReference(BaseConstellioPage.class, "images/ico_plus.gif")); return image; } @Override protected IModel getAltModel() { return new StringResourceModel("elevation", this, null); } }); add(new Link("restoreLink") { @Override public void onClick() { ElevateServices elevateServices = ConstellioSpringUtils.getElevateServices(); RecordCollectionServices collectionServices = ConstellioSpringUtils.getRecordCollectionServices(); String collectionName = simpleSearch.getCollectionName(); RecordCollection collection = collectionServices.get(collectionName); SolrServer solrServer = SolrCoreContext.getSolrServer(collection); try { ConstellioPersistenceUtils.beginTransaction(); Record record = recordModel.getObject(); elevateServices.cancelElevation(record, simpleSearch); try { solrServer.commit(); } catch (Throwable t) { try { solrServer.rollback(); } catch (Exception e) { throw new RuntimeException(t); } } } finally { ConstellioPersistenceUtils.finishTransaction(false); } PageFactoryPlugin pageFactoryPlugin = PluginFactory.getPlugin(PageFactoryPlugin.class); RequestCycle.get().setResponsePage(pageFactoryPlugin.getSearchResultsPage(), SearchResultsPage.getParameters(simpleSearch)); } @Override public boolean isVisible() { ElevateServices elevateServices = ConstellioSpringUtils.getElevateServices(); Record record = recordModel.getObject(); return elevateServices.isElevated(record, simpleSearch); } }); add(new Link("excludeLink") { @Override public void onClick() { ElevateServices elevateServices = ConstellioSpringUtils.getElevateServices(); RecordCollectionServices collectionServices = ConstellioSpringUtils.getRecordCollectionServices(); RecordCollection collection = collectionServices.get(collectionName); SolrServer solrServer = SolrCoreContext.getSolrServer(collection); try { ConstellioPersistenceUtils.beginTransaction(); Record record = recordModel.getObject(); elevateServices.exclude(record, collection, simpleSearch); try { solrServer.commit(); } catch (Throwable t) { try { solrServer.rollback(); } catch (Exception e) { throw new RuntimeException(t); } } } finally { ConstellioPersistenceUtils.finishTransaction(false); } recordModel.detach(); int attempts = 0; while (!recordModel.getObject().isExcludedEffective()) { recordModel.detach(); try { Thread.sleep(100); } catch (InterruptedException e) { throw new WicketRuntimeException(e); } attempts++; if (attempts > 10) { // Give up waiting after one second break; } } PageFactoryPlugin pageFactoryPlugin = PluginFactory.getPlugin(PageFactoryPlugin.class); RequestCycle.get().setResponsePage(pageFactoryPlugin.getSearchResultsPage(), SearchResultsPage.getParameters(simpleSearch)); } @Override public boolean isVisible() { ElevateServices elevateServices = ConstellioSpringUtils.getElevateServices(); Record record = recordModel.getObject(); return !elevateServices.isElevated(record, simpleSearch); } }); }
From source file:com.doculibre.constellio.wicket.panels.elevate.queries.EditRecordElevatedQueriesPanel.java
License:Open Source License
public EditRecordElevatedQueriesPanel(String id, Record record, final SimpleSearch simpleSearch) { super(id);/*from w w w. ja v a2 s . c om*/ this.recordModel = new RecordModel(record); this.simpleSearch = simpleSearch; final String collectionName = simpleSearch.getCollectionName(); ElevateServices elevateServices = ConstellioSpringUtils.getElevateServices(); RecordCollectionServices collectionServices = ConstellioSpringUtils.getRecordCollectionServices(); RecordCollection collection = collectionServices.get(collectionName); List<String> elevatedQueries = elevateServices.getElevatedQueries(record, collection); queries.addAll(elevatedQueries); String titleKey = "queries"; IModel titleModel = new StringResourceModel(titleKey, this, null); add(new Label("panelTitle", titleModel)); queriesContainer = new WebMarkupContainer("queriesContainer"); add(queriesContainer); queriesContainer.setOutputMarkupId(true); add(new AddQueryForm("addForm")); queriesContainer.add(new ListView("queries", queries) { @Override protected void populateItem(ListItem item) { final String query = (String) item.getModelObject(); ElevateServices elevateServices = ConstellioSpringUtils.getElevateServices(); SimpleSearch simpleSearch = elevateServices.toSimpleSearch(query); item.add(new SimpleSearchQueryPanel("query", simpleSearch)); item.add(new AjaxLink("deleteLink") { @Override public void onClick(AjaxRequestTarget target) { queries.remove(query); target.addComponent(queriesContainer); } @Override protected IAjaxCallDecorator getAjaxCallDecorator() { return new AjaxCallDecorator() { @Override public CharSequence decorateScript(CharSequence script) { String confirmMsg = getLocalizer().getString("confirmDelete", EditRecordElevatedQueriesPanel.this); return "if (confirm('" + confirmMsg + "')) {" + script + "} else { return false; }"; } }; } }); } }); Form form = new Form("form"); add(form); form.add(new AjaxButton("submitButton") { @Override protected void onSubmit(AjaxRequestTarget target, Form form) { ElevateServices elevateServices = ConstellioSpringUtils.getElevateServices(); RecordCollectionServices collectionServices = ConstellioSpringUtils.getRecordCollectionServices(); RecordCollection collection = collectionServices.get(collectionName); Record record = recordModel.getObject(); List<String> originalQueries = elevateServices.getElevatedQueries(record, collection); for (String originalQuery : originalQueries) { if (!queries.contains(originalQuery)) { SimpleSearch originalQuerySimpleSearch = elevateServices.toSimpleSearch(originalQuery); elevateServices.cancelElevation(record, originalQuerySimpleSearch); } } for (String query : queries) { SimpleSearch querySimpleSearch = elevateServices.toSimpleSearch(query); if (!elevateServices.isElevated(record, querySimpleSearch)) { elevateServices.elevate(record, querySimpleSearch); } } ModalWindow.closeCurrent(target); } }); form.add(new AjaxButton("cancelButton") { @Override protected void onSubmit(AjaxRequestTarget target, Form form) { ModalWindow.closeCurrent(target); } }.setDefaultFormProcessing(false)); }
From source file:com.doculibre.constellio.wicket.panels.fold.FoldableSectionPanel.java
License:Open Source License
protected WebMarkupContainer newToggleLink(String id) { return new AjaxLink(id) { @Override/* w ww .j av a 2 s . c o m*/ public void onClick(AjaxRequestTarget target) { setOpened(!isOpened()); onToggle(target); target.addComponent(FoldableSectionPanel.this); } }; }
From source file:com.doculibre.constellio.wicket.panels.results.MailDetailsPanel.java
License:Open Source License
public MailDetailsPanel(String id, final Email email) { super(id, new CompoundPropertyModel(email)); add(new Label("froms").setEscapeModelStrings(false)); String messageContentText = email.getMessageContentHtml(); String text = email.getMessageContentText(); //FIXME : hack car les fichiers textes attachs sont ajout comme contenu texte if (text.length() > messageContentText.length()) { messageContentText = text;// www . ja va 2 s.c o m } messageContentText = StringUtils.replace(messageContentText, ">>", ">>"); messageContentText = StringUtils.replace(messageContentText, "\n>", "\n>"); messageContentText = StringUtils.replace(messageContentText, "\n", "\n<br />"); // String encodedString; // try { // encodedString = new String(messageContentText.getBytes(), email.getContentEncoding()); // } catch (UnsupportedEncodingException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // encodedString = messageContentText; // } // add(new Label("messageContent", encodedString).setEscapeModelStrings(false)); add(new Label("messageContent", messageContentText).setEscapeModelStrings(false)); add(new ListView("linksList", email.getAttachments()) { @Override protected void populateItem(final ListItem item) { final Email.AttachmentClass element = (Email.AttachmentClass) item.getModelObject(); final AJAXDownload download = new AJAXDownload() { @Override protected IResourceStream getResourceStream() { return createResourceStream(element); } @Override protected String getFileName() { return element.getAttachmentName(); } private IResourceStream createResourceStream(final Email.AttachmentClass element) { IResourceStream resourceStream = new IResourceStream() { private Locale locale = null; private InputStream inputStream = null; @Override public void close() throws IOException { if (inputStream != null) { IOUtils.closeQuietly(inputStream); } } @Override public String getContentType() { return element.getAttachmentType(); } @Override public InputStream getInputStream() throws ResourceStreamNotFoundException { if (inputStream == null) { inputStream = new ByteArrayInputStream(element.getAttachmentContent()); } return inputStream; } @Override public Locale getLocale() { return locale; } @Override public long length() { return ((Integer) element.getAttachmentContent().length).longValue(); } @Override public void setLocale(Locale locale) { this.locale = locale; } @Override public Time lastModifiedTime() { // TODO Auto-generated method stub return null; } }; return resourceStream; } }; item.add(download); AjaxLink link; item.add(link = new AjaxLink("attachmentLinks") { @Override public void onClick(AjaxRequestTarget target) { download.initiate(target); } }); link.add(new Label("urlTitle", element.getAttachmentName())); /*Link link; add(link = new DownloadInputStreamLink("attachmentLinks", new LoadableDetachableModel() { @Override protected Object load() { ByteArrayInputStream in = new ByteArrayInputStream( element.getAttachmentContent()); return in; } }, element.getAttachmentName(), element .getAttachmentType(), ((Integer) element.getAttachmentContent().length) .longValue(), new Date())); link.add(new Label("urlTitle", element.getAttachmentName()));*/ item.add(link); } }); add(new Label("recipients").setEscapeModelStrings(false)); //FIXME 1 by 1 String flags = StringUtils.join(email.getFlags(), ", "); //FIXME i18n flags = StringUtils.replace(flags, "seen", getLocalizer().getString("seen", this)); flags = StringUtils.replace(flags, "flagged", getLocalizer().getString("flagged", this)); add(new Label("flags", flags).setEscapeModelStrings(false)); // add(new Label("folderNames").setEscapeModelStrings(false)); add(new Label("receivedDate").setEscapeModelStrings(false)); }
From source file:com.doculibre.constellio.wicket.panels.results.MailSearchResultPanel.java
License:Open Source License
public MailSearchResultPanel(String id, final SolrDocument doc, final SearchResultsDataProvider dataProvider) { super(id);//from w ww . j a v a 2 s . c o m RecordServices recordServices = ConstellioSpringUtils.getRecordServices(); RecordCollectionServices collectionServices = ConstellioSpringUtils.getRecordCollectionServices(); final Long recordId = new Long(doc.getFieldValue(IndexField.RECORD_ID_FIELD).toString()); final String collectionName = dataProvider.getSimpleSearch().getCollectionName(); RecordCollection collection = collectionServices.get(collectionName); Record record = recordServices.get(recordId, collection); final IModel subjectModel = new LoadableDetachableModel() { @Override protected Object load() { RecordServices recordServices = ConstellioSpringUtils.getRecordServices(); Record record = recordServices.get(doc); String subject = record.getDisplayTitle(); if (StringUtils.isBlank(subject)) { subject = getLocalizer().getString("noSubject", MailSearchResultPanel.this); } if (subject.length() > 60) { subject = subject.substring(0, 60) + " ..."; } return subject; } }; // List<byte[]> attachmentContents = new ArrayList<byte[]>(); // String messageContent = null; // for (RawContent raw : rawContents) { // byte[] bytes = raw.getContent(); // if (messageContent == null) { // messageContent = new String(bytes); // } else { // attachmentContents.add(bytes); // } // System.out.println("partial content :" + new String(bytes)); // } // System.out.println("content 1 :" + messageContent); // Description du document dans extrait: QueryResponse response = dataProvider.getQueryResponse(); Map<String, Map<String, List<String>>> highlighting = response.getHighlighting(); final String recordURL = record.getUrl(); Map<String, List<String>> fieldsHighlighting = highlighting.get(recordURL); ConnectorInstance connectorInstance = record.getConnectorInstance(); IndexField defaultSearchField = collection.getDefaultSearchIndexField(); String excerpt = getExcerptFromHighlight(defaultSearchField.getName(), fieldsHighlighting); final ModalWindow detailsMailModal = new ModalWindow("detailsMailModal"); detailsMailModal.setPageCreator(new PageCreator() { @Override public Page createPage() { return new BaseConstellioPage(); } }); add(detailsMailModal); detailsMailModal.setCssClassName(ModalWindow.CSS_CLASS_GRAY); detailsMailModal.setCookieName("detailsMailModal"); IModel modalTitleModel = subjectModel; detailsMailModal.setTitle(modalTitleModel); final String displayURL = (String) doc.getFieldValue(collection.getUrlIndexField().getName()); emailModel = new LoadableDetachableModel() { @Override protected Object load() { RecordServices recordServices = ConstellioSpringUtils.getRecordServices(); Record record = recordServices.get(doc); List<String> attachmentNames = record.getMetaContents(MailConnectorConstants.META_ATTACHMENTNAME); List<String> attachmentTypes = record.getMetaContents(MailConnectorConstants.META_ATTACHMENTTYPE); List<String> recipients = record.getMetaContents(MailConnectorConstants.META_RECIPIENTS); List<String> flags = record.getMetaContents(MailConnectorConstants.META_FLAGS); List<String> froms = record.getMetaContents(MailConnectorConstants.META_SENDER); // FIXME Hardcoded List<String> contentEncoding = record.getMetaContents("Content-Encoding"); List<String> receivedDateList = record.getMetaContents(MailConnectorConstants.META_RECEIVEDDATE); // FIXME voir avec Vincent : exemple qui ne marche pas jobboom car mail contient que du html RawContentServices rawContentServices = ConstellioSpringUtils.getRawContentServices(); List<RawContent> rawContents = rawContentServices.getRawContents(record); ParsedContent parsedContents = record.getParsedContent(); Email email; if (rawContents.size() != 0) { byte[] content = rawContents.get(0).getContent(); String tmpFilePath = ClasspathUtils.getCollectionsRootDir() + File.separator + "tmp.eml"; try { email = MailMessageUtils.toEmail(content, tmpFilePath); } catch (Exception e) { System.out.println("Error in reading content of mail"); // le contenu n'a pas bien t lu correctement email = new Email(); email.setMessageContentText(parsedContents.getContent()); } } else { // le contenu n'a pas bien t lu correctement email = new Email(); email.setMessageContentText(parsedContents.getContent()); } email.setFlags(flags); // email.setMessageContentHtml(messageContentHtml); if (!receivedDateList.isEmpty()) { email.setReceivedDate(receivedDateList.get(0)); } email.setRecipients(recipients); email.setSubject((String) subjectModel.getObject()); email.setFroms(froms); // email.setLanguage(language); if (!contentEncoding.isEmpty()) { email.setContentEncoding(contentEncoding.get(0)); } return email; } }; final RecordModel recordModel = new RecordModel(record); AjaxLink detailsMailLink = new AjaxLink("detailsMailLink") { @Override public void onClick(AjaxRequestTarget target) { Email email = (Email) emailModel.getObject(); detailsMailModal.setContent(new MailDetailsPanel(detailsMailModal.getContentId(), email)); detailsMailModal.show(target); } @Override protected IAjaxCallDecorator getAjaxCallDecorator() { return new AjaxCallDecorator() { @Override public CharSequence decorateScript(CharSequence script) { Record record = recordModel.getObject(); SimpleSearch simpleSearch = dataProvider.getSimpleSearch(); WebRequest webRequest = (WebRequest) RequestCycle.get().getRequest(); HttpServletRequest httpRequest = webRequest.getHttpServletRequest(); return script + ";" + ComputeSearchResultClickServlet.getCallbackJavascript(httpRequest, simpleSearch, record); } }; } }; add(detailsMailLink); IModel recipientsLabelModel = new LoadableDetachableModel() { @Override protected Object load() { RecordServices recordServices = ConstellioSpringUtils.getRecordServices(); Record record = recordServices.get(doc); List<String> recipients = record.getMetaContents(MailConnectorConstants.META_RECIPIENTS); return getLocalizer().getString("to", MailSearchResultPanel.this) + " : " + recipients; } }; IModel receivedDateLabelModel = new LoadableDetachableModel() { @Override protected Object load() { RecordServices recordServices = ConstellioSpringUtils.getRecordServices(); Record record = recordServices.get(doc); List<String> receivedDateList = record.getMetaContents(MailConnectorConstants.META_RECEIVEDDATE); String receivedDate; if (!receivedDateList.isEmpty()) { receivedDate = receivedDateList.get(0); } else { receivedDate = ""; } return getLocalizer().getString("date", MailSearchResultPanel.this) + " : " + receivedDate; } }; Label subjectLabel = new Label("subject", subjectModel); detailsMailLink.add(subjectLabel.setEscapeModelStrings(false)); Label excerptLbl = new Label("messageContent", excerpt); add(excerptLbl.setEscapeModelStrings(false)); add(new Label("recipient", recipientsLabelModel) { @Override public boolean isVisible() { boolean visible = super.isVisible(); if (visible) { RecordCollectionServices collectionServices = ConstellioSpringUtils .getRecordCollectionServices(); RecordServices recordServices = ConstellioSpringUtils.getRecordServices(); RecordCollection collection = collectionServices.get(collectionName); Record record = recordServices.get(recordId, collection); List<String> recipients = record.getMetaContents(MailConnectorConstants.META_RECIPIENTS); visible = !recipients.isEmpty(); } return visible; } }); // add(new Label("from", getLocalizer().getString("from", this) + " : " + froms)); add(new Label("date", receivedDateLabelModel)); add(new WebMarkupContainer("hasAttachmentsImg") { @Override public boolean isVisible() { boolean visible = super.isVisible(); if (visible) { RecordServices recordServices = ConstellioSpringUtils.getRecordServices(); Record record = recordServices.get(doc); List<String> attachmentNames = record .getMetaContents(MailConnectorConstants.META_ATTACHMENTNAME); visible = !attachmentNames.isEmpty(); } return visible; } }); final ReloadableEntityModel<RecordCollection> collectionModel = new ReloadableEntityModel<RecordCollection>( collection); add(new ListView("searchResultFields", new LoadableDetachableModel() { @Override protected Object load() { RecordCollection collection = collectionModel.getObject(); return collection.getSearchResultFields(); } /** * Detaches from the current request. Implement this method with custom behavior, such as * setting the model object to null. */ protected void onDetach() { recordModel.detach(); collectionModel.detach(); } }) { @Override protected void populateItem(ListItem item) { SearchResultField searchResultField = (SearchResultField) item.getModelObject(); IndexFieldServices indexFieldServices = ConstellioSpringUtils.getIndexFieldServices(); Record record = recordModel.getObject(); IndexField indexField = searchResultField.getIndexField(); Locale locale = getLocale(); String indexFieldTitle = indexField.getTitle(locale); if (StringUtils.isBlank(indexFieldTitle)) { indexFieldTitle = indexField.getName(); } StringBuffer fieldValueSb = new StringBuffer(); List<Object> fieldValues = indexFieldServices.extractFieldValues(record, indexField); Map<String, String> defaultLabelledValues = indexFieldServices.getDefaultLabelledValues(indexField, locale); for (Object fieldValue : fieldValues) { if (fieldValueSb.length() > 0) { fieldValueSb.append("\n"); } String fieldValueLabel = indexField.getLabelledValue("" + fieldValue, locale); if (fieldValueLabel == null) { fieldValueLabel = defaultLabelledValues.get("" + fieldValue); } if (fieldValueLabel == null) { fieldValueLabel = "" + fieldValue; } fieldValueSb.append(fieldValueLabel); } item.add(new Label("indexField", indexFieldTitle)); item.add(new MultiLineLabel("indexFieldValue", fieldValueSb.toString())); item.setVisible(fieldValueSb.length() > 0); } @SuppressWarnings("unchecked") @Override public boolean isVisible() { boolean visible = super.isVisible(); if (visible) { List<SearchResultField> searchResultFields = (List<SearchResultField>) getModelObject(); visible = !searchResultFields.isEmpty(); } return visible; } }); add(new ElevatePanel("elevatePanel", record, dataProvider.getSimpleSearch())); }
From source file:com.doculibre.constellio.wicket.panels.results.PopupSearchResultPanel.java
License:Open Source License
public PopupSearchResultPanel(String id, SolrDocument doc, final SearchResultsDataProvider dataProvider) { super(id);//from ww w .j a v a2 s. co m RecordCollectionServices collectionServices = ConstellioSpringUtils.getRecordCollectionServices(); String solrServerName = dataProvider.getSimpleSearch().getCollectionName(); RecordCollection collection = collectionServices.get(solrServerName); IndexField uniqueKeyField = collection.getUniqueKeyIndexField(); IndexField defaultSearchField = collection.getDefaultSearchIndexField(); IndexField urlField = collection.getUrlIndexField(); IndexField titleField = collection.getTitleIndexField(); // title String documentID = (String) getFieldValue(doc, uniqueKeyField.getName()); String documentTitle = (String) getFieldValue(doc, titleField.getName()); if (StringUtils.isBlank(documentTitle)) { if (urlField == null) { documentTitle = (String) getFieldValue(doc, uniqueKeyField.getName()); } else { documentTitle = (String) getFieldValue(doc, urlField.getName()); } } if (documentTitle.length() > 120) { documentTitle = documentTitle.substring(0, 120) + " ..."; } // content RecordServices recordServices = ConstellioSpringUtils.getRecordServices(); Record record = recordServices.get(doc); RawContentServices rawContentServices = ConstellioSpringUtils.getRawContentServices(); List<RawContent> rawContents = rawContentServices.getRawContents(record); StringBuilder content = new StringBuilder(); for (RawContent raw : rawContents) { byte[] bytes = raw.getContent(); content.append(new String(bytes)); } String documentContent = content.toString(); // date String documentLastModified = getFieldValue(doc, IndexField.LAST_MODIFIED_FIELD); // Description du document dans extrait: QueryResponse response = dataProvider.getQueryResponse(); Map<String, Map<String, List<String>>> highlighting = response.getHighlighting(); final String recordURL = record.getUrl(); Map<String, List<String>> fieldsHighlighting = highlighting.get(recordURL); String extrait = getExcerptFromHighlight(defaultSearchField.getName(), fieldsHighlighting); final ModalWindow detailsDocumentModal = new ModalWindow("detailsDocumentModal"); add(detailsDocumentModal); detailsDocumentModal.setCssClassName(ModalWindow.CSS_CLASS_GRAY); detailsDocumentModal.setContent( new PopupDetailsPanel(detailsDocumentModal.getContentId(), documentContent, documentLastModified)); detailsDocumentModal.setCookieName("detailsDocumentModal"); String modalTitle = documentTitle; detailsDocumentModal.setTitle(modalTitle); AjaxLink detailsDocumentLink = new AjaxLink("detailsDocumentLink") { @Override public void onClick(AjaxRequestTarget target) { detailsDocumentModal.show(target); } }; add(detailsDocumentLink); final RecordModel recordModel = new RecordModel(record); AttributeAppender computeClickAttributeModifier = new AttributeAppender("onclick", true, new LoadableDetachableModel() { @Override protected Object load() { Record record = recordModel.getObject(); SimpleSearch simpleSearch = dataProvider.getSimpleSearch(); WebRequest webRequest = (WebRequest) RequestCycle.get().getRequest(); HttpServletRequest httpRequest = webRequest.getHttpServletRequest(); return ComputeSearchResultClickServlet.getCallbackJavascript(httpRequest, simpleSearch, record); } @Override protected void onDetach() { recordModel.detach(); super.onDetach(); } }, ";") { @Override protected String newValue(String currentValue, String appendValue) { return appendValue + currentValue; } }; detailsDocumentLink.add(computeClickAttributeModifier); Label subjectLabel = new Label("subject", documentTitle); detailsDocumentLink.add(subjectLabel.setEscapeModelStrings(false)); Label extraitLbl = new Label("documentContent", extrait); add(extraitLbl.setEscapeModelStrings(false)); add(new Label("date", "Date : " + documentLastModified)); add(new ElevatePanel("elevatePanel", record, dataProvider.getSimpleSearch())); }