From bf7563b76cf9e9fa59edf8f660e9e96ca6941186 Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Tue, 22 Apr 2014 09:38:46 +0000 Subject: [PATCH] added Deletion of content of the first entry git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/reports@95021 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../client/targets/ClientImage.java | 14 +++-- .../targets/ClientRepeatableSequence.java | 19 +++++- .../client/targets/SequenceWidget.java | 61 ++++++++++++++++++- 3 files changed, 87 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientImage.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientImage.java index 12e2040..6f6f823 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientImage.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ClientImage.java @@ -137,6 +137,14 @@ public class ClientImage extends Composite { }); } + public void resetImage() { + titleTB.setText(""); + descTB.setText(""); + sourceTB.setText(""); + showImage(new Image(TemplateComponent.DEFAULT_IMAGE_NAME), DEFAULT_WIDTH, DEFAULT_HEIGHT); + imagePanel.addStyleName("imageEmptyPanel"); + } + private HorizontalPanel getControlPanel(boolean isRemovable, final TextTableImage owner) { final HorizontalPanel toReturn = new HorizontalPanel(); @@ -152,11 +160,7 @@ public class ClientImage extends Composite { resetB.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { - titleTB.setText(""); - descTB.setText(""); - sourceTB.setText(""); - showImage(new Image(TemplateComponent.DEFAULT_IMAGE_NAME), DEFAULT_WIDTH, DEFAULT_HEIGHT); - imagePanel.addStyleName("imageEmptyPanel"); + resetImage(); } }); 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 3272fef..5888baf 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 @@ -38,9 +38,16 @@ public class ClientRepeatableSequence extends Composite implements ClientSequenc SequenceWidget seqW = new SequenceWidget(p, this, originalSequence, true, false); myPanel.add(seqW); - for (RepeatableSequence repeatSeq : getRepeats()) { + ArrayList repeats = getRepeats(); + if (repeats == null || repeats.size() == 0) { + seqW.showResetFields(true); + } + for (RepeatableSequence repeatSeq : repeats) { addAnother(repeatSeq); } + + + initWidget(myPanel); } @@ -246,6 +253,11 @@ public class ClientRepeatableSequence extends Composite implements ClientSequenc public boolean add(String id, RepeatableSequence sequence, boolean isSingleRelation) { SequenceWidget seqW = new SequenceWidget(p, this, sequence, false, true); myPanel.add(seqW); + //disable clear content + if (myPanel.getWidgetCount() > 1) { + SequenceWidget first = (SequenceWidget) myPanel.getWidget(0); + first.showResetFields(false); + } return true; } @@ -255,6 +267,11 @@ public class ClientRepeatableSequence extends Composite implements ClientSequenc for (TemplateComponent tc : toRemove.getSeqGroupedComponents()) { groupedComponents.remove(tc); } + //enable clear content + if (myPanel.getWidgetCount() == 1) { + SequenceWidget first = (SequenceWidget) myPanel.getWidget(0); + first.showResetFields(true); + } 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 fadd7c8..d48071d 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,6 +15,7 @@ import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.HasAlignment; @@ -31,6 +32,7 @@ public class SequenceWidget extends Composite { private VerticalPanel myPanel; + private Button clearEntryB = new Button("Remove Content"); private Button addAnotherB = new Button("Add another Entry"); private Button removeThisB = new Button("Remove Entry"); private Button selectNewB = new Button("Add Source"); @@ -147,7 +149,7 @@ public class SequenceWidget extends Composite { Metadata toAdd = new Metadata(metadata.getAttribute(), metadata.getValue()); toReturn.add(toAdd); } - + boolean keepLooking = true; for (Metadata prop : toReturn) { if (prop.getAttribute().equals(RSG_BINDING_PROPERTY) && (prop.getValue().contains("[") && prop.getValue().contains("]")) ) { @@ -264,6 +266,63 @@ public class SequenceWidget extends Composite { } } + public void showResetFields(boolean show) { + clearEntryB.setVisible(show); + + if (buttonsWrapperPanel.getWidgetIndex(clearEntryB) == -1) { + buttonsWrapperPanel.insert(clearEntryB, 0); + clearEntryB.getElement().getStyle().setWidth(130, Unit.PX); + clearEntryB.getElement().getStyle().setMargin(10, Unit.PX); + clearEntryB.addStyleName("deleteAssociationButton"); + + clearEntryB.addClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + clearContent(); + } + }); + } + + } + + private void clearContent() { + int widgetsCount = myPanel.getWidgetCount(); + for (int i = 0; i < widgetsCount; i++) { + if (myPanel.getWidget(i) instanceof ClientReportReference) { + ClientReportReference toClear = (ClientReportReference) myPanel.getWidget(i); + toClear.clear(); + toClear.cleanInModel(); + } + else if (myPanel.getWidget(i) instanceof D4sRichTextarea) { + D4sRichTextarea toClear = (D4sRichTextarea) myPanel.getWidget(i); + toClear.setHTML(""); + } + else if (myPanel.getWidget(i) instanceof BasicTextArea) { + BasicTextArea toClear = (BasicTextArea) myPanel.getWidget(i); + toClear.setText(""); + } + else if (myPanel.getWidget(i) instanceof ClientImage) { + ClientImage toClear = (ClientImage) myPanel.getWidget(i); + toClear.resetImage(); + } + + } + + //clean the fields in the model + int size = repSequence.getGroupedComponents().size(); + //GWT.log("SequenceWidget Size = " + size); + for (int j = 0; j < size; j++) { + BasicComponent sComp = repSequence.getGroupedComponents().get(j); + //if is not locked and is of type BODY then put fields to blank + if ((!sComp.isLocked()) && (sComp.getType() == ComponentType.BODY || sComp.getType() == ComponentType.BODY_NOT_FORMATTED || + sComp.getType() == ComponentType.DYNA_IMAGE) ) { + sComp.setPossibleContent(""); + sComp.setMetadata(setPropertiesForRSG(sComp.getMetadata())); + } + } + + } + public ArrayList getSeqGroupedComponents() { return seqGroupedComponents; }