public SingleRoutineEditor(RoutineDefinition routine, HairAppBl.Interfaces.IHairBl hairBl) : this()
 {
     mRoutine = routine;
     mHairbl  = hairBl;
     RefreshList();
     OKButton.Clicked += OKButton_Clicked;
 }
Example #2
0
 public override bool Visit(RoutineDefinition node)
 {
     declEnv.EnterNextContext();
     Visit((CallableDeclaration)node);
     traverse(node.body);
     declEnv.EnterNextContext();
     return(true);
 }
Example #3
0
        public override Value Visit(RoutineDefinition node)
        {
            // set instance var func
            Function func = (Function)Visit((RoutineDeclaration)node);

            Debug.Assert(!func.IsNull, "Invalid function declaration " + node.name);
            evalCtx.inTopLevel = false;
            evalCtx.func       = func;

            // Create a new basic block to start insertion into.
            BasicBlock bb = func.AppendBasicBlock("entry");

            builder.SetInsertPoint(bb);

            int i       = 0;
            var @params = node.Type.@params;

            foreach (var param in @params.Parameters())
            {
                CreateRoutineArgument(func, i++, param);
            }

            Value retVal = null;

            if (node.IsFunction)
            {                   // Create local var for the return value (Result)
                var retvar   = @params.returnVar;
                var llvmtype = GetLLVMType(retvar.type);
                retVal = builder.BuildAlloca(llvmtype, retvar.name);
                valuemap.AddValue(retvar, retVal);
            }

            Value ret = traverse(node.body);

            if (ret.IsNull)
            {                   // Error reading body, remove function.
                Error("Could not generate routine " + node.name);
                func.Delete();
                return(null);
            }
            evalCtx.inTopLevel = true;

            if (node.IsFunction)
            {
                builder.BuildReturn(builder.BuildLoad(retVal));
            }
            else
            {
                builder.BuildReturn();
            }

            // Validate the generated code, checking for consistency.
            func.Validate(LLVMVerifierFailureAction.PrintMessageAction);
            // Optimize the function.
            passManager.Run(func);
            return(func);
        }
 public void Setup()
 {
     allRoutines = new System.Collections.Generic.List <RoutineDefinition>();
     allRoutines.Add(RoutineDefinition.Create("Wash", "wash", "", ""));
     allRoutines.Add(RoutineDefinition.Create("Creme", "Creme", "", ""));
     allRoutines.Add(RoutineDefinition.Create("Cut", "cut", "", ""));
     allRoutines.Add(RoutineDefinition.Create("DoSomething", "dosomething", "", ""));
     allRoutines.Add(RoutineDefinition.Create("Foo", "bar", "", ""));
     allRoutines.Add(RoutineDefinition.Create("Kämmen", "kaemmen", "", ""));
 }
Example #5
0
 private RoutineDefinitionCell GetRoutineControl(RoutineDefinition routine)
 {
     foreach (var c in mRoutineListControls)
     {
         if (c.Routine == routine)
         {
             return(c);
         }
     }
     return(null);
 }
        public void RemoveRoutine(RoutineDefinition routine)
        {
            if (routine == null)
            {
                throw new ArgumentNullException("routine");
            }
            if (routine.ID == string.Empty)
            {
                throw new ArgumentException($"Routine ID is empty");
            }

            this.mWashingDay.Routines.Remove(routine.ID);
        }
