package is.idega.idegaweb.project.presentation; import com.idega.idegaweb.IWResourceBundle; import com.idega.presentation.Block; import com.idega.presentation.IWContext; import com.idega.presentation.Image; import com.idega.presentation.Page; import com.idega.presentation.text.Link; import is.idega.idegaweb.project.business.ProjectBusiness; import com.idega.idegaweb.IWUserContext; /** * Title: IW Project * Description: * Copyright: Copyright (c) 2001 * Company: idega * @author <a href="gummi@idega.is">Gu�mundur �g�st S�mundsson</a> * @version 1.0 */ public class ProjectInvalidationLink extends Block { protected Link invalidateProjectLink = null; protected Image optionalImage = null; public static final String _PROJECT_BUNDLE_IDENTIFIER = "is.idega.idegaweb.project"; private int pageId = -1; public ProjectInvalidationLink() { super(); } public String getBundleIdentifier(){ return _PROJECT_BUNDLE_IDENTIFIER; } public void setImage(Image image){ optionalImage = image; } public void setDestinationPageId(int id){ pageId = id; } public synchronized Object clonePermissionChecked(IWUserContext iwc, boolean askForPermission){ if(askForPermission){ if(iwc.hasViewPermission(this) || this.isOwnerOfProject(iwc)){ return this.clone(); } else { return NULL_CLONE_OBJECT; } } else { return this.clone(); } } /** * @todo reimplement */ public boolean isOwnerOfProject(IWUserContext iwc){ Page p = this.getParentPage(); if(p != null){ try { return iwc.getAccessController().isOwner(p,iwc); } catch (Exception ex) { System.err.println(ex.getMessage()); return false; } } else { return false; } } public void main(IWContext iwc) throws Exception { //IWBundle core = iwc.getApplication().getBundle(IW_CORE_BUNDLE_IDENTIFIER); this.empty(); if(optionalImage != null){ invalidateProjectLink = new Link(optionalImage); } else { IWResourceBundle iwrb = this.getResourceBundle(iwc); Image tmp = iwrb.getImage("delete_project.gif","delete project"); if(tmp != null){ invalidateProjectLink = new Link(tmp); } else { invalidateProjectLink = new Link("*"); } } invalidateProjectLink.setName("delete project"); invalidateProjectLink.setWindowToOpen(IPDeleteProjectWindow.class); invalidateProjectLink.addParameter(IPDeleteProjectWindow._PRM_DELETE,"true"); invalidateProjectLink.addParameter(IPDeleteProjectWindow._PRM_INSTANCE_ID, ProjectBusiness.getCurrentProjectId(iwc)); if(pageId != -1){ invalidateProjectLink.addParameter(IPDeleteProjectWindow._PRM_PAGE_ID,pageId); } this.add(invalidateProjectLink); } }