package plugins.data;
import gcc.catalogue.ShoppingCart;
import java.util.ArrayList;
import java.util.List;
import org.molgenis.framework.db.Database;
import org.molgenis.framework.db.DatabaseException;
import org.molgenis.framework.db.Query;
import org.molgenis.framework.db.QueryRule;
import org.molgenis.framework.db.QueryRule.Operator;
import org.molgenis.framework.ui.PluginModel;
import org.molgenis.framework.ui.ScreenController;
import org.molgenis.framework.ui.ScreenMessage;
import org.molgenis.pheno.Measurement;
import org.molgenis.util.Entity;
import org.molgenis.util.HandleRequestDelegationException;
import org.molgenis.util.Tuple;
public class OldPlacedDownloads extends PluginModel<Entity>
{
private static final long serialVersionUID = -8140222842047905408L;
private ShoppingCart shoppingCart = null;
private List<ShoppingCart> shoppingCartList = new ArrayList<ShoppingCart>();
private boolean ApprovedDownloadsChoice; /*
* false is for All Downloads, true
* for approved
*/
private String selectedDownloadsChoice = null;
public OldPlacedDownloads(String name, ScreenController<?> parent)
{
super(name, parent);
}
@Override
public String getViewName()
{
return "plugins_data_OldPlacedDownloads";
}
@Override
public String getViewTemplate()
{
return "plugins/data/OldPlacedDownloads.ftl";
}
public String getCustomHtmlHeaders()
{
return "<link rel=\"stylesheet\" style=\"text/css\" href=\"res/css/download_list.css\">"
+ "<link rel=\"stylesheet\" style=\"text/css\" href=\"res/css/catalogue.css\">";
}
@Override
public void handleRequest(Database db, Tuple request) throws HandleRequestDelegationException, Exception
{
if ("showDownloads".equals(request.getAction()))
{
selectedDownloadsChoice = request.getString("DownloadsChoice");
System.out.println("selected choice : " + request.getString("DownloadsChoice"));
if (selectedDownloadsChoice.equals("AllPlacedDownloads")) setApprovedDownloadsChoice(false);
else if (selectedDownloadsChoice.equals("ApprovedDownloads")) setApprovedDownloadsChoice(true);
this.reload(db);
}
else if ("DeleteOldDownloads".equals(request.getAction()))
{
this.DeleteOldDownloads(db);
this.reload(db);
}
}
public void DeleteOldDownloads(Database db)
{
// empty db table: actually delete the ones that have checkedOut='false'
List<ShoppingCart> resshoppingCart = new ArrayList<ShoppingCart>();
Query<ShoppingCart> q = db.query(ShoppingCart.class);
q.addRules(new QueryRule(ShoppingCart.USERID, Operator.EQUALS, this.getLogin().getUserName()));
q.addRules(new QueryRule(ShoppingCart.CHECKEDOUT, Operator.EQUALS, true));
try
{
resshoppingCart = q.find();
db.remove(resshoppingCart);
}
catch (DatabaseException e)
{
e.printStackTrace();
}
this.reload(db);
this.getModel().getMessages().add(new ScreenMessage("Your old Downloads have been deleted", true));
}
@Override
public void reload(Database db)
{
try
{
if (!isApprovedDownloadsChoice())
{
shoppingCartList.clear();
System.out.println(">>>>these are all the Downloads");
// get all the items
Query<ShoppingCart> q = db.query(ShoppingCart.class);
q.addRules(new QueryRule(ShoppingCart.USERID, Operator.EQUALS, this.getLogin().getUserName()));
q.addRules(new QueryRule(ShoppingCart.CHECKEDOUT, Operator.EQUALS, true));
if (!q.find().isEmpty())
{
shoppingCart = q.find().get(0);
// Same user could Download multiple times
for (ShoppingCart Download : q.find())
{
shoppingCartList.add(Download);
}
}
else
{
shoppingCart = null;
shoppingCartList.clear();
}
}
else if (isApprovedDownloadsChoice())
{
System.out.println(">>>>these are only the approved all the Downloads");
shoppingCartList.clear();
// get only the approved shopping cart
Query<ShoppingCart> aq = db.query(ShoppingCart.class);
aq.addRules(new QueryRule(ShoppingCart.USERID, Operator.EQUALS, this.getLogin().getUserName()));
aq.addRules(new QueryRule(ShoppingCart.CHECKEDOUT, Operator.EQUALS, true));
aq.addRules(new QueryRule(ShoppingCart.APPROVED, Operator.EQUALS, true));
if (!aq.find().isEmpty())
{
shoppingCart = aq.find().get(0);
System.out.println("Gia na douem ti exei mesa >>>" + shoppingCart);
// Same user could Download multiple times
for (ShoppingCart Download : aq.find())
{
shoppingCartList.add(Download);
}
}
else
{
shoppingCart = null;
shoppingCartList.clear();
}
}
}
catch (Exception e)
{
this.getModel().getMessages().add(new ScreenMessage("No old Downloads available", false));
e.printStackTrace();
}
}
// public ShoppingCart getshoppingCart() {
// return shoppingCart;
// }
public List<ShoppingCart> getshoppingCart()
{
return shoppingCartList;
}
public void setApprovedDownloadsChoice(boolean approvedDownloadsChoice)
{
ApprovedDownloadsChoice = approvedDownloadsChoice;
}
public boolean isApprovedDownloadsChoice()
{
return ApprovedDownloadsChoice;
}
public String getselectedDownloadsChoice()
{
return selectedDownloadsChoice;
}
public String getChoiceLabel()
{
if (ApprovedDownloadsChoice) return "Your approved Downloads";
else if (!ApprovedDownloadsChoice) return "All your placed Downloads";
else
return "please make a choice !";
}
}