package is.idega.idegaweb.campus.block.allocation.presentation;
import is.idega.idegaweb.campus.block.allocation.business.CampusContractWriter;
import is.idega.idegaweb.campus.block.allocation.data.ContractText;
import is.idega.idegaweb.campus.block.allocation.data.ContractTextBMPBean;
import is.idega.idegaweb.campus.block.allocation.data.ContractTextHome;
import is.idega.idegaweb.campus.presentation.CampusBlock;
import is.idega.idegaweb.campus.presentation.Edit;
import java.util.Collection;
import java.util.Iterator;
import com.idega.data.IDOLookup;
import com.idega.data.SimpleQuerier;
import com.idega.presentation.IWContext;
import com.idega.presentation.PresentationObject;
import com.idega.presentation.Table;
import com.idega.presentation.text.Link;
import com.idega.presentation.ui.BackButton;
import com.idega.presentation.ui.CheckBox;
import com.idega.presentation.ui.DropdownMenu;
import com.idega.presentation.ui.Form;
import com.idega.presentation.ui.HiddenInput;
import com.idega.presentation.ui.SubmitButton;
import com.idega.presentation.ui.TextArea;
import com.idega.presentation.ui.TextInput;
/**
* Title: idegaclasses
* Description:
* Copyright: Copyright (c) 2001
* Company:
* @author <a href="mailto:aron@idega.is">aron@idega.is
* @version 1.0
*/
public class ContractTextSetter extends CampusBlock{
private final static String IS ="IS";
private final static String EN ="EN";
private final static String TIS ="TIS";
private final static String TEN ="TEN";
private String propParameter = is.idega.idegaweb.campus.data.SystemPropertiesBMPBean.getEntityTableName();
private String localesParameter="iw_locales";
private String bottomThickness = "8";
private boolean isAdmin;
private boolean useObjectInstanciator = false;
public ContractTextSetter() {
}
public String getLocalizedNameKey(){
return "contracttext";
}
public String getLocalizedNameValue(){
return "Contracttext";
}
public void setToUseObjectInstanciator(boolean use){
useObjectInstanciator=use;
}
protected void control(IWContext iwc){
if(isAdmin){
//add(getPDFLink(iwb.getImage("print.gif")));
if(iwc.getParameter("savetitle")!=null){
updateTitleForm(iwc);
add(getMainTable(iwc));
}
else if(iwc.getParameter("savetext")!=null){
updateForm(iwc);
add(getMainTable(iwc));
}
else if( iwc.getParameter("delete")!= null){
add (ConfirmDelete(iwc));
}
else if(iwc.getParameter("conf_delete")!=null){
deleteText(iwc);
add(getMainTable(iwc));
}
else if(iwc.getParameter("text_id")!=null || iwc.getParameter("new_text")!=null){
add(getSetupForm(iwc));
}
else if(iwc.getParameter("new_title")!=null){
add(getTitleForm(iwc));
}
else if(iwc.getParameter("title_id")!=null){
add(getTitleForm(iwc));
}
else {
add(getMainTable(iwc));
}
}
else
add(getNoAccessObject(iwc));
}
private PresentationObject getMainTable(IWContext iwc){
Table T = new Table();
T.setCellpadding(0);
T.setCellspacing(0);
Collection L = listOfTexts(iwc);
ContractText Title = getTitle(iwc);
String sTitle = "";
Link newTitleLink = new Link();
if(Title != null){
sTitle = Title.getText();
newTitleLink.addParameter("title_id",Title.getPrimaryKey().toString());
}
else{
sTitle = localize("new_title","New Title");
newTitleLink.addParameter("new_title","new_title");
}
newTitleLink.setText(sTitle);
int row = 1;
T.add(getPDFLink(getBundle().getImage("print.gif")),1,row);
T.add(getNewLink(),2,row);
row++;
T.add(Edit.titleText(localize("header","Header")),1,row);
row++;
T.add(newTitleLink,2,row);
row++;
T.add(Edit.titleText(localize("order","Order")),1,row);
T.add(Edit.titleText(localize("title","Title")),2,row);
row++;
if(L!=null){
int len = L.size();
ContractText CT;
for (Iterator iter = L.iterator(); iter.hasNext();) {
CT = (ContractText) iter.next();
Link link = new Link(CT.getName());
link.addParameter("text_id",CT.getPrimaryKey().toString());
T.add(String.valueOf(CT.getOrdinal()),1,row);
T.add(link,2,row);
row++;
}
//T.setColumnAlignment(1,"right");
T.setHorizontalZebraColored(Edit.colorLightBlue,Edit.colorWhite);
T.setRowColor(1,Edit.colorWhite);
T.setRowColor(2,Edit.colorBlue);
T.setRowColor(4,Edit.colorBlue);
T.setRowColor(row,Edit.colorRed);
T.setWidth(1,"30");
T.mergeCells(1,2,2,2);
T.mergeCells(1,row,8,row);
T.add(Edit.formatText(" "),1,row);
T.setHeight(row,bottomThickness);
}
else{
T.add(localize("no_texts","No text in database"),1,2);
}
return T;
}
private PresentationObject getTitleForm(IWContext iwc){
Form F = new Form();
Table T = new Table();
int row = 1;
TextInput text = null;
String sId = iwc.getParameter("title_id");
if(sId!=null){
try {
ContractText CT = ((ContractTextHome)IDOLookup.getHome(ContractText.class)).findByPrimaryKey(new Integer(sId));
text = new TextInput("tname",CT.getText());
HiddenInput HI = new HiddenInput("title_id",sId);
T.add(HI);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
else{
text = new TextInput("tname");
}
SubmitButton save = new SubmitButton("savetitle","Save");
text.setLength(80);
T.add(getUpLink(),1,row++);
T.add(Edit.formatText(localize("text","Text")),1,row++);
T.add(text,1,row++);
T.add(save,1,row);
F.add(T);
return (F);
}
private PresentationObject getSetupForm(IWContext iwc){
//Table Frame = new Table(2,1);
Table T = new Table();
T.add(getUpLink(),1,1);
T.add(getNewLink(),1,1);
int row = 2;
DropdownMenu intDrop = getIntegerDrop("ordinal",1,100);
TextInput name = null;
TextArea text = null;
CheckBox CB = new CheckBox("usetags","true");
String sId = iwc.getParameter("text_id");
if(sId!=null){
try {
ContractText CT = ((ContractTextHome)IDOLookup.getHome(ContractText.class)).findByPrimaryKey(new Integer(sId));
name = new TextInput("name",CT.getName());
text = getTextArea("texti",CT.getText());
CB.setChecked(CT.getUseTags());
intDrop.setSelectedElement(String.valueOf(CT.getOrdinal()));
HiddenInput HI = new HiddenInput("text_id",sId);
T.add(HI);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
else{
try {
name = new TextInput("name");
text = getTextArea("texti","");
int max = 1+ SimpleQuerier.executeIntQuery("select max("+ContractTextBMPBean.getOrdinalColumnName()+") from "+ContractTextBMPBean.getEntityTableName() );
intDrop.setSelectedElement(String.valueOf(max));
}
catch (Exception ex) {
ex.printStackTrace();
}
}
SubmitButton save = new SubmitButton("savetext","Save");
SubmitButton delete = new SubmitButton("delete","Delete");
DropdownMenu tagDrop = getTagDrop("tags");
tagDrop.setOnChange("this.form.texti.value += this.options[this.selectedIndex].value;");
name.setLength(80);
T.add(Edit.formatText(localize("title","Title")),1,row++);
T.add(name,1,row++);
T.add(Edit.formatText(localize("text","Text")),1,row++);
T.add(text,1,row++);
Table bottomTable = new Table();
bottomTable.setWidth("100%");
bottomTable.add(Edit.formatText(localize("order","Order")),1,1);
bottomTable.add(intDrop,1,1);
bottomTable.add(Edit.formatText(localize("set_to_parse","Parse ? ")),2,1);
bottomTable.add(CB,2,1);
bottomTable.add(save,3,1);
bottomTable.add(Edit.formatText(localize("tag","Tag:")),4,1);
bottomTable.add(tagDrop,4,1);
bottomTable.add(delete,5,1);
T.add(bottomTable,1,row);
/*
String[] tags = CampusContractWriter.getTags();
Table T2 = new Table();
row = 1;
T2.add("Tags",1,row++);
for (int i = 0; i < tags.length; i++) {
T2.add("["+tags[i]+"]",1,row++);
}
Frame.add(T2,2,1);
*/
// Frame.add(T,1,1);
// Frame.setBorder(1);
Form myForm = new Form();
myForm.add(T);
return myForm;
}
private PresentationObject ConfirmDelete(IWContext iwc){
String sTextId = iwc.getParameter("text_id");
Form F = new Form();
Table T = new Table(3,2);
T.mergeCells(1,1,3,1);
if(sTextId != null)
T.add(new HiddenInput("text_id",sTextId));
SubmitButton del = new SubmitButton("conf_delete",localize("ok","OK"));
BackButton back = new BackButton(localize("cancel","Cancel"));
back.setHistoryMove(2);
T.add( Edit.formatText(localize("sure_to_delete","Do really want to delete")),1,1);
T.add( del,1,2);
T.add( back,3,2);
F.add(T);
return F;
}
private void deleteText(IWContext iwc){
String sTextId = iwc.getParameter("text_id");
if(sTextId !=null){
try {
int id = Integer.parseInt(sTextId);
ContractText CT = ((ContractTextHome)IDOLookup.getHome(ContractText.class)).findByPrimaryKey(new Integer(id));
CT.remove();
}
catch (Exception ex) {
}
}
}
private void updateForm(IWContext iwc){
String sTextId = iwc.getParameter("text_id");
String sOrdinal = iwc.getParameter("ordinal");
String sName = iwc.getParameter("name");
String sText = iwc.getParameter("texti");
String sUseTags = iwc.getParameter("usetags");
ContractText CT = null;
try{
if(sTextId != null){
CT = ((ContractTextHome)IDOLookup.getHome(ContractText.class)).findByPrimaryKey(new Integer(sTextId));
}
else{
CT = ((ContractTextHome)IDOLookup.getHome(ContractText.class)).create();
}
if(CT !=null){
CT.setName(sName);
CT.setText(sText);
CT.setOrdinal(Integer.parseInt(sOrdinal));
CT.setLanguage("IS");
if(sUseTags!=null)
CT.setUseTags(true);
else
CT.setUseTags(false);
CT.store();
}}
catch (Exception ex) {
ex.printStackTrace();
}
}
private void updateTitleForm(IWContext iwc){
String sTextId = iwc.getParameter("title_id");
String sText = iwc.getParameter("tname");
ContractText CT = null;
try{
if(sTextId != null){
CT = ((ContractTextHome)IDOLookup.getHome(ContractText.class)).findByPrimaryKey(new Integer(sTextId));
}
else{
CT = ((ContractTextHome)IDOLookup.getHome(ContractText.class)).create();
}
if(CT !=null){
CT.setName("title");
CT.setText(sText);
CT.setOrdinal(-1);
CT.setLanguage(TIS);
CT.setUseTags(false);
CT.store();
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private Collection listOfTexts(IWContext iwc){
Collection texts = null;
try {
texts = getContractService(iwc).getContractTextHome().findByLanguage(IS);
//L = EntityFinder.getInstance().findAllByColumnOrdered(ContractText.class,ContractTextBMPBean.getLanguageColumnName(),IS,ContractTextBMPBean.getOrdinalColumnName());
}
catch (Exception ex) {
}
return texts;
}
private ContractText getTitle(IWContext iwc){
Collection texts = null;
try {
texts = getContractService(iwc).getContractTextHome().findByLanguage(TIS);
if(texts!= null && !texts.isEmpty())
return (ContractText) texts.iterator().next();
else
return null;
}
catch (Exception ex) {
return null;
}
}
private Link getUpLink(){
return new Link(getBundle().getImage("list.gif"));
}
private Link getNewLink(){
Link newLink = new Link(getBundle().getImage("new.gif"));
newLink.addParameter("new_text","new");
return newLink;
}
public Link getPDFLink(PresentationObject MO){
Link L = new Link(MO);
L.setWindowToOpen(ContractFilerWindow.class);
L.addParameter("test","test");
return L;
}
private DropdownMenu getTagDrop(String name){
String[] tags = CampusContractWriter.getTags();
DropdownMenu drp = new DropdownMenu(name);
drp.addDisabledMenuElement("tag",localize("tags","Tags"));
for (int i = 0; i < tags.length; i++) {
drp.addMenuElement(" ["+tags[i]+"]",localize(tags[i],tags[i]));
}
return drp;
}
private DropdownMenu getIntegerDrop(String name,int from, int to){
DropdownMenu drp = new DropdownMenu(name);
for (int i = from; i <= to; i++) {
drp.addMenuElement(i,String.valueOf(i));
}
return drp;
}
private TextArea getTextArea(String name,String content){
TextArea TA = new TextArea(name,content);
TA.setStyleClass(Edit.styleAttribute);
TA.setColumns(80);
TA.setRows(20);
return TA;
}
public void main(IWContext iwc){
//isStaff = com.idega.core.accesscontrol.business.AccessControl
isAdmin = iwc.hasEditPermission(this);
control(iwc);
}
}