001 /*
002 * The contents of this file are subject to the Mozilla Public
003 * License Version 1.1 (the "License"); you may not use this file
004 * except in compliance with the License. You may obtain a copy of
005 * the License at http://www.mozilla.org/MPL/
006 *
007 * Software distributed under the License is distributed on an "AS
008 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
009 * implied. See the License for the specific language governing
010 * rights and limitations under the License.
011 *
012 * The Original Code is Knowtator.
013 *
014 * The Initial Developer of the Original Code is University of Colorado.
015 * Copyright (C) 2005 - 2008. All Rights Reserved.
016 *
017 * Knowtator was developed by the Center for Computational Pharmacology
018 * (http://compbio.uchcs.edu) at the University of Colorado Health
019 * Sciences Center School of Medicine with support from the National
020 * Library of Medicine.
021 *
022 * Current information about Knowtator can be obtained at
023 * http://knowtator.sourceforge.net/
024 *
025 * Contributor(s):
026 * Philip V. Ogren <philip@ogren.info> (Original Author)
027 */
028
029 package edu.uchsc.ccp.knowtator.util;
030
031 import java.util.ArrayList;
032 import java.util.Collection;
033 import java.util.Iterator;
034 import java.util.List;
035
036 import edu.stanford.smi.protege.model.Cls;
037 import edu.stanford.smi.protege.model.Project;
038 import edu.stanford.smi.protege.model.SimpleInstance;
039 import edu.stanford.smi.protege.model.Slot;
040 import edu.stanford.smi.protege.widget.ClsWidget;
041 import edu.stanford.smi.protege.widget.SlotWidget;
042
043 public class ProtegeUtil {
044
045 /**
046 * It seems like there should be a better way of accomplishing this. If you
047 * have suggestions please send them to me!
048 *
049 * @param simpleInstances
050 */
051 public static Collection<SimpleInstance> castSimpleInstances(Collection simpleInstances) {
052 // return Collections.checkedCollection(simpleInstances,
053 // SimpleInstance.class);
054 List<SimpleInstance> returnValues = new ArrayList<SimpleInstance>();
055 Iterator simpleInstancesIt = simpleInstances.iterator();
056 while (simpleInstancesIt.hasNext()) {
057 returnValues.add((SimpleInstance) simpleInstancesIt.next());
058 }
059 return returnValues;
060 }
061
062 public static Collection<String> castStrings(Collection strings) {
063 List<String> returnValues = new ArrayList<String>();
064 Iterator stringsIt = strings.iterator();
065 while (stringsIt.hasNext()) {
066 returnValues.add((String) stringsIt.next());
067 }
068 return returnValues;
069 }
070
071 public static String getSlotLabel(Cls cls, Slot slot, Project project) {
072 String slotLabel = null;
073 try {
074 ClsWidget clsWidget = project.getDesignTimeClsWidget(cls);
075 if (clsWidget != null) {
076 SlotWidget slotWidget = clsWidget.getSlotWidget(slot);
077 if (slotWidget != null)
078 slotLabel = slotWidget.getLabel();
079 }
080 } catch (Exception e) {
081 e.printStackTrace();
082 }
083
084 if (slotLabel != null)
085 return slotLabel;
086 else
087 return slot.getBrowserText();
088
089 }
090 }