package is.idega.idegaweb.project.presentation;
import is.idega.idegaweb.project.business.ProjectBusiness;
import java.util.Vector;
import com.idega.builder.dynamicpagetrigger.data.PageTriggerInfo;
import com.idega.core.accesscontrol.data.PermissionGroup;
import com.idega.core.data.GenericGroup;
import com.idega.idegaweb.presentation.IWAdminWindow;
import com.idega.presentation.IWContext;
import com.idega.presentation.Table;
import com.idega.presentation.text.Text;
import com.idega.presentation.ui.Form;
import com.idega.presentation.ui.RadioGroup;
import com.idega.presentation.ui.SubmitButton;
import com.idega.presentation.ui.TextArea;
import com.idega.presentation.ui.TextInput;
/**
* 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 IPProjectParticipantGroupCreator extends IWAdminWindow {
private Text groupNameText;
private Text descriptionText;
private Text groupTypeText;
private TextInput groupNameField;
private TextArea descriptionField;
private RadioGroup groupTypeField;
private SubmitButton okButton;
private SubmitButton cancelButton;
private Vector groupType;
private Form myForm;
public static String okButtonParameterValue = "ok";
public static String cancelButtonParameterValue = "cancel";
public static String submitButtonParameterName = "submit";
public static String groupNameFieldParameterName = "groupName";
public static String descriptionFieldParameterName = "description";
public static String groupTypeFieldParameterName = "group_type";
private ProjectBusiness business;
private String rowHeight = "37";
public IPProjectParticipantGroupCreator() {
super();
groupType = new Vector();
this.setName("idegaWeb Project - Stofna H�p");
this.setHeight(340);
this.setWidth(390);
//this.setBackgroundColor("#d4d0c8");
myForm = new Form();
initializeTexts();
initializeFields();
init();
}
protected void initializeTexts(){
groupNameText = new Text("Group name:");
descriptionText = new Text("Description : ");
groupTypeText = new Text("Type: ");
}
protected void initializeFields(){
groupNameField = new TextInput(groupNameFieldParameterName);
groupNameField.setLength(20);
descriptionField = new TextArea(descriptionFieldParameterName);
descriptionField.setHeight(3);
descriptionField.setWidth(20);
groupTypeField = new RadioGroup(groupTypeFieldParameterName);
groupTypeField.setWidth(1);
okButton = new SubmitButton(" OK ",submitButtonParameterName,okButtonParameterValue);
cancelButton = new SubmitButton(" Cancel ",submitButtonParameterName,cancelButtonParameterValue);
}
public void init(){
this.addGroupType(GenericGroup.class);
this.addGroupType(PermissionGroup.class);
}
public void addGroupType(Class genricGroup){
groupType.add(genricGroup);
}
public void lineUpElements(){
Table frameTable = new Table(1,3);
frameTable.setAlignment("center");
frameTable.setVerticalAlignment("middle");
frameTable.setCellpadding(0);
frameTable.setCellspacing(0);
// nameTable begin
Table nameTable = new Table(1,4);
nameTable.setCellpadding(0);
nameTable.setCellspacing(0);
nameTable.setHeight(1,rowHeight);
nameTable.setHeight(2,rowHeight);
nameTable.add(groupNameText,1,1);
nameTable.add(groupNameField,1,2);
nameTable.add(descriptionText,1,3);
nameTable.add(descriptionField,1,4);
// nameTable end
/*
// Property begin
int size = groupType.size();
if(size > 1){
Table propertyTable = new Table(2,1);
propertyTable.setCellpadding(0);
propertyTable.setCellspacing(0);
propertyTable.setHeight(1,rowHeight);
FramePane frPane = new FramePane("Type");
for (int i = 0; i < groupType.size(); i++){
String value = ((GenericGroup)com.idega.core.data.GenericGroupBMPBean.getStaticInstance((Class)groupType.get(i))).getGroupTypeValue();
String text = value.substring(1);
text = value.substring(0,1).toUpperCase() + text;
if(i==0){
groupTypeField.addRadioButton(value,new Text(text),true);
}else{
groupTypeField.addRadioButton(value,new Text(text));
}
}
frPane.add(groupTypeField);
frPane.setWidth(200);
propertyTable.add(frPane,1,1);
frameTable.add(propertyTable,1,2);
}else if (size == 1){
frameTable.add(new HiddenInput(((GenericGroup)com.idega.core.data.GenericGroupBMPBean.getStaticInstance((Class)groupType.get(0))).getGroupTypeValue()));
}else{
frameTable.add(new HiddenInput(groupTypeFieldParameterName,com.idega.core.data.GenericGroupBMPBean.getStaticInstance().getGroupTypeValue()));
}
// Property end
*/
// buttonTable begin
Table buttonTable = new Table(3,1);
buttonTable.setCellpadding(0);
buttonTable.setCellspacing(0);
buttonTable.setHeight(1,rowHeight);
buttonTable.setWidth(2,"5");
buttonTable.add(okButton,1,1);
buttonTable.add(cancelButton,3,1);
// buttonTable end
frameTable.add(nameTable,1,1);
frameTable.add(buttonTable,1,3);
frameTable.setAlignment(1,3,"right");
myForm.add(frameTable);
}
public void commitCreation(IWContext iwc) throws Exception{
GenericGroup newGroup;
String name = iwc.getParameter(this.groupNameFieldParameterName);
String description = iwc.getParameter(this.descriptionFieldParameterName);
// String type = iwc.getParameter(this.groupTypeFieldParameterName);
String type = is.idega.idegaweb.project.data.IPParticipantGroupBMPBean.getStaticGroupInstance().getGroupTypeValue();
/*
if(type == null){
throw new Exception("no group_type selected");
}
*/
/**
* @todo implement connection between Project instnces and participantgroups ()
*/
business.createParticipantGroup(((com.idega.builder.dynamicpagetrigger.data.PageTriggerInfoHome)com.idega.data.IDOLookup.getHomeLegacy(PageTriggerInfo.class)).findByPrimaryKeyLegacy(1),name,description);
}
public void main(IWContext iwc) throws Exception {
myForm.empty();
this.add(myForm);
business = ProjectBusiness.getInstance();
String submit = iwc.getParameter("submit");
if(submit != null){
if(submit.equals("ok")){
this.commitCreation(iwc);
this.close();
this.setParentToReload();
}else if(submit.equals("cancel")){
this.close();
}
} else {
lineUpElements();
}
}
}