Пример #1
0
        /*
         * Member Methods
         */

        public void GenerateUI(Appliance a)
        {
            /*
             * Setup dependency listeners
             */

            IEnumerator e = a.GetDependedObjects().GetEnumerator();

            while (e.MoveNext())
            {
                ApplianceState     state  = (ApplianceState)e.Current;
                DependencyListener listen = new DependencyListener(state.GetReverseDeps());
                state.ValueChangedEvent += new ApplianceState.ValueChangedHandler(listen.ValueChanged);
            }

            /*
             * Call the Rule Phases, as set by the main frame at load-time,
             * in order with the Appliance object as the first input.
             */

            _panel.RemoveAllCIOs();

            object      input     = a;
            IEnumerator phaseEnum = _rulePhases.GetEnumerator();

            while (phaseEnum.MoveNext())
            {
                input = ((RulePhase)phaseEnum.Current).Process(input, _ui);
            }

            _panel.FinalSizeNotify();
            _ui.Invalidate();

            // compute dependencies based on initial state

            e = a.VariableTable.GetObjectEnumerator();
            while (e.MoveNext())
            {
                ((ApplianceObject)e.Current).EvalDependencies();
            }
        }
Пример #2
0
        /*
         * Process Method
         */

        public override void Process(Appliance a)
        {
            generateOrganization(a.GetRoot(), a.GetDependedObjects());
        }