public String exportAsXml(final GanttChart ganttChart) { return exportAsXml(ganttChart, false); }
xmlGanttObjectWriter.setAliasMap(getXmlGanttObjectAliasMap()); return xmlGanttObjectWriter;
/** * Writes all Gantt objects as tree as xml. Writes only those values which are different to the original values of the * task with the same id. * * @param obj * @param rootObject */ public void writeGanttObjects(final GanttChartDO obj, final GanttTask rootObject) { final Document document = DocumentHelper.createDocument(); final Element element = getXmlGanttObjectWriter().write(document, rootObject); // Now, remove all elements with no information from the DOM: final String xml; if (removeUnnecessaryElements(element) == true) { // Nothing to write (no further information in the GanttObject tree given). xml = ""; } else { xml = XmlHelper.toString(element); } obj.setGanttObjectsAsXml(xml); }
findById(rootObject, id4).setDuration(new BigDecimal("10.000")).setProgress(10); // Unmodified ganttChartDao.writeGanttObjects(ganttChartDO, rootObject); final String xml = transform(prefix, "<ganttObject id='{}'>" + "<children>" + "</ganttObject>"); assertEquals("check xml output.", xml, ganttChartDO.getGanttObjectsAsXml()); GanttTask ganttObject = ganttChartDao.readGanttObjects(ganttChartDO).getRootObject(); assertDurationAndProgress(ganttObject, id1, BigDecimal.TEN, 10); assertDurationAndProgress(ganttObject, id2, null, null);
@Override public void select(final String property, final Object selectedValue) { if ("taskId".equals(property) == true) { final Integer id; if (selectedValue instanceof String) { id = NumberHelper.parseInteger((String) selectedValue); } else { id = (Integer) selectedValue; } if (ganttChartData == null || ObjectUtils.equals(id, ganttChartData.getRootObject().getId()) == false) { ganttChartData = null; // Force refresh. form.ganttChartEditTreeTablePanel.refreshTreeTable(); } getBaseDao().setTask(getData(), id); refresh(); } else if ("ownerId".equals(property) == true) { final Integer id; if (selectedValue instanceof String) { id = NumberHelper.parseInteger((String) selectedValue); } else { id = (Integer) selectedValue; } getBaseDao().setOwner(getData(), id); } else { log.error("Property '" + property + "' not supported for selection."); } }
@Override public AbstractSecuredBasePage onSaveOrUpdate() { getSettings().setOpenNodes(form.ganttChartEditTreeTablePanel.getOpenNodes()); getBaseDao().writeGanttObjects(getData(), ganttChartData.getRootObject()); return null; }
protected void refresh() { if (ganttChartData == null && getData().getTaskId() != null) { ganttChartData = getBaseDao().readGanttObjects(getData()); final GanttTask rootObject = ganttChartData.getRootObject(); if (rootObject != null && CollectionUtils.isNotEmpty(rootObject.getChildren()) == true && isNew() == true) { // For new charts set all children on level one as visible. for (final GanttTask child : rootObject.getChildren()) { child.setVisible(true); } } } form.ganttChartEditTreeTablePanel.setGanttChartData(ganttChartData).refresh(); redraw(); }
for (final Object childObj : element.elements()) { final Element child = (Element) childObj; if (removeUnnecessaryElements(child) == true) { element.remove(child);
public GanttChartEditPage(final PageParameters parameters) { super(parameters, "gantt"); init(); if (isNew() == true) { final Integer taskId = WicketUtils.getAsInteger(parameters, PARAM_KEY_TASK); if (taskId != null) { getBaseDao().setTask(getData(), taskId); } } refresh(); }
final GanttTask rootObject = data.getRootObject(); final GanttChartDO ganttChartDO = new GanttChartDO().setTask(rootTask); ganttChartDao.writeGanttObjects(ganttChartDO, rootObject); assertEquals("No output because there is no further information in the GanttObject tree.", "", ganttChartDO.getGanttObjectsAsXml()); findById(rootObject, getTask(prefix + "2").getId()).setPredecessorOffset(5).setDuration(new BigDecimal("12")); findById(rootObject, getTask(prefix + "1.1").getId()).setDuration(new BigDecimal("2")); ganttChartDao.writeGanttObjects(ganttChartDO, rootObject); String xml = transform(prefix, "<ganttObject id='{}'>" + "<children>" GanttTask ganttObject = ganttChartDao.readGanttObjects(ganttChartDO).getRootObject(); ganttChartDao.writeGanttObjects(ganttChartDO, ganttObject); assertEquals(xml, ganttChartDO.getGanttObjectsAsXml()); assertEquals("duration", BigDecimal.TEN, findById(ganttObject, getTask(prefix + "1").getId()).getDuration()); ganttObject = ganttChartDao.readGanttObjects(ganttChartDO).getRootObject(); ganttChartDao.writeGanttObjects(ganttChartDO, ganttObject); assertEquals("1 has no further information, 2 and 3 are moved anywhere.", transform(prefix, "<ganttObject id='{}'>" + "<children>" + "</ganttObject>"), ganttChartDO.getGanttObjectsAsXml()); findById(ganttObject, getTask(prefix + "1").getId()).setStartDate(null); ganttChartDao.writeGanttObjects(ganttChartDO, ganttObject); ganttObject = ganttChartDao.readGanttObjects(ganttChartDO).getRootObject(); assertNull("Start date should be stored as null (start date of task is set).", findById(ganttObject, getTask(prefix + "1").getId()) findById(ganttObject, getTask(prefix + "1.1").getId()).addChild(
assertExternalTasks(ganttChartData, prefix); final GanttChartDO ganttChartDO = new GanttChartDO().setTask(getTask(prefix + "1")); ganttChartDao.writeGanttObjects(ganttChartDO, ganttChartData.getRootObject()); assertEquals("No output because there is no further information in the GanttObject tree.", "", ganttChartDO.getGanttObjectsAsXml()); GanttChartData data = ganttChartDao.readGanttObjects(ganttChartDO); assertExternalTasks(data, prefix); final GanttTask external2_1 = ganttChartData.getExternalObject(getTask(prefix + "2.1").getId()); findById(ganttChartData, prefix, "1.1.2").setPredecessor(findById(ganttChartData, prefix, "1.2.2")); findById(ganttChartData, prefix, "1.2.2").setPredecessor(null); ganttChartDao.writeGanttObjects(ganttChartDO, ganttChartData.getRootObject()); final String xml = transform(prefix, "<ganttObject id='{1}'>" // + "<children>" + "</ganttObject>"); assertEquals("Gantt objects as xml.", xml, ganttChartDO.getGanttObjectsAsXml()); data = ganttChartDao.readGanttObjects(ganttChartDO); ganttChartDao.writeGanttObjects(ganttChartDO, data.getRootObject()); assertEquals("Gantt objects as xml.", xml, ganttChartDO.getGanttObjectsAsXml()); assertNull("Predecessor was set to null.", findById(data, prefix, "1.2.2").getPredecessor());
type = MimeType.MS_PROJECT; } else { content = ganttChartDao.exportAsXml(ganttChart, true).getBytes(); type = MimeType.XML;
public String exportAsXml(final GanttChart ganttChart, final boolean prettyFormat) { final Document document = DocumentHelper.createDocument(); final XmlObjectWriter writer = getXmlGanttObjectWriter(); final XmlRegistry xmlRegistry = new XmlRegistry(); xmlRegistry.registerConverter(Date.class, new ISODateConverter()); writer.setXmlRegistry(xmlRegistry); final MyRootElement root = new MyRootElement(); root.ganttChart = ganttChart; root.setCreated().setTimeZone(ThreadLocalUserContext.getTimeZone()).setVersion("1.0"); final Element element = writer.write(document, root); // Now, remove all elements with no information from the DOM: final String xml; if (removeUnnecessaryElements(element) == true) { // Nothing to write (no further information in the GanttObject tree given). xml = ""; } else { xml = XmlHelper.toString(element, prettyFormat); } return XmlHelper.XML_HEADER + xml; }
reader.setAliasMap(getXmlGanttObjectAliasMap()).setIgnoreEmptyCollections(true);