ready for testing

git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/reports@71290 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Massimiliano Assante 2013-03-13 10:06:47 +00:00
parent f4bd79b592
commit e18d28f8e0
15 changed files with 221 additions and 63 deletions

View File

@ -42,6 +42,7 @@ import org.gcube.portlets.user.reportgenerator.client.targets.Coords;
import org.gcube.portlets.user.reportgenerator.client.targets.D4sRichTextarea;
import org.gcube.portlets.user.reportgenerator.client.targets.GenericTable;
import org.gcube.portlets.user.reportgenerator.client.targets.GroupingDelimiterArea;
import org.gcube.portlets.user.reportgenerator.client.targets.HeadingTextArea;
import org.gcube.portlets.user.reportgenerator.client.targets.ReportTextArea;
import org.gcube.portlets.user.reportgenerator.client.targets.TSArea;
import org.gcube.portlets.user.reportgenerator.client.targets.TextTableImage;
@ -965,8 +966,20 @@ public class Presenter {
case HEADING_3:
case HEADING_4:
case HEADING_5:
case BODY_NOT_FORMATTED:
case TITLE:
if (component.isLocked()) {
HTML text = (HTML) component.getContent();
wp.addComponentToLayout(text, component.isDoubleColLayout());
}
else {
HeadingTextArea textArea = (HeadingTextArea) component.getContent();
textArea.getMyInstance().setTop(uiY);
textArea.getMyInstance().setLeft(uiX);
wp.addComponentToLayout(textArea, component.isDoubleColLayout());
}
break;
case BODY_NOT_FORMATTED:
if (component.isLocked()) {
HTML text = (HTML) component.getContent();
wp.addComponentToLayout(text, component.isDoubleColLayout());

View File

@ -137,8 +137,8 @@ public class ReportGenerator implements EntryPoint {
divHidden.setStyleName("d4sFrame");
divHidden.setWidth("750px");
divHidden.setStyleName("d4sRichTextArea");
divHidden.addStyleName("setVisibilityOff");
divHidden.addStyleName("hasRichTextToolbar");
divHidden.addStyleName("setVisibilityOff");
eastPanel.add(workSpacePanel);
eastPanel.add(divHidden);

View File

@ -23,6 +23,7 @@ import org.gcube.portlets.user.reportgenerator.client.targets.DropTSListener;
import org.gcube.portlets.user.reportgenerator.client.targets.GenericTable;
import org.gcube.portlets.user.reportgenerator.client.targets.GroupingDelimiterArea;
import org.gcube.portlets.user.reportgenerator.client.targets.GroupingInnerArea;
import org.gcube.portlets.user.reportgenerator.client.targets.HeadingTextArea;
import org.gcube.portlets.user.reportgenerator.client.targets.ReportTextArea;
import org.gcube.portlets.user.reportgenerator.client.targets.TSArea;
import org.gcube.portlets.user.reportgenerator.client.targets.TextTableImage;
@ -167,7 +168,7 @@ public class TemplateComponent {
switch (sc.getType()) {
case DYNA_IMAGE:
ClientImage dp = new ClientImage(sc, presenter, sc.getWidth(), sc.getHeight());
ClientImage dp = new ClientImage(sc, presenter, sc.getWidth(), sc.getHeight(), showClose, owner);
this.content = dp;
break;
case HEADING_1:
@ -175,8 +176,23 @@ public class TemplateComponent {
case HEADING_3:
case HEADING_4:
case HEADING_5:
case BODY_NOT_FORMATTED:
case TITLE:
if (sc.isLocked()) {
HTML area = new HTML();
area.setStyleName("report-ui-component");
area.addStyleName(getStyle(sc.getType()));
area.getElement().getStyle().setMarginTop(5, Unit.PX);
area.setPixelSize(width, 18);
area.setText((String) sc.getPossibleContent());
this.content = area;
}
else {
HeadingTextArea bToAdd = new HeadingTextArea(sc.getType(), presenter, sc.getX(), sc.getY(), width, 25, getUserComments() != null, showClose);
bToAdd.setText((String) sc.getPossibleContent());
this.content = bToAdd;
}
break;
case BODY_NOT_FORMATTED:
if (sc.isLocked()) {
HTML area = new HTML();
area.setStyleName("report-ui-component");
@ -370,11 +386,18 @@ public class TemplateComponent {
case HEADING_3:
case HEADING_4:
case HEADING_5:
case BODY_NOT_FORMATTED:
case TITLE:
if (this.isLocked()) {
content = ((HTML) this.content).getText();
}
else
content = ((HeadingTextArea) this.content).getText();
break;
case BODY_NOT_FORMATTED:
if (this.isLocked()) {
content = ((HTML) this.content).getText();
}
else
content = ((BasicTextArea) this.content).getText();

View File

@ -24,10 +24,12 @@ import com.google.gwt.user.client.ui.Widget;
*/
public class BasicTextArea extends ReportTextArea {
private RichTextArea textArea = new RichTextArea();
//private TextArea textArea = new TextArea();
private VerticalPanel myPanel;
int currHeight = 0;
@ -46,31 +48,10 @@ public class BasicTextArea extends ReportTextArea {
}
});
textArea.setStyleName("report-ui-component");
switch (type) {
case TITLE:
textArea.addStyleName("title");
myPanel.setTitle("Title");
break;
case HEADING_1:
textArea.addStyleName("heading1");
myPanel.setTitle("Heading: Level 1");
break;
case HEADING_2:
textArea.addStyleName("heading2");
myPanel.setTitle("Heading Level 2");
break;
case HEADING_3:
textArea.addStyleName("heading3");
myPanel.setTitle("Heading: Level 3");
break;
case HEADING_4:
textArea.addStyleName("heading4");
myPanel.setTitle("Heading: Level 4");
break;
case HEADING_5:
textArea.addStyleName("heading5");
myPanel.setTitle("Heading: Level 5");
break;
case BODY_NOT_FORMATTED:
textArea.addStyleName("simpleText");
myPanel.setTitle("Simple text");
@ -93,26 +74,26 @@ public class BasicTextArea extends ReportTextArea {
textArea.addKeyUpHandler(new KeyUpHandler() {
public void onKeyUp(KeyUpEvent event) {
HTML div = ReportGenerator.get().getDivHidden();
div.setHTML(textArea.getHTML());
div.setHTML(textArea.getHTML());
int newHeight = div.getOffsetHeight();
if (newHeight > currHeight) {
resizePanel(width, newHeight);
presenter.resizeTemplateComponentInModel(myInstance, width, newHeight);
currHeight = newHeight;
}
resizePanel(width, newHeight);
presenter.resizeTemplateComponentInModel(myInstance, width, newHeight);
currHeight = newHeight;
}
});
textArea.addMouseDownHandler(new MouseDownHandler() {
public void onMouseDown(MouseDownEvent event) {
HTML div = ReportGenerator.get().getDivHidden();
div.setHTML(textArea.getHTML());
div.setHTML(textArea.getHTML());
int newHeight = div.getOffsetHeight();
if (newHeight > currHeight) {
resizePanel(width, newHeight);
presenter.resizeTemplateComponentInModel(myInstance, width, newHeight);
currHeight = newHeight;
}
resizePanel(width, newHeight);
presenter.resizeTemplateComponentInModel(myInstance, width, newHeight);
currHeight = newHeight;
}
});
@ -120,8 +101,14 @@ public class BasicTextArea extends ReportTextArea {
public String getText() {
return textArea.getText();
}
public void setText(String text) {
textArea.setText(text);
}
public RichTextArea getRichTextArea() {
return null;
}
/**

View File

@ -19,6 +19,7 @@ import org.gcube.portlets.user.workspace.lighttree.client.load.WorkspaceLightTre
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.RunAsyncCallback;
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.event.dom.client.MouseOutEvent;
@ -63,17 +64,17 @@ public class ClientImage extends Composite {
private String currentUser;
private String currentScope;
private final int DEFAULT_HEIGHT = 100;
private final int DEFAULT_WIDTH = 700;
public static final int DEFAULT_HEIGHT = 100;
public static final int DEFAULT_WIDTH = 700;
private TextBox titleTB = new TextBox();
private TextBox descTB = new TextBox();
private TextBox sourceTB = new TextBox();
private Button resetB = new Button("Reset Image");
private Button resetB = new Button("Clear");
private Button addImageB = new Button("Select Image");
private Button uploadImageB = new Button("Upload Image");
private Button removeB = new Button("Remove Image");
private BasicComponent basicComponent;
/**
*
@ -81,12 +82,12 @@ public class ClientImage extends Composite {
* @param width
* @param tag
*/
public ClientImage(BasicComponent co, Presenter presenter, int width, int height) {
public ClientImage(BasicComponent co, Presenter presenter, int width, int height, boolean isRemovable, TextTableImage owner) {
imageHeight = height;
imageWidth = width;
this.presenter = presenter;
this.basicComponent = co;
HorizontalPanel controlPanel = getControlPanel();
HorizontalPanel controlPanel = getControlPanel(isRemovable, owner);
VerticalPanel attributesPanel = getAttributesPanel(co);
mainPanel.add(controlPanel);
mainPanel.add(imagePanel);
@ -119,7 +120,12 @@ public class ClientImage extends Composite {
b.addStyleName("tableButton");
}
}
if (isRemovable) {
removeB.removeStyleName("tableButton");
removeB.addStyleName("deleteEntryButton");
removeB.getElement().getStyle().setMarginRight(10, Unit.PX);
}
focusPanel.add(mainPanel);
initWidget(focusPanel);
@ -131,9 +137,18 @@ public class ClientImage extends Composite {
});
}
private HorizontalPanel getControlPanel() {
private HorizontalPanel getControlPanel(boolean isRemovable, final TextTableImage owner) {
final HorizontalPanel toReturn = new HorizontalPanel();
removeB.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
if (owner != null) {
remove(owner);
}
}
});
resetB.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
@ -160,7 +175,8 @@ public class ClientImage extends Composite {
});
toReturn.setSpacing(3);
if (isRemovable)
toReturn.add(removeB);
toReturn.add(resetB);
toReturn.add(uploadImageB);
toReturn.add(addImageB);
@ -399,5 +415,12 @@ public class ClientImage extends Composite {
}
});
}
/**
* helper method that removes a image from the textTableImage widget
* @param owner
*/
private void remove(TextTableImage owner) {
owner.removeFromParent(this);
removeFromParent();
}
}

View File

@ -0,0 +1,89 @@
package org.gcube.portlets.user.reportgenerator.client.targets;
import org.gcube.portlets.d4sreporting.common.shared.ComponentType;
import org.gcube.portlets.user.reportgenerator.client.Presenter.Presenter;
import com.google.gwt.event.dom.client.MouseOutEvent;
import com.google.gwt.event.dom.client.MouseOutHandler;
import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.TextArea;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
/**
* <code> HeadingTextArea </code>
*
* @author Massimiliano Assante, ISTI-CNR - massimiliano.assante@isti.cnr.it
* @version July 2011 (3.0)
*/
public class HeadingTextArea extends ReportTextArea {
private TextArea textArea = new TextArea();
private VerticalPanel myPanel;
private Presenter presenter;
int currHeight = 0;
public HeadingTextArea(ComponentType type, final Presenter presenter, int left, int top, int width, final int height, boolean hasComments, boolean showClose) {
super(type, presenter, left, top, width, height, hasComments, showClose);
this.presenter = presenter;
myPanel = getResizablePanel();
textArea.setPixelSize(width, height);
textArea.addMouseOutHandler(new MouseOutHandler() {
public void onMouseOut(MouseOutEvent event) {
presenter.storeChangeInSession((Widget) event.getSource());
}
});
textArea.setStyleName("report-ui-component");
switch (type) {
case TITLE:
textArea.addStyleName("title");
myPanel.setTitle("Title");
resizePanel(width, 30);
break;
case HEADING_1:
textArea.addStyleName("heading1");
myPanel.setTitle("Heading: Level 1");
break;
case HEADING_2:
textArea.addStyleName("heading2");
myPanel.setTitle("Heading Level 2");
break;
case HEADING_3:
textArea.addStyleName("heading3");
myPanel.setTitle("Heading: Level 3");
break;
case HEADING_4:
textArea.addStyleName("heading4");
myPanel.setTitle("Heading: Level 4");
break;
case HEADING_5:
textArea.addStyleName("heading5");
myPanel.setTitle("Heading: Level 5");
break;
default:
break;
}
myPanel.add(textArea);
myPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_BOTTOM);
myPanel.setPixelSize(width, height);
textArea.addMouseOutHandler(new MouseOutHandler() {
public void onMouseOut(MouseOutEvent event) {
presenter.storeChangeInSession((Widget) event.getSource());
}
});
}
public String getText() {
return textArea.getText();
}
public void setText(String text) {
textArea.setText(text);
}
}

View File

@ -23,8 +23,8 @@ public class SequenceWidget extends Composite {
private VerticalPanel myPanel;
private Button addAnotherB = new Button("Add another entry");
private Button removeThisB = new Button("Remove this entry");
private Button addAnotherB = new Button("Add another Entry");
private Button removeThisB = new Button("Remove Entry");
private Presenter p;
private HorizontalPanel buttonPanel = new HorizontalPanel();
HorizontalPanel buttonsWrapperPanel = new HorizontalPanel();
@ -37,8 +37,7 @@ public class SequenceWidget extends Composite {
this.owner = owner;
this.repSequence = repSequence;
addAnotherB.getElement().getStyle().setMargin(10, Unit.PX);
addAnotherB.getElement().getStyle().setHeight(30, Unit.PX);
addAnotherB.getElement().getStyle().setWidth(180, Unit.PX);
addAnotherB.getElement().getStyle().setWidth(130, Unit.PX);
addAnotherB.addStyleName("addEntryButton");
myPanel = new VerticalPanel();
myPanel.setHorizontalAlignment(HasAlignment.ALIGN_LEFT);
@ -76,9 +75,9 @@ public class SequenceWidget extends Composite {
});
}
else {
removeThisB.getElement().getStyle().setWidth(130, Unit.PX);
removeThisB.getElement().getStyle().setMargin(10, Unit.PX);
removeThisB.getElement().getStyle().setHeight(30, Unit.PX);
removeThisB.getElement().getStyle().setWidth(180, Unit.PX);
removeThisB.addStyleName("deleteEntryButton");
buttonsWrapperPanel.add(removeThisB);
@ -88,6 +87,14 @@ public class SequenceWidget extends Composite {
removeMe();
}
});
buttonsWrapperPanel.add(addAnotherB);
addAnotherB.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
addAnother();
}
});
}
}

