List of usage examples for com.google.gwt.text.shared AbstractSafeHtmlRenderer AbstractSafeHtmlRenderer
AbstractSafeHtmlRenderer
From source file:com.gafactory.core.client.ui.grids.BaseListGrid.java
License:Open Source License
protected Column<T, T> addBooleanColumn(final ValueProvider<T, Boolean> field, final IconType yes, final IconType no, String header, int width, boolean sortable) { return addSafeHtmlColumn(new AbstractSafeHtmlRenderer<T>() { @Override/*from ww w. j a v a2s . c o m*/ public SafeHtml render(T object) { Boolean b = field.getValue(object); if (b != null) { boolean selected = isSelected(object); String color; if (selected) { color = TABLE_LINK_SELECTED; } else { color = b ? "icon-yes" : "icon-no"; } return templates.icon(Styles.FONT_AWESOME_BASE, b ? yes.getCssName() : no.getCssName(), color); } else { return SafeHtmlUtils.EMPTY_SAFE_HTML; } } }, header, width, sortable, sortable ? field.getPath() : null); }
From source file:com.msco.mil.client.com.sencha.gxt.explorer.client.app.ui.OverviewExample.java
License:sencha.com license
@Override public Widget asWidget() { final Renderer r = GWT.create(Renderer.class); ListViewCustomAppearance<Example> appearance = new ListViewCustomAppearance<Example>(".sample-box", "sample-over", "none") { @Override/* w ww . ja v a 2 s. c o m*/ public void renderEnd(SafeHtmlBuilder builder) { String markup = new StringBuilder("<div class=\"").append(CommonStyles.get().clear()) .append("\"></div>").toString(); builder.appendHtmlConstant(markup); } @Override public void renderItem(SafeHtmlBuilder builder, SafeHtml content) { builder.appendHtmlConstant("<div class='sample-box' style='padding-top: 4px; border: none'>"); builder.append(content); builder.appendHtmlConstant("</div>"); } }; overviewView = new ListView<Example, Example>(overviewStore, new IdentityValueProvider<Example>() { @Override public void setValue(Example object, Example value) { } }, appearance); overviewView.setCell(new SimpleSafeHtmlCell<Example>(new AbstractSafeHtmlRenderer<Example>() { @Override public SafeHtml render(Example object) { return r.renderItem(object); } })); overviewView.addStyleName("overview-page"); overviewView.setBorders(false); overviewView.getSelectionModel().addSelectionHandler(new SelectionHandler<Example>() { @Override public void onSelection(SelectionEvent<Example> event) { if (event.getSelectedItem() != null) { placeController.goTo(new ExamplePlace(event.getSelectedItem().getId())); overviewView.getSelectionModel().deselectAll(); } } }); overview.add(overviewView); return overview; }
From source file:com.msco.mil.client.com.sencha.gxt.explorer.client.forms.ComboBoxExample.java
License:sencha.com license
public Widget asWidget() { if (vp == null) { vp = new VerticalPanel(); vp.setSpacing(10);/*from w w w .ja va 2s . co m*/ StateProperties props = GWT.create(StateProperties.class); ListStore<State> states = new ListStore<State>(props.abbr()); states.addAll(TestData.getStates()); ComboBox<State> combo = new ComboBox<State>(states, props.name()); addHandlersForEventObservation(combo, props.name()); combo.setEmptyText("Select a state..."); combo.setWidth(150); combo.setTypeAhead(true); combo.setTriggerAction(TriggerAction.ALL); vp.add(combo); states = new ListStore<State>(props.abbr()); states.addAll(TestData.getStates()); combo = new ComboBox<State>(states, props.name(), new AbstractSafeHtmlRenderer<State>() { public SafeHtml render(State item) { final ComboBoxTemplates comboBoxTemplates = GWT.create(ComboBoxTemplates.class); return comboBoxTemplates.state(item.getSlogan(), item.getName()); } }); addHandlersForEventObservation(combo, props.name()); combo.setEmptyText("Select a state..."); combo.setWidth(150); combo.setTypeAhead(true); combo.setTriggerAction(TriggerAction.ALL); vp.add(combo); final CountryProperties countryProps = GWT.create(CountryProperties.class); ListStore<Country> countries = new ListStore<Country>(countryProps.abbr()); countries.addAll(TestData.getCountries()); final String moduleBaseUrl = GWT.getHostPageBaseURL(); ComboBox<Country> combo2 = new ComboBox<Country>(countries, countryProps.name(), new AbstractSafeHtmlRenderer<Country>() { final ComboBoxTemplates comboBoxTemplates = GWT.create(ComboBoxTemplates.class); public SafeHtml render(Country item) { SafeUri imageUri = UriUtils .fromString(moduleBaseUrl + "examples/images/flags/" + item.getAbbr() + ".png"); return comboBoxTemplates.country(imageUri, item.getName()); } }); addHandlersForEventObservation(combo2, countryProps.name()); combo2.setWidth(150); combo2.setTypeAhead(true); combo2.setTriggerAction(TriggerAction.ALL); vp.add(combo2); } return vp; }
From source file:com.msco.mil.client.com.sencha.gxt.explorer.client.grid.AbstractGridEditingExample.java
License:sencha.com license
@Override public Widget asWidget() { ColumnConfig<Plant, String> cc1 = new ColumnConfig<Plant, String>(properties.name(), 220, "Name"); ColumnConfig<Plant, String> cc2 = new ColumnConfig<Plant, String>(properties.light(), 130, "Light"); DateCell dateCell = new DateCell(DateTimeFormat.getFormat("yyyy MMM dd")); ColumnConfig<Plant, Date> cc3 = new ColumnConfig<Plant, Date>(properties.available(), 95, "Date"); cc3.setCell(dateCell);/*from w w w . j av a 2s . c o m*/ ColumnConfig<Plant, Boolean> cc4 = new ColumnConfig<Plant, Boolean>(properties.indoor(), 55, "Indoor"); cc4.setCell(new SimpleSafeHtmlCell<Boolean>(new AbstractSafeHtmlRenderer<Boolean>() { @Override public SafeHtml render(Boolean object) { return SafeHtmlUtils.fromString(object ? "True" : "False"); } })); ColumnConfig<Plant, Double> cc5 = new ColumnConfig<Plant, Double>(properties.price(), 100, "Price"); cc5.setAlignment(HasHorizontalAlignment.ALIGN_RIGHT); cc5.setCell(new SimpleSafeHtmlCell<Double>(new AbstractSafeHtmlRenderer<Double>() { @Override public SafeHtml render(Double object) { return SafeHtmlUtils.fromString(NumberFormat.getCurrencyFormat().format(object)); } })); List<ColumnConfig<Plant, ?>> l = new ArrayList<ColumnConfig<Plant, ?>>(); l.add(cc1); l.add(cc2); l.add(cc5); l.add(cc3); l.add(cc4); ColumnModel<Plant> cm = new ColumnModel<Plant>(l); final ListStore<Plant> store = new ListStore<Plant>(properties.key()); store.addAll(TestData.getPlants()); grid = new Grid<Plant>(store, cm); grid.getView().setAutoExpandColumn(cc1); // EDITING// final GridEditing<Plant> editing = createGridEditing(grid); editing.addEditor(cc1, new TextField()); SimpleComboBox<Light> combo = new SimpleComboBox<Light>(new StringLabelProvider<Light>()); combo.setPropertyEditor(new PropertyEditor<Light>() { @Override public Light parse(CharSequence text) throws ParseException { return Light.parseString(text.toString()); } @Override public String render(Light object) { return object == null ? Light.SUNNY.toString() : object.toString(); } }); combo.setTriggerAction(TriggerAction.ALL); combo.add(Light.SUNNY); combo.add(Light.MOSTLYSUNNY); combo.add(Light.SUNORSHADE); combo.add(Light.MOSTLYSHADY); combo.add(Light.SHADE); combo.setForceSelection(true); editing.addEditor(cc2, new Converter<String, Light>() { @Override public String convertFieldValue(Light object) { return object == null ? Light.SUNNY.toString() : object.toString(); } @Override public Light convertModelValue(String object) { return Light.parseString(object); } }, combo); DateField dateField = new DateField( new DateTimePropertyEditor(DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT))); dateField.setClearValueOnParseError(false); editing.addEditor(cc3, dateField); CheckBox checkField = new CheckBox(); editing.addEditor(cc4, checkField); // column 5 is not editable // EDITING// FramedPanel cp = new FramedPanel(); cp.setHeadingText("Editable Grid Example"); cp.setPixelSize(600, 400); cp.addStyleName("margin-10"); ToolBar toolBar = new ToolBar(); TextButton add = new TextButton("Add Plant"); add.addSelectHandler(new SelectHandler() { @Override public void onSelect(SelectEvent event) { Plant plant = new Plant(); plant.setName("New Plant 1"); plant.setLight("Mostly Shady"); plant.setPrice(0); plant.setAvailable(new DateWrapper().clearTime().asDate()); plant.setIndoor(false); editing.cancelEditing(); store.add(0, plant); editing.startEditing(new GridCell(0, 0)); } }); toolBar.add(add); VerticalLayoutContainer con = new VerticalLayoutContainer(); con.setBorders(true); con.add(toolBar, new VerticalLayoutData(1, -1)); con.add(grid, new VerticalLayoutData(1, 1)); cp.setWidget(con); cp.setButtonAlign(BoxLayoutPack.CENTER); cp.addButton(new TextButton("Reset", new SelectHandler() { @Override public void onSelect(SelectEvent event) { store.rejectChanges(); } })); cp.addButton(new TextButton("Save", new SelectHandler() { @Override public void onSelect(SelectEvent event) { store.commitChanges(); } })); return cp; }
From source file:com.msco.mil.client.com.sencha.gxt.explorer.client.view.AdvancedListViewExample.java
License:sencha.com license
public Widget asWidget() { if (vp == null) { renderer = GWT.create(DetailRenderer.class); final ExampleServiceAsync service = GWT.create(ExampleService.class); RpcProxy<Object, List<Photo>> proxy = new RpcProxy<Object, List<Photo>>() { @Override/*from www .j ava 2s.com*/ public void load(Object loadConfig, AsyncCallback<List<Photo>> callback) { service.getPhotos(callback); } }; Loader<Object, List<Photo>> loader = new Loader<Object, List<Photo>>(proxy); ModelKeyProvider<Photo> kp = new ModelKeyProvider<Photo>() { @Override public String getKey(Photo item) { return item.getName(); } }; store = new ListStore<Photo>(kp); loader.addLoadHandler(new ListStoreBinding<Object, Photo, List<Photo>>(store)); store.addSortInfo(new StoreSortInfo<Photo>(new Comparator<Photo>() { @Override public int compare(Photo o1, Photo o2) { String v = sort.getCurrentValue(); if (v.equals("Name")) { return o1.getName().compareToIgnoreCase(o2.getName()); } else if (v.equals("File Size")) { return o1.getSize() < o2.getSize() ? -1 : 1; } else { o1.getDate().compareTo(o2.getDate()); } return 0; } }, SortDir.ASC)); loader.load(); chooser = new Dialog(); chooser.setId("img-chooser-dlg"); chooser.setHeadingText("Choose an Image"); chooser.setWidth(500); chooser.setHeight(300); chooser.setModal(true); chooser.setBodyStyle("background: none"); chooser.setBodyBorder(false); chooser.setPredefinedButtons(PredefinedButton.OK, PredefinedButton.CANCEL); chooser.setHideOnButtonClick(true); chooser.addHideHandler(new HideHandler() { @Override public void onHide(HideEvent event) { Photo photo = view.getSelectionModel().getSelectedItem(); if (photo != null) { if (chooser.getHideButton() == chooser.getButtonById(PredefinedButton.OK.name())) { image.setUrl(photo.getPath()); image.setVisible(true); } } } }); BorderLayoutContainer con = new BorderLayoutContainer(); chooser.add(con); VerticalLayoutContainer main = new VerticalLayoutContainer(); main.setBorders(true); ToolBar bar = new ToolBar(); bar.add(new LabelToolItem("Filter:")); StoreFilterField<Photo> field = new StoreFilterField<Photo>() { @Override protected boolean doSelect(Store<Photo> store, Photo parent, Photo item, String filter) { String name = item.getName().toLowerCase(); if (name.indexOf(filter.toLowerCase()) != -1) { return true; } return false; } @Override protected void onFilter() { super.onFilter(); view.getSelectionModel().select(0, false); } }; field.setWidth(100); field.bind(store); bar.add(field); bar.add(new SeparatorToolItem()); bar.add(new LabelToolItem("Sort By:")); sort = new SimpleComboBox<String>(new StringLabelProvider<String>()); sort.setTriggerAction(TriggerAction.ALL); sort.setEditable(false); sort.setForceSelection(true); sort.setWidth(120); sort.add("Name"); sort.add("File Size"); sort.add("Last Modified"); sort.setValue("Name"); sort.addSelectionHandler(new SelectionHandler<String>() { @Override public void onSelection(SelectionEvent<String> event) { store.applySort(false); } }); bar.add(sort); main.add(bar, new VerticalLayoutData(1, -1)); final Resources resources = GWT.create(Resources.class); resources.css().ensureInjected(); final Style style = resources.css(); final Renderer r = GWT.create(Renderer.class); ListViewCustomAppearance<Photo> appearance = new ListViewCustomAppearance<Photo>( "." + style.thumbWrap(), style.over(), style.select()) { @Override public void renderEnd(SafeHtmlBuilder builder) { String markup = new StringBuilder("<div class=\"").append(CommonStyles.get().clear()) .append("\"></div>").toString(); builder.appendHtmlConstant(markup); } @Override public void renderItem(SafeHtmlBuilder builder, SafeHtml content) { builder.appendHtmlConstant( "<div class='" + style.thumbWrap() + "' style='border: 1px solid white'>"); builder.append(content); builder.appendHtmlConstant("</div>"); } }; view = new ListView<Photo, Photo>(store, new IdentityValueProvider<Photo>() { @Override public void setValue(Photo object, Photo value) { } }, appearance); view.setCell(new SimpleSafeHtmlCell<Photo>(new AbstractSafeHtmlRenderer<Photo>() { @Override public SafeHtml render(Photo object) { return r.renderItem(object, style); } })); view.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); view.getSelectionModel().addSelectionChangedHandler(new SelectionChangedHandler<Photo>() { @Override public void onSelectionChanged(SelectionChangedEvent<Photo> event) { AdvancedListViewExample.this.onSelectionChange(event); } }); view.setBorders(false); main.add(view, new VerticalLayoutData(1, 1)); details = new HTML(); details.addStyleName(ThemeStyles.getStyle().border()); details.getElement().getStyle().setBackgroundColor("white"); BorderLayoutData eastData = new BorderLayoutData(150); eastData.setSplit(true); BorderLayoutData centerData = new BorderLayoutData(); centerData.setMargins(new Margins(0, 5, 0, 0)); con.setCenterWidget(main, centerData); con.setEastWidget(details, eastData); TextButton b = new TextButton("Choose"); b.addSelectHandler(new SelectHandler() { @Override public void onSelect(SelectEvent event) { chooser.show(); view.getSelectionModel().select(0, false); } }); vp = new VerticalPanel(); vp.setSpacing(10); vp.add(b); image = new Image(); image.getElement().getStyle().setProperty("marginTop", "10px"); image.setVisible(false); vp.add(image); } return vp; }
From source file:com.msco.mil.client.com.sencha.gxt.explorer.client.view.ListViewExample.java
License:sencha.com license
public Widget asWidget() { final ExampleServiceAsync service = GWT.create(ExampleService.class); RpcProxy<Object, List<Photo>> proxy = new RpcProxy<Object, List<Photo>>() { @Override// w w w.ja va 2s. c om public void load(Object loadConfig, AsyncCallback<List<Photo>> callback) { service.getPhotos(callback); } }; Loader<Object, List<Photo>> loader = new Loader<Object, List<Photo>>(proxy); ModelKeyProvider<Photo> kp = new ModelKeyProvider<Photo>() { @Override public String getKey(Photo item) { return item.getName(); } }; ListStore<Photo> store = new ListStore<Photo>(kp); loader.addLoadHandler(new ListStoreBinding<Object, Photo, List<Photo>>(store)); loader.load(); final FramedPanel panel = new FramedPanel(); panel.setCollapsible(true); panel.setAnimCollapse(false); panel.setId("images-view2"); panel.setHeadingText("Simple ListView (0 items selected)"); panel.setWidth(535); panel.setBodyBorder(false); final Resources resources = GWT.create(Resources.class); resources.css().ensureInjected(); final Style style = resources.css(); final Renderer r = GWT.create(Renderer.class); ListViewCustomAppearance<Photo> appearance = new ListViewCustomAppearance<Photo>("." + style.thumbWrap(), style.over(), style.select()) { @Override public void renderEnd(SafeHtmlBuilder builder) { String markup = new StringBuilder("<div class=\"").append(CommonStyles.get().clear()) .append("\"></div>").toString(); builder.appendHtmlConstant(markup); } @Override public void renderItem(SafeHtmlBuilder builder, SafeHtml content) { builder.appendHtmlConstant( "<div class='" + style.thumbWrap() + "' style='border: 1px solid white'>"); builder.append(content); builder.appendHtmlConstant("</div>"); } }; ListView<Photo, Photo> view = new ListView<Photo, Photo>(store, new IdentityValueProvider<Photo>() { @Override public void setValue(Photo object, Photo value) { } }, appearance); view.setCell(new SimpleSafeHtmlCell<Photo>(new AbstractSafeHtmlRenderer<Photo>() { @Override public SafeHtml render(Photo object) { return r.renderItem(object, style); } })); view.getSelectionModel().addSelectionChangedHandler(new SelectionChangedHandler<Photo>() { @Override public void onSelectionChanged(SelectionChangedEvent<Photo> event) { panel.setHeadingText("Simple ListView (" + event.getSelection().size() + " items selected)"); } }); panel.add(view); panel.addStyleName("margin-10"); return panel; }
From source file:com.sencha.gxt.explorer.client.grid.RowEditingGridExample.java
License:sencha.com license
@Override protected GridEditing<Plant> createGridEditing(Grid<Plant> editableGrid) { GridRowEditing<Plant> rowEditing = new GridRowEditing<Plant>(editableGrid); ColumnConfig<Plant, Double> price = editableGrid.getColumnModel().getColumn(2); rowEditing.addRenderer(price, new AbstractSafeHtmlRenderer<Double>() { PriceTemplate template = GWT.create(PriceTemplate.class); @Override/* ww w . j a v a 2 s. c o m*/ public SafeHtml render(Double object) { return template.render(object); } }); return rowEditing; }
From source file:org.geowe.client.local.ui.VertexStyleComboBox.java
License:Open Source License
public VertexStyleComboBox(String width) { super(new ListStore<VertexStyleDef>( ((VertexStyleDefProperties) GWT.create(VertexStyleDefProperties.class)).key()), ((VertexStyleDefProperties) GWT.create(VertexStyleDefProperties.class)).name(), new AbstractSafeHtmlRenderer<VertexStyleDef>() { final VertexStyleComboTemplates comboBoxTemplates = GWT.create(VertexStyleComboTemplates.class); public SafeHtml render(VertexStyleDef item) { return comboBoxTemplates.vertexStyle(item.getImage().getSafeUri(), item.getName()); }// www.j a v a 2 s . c o m }); setWidth(width); setTypeAhead(true); setEmptyText(UIMessages.INSTANCE.sbLayerComboEmptyText()); setTriggerAction(TriggerAction.ALL); setForceSelection(true); setEditable(false); enableEvents(); getStore().addAll(VertexStyles.getAll()); }
From source file:org.opennms.features.vaadin.nodemaps.internal.gwt.client.ui.controls.search.SearchControl.java
License:Open Source License
private void initializeCellAutocompleteWidget() { final AbstractSafeHtmlRenderer<NodeMarker> renderer = new AbstractSafeHtmlRenderer<NodeMarker>() { @Override/* w ww.ja v a 2s. com*/ public SafeHtml render(final NodeMarker marker) { final SafeHtmlBuilder builder = new SafeHtmlBuilder(); final String search = m_inputBox.getValue(); builder.appendHtmlConstant("<div class=\"autocomplete-label\">"); builder.appendHtmlConstant(marker.getNodeLabel()); builder.appendHtmlConstant("</div>"); String additionalSearchInfo = null; if (search != null && (search.contains(":") || search.contains("="))) { final String searchKey = search.replaceAll("[\\:\\=].*$", "").toLowerCase(); LOG.info("searchKey = " + searchKey); final Map<String, String> props = marker.getProperties(); if ("category".equals(searchKey) || "categories".equals(searchKey)) { final String catString = props.get("categories"); if (catString != null) { additionalSearchInfo = catString; } } for (final Map.Entry<String, String> entry : props.entrySet()) { final String key = entry.getKey().toLowerCase(); final Object value = entry.getValue(); if (key.equals(searchKey) && m_labels.containsKey(key)) { additionalSearchInfo = m_labels.get(key) + ": " + value; break; } } } if (additionalSearchInfo != null) { builder.appendHtmlConstant("<div class=\"autocomplete-additional-info\">") .appendHtmlConstant(additionalSearchInfo).appendHtmlConstant("</div>"); } return builder.toSafeHtml(); } }; final AbstractSafeHtmlCell<NodeMarker> cell = new AbstractSafeHtmlCell<NodeMarker>(renderer, "keydown", "click", "dblclick", "touchstart") { @Override public void onBrowserEvent(final Context context, final com.google.gwt.dom.client.Element parent, final NodeMarker value, final NativeEvent event, final ValueUpdater<NodeMarker> valueUpdater) { LOG.info("SearchControl.AutocompleteCell.onBrowserEvent(): context = " + context + ", parent = " + parent + ", value = " + value + ", event = " + event); if (m_stateManager.handleAutocompleteEvent(event)) { super.onBrowserEvent(context, parent, value, event, valueUpdater); } } @Override protected void render(final Context context, final SafeHtml data, final SafeHtmlBuilder builder) { builder.appendHtmlConstant("<div class=\"autocomplete-entry\">"); if (data != null) { builder.append(data); } builder.appendHtmlConstant("</div>"); } }; m_autoComplete = new CellList<NodeMarker>(cell); m_autoComplete.setSelectionModel(m_selectionModel); m_autoComplete.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.BOUND_TO_SELECTION); m_autoComplete.setVisible(false); m_autoComplete.addStyleName("search-autocomplete"); setIdIfMissing(m_autoComplete, "searchControl.autoComplete"); }
From source file:org.rstudio.studio.client.workbench.views.environment.view.EnvironmentObjectDisplay.java
License:Open Source License
public EnvironmentObjectDisplay(Host host, EnvironmentObjectsObserver observer, String environmentName) { super(EnvironmentObjects.MAX_ENVIRONMENT_OBJECTS, RObjectEntry.KEY_PROVIDER); observer_ = observer;//from w w w . j a v a2s. c om host_ = host; environmentStyle_ = EnvironmentResources.INSTANCE.environmentStyle(); environmentStyle_.ensureInjected(); environmentName_ = environmentName; filterRenderer_ = new AbstractSafeHtmlRenderer<String>() { @Override public SafeHtml render(String str) { SafeHtmlBuilder sb = new SafeHtmlBuilder(); boolean hasMatch = false; String filterText = host_.getFilterText(); if (filterText.length() > 0) { int idx = str.toLowerCase().indexOf(filterText); if (idx >= 0) { hasMatch = true; sb.appendEscaped(str.substring(0, idx)); sb.appendHtmlConstant("<span class=\"" + environmentStyle_.filterMatch() + "\">"); sb.appendEscaped(str.substring(idx, idx + filterText.length())); sb.appendHtmlConstant("</span>"); sb.appendEscaped(str.substring(idx + filterText.length(), str.length())); } } if (!hasMatch) sb.appendEscaped(str); return sb.toSafeHtml(); } }; }