Math2mat
|
00001 00018 package m2m.frontend.dynamicview.editPart; 00019 00020 import java.beans.PropertyChangeEvent; 00021 import java.util.Vector; 00022 00023 import m2m.frontend.dynamicview.editpolicies.EditLayoutPolicy; 00024 import m2m.frontend.dynamicview.figure.LoopIteratorFigure; 00025 import m2m.frontend.dynamicview.model.GraphicLoopIterator; 00026 import m2m.frontend.dynamicview.model.Node; 00027 00028 import org.eclipse.draw2d.IFigure; 00029 import org.eclipse.gef.EditPolicy; 00030 00031 00032 public class LoopIteratorPart extends AbstractEditPart 00033 { 00038 @Override 00039 protected IFigure createFigure() 00040 { 00041 IFigure figure = new LoopIteratorFigure(); 00042 ((LoopIteratorFigure) figure).addMouseMotionListener(this); 00043 ((LoopIteratorFigure) figure).addMouseListener(this); 00044 return figure; 00045 } 00046 00047 00051 @Override 00052 protected void createEditPolicies() 00053 { 00054 installEditPolicy(EditPolicy.LAYOUT_ROLE, new EditLayoutPolicy()); 00055 } 00056 00057 00061 protected void refreshVisuals() 00062 { 00063 /* Get the figure and the model */ 00064 LoopIteratorFigure figure = (LoopIteratorFigure)getFigure(); 00065 GraphicLoopIterator model = (GraphicLoopIterator)getModel(); 00066 00067 /* Update the figure with the model */ 00068 figure.setBackgroundColor(model.getColorConditionSelected()); 00069 figure.setLayout(model.getLayout()); 00070 figure.setVisible(model.getVisible()); 00071 } 00072 00073 00078 public Vector<Node> getModelChildren() 00079 { 00080 return ((GraphicLoopIterator)getModel()).getChildrenArray(); 00081 } 00082 00083 00088 @Override 00089 public void propertyChange(PropertyChangeEvent evt) 00090 { 00091 if (evt.getPropertyName().equals(Node.LAYOUT)) 00092 refreshVisuals(); 00093 else if(evt.getPropertyName().equals(Node.VISIBLE_COMPONENT)) 00094 refreshVisuals(); 00095 else if(evt.getPropertyName().equals(Node.CHANGE_COLOR)) 00096 refreshVisuals(); 00097 } 00098 }