| 1 21 22 package org.armedbear.j; 23 24 public final class ListRegistersFormatter extends Formatter 25 { 26 private static final byte FORMAT_TEXT = 0; 27 private static final byte FORMAT_REGISTER_HEADER = 1; 28 private static final byte FORMAT_REGISTER_NAME = 2; 29 private static final byte FORMAT_ELLIPSIS = 3; 30 31 public ListRegistersFormatter(Buffer buffer) 32 { 33 this.buffer = buffer; 34 } 35 36 public LineSegmentList formatLine(Line line) 37 { 38 if (line instanceof ListRegistersLine) 39 return formatStatusLine((ListRegistersLine)line); 40 return formatTextLine(line); 41 } 42 43 private LineSegmentList formatStatusLine(ListRegistersLine line) 44 { 45 clearSegmentList(); 46 final String text = getDetabbedText(line); 47 if (text.startsWith("Register ")) { 48 addSegment(text, 0, 9, FORMAT_REGISTER_HEADER); 49 addSegment(text, 9, FORMAT_REGISTER_NAME); 50 } else 51 addSegment(text, FORMAT_ELLIPSIS); 52 return segmentList; 53 } 54 55 private LineSegmentList formatTextLine(Line line) 56 { 57 clearSegmentList(); 58 final String text = getDetabbedText(line); 59 addSegment(text, FORMAT_TEXT); 60 return segmentList; 61 } 62 63 public FormatTable getFormatTable() 64 { 65 if (formatTable == null) { 66 formatTable = new FormatTable("ListRegistersMode"); 67 formatTable.addEntryFromPrefs(FORMAT_TEXT, "text"); 68 formatTable.addEntryFromPrefs(FORMAT_REGISTER_HEADER, "registerHeader", "keyword"); 69 formatTable.addEntryFromPrefs(FORMAT_REGISTER_NAME, "registerName", "function"); 70 formatTable.addEntryFromPrefs(FORMAT_ELLIPSIS, "disabled"); 71 } 72 return formatTable; 73 } 74 } 75 | Popular Tags |