public String getId() { return model.getId(); }
@JsOverlay public static Analysis of(TypedAnalysis<?> model) { Analysis analysis = new Analysis(); analysis.id = model.getId(); analysis.parentId = model.getParentId(); analysis.label = model.getLabel(); analysis.modelType = model.getModel().getTypeId(); analysis.model = model.getModel().toJson(); return analysis; }
public ResourceId getFormId() { return tableModel.getFormId(); }
@Test public void serializeModel() { ImmutableTableModel model = ImmutableTableModel.builder() .formId(ResourceId.valueOf("MY_FORM")) .addColumns(ImmutableTableColumn.builder().id("c1").label("Foo Squared").formula("foo*foo").build()) .addColumns(ImmutableTableColumn.builder().id("c2").formula("foo").build()) .build(); JsonValue object = model.toJson(); TableModel remodel = TableModel.fromJson(object); assertThat(remodel.getFormId(), equalTo(model.getFormId())); assertThat(remodel.getColumns(), hasSize(2)); assertThat(remodel.getColumns().get(0), equalTo(model.getColumns().get(0))); assertThat(remodel.getColumns().get(1), equalTo(model.getColumns().get(1))); }
@Override public void updateColumnWidth(String columnId, int newWidth) { TableModel model = this.tableModel.get(); List<TableColumn> updatedColumns = new ArrayList<>(); for (TableColumn column : model.getColumns()) { if(column.getId().equals(columnId)) { updatedColumns.add(ImmutableTableColumn.builder().from(column).width(newWidth).build()); } else { updatedColumns.add(column); } } tableModel.updateIfNotSame(ImmutableTableModel.builder() .from(model) .columns(updatedColumns) .build()); }
private TableModel initialModel(ResourceId formId) { Optional<JsonValue> object = storage.getObjectIfPresent(modelKey(formId)); if(object.isPresent()) { try { return TableModel.fromJson(object.get()); } catch (Exception e) { LOGGER.log(Level.WARNING, "Failed to deserialize saved model: ", e); } } return ImmutableTableModel .builder() .formId(formId) .build(); }
public static TableColumn fromJson(JsonValue object) { ImmutableTableColumn.Builder tableColumn = ImmutableTableColumn.builder(); tableColumn.id(object.getString("id")); if(object.hasKey("label")) { tableColumn.label(object.getString("label")); } if(object.hasKey("width")) { tableColumn.width((int)object.getNumber("width")); } tableColumn.formula(object.getString("formula")); return tableColumn.build(); } }
public Observable<EffectiveTableModel> getEffectiveSubTable(final ResourceId subFormId) { Observable<EffectiveTableModel> effectiveSubTable = effectiveSubTables.get(subFormId); if(effectiveSubTable == null) { final TableModel subModel = ImmutableTableModel.builder() .formId(subFormId) .build(); effectiveSubTable = formTree .transform(tree -> tree.subTree(subFormId)) .transform(subTree -> new EffectiveTableModel(formStore, subTree, subModel, Optional.of(selectedRecordRef))); effectiveSubTables.put(subFormId, effectiveSubTable); } return effectiveSubTable; }
public TableColumn updatedModel() { TableColumn updatedModel = model; // Only updated the label if it has been explicitly changed. // Otherwise leave it implicit so that it will reflect changes to the // field's label if(updatedLabel != null && !updatedLabel.equals(effectiveLabel)) { updatedModel = ImmutableTableColumn.builder() .from(updatedModel) .label(updatedLabel) .build(); } return updatedModel; } }
private ImmutableTableColumn defaultColumnModel(FormulaNode formulaNode) { String formulaString = formulaNode.asExpression(); // We need stable ids for our default columns, otherwise // the views will get confused and refresh unnecessarily String id = formulaString.replace('.', 'd'); return ImmutableTableColumn.builder() .id(id) .formula(formulaString) .build(); }
public AnalysisUpdate buildUpdate() { AnalysisUpdate update = new AnalysisUpdate(); update.setId(id); update.setModel(model.toJson()); update.setType(model.getTypeId()); update.setLabel(label.get()); update.setParentId(parentId.get()); return update; } }
public Optional<String> getFilter() { return getModel().getFilter(); }
public List<SortModel> getSorting() { return getModel().getSorting(); }
public static ExportFormJob fromJson(JsonValue object) { TableModel tableModel; if(object.hasKey("formId")) { tableModel = ImmutableTableModel.builder() .formId(ResourceId.valueOf(object.get("formId").asString())) .build(); } else { tableModel = TableModel.fromJson(object.get("model")); } ExportFormat format; if (object.hasKey("format")) { format = ExportFormat.valueOf(object.get("format").asString()); } else { format = ExportFormat.CSV; } return new ExportFormJob(tableModel, format); } }