Merge branch 'master' of ssh://wisemapping.com/var/git-repos/wise-source

This commit is contained in:
Paulo Gustavo Veiga 2011-03-28 19:54:46 -03:00
commit 52362babbc
14 changed files with 3743 additions and 40 deletions

View File

@ -39,6 +39,7 @@ import java.io.IOException;
public class ExportController extends BaseMultiActionController { public class ExportController extends BaseMultiActionController {
private static final String IMG_EXPORT_FORMAT = "IMG_EXPORT_FORMAT"; private static final String IMG_EXPORT_FORMAT = "IMG_EXPORT_FORMAT";
private static final String MAP_ID_PARAMETER = "mapId"; private static final String MAP_ID_PARAMETER = "mapId";
private static final String MAP_SVG_PARAMETER = "mapSvg";
private static final String EXPORT_FORMAT_PARAMETER = "exportFormat"; private static final String EXPORT_FORMAT_PARAMETER = "exportFormat";
private static final String IMG_SIZE_PARAMETER = "imgSize"; private static final String IMG_SIZE_PARAMETER = "imgSize";
@ -58,6 +59,8 @@ public class ExportController extends BaseMultiActionController {
int mindmapId = Integer.parseInt(mapIdStr); int mindmapId = Integer.parseInt(mapIdStr);
final String mapSvg = request.getParameter(MAP_SVG_PARAMETER);
String formatStr = request.getParameter(EXPORT_FORMAT_PARAMETER); String formatStr = request.getParameter(EXPORT_FORMAT_PARAMETER);
if (IMG_EXPORT_FORMAT.endsWith(formatStr)) { if (IMG_EXPORT_FORMAT.endsWith(formatStr)) {
formatStr = request.getParameter("imgFormat"); formatStr = request.getParameter("imgFormat");
@ -93,7 +96,7 @@ public class ExportController extends BaseMultiActionController {
// Write content ... // Write content ...
final ServletOutputStream outputStream = response.getOutputStream(); final ServletOutputStream outputStream = response.getOutputStream();
mindMap.export(properties, outputStream); mindMap.export(properties, outputStream, mapSvg);
} catch (Throwable e) { } catch (Throwable e) {
@ -136,6 +139,8 @@ public class ExportController extends BaseMultiActionController {
logger.info("Export Controller: generating image WiseMap action"); logger.info("Export Controller: generating image WiseMap action");
final String mapIdStr = request.getParameter(MAP_ID_PARAMETER); final String mapIdStr = request.getParameter(MAP_ID_PARAMETER);
final String mapSvg = request.getParameter(MAP_SVG_PARAMETER);
int mindmapId = Integer.parseInt(mapIdStr); int mindmapId = Integer.parseInt(mapIdStr);
final MindmapService service = getMindmapService(); final MindmapService service = getMindmapService();
final MindMap mindMap = service.getMindmapById(mindmapId); final MindMap mindMap = service.getMindmapById(mindmapId);
@ -155,7 +160,7 @@ public class ExportController extends BaseMultiActionController {
// Write content ... // Write content ...
final ServletOutputStream outputStream = response.getOutputStream(); final ServletOutputStream outputStream = response.getOutputStream();
mindMap.export(imageProperties, outputStream); mindMap.export(imageProperties, outputStream, mapSvg);
} catch (Throwable e) { } catch (Throwable e) {

View File

@ -55,8 +55,10 @@ public class MindmapManagerImpl
hibernateCriteria.add(Restrictions.eq("mindmapId",mindmapId)); hibernateCriteria.add(Restrictions.eq("mindmapId",mindmapId));
hibernateCriteria.addOrder( Order.desc("creationTime")); hibernateCriteria.addOrder( Order.desc("creationTime"));
// Mientras no haya paginacion solo los 10 primeros // Mientras no haya paginacion solo los 10 primeros
hibernateCriteria.setMaxResults(10); // This line throws errors in some environments, so getting all history and taking firsts 10 records
return hibernateCriteria.list(); // hibernateCriteria.setMaxResults(10);
List list = hibernateCriteria.list();
return list.subList(0,(10<list.size()?10:list.size()));
} }
public MindMapHistory getHistory(int historyId) public MindMapHistory getHistory(int historyId)

View File

@ -52,7 +52,7 @@ public class SvgExporter {
private SvgExporter() { private SvgExporter() {
} }
public static void export(ExportProperties properties, MindMap map, OutputStream output) throws TranscoderException, IOException, ParserConfigurationException, SAXException, XMLStreamException, TransformerException, JAXBException, ExportException { public static void export(ExportProperties properties, MindMap map, OutputStream output, String mapSvg) throws TranscoderException, IOException, ParserConfigurationException, SAXException, XMLStreamException, TransformerException, JAXBException, ExportException {
final ExportFormat format = properties.getFormat(); final ExportFormat format = properties.getFormat();
final String imgPath = properties.getBaseImgPath(); final String imgPath = properties.getBaseImgPath();
@ -66,7 +66,7 @@ public class SvgExporter {
transcoder.addTranscodingHint(ImageTranscoder.KEY_WIDTH, size.getWidth()); transcoder.addTranscodingHint(ImageTranscoder.KEY_WIDTH, size.getWidth());
// Create the transcoder input. // Create the transcoder input.
char[] xml = map.generateSvgXml(); char[] xml = map.generateSvgXml(mapSvg);
xml = normalizeSvg(xml, imgPath); xml = normalizeSvg(xml, imgPath);
final CharArrayReader is = new CharArrayReader(xml); final CharArrayReader is = new CharArrayReader(xml);
TranscoderInput input = new TranscoderInput(is); TranscoderInput input = new TranscoderInput(is);
@ -87,7 +87,7 @@ public class SvgExporter {
transcoder.addTranscodingHint(ImageTranscoder.KEY_WIDTH, size.getWidth()); transcoder.addTranscodingHint(ImageTranscoder.KEY_WIDTH, size.getWidth());
// Create the transcoder input. // Create the transcoder input.
final char[] xml = map.generateSvgXml(); final char[] xml = map.generateSvgXml(mapSvg);
char[] svgXml = normalizeSvg(xml, imgPath); char[] svgXml = normalizeSvg(xml, imgPath);
final CharArrayReader is = new CharArrayReader(svgXml); final CharArrayReader is = new CharArrayReader(svgXml);
TranscoderInput input = new TranscoderInput(is); TranscoderInput input = new TranscoderInput(is);
@ -102,7 +102,7 @@ public class SvgExporter {
final Transcoder transcoder = new PDFTranscoder(); final Transcoder transcoder = new PDFTranscoder();
// Create the transcoder input. // Create the transcoder input.
final char[] xml = map.generateSvgXml(); final char[] xml = map.generateSvgXml(mapSvg);
char[] svgXml = normalizeSvg(xml, imgPath); char[] svgXml = normalizeSvg(xml, imgPath);
final CharArrayReader is = new CharArrayReader(svgXml); final CharArrayReader is = new CharArrayReader(svgXml);
TranscoderInput input = new TranscoderInput(is); TranscoderInput input = new TranscoderInput(is);
@ -113,7 +113,7 @@ public class SvgExporter {
break; break;
} }
case SVG: { case SVG: {
final char[] xml = map.generateSvgXml(); final char[] xml = map.generateSvgXml(mapSvg);
char[] svgXml = normalizeSvg(xml, imgPath); char[] svgXml = normalizeSvg(xml, imgPath);
output.write(new String(svgXml).getBytes("UTF-8")); output.write(new String(svgXml).getBytes("UTF-8"));
break; break;

View File

@ -215,10 +215,13 @@ public class MindMap {
return tags; return tags;
} }
public char[] generateSvgXml() public char[] generateSvgXml(String mapSvg)
throws IOException, JAXBException { throws IOException, JAXBException {
String svgText = mapSvg;
final MindMapNative mindmapNativeBrowser = this.getNativeBrowser(); final MindMapNative mindmapNativeBrowser = this.getNativeBrowser();
String svgText = mindmapNativeBrowser.getUnzippedSvgXml(); if(svgText==null){
svgText = mindmapNativeBrowser.getUnzippedSvgXml();
}
if (svgText == null || svgText.length() == 0) { if (svgText == null || svgText.length() == 0) {
// The map must be saved using IE. Convert VML to SVG. // The map must be saved using IE. Convert VML to SVG.
@ -265,8 +268,8 @@ public class MindMap {
this.creationTime = creationTime; this.creationTime = creationTime;
} }
public void export(final ExportProperties properties, OutputStream output) throws JAXBException, TranscoderException, TransformerException, IOException, ParserConfigurationException, ExportException, SAXException, XMLStreamException { public void export(final ExportProperties properties, OutputStream output, String mapSvg) throws JAXBException, TranscoderException, TransformerException, IOException, ParserConfigurationException, ExportException, SAXException, XMLStreamException {
SvgExporter.export(properties, this, output); SvgExporter.export(properties, this, output, mapSvg);
} }
public void setOwner(User owner) { public void setOwner(User owner) {

View File

@ -38,6 +38,7 @@
<form method="post" id="printForm" name="printForm" action='<c:url value="export.htm"/>' style="height:100%;" target="${mindmap.title}"> <form method="post" id="printForm" name="printForm" action='<c:url value="export.htm"/>' style="height:100%;" target="${mindmap.title}">
<input type="hidden" name="action" value="print" > <input type="hidden" name="action" value="print" >
<input type="hidden" name="mapId" value="${mindmap.id}" > <input type="hidden" name="mapId" value="${mindmap.id}" >
<input type="hidden" name="mapSvg" value="">
</form> </form>
<div id="waitDialog" style="display:none"> <div id="waitDialog" style="display:none">
@ -76,6 +77,7 @@
var isTryMode = ${editorTryMode}; var isTryMode = ${editorTryMode};
function printMap() { function printMap() {
document.printForm.mapSvg.value = $("workspaceContainer").innerHTML;
document.printForm.submit(); document.printForm.submit();
} }
</script> </script>

View File

@ -7,6 +7,7 @@
<form method="post" id="exportForm" name="exportForm" action="<c:url value="export.htm"/>" style="height:100%;"> <form method="post" id="exportForm" name="exportForm" action="<c:url value="export.htm"/>" style="height:100%;">
<input type="hidden" name="action" value="export"/> <input type="hidden" name="action" value="export"/>
<input type="hidden" name="mapId" value="${mindmap.id}"/> <input type="hidden" name="mapId" value="${mindmap.id}"/>
<input type="hidden" name="mapSvg" value=""/>
<table> <table>
<tbody> <tbody>
<tr> <tr>
@ -88,4 +89,6 @@
}); });
document.exportForm.mapSvg.value = $("workspaceContainer").innerHTML;
</script> </script>

View File

@ -227,10 +227,10 @@
<spring:message code="PUBLISH"/> <spring:message code="PUBLISH"/>
</a> </a>
</c:if> </c:if>
<a href="export.htm?mapId=${mindmap.id}" <%--<a href="export.htm?mapId=${mindmap.id}"
rel="moodalbox 600px 400px" title="<spring:message code="EXPORT_DETAILS"/>"> rel="moodalbox 600px 400px" title="<spring:message code="EXPORT_DETAILS"/>">
<spring:message code="EXPORT"/> <spring:message code="EXPORT"/>
</a> </a>--%>
<a href="javascript:printMap(${mindmap.id});"> <a href="javascript:printMap(${mindmap.id});">
<spring:message code="PRINT"/> <spring:message code="PRINT"/>
</a> </a>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

View File

@ -0,0 +1,470 @@
<svg focusable="true" id="workspace" width="1600" height="307"
viewBox="-560 -107.44999999999999 1120 214.89999999999998" preserveAspectRatio="none">
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="306,51.5 316,51.5 316,69.5 321,74.5 353.5,74.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1" points="306,51.5 361.5,50.5"
visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="306,51.5 316,51.5 316,31.5 321,26.5 377,26.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="244.5,-50 254.5,-50 254.5,46.5 259.5,51.5 305,51.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="306,-26.5 316,-26.5 316,-7.5 321,-2.5 353.5,-2.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1" points="306,-26.5 361.5,-26.5"
visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="306,-26.5 316,-26.5 316,-45.5 321,-50.5 377,-50.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="244.5,-50 254.5,-50 254.5,-31.5 259.5,-26.5 305,-26.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="318,-92.5 328,-92.5 328,-85.5 333,-80.5 395,-80.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="318,-92.5 328,-92.5 328,-99.5 333,-104.5 469.5,-104.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="244.5,-50 254.5,-50 254.5,-87.5 259.5,-92.5 317,-92.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="244.5,-50 254.5,-50 254.5,-126.5 259.5,-131.5 331.5,-131.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="244.5,-50 254.5,-50 254.5,-150.5 259.5,-155.5 305.5,-155.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="244.5,-50 254.5,-50 254.5,-174.5 259.5,-179.5 359,-179.5" visibility="visible"/>
<line stroke-width="1px" stroke="#495879" x2="166.5" y2="-50" x1="0" y1="0" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="323.5,150 333.5,150 333.5,156.5 338.5,161.5 394,161.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="323.5,150 333.5,150 333.5,142.5 338.5,137.5 438.5,137.5" visibility="visible"/>
<line stroke-width="1px" stroke="#495879" x2="219.5" y2="150" x1="0" y1="0" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1" points="-479.5,-23.5 -646,-23.5"
visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="-369.5,-50 -379.5,-50 -379.5,-28.5 -384.5,-23.5 -478.5,-23.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1" points="-467,-53.5 -616.5,-53.5"
visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="-369.5,-50 -379.5,-50 -379.5,-48.5 -384.5,-53.5 -466,-53.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="-369.5,-50 -379.5,-50 -379.5,-75.5 -384.5,-80.5 -480.5,-80.5" visibility="visible"/>
<line stroke-width="1px" stroke="#495879" x2="-249.5" y2="-50" x1="0" y1="0" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="-254,49.5 -264,49.5 -264,82.5 -269,87.5 -337,87.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1" points="-488.5,60.5 -549.5,59.5"
visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="-254,49.5 -264,49.5 -264,55.5 -269,60.5 -487.5,60.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="-254,49.5 -264,49.5 -264,38.5 -269,33.5 -315,33.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="-254,49.5 -264,49.5 -264,14.5 -269,9.5 -401,9.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1" points="-186.5,50 -253,49.5"
visibility="visible"/>
<line stroke-width="1px" stroke="#495879" x2="-134.5" y2="50" x1="0" y1="0" visibility="visible"/>
<rect width="50" height="10" x="5" y="5" stroke-width="1px" stroke="#FF9933" fill="#CC0033" stroke-opacity="0.4"
fill-opacity="0.4" visibility="hidden"/>
<polyline fill="none" stroke-width="1px" stroke="#CC0033" stroke-opacity="0.4" fill-opacity="0.4"
visibility="hidden"/>
<line stroke-width="1px" stroke="#CC0033" stroke-opacity="0.4" fill-opacity="0.4" visibility="hidden"/>
<rect width="50" height="10" x="5" y="5" stroke-width="1px" stroke="#FF9933" fill="#CC0033" stroke-opacity="0.4"
fill-opacity="0.4" visibility="hidden"/>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-401, -7) scale(1)"
visibility="visible">
<rect width="132" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="129"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">Accesible desde todos lados
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-315, 17) scale(1)"
visibility="visible">
<rect width="46" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="43"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">Mobile
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-550, 43) scale(1)"
visibility="visible">
<rect width="47" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="44"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">widget
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-488, 44) scale(1)"
visibility="visible">
<rect width="219" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="-3" cy="17" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="visible" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="216"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">Posibilidad de acceso desde la
pagina insitucional
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-337, 71) scale(1)"
visibility="visible">
<rect width="68" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="65"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">Pay per use
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-253, 33) scale(1)"
visibility="visible">
<rect width="52" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="-3" cy="17" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="visible" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="49"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">porque?
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-186, 39) scale(1)"
visibility="visible">
<rect width="57" height="28" rx="4.2" ry="4.2" x="-2" y="-3" stroke-width="1px" stroke="#77555a" fill="#dbe2e6"
stroke-opacity="0" fill-opacity="0"/>
<rect width="53" height="22" rx="3.3" ry="3.3" x="0" y="0" stroke-width="0.5px" stroke="#33a36f" fill="#a6ffc2"
style="cursor: move;"/>
<text focusable="true" font-family="verdana" font-size="10.75" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="12" x="22" visibility="visible">web
</text>
<g preserveAspectRatio="none" focusable="true" width="14" height="12" transform="translate(4, 4) scale(1)">
<image href="../images/lightbulb.png" width="12" height="12" y="0" x="2"/>
</g>
<ellipse width="6" height="6" rx="3" ry="3" cx="-3" cy="11" stroke-width="1px" fill="#a6ffc2"
style="cursor: default;" visibility="visible" stroke="#33a36f"/>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-481, -97) scale(1)"
visibility="visible">
<rect width="97" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="94"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">Cobrar por calculo?
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-617, -70) scale(1)"
visibility="visible">
<rect width="135" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="132"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">No lo usan por varios meses
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-466, -70) scale(1)"
visibility="visible">
<rect width="82" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="-3" cy="17" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="visible" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="79"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">costo mensual?
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-646, -40) scale(1)"
visibility="visible">
<rect width="152" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="149"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">vender el servicio no el software
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-479, -40) scale(1)"
visibility="visible">
<rect width="95" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="-3" cy="17" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="visible" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="92"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">cobro por servicio?
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-369, -61) scale(1)"
visibility="visible">
<rect width="125" height="28" rx="4.2" ry="4.2" x="-2" y="-3" stroke-width="1px" stroke="#77555a" fill="#dbe2e6"
stroke-opacity="0" fill-opacity="0"/>
<rect width="121" height="22" rx="3.3" ry="3.3" x="0" y="0" stroke-width="0.5px" stroke="#385b80" fill="#7096ff"
style="cursor: move;"/>
<text focusable="true" font-family="verdana" font-size="10.75" font-style="normal" font-weight="normal"
fill="#ffffff" style="cursor: move;" y="12" x="22" visibility="visible">Plan de Negocio
</text>
<g preserveAspectRatio="none" focusable="true" width="14" height="12" transform="translate(4, 4) scale(1)">
<image href="../images/money.png" width="12" height="12" y="0" x="2"/>
</g>
<ellipse width="6" height="6" rx="3" ry="3" cx="-3" cy="11" stroke-width="1px" fill="#7096ff"
style="cursor: default;" visibility="visible" stroke="#385b80"/>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(342, 121) scale(1)"
visibility="visible">
<rect width="101" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="98"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="32" visibility="visible">ascTimeTable
</text>
<g preserveAspectRatio="none" focusable="true" width="26" height="12" transform="translate(3, 3) scale(1)">
<image href="../images/add.png" width="12" height="12" y="0" x="2"/>
<image href="../images/world_link.png" width="12" height="12" y="0" x="14"/>
</g>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(342, 145) scale(1)"
visibility="visible">
<rect width="56" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="53"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="20" visibility="visible">lantiv
</text>
<g preserveAspectRatio="none" focusable="true" width="14" height="12" transform="translate(3, 3) scale(1)">
<image href="../images/world_link.png" width="12" height="12" y="0" x="2"/>
</g>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(218, 139) scale(1)"
visibility="visible">
<rect width="109" height="28" rx="4.2" ry="4.2" x="-2" y="-3" stroke-width="1px" stroke="#77555a" fill="#dbe2e6"
stroke-opacity="0" fill-opacity="0"/>
<rect width="105" height="22" rx="3.3" ry="3.3" x="0" y="0" stroke-width="0.5px" stroke="#806238" fill="#d94e4e"
style="cursor: move;"/>
<text focusable="true" font-family="verdana" font-size="10.75" font-style="normal" font-weight="normal"
fill="#ffffff" style="cursor: move;" y="12" x="22" visibility="visible">Competencia
</text>
<g preserveAspectRatio="none" focusable="true" width="14" height="12" transform="translate(4, 4) scale(1)">
<image href="../images/chart_curve.png" width="12" height="12" y="0" x="2"/>
</g>
<ellipse width="6" height="6" rx="3" ry="3" cx="108" cy="11" stroke-width="1px" fill="#d94e4e"
style="cursor: default;" visibility="visible" stroke="#806238"/>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(263, -196) scale(1)"
visibility="visible">
<rect width="100" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="97"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">embeddable widget
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(263, -172) scale(1)"
visibility="visible">
<rect width="47" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="44"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">mobile
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(263, -148) scale(1)"
visibility="visible">
<rect width="73" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="70"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">Very intuitive
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(337, -121) scale(1)"
visibility="visible">
<rect width="137" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="134"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">ability to create custom rules
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(337, -97) scale(1)"
visibility="visible">
<rect width="62" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="59"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">Distribuido
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(263, -109) scale(1)"
visibility="visible">
<rect width="58" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="57" cy="17" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="visible" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="55"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">Algorithm
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(325, -67) scale(1)"
visibility="visible">
<rect width="56" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="53"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">clipboard
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(325, -43) scale(1)"
visibility="visible">
<rect width="41" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="38"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">excel
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(325, -19) scale(1)"
visibility="visible">
<rect width="33" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="30"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">csv
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(263, -43) scale(1)"
visibility="visible">
<rect width="46" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="45" cy="17" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="visible" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="43"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">import
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(325, 10) scale(1)"
visibility="visible">
<rect width="56" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="53"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">clipboard
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(325, 34) scale(1)"
visibility="visible">
<rect width="41" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="38"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">excel
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(325, 58) scale(1)"
visibility="visible">
<rect width="33" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="30"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">csv
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(263, 35) scale(1)"
visibility="visible">
<rect width="46" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="45" cy="17" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="visible" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="43"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">export
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(165, -61) scale(1)"
visibility="visible">
<rect width="83" height="28" rx="4.2" ry="4.2" x="-2" y="-3" stroke-width="1px" stroke="#77555a" fill="#dbe2e6"
stroke-opacity="0" fill-opacity="0"/>
<rect width="79" height="22" rx="3.3" ry="3.3" x="0" y="0" stroke-width="0.5px" stroke="#6c8038" fill="#d9ff70"
style="cursor: move;"/>
<text focusable="true" font-family="verdana" font-size="10.75" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="12" x="22" visibility="visible">Features
</text>
<g preserveAspectRatio="none" focusable="true" width="14" height="12" transform="translate(4, 4) scale(1)">
<image href="../images/connect.png" width="12" height="12" y="0" x="2"/>
</g>
<ellipse width="6" height="6" rx="3" ry="3" cx="82" cy="11" stroke-width="1px" fill="#d9ff70"
style="cursor: default;" visibility="visible" stroke="#6c8038"/>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-55, -17) scale(1)"
visibility="visible">
<rect width="114" height="41" rx="6.1499999999999995" ry="6.1499999999999995" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#c7d8ff" stroke-opacity="1" fill-opacity="1" style="cursor: default;"/>
<rect width="110" height="35" rx="5.25" ry="5.25" x="0" y="0" stroke-width="0.5px" fill="#f7f7f7"
stroke="#023BB9" style="cursor: default;"/>
<text focusable="true" font-family="verdana" font-size="13.4375" font-style="normal" font-weight="bold"
fill="#023BB9" style="cursor: default;" y="19" x="18" visibility="visible">timetable
</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -0,0 +1,470 @@
<svg focusable="true" id="workspace" width="1600" height="307"
viewBox="-560 -107.44999999999999 1120 214.89999999999998" preserveAspectRatio="none">
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="320,51.5 330,51.5 330,69.5 335,74.5 367.5,74.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1" points="320,51.5 375.5,50.5"
visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="320,51.5 330,51.5 330,31.5 335,26.5 391,26.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="258.5,-50 268.5,-50 268.5,46.5 273.5,51.5 319,51.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="320,-26.5 330,-26.5 330,-7.5 335,-2.5 367.5,-2.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1" points="320,-26.5 375.5,-26.5"
visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="320,-26.5 330,-26.5 330,-45.5 335,-50.5 391,-50.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="258.5,-50 268.5,-50 268.5,-31.5 273.5,-26.5 319,-26.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="332,-92.5 342,-92.5 342,-85.5 347,-80.5 409,-80.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="332,-92.5 342,-92.5 342,-99.5 347,-104.5 483.5,-104.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="258.5,-50 268.5,-50 268.5,-87.5 273.5,-92.5 331,-92.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="258.5,-50 268.5,-50 268.5,-126.5 273.5,-131.5 345.5,-131.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="258.5,-50 268.5,-50 268.5,-150.5 273.5,-155.5 319.5,-155.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="258.5,-50 268.5,-50 268.5,-174.5 273.5,-179.5 373,-179.5" visibility="visible"/>
<line stroke-width="1px" stroke="#495879" x2="180.5" y2="-50" x1="0" y1="0" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="350.5,150 360.5,150 360.5,156.5 365.5,161.5 421,161.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="350.5,150 360.5,150 360.5,142.5 365.5,137.5 465.5,137.5" visibility="visible"/>
<line stroke-width="1px" stroke="#495879" x2="246.5" y2="150" x1="0" y1="0" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1" points="-514.5,-23.5 -681,-23.5"
visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="-404.5,-50 -414.5,-50 -414.5,-28.5 -419.5,-23.5 -513.5,-23.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1" points="-502,-53.5 -651.5,-53.5"
visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="-404.5,-50 -414.5,-50 -414.5,-48.5 -419.5,-53.5 -501,-53.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="-404.5,-50 -414.5,-50 -414.5,-75.5 -419.5,-80.5 -515.5,-80.5" visibility="visible"/>
<line stroke-width="1px" stroke="#495879" x2="-284.5" y2="-50" x1="0" y1="0" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="-255,49.5 -265,49.5 -265,82.5 -270,87.5 -338,87.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1" points="-489.5,60.5 -550.5,59.5"
visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="-255,49.5 -265,49.5 -265,55.5 -270,60.5 -488.5,60.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="-255,49.5 -265,49.5 -265,38.5 -270,33.5 -316,33.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1"
points="-255,49.5 -265,49.5 -265,14.5 -270,9.5 -402,9.5" visibility="visible"/>
<polyline fill="none" stroke-width="1px" stroke="#495879" stroke-opacity="1" points="-187.5,50 -254,49.5"
visibility="visible"/>
<line stroke-width="1px" stroke="#495879" x2="-135.5" y2="50" x1="0" y1="0" visibility="visible"/>
<rect width="50" height="10" x="5" y="5" stroke-width="1px" stroke="#FF9933" fill="#CC0033" stroke-opacity="0.4"
fill-opacity="0.4" visibility="hidden"/>
<polyline fill="none" stroke-width="1px" stroke="#CC0033" stroke-opacity="0.4" fill-opacity="0.4"
visibility="hidden"/>
<line stroke-width="1px" stroke="#CC0033" stroke-opacity="0.4" fill-opacity="0.4" visibility="hidden"/>
<rect width="50" height="10" x="5" y="5" stroke-width="1px" stroke="#FF9933" fill="#CC0033" stroke-opacity="0.4"
fill-opacity="0.4" visibility="hidden"/>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-402, -7) scale(1)"
visibility="visible">
<rect width="132" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="129"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">Accesible desde todos lados
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-316, 17) scale(1)"
visibility="visible">
<rect width="46" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="43"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">Mobile
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-551, 43) scale(1)"
visibility="visible">
<rect width="47" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="44"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">widget
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-489, 44) scale(1)"
visibility="visible">
<rect width="219" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="-3" cy="17" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="visible" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="216"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">Posibilidad de acceso desde la
pagina insitucional
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-338, 71) scale(1)"
visibility="visible">
<rect width="68" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="65"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">Pay per use
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-254, 33) scale(1)"
visibility="visible">
<rect width="52" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="-3" cy="17" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="visible" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="49"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">porque?
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-187, 39) scale(1)"
visibility="visible">
<rect width="57" height="28" rx="4.2" ry="4.2" x="-2" y="-3" stroke-width="1px" stroke="#77555a" fill="#dbe2e6"
stroke-opacity="0" fill-opacity="0"/>
<rect width="53" height="22" rx="3.3" ry="3.3" x="0" y="0" stroke-width="0.5px" stroke="#33a36f" fill="#a6ffc2"
style="cursor: move;"/>
<text focusable="true" font-family="verdana" font-size="10.75" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="12" x="22" visibility="visible">web
</text>
<g preserveAspectRatio="none" focusable="true" width="14" height="12" transform="translate(4, 4) scale(1)">
<image href="../images/lightbulb.png" width="12" height="12" y="0" x="2"/>
</g>
<ellipse width="6" height="6" rx="3" ry="3" cx="-3" cy="11" stroke-width="1px" fill="#a6ffc2"
style="cursor: default;" visibility="visible" stroke="#33a36f"/>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-516, -97) scale(1)"
visibility="visible">
<rect width="97" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="94"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">Cobrar por calculo?
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-652, -70) scale(1)"
visibility="visible">
<rect width="135" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="132"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">No lo usan por varios meses
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-501, -70) scale(1)"
visibility="visible">
<rect width="82" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="-3" cy="17" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="visible" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="79"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">costo mensual?
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-681, -40) scale(1)"
visibility="visible">
<rect width="152" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="149"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">vender el servicio no el software
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-514, -40) scale(1)"
visibility="visible">
<rect width="95" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="-3" cy="17" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="visible" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="92"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">cobro por servicio?
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-404, -61) scale(1)"
visibility="visible">
<rect width="125" height="28" rx="4.2" ry="4.2" x="-2" y="-3" stroke-width="1px" stroke="#77555a" fill="#dbe2e6"
stroke-opacity="0" fill-opacity="0"/>
<rect width="121" height="22" rx="3.3" ry="3.3" x="0" y="0" stroke-width="0.5px" stroke="#385b80" fill="#7096ff"
style="cursor: move;"/>
<text focusable="true" font-family="verdana" font-size="10.75" font-style="normal" font-weight="normal"
fill="#ffffff" style="cursor: move;" y="12" x="22" visibility="visible">Plan de Negocio
</text>
<g preserveAspectRatio="none" focusable="true" width="14" height="12" transform="translate(4, 4) scale(1)">
<image href="../images/money.png" width="12" height="12" y="0" x="2"/>
</g>
<ellipse width="6" height="6" rx="3" ry="3" cx="-3" cy="11" stroke-width="1px" fill="#7096ff"
style="cursor: default;" visibility="visible" stroke="#385b80"/>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(369, 121) scale(1)"
visibility="visible">
<rect width="101" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="98"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="32" visibility="visible">ascTimeTable
</text>
<g preserveAspectRatio="none" focusable="true" width="26" height="12" transform="translate(3, 3) scale(1)">
<image href="../images/add.png" width="12" height="12" y="0" x="2"/>
<image href="../images/world_link.png" width="12" height="12" y="0" x="14"/>
</g>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(369, 145) scale(1)"
visibility="visible">
<rect width="56" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="53"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="20" visibility="visible">lantiv
</text>
<g preserveAspectRatio="none" focusable="true" width="14" height="12" transform="translate(3, 3) scale(1)">
<image href="../images/world_link.png" width="12" height="12" y="0" x="2"/>
</g>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(245, 139) scale(1)"
visibility="visible">
<rect width="109" height="28" rx="4.2" ry="4.2" x="-2" y="-3" stroke-width="1px" stroke="#77555a" fill="#dbe2e6"
stroke-opacity="0" fill-opacity="0"/>
<rect width="105" height="22" rx="3.3" ry="3.3" x="0" y="0" stroke-width="0.5px" stroke="#806238" fill="#d94e4e"
style="cursor: move;"/>
<text focusable="true" font-family="verdana" font-size="10.75" font-style="normal" font-weight="normal"
fill="#ffffff" style="cursor: move;" y="12" x="22" visibility="visible">Competencia
</text>
<g preserveAspectRatio="none" focusable="true" width="14" height="12" transform="translate(4, 4) scale(1)">
<image href="../images/chart_curve.png" width="12" height="12" y="0" x="2"/>
</g>
<ellipse width="6" height="6" rx="3" ry="3" cx="108" cy="11" stroke-width="1px" fill="#d94e4e"
style="cursor: default;" visibility="visible" stroke="#806238"/>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(277, -196) scale(1)"
visibility="visible">
<rect width="100" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="97"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">embeddable widget
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(277, -172) scale(1)"
visibility="visible">
<rect width="47" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="44"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">mobile
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(277, -148) scale(1)"
visibility="visible">
<rect width="73" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="70"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">Very intuitive
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(351, -121) scale(1)"
visibility="visible">
<rect width="137" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="134"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">ability to create custom rules
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(351, -97) scale(1)"
visibility="visible">
<rect width="62" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="59"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">Distribuido
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(277, -109) scale(1)"
visibility="visible">
<rect width="58" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="57" cy="17" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="visible" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="55"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">Algorithm
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(339, -67) scale(1)"
visibility="visible">
<rect width="56" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="53"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">clipboard
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(339, -43) scale(1)"
visibility="visible">
<rect width="41" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="38"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">excel
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(339, -19) scale(1)"
visibility="visible">
<rect width="33" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="30"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">csv
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(277, -43) scale(1)"
visibility="visible">
<rect width="46" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="45" cy="17" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="visible" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="43"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">import
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(339, 10) scale(1)"
visibility="visible">
<rect width="56" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="53"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">clipboard
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(339, 34) scale(1)"
visibility="visible">
<rect width="41" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="38"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">excel
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(339, 58) scale(1)"
visibility="visible">
<rect width="33" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="3" cy="3" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="hidden" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="30"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">csv
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(277, 35) scale(1)"
visibility="visible">
<rect width="46" height="23" rx="3.4499999999999997" ry="3.4499999999999997" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#dbe2e6" stroke-opacity="0" fill-opacity="0"/>
<ellipse width="6" height="6" rx="3" ry="3" cx="45" cy="17" stroke-width="1px" fill="#E0E5EF"
style="cursor: default;" visibility="visible" stroke="#023BB9"/>
<line stroke-width="1px" stroke="#495879" style="cursor: move;" visibility="hidden" x1="-1" y1="17" x2="43"
y2="17"/>
<text focusable="true" font-family="verdana" font-size="8.0625" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="9" x="6" visibility="visible">export
</text>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(179, -61) scale(1)"
visibility="visible">
<rect width="83" height="28" rx="4.2" ry="4.2" x="-2" y="-3" stroke-width="1px" stroke="#77555a" fill="#dbe2e6"
stroke-opacity="0" fill-opacity="0"/>
<rect width="79" height="22" rx="3.3" ry="3.3" x="0" y="0" stroke-width="0.5px" stroke="#6c8038" fill="#d9ff70"
style="cursor: move;"/>
<text focusable="true" font-family="verdana" font-size="10.75" font-style="normal" font-weight="normal"
fill="#525c61" style="cursor: move;" y="12" x="22" visibility="visible">Features
</text>
<g preserveAspectRatio="none" focusable="true" width="14" height="12" transform="translate(4, 4) scale(1)">
<image href="../images/connect.png" width="12" height="12" y="0" x="2"/>
</g>
<ellipse width="6" height="6" rx="3" ry="3" cx="82" cy="11" stroke-width="1px" fill="#d9ff70"
style="cursor: default;" visibility="visible" stroke="#6c8038"/>
</g>
<g preserveAspectRatio="none" focusable="true" width="100" height="100" transform="translate(-55, -17) scale(1)"
visibility="visible">
<rect width="114" height="41" rx="6.1499999999999995" ry="6.1499999999999995" x="-2" y="-3" stroke-width="1px"
stroke="#77555a" fill="#c7d8ff" stroke-opacity="1" fill-opacity="1" style="cursor: default;"/>
<rect width="110" height="35" rx="5.25" ry="5.25" x="0" y="0" stroke-width="0.5px" fill="#f7f7f7"
stroke="#023BB9" style="cursor: default;"/>
<text focusable="true" font-family="verdana" font-size="13.4375" font-style="normal" font-weight="bold"
fill="#023BB9" style="cursor: default;" y="19" x="18" visibility="visible">timetable
</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -3,11 +3,7 @@ package com.wisemapping.test.export;
import com.wisemapping.exporter.ExportException; import com.wisemapping.exporter.ExportException;
import com.wisemapping.exporter.ExportFormat; import com.wisemapping.exporter.ExportFormat;
import com.wisemapping.exporter.ExportProperties; import com.wisemapping.exporter.ExportProperties;
import com.wisemapping.exporter.freemind.FreemindExporter;
import com.wisemapping.importer.ImportFormat;
import com.wisemapping.importer.Importer;
import com.wisemapping.importer.ImporterException; import com.wisemapping.importer.ImporterException;
import com.wisemapping.importer.ImporterFactory;
import com.wisemapping.model.MindMap; import com.wisemapping.model.MindMap;
import com.wisemapping.model.MindMapNative; import com.wisemapping.model.MindMapNative;
@ -23,15 +19,13 @@ import javax.xml.parsers.ParserConfigurationException;
import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamException;
import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerException;
import java.io.*; import java.io.*;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
@Test @Test
public class ExportTest { public class ExportTest {
private static final String DATA_DIR_PATH = "src/test/data/svg/"; private static final String DATA_DIR_PATH = "src/test/data/svg/";
@Test(dataProvider = "Data-Provider-Function") @Test(dataProvider = "Data-Provider-Function")
public void exportSvgTest(@NotNull final File svgFile, @NotNull final File pngFile) throws ImporterException, IOException, ExportException { public void exportSvgTest(@NotNull final File svgFile, @NotNull final File pngFile) throws ImporterException, IOException, ExportException, TransformerException, XMLStreamException, JAXBException, SAXException, TranscoderException, ParserConfigurationException {
BufferedReader reader = null; BufferedReader reader = null;
StringBuffer buffer = new StringBuffer(); StringBuffer buffer = new StringBuffer();
@ -57,27 +51,44 @@ public class ExportTest {
nativeBrowser.setSvgXml(svgXml); nativeBrowser.setSvgXml(svgXml);
mindMap.setNativeBrowser(nativeBrowser); mindMap.setNativeBrowser(nativeBrowser);
//Export to PNG if(pngFile.exists()){
OutputStream outputStream = new FileOutputStream(pngFile, false); // Export mile content ...
try { final ByteArrayOutputStream bos = new ByteArrayOutputStream();
mindMap.export(properties, outputStream); mindMap.export(properties, bos, svgXml);
outputStream.close();
System.out.println("finished"); // Load rec file co
} catch (JAXBException e) { final FileInputStream fis = new FileInputStream(pngFile);
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. final InputStreamReader isr = new InputStreamReader(fis);
} catch (TranscoderException e) { final BufferedReader br = new BufferedReader(isr);
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
} catch (TransformerException e) { final StringBuilder recContent = new StringBuilder();
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. String line = br.readLine();
} catch (ParserConfigurationException e) { while (line != null) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. recContent.append(line);
} catch (SAXException e) { line = br.readLine();
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
} catch (XMLStreamException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
} }
fis.close();
//Since line separator chenges between \r and \n, lets read line by line
final String exportContent = new String(bos.toByteArray());
BufferedReader expBuf = new BufferedReader(new StringReader(exportContent));
final StringBuilder expContent = new StringBuilder();
String expLine = expBuf.readLine();
while (expLine != null) {
expContent.append(expLine);
expLine = expBuf.readLine();
}
Assert.assertEquals(expContent.toString().trim(), expContent.toString().trim());
}
else{
OutputStream outputStream = new FileOutputStream(pngFile, false);
mindMap.export(properties, outputStream, svgXml);
outputStream.close();
}
} }
//This function will provide the parameter data //This function will provide the parameter data