/*****************************************************************************
* Copyright (c) 2008 Bioclipse Project
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
*****************************************************************************/
package net.bioclipse.spectrum.editor;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.swt.graphics.Image;
import org.xmlcml.cml.base.CMLElement;
import org.xmlcml.cml.element.CMLConditionList;
import org.xmlcml.cml.element.CMLMetadata;
import org.xmlcml.cml.element.CMLMetadataList;
import org.xmlcml.cml.element.CMLScalar;
import org.xmlcml.cml.element.CMLSubstance;
import org.xmlcml.cml.element.CMLSubstanceList;
public class JCampLabelProvider implements ITableLabelProvider {
public JCampLabelProvider() {
}
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
public String getColumnText(Object element, int columnIndex) {
if (element instanceof CMLMetadataList) {
if (columnIndex == 0) {
String title = "Metadata List";
return title;
} else {
return null;
}
}
else if (element instanceof CMLConditionList) {
if (columnIndex == 0) {
String title = "Condition List";
return title;
} else {
return null;
}
}
else if (element instanceof CMLSubstanceList) {
if (columnIndex == 0) {
String title = "Substance List";
return title;
} else {
return null;
}
}
else if (element instanceof CMLMetadata) {
if (columnIndex == 0) {
CMLMetadata metadata = (CMLMetadata) element;
if (metadata.getTitle() != null
&& metadata.getTitle().length() > 0) {
return (metadata.getTitle());
} else if (metadata.getName() != null) {
String name = metadata.getName();
int a = name.indexOf(":");
return name.substring(a + 1, name.length());
}
//if no name or title set to unknown
else {
return "unknown";
}
}
else if (columnIndex == 1) {
return ((CMLMetadata) element).getContent();
} else {
return null;
}
}
else if (element instanceof CMLScalar) {
if (columnIndex == 0) {
CMLScalar scalar = (CMLScalar) element;
if (scalar.getTitle() != null
&& scalar.getTitle().length() > 0) {
return scalar.getTitle();
} else {
String name = scalar.getId();
if (name == null) {
name = scalar.getDictRef();
}
int a = name.indexOf(":");
return name.substring(a + 1, name.length());
}
}
else if (columnIndex == 1) {
if (element instanceof CMLScalar) {
return ((CMLScalar)element).getValue();
}
else {
return null;
}
}
else {
return null;
}
}
else if (element instanceof CMLSubstance) {
if (columnIndex == 0) {
CMLSubstance substance = (CMLSubstance) element;
if (substance.getTitle() != null
&& substance.getTitle().length() > 0) {
return substance.getTitle();
} else {
String name = substance.getId();
if (name == null) {
name = substance.getDictRef();
}
int a = name.indexOf(":");
return name.substring(a + 1, name.length());
}
}
else if (columnIndex == 1) {
if (element instanceof CMLSubstance) {
return ((CMLSubstance)element).getValue();
}
else {
return null;
}
}
else {
return null;
}
}
else {
System.out.println("should not happen: " + ((CMLElement)element).toXML());
return null;
}
}
public void addListener(ILabelProviderListener listener) {
}
public void dispose() {
}
public boolean isLabelProperty(Object element, String property) {
return false;
}
public void removeListener(ILabelProviderListener listener) {
}
}