<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>

<!--
	Licensed to the Apache Software Foundation (ASF) under one
	or more contributor license agreements.  See the NOTICE file
	distributed with this work for additional information
	regarding copyright ownership.  The ASF licenses this file
	to you 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.    
-->

<plugin>
	<extension point="org.eclipse.ui.views">
	
	<category id="org.apache.opennlp.corpus_server.caseditor.views" name="Corpus Server" />
	
	<view id="org.apache.opennlp.corpus_server.caseditor.TaskQueueView"
		name="Task Queue"
		class="org.apache.opennlp.corpus_server.caseditor.TaskQueueView"
		category="org.apache.opennlp.corpus_server.caseditor.views" />	
	
	<view id="org.apache.opennlp.corpus_server.caseditor.CorpusExplorerView"
		name="Corpus Explorer"
		class="org.apache.opennlp.corpus_server.caseditor.CorpusExplorerView"
		category="org.apache.opennlp.corpus_server.caseditor.views" />	
	</extension>
  
 	<extension point="org.apache.uima.caseditor.editor">
		<provider
			id="org.apache.opennlp.corpus_server.caseditor.DefaultCasDocumentProvider"
			class="org.apache.opennlp.corpus_server.caseditor.DefaultCasDocumentProvider"
			inputType="org.apache.opennlp.corpus_server.caseditor.CorpusServerCasEditorInput">
		</provider>
	</extension>
</plugin>
