Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Forms in PhixFlow can be built and laid out using drag and drop functionality. If you are new to form building, please see the introductory course: PhixFlow Training - Building Applications

A more detailed description of drag and drop functionality is given below, but the following videos will introduce you to the basic concepts:



Technical Breakout

If a single read brings back a number of records exceeding 90% of the specified cache size, a warning message will be logged to the console.

If a single read brings back 100% or more of the cache size, and the enforce cache size limit flag is ticked in the system configuration, then the analysis run will stop completely.

Error Message: Cache Size Limit Exceeded
The Pipe "stream_name.lookup_pipe_name" cache is 100% full (the cache size is 10).

A model administrator can use this information to make an informed decision about the design of the model.




Pinning and unpinning

A key concept behind dragging functionality in forms is pinning and unpinning. Unpinned components are placed into the next available space. Pinned components can be placed anywhere on the form, and you can pin the edges to the edges of the parent component by setting offsets between the top, right, bottom and left edges of the component to those of the parent.

Unpinned components

Unpinned components are placed automatically in the next space available.


By default this is underneath the previous component - but this can be controlled in CSS. A full discussion of the CSS options for controlling this are beyond the scope of this article, but can be researched on the web. If you want to do this, note that components in forms are represents as DIV objects. Future versions of PhixFlow will features easy to use options to control which space components will flow into.



(Notes for pop out hints box: To control which components are drawn on top of which you can add a zIndex css tag in the ‘CSS Properties’ sections of the relevant components.  The value of the zIndex tag should be a number and components are drawn on top of each other in ascending sequence of zIndex numbers.)

Pinned components

This is done using the Positional Settings of the component. The offsets are set as the number of pixels.

Note that if you set the right Positional Settings, this overrides any width set for the component. Similarly, if you set the bottom Positional Settings, this overrides any height set.

control which is next available space using CSS?





Dropping components onto forms to create content

New layout components can be added to a form by dragging and dropping any of the following:


  • a template from a palette or from the repository browser
  • an attribute from a stream (to create the appropriate input field component)
  • a stream view from a stream (to create a stream view component)
  • an action from a stream (to create a button which runs this action)
  • the stream itself (to create a card container component)
  • a dashboard (to create a button which opens the dashboard)


(Note for pop out hint box: In order to drag components onto a form in this way please remember to set up the default component palette to use in System Configuration and make sure that palette specifies which template to use for each type of item being dropped onto the form.)


When any of the above items are simply dragged onto a form and dropped onto another component then, by default, it will be added to the form below the component on which it was dropped inside the same parent component as the component on which it was dropped.  For example, if you have an area inside a form which containers 3 input fields and you drag a stream attribute and drop it onto the second field then a new field will be created below the second input field.


If you want to drop a component onto a specific area of a form and drop the component inside that area (i.e. make that area the parent of the new component) then you should hold down the shift key while you drag and drop the component.


If you want to drop a component into a fixed position as a pinned component then you can simply hold down the control key as you drag the component onto the form.


You can combine these extra keys so if you want to drag a new component to a fixed position inside an existing area then you can hold down the control and shift keys as you drag and drop the component onto the target area.



Dragging components to lay out forms



To move a component you can simply drag the component around the form.


Pinned components will simply be moved and their top, bottom, left and right settings updated to reflect their new position.


Unpinned components will not move but you will see the drag and drop circle move as you move the mouse.  If you drop this circle onto another component then the component you started dragging will have its sequence number changed to be that of the component that you dropped it onto.  This will cause the sequence numbers of all other components with the same parent to be updated and the unpinned components are then redrawn in their new sequence.  If the component you dragged originally had a lower sequence number than the one you dropped it onto then it will be drawn after the one you dropped it onto.  Conversely if it originally had a higher sequence than the component you dropped it onto then it will be drawn before the component you dropped it onto.


Preventing components from being dragged


Sometimes you may find yourself dragging and moving the wrong component by mistake. To reduce the chances of this happening for components which you are unlikely to want to move (such as fixed headers, footers or tab components) you can tick the ‘prevent dragging’ box in the ‘Position Settings’ section of the component editor pane.  This will turn off all dragging for this component including being able to resize the component by dragging the edges.  To allow dragging again simply go to the editor and untick the ‘prevent dragging’ box.


Changing an unpinned component to pinned


If you wish to pin an unpinned component to a fixed position then you can so by holding down the Control key as you drag the component.  With the control key down the component will be converted to pinned component and its top, and left settings will be adjusted to reflect the new position to which you drag it.


Changing a pinned component to unpinned


If you wish to unpin a component so that it floats to the next available position you can simply highlight the components you wish to unpin and then select ‘Unpin selected components’ from the right click context menu.


Changing the parent of a component


(Notes for a pop out hints box: You can see what the parent component is for any layout component either by clicking on the component in the form or looking in the Parent Details section of the editor form.  When you click on a layout component it is highlighted with a green box drawn around it and its parent is highlighted with an orange box drawn around it.  The only exception is for components drawn on the top level area (usually referred to as the form itself) which is never highlighted.)

By default when you drag and drop a component onto an area it doesn’t make the target area the new parent of the component instead, if it is an unpinned component, it simply takes the sequence number of the target area as the new sequence number of the dropped component so that it will be drawn in a new position on the form.


If you wish to change the parent of a component (e.g. to move a field from one area to another) then you can do so by simply dragging the component onto the new parent while holding down the shift key.  You can do this on the form itself or in the repository browser.  If you want to drag it to the new parent as a pinned component in a fixed position you can hold down both the shift and control keys.

  • No labels