Example #7
0
        public void Instantiate()
        {
            var r = new RoutineDefinition();

            r.Name = "";
            var dic = new Dictionary <string, object>();
            var hbl = new HairAppBl.HairAppBl(new HairAppBl.ConsoleLogger(), dic);

            dic.Add("RoutineFrame", null);
            dic.Add("RoutineContent", null);
            dic.Add("RoutineButton", null);
            new HairApp.Controls.RoutineDefinitionCell(r, hbl, 1);
        }
 public void InitRoutines()
 {
     MainSession.AllRoutines.Clear();
     MainSession.AllRoutines.Add(RoutineDefinition.Create(Resources.AppResource.Prepoo, "Prepoo", "", Resources.AppResource.PrepooDescription));
     MainSession.AllRoutines.Add(RoutineDefinition.Create(Resources.AppResource.HotOilTreatment, "HotOilTreatment", "", Resources.AppResource.HotOilTreatmentDescription));
     MainSession.AllRoutines.Add(RoutineDefinition.Create(Resources.AppResource.Shampoo, "Shampoo", "", Resources.AppResource.ShampooDescription));
     MainSession.AllRoutines.Add(RoutineDefinition.Create(Resources.AppResource.ClarifyingShampoo, "CarifyingShampoo", "", Resources.AppResource.ClarifyingShampooDescription));
     MainSession.AllRoutines.Add(RoutineDefinition.Create(Resources.AppResource.Conditioner, "Conditioner", "", Resources.AppResource.ConditionerDescription));
     MainSession.AllRoutines.Add(RoutineDefinition.Create(Resources.AppResource.DeepConditioner, "DeepConditioner", "", Resources.AppResource.DeepConditionerDescription));
     MainSession.AllRoutines.Add(RoutineDefinition.Create(Resources.AppResource.ProteinTreatment, "ProteinTreatment", "", Resources.AppResource.ProteinTreatmentDescription));
     MainSession.AllRoutines.Add(RoutineDefinition.Create(Resources.AppResource.MoisturisingMask, "MoisturisingMask", "", Resources.AppResource.MoisturisingMaskDescription));
     MainSession.AllRoutines.Add(RoutineDefinition.Create(Resources.AppResource.LeaveInConditioner, "LeaveInConditioner", "", Resources.AppResource.LeaveInConditionerDescription));
     MainSession.AllRoutines.Add(RoutineDefinition.Create(Resources.AppResource.Clay, "Clay", "", Resources.AppResource.ClayDescription));
     MainSession.AllRoutines.Add(RoutineDefinition.Create(Resources.AppResource.Rinse, "Rinses", "", Resources.AppResource.RinseDescription));
 }
        public void SetUp()
        {
            Xamarin.Forms.Mocks.MockForms.Init();
            allRoutines = new List <RoutineDefinition>();
            allRoutines.Add(RoutineDefinition.Create("Wash", "wash", "", ""));
            allRoutines.Add(RoutineDefinition.Create("Creme", "Creme", "", ""));
            allRoutines.Add(RoutineDefinition.Create("Cut", "cut", "", ""));
            allRoutines.Add(RoutineDefinition.Create("DoSomething", "dosomething", "", ""));
            allRoutines.Add(RoutineDefinition.Create("Foo", "bar", "", ""));
            allRoutines.Add(RoutineDefinition.Create("Kämmen", "kaemmen", "", ""));

            var dic = new Dictionary <string, object>();

            hairAppBl = new HairAppBl.HairAppBl(new ConsoleLogger(), dic);

            msCOntroller = new MainSessionController(null);
        }
        public void MoveDown(RoutineDefinition routine)
        {
            if (routine == null)
            {
                throw new ArgumentNullException("Routine is null");
            }
            if (routine.ID == string.Empty)
            {
                throw new ArgumentException($"Routine ID is empty");
            }

            var currentIndex = this.mWashingDay.Routines.IndexOf(routine.ID);

            if (currentIndex == this.mWashingDay.Routines.Count - 1)
            {
                return;
            }

            this.mWashingDay.Routines.Remove(routine.ID);
            this.mWashingDay.Routines.Insert(currentIndex + 1, routine.ID);
        }
Example #11
0
        public override bool Visit(RoutineDefinition node)
        {
            if (node.IsFunction)
            {
                ProceduralType p = node.type as ProceduralType;
                node.body.decls.Add(new VarDeclaration("result", p.funcret));
            }

            Visit((CallableDeclaration)node);
            traverse(node.body);

            if (node.IsFunction)
            {
                builder.Remove(builder.Length - 3, 3);
                outputCode("	return result;", true, true);
                outputCode("}", true, true);
            }

            outputCode("", false, true);

            return(true);
        }
 public void DeleteRoutine(RoutineDefinition r)
 {
     MainSession.AllRoutines.Remove(r);
     Save();
 }
 public virtual T Visit(RoutineDefinition node)
 {
     Visit((RoutineDeclaration)node);
     return(traverse(node.body));
 }
