Project: bioclipse.speclipse
package net.bioclipse.spectrum.graph2d;
 
import java.awt.Color; 
import java.awt.Font; 
import java.awt.Frame; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.List; 
import java.util.StringTokenizer; 
 
import javax.xml.parsers.ParserConfigurationException; 
 
import org.eclipse.core.runtime.IProgressMonitor; 
import org.eclipse.swt.SWT; 
import org.eclipse.swt.awt.SWT_AWT; 
import org.eclipse.swt.layout.FillLayout; 
import org.eclipse.swt.widgets.Composite; 
import org.eclipse.ui.IEditorInput; 
import org.eclipse.ui.IEditorSite; 
import org.eclipse.ui.PartInitException; 
import org.eclipse.ui.part.EditorPart; 
import org.xml.sax.SAXException; 
import org.xmlcml.cml.element.CMLPeak; 
import org.xmlcml.cml.element.CMLSpectrum; 
 
public class Spectrum2DDisplay extends EditorPart { 
  
 CMLSpectrum spectrum; 
 Frame fileTableFrame; 
 private boolean isDirty=false
  
 @Override  
 public void createPartControl(Composite parent) { 
  Composite contChartcomposite = new Composite(parent, SWT.EMBEDDED); 
  FillLayout layout = new FillLayout(SWT.VERTICAL); 
  contChartcomposite.setLayout(layout); 
  fileTableFrame = SWT_AWT.new_Frame(contChartcomposite); 
  fileTableFrame.add(this.makeGraph()); 
 
  
 public Graph2D makeGraph(){ 
       Graph2D graph; 
       DataSet data1; 
       Axis    xaxis; 
       Axis    yaxis_left; 
        int i; 
        int j; 
        List<CMLPeak> peaks = spectrum.getPeakListElements().get(0).getPeakChildren(); 
        double data[] = new double[2*peaks.size()]; 
        graph = new Graph2D(); 
        graph.drawzero = false
        graph.drawgrid = false
        graph.setDataBackground(Color.WHITE); 
        graph.setGraphBackground(Color.WHITE); 
        try { 
           graph.setMarkers(new Markers()); 
        } catch(Exception e) { 
           System.out.println("Failed to create Marker URL!"); 
        } 
        for(i=j=0; i<peaks.size(); i++,j+=2) { 
         data[j]=peaks.get(i).getXValue();   
         data[j+1]=peaks.get(i).getYValue(); 
        } 
        data1 = graph.loadDataSet(data,peaks.size()); 
        data1.linestyle = 0
        data1.marker    = 1
        data1.markerscale = 1.5
        data1.markercolor = new Color(0,0,255); 
        xaxis = graph.createAxis(Axis.BOTTOM); 
        xaxis.attachDataSet(data1); 
        xaxis.setTitleFont(new Font("TimesRoman",Font.PLAIN,20)); 
        xaxis.setLabelFont(new Font("Helvetica",Font.PLAIN,15)); 
        yaxis_left = graph.createAxis(Axis.LEFT); 
        yaxis_left.attachDataSet(data1); 
        yaxis_left.setTitleFont(new Font("TimesRoman",Font.PLAIN,20)); 
        yaxis_left.setLabelFont(new Font("Helvetica",Font.PLAIN,15)); 
        yaxis_left.setTitleColor( new Color(0,0,255) ); 
        return graph; 
 
 
 @Override 
 public void doSave(IProgressMonitor arg0) { 
  // this is never used, since saving is done via text editor  
   
 
 
 @Override 
 public void doSaveAs() { 
  // this is never used, since saving is done via text editor  
   
 
 
 @Override 
 public void init(IEditorSite site, IEditorInput input) 
   throws PartInitException { 
  this.setSite(site); 
  this.setInput(input); 
   
 
 
 
 @Override 
 public boolean isDirty() { 
  return isDirty; 
 
 
 @Override 
 public boolean isSaveAsAllowed() { 
  return false
 
 
 @Override 
 public void setFocus() { 
 
 
  
 public void setSpectrumItem(CMLSpectrum spectrumItem) throws ParserConfigurationException, SAXException, IOException{ 
  if(spectrumItem!=null){ 
   this.spectrum=spectrumItem; 
  
 
  
  
    public void setDirty(boolean bool) { 
        this.isDirty = bool; 
        firePropertyChange(PROP_DIRTY); 
    } 
 
 public void update() { 
  fileTableFrame.remove(fileTableFrame.getComponent(0)); 
  fileTableFrame.add(this.makeGraph()); 
  fileTableFrame.validate(); 
 
}