Package com.baulsupp.less

Source Code of com.baulsupp.less.LessRow

package com.baulsupp.less;

import java.util.List;

import org.apache.log4j.Logger;

import com.baulsupp.curses.list.DisplayRow;
import com.baulsupp.curses.list.TextPanel;
import com.baulsupp.kolja.log.viewer.renderer.TextDisplayRow;
import com.baulsupp.kolja.util.ColouredString;
import com.baulsupp.kolja.util.MultiColourString;

public class LessRow implements DisplayRow {
  public static final Logger logger = Logger.getLogger(LessRow.class);

  private TextDisplayRow row;

  public LessRow(TextDisplayRow row) {
    this.row = row;
  }

  public int getHeight() {
    return row.getHeight();
  }

  public void paint(TextPanel panel, int fromRow, int height, int xPos) {
    List<MultiColourString> lines = row.getLines();
    for (int i = 0; i < height; i++) {
      paintLine(panel, i, xPos, lines.get(i + fromRow));
    }
  }

  private void paintLine(TextPanel panel, int y, int xPos, MultiColourString string) {
    int offset = 0;
   
    // TODO stop when already enough
    for (ColouredString o : string.getColouredStrings()) {
      print(panel.row(y, 1), offset - xPos, o);

      offset += o.length();
    }
  }

  public void print(TextPanel panel, int xPos, ColouredString string) {
    String content = string.toString();

    if (xPos < 0) {
      int skip = Math.abs(xPos);
      if (skip < string.length()) {
        content = content.substring(skip);
        xPos += skip;
      } else {
        return;
      }
    }

    panel.printString(xPos, 0, new ColouredString(string.getColorPair(), content));
  }
}
TOP

Related Classes of com.baulsupp.less.LessRow

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.