From 5b66b78810fcc21aca9e65c19cdce1e8e758e0c1 Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Fri, 6 Dec 2013 17:23:49 +0000 Subject: [PATCH] fixed bug when saving sequnces in workspace git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/reports@86687 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../client/Presenter/Presenter.java | 3 ++- .../client/model/TemplateComponent.java | 12 +++++++---- .../client/targets/ClientReportReference.java | 4 +++- .../client/targets/SequenceWidget.java | 9 +++++---- .../server/servlet/ReportServiceImpl.java | 20 ++++++++++--------- 5 files changed, 29 insertions(+), 19 deletions(-) diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/Presenter/Presenter.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/Presenter/Presenter.java index bda3d6e..dcbf43f 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/Presenter/Presenter.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/Presenter/Presenter.java @@ -1208,8 +1208,9 @@ public class Presenter { @Override public void onSuccess(Model toLoad) { - if (toLoad != null) + if (toLoad != null) { loadModel(toLoad, type == VMETypeIdentifier.Vme); + } else Window.alert("Could not Load Report Model, error on server."); } diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/model/TemplateComponent.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/model/TemplateComponent.java index 980e0cc..38ed88b 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/model/TemplateComponent.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/model/TemplateComponent.java @@ -374,10 +374,12 @@ public class TemplateComponent { GWT.log("FOUND Master SEQUENCE trying getGroup"); ReportReferences refs = (ReportReferences) sc.getPossibleContent(); - ArrayList tuple = refs.getTuples(); - - ClientReportReference cmSeq = new ClientReportReference(presenter, refs.getRefType(), tuple, refs.isSingleRelation()); - this.content = cmSeq; + if (refs != null) { + ArrayList tuple = refs.getTuples(); + ClientReportReference cmSeq = new ClientReportReference(presenter, refs.getRefType(), tuple, refs.isSingleRelation()); + this.content = cmSeq; + } else + this.content = new HTML(""); break; } } @@ -521,8 +523,10 @@ public class TemplateComponent { * @return */ private ArrayList getSerializableSequence(ClientSequence repSeq) { + GWT.log("Serializing sequence ... "); ArrayList sComps = new ArrayList(); for (TemplateComponent tc : repSeq.getGroupedComponents()) { + GWT.log(" Got " + tc.getType()); sComps.add(tc.getSerializable()); } return sComps; diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientReportReference.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientReportReference.java index 8e74b16..b316c88 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientReportReference.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientReportReference.java @@ -8,6 +8,7 @@ import org.gcube.portlets.d4sreporting.common.shared.RepeatableSequence; import org.gcube.portlets.d4sreporting.common.shared.Tuple; import org.gcube.portlets.user.reportgenerator.client.Presenter.Presenter; import org.gcube.portlets.user.reportgenerator.client.model.TemplateComponent; +import org.gcube.portlets.user.reportgenerator.client.model.TemplateModel; import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier; import com.google.gwt.core.shared.GWT; @@ -65,7 +66,8 @@ public class ClientReportReference extends Composite implements ClientSequence { private void shrinkComponents(ArrayList tupleList) { for (Tuple seq : tupleList) { for (BasicComponent bc : seq.getGroupedComponents()) { - bc.setWidth(bc.getWidth()-(indentationValue+5)); + if (bc.getWidth() >= (TemplateModel.TEMPLATE_WIDTH - 50)) + bc.setWidth(bc.getWidth()-(indentationValue+5)); } } } diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/SequenceWidget.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/SequenceWidget.java index 4c16cd3..c86b7dc 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/SequenceWidget.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/SequenceWidget.java @@ -142,13 +142,14 @@ public class SequenceWidget extends Composite { public void clearAssociation() { GWT.log("Clearing Association"); - //in the MODEL + //in the MODEL leave only the delimiters + ArrayList cleanedRef = new ArrayList(); for (BasicComponent bc : repSequence.getGroupedComponents()) { - if (bc.getType() == ComponentType.BODY_NOT_FORMATTED) { - bc.setPossibleContent(""); - bc.setMetadata(new ArrayList()); + if (bc.getType() == ComponentType.REPEAT_SEQUENCE_DELIMITER) { + cleanedRef.add(bc); } } + repSequence.setGroupedComponents(cleanedRef); //in the VIEW for (TemplateComponent tc : seqGroupedComponents) { diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ReportServiceImpl.java b/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ReportServiceImpl.java index 62640de..2dab77d 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ReportServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/server/servlet/ReportServiceImpl.java @@ -680,11 +680,13 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe if (component.getType() == ComponentType.REPEAT_SEQUENCE || component.getType() == ComponentType.BODY_TABLE_IMAGE) { //there could be images inside RepeatableSequence res = (RepeatableSequence) component.getPossibleContent(); for (BasicComponent co : res.getGroupedComponents()) { - _log.debug("Found Image IN SEQUENCE, type is: " + component.getType()); - if (co.getId() != null) { // you need to convert only new images that stay in the HL Workspace, this is the check - String imageID = co.getId(); - co.setPossibleContent(getdDataImagebase64(imageID)); - _log.trace("Image converted base 64 OK, in SEQUENCE: " + co.getPossibleContent()); + if (component.getType() == ComponentType.DYNA_IMAGE) { + _log.debug("Found Image IN SEQUENCE, type is: " + component.getType()); + if (co.getId() != null) { // you need to convert only new images that stay in the HL Workspace, this is the check + String imageID = co.getId(); + co.setPossibleContent(getdDataImagebase64(imageID)); + _log.trace("Image converted base 64 OK, in SEQUENCE: " + co.getPossibleContent()); + } } } } @@ -1499,7 +1501,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe ReportType type = new ReportType(); type.setTypeIdentifier(refType.toString()); RsgService rsgClient = new RsgClient(); - + for (ReportEntry re :rsgClient.listReports(new ReportType(refType.getId()))) { String rfmo = re.getOwner(); String name = re.getIdentifier(); @@ -1512,7 +1514,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe @Override public Model importVMEReport(String id, String name, VMETypeIdentifier refType) { RsgService rsgClient = new RsgClient(); - + CompiledReport cr = null; if (refType == VMETypeIdentifier.Vme) { _log.info("Importing VME id=" + id + " name=" + name); @@ -1521,7 +1523,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe else { _log.info("Importing Ref type= " + refType.getId() + " id=" + id + " name=" + name); cr = rsgClient.getReferenceReportById(new ReportType(refType.getId()), id); - + } Model model = null; try { @@ -1533,7 +1535,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe } return model; } - + @Override public Model getVMEReportRef2Associate(String id, VMETypeIdentifier refType) { RsgService rsgClient = new RsgClient();