This repository has been archived on 2021-11-25. You can view files and clone it, but cannot push or open issues or pull requests.
vmereports-manager-portlet/src/main/java/org/gcube/portlets/user/reportgenerator/client/dialog/CommentDialog.java

87 lines
3.0 KiB
Java

package org.gcube.portlets.user.reportgenerator.client.dialog;
import org.gcube.portlets.d4sreporting.common.client.ImageConstants;
import org.gcube.portlets.user.reportgenerator.client.events.AddCommentEvent;
import org.gcube.portlets.user.reportgenerator.client.events.RemovedUserCommentEvent;
import org.gcube.portlets.user.reportgenerator.client.targets.ReportTextArea;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.AbsolutePanel;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.TextArea;
import com.google.gwt.user.client.ui.VerticalPanel;
public class CommentDialog extends DialogBox {
private static final int PANEL_WIDTH = 200;
VerticalPanel mainPanel = new VerticalPanel();
AbsolutePanel header = new AbsolutePanel();
TextArea area;
public CommentDialog(final HandlerManager eventBus, final ReportTextArea source, final String username, final String previousComment, int areaHeight) {
super(true);
setStyleName("comment-popup");
area = new TextArea();
if (previousComment != null && !(previousComment.compareTo("") == 0)) {
area.setText(previousComment);
} else {
area.setText(" - " + username+":\n");
}
if (areaHeight > 0) {
area.setPixelSize(PANEL_WIDTH, areaHeight);
} else {
area.setPixelSize(PANEL_WIDTH, 85);
}
setSize(PANEL_WIDTH+"px", "100px");
header.setPixelSize(PANEL_WIDTH, 15);
final Image enterImage = new Image(ImageConstants.IMAGE_ARROW_ENTER);
final Image closeImage = new Image(ImageConstants.IMAGE_CLOSE_15x15);
final Image binImage = new Image(ImageConstants.IMAGE_BIN);
closeImage.setStyleName("selectable");
binImage.setStyleName("selectable");
enterImage.setStyleName("selectable");
header.add(enterImage, PANEL_WIDTH-46, -2);
header.add(binImage, PANEL_WIDTH-27, 0);
header.add(closeImage, PANEL_WIDTH-12, 3);
binImage.setTitle("Discard this comment");
closeImage.setTitle("Close and save");
enterImage.setTitle("Add another comment");
area.setStyleName("comment-popup-textarea");
header.setStyleName("comment-popup-header");
mainPanel.add(header);
mainPanel.add(area);
add(mainPanel);
enterImage.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
area.setText(area.getText() + "\n______\n"+username+":\n");
area.setPixelSize(PANEL_WIDTH, area.getOffsetHeight()+70);
}
});
closeImage.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
eventBus.fireEvent(new AddCommentEvent(source, area.getText(), area.getOffsetHeight()));
source.addCommentView();
hide();
}
});
binImage.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
eventBus.fireEvent(new RemovedUserCommentEvent(source));
source.removeCommentView();
hide();
}
});
}
}