124 lines
3.5 KiB
Java
Executable File
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);
|
|
}
|
|
|
|
}
|