亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dynatablewidget.java

?? netbeans開發(fā)gwt程式的插件
?? JAVA
字號:
/* * Copyright 2006 Google Inc. *  * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at *  * http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */package com.google.gwt.sample.dynatable.client;import com.google.gwt.sample.dynatable.client.DynaTableDataProvider.RowDataAcceptor;import com.google.gwt.user.client.rpc.InvocationException;import com.google.gwt.user.client.ui.Button;import com.google.gwt.user.client.ui.ClickListener;import com.google.gwt.user.client.ui.Composite;import com.google.gwt.user.client.ui.DialogBox;import com.google.gwt.user.client.ui.DockPanel;import com.google.gwt.user.client.ui.Grid;import com.google.gwt.user.client.ui.HTML;import com.google.gwt.user.client.ui.HasAlignment;import com.google.gwt.user.client.ui.HorizontalPanel;import com.google.gwt.user.client.ui.VerticalPanel;import com.google.gwt.user.client.ui.Widget;/** * A composite Widget that implements the main interface for the dynamic table, * including the data table, status indicators, and paging buttons. */public class DynaTableWidget extends Composite {  /**   * A dialog box for displaying an error.   */  private static class ErrorDialog extends DialogBox implements ClickListener {    private HTML body = new HTML("");    public ErrorDialog() {      setStylePrimaryName("DynaTable-ErrorDialog");      Button closeButton = new Button("Close", this);      VerticalPanel panel = new VerticalPanel();      panel.setSpacing(4);      panel.add(body);      panel.add(closeButton);      panel.setCellHorizontalAlignment(closeButton, VerticalPanel.ALIGN_RIGHT);      setWidget(panel);    }    public String getBody() {      return body.getHTML();    }    public void onClick(Widget sender) {      hide();    }    public void setBody(String html) {      body.setHTML(html);    }  }  private class NavBar extends Composite implements ClickListener {    public final DockPanel bar = new DockPanel();    public final Button gotoFirst = new Button("&lt;&lt;", this);    public final Button gotoNext = new Button("&gt;", this);    public final Button gotoPrev = new Button("&lt;", this);    public final HTML status = new HTML();    public NavBar() {      initWidget(bar);      bar.setStyleName("navbar");      status.setStyleName("status");      HorizontalPanel buttons = new HorizontalPanel();      buttons.add(gotoFirst);      buttons.add(gotoPrev);      buttons.add(gotoNext);      bar.add(buttons, DockPanel.EAST);      bar.setCellHorizontalAlignment(buttons, DockPanel.ALIGN_RIGHT);      bar.add(status, DockPanel.CENTER);      bar.setVerticalAlignment(DockPanel.ALIGN_MIDDLE);      bar.setCellHorizontalAlignment(status, HasAlignment.ALIGN_RIGHT);      bar.setCellVerticalAlignment(status, HasAlignment.ALIGN_MIDDLE);      bar.setCellWidth(status, "100%");      // Initialize prev & first button to disabled.      //      gotoPrev.setEnabled(false);      gotoFirst.setEnabled(false);    }    public void onClick(Widget sender) {      if (sender == gotoNext) {        startRow += getDataRowCount();        refresh();      } else if (sender == gotoPrev) {        startRow -= getDataRowCount();        if (startRow < 0) {          startRow = 0;        }        refresh();      } else if (sender == gotoFirst) {        startRow = 0;        refresh();      }    }  }  private class RowDataAcceptorImpl implements RowDataAcceptor {    public void accept(int startRow, String[][] data) {      int destRowCount = getDataRowCount();      int destColCount = grid.getCellCount(0);      assert (data.length <= destRowCount) : "Too many rows";      int srcRowIndex = 0;      int srcRowCount = data.length;      int destRowIndex = 1; // skip navbar row      for (; srcRowIndex < srcRowCount; ++srcRowIndex, ++destRowIndex) {        String[] srcRowData = data[srcRowIndex];        assert (srcRowData.length == destColCount) : " Column count mismatch";        for (int srcColIndex = 0; srcColIndex < destColCount; ++srcColIndex) {          String cellHTML = srcRowData[srcColIndex];          grid.setText(destRowIndex, srcColIndex, cellHTML);        }      }      // Clear remaining table rows.      //      boolean isLastPage = false;      for (; destRowIndex < destRowCount + 1; ++destRowIndex) {        isLastPage = true;        for (int destColIndex = 0; destColIndex < destColCount; ++destColIndex) {          grid.clearCell(destRowIndex, destColIndex);        }      }      // Synchronize the nav buttons.      navbar.gotoNext.setEnabled(!isLastPage);      navbar.gotoFirst.setEnabled(startRow > 0);      navbar.gotoPrev.setEnabled(startRow > 0);      // Update the status message.      //      setStatusText((startRow + 1) + " - " + (startRow + srcRowCount));    }    public void failed(Throwable caught) {      setStatusText("Error");      if (errorDialog == null) {        errorDialog = new ErrorDialog();      }      if (caught instanceof InvocationException) {        errorDialog.setText("An RPC server could not be reached");        errorDialog.setBody(NO_CONNECTION_MESSAGE);      } else {        errorDialog.setText("Unexcepted Error processing remote call");        errorDialog.setBody(caught.getMessage());      }      errorDialog.center();    }  }  private static final String NO_CONNECTION_MESSAGE = "<p>The DynaTable example uses a <a href=\"http://code.google.com/"      + "webtoolkit/documentation/com.google.gwt.doc.DeveloperGuide."      + "RemoteProcedureCalls.html\" target=\"_blank\">Remote Procedure Call</a> "      + "(RPC) to request data from the server.  In order for the RPC to "      + "successfully return data, the server component must be available.</p>"      + "<p>If you are running this demo from compiled code, the server "      + "component may not be available to respond to the RPC requests from "      + "DynaTable.  Try running DynaTable in hosted mode to see the demo "      + "in action.</p> "      + "<p>Click on the Remote Procedure Call link above for more information "      + "on GWT's RPC infrastructure.";  private final RowDataAcceptor acceptor = new RowDataAcceptorImpl();  private final Grid grid = new Grid();  private final NavBar navbar = new NavBar();  private ErrorDialog errorDialog = null;  private final DockPanel outer = new DockPanel();  private final DynaTableDataProvider provider;  private int startRow = 0;  public DynaTableWidget(DynaTableDataProvider provider, String[] columns,      String[] columnStyles, int rowCount) {    if (columns.length == 0) {      throw new IllegalArgumentException(          "expecting a positive number of columns");    }    if (columnStyles != null && columns.length != columnStyles.length) {      throw new IllegalArgumentException("expecting as many styles as columns");    }    this.provider = provider;    initWidget(outer);    grid.setStyleName("table");    outer.add(navbar, DockPanel.NORTH);    outer.add(grid, DockPanel.CENTER);    initTable(columns, columnStyles, rowCount);    setStyleName("DynaTable-DynaTableWidget");  }  public void clearStatusText() {    navbar.status.setHTML("&nbsp;");  }  public void refresh() {    // Disable buttons temporarily to stop the user from running off the end.    //    navbar.gotoFirst.setEnabled(false);    navbar.gotoPrev.setEnabled(false);    navbar.gotoNext.setEnabled(false);    setStatusText("Please wait...");    provider.updateRowData(startRow, grid.getRowCount() - 1, acceptor);  }  public void setRowCount(int rows) {    grid.resizeRows(rows);  }  public void setStatusText(String text) {    navbar.status.setText(text);  }  private int getDataRowCount() {    return grid.getRowCount() - 1;  }  private void initTable(String[] columns, String[] columnStyles, int rowCount) {    // Set up the header row. It's one greater than the number of visible rows.    //    grid.resize(rowCount + 1, columns.length);    for (int i = 0, n = columns.length; i < n; i++) {      grid.setText(0, i, columns[i]);      if (columnStyles != null) {        grid.getCellFormatter().setStyleName(0, i, columnStyles[i] + " header");      }    }  }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线不卡a资源高清| 国产精品网站在线| 精品国产乱码久久久久久夜甘婷婷 | 免费在线观看视频一区| av不卡在线播放| 精品伦理精品一区| 亚洲成av人综合在线观看| 成人h动漫精品一区二区| 91麻豆精品国产91久久久 | 亚洲精品一区二区三区精华液| 亚洲综合免费观看高清在线观看| 懂色av一区二区夜夜嗨| 国产日韩精品一区二区浪潮av| 日本高清视频一区二区| 亚洲成av人片在线| 国产精品热久久久久夜色精品三区| 高清成人免费视频| 男女激情视频一区| 亚洲男同1069视频| 国产精品午夜久久| 久久久精品黄色| 成人免费看的视频| 欧美三级中文字| 亚洲午夜视频在线| 欧美午夜精品一区二区蜜桃| 国产精品久久久久婷婷二区次| 国产一区二区三区久久悠悠色av| 日韩欧美久久一区| 久久激情五月激情| 精品福利在线导航| 国产精品综合一区二区三区| 精品国产一区二区亚洲人成毛片 | 99国产欧美另类久久久精品| 国产日产欧美一区二区三区 | 久久成人18免费观看| 91精品国产欧美一区二区18| 日韩成人av影视| 日韩久久久精品| 国产一区二区网址| 国产精品免费久久久久| av午夜精品一区二区三区| 国产精品美女久久福利网站| 99精品国产99久久久久久白柏| 亚洲精品网站在线观看| 成人国产精品免费| 国产目拍亚洲精品99久久精品| 久久国产福利国产秒拍| 国产亚洲精品资源在线26u| 激情欧美一区二区三区在线观看| 久久久久国产一区二区三区四区| 国产精品主播直播| 成人免费在线视频| 欧美三级在线看| 视频在线观看国产精品| 久久婷婷成人综合色| 波多野结衣精品在线| 欧美日韩一区二区三区四区五区| 欧美色视频一区| 国产精品国产三级国产有无不卡| 国产精品国产自产拍高清av| 另类专区欧美蜜桃臀第一页| 日韩精品一区二区三区老鸭窝| 日韩欧美在线综合网| 国产精品狼人久久影院观看方式| 一区二区三区美女| 国内精品不卡在线| 国产丝袜美腿一区二区三区| 国产精品69久久久久水密桃| 亚洲女同ⅹxx女同tv| 日韩欧美国产一区二区三区| 高清shemale亚洲人妖| 亚洲国产欧美在线| 欧美精彩视频一区二区三区| 欧美高清www午色夜在线视频| 国产一区二区三区久久久 | 色伊人久久综合中文字幕| 午夜激情一区二区三区| 国产精品久久三区| 欧美一区二区三区在线视频| 91美女在线看| 国产精品1024久久| 午夜精品福利在线| 亚洲视频一二三| 26uuu精品一区二区| 欧美日韩在线观看一区二区| 成人av网址在线| 国产一区二区按摩在线观看| 午夜精品久久一牛影视| 中文乱码免费一区二区| 亚洲午夜免费福利视频| 亚洲国产精品一区二区www在线| 欧美大尺度电影在线| 日韩一区二区在线免费观看| 国产成人99久久亚洲综合精品| 午夜视频一区在线观看| 亚洲免费毛片网站| 亚洲国产精品精华液ab| 精品日产卡一卡二卡麻豆| 欧美三级蜜桃2在线观看| 99久久国产综合精品女不卡| 国产成人亚洲综合色影视| 日韩精品91亚洲二区在线观看 | www.日韩在线| 国产ts人妖一区二区| 国产主播一区二区三区| 久久精品噜噜噜成人88aⅴ| 99re这里只有精品首页| 亚洲欧美成aⅴ人在线观看| 精品乱码亚洲一区二区不卡| 国产丶欧美丶日本不卡视频| 一区二区三区在线视频观看| 欧美日韩一区二区电影| 丰满少妇在线播放bd日韩电影| 亚洲精品成人a在线观看| 日韩精品一区二区三区中文不卡| 国产成人免费在线| 美女视频一区二区三区| 欧美国产日韩一二三区| 粉嫩av亚洲一区二区图片| 国产在线不卡视频| 国产ts人妖一区二区| 不卡av在线网| 91捆绑美女网站| 91蝌蚪porny| 欧美亚洲动漫另类| 精品视频一区 二区 三区| 欧美日本韩国一区| 精品捆绑美女sm三区| 国产日本欧美一区二区| 欧美激情一区二区三区在线| 1024亚洲合集| 亚洲成人黄色小说| 日韩二区三区四区| 国产福利一区在线| 91啪亚洲精品| 欧美另类一区二区三区| 2017欧美狠狠色| 最新热久久免费视频| 一区二区三区四区不卡在线| 久久精品国产**网站演员| 国产一区二区视频在线播放| www.欧美色图| 欧美嫩在线观看| 久久综合久色欧美综合狠狠| 自拍偷拍亚洲综合| 日韩av高清在线观看| 国产99久久久精品| 欧美精品丝袜中出| 国产欧美视频一区二区| 亚洲成人激情社区| 国产成人高清视频| 欧美理论片在线| 欧美国产精品一区二区| 午夜私人影院久久久久| 成人午夜免费av| 欧美二区三区91| 中文字幕中文字幕中文字幕亚洲无线| 亚洲图片欧美视频| 国产·精品毛片| 7777精品伊人久久久大香线蕉超级流畅 | 国产精品第一页第二页第三页| 亚洲国产视频直播| 国产精品嫩草99a| 麻豆中文一区二区| 欧美日产在线观看| 国产suv精品一区二区883| 欧美精品日韩综合在线| 亚洲免费观看高清完整版在线观看熊| 日韩中文欧美在线| 欧美亚洲一区三区| 久久精品欧美一区二区三区不卡 | 国产真实乱对白精彩久久| 9色porny自拍视频一区二区| 国产亚洲精品精华液| 亚洲男同1069视频| 毛片av一区二区| 欧美区视频在线观看| 亚洲免费av高清| 成人精品电影在线观看| 日韩美女一区二区三区| 午夜精品久久久久影视| 色综合天天综合网天天看片| 欧美高清在线一区二区| 国产最新精品精品你懂的| 制服丝袜亚洲精品中文字幕| 亚洲精品菠萝久久久久久久| 97se亚洲国产综合自在线不卡| 国产亚洲成aⅴ人片在线观看| 久久精品久久精品| 777午夜精品免费视频| 亚洲午夜电影在线观看| 色播五月激情综合网| 国产精品伦一区二区三级视频| 国产在线精品一区二区三区不卡 | 一区二区三区免费看视频| 91亚洲永久精品| 亚洲欧美电影院| 欧美性生活大片视频| 午夜精品久久久久久久| 欧美精品一级二级|