package org.gcube.portlets.user.reportgenerator.client.targets; import java.util.ArrayList; 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; import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.VerticalPanel; /** * * @author massi * */ public class ClientTuple extends Composite implements ClientSequence { protected ArrayList groupedComponents = new ArrayList(); private VerticalPanel myPanel = new VerticalPanel(); private ArrayList tupleList; private SequenceWidget first; private Presenter p; /** * s * @param p * @param ms */ public ClientTuple(Presenter p, ArrayList tupleList) { this.p = p; 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); } } 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) { Tuple tuple = (Tuple) sequence; VMETypeIdentifier type2Pass = null; if (tuple.getKey().equals("GENERAL_MEASURE")) type2Pass = VMETypeIdentifier.GeneralMeasure; else if (tuple.getKey().equals("INFORMATION_SOURCE")) type2Pass = VMETypeIdentifier.InformationSource; else if (tuple.getKey().equals("FISHERY_AREA_HISTORY")) type2Pass = VMETypeIdentifier.FisheryAreasHistory; else if (tuple.getKey().equals("VMES_HISTORY")) type2Pass = VMETypeIdentifier.VmesHistory; else { Window.alert("Could not find any valid Report Ref, got " + tuple.getKey()); return false; } p.showVMERefAssociateDialog(type2Pass); return true; } @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; } }