Commit 4883aff4 by Liv Haapala

Korjaus kortin png-kuvan luomiseen sekä kopiointi- ja poistamisominaisuudet kortin oheissisällölle.

1 parent aa840dcb
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html" xmlns:users="http://java.sun.com/jsf/composite/tools/user"
xmlns:f="http://java.sun.com/jsf/core"
>
<h:body>
<ui:composition template="#{sessionHandler.template}">
<f:metadata>
<f:event type="preRenderView" listener="#{cardView.initCardClone}" />
<f:viewParam name="clonedtemplateid" value="#{cardView.clonedTemplateId}" />
</f:metadata>
<ui:define name="content">
<h:form id="cardTemplates">
<h:panelGrid columns="2">
<h:outputLabel value="#{i18n['cardTemplate.name']}:" />
<h:inputText value="#{cardView.cardTemplate.name}" />
<h:outputLabel value="#{i18n['cardTemplate.power']}:" />
<h:inputText value="#{cardView.cardTemplate.power}" size="4" />
</h:panelGrid>
<h:commandButton action="#{cardView.cloneTemplate()}" value="#{i18n['cardTemplate.create']}" />
</h:form>
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:users="http://java.sun.com/jsf/composite/tools/user"
xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui">
<h:body>
<ui:composition template="#{sessionHandler.template}">
<f:metadata>
<f:viewParam name="textdataid" value="#{cardTemplateDataEditView.cardTextDataId}" />
<f:viewParam name="objectdataid" value="#{cardTemplateDataEditView.cardObjectDataId}" />
<f:event type="preRenderView" listener="#{cardTemplateDataEditView.initView()}" />
</f:metadata>
<ui:define name="content">
<h:form id="cardTemplates">
<h:panelGrid columns="1">
<h:outputLabel rendered="#{!empty cardTemplateDataEditView.cardTextData}" value="#{i18n['cardTextData.deleteQ']}" />
<h:outputLabel rendered="#{!empty cardTemplateDataEditView.cardObjectData}" value="#{i18n['cardObjectData.deleteQ']}" />
</h:panelGrid>
<h:commandButton rendered="#{!empty cardTemplateDataEditView.cardTextData}" action="#{cardTemplateDataEditView.deleteTextData()}" value="#{i18n['cardTextData.delete']}" />
<h:commandButton rendered="#{!empty cardTemplateDataEditView.cardObjectData}" action="#{cardTemplateDataEditView.deleteObjectData()}" value="#{i18n['cardObjectData.delete']}" />
</h:form>
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
...@@ -82,4 +82,6 @@ public interface CardTemplateBeanLocal extends EntityFinderBean<CardTemplate> { ...@@ -82,4 +82,6 @@ public interface CardTemplateBeanLocal extends EntityFinderBean<CardTemplate> {
EventUser giveCard(EventUser user, boolean markUserPlacesDelivered); EventUser giveCard(EventUser user, boolean markUserPlacesDelivered);
void removeCardCode(CardCode code); void removeCardCode(CardCode code);
CardTemplate removeCardObjectData(CardObjectData data);
CardTemplate removeCardTextData(CardTextData data);
} }
...@@ -482,46 +482,44 @@ public class CardPrintBean implements CardPrintBeanLocal { ...@@ -482,46 +482,44 @@ public class CardPrintBean implements CardPrintBeanLocal {
} else { } else {
font = new Font(textData.getFontName(), Font.PLAIN, textData.getSize().intValue()); font = new Font(textData.getFontName(), Font.PLAIN, textData.getSize().intValue());
} }
logger.info("TextData fontname: " + textData.getFontName());
logger.info("Font: " + font.getFontName());
g.setColor(color); g.setColor(color);
g.setFont(font); g.setFont(font);
int x = textData.getX(); int x = textData.getX();
int y = textData.getY(); int y = textData.getY();
String text = "";
if(textData.getTextAlignment() == CardTextAlignment.CENTER) {
int width = g.getFontMetrics().charsWidth(user.getUser().getNick().toCharArray(), 0, user.getUser().getNick().length());
x -= width/2;
} else if(textData.getTextAlignment() == CardTextAlignment.RIGHT) {
int width = g.getFontMetrics().charsWidth(user.getUser().getNick().toCharArray(), 0, user.getUser().getNick().length());
x -= width;
}
if(textData.getTextDataType() == CardTextDataType.NICK) { if(textData.getTextDataType() == CardTextDataType.NICK) {
logger.info("Drawing nick to card."); text = user.getUser().getNick();
g.drawString(user.getUser().getNick(), x, y);
} else if(textData.getTextDataType() == CardTextDataType.FIRSTNAME) { } else if(textData.getTextDataType() == CardTextDataType.FIRSTNAME) {
logger.info("Drawing firstname to card."); text = user.getUser().getFirstnames();
g.drawString(user.getUser().getFirstnames(), x, y);
} else if(textData.getTextDataType() == CardTextDataType.LASTNAME) { } else if(textData.getTextDataType() == CardTextDataType.LASTNAME) {
logger.info("Drawing lastname to card."); text = user.getUser().getLastname();
g.drawString(user.getUser().getLastname(), x, y);
} else if(textData.getTextDataType() == CardTextDataType.WHOLENAME) { } else if(textData.getTextDataType() == CardTextDataType.WHOLENAME) {
logger.info("Drawing wholename to card."); text = user.getUser().getFirstnames() + " " + user.getUser().getLastname();
String wholename = user.getUser().getFirstnames() + " " + user.getUser().getLastname();
g.drawString(wholename, x, y);
} else if(textData.getTextDataType() == CardTextDataType.AGE) { } else if(textData.getTextDataType() == CardTextDataType.AGE) {
logger.info("Drawing age to card."); text = user.getUser().getAge().toString();
g.drawString(user.getUser().getAge().toString(), x, y);
} else if(textData.getTextDataType() == CardTextDataType.ROLE) { } else if(textData.getTextDataType() == CardTextDataType.ROLE) {
logger.info("Drawing cards templates name to card."); text = card.getTemplate().getName();
g.drawString(card.getTemplate().getName(), x, y);
} else if(textData.getTextDataType() == CardTextDataType.STATIC) { } else if(textData.getTextDataType() == CardTextDataType.STATIC) {
logger.info("Drawing static text '" + textData.getText() + "' to card."); text = textData.getText();
g.drawString(textData.getText(), x, y);
} else if(textData.getTextDataType() == CardTextDataType.AUTHCODE) { } else if(textData.getTextDataType() == CardTextDataType.AUTHCODE) {
logger.info("Drawing auth code text '" + textData.getText() + "' to card."); text = userBean.getAuthCode(user);
g.drawString(userBean.getAuthCode(user), x, y); }
if(textData.getTextAlignment() == CardTextAlignment.CENTER) {
int width = g.getFontMetrics().charsWidth(text.toCharArray(), 0, text.length());
x -= width/2;
} else if(textData.getTextAlignment() == CardTextAlignment.RIGHT) {
int width = g.getFontMetrics().charsWidth(text.toCharArray(), 0, text.length());
x -= width;
}
if(!text.equals("")) {
g.drawString(text, x, y);
} }
} else if(objectData != null) { } else if(objectData != null) {
......
...@@ -421,5 +421,21 @@ public class CardTemplateBean implements CardTemplateBeanLocal { ...@@ -421,5 +421,21 @@ public class CardTemplateBean implements CardTemplateBeanLocal {
cardCodeFacade.remove(code); cardCodeFacade.remove(code);
} }
@Override
public CardTemplate removeCardTextData(CardTextData data) {
data = ctdFacade.reload(data);
CardTemplate template = data.getCardTemplate();
ctdFacade.remove(data);
return template;
}
@Override
public CardTemplate removeCardObjectData(CardObjectData data) {
data = codFacade.reload(data);
CardTemplate template = data.getCardTemplate();
codFacade.remove(data);
return template;
}
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html" xmlns:users="http://java.sun.com/jsf/composite/tools/user" xmlns:h="http://java.sun.com/jsf/html" xmlns:users="http://java.sun.com/jsf/composite/tools/user"
xmlns:f="http://java.sun.com/jsf/core" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui"
> >
<h:body> <h:body>
<ui:composition template="#{sessionHandler.template}"> <ui:composition template="#{sessionHandler.template}">
...@@ -53,6 +53,15 @@ ...@@ -53,6 +53,15 @@
<f:param name="textdataid" value="#{textData.id}" /> <f:param name="textdataid" value="#{textData.id}" />
</h:link> </h:link>
</h:column> </h:column>
<h:column>
<p:commandButton id="DeleteText#{textData.id}" value="Delete" onclick="PF('dialogText#{textData.id}').show();" type="button" onerror="location.reload(true);" />
<p:dialog id="deleteDialog" widgetVar="dialogText#{textData.id}" width="300" position="center">
<h:panelGrid>
<h:outputLabel value="#{i18n['cardTextData.deleteQ']}"></h:outputLabel>
<h:commandButton action="#{cardTemplateDataView.deleteTextData(textData.id)}" value="#{i18n['cardTextData.delete']}" oncomplete="PF('dialogText#{textData.id}').hide()"/>
</h:panelGrid>
</p:dialog>
</h:column>
</h:dataTable> </h:dataTable>
<h:dataTable rendered="#{!empty cardTemplateDataView.cardObjectDatas}" value="#{cardTemplateDataView.cardObjectDatas}" var="objectData"> <h:dataTable rendered="#{!empty cardTemplateDataView.cardObjectDatas}" value="#{cardTemplateDataView.cardObjectDatas}" var="objectData">
<h:column> <h:column>
...@@ -94,6 +103,15 @@ ...@@ -94,6 +103,15 @@
<f:param name="objectdataid" value="#{objectData.id}" /> <f:param name="objectdataid" value="#{objectData.id}" />
</h:link> </h:link>
</h:column> </h:column>
<h:column>
<p:commandButton id="DeleteObject#{objectData.id}" value="Delete" onclick="PF('dialogObject#{objectData.id}').show();" type="button" onerror="location.reload(true);" />
<p:dialog id="deleteObjectDataDialog" for="image" widgetVar="dialogObject#{objectData.id}" width="300" position="left">
<h:panelGrid>
<h:outputLabel value="#{i18n['cardTextData.deleteQ']}"></h:outputLabel>
<h:commandButton action="#{cardTemplateDataView.deleteTextData(objectData.id)}" value="#{i18n['cardObjectData.delete']}" oncomplete="PF('dialogObject#{objectData.id}').hide()"/>
</h:panelGrid>
</p:dialog>
</h:column>
</h:dataTable> </h:dataTable>
</h:form> </h:form>
......
...@@ -47,6 +47,11 @@ ...@@ -47,6 +47,11 @@
</h:link> </h:link>
</h:column> </h:column>
<h:column> <h:column>
<h:link outcome="/useradmin/cloneCardTemplate" value="#{i18n['cardTemplate.clone']}">
<f:param name="clonedtemplateid" value="#{card.id}" />
</h:link>
</h:column>
<h:column>
<h:link outcome="/useradmin/editCardTextData" value="#{i18n['cardTextData.create']}"> <h:link outcome="/useradmin/editCardTextData" value="#{i18n['cardTextData.create']}">
<f:param name="templateid" value="#{card.id}" /> <f:param name="templateid" value="#{card.id}" />
<f:param name="createobjecttype" value="#{cardView.textDataType}" /> <f:param name="createobjecttype" value="#{cardView.textDataType}" />
......
...@@ -178,6 +178,42 @@ public class CardTemplateDataEditView extends GenericCDIView { ...@@ -178,6 +178,42 @@ public class CardTemplateDataEditView extends GenericCDIView {
} }
} }
public String deleteObjectData() {
if(this.cardObjectData != null) {
setCardTemplate(cfbean.removeCardObjectData(this.cardObjectData));
}
else
logger.info("CardObjectData is null!");
return "/useradmin/listCardTemplateData";
}
public String deleteTextData() {
if(this.cardTextData != null) {
setCardTemplate(cfbean.removeCardTextData(this.cardTextData));
}
else
logger.info("CardTextData is null!");
return "/useradmin/listCardTemplateData";
}
public String deleteObjectData(Integer objectDataId) {
if(this.cardObjectData != null) {
setCardTemplate(cfbean.removeCardObjectData(cfbean.findObjectData(objectDataId)));
}
else
logger.info("CardObjectData is null!");
return "/useradmin/listCardTemplateData";
}
public String deleteTextData(Integer textDataId) {
if(this.cardTextData != null) {
setCardTemplate(cfbean.removeCardTextData(cfbean.findTextData(textDataId)));
}
else
logger.info("CardTextData is null!");
return "/useradmin/listCardTemplateData";
}
public String localisedLabel(String text, String type) { public String localisedLabel(String text, String type) {
return I18n.get(text + type); return I18n.get(text + type);
} }
......
...@@ -26,6 +26,9 @@ import javax.enterprise.context.ConversationScoped; ...@@ -26,6 +26,9 @@ import javax.enterprise.context.ConversationScoped;
import javax.inject.Named; import javax.inject.Named;
import javax.json.Json; import javax.json.Json;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.CardTemplateBeanLocal; import fi.codecrew.moya.beans.CardTemplateBeanLocal;
import fi.codecrew.moya.enums.apps.UserPermission; import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.model.CardObjectData; import fi.codecrew.moya.model.CardObjectData;
...@@ -38,6 +41,7 @@ import fi.codecrew.moya.web.cdiview.GenericCDIView; ...@@ -38,6 +41,7 @@ import fi.codecrew.moya.web.cdiview.GenericCDIView;
public class CardTemplateDataView extends GenericCDIView { public class CardTemplateDataView extends GenericCDIView {
private static final long serialVersionUID = -9115983838324313414L; private static final long serialVersionUID = -9115983838324313414L;
private static final Logger logger = LoggerFactory.getLogger(CardTemplateDataEditView.class);
private Integer templateId = 0; private Integer templateId = 0;
private Integer cardTextDataId = 0; private Integer cardTextDataId = 0;
...@@ -71,6 +75,28 @@ public class CardTemplateDataView extends GenericCDIView { ...@@ -71,6 +75,28 @@ public class CardTemplateDataView extends GenericCDIView {
} }
} }
public String deleteObjectData(Integer objectDataId) {
CardObjectData data = cfbean.findObjectData(objectDataId);
if(data != null) {
cardObjectDatas.remove(data);
setCardTemplate(cfbean.removeCardObjectData(data));
}
else
logger.info("CardObjectData is null!");
return "/useradmin/listCardTemplateData";
}
public String deleteTextData(Integer textDataId) {
CardTextData data = cfbean.findTextData(textDataId);
if(data != null) {
cardTextDatas.remove(data);
setCardTemplate(cfbean.removeCardTextData(data));
}
else
logger.info("CardTextData is null!");
return "/useradmin/listCardTemplateData";
}
public String saveTextData() { public String saveTextData() {
//if(cardTextData.getMeta() == null) //if(cardTextData.getMeta() == null)
// cardTextData.setMeta(Json.createObjectBuilder().build()); // cardTextData.setMeta(Json.createObjectBuilder().build());
......
...@@ -34,8 +34,12 @@ import org.slf4j.LoggerFactory; ...@@ -34,8 +34,12 @@ import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.CardTemplateBeanLocal; import fi.codecrew.moya.beans.CardTemplateBeanLocal;
import fi.codecrew.moya.beans.EventBeanLocal; import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.enums.CardTemplateDataType; import fi.codecrew.moya.enums.CardTemplateDataType;
import fi.codecrew.moya.enums.CardTextAlignment;
import fi.codecrew.moya.enums.CardTextDataType;
import fi.codecrew.moya.enums.apps.UserPermission; import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.model.CardObjectData;
import fi.codecrew.moya.model.CardTemplate; import fi.codecrew.moya.model.CardTemplate;
import fi.codecrew.moya.model.CardTextData;
import fi.codecrew.moya.model.EventUser; import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.utilities.I18n; import fi.codecrew.moya.utilities.I18n;
import fi.codecrew.moya.web.annotations.SelectedUser; import fi.codecrew.moya.web.annotations.SelectedUser;
...@@ -66,6 +70,8 @@ public class CardView extends GenericCDIView { ...@@ -66,6 +70,8 @@ public class CardView extends GenericCDIView {
private static final Logger logger = LoggerFactory.getLogger(CardView.class); private static final Logger logger = LoggerFactory.getLogger(CardView.class);
private Integer clonedTemplateId;
public void initCardCreate() { public void initCardCreate() {
if (super.requirePermissions(UserPermission.WRITE_ROLES)) if (super.requirePermissions(UserPermission.WRITE_ROLES))
{ {
...@@ -73,6 +79,18 @@ public class CardView extends GenericCDIView { ...@@ -73,6 +79,18 @@ public class CardView extends GenericCDIView {
super.beginConversation(); super.beginConversation();
} }
} }
public void initCardClone() {
if (super.requirePermissions(UserPermission.WRITE_ROLES))
{
CardTemplate clonedTemplate = cfbean.find(clonedTemplateId);
setCardTemplate(new CardTemplate(eventBean.getCurrentEvent()));
cardTemplate.setPower(clonedTemplate.getPower());
cardTemplate.setImage(clonedTemplate.getImage());
cardTemplate.setRoles(clonedTemplate.getRoles());
super.beginConversation();
}
}
public String saveImage() public String saveImage()
{ {
...@@ -145,6 +163,52 @@ public class CardView extends GenericCDIView { ...@@ -145,6 +163,52 @@ public class CardView extends GenericCDIView {
return "/useradmin/listCardTemplates"; return "/useradmin/listCardTemplates";
} }
public String cloneTemplate() {
if(clonedTemplateId != 0) {
CardTemplate srcTemplate = cfbean.find(clonedTemplateId);
cfbean.create(getCardTemplate());
CardTemplate dstTemplate = getCardTemplate();
List<CardObjectData> srcObjectDatas = cfbean.findCardObjectDatas(srcTemplate);
List<CardTextData> srcTextDatas = cfbean.findCardTextDatas(srcTemplate);
for (CardTextData cardTextData : srcTextDatas) {
CardTextData dstTextData = new CardTextData();
dstTextData.setCardTemplate(dstTemplate);
dstTextData.setFontColorB(cardTextData.getFontColorB());
dstTextData.setFontColorG(cardTextData.getFontColorG());
dstTextData.setFontColorR(cardTextData.getFontColorR());
dstTextData.setFont(cardTextData.getFont());
dstTextData.setFontStyle(cardTextData.getFontStyle());
dstTextData.setSize(cardTextData.getSize());
if(cardTextData.getText() != null && !cardTextData.getText().equals(""))
dstTextData.setText(cardTextData.getText());
dstTextData.setTextAlignment(cardTextData.getTextAlignment());
dstTextData.setTextDataType(cardTextData.getTextDataType());
dstTextData.setX(cardTextData.getX());
dstTextData.setY(cardTextData.getY());
dstTextData.setzIndex(cardTextData.getzIndex());
logger.info("Saving cardTextData for cloned cardTemplate");
dstTextData = cfbean.save(dstTextData);
}
for (CardObjectData cardObjectData : srcObjectDatas) {
CardObjectData dstObjectData = new CardObjectData();
dstObjectData.setCardTemplate(dstTemplate);
dstObjectData.setSize(cardObjectData.getSize());
dstObjectData.setObjectDataType(cardObjectData.getObjectDataType());
dstObjectData.setX(cardObjectData.getX());
dstObjectData.setY(cardObjectData.getY());
dstObjectData.setzIndex(cardObjectData.getzIndex());
logger.info("Saving cardObjectData for cloned cardTemplate");
dstObjectData = cfbean.save(dstObjectData);
}
cardTemplates = getCardTemplate().getEvent().getCardTemplates();
}
return "/useradmin/listCardTemplates";
}
public String saveTemplate() public String saveTemplate()
{ {
cardTemplate = cfbean.save(cardTemplate); cardTemplate = cfbean.save(cardTemplate);
...@@ -198,4 +262,13 @@ public class CardView extends GenericCDIView { ...@@ -198,4 +262,13 @@ public class CardView extends GenericCDIView {
public CardTemplateDataType getObjectDataType() { public CardTemplateDataType getObjectDataType() {
return CardTemplateDataType.OBJECT_DATA; return CardTemplateDataType.OBJECT_DATA;
} }
public Integer getClonedTemplateId() {
return clonedTemplateId;
}
public void setClonedTemplateId(Integer clonedTemplateId) {
this.clonedTemplateId = clonedTemplateId;
}
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!