Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.google.gwt.cell.client.Cell;
- import com.google.gwt.cell.client.TextCell;
- import com.google.gwt.cell.client.ValueUpdater;
- import com.google.gwt.core.client.EntryPoint;
- import com.google.gwt.core.client.GWT;
- import com.google.gwt.dom.client.Element;
- import com.google.gwt.dom.client.NativeEvent;
- import com.google.gwt.editor.client.Editor;
- import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
- import com.google.gwt.safehtml.shared.SafeHtmlUtils;
- import com.google.gwt.user.client.ui.IsWidget;
- import com.google.gwt.user.client.ui.Label;
- import com.google.gwt.user.client.ui.RootPanel;
- import com.google.gwt.user.client.ui.Widget;
- import com.sencha.gxt.core.client.ValueProvider;
- import com.sencha.gxt.core.client.util.Margins;
- import com.sencha.gxt.data.shared.ListStore;
- import com.sencha.gxt.data.shared.ModelKeyProvider;
- import com.sencha.gxt.data.shared.PropertyAccess;
- import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer;
- import com.sencha.gxt.widget.core.client.container.VBoxLayoutContainer;
- import com.sencha.gxt.widget.core.client.container.Viewport;
- import com.sencha.gxt.widget.core.client.grid.ColumnConfig;
- import com.sencha.gxt.widget.core.client.grid.ColumnModel;
- import com.sencha.gxt.widget.core.client.grid.Grid;
- import com.sencha.gxt.widget.core.client.tips.QuickTip;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- import java.util.Set;
- public class CellTooltipOutsideBoxIssue implements EntryPoint, IsWidget {
- private static final String ERROR_MESSAGE = "java.io.IOException: sendRequest, IOException, com.energyict.dialer.connection.ConnectionException: Connection, doSendOut() error Software caused connection abort: socket write error at com.energyict.dialer.connection.Connection.doSendOut(Connection.java)";
- @Override
- public Widget asWidget() {
- VBoxLayoutContainer baseWidget = new VBoxLayoutContainer();
- Label label = new Label("The tooltip on the error message cell, and on this label, shows tooltip text outside tooltip text box.");
- label.getElement().setAttribute("qtip", ERROR_MESSAGE);
- baseWidget.add(label, new BoxLayoutContainer.BoxLayoutData(new Margins(20)));
- new QuickTip(label);
- Grid grid = buildFirstGrid();
- baseWidget.add(grid);
- return baseWidget;
- }
- private Grid buildFirstGrid() {
- IssueProperties props = GWT.create(IssueProperties.class);
- Grid grid = new Grid<Issue>(buildStore(props), buildColumnModel(props));
- new QuickTip(grid);
- return grid;
- }
- private ListStore<Issue> buildStore(IssueProperties props) {
- ListStore<Issue> store = new ListStore<Issue>(props.nameKey());
- store.addAll(issues());
- return store;
- }
- private ColumnModel<Issue> buildColumnModel(IssueProperties props) {
- ColumnConfig<Issue, String> reporterColumn = new ColumnConfig<Issue, String>(props.reporter(), 100, "Reporter");
- ColumnConfig<Issue, String> traceColumn = new ColumnConfig<Issue, String>(props.errorMessage(), 100, "Error message");
- traceColumn.setCell(new ToolTipCell());
- List<ColumnConfig<Issue, ?>> columns = new ArrayList<ColumnConfig<Issue, ?>>(2);
- columns.add(reporterColumn);
- columns.add(traceColumn);
- return new ColumnModel<Issue>(columns);
- }
- private static class ToolTipCell implements Cell<String> {
- private TextCell cell;
- private ToolTipCell() {
- this.cell = new TextCell();
- }
- @Override
- public boolean dependsOnSelection() {
- return cell.dependsOnSelection();
- }
- @Override
- public Set<String> getConsumedEvents() {
- return cell.getConsumedEvents();
- }
- @Override
- public boolean handlesSelection() {
- return cell.handlesSelection();
- }
- @Override
- public boolean isEditing(Context context, Element parent, String value) {
- return cell.isEditing(context, parent, value);
- }
- @Override
- public void onBrowserEvent(Context context, Element parent, String value, NativeEvent event, ValueUpdater<String> mValueUpdater) {
- cell.onBrowserEvent(context, parent, value, event, mValueUpdater);
- }
- @Override
- public void render(Context context, String value, SafeHtmlBuilder sb) {
- sb.appendHtmlConstant("<span qtip='" + SafeHtmlUtils.htmlEscape(value.toString()) + "'>");
- cell.render(context, value, sb);
- sb.appendHtmlConstant("</span>");
- }
- @Override
- public boolean resetFocus(Context context, Element parent, String value) {
- return cell.resetFocus(context, parent, value);
- }
- @Override
- public void setValue(Context context, Element parent, String value) {
- cell.setValue(context, parent, value);
- }
- }
- private List<Issue> issues() {
- return Arrays.asList(new Issue(1, "Fred", ERROR_MESSAGE));
- }
- @Override
- public void onModuleLoad() {
- Viewport viewport = new Viewport();
- viewport.add(asWidget());
- RootPanel.get().add(viewport);
- }
- public class Issue {
- private int id;
- private String reporter;
- private String errorMessage;
- public Issue(int id, String reporter, String errorMessage) {
- this.id = id;
- this.reporter = reporter;
- this.errorMessage = errorMessage;
- }
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getReporter() {
- return reporter;
- }
- public void setReporter(String reporter) {
- this.reporter = reporter;
- }
- public String getErrorMessage() {
- return errorMessage;
- }
- public void setErrorMessage(String errorMessage) {
- this.errorMessage = errorMessage;
- }
- }
- public interface IssueProperties extends PropertyAccess<Issue> {
- @Editor.Path("id")
- ModelKeyProvider<Issue> nameKey();
- ValueProvider<Issue, String> reporter();
- ValueProvider<Issue, String> errorMessage();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement