package net.ms.designer.editors.componentdetail.editparts; import java.util.ArrayList; import java.util.List; import net.ms.designer.editors.componentdetail.core.ITableContentProvider; import net.ms.designer.editors.componentdetail.figures.ComponentTableFigure; import net.ms.designer.editors.componentdetail.models.AutoNumField; import net.ms.designer.editors.componentdetail.models.ChildTable; import net.ms.designer.editors.componentdetail.models.CommonField; import net.ms.designer.editors.componentdetail.models.ComponentTable; import net.ms.designer.editors.componentdetail.models.ConfigDialog; import net.ms.designer.editors.componentdetail.models.Container; import net.ms.designer.editors.componentdetail.models.Element; import net.ms.designer.editors.componentdetail.models.Messages; import net.ms.designer.editors.componentdetail.models.Table; import net.ms.designer.editors.componentdetail.policies.LogicFlowEditPolicy; import net.ms.designer.editors.componentdetail.policies.PropertyEditPolicy; import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.Label; import org.eclipse.gef.AccessibleEditPart; import org.eclipse.gef.EditPolicy; import org.eclipse.gef.Request; import org.eclipse.gef.RequestConstants; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.TextCellEditor; import org.eclipse.swt.accessibility.AccessibleControlEvent; import org.eclipse.swt.accessibility.AccessibleEvent; import org.eclipse.ui.internal.UIPlugin; /** * @author lili * @version 1.1.0 * @explain defind the CompTableEditPart,it can do something of componentTable */ public class CompTableEditPart extends ContainerEditPart implements ITableContentProvider{ protected Element obj; protected CommonField comf; protected Container cot; protected String change; public void performRequest(Request req) { if(req.getType().equals(RequestConstants.REQ_OPEN)) { obj = (Element)getModel(); cot = ((Container)this.getParent().getModel()); change = "1"; ConfigDialog dialog = new ConfigDialog(UIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell(), obj, cot, comf,change); // dialog.create(obj); dialog.open(); } } /* * (non-Javadoc) * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure() */ protected IFigure createFigure() { ComponentTableFigure f = null; if (getModel() instanceof Table) { //�½����δ����ʱ������������� // f = new ComponentTableFigure(getCompTable().getField_Type()); f = new ComponentTableFigure(getCompTable().getName()); } return f; } /* * ���� Javadoc�� * * @see org.eclipse.gef.GraphicalEditPart#getContentPane() */ public IFigure getContentPane() { return ((ComponentTableFigure) getFigure()).getFieldsPane(); } /** * * @return componentTableFigure's Label */ public Label getTableLabel() { return ((ComponentTableFigure) getFigure()).getLabel(); } /* * ���� Javadoc�� * * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies() */ protected void createEditPolicies() { // this.installEditPolicy(EditPolicy.LAYOUT_ROLE,new PropertyEditPolicy()); super.createEditPolicies(); //installEditPolicy(EditPolicy.NODE_ROLE, null); //installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, null); // this.installEditPolicy(EditPolicy.LAYOUT_ROLE,new PropertyEditPolicy()); installEditPolicy(EditPolicy.LAYOUT_ROLE, new LogicFlowEditPolicy()); // installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, // null); } /** * @return the Table model */ public Table getCompTable() { return (Table) getModel(); } /* * ���� Javadoc�� * * @see org.eclipse.gef.editparts.AbstractEditPart#refreshVisuals() */ protected void refreshVisuals() { //����ʱ���������⣩ ComponentTableFigure g = null; if (getModel() instanceof ComponentTable) { getTableLabel().setText(getCompTable().getName()); // getTableLabel().setText(getCompTable().getField_Type()); }else getTableLabel().setText(getCompTable().getName()); super.refreshVisuals(); } /* * (non-Javadoc) * @see net.ms.designer.editors.componentdetail.core.ITableContentProvider#getTableContents() */ public String[][] getTableContents() { List result = new ArrayList(); List childs = getCompTable().getChildren(); for(int i=0;i<childs.size();i++){ List objInfo = new ArrayList(); Element obj = (Element)childs.get(i); objInfo.add(obj.getName()); objInfo.add(obj.getField_Type()); // objInfo.add(obj.getFieldLabel()); int canQuery = 0; if(obj instanceof CommonField){ canQuery = ((CommonField)obj).getCanBeQuery(); } if(canQuery==0) objInfo.add(Messages.getString("KDEEditors.Constant.False")); //$NON-NLS-1$ else objInfo.add(Messages.getString("KDEEditors.Constant.True")); //$NON-NLS-1$ result.add((String[])objInfo.toArray(new String[5])); } return (String[][])result.toArray(new String[result.size()][5]); } }