diff --git a/.classpath b/.classpath
index d572b0e..89414ee 100644
--- a/.classpath
+++ b/.classpath
@@ -1,6 +1,6 @@
-
+
@@ -31,5 +31,5 @@
-
+
diff --git a/.settings/com.google.gdt.eclipse.core.prefs b/.settings/com.google.gdt.eclipse.core.prefs
index f498b39..3433991 100644
--- a/.settings/com.google.gdt.eclipse.core.prefs
+++ b/.settings/com.google.gdt.eclipse.core.prefs
@@ -2,6 +2,6 @@
<<<<<<<=.mine
>>>>>>>=.r71295
eclipse.preferences.version=1
-lastWarOutDir=/Users/massi/Documents/workspace/reports/target/reports-4.6.9-SNAPSHOT
+lastWarOutDir=/Users/massi/Documents/workspace/reports/target/reports-4.6.10-SNAPSHOT
warSrcDir=src/main/webapp
warSrcDirIsOutput=false
diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
index 42ca8d9..400921f 100644
--- a/.settings/org.eclipse.wst.common.component
+++ b/.settings/org.eclipse.wst.common.component
@@ -8,27 +8,6 @@
uses
-
- uses
-
-
- uses
-
-
- uses
-
-
- uses
-
-
- uses
-
-
- uses
-
-
- uses
-
uses
diff --git a/pom.xml b/pom.xml
index 4022cfb..6afdbc7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
org.gcube.portlets.user
reports
war
- 4.6.9-SNAPSHOT
+ 4.6.11-SNAPSHOT
gCube Reports Manager
gCube Reports Portlet.
@@ -131,10 +131,15 @@
[0.0.3-SNAPSHOT, 1.0.0-SNAPSHOT)
- org.jboss.spec.javax.el
- jboss-el-api_3.0_spec
- [0.0.1-SNAPSHOT, )
- provided
+ org.jboss.weld
+ weld-core
+ 2.0.4.Final
+
+
+ org.jboss.spec.javax.el
+ jboss-el-api_3.0_spec
+
+
org.gcube.common
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 086f945..980e0cc 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
@@ -346,7 +346,7 @@ public class TemplateComponent {
this.content = tsa;
break;
case REPEAT_SEQUENCE_DELIMITER:
- GroupingDelimiterArea gp = new GroupingDelimiterArea(height);
+ GroupingDelimiterArea gp = new GroupingDelimiterArea(width, height);
this.content = gp;
break;
case REPEAT_SEQUENCE_INNER:
diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientRepeatableSequence.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientRepeatableSequence.java
index 98364d7..fe5f2bd 100644
--- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientRepeatableSequence.java
+++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientRepeatableSequence.java
@@ -30,7 +30,7 @@ public class ClientRepeatableSequence extends Composite implements ClientSequenc
this.repSequence = sRS;
this.identifier = sRS.getKey();
this.originalSequence = extractOriginalSequence(sRS);
- SequenceWidget seqW = new SequenceWidget(p, this, originalSequence, true, false);
+ SequenceWidget seqW = new SequenceWidget(p, this, originalSequence, false, false); //TODO: Now all seq are removable, need to be handled differently
myPanel.add(seqW);
for (RepeatableSequence repeatSeq : getRepeats()) {
@@ -40,8 +40,8 @@ public class ClientRepeatableSequence extends Composite implements ClientSequenc
}
/**
- * when you repeat a sequence the model is not able to recognize is this was a sequence or not
- * to overcome this limitation you have to identify the original sequence by identifying it
+ * when you repeat a sequence the model is not able to recognize if this was a sequence or not
+ * to overcome this limitation you have to identify the original sequence
* to identify it you can use the REPEAT_SEQUENCE_DELIMITER ELEMENT
* @param sRS
*/
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 99b01fd..9600719 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
@@ -11,6 +11,7 @@ import org.gcube.portlets.user.reportgenerator.client.model.TemplateComponent;
import org.gcube.portlets.user.reportgenerator.shared.VMETypeIdentifier;
import com.google.gwt.core.shared.GWT;
+import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.VerticalPanel;
/**
@@ -20,6 +21,8 @@ import com.google.gwt.user.client.ui.VerticalPanel;
*/
public class ClientReportReference extends Composite implements ClientSequence {
+ private final int indentationValue = 20;
+
protected ArrayList groupedComponents = new ArrayList();
private VerticalPanel myPanel = new VerticalPanel();
@@ -28,7 +31,7 @@ public class ClientReportReference extends Composite implements ClientSequence {
private SequenceWidget first;
private Presenter p;
private boolean singleRelation; //allow or not to add new entries
-
+
/**
* s
* @param p
@@ -39,6 +42,9 @@ public class ClientReportReference extends Composite implements ClientSequence {
this.refType = refType;
this.tupleList = tupleList;
this.singleRelation = singleRelation;
+
+ shrinkComponents(tupleList); //(beacuse the ref is indented
+
for (Tuple seq : tupleList) {
if (myPanel.getWidgetCount()==0) { // if is the first one
first = getMasterSequence(seq);
@@ -47,17 +53,34 @@ public class ClientReportReference extends Composite implements ClientSequence {
myPanel.add(first);
} else {
SequenceWidget seqW = new SequenceWidget(p, this, seq, false, false);
+ seqW.getElement().getStyle().setMarginLeft(indentationValue, Unit.PX);
+ seqW.getElement().getStyle().setBackgroundColor("#FFF");
+ seqW.alignButtonsLeft();
myPanel.add(seqW);
}
}
initWidget(myPanel);
}
+ /**
+ * to make the components less in width (beacuse the ref is indented)
+ */
+ private void shrinkComponents(ArrayList tupleList) {
+ for (Tuple seq : tupleList) {
+ for (BasicComponent bc : seq.getGroupedComponents()) {
+ bc.setWidth(bc.getWidth()-(indentationValue+5));
+ }
+ }
+ }
/**
* the first seq has to behave differently
*/
private SequenceWidget getMasterSequence(RepeatableSequence seq) {
SequenceWidget toReturn = new SequenceWidget(p, this, seq, true, false);
+ toReturn.alignButtonsLeft();
+ toReturn.getElement().getStyle().setMarginLeft(indentationValue, Unit.PX);
+ toReturn.getElement().getStyle().setBackgroundColor("#FFF");
+
if (tupleList.size() == 1) {
toReturn.enableClear();
if (isTupleEmpty(tupleList.get(0))) {
@@ -144,4 +167,8 @@ public class ClientReportReference extends Composite implements ClientSequence {
public String getRefType() {
return refType;
}
+
+ public void clear() {
+ first.clearAssociation();
+ }
}
diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/GroupingDelimiterArea.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/GroupingDelimiterArea.java
index 7a48ddd..7404749 100644
--- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/GroupingDelimiterArea.java
+++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/GroupingDelimiterArea.java
@@ -6,9 +6,9 @@ import com.google.gwt.user.client.ui.HTML;
public class GroupingDelimiterArea extends HTML {
- public GroupingDelimiterArea(int height) {
+ public GroupingDelimiterArea(int width, int height) {
super();
- setWidth("700px");
+ setWidth(width+"px");
setHeight(height+"px");
setStyleName("grouping-border");
}
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 c9071e5..4c16cd3 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
@@ -15,7 +15,6 @@ import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HasAlignment;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
@@ -26,7 +25,7 @@ public class SequenceWidget extends Composite {
private Button addAnotherB = new Button("Add another Entry");
private Button removeThisB = new Button("Remove Entry");
- private Button selectNewB = new Button("Select New");
+ private Button selectNewB = new Button("Add Source");
private Button clearB = new Button("Clear Association");
private HorizontalPanel buttonPanel = new HorizontalPanel();
@@ -65,7 +64,14 @@ public class SequenceWidget extends Composite {
sComp.setPossibleContent("");
sComp.setMetadata(new ArrayList());
}
- add(new TemplateComponent(p.getModel(), sComp, p, false, null));
+ TemplateComponent toAdd = new TemplateComponent(p.getModel(), sComp, p, false, null);
+ if (isNew && sComp.getType() == ComponentType.REPORT_REFERENCE ) { //when adding a new Sequence blanks the Ref
+ ClientReportReference cRef = (ClientReportReference) toAdd.getContent();
+ cRef.clear();
+ }
+ add(toAdd);
+
+
}
initWidget(myPanel);
@@ -196,4 +202,8 @@ public class SequenceWidget extends Composite {
public RepeatableSequence getSequence() {
return repSequence;
}
+
+ public void alignButtonsLeft() {
+ buttonPanel.setWidth("10%");
+ }
}
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 9102f99..33fd1fe 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
@@ -1596,7 +1596,7 @@ public class ReportServiceImpl extends RemoteServiceServlet implements ReportSe
CompiledReport cr = rsgClient.getReferenceReportById(new ReportType(refType.getId()), id);
Model model = null;
try {
- model = new ReportManagerReportBuilder().buildReport(cr, id, "", "unknown author", new Date(), new Date(), "uknown last editor").getReportInstance();
+ model = new ReportManagerReportBuilder().buildReferenceReport(cr, id, "", "unknown author", new Date(), new Date(), "uknown last editor").getReportInstance();
} catch (ReportBuilderException e) {
e.printStackTrace();
} catch (Exception e) {