List of usage examples for org.apache.commons.lang StringUtils abbreviate
public static String abbreviate(String str, int maxWidth)
Abbreviates a String using ellipses.
From source file:org.projectforge.common.StringHelper.java
/** * Formats string array, each string with max with and separated by separator with a total width. See StringHelperTest for documentation. * @param strings//from w w w . j a v a 2s. c o m * @param maxWidth * @param maxTotalLength * @param separator * @return */ public static String abbreviate(final String[] strings, final int[] maxWidth, final int maxTotalLength, final String separator) { Validate.notNull(strings); Validate.notNull(maxWidth); Validate.isTrue(strings.length == maxWidth.length); int rest = maxTotalLength; final StringBuffer buf = new StringBuffer(); final int separatorLength = separator.length(); boolean output = false; for (int i = 0; i < strings.length; i++) { final String str = strings[i]; if (StringUtils.isBlank(str) == true) { continue; } if (output == true) { buf.append(separator); rest -= separatorLength; } else { output = true; } if (rest <= 0) { break; } final int max = Math.min(maxWidth[i], rest); buf.append(StringUtils.abbreviate(str, max)); rest -= Math.min(str.length(), max); } return buf.toString(); }
From source file:org.projectforge.excel.ExportWorkbook.java
/** * /*from w w w. j a va2 s.c o m*/ * @param name * @return */ public ExportSheet addSheet(final String name, final ContentProvider contentProvider) { String title = name; if (name.length() >= ExportSheet.MAX_XLS_SHEETNAME_LENGTH) { title = StringUtils.abbreviate(name, ExportSheet.MAX_XLS_SHEETNAME_LENGTH); } final Sheet poiSheet = poiWorkbook.createSheet(title); ContentProvider cp = getContentProvider(); if (contentProvider != null) { cp = contentProvider; } else { cp = ExportConfig.getInstance().createNewContentProvider(this); } final ExportSheet sheet = new ExportSheet(cp, name, poiSheet); sheets.add(sheet); return sheet; }
From source file:org.projectforge.export.ExportWorkbook.java
/** * //from w ww . j ava 2s .c o m * @param name * @return */ public ExportSheet addSheet(final String name, final ContentProvider contentProvider) { String title = name; if (name.length() >= ExportSheet.MAX_XLS_SHEETNAME_LENGTH) { title = StringUtils.abbreviate(name, ExportSheet.MAX_XLS_SHEETNAME_LENGTH); } Sheet poiSheet = poiWorkbook.createSheet(title); ContentProvider cp = getContentProvider(); if (contentProvider != null) { cp = contentProvider; } else { cp = new XlsContentProvider(this); } ExportSheet sheet = new ExportSheet(cp, name, poiSheet); sheets.add(sheet); return sheet; }
From source file:org.projectforge.framework.xstream.XmlObjectReader.java
public Object read(final String xml) { final Element element = XmlHelper.fromString(xml); processedElements = new HashSet<Element>(); processedAttributes = new HashMap<Element, Set<String>>(); warnings = null;/* w w w . j av a2s . com*/ final Object obj = read(element); warnings = checkForIgnoredElements(element); if (warnings != null) { if (warnings.length() > ABBREVIATE_WARNING) { log.warn("Warnings while parsing xml:\n" + StringUtils.abbreviate(warnings, ABBREVIATE_WARNING) + " (message abbreviated)."); } else { log.warn("Warnings while parsing xml:\n" + warnings); } } return obj; }
From source file:org.projectforge.plugins.licensemanagement.LicenseListPage.java
@SuppressWarnings("serial") public List<IColumn<LicenseDO, String>> createColumns(final WebPage returnToPage, final boolean sortable) { final List<IColumn<LicenseDO, String>> columns = new ArrayList<IColumn<LicenseDO, String>>(); final CellItemListener<LicenseDO> cellItemListener = new CellItemListener<LicenseDO>() { public void populateItem(final Item<ICellPopulator<LicenseDO>> item, final String componentId, final IModel<LicenseDO> rowModel) { final LicenseDO license = rowModel.getObject(); appendCssClasses(item, license.getId(), license.isDeleted()); }//w w w . j a v a 2s.c o m }; columns.add(new CellItemListenerPropertyColumn<LicenseDO>(new Model<String>(getString("organization")), getSortable("organization", sortable), "organization", cellItemListener) { /** * @see org.projectforge.web.wicket.CellItemListenerPropertyColumn#populateItem(org.apache.wicket.markup.repeater.Item, * java.lang.String, org.apache.wicket.model.IModel) */ @Override public void populateItem(final Item<ICellPopulator<LicenseDO>> item, final String componentId, final IModel<LicenseDO> rowModel) { final LicenseDO license = rowModel.getObject(); item.add(new ListSelectActionPanel(componentId, rowModel, LicenseEditPage.class, license.getId(), returnToPage, rowModel.getObject().getOrganization())); addRowClick(item); cellItemListener.populateItem(item, componentId, rowModel); } }); columns.add(new CellItemListenerPropertyColumn<LicenseDO>( new Model<String>(getString("plugins.licensemanagement.product")), getSortable("product", sortable), "product", cellItemListener)); columns.add(new CellItemListenerPropertyColumn<LicenseDO>( new Model<String>(getString("plugins.licensemanagement.version")), getSortable("version", sortable), "version", cellItemListener)); columns.add(new CellItemListenerPropertyColumn<LicenseDO>( new Model<String>(getString("plugins.licensemanagement.numberOfLicenses")), getSortable("numberOfLicenses", sortable), "numberOfLicenses", cellItemListener)); columns.add(new AbstractColumn<LicenseDO, String>( new Model<String>(getString("plugins.licensemanagement.owner"))) { public void populateItem(final Item<ICellPopulator<LicenseDO>> cellItem, final String componentId, final IModel<LicenseDO> rowModel) { final LicenseDO license = rowModel.getObject(); final String owners = licenseDao.getSortedOwnernames(license); final Label label = new Label(componentId, new Model<String>(owners)); cellItem.add(label); cellItemListener.populateItem(cellItem, componentId, rowModel); } }); columns.add(new CellItemListenerPropertyColumn<LicenseDO>( new Model<String>(getString("plugins.licensemanagement.device")), getSortable("device", sortable), "device", cellItemListener)); if (accessChecker.isLoggedInUserMemberOfAdminGroup() == true) { columns.add(new CellItemListenerPropertyColumn<LicenseDO>( new Model<String>(getString("plugins.licensemanagement.key")), getSortable("key", sortable), "key", cellItemListener) { @Override public void populateItem(final Item<ICellPopulator<LicenseDO>> item, final String componentId, final IModel<LicenseDO> rowModel) { final LicenseDO license = rowModel.getObject(); final Label label = new Label(componentId, new Model<String>(StringUtils.abbreviate(license.getKey(), 40))); cellItemListener.populateItem(item, componentId, rowModel); item.add(label); } }); } columns.add(new CellItemListenerPropertyColumn<LicenseDO>(new Model<String>(getString("comment")), getSortable("comment", sortable), "comment", cellItemListener) { @Override public void populateItem(final Item<ICellPopulator<LicenseDO>> item, final String componentId, final IModel<LicenseDO> rowModel) { final LicenseDO license = rowModel.getObject(); final Label label = new Label(componentId, new Model<String>(StringUtils.abbreviate(license.getComment(), 100))); cellItemListener.populateItem(item, componentId, rowModel); item.add(label); } }); return columns; }
From source file:org.projectforge.plugins.memo.MemoListPage.java
@SuppressWarnings("serial") public List<IColumn<MemoDO, String>> createColumns(final WebPage returnToPage, final boolean sortable) { final List<IColumn<MemoDO, String>> columns = new ArrayList<IColumn<MemoDO, String>>(); final CellItemListener<MemoDO> cellItemListener = new CellItemListener<MemoDO>() { public void populateItem(final Item<ICellPopulator<MemoDO>> item, final String componentId, final IModel<MemoDO> rowModel) { final MemoDO memo = rowModel.getObject(); appendCssClasses(item, memo.getId(), memo.isDeleted()); }/*from w w w . ja v a 2 s. c o m*/ }; columns.add(new CellItemListenerPropertyColumn<MemoDO>(new Model<String>(getString("created")), getSortable("created", sortable), "created", cellItemListener) { /** * @see org.projectforge.web.wicket.CellItemListenerPropertyColumn#populateItem(org.apache.wicket.markup.repeater.Item, * java.lang.String, org.apache.wicket.model.IModel) */ @Override public void populateItem(final Item<ICellPopulator<MemoDO>> item, final String componentId, final IModel<MemoDO> rowModel) { final MemoDO memo = rowModel.getObject(); item.add(new ListSelectActionPanel(componentId, rowModel, MemoEditPage.class, memo.getId(), returnToPage, DateTimeFormatter.instance().getFormattedDateTime(memo.getCreated()))); addRowClick(item); cellItemListener.populateItem(item, componentId, rowModel); } }); columns.add(new CellItemListenerPropertyColumn<MemoDO>(getString("modified"), getSortable("lastUpdate", sortable), "lastUpdate", cellItemListener)); columns.add(new CellItemListenerPropertyColumn<MemoDO>(new Model<String>(getString("plugins.memo.subject")), getSortable("subject", sortable), "subject", cellItemListener)); columns.add(new CellItemListenerPropertyColumn<MemoDO>(new Model<String>(getString("plugins.memo.memo")), getSortable("memo", sortable), "memo", cellItemListener) { @Override public void populateItem(final Item<ICellPopulator<MemoDO>> item, final String componentId, final IModel<MemoDO> rowModel) { final MemoDO memo = rowModel.getObject(); final Label label = new Label(componentId, new Model<String>(StringUtils.abbreviate(memo.getMemo(), 100))); cellItemListener.populateItem(item, componentId, rowModel); item.add(label); } }); return columns; }
From source file:org.projectforge.web.access.AccessListPage.java
@SuppressWarnings("serial") @Override/*from w w w.j ava2s . c o m*/ public List<IColumn<GroupTaskAccessDO, String>> createColumns(final WebPage returnToPage, final boolean sortable) { final List<IColumn<GroupTaskAccessDO, String>> columns = new ArrayList<IColumn<GroupTaskAccessDO, String>>(); final CellItemListener<GroupTaskAccessDO> cellItemListener = new CellItemListener<GroupTaskAccessDO>() { public void populateItem(final Item<ICellPopulator<GroupTaskAccessDO>> item, final String componentId, final IModel<GroupTaskAccessDO> rowModel) { final GroupTaskAccessDO acces = rowModel.getObject(); appendCssClasses(item, acces.getId(), acces.isDeleted()); } }; columns.add(new CellItemListenerPropertyColumn<GroupTaskAccessDO>(new Model<String>(getString("task")), getSortable("task.title", sortable), "task.title", cellItemListener) { /** * @see org.projectforge.web.wicket.CellItemListenerPropertyColumn#populateItem(org.apache.wicket.markup.repeater.Item, * java.lang.String, org.apache.wicket.model.IModel) */ @Override public void populateItem(final Item<ICellPopulator<GroupTaskAccessDO>> item, final String componentId, final IModel<GroupTaskAccessDO> rowModel) { final GroupTaskAccessDO access = rowModel.getObject(); final TaskDO task = access.getTask(); final StringBuffer buf = new StringBuffer(); taskFormatter.appendFormattedTask(getRequestCycle(), buf, task, true, false); final Label formattedTaskLabel = new Label(ListSelectActionPanel.LABEL_ID, buf.toString()); formattedTaskLabel.setEscapeModelStrings(false); item.add(new ListSelectActionPanel(componentId, rowModel, AccessEditPage.class, access.getId(), returnToPage, formattedTaskLabel)); addRowClick(item); cellItemListener.populateItem(item, componentId, rowModel); } }); columns.add(new CellItemListenerPropertyColumn<GroupTaskAccessDO>(new Model<String>(getString("group")), getSortable("group.name", sortable), "group.name", cellItemListener)); columns.add(new CellItemListenerPropertyColumn<GroupTaskAccessDO>(new Model<String>(getString("recursive")), getSortable("recursive", sortable), "recursive", cellItemListener) { @Override public void populateItem(final Item<ICellPopulator<GroupTaskAccessDO>> item, final String componentId, final IModel<GroupTaskAccessDO> rowModel) { final GroupTaskAccessDO access = rowModel.getObject(); if (access.isRecursive() == true) { item.add(new IconPanel(componentId, IconType.ACCEPT)); } else { item.add(createInvisibleDummyComponent(componentId)); } cellItemListener.populateItem(item, componentId, rowModel); } }); columns.add(new CellItemListenerPropertyColumn<GroupTaskAccessDO>( new Model<String>(getString("access.type")), null, "accessEntries", cellItemListener) { @Override public void populateItem(final Item<ICellPopulator<GroupTaskAccessDO>> item, final String componentId, final IModel<GroupTaskAccessDO> rowModel) { final int rowIndex = ((Item<?>) item.findParent(Item.class)).getIndex(); final GroupTaskAccessDO access = rowModel.getObject(); final List<AccessEntryDO> accessEntries = access.getOrderedEntries(); final AccessTablePanel accessTablePanel = new AccessTablePanel(componentId, accessEntries); if (rowIndex == 0) { accessTablePanel.setDrawHeader(true); } item.add(accessTablePanel); accessTablePanel.init(); cellItemListener.populateItem(item, componentId, rowModel); } }); columns.add(new CellItemListenerPropertyColumn<GroupTaskAccessDO>(getString("description"), getSortable("description", sortable), "description", cellItemListener) { @Override public void populateItem(final Item<ICellPopulator<GroupTaskAccessDO>> item, final String componentId, final IModel<GroupTaskAccessDO> rowModel) { final GroupTaskAccessDO access = rowModel.getObject(); final Label label = new Label(componentId, StringUtils.abbreviate(access.getDescription(), 100)); cellItemListener.populateItem(item, componentId, rowModel); item.add(label); } }); return columns; }
From source file:org.projectforge.web.calendar.MyEvent.java
/** * // w ww .j av a 2 s . c o m * @param title * @param labelValues {{"text without label"}{"value", "label"}, ...} * @return */ public MyEvent setTooltip(final String title, final String[][] labelValues) { this.tooltipTitle = title; final StringBuffer buf = new StringBuffer(); boolean first = true; for (final String[] lv : labelValues) { if (lv == null || lv.length < 1 || lv.length > 2) { if (WebConfiguration.isDevelopmentMode() == true) { throw new IllegalArgumentException("labelValues must be string arrays of length 1 or 2!"); } continue; } String value = lv[0]; if (StringUtils.isBlank(value) == true) { continue; } value = StringUtils.abbreviate(value, 80); final String label = lv.length == 2 ? lv[1] : null; if (first == true) { first = false; } else { buf.append("\n"); } if (label != null) { buf.append(label).append(": ").append(value); } else { buf.append(value); } } if (first == false) { buf.append("\n"); } buf.append(PFUserContext.getLocalizedString("timesheet.duration")).append(": ").append(getDuration()); this.tooltipContent = HtmlHelper.escapeHtml(buf.toString(), true); return this; }
From source file:org.projectforge.web.fibu.AbstractRechnungEditForm.java
protected String getPositionHeading(final AbstractRechnungsPositionDO position, final ToggleContainerPanel positionsPanel) { if (positionsPanel.getToggleStatus() == ToggleStatus.OPENED) { return getString("label.position.short") + " #" + position.getNumber(); }/*from ww w . java 2 s. c o m*/ final StringBuffer heading = new StringBuffer(); heading.append(escapeHtml(getString("label.position.short"))).append(" #").append(position.getNumber()); heading.append(": ").append(CurrencyFormatter.format(position.getNetSum())); if (StringHelper.isNotBlank(position.getText()) == true) { heading.append(" ").append(StringUtils.abbreviate(position.getText(), 80)); } return heading.toString(); }
From source file:org.projectforge.web.fibu.AuftragEditForm.java
protected String getPositionHeading(final AuftragsPositionDO position, final ToggleContainerPanel positionsPanel) { if (positionsPanel.getToggleStatus() == ToggleStatus.OPENED) { return getString("label.position.short") + " #" + position.getNumber(); }// w w w . jav a 2 s . c o m final StringBuffer heading = new StringBuffer(); heading.append(escapeHtml(getString("label.position.short"))).append(" #").append(position.getNumber()); heading.append(": ").append(CurrencyFormatter.format(position.getNettoSumme())); if (position.getStatus() != null) { heading.append(", ").append(getString(position.getStatus().getI18nKey())); } if (position.isVollstaendigFakturiert() == false) { heading.append(" (").append(getString("fibu.fakturiert.not")).append(")"); } if (StringHelper.isNotBlank(position.getTitel()) == true) { heading.append(": ").append(StringUtils.abbreviate(position.getTitel(), 80)); } return heading.toString(); }