/*
* Created on Oct 7, 2004
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.idega.block.forum.presentation;
import com.idega.block.forum.business.ForumBusiness;
import com.idega.core.builder.data.ICPage;
import com.idega.idegaweb.IWBundle;
import com.idega.idegaweb.IWResourceBundle;
import com.idega.presentation.Block;
import com.idega.presentation.IWContext;
import com.idega.presentation.Image;
import com.idega.presentation.Table;
import com.idega.presentation.text.Link;
import com.idega.presentation.text.Text;
/**
* @author Laddi
*/
public class ForumNavigation extends Block {
private int _topicID = -1;
private boolean _hasAddPermission = false;
private boolean _showOverviewLink = true;
private IWBundle _iwb;
private IWResourceBundle _iwrb;
private ICPage _page;
public void main(IWContext iwc) {
this._iwrb = getResourceBundle(iwc);
this._iwb = getBundle(iwc);
this._hasAddPermission = hasAddPermission(iwc);
try {
this._topicID = Integer.parseInt(iwc.getParameter(ForumBusiness.PARAMETER_TOPIC_ID));
}
catch (NumberFormatException e) {
this._topicID = -1;
}
add(getNavigation(iwc));
}
public boolean hasAddPermission(IWContext iwc) {
return iwc.hasPermission(Forum.AddPermission, this);
}
private Table getNavigation(IWContext iwc) {
Table table = new Table();
table.setCellspacing(0);
table.setCellpadding(2);
int column = 1;
if (this._topicID != -1) {
Image newImage = this._iwb.getImage("shared/new.gif");
newImage.setPaddingRight(2);
newImage.setAlignment(Image.ALIGNMENT_ABSOLUTE_MIDDLE);
if (this._hasAddPermission) {
Link newImageLink = new Link(newImage);
newImageLink.setWindowToOpen(ForumThreadEditor.class);
newImageLink.addParameter(ForumBusiness.PARAMETER_TOPIC_ID, this._topicID);
Link newLink = getStyleLink(this._iwrb.getLocalizedString("new_thread", "New thread"), Forum.LINK_STYLE);
newLink.setWindowToOpen(ForumThreadEditor.class);
newLink.addParameter(ForumBusiness.PARAMETER_TOPIC_ID, this._topicID);
table.add(newImageLink, column, 1);
table.add(newLink, column++, 1);
}
else {
Text newText = getStyleText(this._iwrb.getLocalizedString("new_thread", "New thread"), Forum.SMALL_TEXT_STYLE);
table.add(newImage, column, 1);
table.add(newText, column++, 1);
}
if (this._showOverviewLink) {
Image overviewImage = this._iwb.getImage("shared/forum.gif");
overviewImage.setPaddingRight(2);
overviewImage.setAlignment(Image.ALIGNMENT_ABSOLUTE_MIDDLE);
Link overviewImageLink = new Link(overviewImage);
overviewImageLink.addParameter(ForumBusiness.PARAMETER_STATE, ForumBusiness.FORUM_TOPICS);
if (this._page != null) {
overviewImageLink.setPage(this._page);
}
table.add(overviewImageLink, column, 1);
table.add(getOverviewLink(), column, 1);
}
}
return table;
}
private Link getOverviewLink() {
Link overView = getStyleLink(this._iwrb.getLocalizedString("topic_overview", "Topic overview"), Forum.LINK_STYLE);
overView.addParameter(ForumBusiness.PARAMETER_STATE, ForumBusiness.FORUM_TOPICS);
if (this._page != null) {
overView.setPage(this._page);
}
return overView;
}
public String getBundleIdentifier() {
return Forum.IW_BUNDLE_IDENTIFIER;
}
public void registerPermissionKeys() {
registerPermissionKey(Forum.AddPermission);
}
public void setPage(ICPage page) {
this._page = page;
}
public void setShowOverviewLink(boolean overviewLink) {
this._showOverviewLink = overviewLink;
}
}