2017-10-09 124 views
0

我怎樣才能把提示在特定網格單元GXT的鼠標?如何把一個工具提示在網格單元格中GXT的鼠標?

我可以把一個提示爲整個網格,但沒有找到一種方法,把特定網格單元。

更具體地說,我如何從網格單元中檢索信息,以及當光標位於單元格上時,在工具提示中顯示單元格中的某些信息。

回答

0

我認爲最簡單的方法是使用QuickTip類。這一個鼠標懸停偵聽一些容器和示出了用於與qtip屬性存在每個孩子DOM元素尖端。例如:

public class GxtToolTipInGxtGrid implements EntryPoint { 

    public static class Model { 
     private final String name; 

     public Model(String name) { 
      this.name = name; 
     } 

     public String getName() { 
      return name; 
     } 
    } 

    interface ModelProperties extends PropertyAccess<Model> { 
     ValueProvider<Model, String> name(); 
    } 

    private static List<Model> MODELS = Arrays.asList(new Model("John"), new Model("Mary")); 
    private static ModelProperties PROPERTIES = GWT.create(ModelProperties.class); 

    public void onModuleLoad() { 
     ListStore<Model> store = new ListStore<>(Model::getName); 
     store.addAll(MODELS); 

     List<ColumnConfig<Model, ?>> columns = new ArrayList<>(); 
     ColumnConfig<Model, Model> column = new ColumnConfig<>(new IdentityValueProvider<>(), 200, "Name with tooltip"); 
     column.setCell(new SimpleSafeHtmlCell<>(new AbstractSafeHtmlRenderer<Model>() { 
      @Override 
      public SafeHtml render(Model object) { 
       SafeHtmlBuilder sb = new SafeHtmlBuilder(); 
       //QuickTip will use this attribute (qtip) for showing the tip. 
       sb.appendHtmlConstant("<div qtip='" + object.getName() + "'>"); 
       sb.appendEscaped(object.getName()); 
       sb.appendHtmlConstant("</div>"); 
       return sb.toSafeHtml(); 
      } 
     })); 
     columns.add(column); 
     columns.add(new ColumnConfig<>(PROPERTIES.name(), 100, "Name w/o tooltip")); 

     Grid<Model> grid = new Grid<>(store, new ColumnModel<>(columns)); 
     RootPanel.get().add(grid); 
     //Attach QuickTip to grid 
     Scheduler.get().scheduleDeferred(() -> new QuickTip(grid)); 
    } 
} 

但是這是一個靜態的方法。我的意思是,顯示工具提示的決定以及在工具提示中顯示的內容在渲染階段已經做出了決定。但是,如果你需要一個動態的方法,那麼QuickTip模擬的定製可能實行來完成。

而且,看Ext GWT (GXT) tooltip over a grid row。它可能包含其他解決方案。

0
  1. 在網格上註冊Quicktip。

新QuickTip(myGrid)

  • 覆蓋該小區的渲染功能有一個工具提示。

    public void render(Context context, ImageResource value, SafeHtmlBuilder sb){ 
            sb.appendHtmlConstant("<div qtip='TOOLTIPVALUE'>");   
            super.render(context, value, sb); 
            sb.appendHtmlConstant("</div>"); } 
    
  • 相關問題