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 8c3cfea..02fd797 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 @@ -42,7 +42,7 @@ import org.gcube.portlets.user.reportgenerator.client.targets.AttributeMultiSele import org.gcube.portlets.user.reportgenerator.client.targets.AttributeSingleSelection; import org.gcube.portlets.user.reportgenerator.client.targets.BasicTextArea; import org.gcube.portlets.user.reportgenerator.client.targets.ClientImage; -import org.gcube.portlets.user.reportgenerator.client.targets.ClientMasterSequence; +import org.gcube.portlets.user.reportgenerator.client.targets.ClientTuple; import org.gcube.portlets.user.reportgenerator.client.targets.ClientRepeatableSequence; import org.gcube.portlets.user.reportgenerator.client.targets.Coords; import org.gcube.portlets.user.reportgenerator.client.targets.D4sRichTextarea; @@ -1020,8 +1020,8 @@ public class Presenter { ClientRepeatableSequence rps = (ClientRepeatableSequence) component.getContent(); wp.addComponentToLayout(rps, component.isDoubleColLayout()); break; - case MASTER_SEQUENCE_LIST: - ClientMasterSequence cmSeq = (ClientMasterSequence) component.getContent(); + case TUPLE: + ClientTuple cmSeq = (ClientTuple) component.getContent(); wp.addComponentToLayout(cmSeq, component.isDoubleColLayout()); break; case BODY_TABLE_IMAGE: 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 f6c3b5d..289dbdc 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 @@ -8,7 +8,7 @@ import java.util.List; import org.gcube.portlets.d4sreporting.common.shared.AttributeArea; import org.gcube.portlets.d4sreporting.common.shared.BasicComponent; import org.gcube.portlets.d4sreporting.common.shared.ComponentType; -import org.gcube.portlets.d4sreporting.common.shared.MasterSequenceList; +import org.gcube.portlets.d4sreporting.common.shared.Tuple; import org.gcube.portlets.d4sreporting.common.shared.Metadata; import org.gcube.portlets.d4sreporting.common.shared.RepTimeSeries; import org.gcube.portlets.d4sreporting.common.shared.RepeatableSequence; @@ -18,7 +18,8 @@ import org.gcube.portlets.user.reportgenerator.client.targets.AttributeMultiSele import org.gcube.portlets.user.reportgenerator.client.targets.AttributeSingleSelection; import org.gcube.portlets.user.reportgenerator.client.targets.BasicTextArea; import org.gcube.portlets.user.reportgenerator.client.targets.ClientImage; -import org.gcube.portlets.user.reportgenerator.client.targets.ClientMasterSequence; +import org.gcube.portlets.user.reportgenerator.client.targets.ClientSequence; +import org.gcube.portlets.user.reportgenerator.client.targets.ClientTuple; import org.gcube.portlets.user.reportgenerator.client.targets.ClientRepeatableSequence; import org.gcube.portlets.user.reportgenerator.client.targets.D4sRichTextarea; import org.gcube.portlets.user.reportgenerator.client.targets.DropTSListener; @@ -347,8 +348,6 @@ public class TemplateComponent { //GWT.log("FOUND SEQUENCE trying getGroup"); RepeatableSequence repeatableSequence = (RepeatableSequence) sc.getPossibleContent(); - //GWT.log("getGroup: " + repeatableSequence.toString()); - ClientRepeatableSequence rps = new ClientRepeatableSequence(presenter, repeatableSequence); this.content = rps; break; @@ -362,17 +361,13 @@ public class TemplateComponent { } this.content = tti; break; - case MASTER_SEQUENCE_LIST: + case TUPLE: GWT.log("FOUND Master SEQUENCE trying getGroup"); - MasterSequenceList masterSequence = (MasterSequenceList) sc.getPossibleContent(); + @SuppressWarnings("unchecked") + ArrayList tuple = (ArrayList) sc.getPossibleContent(); - ClientMasterSequence cmSeq = new ClientMasterSequence(presenter, masterSequence); + ClientTuple cmSeq = new ClientTuple(presenter, tuple); this.content = cmSeq; - - //GWT.log("getGroup: " + repeatableSequence.toString()); - - //ClientRepeatableSequence rps = new ClientRepeatableSequence(presenter, repeatableSequence); - //this.content = rps; break; } } @@ -434,7 +429,6 @@ public class TemplateComponent { case TITLE: if (this.isLocked()) { content = ((HTML) this.content).getText(); - } else content = ((HeadingTextArea) this.content).getText(); @@ -442,7 +436,6 @@ public class TemplateComponent { case BODY_NOT_FORMATTED: if (this.isLocked()) { content = ((HTML) this.content).getText(); - } else content = ((BasicTextArea) this.content).getText(); @@ -481,7 +474,13 @@ public class TemplateComponent { RepeatableSequence toSave = new RepeatableSequence(getSerializableSequence(tti), height); content = toSave; break; + case TUPLE: + ClientTuple cTuples = (ClientTuple) this.content; + ArrayList tuples = cTuples.getTupleList(); + content = tuples; + break; } + return new BasicComponent(x, y, width, height, templatePage, type, idInBasket, "param empty", content, this.doubleColLayout, isLocked(), metadata); } @@ -490,7 +489,7 @@ public class TemplateComponent { * @param repSeq * @return */ - private ArrayList getSerializableSequence(ClientRepeatableSequence repSeq) { + private ArrayList getSerializableSequence(ClientSequence repSeq) { ArrayList sComps = new ArrayList(); for (TemplateComponent tc : repSeq.getGroupedComponents()) { sComps.add(tc.getSerializable()); @@ -510,6 +509,8 @@ public class TemplateComponent { } return sComps; } + + /** * @return . diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientMasterSequence.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientTuple.java similarity index 54% rename from src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientMasterSequence.java rename to src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientTuple.java index eb694ef..4adf9f1 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientMasterSequence.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientTuple.java @@ -2,8 +2,7 @@ package org.gcube.portlets.user.reportgenerator.client.targets; import java.util.ArrayList; -import org.gcube.portlets.d4sreporting.common.shared.MasterSequence; -import org.gcube.portlets.d4sreporting.common.shared.MasterSequenceList; +import org.gcube.portlets.d4sreporting.common.shared.Tuple; import org.gcube.portlets.d4sreporting.common.shared.RepeatableSequence; import org.gcube.portlets.user.reportgenerator.client.Presenter.Presenter; import org.gcube.portlets.user.reportgenerator.client.model.TemplateComponent; @@ -15,51 +14,72 @@ import com.google.gwt.user.client.ui.VerticalPanel; * @author massi * */ -public class ClientMasterSequence extends Composite implements ClientSequence { - +public class ClientTuple extends Composite implements ClientSequence { + protected ArrayList groupedComponents = new ArrayList(); private VerticalPanel myPanel = new VerticalPanel(); - protected RepeatableSequence repSequence; - protected RepeatableSequence originalSequence = new RepeatableSequence(); + private ArrayList tupleList; + private SequenceWidget first; + /** * s * @param p * @param ms */ - public ClientMasterSequence(Presenter p, MasterSequenceList msl) { - for (MasterSequence seq : msl.getSequences()) { - if (seq.isSelected()) { - repSequence = seq; + public ClientTuple(Presenter p, ArrayList tupleList) { + this.tupleList = tupleList; + for (Tuple seq : tupleList) { + if (myPanel.getWidgetCount()==0) { // if is the first one + first = new SequenceWidget(p, this, seq, true, false); + if (tupleList.size() == 1) { + first.enableClear(); + } + myPanel.add(first); + } else { + SequenceWidget seqW = new SequenceWidget(p, this, seq, false, false); + myPanel.add(seqW); } + + + } - - SequenceWidget seqW = new SequenceWidget(p, this, repSequence, true, false); - seqW.enableClear(); - myPanel.add(seqW); - + initWidget(myPanel); } - + + + public ArrayList getTupleList() { + return tupleList; + } + + + public void setTupleList(ArrayList tupleList) { + this.tupleList = tupleList; + } + @Override public ArrayList getGroupedComponents() { return groupedComponents; } - + @Override public boolean add(RepeatableSequence sequence) { return false; } - - + + @Override public SequenceWidget remove(SequenceWidget toRemove) { myPanel.remove(toRemove); for (TemplateComponent tc : toRemove.getSeqGroupedComponents()) { groupedComponents.remove(tc); } + tupleList.remove(toRemove.getSequence()); + if (tupleList.size() == 1) + first.enableClear(); return toRemove; } 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 53a7e9f..13c0c03 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 @@ -164,4 +164,8 @@ public class SequenceWidget extends Composite { private void removeMe() { owner.remove(this); } + + public RepeatableSequence getSequence() { + return repSequence; + } }