diff --git a/.classpath b/.classpath index 2b25d98..d9bb5fe 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 7d7b3e0..7bd7276 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.12.0-SNAPSHOT +lastWarOutDir=/Users/massi/Documents/workspace/reports/target/reports-4.12.1-SNAPSHOT warSrcDir=src/main/webapp warSrcDirIsOutput=false diff --git a/pom.xml b/pom.xml index 1320421..7bfd9dc 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ org.gcube.portlets.user reports war - 4.12.0-SNAPSHOT + 4.12.1-SNAPSHOT gCube Reports Manager gCube Reports Portlet. @@ -183,6 +183,7 @@ org.gcube.portlets.widgets fileupload-progress-bar [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) + compile org.gcube.portlets.user diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/D4sRichTextarea.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/D4sRichTextarea.java index cf60d2b..c964d9d 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/D4sRichTextarea.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/D4sRichTextarea.java @@ -4,10 +4,15 @@ import java.util.List; import org.gcube.portlets.d4sreporting.common.shared.ComponentType; import org.gcube.portlets.d4sreporting.common.shared.Metadata; +import org.gcube.portlets.user.gcubewidgets.client.popup.GCubeDialog; import org.gcube.portlets.user.reportgenerator.client.ReportGenerator; import org.gcube.portlets.user.reportgenerator.client.Presenter.Presenter; +import com.extjs.gxt.ui.client.widget.HorizontalPanel; import com.extjs.gxt.ui.client.widget.MessageBox; +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.KeyDownEvent; import com.google.gwt.event.dom.client.KeyDownHandler; import com.google.gwt.event.dom.client.KeyUpEvent; @@ -17,20 +22,19 @@ import com.google.gwt.event.dom.client.MouseDownHandler; import com.google.gwt.event.dom.client.MouseOutEvent; import com.google.gwt.event.dom.client.MouseOutHandler; import com.google.gwt.user.client.Event; -import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.Timer; +import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.HasVerticalAlignment; import com.google.gwt.user.client.ui.RichTextArea; import com.google.gwt.user.client.ui.TextArea; import com.google.gwt.user.client.ui.VerticalPanel; -import com.google.gwt.user.client.ui.Widget; /** * D4sRichTextArea class is a template component that goes into the workspace * * @author Massimiliano Assante, ISTI-CNR - massimiliano.assante@isti.cnr.it - * @version October 2008 (0.2) */ public class D4sRichTextarea extends ReportTextArea { //the properties associated @@ -122,18 +126,75 @@ public class D4sRichTextarea extends ReportTextArea { area.addKeyUpHandler(new KeyUpHandler() { public void onKeyUp(KeyUpEvent event) { - HTML div = ReportGenerator.get().getDivHidden(); - div.setHTML(area.getHTML()); - int newHeight = div.getOffsetHeight()+20 ; - if (newHeight > height-10 && newHeight != currHeight) { - resizePanel(myPanel.getOffsetWidth(), div.getOffsetHeight()); - //Window.alert("myInstance.top: " + myInstance.top); - presenter.resizeTemplateComponentInModel(myInstance, myPanel.getOffsetWidth()+5, newHeight); - } + if (! (event.isAnyModifierKeyDown() && event.getNativeKeyCode() == 86)) { //event.getNativeKeyCode() == 86 is the V (to avoid ctrl V or cmd V) + HTML div = ReportGenerator.get().getDivHidden(); + div.setHTML(area.getHTML()); + int newHeight = div.getOffsetHeight()+20 ; + if (newHeight > height-10 && newHeight != currHeight) { + resizePanel(myPanel.getOffsetWidth(), div.getOffsetHeight()); + //Window.alert("myInstance.top: " + myInstance.top); + presenter.resizeTemplateComponentInModel(myInstance, myPanel.getOffsetWidth()+5, newHeight); + } + } } }); - } + area.addKeyDownHandler(new KeyDownHandler() { + + @Override + public void onKeyDown(KeyDownEvent event) { + if (event.isAnyModifierKeyDown() && event.getNativeKeyCode() == 86) { //event.getNativeKeyCode() == 86 is the V (to avoid ctrl V or cmd V) + final GCubeDialog dlg = new GCubeDialog(true); + int width = 500; + dlg.setWidth(width+"px"); + dlg.setText("Paste operation"); + HTML tip = new HTML("Please enter your text here:"); + final TextArea ta = new TextArea(); + Button cancel = new Button("Cancel"); + Button paste = new Button("Paste it"); + HorizontalPanel hp = new HorizontalPanel(); + hp.add(cancel); + hp.add(paste); + + ta.setWidth(width-20+"px"); + ta.setHeight("120px"); + + VerticalPanel mainPanel = new VerticalPanel(); + mainPanel.add(tip); + mainPanel.add(ta); + mainPanel.add(hp); + dlg.add(mainPanel); + + cancel.addClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + dlg.hide(); + } + }); + paste.addClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + area.setHTML(area.getHTML()+ta.getText()); + dlg.hide(); + } + }); + + event.stopPropagation(); + event.preventDefault(); + dlg.center(); + + Timer t = new Timer() { + @Override + public void run() { + ta.setFocus(true); + } + }; + t.schedule(100); + } + + } + }); + } /** * used to resize the panel * @param width w diff --git a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ReportTextArea.java b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ReportTextArea.java index 766c8ea..5392857 100644 --- a/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ReportTextArea.java +++ b/src/main/java/org/gcube/portlets/user/reportgenerator/client/targets/ReportTextArea.java @@ -1,7 +1,6 @@ package org.gcube.portlets.user.reportgenerator.client.targets; import org.gcube.portlets.d4sreporting.common.client.ImageConstants; -import org.gcube.portlets.d4sreporting.common.client.uicomponents.ReportUIComponent; import org.gcube.portlets.d4sreporting.common.shared.ComponentType; import org.gcube.portlets.user.reportgenerator.client.Presenter.Presenter; import org.gcube.portlets.user.reportgenerator.client.dialog.CommentDialog;