Advertisement
Guest User

Untitled

a guest
Apr 19th, 2012
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.35 KB | None | 0 0
  1. import com.google.gwt.cell.client.Cell;
  2. import com.google.gwt.cell.client.TextCell;
  3. import com.google.gwt.cell.client.ValueUpdater;
  4. import com.google.gwt.core.client.EntryPoint;
  5. import com.google.gwt.core.client.GWT;
  6. import com.google.gwt.dom.client.Element;
  7. import com.google.gwt.dom.client.NativeEvent;
  8. import com.google.gwt.editor.client.Editor;
  9. import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
  10. import com.google.gwt.safehtml.shared.SafeHtmlUtils;
  11. import com.google.gwt.user.client.ui.IsWidget;
  12. import com.google.gwt.user.client.ui.Label;
  13. import com.google.gwt.user.client.ui.RootPanel;
  14. import com.google.gwt.user.client.ui.Widget;
  15. import com.sencha.gxt.core.client.ValueProvider;
  16. import com.sencha.gxt.core.client.util.Margins;
  17. import com.sencha.gxt.data.shared.ListStore;
  18. import com.sencha.gxt.data.shared.ModelKeyProvider;
  19. import com.sencha.gxt.data.shared.PropertyAccess;
  20. import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer;
  21. import com.sencha.gxt.widget.core.client.container.VBoxLayoutContainer;
  22. import com.sencha.gxt.widget.core.client.container.Viewport;
  23. import com.sencha.gxt.widget.core.client.grid.ColumnConfig;
  24. import com.sencha.gxt.widget.core.client.grid.ColumnModel;
  25. import com.sencha.gxt.widget.core.client.grid.Grid;
  26. import com.sencha.gxt.widget.core.client.tips.QuickTip;
  27.  
  28. import java.util.ArrayList;
  29. import java.util.Arrays;
  30. import java.util.List;
  31. import java.util.Set;
  32.  
  33. public class CellTooltipOutsideBoxIssue implements EntryPoint, IsWidget {
  34.  
  35.     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)";
  36.  
  37.     @Override
  38.     public Widget asWidget() {
  39.         VBoxLayoutContainer baseWidget = new VBoxLayoutContainer();
  40.  
  41.         Label label = new Label("The tooltip on the error message cell, and on this label, shows tooltip text outside tooltip text box.");
  42.         label.getElement().setAttribute("qtip", ERROR_MESSAGE);
  43.         baseWidget.add(label, new BoxLayoutContainer.BoxLayoutData(new Margins(20)));
  44.         new QuickTip(label);
  45.  
  46.         Grid grid = buildFirstGrid();
  47.         baseWidget.add(grid);
  48.  
  49.         return baseWidget;
  50.     }
  51.  
  52.     private Grid buildFirstGrid() {
  53.         IssueProperties props = GWT.create(IssueProperties.class);
  54.         Grid grid = new Grid<Issue>(buildStore(props), buildColumnModel(props));
  55.         new QuickTip(grid);
  56.         return grid;
  57.     }
  58.  
  59.     private ListStore<Issue> buildStore(IssueProperties props) {
  60.         ListStore<Issue> store = new ListStore<Issue>(props.nameKey());
  61.         store.addAll(issues());
  62.         return store;
  63.     }
  64.  
  65.     private ColumnModel<Issue> buildColumnModel(IssueProperties props) {
  66.         ColumnConfig<Issue, String> reporterColumn = new ColumnConfig<Issue, String>(props.reporter(), 100, "Reporter");
  67.         ColumnConfig<Issue, String> traceColumn = new ColumnConfig<Issue, String>(props.errorMessage(), 100, "Error message");
  68.         traceColumn.setCell(new ToolTipCell());
  69.         List<ColumnConfig<Issue, ?>> columns = new ArrayList<ColumnConfig<Issue, ?>>(2);
  70.         columns.add(reporterColumn);
  71.         columns.add(traceColumn);
  72.         return new ColumnModel<Issue>(columns);
  73.     }
  74.  
  75.     private static class ToolTipCell implements Cell<String> {
  76.  
  77.         private TextCell cell;
  78.  
  79.         private ToolTipCell() {
  80.             this.cell = new TextCell();
  81.         }
  82.  
  83.         @Override
  84.         public boolean dependsOnSelection() {
  85.             return cell.dependsOnSelection();
  86.         }
  87.  
  88.         @Override
  89.         public Set<String> getConsumedEvents() {
  90.             return cell.getConsumedEvents();
  91.         }
  92.  
  93.         @Override
  94.         public boolean handlesSelection() {
  95.             return cell.handlesSelection();
  96.         }
  97.  
  98.         @Override
  99.         public boolean isEditing(Context context, Element parent, String value) {
  100.             return cell.isEditing(context, parent, value);
  101.         }
  102.  
  103.         @Override
  104.         public void onBrowserEvent(Context context, Element parent, String value, NativeEvent event, ValueUpdater<String> mValueUpdater) {
  105.             cell.onBrowserEvent(context, parent, value, event, mValueUpdater);
  106.         }
  107.  
  108.         @Override
  109.         public void render(Context context, String value, SafeHtmlBuilder sb) {
  110.             sb.appendHtmlConstant("<span qtip='" + SafeHtmlUtils.htmlEscape(value.toString()) + "'>");
  111.             cell.render(context, value, sb);
  112.             sb.appendHtmlConstant("</span>");
  113.         }
  114.  
  115.         @Override
  116.         public boolean resetFocus(Context context, Element parent, String value) {
  117.             return cell.resetFocus(context, parent, value);
  118.         }
  119.  
  120.         @Override
  121.         public void setValue(Context context, Element parent, String value) {
  122.             cell.setValue(context, parent, value);
  123.         }
  124.     }
  125.  
  126.     private List<Issue> issues() {
  127.  
  128.         return Arrays.asList(new Issue(1, "Fred", ERROR_MESSAGE));
  129.     }
  130.  
  131.     @Override
  132.     public void onModuleLoad() {
  133.         Viewport viewport = new Viewport();
  134.         viewport.add(asWidget());
  135.         RootPanel.get().add(viewport);
  136.     }
  137.  
  138.     public class Issue {
  139.         private int id;
  140.         private String reporter;
  141.         private String errorMessage;
  142.  
  143.         public Issue(int id, String reporter, String errorMessage) {
  144.             this.id = id;
  145.             this.reporter = reporter;
  146.             this.errorMessage = errorMessage;
  147.         }
  148.  
  149.         public int getId() {
  150.             return id;
  151.         }
  152.  
  153.         public void setId(int id) {
  154.             this.id = id;
  155.         }
  156.  
  157.         public String getReporter() {
  158.             return reporter;
  159.         }
  160.  
  161.         public void setReporter(String reporter) {
  162.             this.reporter = reporter;
  163.         }
  164.  
  165.         public String getErrorMessage() {
  166.             return errorMessage;
  167.         }
  168.  
  169.         public void setErrorMessage(String errorMessage) {
  170.             this.errorMessage = errorMessage;
  171.         }
  172.     }
  173.  
  174.     public interface IssueProperties extends PropertyAccess<Issue> {
  175.         @Editor.Path("id")
  176.         ModelKeyProvider<Issue> nameKey();
  177.  
  178.         ValueProvider<Issue, String> reporter();
  179.  
  180.         ValueProvider<Issue, String> errorMessage();
  181.     }
  182.  
  183. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement