Example #1
0
        internal override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var cont = new TagBuilder("tree-view", null, IsInGrid);

            MergeAttributes(cont, context);
            var isBind = GetBinding(nameof(ItemsSource));

            if (isBind != null)
            {
                cont.MergeAttribute(":items", isBind.GetPath(context));
                cont.MergeAttribute(":expand", "$expand");                 // in BaseController
                if (Children.Count != 1)
                {
                    throw new XamlException("Only one TreeViewItem element is allowed for dynamic TreeView");
                }
                var ch = Children[0];
                cont.MergeAttribute(":options", GetOptions(context, ch));
            }
            if (AutoSelect != AutoSelectMode.None)
            {
                cont.MergeAttribute("auto-select", AutoSelect.ToString().ToKebabCase());
            }
            if (ExpandFirstItem)
            {
                cont.MergeAttribute(":expand-first-item", "true");
            }
            cont.RenderStart(context);
            cont.RenderEnd(context);
        }
 /// <summary>
 /// Revision 2 constructor
 /// </summary>
 /// <param name="channelId">two ASCII characters, range 00-99</param>
 /// <param name="programId">parameter set ID or Multistage ID, three ASCII characters, range 000-999</param>
 /// <param name="autoSelect">One ASCII character,
 ///     <para>0=None</para>
 ///     <para>1=Auto Next Change</para>
 ///     <para>2=I/O</para>
 ///     <para>6=Fieldbus</para>
 ///     <para>8=Socket tray</para>
 /// </param>
 /// <param name="batchSize">Two ASCII characters, range 00-99</param>
 /// <param name="maxCoherentNok">Two ASCII characters, range 00-99</param>
 /// <param name="batchCounter">Two ASCII characters, range 00-99</param>
 /// <param name="identifierNumber">Four ASCII characters, range 0000-9999 (Socket(s), EndFitting(s)…)</param>
 /// <param name="jobStepName">25 ASCII characters</param>
 /// <param name="jobStepType">Two ASCII characters, range 00-99</param>
 public AdvancedJob(int channelId, int programId, AutoSelect autoSelect, int batchSize, int maxCoherentNok, int batchCounter,
                    int identifierNumber, string jobStepName, int jobStepType) : this(channelId, programId, autoSelect, batchSize, maxCoherentNok, batchCounter)
 {
     IdentifierNumber = identifierNumber;
     JobStepName      = jobStepName;
     JobStepType      = jobStepType;
 }
 /// <summary>
 /// Revision 1 constructor
 /// </summary>
 /// <param name="channelId">two ASCII characters, range 00-99</param>
 /// <param name="programId">parameter set ID or Multistage ID, three ASCII characters, range 000-999</param>
 /// <param name="autoSelect">One ASCII character,
 ///     <para>0=None</para>
 ///     <para>1=Auto Next Change</para>
 ///     <para>2=I/O</para>
 ///     <para>6=Fieldbus</para>
 ///     <para>8=Socket tray</para>
 /// </param>
 /// <param name="batchSize">Two ASCII characters, range 00-99</param>
 /// <param name="maxCoherentNok">Two ASCII characters, range 00-99</param>
 public AdvancedJob(int channelId, int programId, AutoSelect autoSelect, int batchSize, int maxCoherentNok)
 {
     ChannelId      = channelId;
     ProgramId      = programId;
     AutoSelect     = autoSelect;
     BatchSize      = batchSize;
     MaxCoherentNok = maxCoherentNok;
 }
Example #4
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var cont = new TagBuilder("tree-view", null, IsInGrid);

            MergeAttributes(cont, context);

            if (Height != null)
            {
                cont.MergeStyle("height", Height.Value);
            }
            if (Style != TreeViewStyle.Normal)
            {
                cont.AddCssClass($"tree-view-{Style.ToString().ToKebabCase()}");
            }
            if (Indent != null && Indent.Value == false)
            {
                cont.AddCssClass("no-indent");
            }

            var isBind = GetBinding(nameof(ItemsSource));

            if (isBind != null)
            {
                cont.MergeAttribute(":items", isBind.GetPath(context));
                cont.MergeAttribute(":expand", "$expand");                 // in BaseController
                if (Children.Count != 1)
                {
                    throw new XamlException("Only one TreeViewItem element is allowed for dynamic TreeView");
                }
                var ch = Children[0];
                cont.MergeAttribute(":options", GetOptions(context, ch));
            }
            if (AutoSelect != AutoSelectMode.None)
            {
                cont.MergeAttribute("auto-select", AutoSelect.ToString().ToKebabCase());
            }
            if (ExpandFirstItem)
            {
                cont.MergeAttribute(":expand-first-item", "true");
            }

            var dblClickBind = GetBindingCommand(nameof(DoubleClick));

            if (dblClickBind != null)
            {
                // Function!
                cont.MergeAttribute(":doubleclick", "() => " + dblClickBind.GetCommand(context));
            }

            cont.RenderStart(context);
            cont.RenderEnd(context);
        }
Example #5
0
        internal override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var ul = new TagBuilder("a2-list", null, IsInGrid);

            onRender?.Invoke(ul);
            var isBind = GetBinding(nameof(ItemsSource));

            ul.AddCssClassBool(Striped, "striped");
            ul.AddCssClassBool(Border, "border");
            if (Select != null)
            {
                ul.MergeAttribute(":selectable", Select.Value.ToString().ToLowerInvariant());
            }
            ul.AddCssClass(Style.ToString().ToKebabCase());
            //ul.MergeAttribute(":command", "()=> $navigate()");

            if (Background != BackgroundStyle.None)
            {
                ul.AddCssClass("background-" + Background.ToString().ToKebabCase());
            }

            var mbind = GetBinding(nameof(Mark));

            if (mbind != null)
            {
                ul.MergeAttribute("mark", mbind.GetPath(context));
            }
            else if (Mark != null)
            {
                throw new XamlException("The Mark property must be a binding");
            }

            if (isBind != null)
            {
                ul.MergeAttribute(":items-source", isBind.GetPath(context));
                ul.MergeAttribute("v-lazy", isBind.GetPath(context));
            }
            MergeAttributes(ul, context);
            if (Height != null)
            {
                ul.MergeStyle("height", Height.Value);
            }
            if (AutoSelect != AutoSelectMode.None)
            {
                ul.MergeAttribute("auto-select", AutoSelect.ToString().ToKebabCase());
            }
            ul.RenderStart(context);
            RenderBody(context, isBind != null);
            ul.RenderEnd(context);
        }
 /// <summary>
 /// Revision 3 constructor
 /// </summary>
 /// <param name="channelId">two ASCII characters, range 00-99</param>
 /// <param name="programId">parameter set ID or Multistage ID, three ASCII characters, range 000-999</param>
 /// <param name="autoSelect">One ASCII character,
 ///     <para>0=None</para>
 ///     <para>1=Auto Next Change</para>
 ///     <para>2=I/O</para>
 ///     <para>6=Fieldbus</para>
 ///     <para>8=Socket tray</para>
 /// </param>
 /// <param name="batchSize">Two ASCII characters, range 00-99</param>
 /// <param name="maxCoherentNok">Two ASCII characters, range 00-99</param>
 /// <param name="batchCounter">Two ASCII characters, range 00-99</param>
 /// <param name="identifierNumber">Four ASCII characters, range 0000-9999 (Socket(s), EndFitting(s)…)</param>
 /// <param name="jobStepName">25 ASCII characters</param>
 /// <param name="jobStepType">Two ASCII characters, range 00-99</param>
 /// <param name="toolLoosening">1 ASCII character.
 ///     <para>0=Enable</para>
 ///     <para>1=Disable</para>
 ///     <para>2=Enable only on NOK tightening</para>
 /// </param>
 /// <param name="jobBatchMode">1 ASCII character.
 ///     <para>0=only the OK tightenings are counted</para>
 ///     <para>1=both the OK and NOK tightenings are counted</para>
 /// </param>
 /// <param name="batchStatusAtIncrement">1 ASCII character. Batch status after performing an increment or a bypass parameter set:
 ///     <para>0=OK</para>
 ///     <para>1=NOK</para>
 /// </param>
 /// <param name="decrementBatchAfterLoosening">1 ASCII character.
 ///     <para>0=Never</para>
 ///     <para>1=Always</para>
 ///     <para>2=After OK</para>
 /// </param>
 /// <param name="currentBatchStatus">1 ASCII character:
 ///     <para>0=Not started</para>
 ///     <para>1=OK</para>
 ///     <para>2=NOK</para>
 /// </param>
 public AdvancedJob(int channelId, int programId, AutoSelect autoSelect, int batchSize, int maxCoherentNok, int batchCounter,
                    int identifierNumber, string jobStepName, int jobStepType, ToolLoosening toolLoosening, BatchMode jobBatchMode,
                    BatchStatusAtIncrement batchStatusAtIncrement, DecrementBatchAfterLoosening decrementBatchAfterLoosening, CurrentBatchStatus currentBatchStatus)
     : this(channelId, programId, autoSelect, batchSize, maxCoherentNok, batchCounter, identifierNumber, jobStepName, jobStepType)
 {
     ToolLoosening                = toolLoosening;
     JobBatchMode                 = jobBatchMode;
     BatchStatusAtIncrement       = batchStatusAtIncrement;
     DecrementBatchAfterLoosening = decrementBatchAfterLoosening;
     CurrentBatchStatus           = currentBatchStatus;
 }
Example #7
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var dataGrid = new TagBuilder("data-grid", null, IsInGrid);

            onRender?.Invoke(dataGrid);
            MergeBindingAttributeBool(dataGrid, context, ":compact", nameof(Compact), Compact);
            MergeAttributes(dataGrid, context, MergeAttrMode.Margin | MergeAttrMode.Visibility);
            dataGrid.MergeAttribute("key", Guid.NewGuid().ToString());             // disable vue reusing
            if (Height != null)
            {
                dataGrid.MergeStyle("height", Height.Value);
            }
            if (FixedHeader)
            {
                dataGrid.MergeAttribute(":fixed-header", "true");
            }
            if (HeadersVisibility == HeadersVisibility.None)
            {
                dataGrid.MergeAttribute(":hide-header", "true");
            }
            if (Style != DataGridStyle.Default)
            {
                dataGrid.AddCssClass($"data-grid-{Style.ToString().ToKebabCase()}");
            }

            if (Background != BackgroundStyle.Default)
            {
                dataGrid.AddCssClass("background-" + Background.ToString().ToKebabCase());
            }

            if (RowDetails != null)
            {
                dataGrid.MergeAttribute(":row-details", "true");
                dataGrid.MergeAttribute("row-details-activate", RowDetails.Activate.ToString().ToLowerInvariant());
                var vBind = RowDetails.GetBinding("Visible");
                if (vBind != null)
                {
                    dataGrid.MergeAttribute("row-details-visible", vBind.Path /*!without context!*/);
                }
            }
            var isb = GetBinding(nameof(ItemsSource));

            if (isb != null)
            {
                dataGrid.MergeAttribute(":items-source", isb.GetPath(context));
            }
            MergeBoolAttributeIfExists(dataGrid, context, nameof(Hover), Hover);
            MergeBoolAttributeIfExists(dataGrid, context, nameof(Striped), Striped);
            MergeBoolAttribute(dataGrid, context, nameof(Border), Border);
            MergeBoolAttribute(dataGrid, context, nameof(Sort), Sort);
            dataGrid.MergeAttribute(":route-query", "$query");             // always!
            if (!String.IsNullOrEmpty(EmptyPanelDelegate))
            {
                dataGrid.MergeAttribute(":empty-panel-callback", $"$delegate('{EmptyPanelDelegate}')");
            }


            var dblClickBind = GetBindingCommand(nameof(DoubleClick));

            if (dblClickBind != null)
            {
                // Function!
                dataGrid.MergeAttribute(":doubleclick", "() => " + dblClickBind.GetCommand(context));
            }

            if (MarkerStyle != RowMarkerStyle.None)
            {
                dataGrid.MergeAttribute("mark-style", MarkerStyle.ToString().ToKebabCase());
            }

            var mbind = GetBinding(nameof(Mark));

            if (mbind != null)
            {
                dataGrid.MergeAttribute("mark", mbind.Path);                 // without context!!!
            }
            else if (Mark != MarkStyle.Default)
            {
                throw new XamlException("The Mark property must be a binding");
            }
            var rbbind = GetBinding(nameof(RowBold));

            if (rbbind != null)
            {
                dataGrid.MergeAttribute("row-bold", rbbind.GetPath(context));
            }
            else if (RowBold != null)
            {
                throw new XamlException("The RowBold property must be a binding");
            }

            // TODO: binding for GridLines ???
            if (GridLines != GridLinesVisibility.None)
            {
                dataGrid.MergeAttribute("grid", GridLines.ToString());
            }

            var groupByBind = GetBinding(nameof(GroupBy));

            if (groupByBind != null)
            {
                dataGrid.MergeAttribute(":group-by", groupByBind.GetPath(context));
            }
            else if (_groupBy != null)
            {
                dataGrid.MergeAttribute(":group-by", _groupBy.GetJsValue(context));
            }

            if (AutoSelect != AutoSelectMode.None)
            {
                dataGrid.MergeAttribute("auto-select", AutoSelect.ToString().ToKebabCase());
            }

            dataGrid.RenderStart(context);
            Int32 colIndex = 0;

            foreach (var col in Columns)
            {
                col.RenderColumn(context, colIndex);
                colIndex++;
            }
            RenderRowDetails(context);
            RenderEmptyPanel(context);
            RenderFooter(context);
            dataGrid.RenderEnd(context);
        }
 /// <summary>
 /// Revision 999 constructor
 /// </summary>
 /// <param name="channelId">two ASCII characters, range 00-99</param>
 /// <param name="programId">parameter set ID or Multistage ID, three ASCII characters, range 000-999</param>
 /// <param name="autoSelect">One ASCII character,
 ///     <para>0=None</para>
 ///     <para>1=Auto Next Change</para>
 ///     <para>2=I/O</para>
 ///     <para>6=Fieldbus</para>
 ///     <para>8=Socket tray</para>
 /// </param>
 /// <param name="batchSize">Two ASCII characters, range 00-99</param>
 /// <param name="maxCoherentNok">Two ASCII characters, range 00-99</param>
 /// <param name="batchCounter">Two ASCII characters, range 00-99</param>
 public AdvancedJob(int channelId, int programId, AutoSelect autoSelect, int batchSize, int maxCoherentNok, int batchCounter)
     : this(channelId, programId, autoSelect, batchSize, maxCoherentNok)
 {
     BatchCounter = batchCounter;
 }
