All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.fife.tmm.WordsTableModel Maven / Gradle / Ivy

Go to download

An application to easily create syntax highlighting for custom languages in RSyntaxTextArea.

The newest version!
package org.fife.tmm;

import java.util.List;

import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;


/**
 * Table model for WordsTable instances.
 *
 * @author Robert Futrell
 * @version 1.0
 */
class WordsTableModel extends DefaultTableModel {

	private TableRowSorter sorter;


	WordsTableModel() {
		sorter = new TableRowSorter<>(this);
	}


	public void addWords(List words) {
		if (words!=null) {
			for (String word : words) {
				addRow(new String[] { word });
			}
		}
	}


	private void clear() {
		for (int i=getRowCount()-1; i>=0; i--) {
			removeRow(0);
		}
	}


	public TableRowSorter getRowSorter() {
		return sorter;
	}


	/**
	 * Prevents cells from being edited.
	 */
	@Override
	public boolean isCellEditable(int row, int col) {
		return false;
	}


	@Override
	public void removeRow(int row) {
		// Since we've been sorted, hack it so correct row is removed.
		row = sorter.convertRowIndexToModel(row);
		super.removeRow(row);
	}


	public void setWords(List words) {
		clear();
		addWords(words);
	}


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy