libreccm-legacy/ccm-weblog/src/org/undp/weblog/ui/WebLogDetailPane.java

124 lines
3.5 KiB
Java
Executable File

package org.undp.weblog.ui;
import java.math.BigDecimal;
import org.undp.weblog.WebLog;
import org.undp.weblog.WebLogConstants;
import org.undp.weblog.util.GlobalizationUtil;
import com.arsdigita.bebop.ActionLink;
import com.arsdigita.bebop.GridPanel;
import com.arsdigita.bebop.Label;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.RequestLocal;
import com.arsdigita.bebop.event.ActionEvent;
import com.arsdigita.bebop.event.ActionListener;
import com.arsdigita.xml.Element;
/**
* @author Peter Kopunec
*/
public class WebLogDetailPane extends GridPanel implements WebLogConstants {
private static final String NAME_TITLE = "title";
private static final String NAME_LEAD = "lead";
private static final String NAME_BODY = "body";
private final WebLogView m_parent;
private final ActionLink m_edit;
private final ActionLink m_delete;
private final ActionLink m_addComment;
public WebLogDetailPane(WebLogView parent) {
super(1);
m_parent = parent;
final RequestLocal entityRequest = new RequestLocal() {
protected Object initialValue(PageState ps) {
BigDecimal detailID = m_parent.getEntityID(ps);
return new WebLog(detailID);
}
};
GridPanel detail = new GridPanel(1);
detail.add(new WebLogDetail(entityRequest));
detail.add(new WebLogCommentsList(m_parent, entityRequest));
add(detail);
m_addComment = new ActionLink(GlobalizationUtil
.localize("webLogDetailPane.addComment"));
m_addComment.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// if (m_parent.canUserAdminApplication() ||
// m_parent.canUserEditApplication()) {
PageState ps = e.getPageState();
m_parent.setParentID(ps, (BigDecimal) m_parent
.getEntityIDParam().transformValue(ps.getRequest()));
m_parent.displayWebLogCommentCreateForm(ps);
// }
}
});
add(m_addComment);
add(new Label(" ", false));
ActionLink link = new ActionLink(GlobalizationUtil
.localize("webLogDetailPane.detailsList"));
link.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
m_parent.displayWebLogsList(e.getPageState());
}
});
add(link);
m_edit = new ActionLink(GlobalizationUtil
.localize("webLogDetailPane.edit"));
m_edit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (m_parent.canUserAdminApplication()) {
PageState ps = e.getPageState();
m_parent
.setEntityID(ps, (BigDecimal) m_parent
.getEntityIDParam().transformValue(
ps.getRequest()));
m_parent.displayWebLogEditForm(ps, true);
}
}
});
add(m_edit);
m_delete = new ActionLink(GlobalizationUtil
.localize("webLogDetailPane.delete"));
m_delete.setOnClick(" return confirm('"
+ GlobalizationUtil.localize("confirmDelete") + "');");
m_delete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (m_parent.canUserAdminApplication()) {
PageState ps = e.getPageState();
BigDecimal detailID = (BigDecimal) m_parent
.getEntityIDParam().transformValue(ps.getRequest());
WebLog entity = new WebLog(detailID);
entity.delete();
m_parent.displayWebLogsList(ps);
}
}
});
add(m_delete);
}
public void generateXML(PageState ps, Element p) {
boolean canAdmin = m_parent.canUserAdminApplication();
// m_addComment.setVisible(ps, canAdmin ||
// m_parent.canUserEditApplication());
m_edit.setVisible(ps, canAdmin);
m_delete.setVisible(ps, canAdmin);
super.generateXML(ps, p);
}
}