popupcommon.java

来自「Semantic Web Ontology Editor」· Java 代码 · 共 78 行

JAVA
78
字号
package org.mindswap.swoop.popup;import java.net.URI;import javax.swing.JList;import javax.swing.ListModel;import org.mindswap.swoop.SwoopModel;import org.semanticweb.owl.model.OWLEntity;import org.semanticweb.owl.model.OWLException;/** * @author Aditya Kalyanpur * */public class PopupCommon {	/**	 * Select entity in JList depending on alphabet pressed	 * 	 * @param swoopModel - used to get shortForm of entity to match against alpha	 * @param list - JList containing set of entities	 * @param alpha - alphabet pressed	 */	public static void listSelector(SwoopModel swoopModel, JList list, String alpha) {				// start search from current selected entity, if any		int startPos = list.getSelectedIndex()+1;		int endPos = list.getModel().getSize();		boolean match = findMatch(swoopModel, list, alpha, startPos, endPos);				// if match still not found, and some entity has been selected,		// roll over from end, and conduct search from start to selected entity		if (!match && list.getSelectedIndex()!=-1) {			startPos = 0;			endPos = list.getSelectedIndex();			findMatch(swoopModel, list, alpha, startPos, endPos);		}	}		/*	 * Conduct a search in entity list (JList) from startPos to endPos	 * for any entity whose shortForm (name) matches the alphabet pressed 	 * and select it (return true if match found)	 */	private static boolean findMatch(			SwoopModel swoopModel, 			JList list, 			String alpha,			int startPos,			int endPos) 	{				ListModel model = list.getModel();		boolean match = false;				for (int i=startPos; i<endPos; i++) {						OWLEntity entity = (OWLEntity) model.getElementAt(i);			URI entityURI = null;			try {				entityURI = entity.getURI();			} catch (OWLException e) {				e.printStackTrace();			}			String sf = swoopModel.shortForm(entityURI);			if (sf.indexOf(":")>=0) {				sf = sf.substring(sf.indexOf(":")+1, sf.length());								}			if (sf.toLowerCase().startsWith(alpha)) {				match = true;				list.setSelectedValue(entity, true);				break;			}		}		return match;	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?