Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[gef3d-dev] we need to display three different editparts on one root Editpart layer


We have a  problem  that is  " we need to display three different editparts on one root Editpart layer ".

 What we have is a model element that has 3 different sets of children(Root Model--Genotype Model, LinkageMap Model, QTL Model) - one that  should be displayed on top of the layer of the model's figure, another set that should be displayed in the middle part of the same layer and a third set to be displayed in the bottom part of the same layer. 

code description:

RootModel: Having setters & getters of all the 3 Submodels i.e Genotype Model, LinkageMap Model, QTL Model.

RootEditPart: 

public class RootEditPart extends AbstractGraphicalEditPart {
	protected IFigure createFigure() {
		FreeformLayer lyr = new FreeformLayer();
		lyr.setLayoutManager(new XYLayout());
		return lyr;		
	}
	protected List getModelChildren() {		
		List result =new ArrayList();
		
		if((!RootModel.getRootModel().getLinkagemap().isEmpty()) && ((RootModel.getRootModel().getQtl().isEmpty()))){
			result= ((RootModel)getModel()).getLinkagemap();			
		} if((!RootModel.getRootModel().getQtl().isEmpty())){			
			result=  ((RootModel)getModel()).getQtl();			
		}
		if((!RootModel.getRootModel().getGenotype().isEmpty())){			
			result= ((LinkageMap)getModel()).getChromosomes();
		}		
		return result;
	}	
	public EditPart createChild(Object model){
		EditPart eP = null;		
		if(model instanceof LinkageMap){
			eP = new LinkageEditPart();
		}if(model instanceof QTL){			
			eP = new QTLEditPart();
		}
		if(model instanceof Genotype){
			eP = new GenotypeEditpart();		
		}
		eP.setModel(model);
		return eP;
	}
}

After going to LinkageEditpart 

LinkageEditPart:

public class LinkageEditPart extends  AbstractGraphicalEditPart {	

	protected IFigure createFigure() {	
		FreeformLayer lyr = new FreeformLayer();
		lyr.setLayoutManager(new XYLayout());		
		return lyr;
	}
	protected List getModelChildren() {
		return ((LinkageMap)getModel()).getChromosomes();		
	}	
	public EditPart createChild(Object model){
		EditPart eP;
		eP = new ChromosomeEditPart();		
		eP.setModel(model);
		return eP;
	}	
}

QTLEditPart(),GenotypeEditpart(): same as above class.


Up to now it is working fine, but after uploading another file, i.e it will go to QTLEditPart() or GenotypeEditpart() then the previous Editpart display is getting overwritten  by the new uploaded data.

Actually we want all the data from 3 uploads to be displayed one after the other on one layer i.e in RootEditPart layer.


Back to the top