List of usage examples for org.apache.wicket.extensions.ajax.markup.html AjaxEditableLabel AjaxEditableLabel
public AjaxEditableLabel(final String id, final IModel<T> model)
From source file:com.comcast.cdn.traffic_control.traffic_monitor.wicket.components.EditConfigPanel.java
License:Apache License
private final void setForm(final Form<MonitorConfig> editform, final Map<String, String> baseconfig) { final MonitorConfig config = ConfigHandler.getConfig(); if (config == null || !config.allowConfigEdit()) { return;// w w w . j a va 2s . c o m } final List<String> keys = sort(baseconfig.keySet()); keys.remove(TM_HOSTNAME_KEY); keys.remove(CDN_NAME_KEY); final List<String> TM_HOSTS = Arrays.asList(new String[] { "tm.company.net" }); final ArrayList<String> cdnList = new ArrayList<String>(); final String hostName = baseconfig.get(TM_HOSTNAME_KEY); setCdnList(cdnList, hostName); final AjaxEditableChoiceLabel<String> tmHost = new AjaxEditableChoiceLabel<String>("tmHost", new BaseConfigModel(TM_HOSTNAME_KEY, baseconfig), TM_HOSTS) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(final AjaxRequestTarget target) { super.onSubmit(target); final String hostName = baseconfig.get(TM_HOSTNAME_KEY); setCdnList(cdnList, hostName); target.add(cdnName); } }; // listSites editform.add(tmHost); cdnName = new AjaxEditableChoiceLabel<String>(CDN_NAME_KEY, new BaseConfigModel(CDN_NAME_KEY, baseconfig), new WildcardListModel<String>(cdnList)); // listSites editform.add(cdnName); final ListView<String> propView = new ListView<String>("propList", keys) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final ListItem<String> item) { final String key = item.getModelObject(); final Label label = new Label("key", key); item.add(label); // editform.add(new TextField("value", new Model<String>(baseconfig.get(key)))) ; item.add(new AjaxEditableLabel<String>("value", new BaseConfigModel(key, baseconfig))); item.add(label); } }; editform.add(propView); editform.add(new AjaxLink<Object>("cancel") { private static final long serialVersionUID = 1L; @Override public void onClick(final AjaxRequestTarget target) { final Map<String, String> oldProps = ConfigHandler.getConfig().getBaseProps(); baseconfig.putAll(oldProps); final String hostName = baseconfig.get(TM_HOSTNAME_KEY); setCdnList(cdnList, hostName); if (target != null) { target.add(EditConfigPanel.this); } } }); editform.add(new AjaxButton("submit", editform) { private static final long serialVersionUID = 1L; @Override public void onSubmit(final AjaxRequestTarget target, final Form<?> form) { try { ConfigHandler.saveBaseConfig(baseconfig); TmWatcher.getInstance().refresh(); } catch (JSONException e) { LOGGER.warn(e, e); } catch (IOException e) { LOGGER.warn(e, e); } // EditConfigPanel.this.showForm(false); if (target != null) { target.add(EditConfigPanel.this); } } }); }
From source file:com.doculibre.constellio.wicket.panels.admin.connectorTypeMeta.ConnectorTypeMetaMappingListPanel.java
License:Open Source License
private IColumn getAjaxEditableLabelColumn(final String propertyName) { return new AbstractColumn(new StringResourceModel(propertyName, this, null)) { @Override//from w w w . j av a 2 s .c o m public void populateItem(Item cellItem, String componentId, IModel rowModel) { ConnectorTypeMetaMapping metaMapping = (ConnectorTypeMetaMapping) rowModel.getObject(); final ReloadableEntityModel<ConnectorTypeMetaMapping> entityModel = new ReloadableEntityModel<ConnectorTypeMetaMapping>( metaMapping); cellItem.setModel(new CompoundPropertyModel(entityModel)); cellItem.add(new AjaxEditableLabel(componentId, new PropertyModel(entityModel, propertyName)) { @Override protected void onSubmit(AjaxRequestTarget target) { updateMetaMapping(entityModel.getObject(), target); super.onSubmit(target); } @Override public void detachModels() { entityModel.detach(); super.detachModels(); } }); } }; }
From source file:com.doculibre.constellio.wicket.panels.admin.facets.values.EditFacetLabelledValuesPanel.java
License:Open Source License
public EditFacetLabelledValuesPanel(String id, CollectionFacet facet) { super(id);/* www . j a v a 2 s . c o m*/ this.facetModel = new ReloadableEntityModel<CollectionFacet>(facet); String titleKey = facet.isQueryFacet() ? "queries" : "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() { List<String> facetValues; FacetServices facetServices = ConstellioSpringUtils.getFacetServices(); CollectionFacet facet = facetModel.getObject(); if (facet.isFieldFacet()) { facetValues = facetServices.suggestValues(facet, filter); } else { facetValues = new ArrayList<String>(); for (I18NLabel labelledValue : facet.getLabelledValues()) { facetValues.add(labelledValue.getKey()); } } return facetValues; } }; valuesContainer.add(new ListView("items", labelledValuesModel) { @Override protected void populateItem(ListItem item) { final String facetValue = (String) item.getModelObject(); final IModel newFacetValueModel = new Model(facetValue); AjaxEditableLabel editableLabel = new AjaxEditableLabel("value", newFacetValueModel) { @Override protected void onSubmit(AjaxRequestTarget target) { CollectionFacet facet = facetModel.getObject(); String newFacetValue = (String) newFacetValueModel.getObject(); if (newFacetValue == null || !newFacetValue.equals(facetValue)) { FacetServices facetServices = ConstellioSpringUtils.getFacetServices(); for (I18NLabel i18nLabel : facet.getLabelledValues()) { if (i18nLabel.getKey().equals(facetValue)) { if (newFacetValue == null) { EntityManager entityManager = ConstellioPersistenceContext .getCurrentEntityManager(); if (!entityManager.getTransaction().isActive()) { entityManager.getTransaction().begin(); } facet.getLabels().remove(i18nLabel); facetServices.makePersistent(facet); entityManager.getTransaction().commit(); entityManager.clear(); } else { i18nLabel.setKey(newFacetValue); EntityManager entityManager = ConstellioPersistenceContext .getCurrentEntityManager(); if (!entityManager.getTransaction().isActive()) { entityManager.getTransaction().begin(); } facetServices.makePersistent(facet); entityManager.getTransaction().commit(); entityManager.clear(); } } } } super.onSubmit(target); } }; item.add(editableLabel); MultiLocaleComponentHolder labelledValuesHolder = new MultiLocaleComponentHolder("labels", facetValue, facetModel, "labelledValue", localesModel) { @Override protected void onPopulateItem(ListItem item, IModel componentModel, Locale locale) { AjaxEditableLabel editableLabel = new AjaxEditableLabel("editableLabel", componentModel) { @Override protected void onSubmit(AjaxRequestTarget target) { CollectionFacet facet = facetModel.getObject(); FacetServices facetServices = ConstellioSpringUtils.getFacetServices(); EntityManager entityManager = ConstellioPersistenceContext .getCurrentEntityManager(); if (!entityManager.getTransaction().isActive()) { entityManager.getTransaction().begin(); } facetServices.makePersistent(facet); 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) { CollectionFacet facet = facetModel.getObject(); FacetServices facetServices = ConstellioSpringUtils.getFacetServices(); EntityManager entityManager = ConstellioPersistenceContext.getCurrentEntityManager(); if (!entityManager.getTransaction().isActive()) { entityManager.getTransaction().begin(); } for (Iterator<I18NLabel> it = facet.getLabelledValues().iterator(); it.hasNext();) { I18NLabel labelledValue = it.next(); if (labelledValue.getKey().equals(facetValue)) { it.remove(); } } facetServices.makePersistent(facet); entityManager.getTransaction().commit(); target.addComponent(valuesContainer); } @Override protected IAjaxCallDecorator getAjaxCallDecorator() { return new AjaxCallDecorator() { @Override public CharSequence decorateScript(CharSequence script) { String confirmMsg = getLocalizer().getString("confirmDelete", EditFacetLabelledValuesPanel.this); return "if (confirm('" + confirmMsg + "')) {" + script + "} else { return false; }"; } }; } }); } }); }
From source file:com.doculibre.constellio.wicket.panels.admin.indexField.IndexFieldListPanel.java
License:Open Source License
private IColumn getAjaxEditableLabelColumn(final String propertyName) { return new AbstractColumn(new StringResourceModel(propertyName, this, null)) { @Override/* w w w . j a v a2 s . c o m*/ public void populateItem(Item cellItem, String componentId, IModel rowModel) { IndexField indexField = (IndexField) rowModel.getObject(); final ReloadableEntityModel<IndexField> entityModel = new ReloadableEntityModel<IndexField>( indexField); cellItem.setModel(new CompoundPropertyModel(entityModel)); cellItem.add(new AjaxEditableLabel(componentId, new PropertyModel(entityModel, propertyName)) { @Override protected void onSubmit(AjaxRequestTarget target) { updateIndexField(entityModel.getObject(), target); super.onSubmit(target); } @Override public void detachModels() { entityModel.detach(); super.detachModels(); } @Override public boolean isEnabled() { IndexField indexField = entityModel.getObject(); return super.isEnabled() && !indexField.isInternalField(); } }); } }; }
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 ww . j a v a2 s . com 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.solrConfig.SolrConfigPanel.java
License:Open Source License
private ListView getPropertiesListView(List<PropertyRow> propertyRows) { return new ListView("properties", propertyRows) { @Override//from w w w. j a v a2 s.c om 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.locke.tricks.i.I.java
License:Apache License
public I() { add(new AjaxEditableLabel<String>("label", new Model<String>(getString("clickHere")))); }
From source file:cz.zcu.kiv.eegdatabase.wui.ui.experiments.metadata.template.PropertyMultiValuePanel.java
License:Apache License
public PropertyMultiValuePanel(String id, final IModel<Property> model) { super(id, new CompoundPropertyModel<Property>(model)); setOutputMarkupId(true);// w ww .j a v a2s .co m property = model.getObject(); valueSuffix = property.valueCount() + 1; PropertyListView<Value> values = new PropertyListView<Value>("values") { private static final long serialVersionUID = 1L; @Override protected void populateItem(final ListItem<Value> item) { int index = item.getIndex(); item.add(new AjaxEditableLabel<Serializable>("content", new PropertyValueModel(property, index)) { private static final long serialVersionUID = 1L; @Override protected String defaultNullLabel() { return "..."; } }); item.add(new AjaxLink<Void>("removeValueLink") { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { int index = item.getIndex(); property.removeValue(index); target.add(PropertyMultiValuePanel.this); } @Override protected void onConfigure() { super.onConfigure(); setVisible(property.valueCount() > 1); } }); } }; values.setReuseItems(true); add(values); AjaxLink<Void> addLink = new AjaxLink<Void>("addButton") { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { property.addValue(ResourceUtils.getString("text.template.empty.propertyValue") + valueSuffix++); target.add(PropertyMultiValuePanel.this); } }; add(addLink); }
From source file:de.tudarmstadt.ukp.csniper.webapp.evaluation.page.EvaluationPage.java
License:Apache License
/** * Constructor that is invoked when page is invoked without a session. *//* w w w.j a va2 s . com*/ @SuppressWarnings({ "serial" }) public EvaluationPage() { contextViewsContainer = new WebMarkupContainer("contextViewsContainer") { { contextViews = new ListView<ContextView>("contextViews") { @Override protected void populateItem(ListItem aItem) { aItem.add((Component) aItem.getModelObject()); } }; add(contextViews); } }; contextViewsContainer.setOutputMarkupId(true); add(contextViewsContainer); columns = new ArrayList<IColumn<EvaluationResult, String>>(); columns.add(new AbstractColumn<EvaluationResult, String>(new Model<String>("")) { @Override public void populateItem(final Item<ICellPopulator<EvaluationResult>> aCellItem, String aComponentId, final IModel<EvaluationResult> model) { EmbeddableImage iconContext = new EmbeddableImage(aComponentId, new ContextRelativeResource("images/context.png")); iconContext.add(new AjaxEventBehavior("onclick") { @Override protected void onEvent(AjaxRequestTarget aTarget) { try { contextViews .setList(asList(new ContextView(contextProvider, model.getObject().getItem()))); aTarget.add(contextViewsContainer); } catch (IOException e) { aTarget.add(getFeedbackPanel()); error("Unable to load context: " + e.getMessage()); } } }); iconContext.add(new AttributeModifier("class", new Model<String>("clickableElement"))); aCellItem.add(iconContext); } }); columns.add(new AbstractColumn<EvaluationResult, String>(new Model<String>("")) { @Override public void populateItem(final Item<ICellPopulator<EvaluationResult>> aCellItem, final String aComponentId, final IModel<EvaluationResult> model) { // PopupLink pl = new PopupLink(aComponentId, new AnalysisPage(model.getObject() // .getItem()), "analysis", "Analyse", 800, 600); // pl.add(new AttributeModifier("class", new Model<String>("clickableElement"))); // aCellItem.add(pl); EmbeddableImage iconAnalysis = new EmbeddableImage(aComponentId, new ContextRelativeResource("images/analysis.png")); iconAnalysis.add(new AjaxEventBehavior("onclick") { @Override protected void onEvent(AjaxRequestTarget aTarget) { EvaluationItem item = model.getObject().getItem(); CachedParse cachedTree = repository.getCachedParse(item); ParseTreeResource ptr; if (cachedTree != null) { ptr = new ParseTreeResource(cachedTree.getPennTree()); } else { if (pp == null) { pp = new ParsingPipeline(); } CasHolder ch = new CasHolder(pp.parseInput("stanfordParser", corpusService.getCorpus(item.getCollectionId()).getLanguage(), item.getCoveredText())); ptr = new ParseTreeResource(ch); } analysisModal.setContent(new AnalysisPanel(analysisModal.getContentId(), ptr)); analysisModal.show(aTarget); } }); iconAnalysis.add(new AttributeModifier("class", new Model<String>("clickableElement"))); aCellItem.add(iconAnalysis); } }); // columns.add(new PropertyColumn(new Model<String>("ID"), "id", "id")); // columns.add(new PropertyColumn(new Model<String>("Collection"), "item.collectionId", // "item.collectionId")); columns.add(new PropertyColumn<EvaluationResult, String>(new Model<String>("Doc"), "item.documentId", "item.documentId")); // columns.add(new PropertyColumn(new Model<String>("Begin"), "item.beginOffset", // "item.beginOffset")); // columns.add(new PropertyColumn(new Model<String>("End"), "item.endOffset", // "item.endOffset")); columns.add(new PropertyColumn<EvaluationResult, String>(new Model<String>("Left"), "item.leftContext", "item.leftContext") { @Override public String getCssClass() { return contextAvailable ? "leftContext" : " hideCol"; } }); columns.add(new PropertyColumn<EvaluationResult, String>(new Model<String>("Match"), "item.match", "item.match") { @Override public String getCssClass() { return contextAvailable ? "match nowrap" : null; } }); columns.add(new PropertyColumn<EvaluationResult, String>(new Model<String>("Right"), "item.rightContext", "item.rightContext") { @Override public String getCssClass() { return contextAvailable ? "rightContext" : " hideCol"; } }); columns.add(new AbstractColumn<EvaluationResult, String>(new Model<String>("Label"), "result") { @Override public void populateItem(final Item<ICellPopulator<EvaluationResult>> aCellItem, String aComponentId, final IModel<EvaluationResult> model) { final Label resultLabel = new Label(aComponentId, new PropertyModel(model, "result")); resultLabel.setOutputMarkupId(true); aCellItem.add(resultLabel); if (showResultColumns) { aCellItem.add(AttributeModifier.replace("class", new Model<String>("editable " + model.getObject().getResult().toLowerCase()))); } aCellItem.add(new AjaxEventBehavior("onclick") { @Override protected void onEvent(AjaxRequestTarget aTarget) { EvaluationResult result = model.getObject(); // cycle to next result Mark newResult = Mark.fromString(result.getResult()).next(); // update database result.setResult(newResult.getTitle()); repository.updateEvaluationResult(result); // update DataTable aCellItem.add(AttributeModifier.replace("class", new Model<String>("editable " + newResult.getTitle().toLowerCase()))); aTarget.add(resultLabel, aCellItem); } }); } @Override public String getCssClass() { return (showResultColumns ? "" : " hideCol"); } }); columns.add(new AbstractColumn<EvaluationResult, String>(new Model<String>("Comment"), "comment") { @Override public void populateItem(Item<ICellPopulator<EvaluationResult>> cellItem, String componentId, final IModel<EvaluationResult> model) { cellItem.add( new AjaxEditableLabel<String>(componentId, new PropertyModel<String>(model, "comment")) { @Override public void onSubmit(final AjaxRequestTarget aTarget) { super.onSubmit(aTarget); EvaluationResult result = model.getObject(); // get new comment String newComment = getEditor().getInput(); // update database result.setComment(newComment); repository.updateEvaluationResult(result); } @Override public void onError(AjaxRequestTarget aTarget) { super.onError(aTarget); aTarget.add(getFeedbackPanel()); } }.add(new DbFieldMaxLengthValidator(projectRepository, "EvaluationResult", "comment"))); } @Override public String getCssClass() { return "editable" + (showResultColumns ? "" : " hideCol"); } }); // collection and type add(parentOptionsForm = new ParentOptionsForm("parentOptions")); tabs = new Tabs("tabs"); tabs.setVisible(false); // query tab tabs.add(queryForm = new QueryForm("queryForm")); // revision tab tabs.add(reviewForm = new ReviewForm("reviewForm")); // completion tab tabs.add(new Form("completeForm") { { add(new ExtendedIndicatingAjaxButton("completeButton", new Model<String>("Complete"), new Model<String>("Running query ...")) { { setDefaultFormProcessing(false); } @Override public void onSubmit(AjaxRequestTarget aTarget, Form<?> aForm) { AnnotationType type = parentOptionsForm.typeInput.getModelObject(); if (type == null) { error(LocalizerUtil.getString(parentOptionsForm.typeInput, "Required")); aTarget.add(getFeedbackPanel()); return; } ParentOptionsFormModel pModel = parentOptionsForm.getModelObject(); String user = SecurityContextHolder.getContext().getAuthentication().getName(); List<String> otherUsers = new ArrayList<String>(repository.listUsers()); otherUsers.remove(user); // get items, create/persist results List<EvaluationItem> items = repository.listEvaluationResultsMissing(pModel.collectionId, pModel.type.getName(), user, otherUsers); List<EvaluationResult> results = createEvaluationResults(items); repository.writeEvaluationResults(results); // persis. results: hide saveButton, show result columns and filter options limitForm.setVisible(false); filterForm.setChoices(ResultFilter.values()); showColumnsForm.setVisible(true && !pModel.type.getAdditionalColumns().isEmpty()); showResultColumns(true); saveButton.setVisible(false); predictButton.setVisible(true); samplesetButton.setVisible(true); // update dataprovider dataProvider = new SortableEvaluationResultDataProvider(results); dataProvider.setSort("item.documentId", SortOrder.ASCENDING); dataProvider.setFilter(ResultFilter.ALL); // then update the table resultTable = resultTable.replaceWith(new CustomDataTable<EvaluationResult>("resultTable", getAllColumns(pModel.type), dataProvider, ROWS_PER_PAGE)); contextAvailable = false; updateComponents(aTarget); } @Override public void onError(AjaxRequestTarget aTarget, Form<?> aForm) { super.onError(aTarget, aForm); // Make sure the feedback messages are rendered aTarget.add(getFeedbackPanel()); } }); } }); // sampleset tab tabs.add(samplesetForm = new SamplesetForm("samplesetForm")); // sampleset tab tabs.add(findForm = new FindForm("findForm")); add(tabs); add(new Label("description", new LoadableDetachableModel<String>() { @Override protected String load() { Object value = PropertyResolver.getValue("type.description", parentOptionsForm.getModelObject()); if (value != null) { RenderContext context = new BaseRenderContext(); RenderEngine engine = new BaseRenderEngine(); return engine.render(String.valueOf(value), context); } else { return getString("page.selectTypeHint"); } } }).setEscapeModelStrings(false)); add(filterForm = (FilterForm) new FilterForm("filterForm").setOutputMarkupPlaceholderTag(true)); add(showColumnsForm = (ShowColumnsForm) new ShowColumnsForm("showColumnsForm") .setOutputMarkupPlaceholderTag(true)); add(resultTable = new Label("resultTable").setOutputMarkupId(true)); add(predictionModal = new ModalWindow("predictionModal")); final PredictionPanel predictionPanel = new PredictionPanel(predictionModal.getContentId()); predictionModal.setContent(predictionPanel); predictionModal.setTitle("Predict results"); predictionModal.setAutoSize(false); predictionModal.setInitialWidth(550); predictionModal.setInitialHeight(350); predictionModal.setCloseButtonCallback(new CloseButtonCallback() { @Override public boolean onCloseButtonClicked(AjaxRequestTarget aTarget) { predictionPanel.cancel(aTarget); return true; } }); add(samplesetModal = new ModalWindow("samplesetModal")); samplesetModal.setContent(new SamplesetPanel(samplesetModal.getContentId())); samplesetModal.setTitle("Create / Extend sampleset"); samplesetModal.setAutoSize(true); add(analysisModal = new ModalWindow("analysisModal")); analysisModal.setTitle("Parse tree"); analysisModal.setInitialWidth(65 * 16); analysisModal.setInitialHeight(65 * 9); // autosize does not work... // analysisModal.setAutoSize(true); add(new Form("saveForm") { { add(saveButton = (ExtendedIndicatingAjaxButton) new ExtendedIndicatingAjaxButton("saveButton", new Model<String>("Start annotating"), new Model<String>("Preparing ...")) { @Override protected void onSubmit(AjaxRequestTarget aTarget, Form<?> aForm) { // persist items and results List<EvaluationItem> items = dataProvider.getItems(); items = repository.writeEvaluationItems(items); List<EvaluationResult> results = createEvaluationResults(items); dataProvider.setResults(results); repository.writeEvaluationResults(results); // save results, query ParentOptionsFormModel pModel = parentOptionsForm.getModelObject(); String user = SecurityContextHolder.getContext().getAuthentication().getName(); QueryFormModel model = queryForm.getModelObject(); if (model.engine != null && !StringUtils.isBlank(model.query)) { repository.recordQuery(model.engine.getName(), model.query, pModel.collectionId, pModel.type.getName(), model.comment, user); } // hide saveButton, show result columns and filter options limitForm.setVisible(false); filterForm.setChoices(ResultFilter.values()); showColumnsForm.setVisible(true && !pModel.type.getAdditionalColumns().isEmpty()); showResultColumns(true); saveButton.setVisible(false); predictButton.setVisible(true); samplesetButton.setVisible(true); updateComponents(aTarget); } }.setOutputMarkupPlaceholderTag(true)); add(predictButton = (ExtendedIndicatingAjaxButton) new ExtendedIndicatingAjaxButton("predictButton", new Model<String>("Predict results"), new Model<String>("Predicting ...")) { @Override protected void onSubmit(AjaxRequestTarget aTarget, Form<?> aForm) { aTarget.appendJavaScript("Wicket.Window.unloadConfirmation = false;"); predictionModal.show(aTarget); } }.setOutputMarkupPlaceholderTag(true)); add(samplesetButton = (ExtendedIndicatingAjaxButton) new ExtendedIndicatingAjaxButton( "samplesetButton", new Model<String>("Save results as sampleset"), new Model<String>("Saving...")) { @Override public void onSubmit(AjaxRequestTarget aTarget, Form<?> aForm) { samplesetModal.show(aTarget); } }.setOutputMarkupPlaceholderTag(true)); } }); add(limitForm = (LimitForm) new LimitForm("limit").setOutputMarkupPlaceholderTag(true)); // at start, don't show: save button, results columns, filter limitForm.setVisible(false); filterForm.setChoices(); showColumnsForm.setVisible(false); showResultColumns(false); saveButton.setVisible(false); predictButton.setVisible(false); samplesetButton.setVisible(false); }
From source file:de.tudarmstadt.ukp.csniper.webapp.evaluation.page.EvaluationPage.java
License:Apache License
/** * Get additional result table columns for the specified type. * // w ww . ja va 2s.c o m * @param aType * the type to get additional columns for * @return additional columns */ private List<IColumn<EvaluationResult, String>> getAllColumns(AnnotationType aType) { List<IColumn<EvaluationResult, String>> ac = new ArrayList<IColumn<EvaluationResult, String>>(); // add "standard" columns ac.addAll(columns); // add type dependent columns for (final AdditionalColumn ad : aType.getAdditionalColumns()) { ac.add(new AbstractColumn<EvaluationResult, String>(new Model<String>(ad.getName()), "additionalColumnValue(" + ad.getId() + ")") { private static final long serialVersionUID = 1L; @Override public void populateItem(Item<ICellPopulator<EvaluationResult>> aCellItem, String aComponentId, final IModel<EvaluationResult> aRowModel) { aCellItem .add(new AjaxEditableLabel<String>(aComponentId, new LoadableDetachableModel<String>() { private static final long serialVersionUID = 1L; @Override protected String load() { EvaluationResult result = aRowModel.getObject(); return result.getAdditionalColumns().get(ad); } }) { private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget aTarget) { super.onSubmit(aTarget); EvaluationResult result = aRowModel.getObject(); // get new value String newValue = getEditor().getInput(); // update database if (newValue.isEmpty()) { result.getAdditionalColumns().remove(ad); } else { result.getAdditionalColumns().put(ad, newValue); } repository.updateEvaluationResult(result); } @Override public void onError(AjaxRequestTarget aTarget) { super.onError(aTarget); aTarget.add(getFeedbackPanel()); } }.setType(String.class).add(new DbFieldMaxLengthValidator(projectRepository, "EvaluationResult_additionalColumns", "additionalColumns"))); } @Override public String getCssClass() { List<String> classes = new ArrayList<String>(); classes.add("editable"); if (!showResultColumns || !ad.getShowColumn()) { classes.add("hideCol"); } return StringUtils.join(classes, " "); } }); } return ac; }