コード例 #1
0
ファイル: CodeViewer.java プロジェクト: unnch/spell-sat
  /**
   * ************************************************************************* Center the table view
   * on the given line. ************************************************************************
   */
  public void showLine(int lineNo, boolean select) {
    if (getGrid().isDisposed()) return;
    int numLines = getGrid().getItemCount();
    if (lineNo > 0 && numLines > lineNo) {
      GridVisibleRange range = getGrid().getVisibleRange();

      int visibleCount = range.getItems().length;

      GridItem first = range.getItems()[0];
      GridItem last = range.getItems()[visibleCount - 1];
      int firstIndex = getGrid().getIndexOfItem(first);
      int lastIndex = getGrid().getIndexOfItem(last);

      int itemToShow = lineNo;
      if (lineNo < firstIndex) {
        itemToShow = lineNo - visibleCount / 2;
      } else if (lineNo > lastIndex) {
        itemToShow = lineNo + visibleCount / 2;
      }

      if (itemToShow < 0) itemToShow = 0;
      else if (itemToShow > numLines) itemToShow = numLines - 1;

      getGrid().showItem(getGrid().getItem(itemToShow));
      if (select) {
        getGrid().deselectAll();
        getGrid().select(lineNo - 1);
      }
    }
  }
コード例 #2
0
ファイル: CodeViewer.java プロジェクト: unnch/spell-sat
  public void forceRefresh() {
    GridVisibleRange range = getGrid().getVisibleRange();

    int visibleCount = range.getItems().length;

    GridItem first = range.getItems()[0];
    GridItem last = range.getItems()[visibleCount - 1];
    int firstIndex = getGrid().getIndexOfItem(first);
    int lastIndex = getGrid().getIndexOfItem(last);

    for (int index = firstIndex; index < lastIndex; index++) {
      ICodeLine line = m_input.getExecutionManager().getLine(index);
      if (line.hasNotifications()) {
        line.calculateSummary();
      }
      update(line, null);
    }
    showLastLine();
  }