View File

@ -1,9 +1,11 @@
package org.gcube.portlets.user.reportgenerator.client.targets;
import java.util.ArrayList;
import java.util.List;
import org.gcube.portlets.d4sreporting.common.shared.BasicComponent;
import org.gcube.portlets.d4sreporting.common.shared.ComponentType;
import org.gcube.portlets.d4sreporting.common.shared.Metadata;
import org.gcube.portlets.d4sreporting.common.shared.RepeatableSequence;
import org.gcube.portlets.d4sreporting.common.shared.Table;
import org.gcube.portlets.d4sreporting.common.shared.TableCell;
@ -104,6 +106,16 @@ public class TextTableImage extends Composite {
add(toAdd);
}
private void addNewImage() {
List<Metadata> emptyMetadata = new ArrayList<Metadata>();
BasicComponent serImage = new BasicComponent(0, 0, ClientImage.DEFAULT_WIDTH, ClientImage.DEFAULT_HEIGHT,
presenter.getModel().getCurrentPage(), ComponentType.DYNA_IMAGE, "", "", false, false, emptyMetadata);
ClientImage dp = new ClientImage(serImage, presenter, ClientImage.DEFAULT_WIDTH, ClientImage.DEFAULT_HEIGHT, true, this);
TemplateComponent toAdd = new TemplateComponent(presenter.getModel(), 0, 0, DEFAULT_WIDTH, GenericTable.DEFAULT_HEIGHT,
presenter.getModel().getCurrentPage(), ComponentType.DYNA_IMAGE, "", dp);
add(toAdd);
}
/**
*
* @return
@ -142,7 +154,7 @@ public class TextTableImage extends Composite {
addImageB.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
addNewImage();
}
});

View File

@ -65,6 +65,10 @@
margin-top: 5px;
}
.imageTableTextDelimiter {
border-bottom: 1px inset #336699;
width: 700px;
}
.imageWrapperPanel {
background-color: transparent;
@ -374,7 +378,7 @@ tableBorder td {
.heading2 {
background-image: url(images/heading_2.png);
font-size: 13pt;
font-size: 12pt;
}
.heading2-label {
@ -386,17 +390,17 @@ tableBorder td {
.heading3 {
background-image: url(images/heading_3.png);
font-size: 10pt;
font-weight: bold;
}
.heading3-label{
font-size: 10pt;
padding-left: 2px;
font-weight: bold;
}
.heading4 {
background-image: url(images/heading_4.png);
font-size: 9pt;
font-size: 10pt;
}
.heading4-label{
@ -406,7 +410,7 @@ tableBorder td {
.heading5 {
background-image: url(images/heading_5.png);
font-size: 8pt;
font-size: 10pt;
}
.heading5-label{

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1002 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1023 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1021 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1018 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB