final void updateList() { Set<TypeColorEntry> entries = TypeColorEntry.fromPainter(this.painter); this.listModel.removeAllElements(); for (TypeColorEntry entry : entries) { this.listModel.addElement(entry); } }
@Override public Component getListCellRendererComponent( JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) { JLabel label = (JLabel) (super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus)); if (value instanceof TypeColorEntry) { TypeColorEntry entry = (TypeColorEntry) value; Token.Type type = entry.getType(); Color color = entry.getColor(); label.setText(Utilities.normalize(type.toString())); if ((type == Token.Type.MATCHED_BRACKET) || (type == Token.Type.UNMATCHED_BRACKET)) { label.setBackground(color); label.setForeground(Color.BLACK); } else { label.setForeground(color); } } return label; }
@Override public int compareTo(TypeColorEntry entry) { return this.getType().compareTo(entry.getType()); }
myjava.gui.syntax.Painter getPainter() { // update painter first this.painter = TypeColorEntry.toPainter(this.painter.getName(), Collections.list(listModel.elements())); return this.painter; }