Example #14
0
 public override bool Visit(RoutineDefinition node)
 {
     Visit((RoutineDeclaration)node);
     TraversePrint(node.body);
     return(true);
 }
        public RoutineDefinitionEditCell(RoutineDefinition routine, HairAppBl.Interfaces.IHairBl hairbl)
        {
            this.mHairBl = hairbl;
            this.Routine = routine;
            var labelTitle = new Label
            {
                Text = Resources.AppResources.Title
            };

            var labelDescription = new Label
            {
                Text = Resources.AppResources.Description
            };

            title = new Entry
            {
                Text           = Routine.Name,
                FontSize       = Device.GetNamedSize(NamedSize.Small, typeof(Label)),
                FontAttributes = FontAttributes.Bold
            };
            description = new Entry
            {
                Text           = Routine.Description,
                FontSize       = Device.GetNamedSize(NamedSize.Small, typeof(Label)),
                FontAttributes = FontAttributes.Bold
            };


            deleteButton          = Common.GetButton("remove.png", hairbl);
            deleteButton.Clicked += (sender, e) =>
            {
                SendRemoved();
            };

            buttonGroup = new StackLayout
            {
                Orientation       = StackOrientation.Horizontal,
                HorizontalOptions = LayoutOptions.EndAndExpand,
                IsVisible         = false,
                Children          = { deleteButton }
            };

            var frame = new Frame
            {
                Style   = (Style)hairbl.Resources["RoutineFrame"],
                Content = new StackLayout
                {
                    Style       = (Style)hairbl.Resources["RoutineContent"],
                    Orientation = StackOrientation.Vertical,

                    Children =
                    {
                        labelTitle,
                        new StackLayout {
                            Orientation = StackOrientation.Horizontal,
                            Children    = { title, buttonGroup       }
                        },
                        labelDescription,
                        description
                    }
                }
            };
            var editClicked = new TapGestureRecognizer();

            editClicked.Tapped += EditClicked_Tapped;;

            frame.GestureRecognizers.Add(editClicked);
            View = frame;
        }
Example #16
0
        public RoutineDefinitionCell(RoutineDefinition routine, HairAppBl.Interfaces.IHairBl hairbl, int number)
        {
            this.mHairBl = hairbl;
            this.Routine = routine;
            text         = new Label
            {
                Text           = $"{number}) {Routine.Name}",
                FontSize       = Device.GetNamedSize(NamedSize.Small, typeof(Label)),
                FontAttributes = FontAttributes.Bold
            };

            var tapGestureRecognizer = new TapGestureRecognizer();

            tapGestureRecognizer.Tapped += (s, e) => {
                Select();
            };


            editButton          = Common.GetButton("edit.png", hairbl);
            editButton.Clicked += (sender, e) =>
            {
                SendEdit();
            };

            deleteButton          = Common.GetButton("remove.png", hairbl);
            deleteButton.Clicked += (sender, e) =>
            {
                SendRemoved();
            };

            downButton          = Common.GetButton("down.png", hairbl);
            downButton.Clicked += (sender, e) =>
            {
                SendMoveDown();
            };

            upButton          = Common.GetButton("up.png", hairbl);
            upButton.Clicked += (sender, e) =>
            {
                SendMoveUp();
            };

            buttonGroup = new StackLayout
            {
                Orientation       = StackOrientation.Horizontal,
                HorizontalOptions = LayoutOptions.EndAndExpand,
                IsVisible         = false,
                Children          = { downButton, upButton, editButton, deleteButton }
            };

            var frame = new Frame
            {
                Style   = (Style)hairbl.Resources["RoutineFrame"],
                Content = new StackLayout
                {
                    Style       = (Style)hairbl.Resources["RoutineContent"],
                    Orientation = StackOrientation.Horizontal,

                    Children =
                    {
                        new StackLayout {
                            Orientation = StackOrientation.Vertical,
                            Children    = { text }
                        },
                        buttonGroup
                    }
                }
            };

            frame.GestureRecognizers.Add(tapGestureRecognizer);
            View = frame;
        }