List of usage examples for org.apache.wicket.markup.html.list ListView ListView
public ListView(final String id, final List<T> list)
From source file:gr.abiss.calipso.wicket.ItemList.java
License:Open Source License
private void addItemsTable() { //if no results, don't render the empty table // if(resultCount == 0){ // add(new WebMarkupContainer("headings").setVisible(false)); // add(new WebMarkupContainer("itemList").setVisible(false)); // return; // }// w ww. ja v a 2 s .c o m //====================== HEADER ======================================== final List<ColumnHeading> columnHeadings = itemSearch.getColumnHeadingsToRender(); ListView headings = new ListView("headings", columnHeadings) { protected void populateItem(ListItem listItem) { final ColumnHeading ch = (ColumnHeading) listItem.getModelObject(); Link headingLink = new Link("heading") { public void onClick() { if (ch.isDbField()) { doSort(ch.getNameText()); } // if } }; listItem.add(headingLink); String label = ch.isField() ? localize(ch.getLabel()) : localize("item_list." + ch.getNameText()); headingLink.add(new Label("heading", label)); if (ch.getNameText().equals(itemSearch.getSortFieldName())) { String order = itemSearch.isSortDescending() ? "order-down" : "order-up"; listItem.add(new SimpleAttributeModifier("class", order)); } } }; add(headings); //======================== ITEMS ======================================= final long selectedItemId = itemSearch.getSelectedItemId(); final SimpleAttributeModifier sam = new SimpleAttributeModifier("class", "alt"); ListView itemList = new ListView("itemList", itemListModel) { final private Date NOW = new Date(); protected void populateItem(ListItem listItem) { // cast to AbstactItem - show history may be == true final AbstractItem item = (AbstractItem) listItem.getModelObject(); if (selectedItemId == item.getId()) { listItem.add(new SimpleAttributeModifier("class", "selected")); } else if (listItem.getIndex() % 2 == 1) { listItem.add(sam); } final boolean showHistory = itemSearch.isShowHistory(); ListView fieldValues = new ListView("columns", columnHeadings) { protected void populateItem(ListItem listItem) { ColumnHeading ch = (ColumnHeading) listItem.getModelObject(); IModel value = null; Map<StdField.Field, StdFieldMask> fieldMaskMap = null; if (getPrincipal() != null) { Space space = getCalipso().loadSpace(item.getSpace().getId()); fieldMaskMap = StdFieldsUtils.getStdFieldsForSpace(getPrincipal().getStdFields(), space, this); } if (ch.isField() && item.getCustomValue(ch.getField()) == null) { logger.warn("Found field '" + ch.getNameText() + "' but it has no value. Perhaps it was added after initial space creation"); } else if (ch.isField()) { if (ch.getField().getName().isOptionsType()) { value = new ResourceModel("CustomAttributeLookupValue." + item.getCustomValue(ch.getField()).toString() + ".name"); // value = new Model(item.getCustomValue(ch.getField().getName())); } else if (ch.getField().getName().isDate()) { value = new Model(DateUtils .format(DateUtils.convert(item.getCustomValue(ch.getField()).toString()))); // value = new Model(item.getCustomValue(ch.getField().getName())); } else if (ch.getField().getName().isCountry()) { value = new Model(localize("country." + item.getCustomValue(ch.getField()))); // value = new Model(item.getCustomValue(ch.getField().getName())); } else if (ch.getField().getName().isUser()) { value = new Model(((User) item.getCustomValue(ch.getField())).getDisplayValue()); // value = new Model(item.getCustomValue(ch.getField().getName())); } else if (ch.getField().getName().isOrganization()) { value = new Model(((Organization) item.getCustomValue(ch.getField())).getName()); // value = new Model(item.getCustomValue(ch.getField().getName())); } else if (ch.getField().getName().isFile()) { value = new ResourceModel( item.getCustomValue(ch.getField()) != null ? "asset.customAttribute.yes" : "asset.customAttribute.no"); } else if (ch.getField().isMultivalue()) { value = new Model(MultipleValuesTextField .toHtmlSafeLines(item.getCustomValue(ch.getField()).toString())); } else { value = new Model(item.getCustomValue(ch.getField()).toString()); } } else { // TODO optimize if-then for performance Name name = ch.getName(); if (name == ID) { final String UniqueRefId = item.getUniqueRefId(); Fragment refIdFrag = new Fragment("column", "refId", ItemList.this); listItem.add(refIdFrag); Link refIdLink = new BreadCrumbLink("refId", getBreadCrumbModel()) { protected IBreadCrumbParticipant getParticipant(String componentId) { return new ItemViewPanel(componentId, getBreadCrumbModel(), UniqueRefId); } }; refIdFrag.add(refIdLink); refIdLink.add(new Label("refId", UniqueRefId)); if (showHistory) { int index = ((History) item).getIndex(); if (index > 0) { refIdFrag.add(new Label("index", " (" + index + ")")); } else { refIdFrag.add(new WebMarkupContainer("index").setVisible(false)); } } else { refIdFrag.add(new WebMarkupContainer("index").setVisible(false)); } return; } else if (name == SUMMARY) { value = new PropertyModel(item, "summary"); } else if (name == DETAIL) { if (showHistory) { Fragment detailFrag = new Fragment("column", "detail", ItemList.this); final History history = (History) item; // TODO //detailFrag.add(new AttachmentLinkPanel("attachment", history.getAttachment())); if (history.getIndex() > 0) { detailFrag.add(new Label("detail", new PropertyModel(history, "comment"))); } else { detailFrag.add(new Label("detail", new PropertyModel(history, "detail"))); } listItem.add(detailFrag); return; } else { value = new PropertyModel(item, "detail"); } } else if (name == LOGGED_BY) { //original plain name //value = new PropertyModel(item, "loggedBy.name"); listItem.add(new UserViewLink("column", getBreadCrumbModel(), item.getLoggedBy())); return; } else if (name == REPORTED_BY) { listItem.add( new UserViewLink("column", getBreadCrumbModel(), item.getReportedBy())); return; } else if (name == STATUS) { value = new PropertyModel(item, "statusValue"); } else if (name == ASSIGNED_TO) { if (item.getAssignedTo() == null && item.getStatus() != null && item.getStatus().intValue() != State.CLOSED) { listItem.add(new Label("column", localize("item.unassigned")) .add(new SimpleAttributeModifier("class", "unassigned"))); return; } else { listItem.add( new UserViewLink("column", getBreadCrumbModel(), item.getAssignedTo())); return; } // value = new PropertyModel(item, "assignedTo.name"); } else if (name == TOTAL_RESPONSE_TIME) { value = new PropertyModel(item, "totalResponseTime"); } else if (name == TIME_FROM_CREATION_TO_FIRST_REPLY) { if ((fieldMaskMap != null && fieldMaskMap .get(StdField.Field.TIME_FROM_CREATION_TO_FIRST_REPLY) != null && !fieldMaskMap.get(StdField.Field.TIME_FROM_CREATION_TO_FIRST_REPLY) .getMask().equals(StdFieldMask.Mask.HIDDEN))) { value = new Model(ItemUtils.formatEffort(item.getTimeFromCreationToFirstReply(), localize("item_list.days"), localize("item_list.hours"), localize("item_list.minutes"))); } //if else { value = new Model(localize("fieldAccess.noReadAccess")); } } else if (name == TIME_FROM_CREATION_TO_CLOSE) { if ((fieldMaskMap != null && fieldMaskMap.get(StdField.Field.TIME_FROM_CREATION_TO_CLOSE) != null && !fieldMaskMap.get(StdField.Field.TIME_FROM_CREATION_TO_CLOSE).getMask() .equals(StdFieldMask.Mask.HIDDEN))) { value = new Model(ItemUtils.formatEffort(item.getTimeFromCreationToClose(), localize("item_list.days"), localize("item_list.hours"), localize("item_list.minutes"))); } //if else { value = new Model(localize("fieldAccess.noReadAccess")); } } else if (name == PLANNED_EFFORT) { if ((fieldMaskMap != null && fieldMaskMap.get(StdField.Field.PLANNED_EFFORT) != null && !fieldMaskMap.get(StdField.Field.PLANNED_EFFORT).getMask() .equals(StdFieldMask.Mask.HIDDEN))) { value = new Model(""); if (item.getPlannedEffort() != null) { //value = new Model(ItemUtils.formatEffort(item.getPlannedEffort() * 60 , localize("item_list.days"), localize("item_list.hours"), localize("item_list.minutes"))); value = new Model(new Effort(item.getPlannedEffort()).formatEffort( localize("item_list.days"), localize("item_list.hours"), localize("item_list.minutes"))); } //if } //if else { value = new Model(localize("fieldAccess.noReadAccess")); } } else if (name == DUE_TO) { //logger.info("fieldMaskMap.get(StdField.Field.DUE_TO): "+fieldMaskMap.get(StdField.Field.DUE_TO)); if ((fieldMaskMap != null && fieldMaskMap.get(StdField.Field.DUE_TO) != null && !fieldMaskMap.get(StdField.Field.DUE_TO).getMask() .equals(StdFieldMask.Mask.HIDDEN))) { //logger.info("DUE_TO 1"); // value = new Model(DateUtils.format(item.getDueTo())); // if not closed yet if (item.getStatus() != State.CLOSED) { //logger.info("DUE_TO 2"); value = new Model(HumanTimeDurationConverter.denormalize( item.getDueToUserFriendly(NOW), this.getLocalizer(), this)); // add style if needed if (item.getDueTo() != null && item.getDueTo().before(Calendar.getInstance().getTime())) { //logger.info("DUE_TO 3"); listItem.add(new SimpleAttributeModifier("class", "dueToDate-alarm")); } //if else if (item.getDueTo() != null && item.getPlannedEffort() != null && item.getDueTo().after(NOW)) { //logger.info("DUE_TO 4"); DateTime dueToDateTime = new DateTime(item.getDueTo()); DateTime nowDateTime = new DateTime(NOW); long restTimeToDueTo = DateTime.diff(nowDateTime, dueToDateTime) .inSeconds() / 60; if (restTimeToDueTo < item.getPlannedEffort().longValue()) { //logger.info("DUE_TO 5"); listItem.add( new SimpleAttributeModifier("class", "dueToDate-warning")); } //if } } else { //logger.info("DUE_TO 6"); value = new Model("-"); } } //if else { value = new Model(localize("fieldAccess.noReadAccess")); } //else } else if (name == ASSET_TYPE) { ItemAssetTypesPanel itemAssetTypesPanel = new ItemAssetTypesPanel("assetTypesPanel", item); Fragment assetTypesFragment = new Fragment("column", "assetTypesFragment", ItemList.this); assetTypesFragment.add(itemAssetTypesPanel); listItem.add(assetTypesFragment); return; } else if (name == TIME_STAMP) { value = new Model(DateUtils.formatTimeStamp(item.getTimeStamp())); } else if (name == SPACE) { if (showHistory) { value = new PropertyModel(item, "parent.space.name"); } else { value = new PropertyModel(item, "space.name"); } } else { throw new RuntimeException("Unexpected name: '" + name + "'"); } } Label columnValue = new Label("column", value); if (ch.getName() == TIME_STAMP || (ch.isField() && ch.getField().getName().isDate())) { columnValue.add(new SimpleAttributeModifier("class", "date")); } listItem.add(columnValue); } }; listItem.add(fieldValues); } }; add(itemList); //The no "data found message" should have as "colspan" value, the number of the columns of the results table if (resultCount == 0) { WebMarkupContainer noData = new WebMarkupContainer("noData"); add(noData); WebMarkupContainer noDataCell = new WebMarkupContainer("noDataCell"); noDataCell.add(new SimpleAttributeModifier("colspan", String.valueOf(columnHeadings.size()))); noData.add(noDataCell); } else { add(new WebMarkupContainer("noData").setVisible(false)); } }
From source file:gr.abiss.calipso.wicket.ItemSearchForm.java
License:Open Source License
private void addComponents() { final Form form = new Form("form"); Space space = getCurrentSpace();/*w w w .j av a2s . com*/ final boolean hideSummary = space != null && !space.isItemSummaryEnabled(); add(form); form.add(new FeedbackPanel("feedback")); form.setModel(new CompoundPropertyModel(itemSearch)); List<Integer> sizes = Arrays.asList(new Integer[] { 5, 10, 15, 25, 50, 100 }); DropDownChoice pageSizeChoice = new DropDownChoice("pageSize", sizes, new IChoiceRenderer() { public Object getDisplayValue(Object o) { return ((Integer) o) == -1 ? localize("item_search_form.noLimit") : o.toString(); } public String getIdValue(Object o, int i) { return o.toString(); } }); form.add(pageSizeChoice); //form label for page size pageSizeChoice.setLabel(new ResourceModel("item_search_form.resultsPerPage")); form.add(new SimpleFormComponentLabel("pageSizeLabel", pageSizeChoice)); //showHistoryLabel CheckBox showHistoryCheckBox = new CheckBox("showHistory"); form.add(showHistoryCheckBox); //form label for showHistoryLabel showHistoryCheckBox.setLabel(new ResourceModel("item_search_form.showHistory")); form.add(new SimpleFormComponentLabel("showHistoryLabel", showHistoryCheckBox)); form.add(new Button("search") { @Override public void onSubmit() { String refId = itemSearch.getRefId(); if (refId != null) { // user can save typing by entering the refId number without the space prefixCode // and the space sequence number. // User also search by item number without to select a space. try { long id = Long.parseLong(refId); //Load item in order to get first and last part from item Item item = getCalipso().loadItem(id); //If item doesn't exists if (item == null) { //Set a dummy value, in order to raise "item not found" instead of "Invalid reference id" refId = "0-0-0"; } //if else { refId = item.getUniqueRefId(); } //else } catch (Exception e) { // oops that didn't work, continue } try { new ItemRefId(refId); } catch (InvalidRefIdException e) { form.error(localize("item_search_form.error.refId.invalid")); return; } final Item item = getCalipso().loadItem(Item.getItemIdFromUniqueRefId(refId)); if (item == null) { form.error(localize("item_search_form.error.refId.notFound")); return; } setCurrentItemSearch(itemSearch); activate(new IBreadCrumbPanelFactory() { public BreadCrumbPanel create(String componentId, IBreadCrumbModel breadCrumbModel) { return new ItemViewPanel(componentId, breadCrumbModel, item.getUniqueRefId()); } }); return; } String searchText = itemSearch.getSearchText(); if (searchText != null) { if (!getCalipso().validateTextSearchQuery(searchText)) { form.error(localize("item_search_form.error.summary.invalid")); return; } } setCurrentItemSearch(itemSearch); activate(new IBreadCrumbPanelFactory() { public BreadCrumbPanel create(String componentId, IBreadCrumbModel breadCrumbModel) { return new ItemListPanel(componentId, breadCrumbModel); } }); } }); form.add(new Link("expandAll") { public void onClick() { expandAll = true; } @Override public boolean isVisible() { return !expandAll; } }); form.add(new ListView("columns", itemSearch.getColumnHeadings()) { protected void populateItem(final ListItem listItem) { final ColumnHeading ch = (ColumnHeading) listItem.getModelObject(); boolean enabled = true; if (ch.getName() != null && ch.getName().equals(SUMMARY) && hideSummary) { enabled = false; } String label = ch.isField() ? localize(ch.getLabel()) : localize("item_list." + ch.getNameText()); CheckBox visibleCheckBox = new CheckBox("visible", new PropertyModel(ch, "visible")); visibleCheckBox.setEnabled(enabled); listItem.add(visibleCheckBox); //form Label visibleCheckBox.setLabel(new ResourceModel("", label)); listItem.add(new SimpleFormComponentLabel("columnLabel", visibleCheckBox)); List<Expression> validExpressions = ch.getValidFilterExpressions(); DropDownChoice expressionChoice = new IndicatingDropDownChoice("expression", validExpressions, new IChoiceRenderer() { public Object getDisplayValue(Object o) { String key = ((Expression) o).getKey(); return localize("item_filter." + key); } public String getIdValue(Object o, int i) { return ((Expression) o).getKey(); } }); expressionChoice.setEnabled(enabled); if (ch.getName() == ID) { ch.getFilterCriteria().setExpression(Expression.EQ); } Component fragParent = null; if (expandAll) { ch.getFilterCriteria().setExpression(validExpressions.get(0)); fragParent = ch.getFilterUiFragment(form, getPrincipal(), getCurrentSpace(), getCalipso()); } else { fragParent = getFilterUiFragment(form, ch); } fragParent.setOutputMarkupId(true); listItem.add(fragParent); expressionChoice.setModel(new PropertyModel(ch.getFilterCriteria(), "expression")); expressionChoice.setNullValid(true); listItem.add(expressionChoice); expressionChoice.add(new AjaxFormComponentUpdatingBehavior("onChange") { protected void onUpdate(AjaxRequestTarget target) { if (!ch.getFilterCriteria().requiresUiFragmentUpdate()) { return; } Component fragment = getFilterUiFragment(form, ch); fragment.setOutputMarkupId(true); listItem.replace(fragment); target.addComponent(fragment); target.appendJavaScript( "document.getElementById('" + fragment.getMarkupId() + "').focus()"); } }); } }); }
From source file:gr.abiss.calipso.wicket.ItemView.java
License:Open Source License
private void addComponents(ItemRenderingTemplate tmpl, final Item item) { //Edit item is only possible for "global" administrator and current space administrator User currentUser = getPrincipal();/*from w ww . j a v a 2s . c o m*/ Space currentSpace = getCurrentSpace(); if (tmpl != null && tmpl.getShowSpaceName()) { add(new Label("title", this.localize(currentSpace))); } else { add(new Label("title", "").setVisible(false)); } WebMarkupContainer editContainer = new WebMarkupContainer("editContainer"); add(editContainer.setRenderBodyOnly(true)); editContainer.add(new Link("edit") { @Override public void onClick() { //breadcrum must be activated in the active panel, that is ItemViewPanel ((BreadCrumbPanel) getBreadCrumbModel().getActive()).activate(new IBreadCrumbPanelFactory() { @Override public BreadCrumbPanel create(String componentId, IBreadCrumbModel breadCrumbModel) { return new ItemFormPanel(componentId, breadCrumbModel, item.getId()); } }); } }); editContainer.setVisible(currentUser.isGlobalAdmin() || currentUser.isSpaceAdmin(currentSpace)); if (hideLinks) { editContainer.setVisible(false); } add(new Link("printToPdf") { @Override public void onClick() { // TODO: pickup print template from DB if appropriate // TODO: is this needed? //panels that change with navigation //ItemViewPage itemViewPage = new ItemViewPage(refId, null); String markup = "error generating report"; CharSequence resultCharSequence = renderPageHtmlInNewRequestCycle(ItemTemplateViewPage.class, new PageParameters("0=" + item.getUniqueRefId())); markup = resultCharSequence.toString(); if (StringUtils.isNotBlank(markup)) { markup = markup.replaceFirst("../../logo.png", "logo.png").replaceFirst("../logo.png", "logo.png"); } // logger.info("printToPdf: " + markup); getRequestCycle().scheduleRequestHandlerAfterCurrent( new PdfRequestTarget(PdfUtils.getPdf(getCalipso(), item, markup, ItemView.this), item.getRefId())); } }); String refId = item.getUniqueRefId(); Link refIdLink = new BookmarkablePageLink("uniqueRefId", ItemViewPage.class, new PageParameters("0=" + refId)); add(refIdLink.add(new Label("uniqueRefId", refId))); //Relate Link ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ WebMarkupContainer relatedContainer = new WebMarkupContainer("relatedContainer"); add(relatedContainer); RelateLink relateLink1 = new RelateLink("relate1", item, getBreadCrumbModel(), currentUser, ItemView.this); //relateLink1.setVisible(!hideLinks); relatedContainer.add(relateLink1); if (currentUser.hasRegularRoleForSpace(item.getSpace())) { relatedContainer.setVisible(true); } else { relatedContainer.setVisible(false); } if (item.getRelatedItems() != null) { add(new ListView("relatedItems", new ArrayList(item.getRelatedItems())) { @Override protected void populateItem(ListItem listItem) { final ItemItem itemItem = (ItemItem) listItem.getModelObject(); String message = null; if (itemItem.getType() == DUPLICATE_OF) { message = localize("item_view.duplicateOf"); } else if (itemItem.getType() == DEPENDS_ON) { message = localize("item_view.dependsOn"); } else if (itemItem.getType() == RELATED) { message = localize("item_view.relatedTo"); } final String refId = itemItem.getRelatedItem().getUniqueRefId(); if (hideLinks) { message = message + " " + refId; } listItem.add(new Label("message", message)); Link link = new Link("link") { @Override public void onClick() { setResponsePage(ItemViewPage.class, new PageParameters("0=" + refId)); } }; link.add(new Label("refId", refId)); link.setVisible(!hideLinks); listItem.add(link); listItem.add(new Link("remove") { @Override public void onClick() { setResponsePage(new ItemRelateRemovePage(item.getId(), itemItem)); } }.setVisible(!hideLinks)); } }); } else { add(new WebMarkupContainer("relatedItems").setVisible(false)); } if (item.getRelatingItems() != null) { add(new ListView("relatingItems", new ArrayList(item.getRelatingItems())) { @Override protected void populateItem(ListItem listItem) { final ItemItem itemItem = (ItemItem) listItem.getModelObject(); // this looks very similar to related items block above // but the display strings could be different and in future handling of the // inverse of the bidirectional link could be different as well String message = null; if (itemItem.getType() == DUPLICATE_OF) { message = localize("item_view.duplicateOfThis"); } else if (itemItem.getType() == DEPENDS_ON) { message = localize("item_view.dependsOnThis"); } else if (itemItem.getType() == RELATED) { message = localize("item_view.relatedToThis"); } // final String refId = itemItem.getItem().getRefId(); final String refId = itemItem.getItem().getUniqueRefId(); if (hideLinks) { message = refId + " " + message; } listItem.add(new Label("message", message)); Link link = new Link("link") { @Override public void onClick() { setResponsePage(ItemViewPage.class, new PageParameters("0=" + refId)); } }; link.add(new Label("refId", refId)); link.setVisible(!hideLinks); listItem.add(link); listItem.add(new Link("remove") { @Override public void onClick() { setResponsePage(new ItemRelateRemovePage(item.getId(), itemItem)); } }.setVisible(!hideLinks)); } }); } else { add(new WebMarkupContainer("relatingItems").setVisible(false)); } add(new Label("status", new PropertyModel(item, "statusValue"))); //user profile view link add(new UserViewLink("loggedBy", getBreadCrumbModel(), item.getLoggedBy()) .setVisible(!getPrincipal().isAnonymous())); if (item.getAssignedTo() != null) { add(new UserViewLink("assignedTo", getBreadCrumbModel(), item.getAssignedTo()) .setVisible(!getPrincipal().isAnonymous())); } else { Label assignedToLabel = new Label("assignedTo", localize("item.unassigned")); if (item.getStatus() != State.CLOSED) { assignedToLabel.add(new SimpleAttributeModifier("class", "unassigned")); } add(assignedToLabel); } add(new UserViewLink("reportedBy", getBreadCrumbModel(), item.getReportedBy())); WebMarkupContainer summaryContainer = new WebMarkupContainer("summaryContainer"); summaryContainer.add(new Label("summary", new PropertyModel(item, "summary"))); add(summaryContainer.setVisible(item.getSpace().isItemSummaryEnabled())); //detail commented out //add(new Label("detail", new PropertyModel(item, "detail")).setEscapeModelStrings(false)); final SimpleAttributeModifier sam = new SimpleAttributeModifier("class", "alt"); // All custom fields of the fields that belong to the item and are viewable for // the session user final Map<Field.Name, Field> viewableFieldsMap = item.getViewableFieldMap(currentUser); // pick up the non-file fields from the list above and put them here for a list view final List<Field> noFileViewableFieldNamesList = new ArrayList<Field>(); // Separate list view for files List<Field> fileViewableFieldNamesList = new ArrayList<Field>(); List<Field> simpleAtachmentViewableFieldNamesList = new ArrayList<Field>(); for (Field field : viewableFieldsMap.values()) { if (!field.getName().isFile()) { // is not file and not hidden (since we got it from getViewbleFieldList) noFileViewableFieldNamesList.add(field); } else { // if file and not simple attachment, keep for later simpleAtachmentViewableFieldNamesList if (field.getName().getText().equals(Field.FIELD_TYPE_SIMPLE_ATTACHEMENT)) { simpleAtachmentViewableFieldNamesList.add(field); } else { fileViewableFieldNamesList.add(field); } } } Metadata metadata = getCalipso().getCachedMetadataForSpace(item.getSpace()); final SimpleDateFormat dateFormat = metadata.getDateFormat(Metadata.DATE_FORMAT_LONG); List<FieldGroup> fieldGroupsList = metadata.getFieldGroups(); @SuppressWarnings("unchecked") ListView fieldGroups = new ListView("fieldGroups", fieldGroupsList) { @Override protected void populateItem(ListItem listItem) { // get group FieldGroup fieldGroup = (FieldGroup) listItem.getModelObject(); listItem.add(new Label("fieldGroupLabel", fieldGroup.getName())); List<Field> groupFields = fieldGroup.getFields(); List<Field> viewbleFieldGroups = new LinkedList<Field>(); // get group fields if (CollectionUtils.isNotEmpty(groupFields)) { for (Field field : groupFields) { // is viewalble? if (noFileViewableFieldNamesList.contains(field)) { viewbleFieldGroups.add(field); } } } ListView listView = new ListView("fields", viewbleFieldGroups) { @Override @SuppressWarnings("deprecation") protected void populateItem(ListItem listItem) { addFieldValueDisplay(item, sam, dateFormat, listItem); } }; if (viewbleFieldGroups.isEmpty()) { listItem.setVisible(false); } listView.setReuseItems(true); listItem.add(listView.setRenderBodyOnly(true)); } }; add(fieldGroups); // Iterates custom fields than are not type file // add(new ListView("CustomFieldsListView", noFileViewableFieldNamesList) { // protected void populateItem(ListItem listItem) { // addFieldValueDisplay(item, sam, dateFormat, listItem); // } // // // }); if (fileViewableFieldNamesList.size() > 0) { // add custom field type file label add(new Label("fileFieldLabel", localize("files"))); //add values for custom fields type file // check for if doesn't exist custom field type file // TODO: user should upload a file for every customField type file // get Attachments ArrayList<Attachment> itemAttachments = item.getAttachments() != null ? new ArrayList<Attachment>(item.getAttachments()) : new ArrayList(); //logger.info("Files to render: "+itemAttachments.size()); ListView fileCustomFieldsListView = new ListView("fileCustomFieldsListView", itemAttachments) { @Override protected void populateItem(ListItem listItem) { Attachment tmpAttachment = (Attachment) listItem.getModelObject(); listItem.add(new AttachmentDownLoadableLinkPanel("fileLink", tmpAttachment)); } }; add(fileCustomFieldsListView); } else { // add empty label add(new EmptyPanel("fileCustomFieldsListView").setVisible(false)); // add custom field type file label add(new Label("fileFieldLabel", localize("files"))); } // TODO: Dont think this actually checks for user roles rights within the State scope, // plus the *readable* fields are needed instead to feed the historyEntry ("history" ListView) bellow //final List<Field> editable = item.getSpace().getMetadata().getEditableFields(); final List<Field> readable = item.getSpace().getMetadata() .getReadableFields(currentUser.getSpaceRoles(item.getSpace()), item.getStatus()); add(new ListView("labels", readable) { @Override protected void populateItem(ListItem listItem) { Field field = (Field) listItem.getModelObject(); listItem.add(new Label("label", field.getLabel())); } }); currentUser.setRoleSpaceStdFieldList(getCalipso().findSpaceFieldsForUser(currentUser)); Map<StdField.Field, StdFieldMask> fieldMaskMap = currentUser.getStdFieldsForSpace(currentSpace); //Get user fields List<RoleSpaceStdField> stdFields = currentUser.getStdFields(); //Standard fields ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //List of standard Fields List<RoleSpaceStdField> standardFields = StdFieldsUtils.filterFieldsBySpace(stdFields, fieldMaskMap, currentSpace); //Render Standard field add(new ListView("stdFields", standardFields) { @Override protected void populateItem(ListItem listItem) { RoleSpaceStdField stdField = (RoleSpaceStdField) listItem.getModelObject(); boolean invisible = stdField.getStdField().getField().getFieldType().getType() .equals(StdFieldType.Type.ASSET) || stdField.getStdField().getField().getFieldType().getType() .equals(StdFieldType.Type.ASSETTYPE) || stdField.getStdField().getField().equals(StdField.Field.ACTUAL_EFFORT); listItem.add(new Label("label", localize("field." + stdField.getStdField().getField().getName())) .setVisible(!invisible)); IModel value = new Model(""); if (stdField.getStdField().getField().getFieldType().getType() .equals(StdFieldType.Type.STATISTIC)) { Method method = null; ReflectionUtils.buildFromProperty("get", stdField.getStdField().getField().getName()); try { method = item.getClass().getMethod(ReflectionUtils.buildFromProperty("get", stdField.getStdField().getField().getName())); value = new Model(ItemUtils.formatEffort(method.invoke(item), localize("item_list.days"), localize("item_list.hours"), localize("item_list.minutes"))); } catch (NoSuchMethodException noSuchMethodException) { logger.error(noSuchMethodException); } catch (InvocationTargetException invocationTargetException) { logger.error(invocationTargetException); } catch (IllegalAccessException illegalAccessException) { logger.error(illegalAccessException); } } else if (stdField.getStdField().getField().getFieldType().getType() .equals(StdFieldType.Type.INFO)) { if (stdField.getStdField().getField().equals(StdField.Field.DUE_TO)) { value = new Model(new StringBuffer().append(DateUtils.format(item.getStateDueTo())) .append(" / ").append(DateUtils.format(item.getDueTo())).toString()); if (item.getStatus() != State.CLOSED) { if (item.getDueTo() != null && item.getDueTo().before(Calendar.getInstance().getTime())) { listItem.add(new SimpleAttributeModifier("class", "dueToDate-alarm")); } //if else if (item.getDueTo() != null && item.getPlannedEffort() != null && item.getDueTo().after(Calendar.getInstance().getTime())) { DateTime dueToDateTime = new DateTime(item.getDueTo()); DateTime nowDateTime = new DateTime(Calendar.getInstance().getTime()); long restTimeToDueTo = DateTime.diff(nowDateTime, dueToDateTime).inSeconds() / 60; if (restTimeToDueTo < item.getPlannedEffort().longValue()) { listItem.add(new SimpleAttributeModifier("class", "dueToDate-warning")); } //if } } } //if else if (stdField.getStdField().getField().equals(StdField.Field.PLANNED_EFFORT)) { if (item.getPlannedEffort() != null) { value = new Model( new Effort(item.getPlannedEffort()).formatEffort(localize("item_list.days"), localize("item_list.hours"), localize("item_list.minutes"))); } } } listItem.add(new Label("value", value).setVisible(!invisible)); } }); //Assets ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //Space is integrated with asset or space is not but was perhaps in the past integrated and at least one asset was bind with this item boolean userCanViewAssets = fieldMaskMap.get(StdField.Field.ASSET) != null && !fieldMaskMap.get(StdField.Field.ASSET).getMask().equals(StdFieldMask.Mask.HIDDEN); boolean spaceIsUIntegratedWithAsset = item.getSpace().isAssetEnabled(); boolean userCanUpdateAssets = fieldMaskMap.get(StdField.Field.ASSET) != null && fieldMaskMap.get(StdField.Field.ASSET).getMask().equals(StdFieldMask.Mask.UPDATE); boolean userCanAdministrateAssetsForSpace = currentUser != null && currentUser.getId() != 0 && (currentUser.isGlobalAdmin() || currentUser.isSpaceAdmin(currentSpace)); boolean userCanSeeComments = currentUser.hasRegularRoleForSpace(currentSpace) || (currentSpace.getItemVisibility().equals(Space.ITEMS_VISIBLE_TO_LOGGEDIN_REPORTERS) && currentUser.isGuestForSpace(currentSpace)); if (userCanSeeComments) { // show history? userCanSeeComments = !(tmpl != null && tmpl.getHideHistory().booleanValue()); } WebMarkupContainer assetsContainer = new WebMarkupContainer("assetsContainer"); add(assetsContainer.setRenderBodyOnly(true)); ItemAssetsPanel itemAssetsPanel = new ItemAssetsPanel("itemAssetsViewPanel", item); WebMarkupContainer editAssetContainer = new WebMarkupContainer("editAssetContainer"); add(editContainer.setRenderBodyOnly(true)); editAssetContainer.add(new Link("editAsset") { @Override public void onClick() { //breadCrumb must be activated in the active panel, that is ItemViewPanel ((BreadCrumbPanel) getBreadCrumbModel().getActive()).activate(new IBreadCrumbPanelFactory() { @Override public BreadCrumbPanel create(String componentId, IBreadCrumbModel breadCrumbModel) { return new ItemAssetFormPanel(componentId, breadCrumbModel, item.getId()); } }); } }); editAssetContainer.setVisible(userCanUpdateAssets); assetsContainer.add(editAssetContainer); if (hideLinks) { editAssetContainer.setVisible(false); } // --- Link to Asset administration for assets SpaceAssetAdminLink spaceAssetAdminLink = new SpaceAssetAdminLink("asset", getBreadCrumbModel()) { @Override public void onLinkActivate() { //do nothing } }; assetsContainer.add(spaceAssetAdminLink); spaceAssetAdminLink.setVisible(userCanAdministrateAssetsForSpace); if (hideLinks) { spaceAssetAdminLink.setVisible(false); } //Case 1: //Current space is integrated with assets and user can view these assets //Case 2: //Current space is NOT integrated with assets BUT was integrated with assets in the past and user can view these assets //============ //Pseudo code: //============ // if (Case 1 OR Case 2) then // showAssets(); // fi // else // doNotShowAssets(); // esle boolean itemInvolvesAssets = itemAssetsPanel.getItemAssets() != null && itemAssetsPanel.getItemAssets().size() > 0; if ((spaceIsUIntegratedWithAsset && userCanViewAssets) || (!spaceIsUIntegratedWithAsset && itemInvolvesAssets && userCanViewAssets)) { itemAssetsPanel.renderItemAssets(); assetsContainer.add(itemAssetsPanel); } //if else { assetsContainer.setVisible(false); } //else WebMarkupContainer historyContainer = new WebMarkupContainer("historyContainer"); historyContainer.add(new WebMarkupContainer("historyComment").setVisible(userCanSeeComments)); if (item.getHistory() != null && userCanSeeComments) { List<History> history = new ArrayList(item.getHistory()); historyContainer.add(new ListView("history", history) { @Override protected void populateItem(ListItem listItem) { final History h = (History) listItem.getModelObject(); //First history entry is empty => Add item detail to first history item for view harmonization. if (listItem.getIndex() == 0) { h.setComment(item.getDetail()); h.setHtmlComment(item.getHtmlDetail()); } HistoryEntry historyEntry = new HistoryEntry("historyEntry", getBreadCrumbModel(), h, readable); if (listItem.getIndex() % 2 == 0) { historyEntry.add(sam); } listItem.add(historyEntry); } }.setRenderBodyOnly(true)); } else { historyContainer.add(new WebMarkupContainer("history").add(new WebMarkupContainer("historyEntry"))); historyContainer.setVisible(false); } add(historyContainer); }
From source file:gr.abiss.calipso.wicket.OrganizationListPanel.java
License:Open Source License
private void addComponents(IModel assetTypes) { //////////////// // Pagination // //////////////// PaginationPanel paginationPanel = new PaginationPanel("paginationPanel", getBreadCrumbModel(), this.organizationSearch) { IBreadCrumbPanelFactory breadCrumbPanelFactory = new IBreadCrumbPanelFactory() { public BreadCrumbPanel create(String id, IBreadCrumbModel breadCrumbModel) { //Remove last breadcrumb participant if (breadCrumbModel.allBreadCrumbParticipants().size() > 0) { breadCrumbModel.allBreadCrumbParticipants() .remove(breadCrumbModel.allBreadCrumbParticipants().size() - 1); } //if return new OrganizationListPanel(getBreadCrumbModel().getActive().getComponent().getId(), getBreadCrumbModel(), OrganizationListPanel.this.organizationSearch); }/*from w w w.j av a2 s . c om*/ }; public void onNextPageClick() { activate(breadCrumbPanelFactory); } public void onPreviousPageClick() { activate(breadCrumbPanelFactory); } public void onPageNumberClick() { activate(breadCrumbPanelFactory); } }; add(paginationPanel); ///////////////// // List header // ///////////////// List<String> columnHeaders = this.organizationSearch.getColumnHeaders(); ListView headings = new ListView("headings", columnHeaders) { protected void populateItem(ListItem listItem) { final String header = (String) listItem.getModelObject(); Link headingLink = new Link("heading") { public void onClick() { OrganizationListPanel.this.organizationSearch.doSort(header); } }; listItem.add(headingLink); String label = localize("organization." + header); headingLink.add(new Label("heading", label)); if (header.equals(OrganizationListPanel.this.organizationSearch.getSortFieldName())) { String order = OrganizationListPanel.this.organizationSearch.isSortDescending() ? "order-down" : "order-up"; listItem.add(new SimpleAttributeModifier("class", order)); } } }; add(headings); ///////////////////// // Asset Type List // ///////////////////// final SimpleAttributeModifier sam = new SimpleAttributeModifier("class", "alt"); ListView listView = new ListView("organizationList", assetTypes) { protected void populateItem(ListItem listItem) { final Organization organization = (Organization) listItem.getModelObject(); if (selectedOrganizationId == organization.getId()) { listItem.add(new SimpleAttributeModifier("class", "selected")); } else if (listItem.getIndex() % 2 != 0) { listItem.add(sam); } //if //listItem.add(new Label("description", organization.getName())); listItem.add(new OrganizationViewLink("description", getBreadCrumbModel(), organization)); listItem.add(new Label("address", organization.getAddress())); listItem.add(new Label("zip", organization.getZip())); listItem.add(new Label("country", localize(organization.getCountry()))); listItem.add(new Label("phone", organization.getPhone())); String url = organization.getWeb(); if (StringUtils.isNotEmpty(url)) { Label webLink = new Label("web", url); webLink.add(new SimpleAttributeModifier("href", url)); listItem.add(webLink); } else { listItem.add(new Label("web", "").setVisible(false)); } listItem.add(new BreadCrumbLink("edit", getBreadCrumbModel()) { @Override protected IBreadCrumbParticipant getParticipant(String id) { return new OrganizationFormPanel(id, getBreadCrumbModel(), getCalipso().loadOrganization(organization.getId())); } }); }//populateItem };//ListView add(listView); }
From source file:gr.abiss.calipso.wicket.regexp.ValidationExpressionListPanel.java
License:Open Source License
private void addComponents(IModel validationExpressions) { //////////////// // Pagination // //////////////// PaginationPanel paginationPanel = new PaginationPanel("paginationPanel", getBreadCrumbModel(), this.validationExpressionSearch) { IBreadCrumbPanelFactory breadCrumbPanelFactory = new IBreadCrumbPanelFactory() { public BreadCrumbPanel create(String id, IBreadCrumbModel breadCrumbModel) { //Remove last breadcrumb participant if (breadCrumbModel.allBreadCrumbParticipants().size() > 0) { breadCrumbModel.allBreadCrumbParticipants() .remove(breadCrumbModel.allBreadCrumbParticipants().size() - 1); } //if return new ValidationExpressionListPanel( getBreadCrumbModel().getActive().getComponent().getId(), getBreadCrumbModel(), ValidationExpressionListPanel.this.validationExpressionSearch); }//from w w w .j a va 2s .c o m }; public void onNextPageClick() { activate(breadCrumbPanelFactory); } public void onPreviousPageClick() { activate(breadCrumbPanelFactory); } public void onPageNumberClick() { activate(breadCrumbPanelFactory); } }; add(paginationPanel); List<String> columnHeaders = this.validationExpressionSearch.getColumnHeaders(); ListView headings = new ListView("headings", columnHeaders) { protected void populateItem(ListItem listItem) { final String header = (String) listItem.getModelObject(); Link headingLink = new Link("heading") { public void onClick() { ValidationExpressionListPanel.this.validationExpressionSearch.doSort(header); } }; listItem.add(headingLink); String label = localize("validation_Expression." + header); headingLink.add(new Label("heading", label)); if (header .equals(ValidationExpressionListPanel.this.validationExpressionSearch.getSortFieldName())) { String order = ValidationExpressionListPanel.this.validationExpressionSearch.isSortDescending() ? "order-down" : "order-up"; listItem.add(new SimpleAttributeModifier("class", order)); } } }; add(headings); final SimpleAttributeModifier sam = new SimpleAttributeModifier("class", "alt"); ListView listView = new ListView("validationExpressionList", validationExpressions) { protected void populateItem(ListItem listItem) { final ValidationExpression validationExpression = (ValidationExpression) listItem.getModelObject(); if (selectedValidationExpressionId == validationExpression.getId()) { listItem.add(new SimpleAttributeModifier("class", "selected")); } else if (listItem.getIndex() % 2 != 0) { listItem.add(sam); } //if listItem.add(new Label("name", validationExpression.getName())); listItem.add(new Label("descriptionLabel", validationExpression.getDescription())); listItem.add(new Label("expressionLabel", validationExpression.getExpression())); listItem.add(new BreadCrumbLink("edit", getBreadCrumbModel()) { @Override protected IBreadCrumbParticipant getParticipant(String id) { return new ValidationExpressionFormPanel(id, getBreadCrumbModel(), getCalipso().loadValidationExpression(validationExpression.getId())); } }); }//populateItem };//ListView add(listView); }
From source file:gr.abiss.calipso.wicket.SLAsPage.java
License:Open Source License
/** * SLA list/*from w w w . j av a 2s .c o m*/ * */ private void listSLAs() { LoadableDetachableModel slaListModel = new LoadableDetachableModel() { protected Object load() { List<Sla> slaList = new LinkedList<Sla>(); slaList.add(new Sla(1, "SLA-QQ-123", new Date("10/01/2007"), new Date("10/01/2009"), "Notes 1-2-3", 13.0)); slaList.add(new Sla(2, "SLA-QQ-789", new Date("10/01/2006"), new Date("10/01/2011"), "Notes 78 GHGH gggg", 24.0)); return slaList; } }; //////////////// // Pagination // //////////////// long resultCount = 2; int pageCount = 3; final int currentPage = 1; String resultCountMessage = resultCount == 1 ? "sla.recordFound" : "sla.recordsFound"; add(new Label("recordsFound", localize(resultCountMessage, String.valueOf(resultCount)))); WebMarkupContainer pagination = new WebMarkupContainer("pagination"); if (pageCount > 1) { Link prevOn = new Link("prevOn") { public void onClick() { setResponsePage(SLAsPage.class); } }; prevOn.add(new Label("prevOn", "<<")); Label prevOff = new Label("prevOff", "<<"); if (currentPage == 0) { prevOn.setVisible(false); } else { prevOff.setVisible(false); } pagination.add(prevOn); pagination.add(prevOff); List<Integer> pageNumbers = new ArrayList<Integer>(pageCount); for (int i = 0; i < pageCount; i++) { pageNumbers.add(new Integer(i)); } ListView pages = new ListView("pages", pageNumbers) { protected void populateItem(ListItem listItem) { final Integer i = (Integer) listItem.getModelObject(); String pageNumber = i + 1 + ""; Link pageOn = new Link("pageOn") { public void onClick() { // TODO avoid next line, refresh pagination only setResponsePage(SLAsPage.class); } }; pageOn.add(new Label("pageOn", pageNumber)); Label pageOff = new Label("pageOff", pageNumber); if (i == currentPage) { pageOn.setVisible(false); } else { pageOff.setVisible(false); } listItem.add(pageOn); listItem.add(pageOff); } }; pagination.add(pages); Link nextOn = new Link("nextOn") { public void onClick() { setResponsePage(SLAsPage.class); } }; nextOn.add(new Label("nextOn", ">>")); Label nextOff = new Label("nextOff", ">>"); if (currentPage == pageCount - 1) { nextOn.setVisible(false); } else { nextOff.setVisible(false); } pagination.add(nextOn); pagination.add(nextOff); } else { // if pageCount == 1 pagination.setVisible(false); } add(pagination); ////////////// // SLA List // ////////////// final SimpleAttributeModifier sam = new SimpleAttributeModifier("class", "alt"); ListView listView = new ListView("slaList", slaListModel) { @Override protected void populateItem(ListItem listItem) { if (listItem.getIndex() % 2 != 0) { listItem.add(sam); } //if final Sla sla = (Sla) listItem.getModelObject(); listItem.add(new Label("slaCode", new PropertyModel(sla, "slaCode"))); listItem.add(new Label("startDate", new PropertyModel(sla, "startDate"))); listItem.add(new Label("endDate", new PropertyModel(sla, "endDate"))); listItem.add(new Label("notes", new PropertyModel(sla, "notes"))); listItem.add(new Label("responseTime", new PropertyModel(sla, "responseTime"))); Link edit = new Link("edit") { public void onClick() { // setResponsePage(new SLAFormPage(SLAsPage.this, String.valueOf(sla.getSlaId()))); setResponsePage(new SLAFormPage(SLAsPage.this, sla)); }//onClick }; listItem.add(edit); }//populateItem }; add(listView); }
From source file:gr.abiss.calipso.wicket.SpaceListPanel.java
License:Open Source License
public SpaceListPanel(String id, final IBreadCrumbModel breadCrumbModel) { super(id, breadCrumbModel); //BreadCrumbPanelLink createSpacePanelLink = new BreadCrumbPanelLink("create", this, SpaceFormPanel.class); user = getPrincipal();// w ww . j a va2 s. c o m userIsSpaceAdmin = user.isSpaceAdmin(); add(new BreadCrumbLink("create", getBreadCrumbModel()) { @Override protected IBreadCrumbParticipant getParticipant(String componentId) { return new SpacePanelLanguageSupport(componentId, getBreadCrumbModel()); } }); //add(createSpacePanelLink.setVisible(user.isAdminForAllSpaces())); LoadableDetachableModel spaceListModel = new LoadableDetachableModel() { protected Object load() { logger.debug("Loading space list from database..."); if (userIsSpaceAdmin && !user.isGlobalAdmin()) { return user.getSpacesWhereUserIsAdmin(); } return getCalipso().findAllSpaces(); } }; final SimpleAttributeModifier sam = new SimpleAttributeModifier("class", "alt"); ListView listView = new ListView("spaces", spaceListModel) { protected void populateItem(ListItem listItem) { final Space space = (Space) listItem.getModelObject(); if (selectedSpaceId == space.getId()) { listItem.add(new SimpleAttributeModifier("class", "selected")); } else if (listItem.getIndex() % 2 == 1) { listItem.add(sam); } listItem.add(new Label("prefixCode", new PropertyModel(space, "prefixCode"))); listItem.add(new Label("name", localize(space))); //Edit ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ listItem.add(new BreadCrumbLink("edit", getBreadCrumbModel()) { private static final long serialVersionUID = 1L; protected IBreadCrumbParticipant getParticipant(String componentId) { Space temp = getCalipso().loadSpace(space.getId()); //temp.getMetadata().getXmlString(); // hack to override lazy loading return new SpacePanelLanguageSupport(componentId, getBreadCrumbModel(), temp); } }); //Description ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ listItem.add(new Label("description", new PropertyModel(space, "description"))); // space group name listItem.add(new Label("spaceGroupName", new PropertyModel(space, "spaceGroup.name"))); //Allocate ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ listItem.add(new BreadCrumbLink("allocate", getBreadCrumbModel()) { private static final long serialVersionUID = 1L; protected IBreadCrumbParticipant getParticipant(String componentId) { return new SpaceAllocatePanel(componentId, getBreadCrumbModel(), space.getId()); } }); //published ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ listItem.add(new Label("published", new PropertyModel(space, "published"))); //Asset ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if (space.isAssetEnabled() && (user.isGlobalAdmin() || user.isSpaceAdmin(space))) { listItem.add(new BreadCrumbLink("asset", breadCrumbModel) { private static final long serialVersionUID = 1L; protected IBreadCrumbParticipant getParticipant(String componentId) { Asset asset = new Asset(); asset.setSpace(space); return new AssetSpacePanel("panel", getBreadCrumbModel(), new AssetSearch(asset, this), space.getId()); } }); } else { listItem.add(new BlankPanel("asset").setVisible(true)); } } }; @SuppressWarnings("unchecked") boolean spacesExist = !((List<Space>) spaceListModel.getObject()).isEmpty(); add(new WebMarkupContainer("listHead").setVisible(spacesExist)); add(listView); WebMarkupContainer noData = new WebMarkupContainer("noData"); noData.add(new BreadCrumbPanelLink("create", this, SpaceFormPanel.class).setVisible(user.isGlobalAdmin())); noData.setVisible(!spacesExist); add(noData); }
From source file:gr.abiss.calipso.wicket.UserListPanel.java
License:Open Source License
public UserListPanel(String id, final IBreadCrumbModel breadCrumbModel) { super(id, breadCrumbModel); boolean isNodataVisible; this.user = getPrincipal(); // BreadCrumb link to create new user add(new BreadCrumbLink("create", breadCrumbModel) { private static final long serialVersionUID = 1L; protected IBreadCrumbParticipant getParticipant(String componentId) { return new UserFormPanel(componentId, breadCrumbModel); }/* ww w . j a v a 2s.c o m*/ }); // add search form add(new SearchForm("form")); LoadableDetachableModel userListModel = new LoadableDetachableModel() { private static final long serialVersionUID = 1L; protected Object load() { if (searchText == null) { // find all uses // load all users List<User> userList = getCalipso().findAllUsers(); // if admin for all spaces if (user.isGlobalAdmin()) { if (noDataContainer != null) { noDataContainer.setVisible(userList.size() == 0); } return userList; } List<User> returnList = new ArrayList<User>(); for (User u : userList) { if (!u.isGlobalAdmin()) { List<Space> userSpaces = new ArrayList<Space>(u.getSpaces()); // check in which spaces user is admin and add to // the list for (Space us : userSpaces) { if (user.getSpacesWhereUserIsAdmin().contains(us)) { returnList.add(u); break; } } } } if (noDataContainer != null) { noDataContainer.setVisible(returnList.size() == 0); } return returnList; } else { // user list of search results List<User> userList = getCalipso().findUsersMatching(searchText, searchOn); if (user.isGlobalAdmin()) { if (noDataContainer != null) { noDataContainer.setVisible(userList.size() == 0); } return userList; } List<User> returnList = new ArrayList<User>(); for (User u : userList) { List<Space> userSpaces = new ArrayList<Space>(u.getSpaces()); for (Space us : userSpaces) { if (!u.isGlobalAdmin()) { if (user.getSpacesWhereUserIsAdmin().contains(us)) { returnList.add(u); break; } } } } if (noDataContainer != null) { noDataContainer.setVisible(returnList.size() == 0); } return returnList; } } }; final SimpleAttributeModifier sam = new SimpleAttributeModifier("class", "alt"); ListView listView = new ListView("users", userListModel) { protected void populateItem(ListItem listItem) { final User user = (User) listItem.getModelObject(); if (selectedUserId == user.getId()) { listItem.add(new SimpleAttributeModifier("class", "selected")); } else if (listItem.getIndex() % 2 == 1) { listItem.add(sam); } listItem.add(new UserViewLink("loginName", breadCrumbModel, user, false, false, true, false)); listItem.add(new Label("name", new PropertyModel(user, "name"))); listItem.add(new Label("lastname", new PropertyModel(user, "lastname"))); listItem.add(new Label("email", new PropertyModel(user, "email"))); // organization name listItem.add(new OrganizationViewLink("organization", breadCrumbModel, user.getOrganization())); // country name listItem.add(new Label("country", new PropertyModel(user, "country.name"))); listItem.add(new Label("locale", new PropertyModel(user, "locale"))); listItem.add(new WebMarkupContainer("locked").setVisible(user.isLocked())); // BreadCrumb link to edit user listItem.add(new BreadCrumbLink("edit", breadCrumbModel) { protected IBreadCrumbParticipant getParticipant(String componentId) { return new UserFormPanel(componentId, breadCrumbModel, getCalipso().loadUser(user.getId())); } }); // BreadCrumb link to UserAllocatePage listItem.add(new BreadCrumbLink("allocate", breadCrumbModel) { protected IBreadCrumbParticipant getParticipant(String componentId) { return new UserAllocatePanel(componentId, breadCrumbModel, user.getId()); } }); } }; add(listView); if (userListModel.getObject() != null) { try { isNodataVisible = ((List) userListModel.getObject()).size() == 0; } // try catch (Exception e) {// For casting isNodataVisible = true; } // catch } // if else { isNodataVisible = true; } // else noDataContainer = new WebMarkupContainer("noData"); noDataContainer.setVisible(isNodataVisible); add(noDataContainer); }
From source file:gr.abiss.calipso.wicket.UserViewPanel.java
License:Open Source License
private void init(IBreadCrumbModel breadCrumbModel, final User user) { if (user == null) { logger.error("No user was provided"); }// w ww . j av a2s .c om final List<Space> userSpaces; if (Hibernate.isInitialized(user.getSpaces())) { userSpaces = new ArrayList<Space>(user.getSpaces()); } else {// TODO: hql query userSpaces = new ArrayList<Space>(user.getSpaces()); } final User currentUser = getPrincipal(); WebMarkupContainer editContainer = new WebMarkupContainer("editContainer"); editContainer.add(new BreadCrumbLink("edit", breadCrumbModel) { @Override protected IBreadCrumbParticipant getParticipant(String componentId) { return new UserFormPanel(componentId, getBreadCrumbModel(), user); } }); add(editContainer.setVisible(false)); if (currentUser.isGlobalAdmin()) {//if isAdmin editContainer.setVisible(true); } else if (currentUser.isSpaceAdmin()) {//if isSpaceAdmin //check if current user can edit this user //code from UserListPanel if (!user.isGlobalAdmin()) { for (Space us : userSpaces) { if (currentUser.getSpacesWhereUserIsAdmin().contains(us)) { editContainer.setVisible(true); break; } } } } add(new UserIconPanel("userIcon", user)); add(new Label("loginName", user.getLoginName())); add(new Label("name", user.getName())); add(new Label("lastname", user.getLastname())); add(new Label("email", user.getEmail())); Country c = user.getCountry(); add(new Label("country", c != null ? localize(c) : "")); add(new OrganizationViewLink("organization", breadCrumbModel, user.getOrganization())); add(new Label("address", user.getAddress())); add(new Label("phone", user.getPhone())); LoadableDetachableModel sharedSpacesListModel = new LoadableDetachableModel() { protected Object load() { List<Space> sharedSpacesList = new ArrayList<Space>(); //get spaces for current user Set<Space> currentUserSpaces = currentUser.getSpaces(); //find shared spaces for (Space currentUserSpace : currentUserSpaces) { if (userSpaces.contains(currentUserSpace)) {//if this space is shared for the 2 users sharedSpacesList.add(currentUserSpace); } } return sharedSpacesList; } }; if (CollectionUtils.isNotEmpty((List) sharedSpacesListModel.getObject())) { logger.debug("user has spaces"); if (user.getLoginName().equals(getPrincipal().getLoginName())) { add(new Label("sharedSpaces", localize("UserViewPanel.yourSpaces"))); } else { add(new Label("sharedSpaces", localize("UserViewPanel.yourSpaces", user.getName()))); } } else { logger.debug("user has no spaces"); add(new Label("sharedSpaces", "")); } final SimpleAttributeModifier sam = new SimpleAttributeModifier("class", "alt"); ListView listView = new ListView("spaces", sharedSpacesListModel) { protected void populateItem(ListItem listItem) { final Space spaceItem = (Space) listItem.getModelObject(); if (listItem.getIndex() % 2 == 1) { listItem.add(sam); } listItem.add(new Link("space") { @Override public void onClick() { setCurrentSpace(spaceItem); setResponsePage(SpacePage.class); } }.add(new Label("space", localize(spaceItem.getNameTranslationResourceKey())))); } }; add(listView); }
From source file:gr.eap.pages.ViewAnalysis.java
License:Open Source License
public ViewAnalysis(final PageParameters parameters) { if (parameters == null || parameters.isEmpty()) { analysis = ((EapSession) getSession()).getAnalysis(); } else {/*from w ww .j a v a 2s . co m*/ String code = parameters.get(0).toString(); if (code == null) { getSession().warn(" ."); setResponsePage(HomePage.class); return; } analysis = getDataStore().get(code); ((EapSession) getSession()).setAnalysis(analysis); } if (analysis == null) { getSession().error(" ? ."); setResponsePage(HomePage.class); return; } add(new Label("title", analysis.getTitle())); add(new Label("usageEstimation", String.valueOf(analysis.getUsageEstimation()))); add(new Label("description", analysis.getDescription())); add(new Label("keywords", analysis.getKeywords())); add(new Label("it_dept", getNaiOxi(analysis.isItDepartment()))); add(new Label("key_users", getNaiOxi(analysis.isKeyusers()))); add(new Label("sens_data", getNaiOxi(analysis.isSensitiveData()))); analysis.prepareLyseisForCalculations(); bestChoices = getBestChoices(); final Anapty3hChoiceRenderer anapty3hChoiceRenderer = new Anapty3hChoiceRenderer(); final Filo3eniaChoiceRenderer filo3eniaChoiceRenderer = new Filo3eniaChoiceRenderer(); add(new PropertyListView<Lysh>("lyseis", analysis.getLyseis()) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<Lysh> item) { Lysh lysh = item.getModelObject(); item.add(new Label("title")); setLabel(item, "totalCostF"); setLabel(item, "kostosAnapty3hsF"); setLabel(item, "ethsioKostosF"); setLabel(item, "ethsioKostosMeKatToArxikoKostosF"); setLabel(item, "xronosAnapty3hs"); setLabel(item, "independence"); setLabel(item, "independenceGain"); WebMarkupContainer vsc = new WebMarkupContainer("viewSolutionContainer"); vsc.setDefaultModel(new CompoundPropertyModel<Lysh>(lysh)); vsc.add(new Label("title")); vsc.add(new Label("techDesc")); vsc.add(new Label("anapty3hBy", anapty3hChoiceRenderer.getDisplayValue(lysh.getAnapty3hBy()).toString())); vsc.add(new Label("synthrhshBy", anapty3hChoiceRenderer.getDisplayValue(lysh.getSynthrhshBy()).toString())); vsc.add(new Label("filo3eniaBy", filo3eniaChoiceRenderer.getDisplayValue(lysh.getFilo3eniaBy()).toString())); vsc.add(new Label("diaxeirishBy", anapty3hChoiceRenderer.getDisplayValue(lysh.getDiaxeirishBy()).toString())); vsc.add(new Label("kostosAnapty3hsF")); vsc.add(new Label("xronosAnapty3hs")); vsc.add(new Label("ethsioKostosSynthrhshsF")); vsc.add(new Label("ethsioKostosFilo3eniasF")); vsc.add(new Label("ethsioKostosDiaxeirishsF")); vsc.add(new Label("ethsioKostosAdeiwnF")); item.add(vsc); } }); List<String> warnings = getWarnings(); add(new WebMarkupContainer("no_warnings").setVisible(warnings.isEmpty())); add(new ListView<String>("warningList", warnings) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<String> item) { item.add(new Label("warning", item.getModelObject())); } }); }