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) {