Example #9
0
        public override void RenderElement(RenderContext context, Action <TagBuilder> onRender = null)
        {
            if (SkipRender(context))
            {
                return;
            }
            var ul = new TagBuilder("a2-list", null, IsInGrid);

            onRender?.Invoke(ul);
            var isBind = GetBinding(nameof(ItemsSource));

            ul.AddCssClassBool(Striped, "striped");
            ul.AddCssClassBool(Border, "border");
            ul.AddCssClassBool(Flush, "flush");
            ul.AddCssClassBool(Compact, "compact");
            ul.MergeAttribute("group-by", GroupBy);
            if (BorderStyle != BorderStyle.None)
            {
                ul.AddCssClass($"border-{BorderStyle.ToString().ToKebabCase()}");
            }
            if (MarkerStyle != RowMarkerStyle.None)
            {
                ul.MergeAttribute("mark-style", MarkerStyle.ToString().ToKebabCase());
            }
            if (Select != null)
            {
                ul.MergeAttribute(":selectable", Select.Value.ToString().ToLowerInvariant());
            }
            ul.AddCssClass(Style.ToString().ToKebabCase());
            //ul.MergeAttribute(":command", "()=> $navigate()");

            var dblClickBind = GetBindingCommand(nameof(DoubleClick));

            if (dblClickBind != null)
            {
                // Function!
                ul.MergeAttribute(":doubleclick", "() => " + dblClickBind.GetCommand(context));
            }

            if (Background != BackgroundStyle.Default)
            {
                ul.AddCssClass("background-" + Background.ToString().ToKebabCase());
            }

            var mbind = GetBinding(nameof(Mark));

            if (mbind != null)
            {
                ul.MergeAttribute("mark", mbind.Path /*without scope, property name*/);
            }
            else if (Mark != null)
            {
                throw new XamlException("The Mark property must be a binding");
            }

            if (isBind != null)
            {
                ul.MergeAttribute(":items-source", isBind.GetPath(context));
                ul.MergeAttribute("v-lazy", isBind.GetPath(context));
            }
            MergeAttributes(ul, context);
            if (Height != null)
            {
                ul.MergeStyle("height", Height.Value);
            }
            if (MaxHeight != null)
            {
                ul.MergeStyle("max-height", MaxHeight.Value);
            }
            if (AutoSelect != AutoSelectMode.None)
            {
                ul.MergeAttribute("auto-select", AutoSelect.ToString().ToKebabCase());
            }
            ul.RenderStart(context);
            RenderBody(context, isBind != null);
            RenderEmptyPanel(context);
            ul.RenderEnd(context);
        }