Example usage for org.apache.commons.lang StringUtils abbreviate

List of usage examples for org.apache.commons.lang StringUtils abbreviate

Introduction

In this page you can find the example usage for org.apache.commons.lang StringUtils abbreviate.

Prototype

public static String abbreviate(String str, int maxWidth) 

Source Link

Document

Abbreviates a String using ellipses.

Usage

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();
}