List of usage examples for com.google.gwt.safehtml.shared SafeHtmlBuilder SafeHtmlBuilder
public SafeHtmlBuilder()
From source file:com.vaadin.addon.spreadsheet.client.SelectionWidget.java
private void showTouchActions() { if (touchMode) { // show touch actions in popup if (touchActions != null) { // remove old touchActions.hide();//w w w . j av a 2s .c o m } touchActions = new VOverlay(true); touchActions.setOwner((Widget) sheetWidget.actionHandler); touchActions.addStyleName("v-contextmenu"); final MenuBar m = new MenuBar(); m.addItem(new SafeHtmlBuilder().appendEscaped("Fill").toSafeHtml(), new ScheduledCommand() { @Override public void execute() { setFillMode(true); touchActions.hide(); } }); touchActions.add(m); Scheduler.get().scheduleDeferred(new ScheduledCommand() { @Override public void execute() { touchActions.setPopupPositionAndShow(new PositionCallback() { @Override public void setPosition(int offsetWidth, int offsetHeight) { // above top border int top = 0; int left = 0; int bottom = 0; int width = 0; int parentTop = 0; if (topRight != null && topRight.isVisible()) { top = topRight.top.getAbsoluteTop(); left = topRight.top.getAbsoluteLeft(); width = topRight.top.getClientWidth(); bottom = topRight.bottom.getAbsoluteBottom() + 5; if (topLeft.isVisible()) { width += topLeft.top.getClientWidth(); } if (bottomRight.isVisible()) { bottom = bottomRight.bottom.getAbsoluteBottom() + 5; } } else if (topLeft != null && topLeft.isVisible()) { top = topLeft.top.getAbsoluteTop(); left = topLeft.top.getAbsoluteLeft(); width = topLeft.top.getClientWidth(); bottom = topLeft.bottom.getAbsoluteBottom() + 5; if (bottomLeft.isVisible()) { bottom = bottomLeft.bottom.getAbsoluteBottom() + 5; } } else if (bottomLeft != null && bottomLeft.isVisible()) { top = bottomLeft.top.getAbsoluteTop(); left = bottomLeft.top.getAbsoluteLeft(); width = bottomLeft.top.getClientWidth(); bottom = bottomLeft.bottom.getAbsoluteBottom() + 5; if (bottomRight.isVisible()) { width += bottomRight.top.getClientWidth(); } } else { top = bottomRight.top.getAbsoluteTop(); left = bottomRight.top.getAbsoluteLeft(); width = bottomRight.top.getClientWidth(); bottom = bottomRight.bottom.getAbsoluteBottom() + 5; } if (width > sheetWidget.getElement().getClientWidth()) { width = sheetWidget.getElement().getClientWidth(); } if (sheetWidget.hasFrozenRows()) { parentTop = sheetWidget.getTopRightPane().getAbsoluteTop(); } else { parentTop = sheetWidget.getBottomRightPane().getAbsoluteTop(); } top -= offsetHeight + 5; left += (width / 2) - (offsetWidth / 2); if (parentTop > top) { // put under instead top = bottom + 5; } touchActions.setPopupPosition(left, top); // TODO check for room } }); touchActions.show(); } }); } }
From source file:com.watopi.chosen.client.ChosenImpl.java
License:Open Source License
private void resultsBuild() { selectItems = new SelectParser().parse(selectElement); if (isMultiple && choices > 0) { searchChoices.find("li." + css.searchChoice()).remove(); choices = 0;/*w w w . j a va2 s . c om*/ } else if (!isMultiple) { selectedItem.addClass(css.chznDefault()).find("span").text(defaultText); if (selectElement.getOptions().getLength() <= options.getDisableSearchThreshold()) { container.addClass(css.chznContainerSingleNoSearch()); } else { container.removeClass(css.chznContainerSingleNoSearch()); } } SafeHtmlBuilder content = new SafeHtmlBuilder(); for (int i = 0; i < selectItems.length(); i++) { SelectItem item = selectItems.get(i); if (item.isGroup()) { SafeHtml result = resultAddGroup((GroupItem) item); if (result != null) { content.append(result); } } else { OptionItem optionItem = (OptionItem) item; if (optionItem.isEmpty()) { continue; } SafeHtml optionHtml = resultAddOption(optionItem); if (optionHtml != null) { content.append(optionHtml); } if (optionItem.isSelected() && isMultiple) { choiceBuild(optionItem); } else if (optionItem.isSelected() && !isMultiple) { selectedItem.removeClass(css.chznDefault()).find("span").text(optionItem.getText()); if (allowSingleDeselect) { singleDeselectControlBuild(); } } } } searchFieldDisabled(); showSearchFieldDefault(); searchFieldScale(); searchResults.html(content.toSafeHtml().asString()); }
From source file:cz.metacentrum.perun.webgui.widgets.UnaccentMultiWordSuggestOracle.java
License:Apache License
/** * Returns real suggestions with the given query in <code>strong</code> html * font.// w ww . j a v a 2 s. co m * * @param query query string * @param candidates candidates * @return real suggestions */ private List<MultiWordSuggestion> convertToFormattedSuggestions(String query, List<String> candidates) { List<MultiWordSuggestion> suggestions = new ArrayList<MultiWordSuggestion>(); for (int i = 0; i < candidates.size(); i++) { String candidate = candidates.get(i); int cursor = 0; int index = 0; // Use real suggestion for assembly. String formattedSuggestion = toRealSuggestions.get(candidate); // Create strong search string. SafeHtmlBuilder accum = new SafeHtmlBuilder(); String[] searchWords = query.split(WHITESPACE_STRING); while (true) { WordBounds wordBounds = findNextWord(candidate, searchWords, index); if (wordBounds == null) { break; } if (wordBounds.startIndex == 0 || WHITESPACE_CHAR == candidate.charAt(wordBounds.startIndex - 1)) { String part1 = formattedSuggestion.substring(cursor, wordBounds.startIndex); String part2 = formattedSuggestion.substring(wordBounds.startIndex, wordBounds.endIndex); cursor = wordBounds.endIndex; accum.appendEscaped(part1); accum.appendHtmlConstant("<strong>"); accum.appendEscaped(part2); accum.appendHtmlConstant("</strong>"); } index = wordBounds.endIndex; } // Check to make sure the search was found in the string. if (cursor == 0) { continue; } accum.appendEscaped(formattedSuggestion.substring(cursor)); MultiWordSuggestion suggestion = createSuggestion(formattedSuggestion, accum.toSafeHtml().asString()); suggestions.add(suggestion); } return suggestions; }
From source file:de.eckhartarnold.client.Caption.java
License:Apache License
/** * Returns the current Text the caption displays. * //w w w.j a v a 2 s .co m * @return the HTML formatted Text of the caption */ public SafeHtml getText() { if (current == -1) return (spacing == NO_SPACING) ? emptySpacer : spacer; else { SafeHtmlBuilder builder = new SafeHtmlBuilder(); if (spacing == BOTTOM_SPACING) { builder.append(stuffings[current]); builder.append(captions[current]); return builder.toSafeHtml(); } else if (spacing == TOP_SPACING) { builder.append(captions[current]); builder.append(stuffings[current]); return builder.toSafeHtml(); } else { return captions[current]; } } }
From source file:de.knightsoftnet.navigation.client.ui.navigation.AbstractNavigationStructure.java
License:Apache License
protected SafeHtml createMenuEntry(final ImageResource pimage, final String ptext) { final SafeHtmlBuilder menuShb = new SafeHtmlBuilder(); menuShb.append(AbstractImagePrototype.create(pimage).getSafeHtml()).append(' ').appendEscaped(ptext); return menuShb.toSafeHtml(); }
From source file:de.knightsoftnet.validators.client.decorators.AbstractDecorator.java
License:Apache License
/** * The default implementation will display, but not consume, received errors whose * {@link EditorError#getEditor() getEditor()} method returns the Editor passed into * {@link #setEditor}./* w w w . j a v a 2s. c o m*/ * * @param errors a List of {@link EditorError} instances */ @Override public void showErrors(final List<EditorError> errors) { final Set<String> messages = new HashSet<String>(); for (final EditorError error : errors) { if (this.editorErrorMatches(error)) { messages.add(error.getMessage()); } } if (messages.isEmpty()) { this.errorLabel.setText(StringUtils.EMPTY); this.errorLabel.getElement().getStyle().setDisplay(Display.NONE); if (this.contents.getWidget() != null) { this.contents.getWidget().removeStyleName(this.decoratorStyle.errorInputStyle()); this.contents.getWidget().addStyleName(this.decoratorStyle.validInputStyle()); } } else { if (this.contents.getWidget() != null) { this.contents.getWidget().removeStyleName(this.decoratorStyle.validInputStyle()); this.contents.getWidget().addStyleName(this.decoratorStyle.errorInputStyle()); if (this.focusOnError) { this.setFocus(true); } } final SafeHtmlBuilder sb = new SafeHtmlBuilder(); for (final String message : messages) { sb.appendEscaped(message); sb.appendHtmlConstant("<br />"); } this.errorLabel.setHTML(sb.toSafeHtml()); this.errorLabel.getElement().getStyle().setDisplay(Display.TABLE); } }
From source file:de.uni_koeln.spinfo.maalr.webapp.ui.editor.client.entry.AdvancedEditor.java
License:Apache License
public static PopupPanel openEditor(final LexEntry entry, final LemmaVersion lv, final AsyncCallback<LexEntry> afterClose, final EditorConstants constants, final EditorMessages messages) { final PopupPanel popup = new PopupPanel(false, false); final AsyncCallback<LexEntry> callback = new AsyncCallback<LexEntry>() { @Override// w ww . ja v a 2 s . c om public void onFailure(Throwable caught) { afterClose.onFailure(caught); } @Override public void onSuccess(LexEntry result) { popup.hide(); afterClose.onSuccess(result); } }; popup.setStyleName("editor-modal"); popup.setGlassEnabled(true); popup.setGlassStyleName("editor-modal-glass"); final VerticalPanel content = new VerticalPanel(); popup.add(content); popup.setPopupPosition(50, 50); popup.setPixelSize(Window.getClientWidth() - 100, Window.getClientHeight() - 100); final LemmaEditorWidget editorWidget = new LemmaEditorWidget(AsyncLemmaDescriptionLoader.getDescription(), UseCase.FIELDS_FOR_ADVANCED_EDITOR, true, 2, true, null); editorWidget.setData(lv); content.add(editorWidget); final boolean withComment = true; final boolean withEmail = true; Fieldset overlayPanel = new Fieldset(); overlayPanel.getElement().getStyle().setMarginLeft(10, Unit.PX); overlayPanel.getElement().getStyle().setMarginRight(10, Unit.PX); overlayPanel.setStyleName("form-horizontal"); content.add(overlayPanel); final ControlGroup left = new ControlGroup(); final ControlGroup right = new ControlGroup(); overlayPanel.add(left); overlayPanel.add(right); LocalizedStrings.afterLoad(new AsyncCallback<TranslationMap>() { @Override public void onFailure(Throwable caught) { } @Override public void onSuccess(final TranslationMap localizedStrings) { service.getOverlayTypes(true, new AsyncCallback<ArrayList<String>>() { @Override public void onFailure(Throwable caught) { } @Override public void onSuccess(ArrayList<String> result) { if (result.size() == 0) { return; } FlowPanel group = new FlowPanel(); langAOverlay = new ListBox(false); langAOverlay.addItem(constants.none(), (String) null); for (final String type : result) { langAOverlay.addItem(type, type); } group.add(langAOverlay); final Button edit = new Button(constants.edit()); langAOverlay.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { edit.setEnabled(langAOverlay.getSelectedIndex() != 0); } }); edit.getElement().getStyle().setMarginLeft(10, Unit.PX); edit.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { showOverlayEditor(lv, langAOverlay.getValue(), localizedStrings, constants, messages); } }); group.add(edit); // left.add(new ControlLabel(messages.controlLabelOverlay(AsyncLemmaDescriptionLoader.getDescription().getLanguageName(true)))); left.add(new ControlLabel(messages.controlLabelOverlay())); Controls controls = new Controls(); controls.add(group); left.add(controls); edit.setEnabled(false); String overlay = lv.getEntryValue(LemmaVersion.OVERLAY_LANG1); for (int i = 0; i < result.size(); i++) { if (result.get(i).equals(overlay)) { langAOverlay.setItemSelected(i + 1, true); edit.setEnabled(true); break; } } } }); service.getOverlayTypes(false, new AsyncCallback<ArrayList<String>>() { @Override public void onFailure(Throwable caught) { } @Override public void onSuccess(ArrayList<String> result) { if (result.size() == 0) { return; } FlowPanel group = new FlowPanel(); langBOverlay = new ListBox(false); langBOverlay.addItem(constants.none(), (String) null); for (final String type : result) { langBOverlay.addItem(type, type); } group.add(langBOverlay); final Button edit = new Button(constants.edit()); langBOverlay.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { edit.setEnabled(langBOverlay.getSelectedIndex() != 0); } }); edit.getElement().getStyle().setMarginLeft(10, Unit.PX); edit.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { showOverlayEditor(lv, langBOverlay.getValue(), localizedStrings, constants, messages); } }); group.add(edit); // right.add(new ControlLabel(messages.controlLabelOverlay(AsyncLemmaDescriptionLoader.getDescription().getLanguageName(false)))); right.add(new ControlLabel(messages.controlLabelOverlay())); Controls controls = new Controls(); controls.add(group); right.add(controls); edit.setEnabled(false); String overlay = lv.getEntryValue(LemmaVersion.OVERLAY_LANG2); for (int i = 0; i < result.size(); i++) { if (result.get(i).equals(overlay)) { langBOverlay.setItemSelected(i + 1, true); edit.setEnabled(true); break; } } } }); Fieldset set = null; if (withComment) { set = new Fieldset(); ControlGroup commentGroup = new ControlGroup(); commentGroup.add(new ControlLabel(localizedStrings.get("dialog.comment.header"))); comment = new TextArea(); comment.getElement().getStyle().setWidth(100, Unit.PCT); comment.getElement().getStyle().setProperty("resize", "none"); comment.setVisibleLines(8); commentGroup.add(comment); set.add(commentGroup); comment.setText(lv.getEntryValue(LemmaVersion.COMMENT)); } if (withEmail) { set = set == null ? new Fieldset() : set; ControlGroup group = new ControlGroup(); group.add(new ControlLabel(localizedStrings.get("dialog.email.header"))); HorizontalPanel hp = new HorizontalPanel(); group.add(hp); email = new TextBox(); email.getElement().getStyle().setWidth(350, Unit.PX); email.setText(lv.getEntryValue(LemmaVersion.EMAIL)); hp.add(email); Button sendButton = new Button(constants.reply()); sendButton.getElement().getStyle().setMarginLeft(10, Unit.PX); sendButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { AsyncLemmaDescriptionLoader .afterLemmaDescriptionLoaded(new AsyncCallback<LemmaDescription>() { @Override public void onFailure(Throwable caught) { // TODO Auto-generated method stub } @Override public void onSuccess(LemmaDescription ld) { String firstLanguageId = ld.getLanguage(true).getId(); String secondLanguageId = ld.getLanguage(false).getId(); String first = localizedStrings.get(firstLanguageId); String second = localizedStrings.get(secondLanguageId); String lemma1st = ld.toUnescapedString(lv, UseCase.RESULT_LIST, true); String lemma2nd = ld.toUnescapedString(lv, UseCase.RESULT_LIST, false); String german = first + "%20%3D%20" + lemma1st; String romansh = second + "%20%3D%20" + lemma2nd; String remartg = localizedStrings.get("mail.comment") + "%0A" + URL.encode(comment.getText()); String subject = "?subject=" + URL.encode(localizedStrings.get("mail.subject")); String body = "&body=" + german + "%0A" + romansh + "%0A%0A" + remartg; String cc = ""; if (localizedStrings.get("mail.cc") != null) { cc = "&cc=" + localizedStrings.get("mail.cc"); } Window.Location .assign("mailto:" + email.getText() + subject + cc + body); } }); } }); hp.add(sendButton); set.add(group); } if (set != null) { set.getElement().getStyle().setPaddingLeft(15, Unit.PC); set.getElement().getStyle().setPaddingRight(15, Unit.PC); HTML html = new HTML(new SafeHtmlBuilder().appendHtmlConstant("<hr/>").toSafeHtml()); html.getElement().getStyle().setMarginLeft(20, Unit.PX); html.getElement().getStyle().setMarginRight(20, Unit.PX); content.add(html); content.add(set); } } }); Button cancel = new Button(constants.cancel()); cancel.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { popup.hide(); } }); Button reset = new Button(constants.reset()); reset.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { editorWidget.setData(lv); } }); Button ok = new Button(constants.ok()); ok.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if (entry == null) { LemmaVersion fromEditor = new LemmaVersion(); fromEditor.getEntryValues().putAll(lv.getEntryValues()); fromEditor.getMaalrValues().putAll(lv.getMaalrValues()); transferSpecialValues(lv, fromEditor); editorWidget.updateFromEditor(fromEditor); if (editorWidget.isValid(true, true)) { LexEntry entry = new LexEntry(fromEditor); service.insert(entry, callback); } } else { LemmaVersion fromEditor = new LemmaVersion(); fromEditor.getEntryValues().putAll(lv.getEntryValues()); fromEditor.getMaalrValues().putAll(lv.getMaalrValues()); transferSpecialValues(lv, fromEditor); editorWidget.updateFromEditor(fromEditor); if (editorWidget.isValid(true, true)) { service.acceptAfterUpdate(entry, lv, fromEditor, callback); } } editorWidget.updateFromEditor(lv); } private void transferSpecialValues(final LemmaVersion lv, LemmaVersion fromEditor) { if (langAOverlay != null) { int index = langAOverlay.getSelectedIndex(); String value = index <= 0 ? null : langAOverlay.getValue(index); fromEditor.setValue(LemmaVersion.OVERLAY_LANG1, value); lv.setValue(LemmaVersion.OVERLAY_LANG1, value); } if (langBOverlay != null) { int index = langBOverlay.getSelectedIndex(); String value = index <= 0 ? null : langBOverlay.getValue(index); fromEditor.setValue(LemmaVersion.OVERLAY_LANG2, value); lv.setValue(LemmaVersion.OVERLAY_LANG2, value); } if (email != null) { fromEditor.setValue(LemmaVersion.EMAIL, email.getText()); lv.setValue(LemmaVersion.EMAIL, email.getText()); } if (comment != null) { fromEditor.setValue(LemmaVersion.COMMENT, comment.getText()); lv.setValue(LemmaVersion.COMMENT, comment.getText()); } } }); ok.setType(ButtonType.PRIMARY); content.add(new ModalFooter(cancel, reset, ok)); popup.show(); final HandlerRegistration handler = Window.addResizeHandler(new ResizeHandler() { @Override public void onResize(ResizeEvent event) { popup.setSize(Window.getClientWidth() - 100 + "px", Window.getClientHeight() - 100 + "px"); } }); popup.addCloseHandler(new CloseHandler<PopupPanel>() { @Override public void onClose(CloseEvent<PopupPanel> event) { handler.removeHandler(); } }); return popup; }
From source file:de.uni_koeln.spinfo.maalr.webapp.ui.editor.client.entry.LexEditor.java
License:Apache License
private void export() { AsyncLemmaDescriptionLoader.afterLemmaDescriptionLoaded(new AsyncCallback<LemmaDescription>() { @Override//from w w w . j a v a2 s . c o m public void onFailure(Throwable caught) { } @Override public void onSuccess(final LemmaDescription description) { final ArrayList<String> fields = new ArrayList<String>(description.getEditorFields(true)); fields.addAll(description.getEditorFields(false)); fields.add(LemmaVersion.COMMENT); LocalizedStrings.afterLoad(new AsyncCallback<TranslationMap>() { @Override public void onFailure(Throwable caught) { } @Override public void onSuccess(TranslationMap translation) { showExportDialog(fields, translation); } }); } private void showExportDialog(final ArrayList<String> fields, TranslationMap translation) { final Modal dialog = new Modal(); final FlowPanel panel = new FlowPanel(); final Set<String> selected = new HashSet<String>(); final List<CheckBox> boxes = new ArrayList<CheckBox>(); for (final String field : fields) { String label = translation.get(field); if (label == null) label = field; final CheckBox box = new CheckBox(label); box.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if (box.getValue()) { selected.add(field); } else { selected.remove(field); } }; }); boxes.add(box); panel.add(box); } Button exportAll = new Button(constants.selectAll()); exportAll.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { for (CheckBox box : boxes) { box.setValue(true); } selected.addAll(fields); } }); Button exportNone = new Button(constants.deselectAll()); exportNone.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { for (CheckBox box : boxes) { box.setValue(false); } selected.clear(); } }); ButtonGroup group = new ButtonGroup(); group.add(exportAll); group.add(exportNone); panel.add(group); dialog.add(panel); Button cancel = new Button(constants.cancel()); cancel.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { dialog.hide(); } }); final Button ok = new Button(constants.export()); ok.setType(ButtonType.PRIMARY); dialog.setTitle(constants.selectedFieldsExport()); ok.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { panel.clear(); dialog.setTitle(constants.exporting()); ok.setVisible(false); Label busyLabel = new Label(constants.exportingData()); panel.add(busyLabel); service.export(selected, queryBox.getQuery(), new AsyncCallback<String>() { @Override public void onFailure(Throwable caught) { } @Override public void onSuccess(String result) { dialog.setTitle(constants.exportCompleted()); panel.clear(); result = GWT.getHostPageBaseURL() + "download/" + result + ".html"; Label label = new Label(constants.exportDownload()); panel.add(label); Anchor anchor = new Anchor( new SafeHtmlBuilder().appendEscaped(constants.download()).toSafeHtml(), result); anchor.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { dialog.hide(); } }); panel.add(anchor); } }); } }); ModalFooter footer = new ModalFooter(cancel, ok); dialog.add(footer); dialog.setAnimation(true); dialog.setBackdrop(BackdropType.STATIC); int customWidth = 850; dialog.setWidth(customWidth + "px"); dialog.show(); double customMargin = -1 * (customWidth / 2); dialog.getElement().getStyle().setMarginLeft(customMargin, Unit.PX); dialog.getElement().getStyle().setMarginRight(customMargin, Unit.PX); dialog.getElement().getStyle().setMarginTop(70, Unit.PX); } }); }
From source file:de.uni_koeln.spinfo.maalr.webapp.ui.editor.client.entry.list.column.LemmaVersionColumnHighlightable.java
License:Apache License
@Override public SafeHtml getValue(LemmaVersion object) { SafeHtmlBuilder sb = new SafeHtmlBuilder(); LemmaDescription description = AsyncLemmaDescriptionLoader.getDescription(); String toDisplay = description.toString(object, UseCase.RESULT_LIST, true) + " " + description.toString(object, UseCase.RESULT_LIST, false); if (query != null && query.isHighlight()) { toDisplay = Highlighter.highlight(toDisplay, query.getValue("searchPhrase")); }// w w w. j ava 2s. c o m sb.appendHtmlConstant(toDisplay); return sb.toSafeHtml(); }
From source file:de.uni_koeln.spinfo.maalr.webapp.ui.editor.client.entry.list.wrapper.LemmaVersionCellWrapper.java
License:Apache License
@Override public SafeHtml getUserDetails() { LightUserInfo userInfo = lemma.getUserInfo(); SafeHtmlBuilder builder = new SafeHtmlBuilder(); if (userInfo != null && userInfo.getRole() != Role.GUEST_1) { String firstName = userInfo.getFirstName(); String lastName = userInfo.getLastName(); if (firstName != null && lastName != null) { builder.append(templates.userName(firstName, lastName)); } else {//from w w w .j a va2 s . co m builder.append(templates.login(userInfo.getLogin())); } if (lemma.getIP() != null) { builder.append(templates.ipSmall(lemma.getIP())); } else { builder.append(templates.ipSmall(constants.unknownIp())); } } else { if (lemma.getIP() != null) { builder.append(templates.ipDefault(lemma.getIP())); } else { builder.append(templates.ipDefault(constants.unknownIp())); } } return builder.toSafeHtml(); }