示例#1
0
            public override DialogResult Run(IModel model)
            {
                IntermediateClassWizardModel intCWizModel = (IntermediateClassWizardModel)model;

                // intCWizModel.TableNode is set by the ApplicationController

                // 0 is the relation to Orders
                // 1 is the relation to Product
                intCWizModel[0].CodingStyle          = CodingStyle.IList;
                intCWizModel[0].OwnFieldName         = "order";
                intCWizModel[0].ForeignFieldName     = "orderDetail";
                intCWizModel[0].ForeignKeyColumnName = "OrderID";
                intCWizModel[0].RelationDirection    = RelationDirection.Bidirectional;
                intCWizModel[0].Table = "Orders";
                intCWizModel[0].Type  = "Order";

                intCWizModel[1].CodingStyle          = CodingStyle.IList;
                intCWizModel[1].OwnFieldName         = "product";
                intCWizModel[1].ForeignFieldName     = "orderDetail";
                intCWizModel[1].ForeignKeyColumnName = "ProductID";
                intCWizModel[1].RelationDirection    = RelationDirection.DirectedFromMe;
                intCWizModel[1].Table = "Products";
                intCWizModel[1].Type  = "Product";

                return(DialogResult.OK);
            }
        protected override void SwitchToState(int newState, out ViewBase newView, out WizardState wizardState)
        {
            int oldState = this.State;
            IntermediateClassWizardModel model = (IntermediateClassWizardModel)this.Model;


            if (newState == 1)
            {
                model.Index    = 0;
                base.LastState = 2;
            }

            if (newState == 0)
            {
                base.LastState = 2;
                if (model.Index == 1)
                {
                    model.Index = 0;
                    newState    = 1;
                }
            }

            if (newState == 2)
            {
                model.Index    = 1;
                newState       = 1;
                base.LastState = 1;
            }
            base.SwitchToState(newState, out newView, out wizardState);
        }
示例#3
0
        public IntClassWiz2(IModel model)
        {
            this.model = (IntermediateClassWizardModel)model;
            InitializeComponent();
#if !NDO11
            this.radioArrayList.Text       = "List<T>";
            this.radioIList.Text           = "IList<T>";
            this.radioNDOArrayList.Visible = false;
#endif
        }
示例#4
0
        public bool MapIntermediateClass(TableNode tn)
        {
//			IntermediateClass ic = new IntermediateClass();
//			IntermediateClassNode icn = new IntermediateClassNode(ic, tn);

            IList tableNodes = new ArrayList();

            foreach (TableNode tnode in databaseNode.TableNodes)
            {
                if (tn.Text == tnode.Text)
                {
                    continue;
                }
                if (tnode.Table.MappingType == TableMappingType.MappedAsClass)
                {
                    tableNodes.Add(tnode);
                }
            }

            IntermediateClassWizardModel model = new IntermediateClassWizardModel(tn, tableNodes);

            IWizardController controller = ApplicationController.wizardControllerFactory.Create
                                               ("IntermediateClassWizController", "IntClassWiz", "Intermediate Class Wizard");

            //controller.FrameSize = new Size(544, 500);
            model[0].RelationDirection = RelationDirection.Bidirectional;
            model[1].RelationDirection = RelationDirection.Bidirectional;
            DialogResult r = controller.Run(model);

            if (r == DialogResult.OK)
            {
                DatabaseNode parent = (DatabaseNode)tn.Parent;
                // Nothing to remove, because we use the original table node
                //				tn.Remove();
                //				tn.Parent.Nodes.Add(icn);
                for (int i = 0; i < 2; i++)
                {
                    ColumnNode            columnNode   = (ColumnNode)tn.FindNode(model[i].ForeignKeyColumnName, typeof(ColumnNode));
                    FkRelation            fkr          = new FkRelation(columnNode.Text);
                    IntermediateClassInfo intermClInfo = model[i];
                    fkr.FieldName          = intermClInfo.OwnFieldName;
                    fkr.ForeignCodingStyle = intermClInfo.CodingStyle;
                    fkr.ForeignFieldName   = intermClInfo.ForeignFieldName;
                    fkr.ForeignIsComposite = false;
                    fkr.IsComposite        = false;
                    fkr.OwningTable        = tn.Text;
                    fkr.OwningType         = tn.Table.ClassName;
                    fkr.RelatedTable       = intermClInfo.Table;
                    fkr.RelatedType        = intermClInfo.Type;
                    fkr.RelationDirection  = intermClInfo.RelationDirection;
                    fkr.RelationName       = string.Empty;
                    //ForeignFkRelation ffkr = fkr.ForeignRelation;
                    RelationNode relationNode = new RelationNode(fkr, tn);
                    relationNode.RelatedTableNode = (TableNode)databaseNode.FindNode(intermClInfo.Table);
                    ForeignKeyWizModel fkwizModel = new ForeignKeyWizModel(relationNode, new ArrayList());

                    tn.DualKeyRelations[i] = intermClInfo.OwnFieldName;

                    MakeForeignKeyRelation(relationNode, columnNode, fkwizModel);
                }
                return(true);
            }
            return(false);
        }
示例#5
0
 public IntClassWiz1(IModel model)
 {
     this.model = (IntermediateClassWizardModel)model;
     InitializeComponent();
 }