Search in sources :

Example 1 with CompoundChild

use of com.serotonin.m2m2.gviews.component.CompoundChild in project ma-modules-public by infiniteautomation.

the class GraphicalViewDwr method getViewPointData.

private List<ViewComponentState> getViewPointData(User user, GraphicalView view, boolean edit) {
    WebContext webContext = WebContextFactory.get();
    HttpServletRequest request = webContext.getHttpServletRequest();
    List<ViewComponentState> states = new ArrayList<ViewComponentState>();
    Map<String, Object> model = new HashMap<String, Object>();
    for (ViewComponent viewComponent : view.getViewComponents()) {
        // Are we to update this component
        boolean update = System.currentTimeMillis() >= (viewComponent.getLastUpdated() + Common.getMillis(viewComponent.getUpdatePeriodType(), viewComponent.getUpdatePeriods()));
        if (viewComponent.isCompoundComponent() && (edit || viewComponent.isVisible())) {
            CompoundComponent compoundComponent = (CompoundComponent) viewComponent;
            boolean imageChart = compoundComponent instanceof ImageChartComponent;
            // Add states for each of the children
            for (CompoundChild child : compoundComponent.getChildComponents()) addPointComponentState(child.getViewComponent(), update, Common.runtimeManager, model, request, view, user, states, edit, !imageChart);
            // Add a state for the compound component.
            ViewComponentState state = new ViewComponentState();
            state.setId(compoundComponent.getId());
            model.clear();
            model.put("compoundComponent", compoundComponent);
            List<Map<String, Object>> childData = new ArrayList<Map<String, Object>>();
            for (CompoundChild child : compoundComponent.getChildComponents()) {
                if (child.getViewComponent().isPointComponent()) {
                    DataPointVO point = ((PointComponent) child.getViewComponent()).tgetDataPoint();
                    if (point != null) {
                        Map<String, Object> map = new HashMap<String, Object>();
                        if (imageChart)
                            map.put("name", point.getName());
                        else
                            map.put("name", translate(child.getDescription()));
                        map.put("point", point);
                        map.put("pointValue", point.lastValue());
                        childData.add(map);
                    }
                }
            }
            model.put("childData", childData);
            if (compoundComponent.hasInfo())
                state.setInfo(generateViewContent(compoundComponent, update, request, "compoundInfoContent.jsp", model));
            if (imageChart) {
                state.setContent(((ImageChartComponent) compoundComponent).getImageChartData(getTranslations()));
            } else if (!edit) {
                state.setChart(compoundComponent.getImageChartData(getTranslations()));
            }
            states.add(state);
        } else
            addPointComponentState(viewComponent, update, Common.runtimeManager, model, request, view, user, states, edit, true);
        // Save the last time we updated
        if (update)
            viewComponent.setLastUpdated(System.currentTimeMillis());
    }
    return states;
}
Also used : DataPointVO(com.serotonin.m2m2.vo.DataPointVO) WebContext(org.directwebremoting.WebContext) HashMap(java.util.HashMap) PointComponent(com.serotonin.m2m2.gviews.component.PointComponent) SimplePointComponent(com.serotonin.m2m2.gviews.component.SimplePointComponent) ArrayList(java.util.ArrayList) CompoundChild(com.serotonin.m2m2.gviews.component.CompoundChild) SimpleCompoundComponent(com.serotonin.m2m2.gviews.component.SimpleCompoundComponent) CompoundComponent(com.serotonin.m2m2.gviews.component.CompoundComponent) HttpServletRequest(javax.servlet.http.HttpServletRequest) ViewComponent(com.serotonin.m2m2.gviews.component.ViewComponent) ImageChartComponent(com.serotonin.m2m2.gviews.component.ImageChartComponent) HashMap(java.util.HashMap) Map(java.util.Map)

Example 2 with CompoundChild

use of com.serotonin.m2m2.gviews.component.CompoundChild in project ma-modules-public by infiniteautomation.

the class CompoundComponent method jsonRead.

@Override
public void jsonRead(JsonReader reader, JsonObject jsonObject) throws JsonException {
    super.jsonRead(reader, jsonObject);
    JsonObject jsonChildren = jsonObject.getJsonObject("children");
    if (jsonChildren != null) {
        for (Map.Entry<String, JsonValue> jsonChild : jsonChildren.entrySet()) {
            CompoundChild child = getChild(jsonChild.getKey());
            if (child == null || !child.getViewComponent().isPointComponent())
                throw new TranslatableJsonException("emport.error.compound.invalidChildId", jsonChild.getKey(), definition().getId(), getPointComponentChildIds());
            jsonReadDataPoint(jsonChild.getValue(), (PointComponent) child.getViewComponent());
        }
    }
}
Also used : JsonValue(com.serotonin.json.type.JsonValue) JsonObject(com.serotonin.json.type.JsonObject) TranslatableJsonException(com.serotonin.m2m2.i18n.TranslatableJsonException) HashMap(java.util.HashMap) Map(java.util.Map)

Example 3 with CompoundChild

use of com.serotonin.m2m2.gviews.component.CompoundChild in project ma-modules-public by infiniteautomation.

the class CompoundComponent method readObject.

private void readObject(ObjectInputStream in) throws IOException {
    int ver = in.readInt();
    children = new ArrayList<CompoundChild>();
    initialize();
    // Switch on the version of the class so that version changes can be elegantly handled.
    if (ver == 1) {
        name = SerializationHelper.readSafeUTF(in);
        int len = in.readInt();
        for (int i = 0; i < len; i++) {
            String childId = in.readUTF();
            DataPointVO dataPoint = readDataPoint(in);
            setDataPoint(childId, dataPoint);
        }
    }
}
Also used : DataPointVO(com.serotonin.m2m2.vo.DataPointVO)

Aggregations

DataPointVO (com.serotonin.m2m2.vo.DataPointVO)2 HashMap (java.util.HashMap)2 Map (java.util.Map)2 JsonObject (com.serotonin.json.type.JsonObject)1 JsonValue (com.serotonin.json.type.JsonValue)1 CompoundChild (com.serotonin.m2m2.gviews.component.CompoundChild)1 CompoundComponent (com.serotonin.m2m2.gviews.component.CompoundComponent)1 ImageChartComponent (com.serotonin.m2m2.gviews.component.ImageChartComponent)1 PointComponent (com.serotonin.m2m2.gviews.component.PointComponent)1 SimpleCompoundComponent (com.serotonin.m2m2.gviews.component.SimpleCompoundComponent)1 SimplePointComponent (com.serotonin.m2m2.gviews.component.SimplePointComponent)1 ViewComponent (com.serotonin.m2m2.gviews.component.ViewComponent)1 TranslatableJsonException (com.serotonin.m2m2.i18n.TranslatableJsonException)1 ArrayList (java.util.ArrayList)1 HttpServletRequest (javax.servlet.http.HttpServletRequest)1 WebContext (org.directwebremoting.WebContext)1