Search in sources :

Example 6 with Expression

use of org.csstudio.opibuilder.script.Expression in project yamcs-studio by yamcs.

the class RulesProperty method writeToXML.

@Override
public void writeToXML(Element propElement) {
    for (RuleData ruleData : ((RulesInput) getPropertyValue()).getRuleDataList()) {
        Element ruleElement = new Element(XML_ELEMENT_RULE);
        ruleElement.setAttribute(XML_ATTRIBUTE_NAME, ruleData.getName());
        ruleElement.setAttribute(XML_ATTRIBUTE_PROPID, ruleData.getPropId());
        ruleElement.setAttribute(XML_ATTRIBUTE_OUTPUTEXPRESSION, Boolean.toString(ruleData.isOutputExpValue()));
        for (Expression exp : ruleData.getExpressionList()) {
            Element expElement = new Element(XML_ELEMENT_EXPRESSION);
            expElement.setAttribute(XML_ATTRIBUTE_BOOLEXP, exp.getBooleanExpression());
            Element valueElement = new Element(XML_ELEMENT_VALUE);
            if (ruleData.isOutputExpValue())
                valueElement.setText(exp.getValue().toString());
            else {
                Object savedValue = ruleData.getProperty().getPropertyValue();
                ruleData.getProperty().setPropertyValue_IgnoreOldValue(exp.getValue());
                ruleData.getProperty().writeToXML(valueElement);
                ruleData.getProperty().setPropertyValue_IgnoreOldValue(savedValue);
            }
            expElement.addContent(valueElement);
            ruleElement.addContent(expElement);
        }
        for (PVTuple pv : ruleData.getPVList()) {
            Element pvElement = new Element(XML_ELEMENT_PV);
            pvElement.setText(pv.pvName);
            pvElement.setAttribute(XML_ATTRIBUTE_TRIGGER, Boolean.toString(pv.trigger));
            ruleElement.addContent(pvElement);
        }
        propElement.addContent(ruleElement);
    }
}
Also used : RuleData(org.csstudio.opibuilder.script.RuleData) RulesInput(org.csstudio.opibuilder.script.RulesInput) Expression(org.csstudio.opibuilder.script.Expression) Element(org.jdom.Element) PVTuple(org.csstudio.opibuilder.script.PVTuple)

Aggregations

Expression (org.csstudio.opibuilder.script.Expression)6 PVTuple (org.csstudio.opibuilder.script.PVTuple)2 RuleData (org.csstudio.opibuilder.script.RuleData)2 RulesInput (org.csstudio.opibuilder.script.RulesInput)2 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)2 GridData (org.eclipse.swt.layout.GridData)2 Element (org.jdom.Element)2 Action (org.eclipse.jface.action.Action)1 ToolBarManager (org.eclipse.jface.action.ToolBarManager)1 ArrayContentProvider (org.eclipse.jface.viewers.ArrayContentProvider)1 CellEditor (org.eclipse.jface.viewers.CellEditor)1 EditingSupport (org.eclipse.jface.viewers.EditingSupport)1 ISelectionChangedListener (org.eclipse.jface.viewers.ISelectionChangedListener)1 SelectionChangedEvent (org.eclipse.jface.viewers.SelectionChangedEvent)1 TableViewer (org.eclipse.jface.viewers.TableViewer)1 TableViewerColumn (org.eclipse.jface.viewers.TableViewerColumn)1 TextCellEditor (org.eclipse.jface.viewers.TextCellEditor)1 ModifyEvent (org.eclipse.swt.events.ModifyEvent)1 ModifyListener (org.eclipse.swt.events.ModifyListener)1 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)1