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 /** 030 * Changes 031 * 8/15/2005 pvo added two methods getAnnotationFilters and setAnnotationFilters 032 * instead of using the project client information for persisting the 033 * annotation filters that are selected, the knowtator.pprj was updated 034 * with a new instance for storing the selected filters. If the instance 035 * does not exist, then it is created. 036 */ 037 package edu.uchsc.ccp.knowtator; 038 039 /* 040 * ProjectSettings 041 * 042 * Created on October 15, 2004, 8:20 AM 043 */ 044 045 import java.lang.reflect.Method; 046 047 import edu.stanford.smi.protege.model.Project; 048 import edu.stanford.smi.protege.model.SimpleInstance; 049 import edu.uchsc.ccp.knowtator.textsource.TextSourceCollection; 050 051 public class ProjectSettings { 052 053 /** 054 * Records the most recent type of TextSourceCollection (tsc) used by this 055 * project. 056 */ 057 public static final String PROJECT_RECENT_TSC = new String("PROJECT_RECENT_TSC"); 058 059 public static final String PROJECT_RECENT_TSC_INDEX = new String("PROJECT_RECENT_TSC_INDEX"); 060 061 public static final String SHOW_INSTANCES = new String("SHOW_INSTANCES"); 062 063 public static final String DEFAULT_TOKEN_REGEX = new String("\\W+"); 064 065 public static final String ACTIVE_CONFIGURATION = new String("ACTIVE_CONFIGURATION"); 066 067 public static boolean getShowInstances(Project project) { 068 Object showInstances = project.getClientInformation(SHOW_INSTANCES); 069 if (showInstances == null || !(showInstances instanceof Boolean)) 070 return false; 071 return ((Boolean) showInstances).booleanValue(); 072 } 073 074 public static void setShowInstances(Project project, boolean showInstances) { 075 project.setClientInformation(SHOW_INSTANCES, new Boolean(showInstances)); 076 } 077 078 public static TextSourceCollection getRecentTextSourceCollection(Project project) { 079 /** 080 *call static method getProjectRecentTextSourceCollection on TSC 081 */ 082 try { 083 TextSourceCollection tsc; 084 String tscClassName = (String) project.getClientInformation(PROJECT_RECENT_TSC); 085 if (tscClassName != null) { 086 Class tscClass = Class.forName(tscClassName); 087 Method tscMethod = tscClass.getMethod("open", new Class[] { Project.class }); 088 tsc = (TextSourceCollection) tscMethod.invoke(null, new Object[] { project }); 089 return tsc; 090 } 091 } catch (Exception exception) { 092 exception.printStackTrace(); 093 } 094 return null; 095 } 096 097 public static void setRecentTextSourceCollection(Project project, TextSourceCollection tsc) { 098 project.setClientInformation(ProjectSettings.PROJECT_RECENT_TSC, tsc.getClass().getName()); 099 tsc.save(project); 100 } 101 102 public static int getRecentTextSourceCollectionIndex(Project project) { 103 Integer recentIndex = (Integer) project.getClientInformation(PROJECT_RECENT_TSC_INDEX); 104 105 if (recentIndex == null) { 106 return 0; 107 } 108 return recentIndex; 109 } 110 111 public static void setRecentTextSourceCollectionIndex(Project project, int recentIndex) { 112 project.setClientInformation(PROJECT_RECENT_TSC_INDEX, new Integer(recentIndex)); 113 } 114 115 public static SimpleInstance getActiveConfiguration(Project project) { 116 return (SimpleInstance) project.getClientInformation(ACTIVE_CONFIGURATION); 117 } 118 119 public static void setActiveConfiguration(Project project, SimpleInstance configurationInstance) { 120 project.setClientInformation(ACTIVE_CONFIGURATION, configurationInstance); 121 } 122 123 // public void setAnnotationPicker 124 }