/* * Created on 4.5.2004 */ package com.idega.development.presentation; import java.util.Collection; import java.util.Iterator; import javax.ejb.FinderException; import com.idega.builder.dynamicpagetrigger.data.PageTriggerInfo; import com.idega.builder.dynamicpagetrigger.data.PageTriggerInfoHome; import com.idega.builder.presentation.IBPageChooser; import com.idega.business.IBOLookup; import com.idega.core.builder.data.ICPage; import com.idega.core.component.data.ICObject; import com.idega.core.component.data.ICObjectHome; import com.idega.data.IDOLookup; import com.idega.data.IDOLookupException; import com.idega.development.business.HomePageBusiness; import com.idega.presentation.Block; import com.idega.presentation.IWContext; import com.idega.presentation.Table; import com.idega.presentation.text.Text; import com.idega.presentation.ui.DropdownMenu; import com.idega.presentation.ui.Form; import com.idega.presentation.ui.SubmitButton; import com.idega.user.data.Group; import com.idega.user.data.GroupHome; import com.idega.user.data.GroupType; import com.idega.user.data.GroupTypeHome; /** * Title: HomePageTrigger * Description: * Copyright: Copyright (c) 2004 * Company: idega Software * @author 2004 - idega team - <br><a href="mailto:gummi@idega.is">Gudmundur Agust Saemundsson</a><br> * @version 1.0 */ public class HomePageGenerator extends Block { private final static String _prmGroupType = "ic_gr_t"; private final static String _prmCreateForGroup = "ic_cr_f_gr"; private final static String _prmDetachPageAndGroup = "ic_dt_pg"; private final static String _prmPageTriggerInfo = "ic_pti"; private String _blockWidth = Table.HUNDRED_PERCENT; /** * */ public HomePageGenerator() { super(); } public void main(IWContext iwc) throws Exception { add(IWDeveloper.getTitleTable(this.getClass())); if (!iwc.isIE()) { getParentPage().setBackgroundColor("#FFFFFF"); } String pDetachPageAndGroup = iwc.getParameter(_prmDetachPageAndGroup); if(pDetachPageAndGroup!= null && !"".equals(pDetachPageAndGroup)) { System.out.println("Detach page from Group: "+pDetachPageAndGroup); HomePageBusiness hpBusiness = (HomePageBusiness)IBOLookup.getServiceInstance(iwc,HomePageBusiness.class); GroupHome grHome = ((GroupHome)IDOLookup.getHome(Group.class)); Group myGroup = grHome.findByPrimaryKey(grHome.decode(pDetachPageAndGroup)); hpBusiness.invalidateGroup(iwc,myGroup); } String pCreateForGroup = iwc.getParameter(_prmCreateForGroup); if(pCreateForGroup!= null && !"".equals(pCreateForGroup)) { String pPageTriggerInfo = iwc.getParameter(_prmPageTriggerInfo); System.out.println("Create pages for Group: "+pCreateForGroup); GroupHome grHome = ((GroupHome)IDOLookup.getHome(Group.class)); Group myGroup = grHome.findByPrimaryKey(grHome.decode(pCreateForGroup)); PageTriggerInfoHome ptHome = ((PageTriggerInfoHome)IDOLookup.getHome(PageTriggerInfo.class)); PageTriggerInfo ptInfo = ptHome.findByPrimaryKey(ptHome.decode(pPageTriggerInfo)); HomePageBusiness hpBusiness = (HomePageBusiness)IBOLookup.getServiceInstance(iwc,HomePageBusiness.class); hpBusiness.createHomePage(iwc,myGroup,ptInfo); } Form myForm = new Form(); myForm.maintainParameter(IWDeveloper.actionParameter); myForm.maintainParameter(IWDeveloper.PARAMETER_CLASS_NAME); Table myTable = new Table(); myTable.setWidth(this._blockWidth); //myTable.setBorder(1); Table dropdownTable = new Table(); //myTable.setWidth(_blockWidth); //myTable.setBorder(1); boolean someError = false; try { ICObject refObj = ((ICObjectHome)IDOLookup.getHome(ICObject.class)).findByClassName(Group.class.getName()); Collection procedures = ((PageTriggerInfoHome)IDOLookup.getHome(PageTriggerInfo.class)).findAllByICObjectID(refObj); String pGroupType = iwc.getParameter(_prmGroupType); if(pGroupType != null) { Text procedureText = IWDeveloper.getText("Procedure:"); dropdownTable.add(procedureText,1,2); dropdownTable.setNoWrap(1,2); DropdownMenu proceduresMenu = new DropdownMenu(procedures,_prmPageTriggerInfo); proceduresMenu.keepStatusOnAction(); dropdownTable.add(proceduresMenu,2,2); Table groupListTable = new Table(); groupListTable.setCellspacing(0); groupListTable.setCellpadding(0); //groupListTable.setBorder(1); groupListTable.setWidth(this._blockWidth); groupListTable.setNoWrap(); Collection groups = ((GroupHome)IDOLookup.getHome(Group.class)).findGroupsByType(pGroupType); groupListTable.add(IWDeveloper.getText("Group name"),1,1); groupListTable.add(IWDeveloper.getText("Homepage"),2,1); groupListTable.setColumnWidth(2,"200"); groupListTable.setColumnAlignment(2,Table.HORIZONTAL_ALIGN_CENTER); groupListTable.add(IWDeveloper.getText("Create"),3,1); groupListTable.setColumnWidth(3,"100"); groupListTable.setColumnAlignment(3,Table.HORIZONTAL_ALIGN_CENTER); groupListTable.setLineAfterRow(1); int tableRow = 2; for (Iterator iter = groups.iterator(); iter.hasNext(); tableRow++) { Group group = (Group) iter.next(); groupListTable.add(group.getName(),1,tableRow); ICPage homePage = group.getHomePage(); if(homePage!=null) { IBPageChooser page = new IBPageChooser("-"); page.setSelectedPage(((Integer)homePage.getPrimaryKey()).intValue(),homePage.getName()); page.setDisabled(true); groupListTable.add(page,2,tableRow); SubmitButton button = new SubmitButton("Detach",_prmDetachPageAndGroup,group.getPrimaryKey().toString()); //button.setToDisableOnClick(button,true); //button.setToSubmit(); groupListTable.add(button,3,tableRow); } else { groupListTable.add(new Text(" - "),2,tableRow); SubmitButton button = new SubmitButton("Create",_prmCreateForGroup,group.getPrimaryKey().toString()); //button.setToDisableOnClick(button,true); //button.setToSubmit(); groupListTable.add(button,3,tableRow); } groupListTable.setAlignment(2,tableRow,Table.HORIZONTAL_ALIGN_CENTER); groupListTable.setAlignment(3,tableRow,Table.HORIZONTAL_ALIGN_CENTER); } myTable.add(groupListTable,1,2); } Text grouptypeText = IWDeveloper.getText("GroupType:"); dropdownTable.add(grouptypeText,1,1); dropdownTable.setNoWrap(1,1); Collection groupTypes = ((GroupTypeHome)IDOLookup.getHome(GroupType.class)).findVisibleGroupTypes(); DropdownMenu groupTypeMenu = new DropdownMenu(groupTypes,_prmGroupType); groupTypeMenu.keepStatusOnAction(); groupTypeMenu.setToSubmit(); dropdownTable.add(groupTypeMenu,2,1); dropdownTable.add(new SubmitButton("Go"),3,1); } catch (IDOLookupException e) { someError=true; e.printStackTrace(); } catch (FinderException e) { someError=true; e.printStackTrace(); } finally { if(someError) { add("No procedure available for "+Group.class); add(Text.getBreak()); add("Make sure that "+Group.class+" is registered and then create a procedure in "+PageTriggerInfo.class); } } myTable.add(dropdownTable,1,1); myForm.add(myTable); this.add(myForm); } }