Hi all,
        
        
        1. I created a ChromatogramMSD firstly,
                  final TideMSChromatogram tideMSChromatogram = new
          TideMSChromatogram();
        2. and then acquired some spectra from our home-built in
          situ TOF mass spectrometer and added these spectra to the
          tideMSChromatogram. After acquired more than 2 spectra, opened
          (or create if not existed) a ChromatogramEditorMSD editor part
          to display tideMSChromatogram. It's just because
           ChromatogramEditorMSD open a empty ChromatogramMSD will cause
          exceptions.
        
        
        
              for(int i = 0; (i < getSpectraNumber()) &&
          (!stopFlag); i++) {
        		acquireMassSpectrum(tideMSChromatogram,
          writer, i);
        	         if(i
          == 10) {
        			openMSDEditor(tideMSChromatogram);
        		}
        	}
        
        
        
        
        3.  In the method acquireMassSpectrum(tideMSChromatogram,
          writer, i) in step 2, I created scans to hold acquired data
          and added these scans to tideMSChromatogram, and then called
          the fireupdate method of tideMSChromatogram
        
        
        
          		tideMSChromatogram.addScan(scan);
          		try
            {
          
          			tideMSChromatogram.fireUpdate(new
            ChromatogramSelectionMSD(tideMSChromatogram, true));
          		}
            catch(final ChromatogramIsNullException e) {
          			logger.warn(e);
          		}
         
        
        
        The tideMSChromatogram.fireUpdate(new
          ChromatogramSelectionMSD(tideMSChromatogram, true)) statement
          seems awkward. I doubt if the step 3 is the proper way to
          update a chromatogram in the chromatogram's editor? If not,
          what is the proper one?
        
        
        PS:
        In step 2, I used the following codes to create MSD Editor:
        
          		final
            MPart part = MBasicFactory.INSTANCE.createInputPart();
          		part.setElementId(ChromatogramEditorMSD.ID);
          		part.setContributionURI(ChromatogramEditorMSD.CONTRIBUTION_URI);
          		if(chromatogram
            != null) {
          			part.setObject(chromatogram);
          			part.setLabel(chromatogram.getName());
          		}
            else {
          			part.setObject(null);
          			part.setLabel("No
            valid chromatogram");
          		}
          		part.setIconURI(ChromatogramEditorMSD.ICON_URI);
          		part.setTooltip(ChromatogramEditorMSD.TOOLTIP);
          		part.setCloseable(true);
          		final
            MPartStack partStack =
(MPartStack)modelService.find(IPerspectiveAndViewIds.EDITOR_PART_STACK_ID,
            application);
          		partStack.getChildren().add(part);
          		partService.showPart(part,
            PartState.ACTIVATE);
         
        one more question:
                       I created this ChromatogramEditorMSD part
          and shew it, but I could not cast it to ChromatogramEditorMSD
          lately in another way. Excepton occured:
        
          java.lang.ClassCastException:
            org.eclipse.e4.ui.model.application.ui.basic.impl.InputPartImpl
            cannot be cast to
            org.eclipse.chemclipse.ux.extension.msd.ui.editors.ChromatogramEditorMSD
          
         
        How can I convert a Part to the class object which this
          Part's contributionURI points to?