/* * Copyright [1999-2015] Wellcome Trust Sanger Institute and the EMBL-European Bioinformatics Institute * Copyright [2016-2017] EMBL-European Bioinformatics Institute * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.ensembl.healthcheck.eg_gui; import java.awt.event.MouseEvent; import javax.swing.JList; import org.ensembl.healthcheck.testcase.EnsTestCase; /** * * <p> * A JList for lists of tests. * </p> * * @author mnuhn * */ public class TestClassList extends JList { /** * Determines which kind of tooltip help will be shown. */ protected TestClassListToolTipType testClassListToolTipType; public TestClassListToolTipType getTestClassListToolTipType() { return testClassListToolTipType; } public void setTestClassListToolTipType( TestClassListToolTipType testClassListToolTipType) { this.testClassListToolTipType = testClassListToolTipType; } public static enum TestClassListToolTipType { CLASS, DESCRIPTION }; public TestClassList(TestClassListToolTipType testClassListToolTipType) { this(); setTestClassListToolTipType(testClassListToolTipType); } public TestClassList() { super(new TestClassListModel()); } public String getToolTipText(MouseEvent e) { int index = locationToIndex(e.getPoint()); if (-1 < index) { Class<? extends EnsTestCase> item = (Class<? extends EnsTestCase>) ( (TestClassListItem) getModel().getElementAt(index) ).getTestClass(); if (testClassListToolTipType==TestClassListToolTipType.DESCRIPTION) { String tooltiptext = ""; EnsTestCase etc = null; tooltiptext = "Couldn't get a description for this test."; try { etc = item.newInstance(); tooltiptext = etc.getDescription(); } catch (InstantiationException e1) { e1.printStackTrace(); } catch (IllegalAccessException e1) { e1.printStackTrace(); } return tooltiptext; } if (testClassListToolTipType==TestClassListToolTipType.CLASS) { return item.getCanonicalName(); } } return ""; } }