Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 48 → Rev 76

/log.txt
1,5 → 1,5
Estão feitos os templates base para o pedro começar a fazer as paginas á vontade.
Foi criado dois tipos diferentes de templates:
 
*templatePortal-template mais especifico para as páginas que vão ter listas de links para outras páginas
*templatePage-template genérico com o qual o pedro têm vários objectos para poder contruir grande parte dos sites da escola
-Auto validação a funcionar
-Corrigido noticias do lado esquerdo nos portais o tipo que aparecia estava errado
-No index os announcements center e bottom já carregam as imagens da base de dados, carregam o tipo de noticas certo
-Acrescentado links para cantinas e associação de estudantes nos alunos (falta por a redirecionar)
-Atribuição automatica de roles atraves do LDAP feita (fazer alguns testes)
/impl/database.sql
File deleted
/impl/conf/language/MessageResourcesAnnouncements.properties
28,4 → 28,5
announcement.protocol.error.https=https
announcement.protocol.error.ftp=ftp
 
announcements.loading=carregando anúncio...
announcements.loading=carregando anúncio...
 
/impl/conf/language/MessageResources.properties
141,6 → 141,11
portal.instituto.politecnico.merchandising=Merchandising
portal.instituto.politecnico.cultura.lazer=Cultura e lazer
 
portal.paginas.alunos=Páginas dos Alunos
portal.paginas.exemplo=Exemplo
portal.paginas.alunos.assessoria=Assessoria de Administração
portal.paginas.nucleo.engenharia=Nucleo de Engenharia
 
portal.servicos.online=Serviços on-line
portal.servicos.online.webmail=Webmail
portal.servicos.online.eduroam=Eduroam
173,6 → 178,7
portal.contactos.centro.informatico=Centro informático
portal.contactos.reprografia=Reprografia
portal.contactos.docentes=Docentes
portal.contactos.associacao.estudantes=Associação de Estudantes
portal.contactos.gabinete.comunicacao=Gabinete de Comunicação
portal.contactos.aaaipp=AAAIPP
portal.contactos.conselho.directivo=Conselho Directivo
207,6 → 213,7
#Mensagens Status
authentication.ok=Benvindo Fulano
logout.ok=Caro {0}, obrigado por usar o nosso serviço.
authentication.first.time=Olá bem-vindo, é a primeira vez que que se esta a ligar
authenticate.already.authenticated=O seu usuário já está autênticado
username=Nome de Utilizador
password=Password
216,11 → 223,21
yes=Sim
no=Não
 
#Login
login.firts.time.name=Nome
login.first.time.address=Morada
login.first.time.zip=Código Postal
login.first.time.country=País
login.first.time.email=E-mail
login.first.time.phone.number=Telefone
 
#Cursos
course.aa=Acessoria e Administração
 
#Nucleos
nucleo.engenharia=Nucleo de Engenharia
 
 
 
 
 
/impl/conf/language/MessageResourcesBlog.properties
New file
0,0 → 1,14
################################################################################
#
# ANNOUNCEMENTS MESSAGE RESOURCES
#
################################################################################
 
blog.title=Titulo
blog.desc=Descrição
blog.image=Imagem
blog.target.roles=Pessoas a quem destina
blog.created.success=Blog criado com sucesso
blog.edited.success=Blog alterado com sucesso
blog.status=Válido
 
/impl/conf/WEB-INF/struts/struts-blog.xml
New file
0,0 → 1,45
<?xml version="1.0" encoding="UTF-8"?>
 
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
 
<struts-config>
 
<form-beans>
<form-bean type="pt.estgp.estgweb.web.form.blog.BlogForm" name="BlogForm"/>
</form-beans>
 
<global-exceptions>
 
</global-exceptions>
 
<global-forwards>
 
</global-forwards>
 
 
<action-mappings>
 
<!--Authentication-->
<action path="/startSubmitBlog" forward="/loadBlog.do?dispatch=start"/>
<action path="/submitBlog"
type="pt.estgp.estgweb.web.controllers.blog.BlogController"
name="BlogForm"
scope="request"
parameter="dispatch"
validate="false"
input="page.blog">
<forward name="success" path="page.welcome"/>
</action>
<action path="/loadBlog"
type="pt.estgp.estgweb.web.controllers.blog.BlogController"
name="BlogForm"
scope="request"
parameter="dispatch"
validate="false"
input="page.blog">
<forward name="success" path="page.load.blog"/>
</action>
</action-mappings>
</struts-config>
/impl/conf/WEB-INF/struts/struts-default.xml
89,6 → 89,10
<forward name="accaoSocialDocentesPortalMenu" path="page.docentesAccaoSocialPortalMenu.proxy"/>
<forward name="orgaosDocentesPortalMenu" path="page.docentesOrgaoPortalMenu.proxy"/>
<forward name="institutoPolitecnicoDocentesPortalMenu" path="page.docentesInstitutoPolitecnicoPortalMenu.proxy"/>
<!--Assessoria Administracao-->
<forward name="layoutAA" path="page.layoutAA.proxy"/>
<!--Nucleo de Engenharia-->
<forward name="layoutNucleoEng" path="page.layoutNucleoENG.proxy"/>
 
 
<forward name="layoutCourses" path="page.layoutCourses.proxy"/>
115,6 → 119,7
input="page.authentication">
<forward name="success" path="page.authentication.ok"/>
<forward name="logout" path="page.logout.ok"/>
<forward name="firstTimeAuthenticate" path="page.first.time.authenticate"/>
</action>
 
 
136,7 → 141,8
/WEB-INF/struts/tiles-ftpclient.xml,
/WEB-INF/struts/tiles-processworkflow.xml,
/WEB-INF/struts/tiles-searchusers.xml,
/WEB-INF/struts/tiles-urlstat.xml"/>
/WEB-INF/struts/tiles-urlstat.xml,
/WEB-INF/struts/tiles-blog.xml"/>
</plug-in>
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
/impl/conf/WEB-INF/struts/tiles-processworkflow.xml
1,8 → 1,8
<?xml version="1.0" encoding="UTF-8" ?>
 
<!--<!DOCTYPE tiles-definitions PUBLIC-->
<!--"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"-->
<!--"http://struts.apache.org/dtds/tiles-config_1_1.dtd">-->
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
"http://struts.apache.org/dtds/tiles-config_1_1.dtd">
 
<tiles-definitions>
10,4 → 10,8
<definition name="page.load.process" extends="base.layout1">
</definition>
 
<definition name="page.teste" extends="base.layout1">
<put name="body" value="/teste.jsp"/>
</definition>
 
</tiles-definitions>
/impl/conf/WEB-INF/struts/tiles-blog.xml
New file
0,0 → 1,21
<?xml version="1.0" encoding="UTF-8" ?>
 
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
"http://struts.apache.org/dtds/tiles-config_1_1.dtd">
 
<tiles-definitions>
 
<definition name="page.blog" extends="base.layout1">
<put name="title" value="Create a Blog"/>
<put name="body" value="/admin/blog/submitBlog.jsp"/>
</definition>
 
<definition name="page.load.blog" extends="base.layout1">
<put name="title" value="Create a Blog"/>
<put name="body" value="/admin/blog/submitBlog.jsp"/>
</definition>
 
</tiles-definitions>
/impl/conf/WEB-INF/struts/tiles-default.xml
88,6 → 88,12
<definition name="page.layoutPortal.proxy" extends="base.layoutPortal">
<put name="body" value="/WebProxy"/>
</definition>
<definition name="page.layoutAssessoria.proxy" extends="base.layoutPortal">
<put name="body" value="/WebProxy"/>
</definition>
<definition name="page.layoutNuleoEngenharia.proxy" extends="base.layoutPortal">
<put name="body" value="/WebProxy"/>
</definition>
 
 
<definition name="page.layout1.proxy.ftp" extends="base.layout1">
119,7 → 125,8
<put name="body" value="/public/portals/futurosAlunos/futureStudent.jsp"/>
</definition>
<definition name="page.portal.teacher" extends="base.layoutPortal">
<put name="body" value="/public/portals/Docentes/teacher.jsp"/>
<put name="body" value="/public/portals/Docentes/teacher.jsp"/>
<!--<put name="body" value="/templates/templatePageAssessoria.jsp"/> -->
</definition>
 
<!--Alunos-->
238,6 → 245,16
<put name="topnav" value="/public/portals/Docentes/topnavInstitutoPolitecnico.jsp" />
<put name="navigationLeft" value="/public/portals/Docentes/institutoPolitecnico.jsp" />
</definition>
<!--Alunos Assessoria-->
<definition name="page.layoutAA.proxy" extends="page.layoutAssessoria.proxy">
<put name="topnav" value="/public/portals/assessoria/topnavAssessoria.jsp" />
<put name="navigationLeft" value="/public/portals/assessoria/assessoria.jsp" />
</definition>
<!--Nucleo de Engenharia-->
<definition name="page.layoutNucleoENG.proxy" extends="page.layoutNuleoEngenharia.proxy">
<put name="topnav" value="/public/portals/nucleoEngenharia/topnavNucleoEngenharia.jsp" />
<put name="navigationLeft" value="/public/portals/nucleoEngenharia/nucleoEngenharia.jsp" />
</definition>
 
 
 
260,6 → 277,10
<put name="title" value="Logout Success" />
<put name="body" value="/auth/logoutok.jsp" />
</definition>
<definition name="page.first.time.authenticate" extends="base.layout1">
<put name="title" value="First Time Authenticate" />
<put name="body" value="/auth/firstTimeAuthenticate.jsp" />
</definition>
 
<!-- ERRORS DEFINITIONS -->
<definition name="page.error.500" extends="base.error.definition">
/impl/conf/WEB-INF/struts/struts-processworkflow.xml
1,13 → 1,13
<?xml version="1.0" encoding="UTF-8"?>
 
<!--<!DOCTYPE struts-config PUBLIC-->
<!--"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"-->
<!--"http://struts.apache.org/dtds/struts-config_1_3.dtd">-->
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
 
<struts-config>
 
<form-beans>
<form-bean type="pt.estgp.estgweb.web.form.TesteForm" name="TesteForm"/>
</form-beans>
 
<global-exceptions>
20,6 → 20,17
 
 
<action-mappings>
 
<!--Authentication-->
<action path="/testeStart" forward="page.teste"/>
<action path="/teste"
type="pt.estgp.estgweb.web.controllers.TesteController"
name="TesteForm"
scope="request"
parameter="dispatch"
validate="false"
input="page.teste">
<forward name="ok" path="page.teste"/>
</action>
</action-mappings>
</struts-config>
/impl/conf/WEB-INF/struts/struts-announcements.xml
1,8 → 1,8
<?xml version="1.0" encoding="UTF-8"?>
 
<!--<!DOCTYPE struts-config PUBLIC-->
<!--"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"-->
<!--"http://struts.apache.org/dtds/struts-config_1_3.dtd">-->
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
 
<struts-config>
 
/impl/conf/WEB-INF/web.xml
74,7 → 74,8
/WEB-INF/struts/struts-ftpclient.xml,
/WEB-INF/struts/struts-processworkflow.xml,
/WEB-INF/struts/struts-searchusers.xml,
/WEB-INF/struts/struts-urlstat.xml
/WEB-INF/struts/struts-urlstat.xml,
/WEB-INF/struts/struts-blog.xml
</param-value>
</init-param>
<init-param>
/impl/conf/app.properties
17,6 → 17,8
ionline.user=Baco_web
 
server.estgp=http://www.estgp.pt/testes/nova_web
server.estgweb=http://www.estgp.pt/testes/estgweb
estgweb.encoding=UTF-8
estgp.encoding=UTF-8
 
################################################
56,12 → 58,21
# Announcements
#
announcements.text.summary.size=250
announcements.text.summary.size.small=100
 
announcements.automatic.validation.role.1=all
announcements.automatic.validation.role.2=admin
announcements.automatic.validation.role.3=ci
announcements.automatic.validation.role.4=administrativeCouncil
 
student.auto.validation.targets=student,oldStudent,futureStudent,erasmusStudent
 
 
student.auto.validation.types=news,top.flash.news
 
 
announcements.max.visible=10
announcements.top.flash.news.timeout.miliseconds=7000
 
announcements.type.0=news
announcements.type.1=top.flash.news
79,7 → 90,12
role.services.img=/imgs/rolesIcons/secretaria.gif
 
 
#########################################################################
# Blogs
#
 
blog.desc.summary.size=250
 
#########################################################################
# Link Analysis
#
96,6 → 112,12
url.stat.ignore.extension.8=.swf
 
url.stat.ignore.prefix.1=/urlstat
url.stat.ignore.prefix.2=/public/
url.stat.ignore.prefix.3=/admin/
url.stat.ignore.prefix.4=/user/
url.stat.ignore.prefix.5=/css/
url.stat.ignore.prefix.6=/js/
url.stat.ignore.prefix.7=/auth/
 
#See java.text.SimpleDateFormat
urlstat.chart.week.days=EEE dd-MMM
/impl/conf/berserk/sd.xml
163,4 → 163,30
</filterChains>
</service>
 
 
<!--Teste-->
<service>
<name>TesteSaver</name>
<implementationClass>pt.estgp.estgweb.services.teste.TesteService</implementationClass>
<description>Saves a teste</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
</filterChains>
</service>
 
 
<!--BLOGS-->
<service>
<name>CreateBlog</name>
<implementationClass>pt.estgp.estgweb.services.blog.CreateBlogService</implementationClass>
<description>Create a Blog</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<chain name="AuthenticatedUsers"/>
</filterChains>
</service>
 
</serviceDefinitions>
/impl/src/java/jomm/dao/impl/AbstractDao.java
15,6 → 15,7
import java.sql.SQLException;
import java.util.Collection;
import java.util.List;
import java.util.Date;
 
 
/**
400,6 → 401,8
public Serializable save(CLAZZ obj)
{
try {
DomainObject o = (DomainObject) obj;
o.setSaveDate(new Date());
return (Serializable) getCurrentSession().save(obj);
}
catch (HibernateException e) {
555,11 → 558,10
{
try
{
Session session = getCurrentSession();
 
for (CLAZZ obj: objs)
{
obj = (CLAZZ) session.load(getReferenceClass(),((DomainObject)obj).getSerializable());
session.delete(obj);
evictAndDelete(obj);
}
}
catch (HibernateException e)
569,6 → 571,25
}
 
/**
* Refresh a collection of objects.
*
* @param obj Object to delete
*/
public final void evictAndDelete(CLAZZ obj) {
try
{
Session session = getCurrentSession();
obj = (CLAZZ) session.load(getReferenceClass(), ((DomainObject) obj).getSerializable());
session.delete(obj);
}
catch (HibernateException e)
{
throw new DaoException(e);
}
}
 
 
/**
* Deletes a collection of objects.
*
* @param objs Objects to delete
/impl/src/java/jomm/web/utils/NavPlace.java
27,6 → 27,7
 
public String getUrl()
{
 
if(url != null)
{
if(url.indexOf("?")>=0)
/impl/src/java/openldap/Test.java
7,40 → 7,106
import java.util.Set;
import openldap.LdapManagerFactory;
 
public class Test
public class Test
{
public static void main(String[] args) throws Exception
 
public String getName(HashMap text)
{
//System.out.println(LdapManagerFactory.getLdapManager().login("a8824","21286"));
HashMap map = LdapManagerFactory.getLdapManager().getUserInfo("a8822");
Set s = map.entrySet();
Set s = text.entrySet();
Iterator iter = s.iterator();
/* while(iter.hasNext())
int iterCount=0;
String name=null;
 
while(iter.hasNext())
{
Map.Entry e = (Entry) iter.next();
System.out.println(e.getKey() + ":" + e.getValue());
if(iterCount==3)
{
name=e.getValue().toString();
}
iterCount++;
}
map = LdapManagerFactory.getLdapManager().getUserInfo("a8822");
s = map.entrySet();
iter = s.iterator();*/
int iterNumber=0;
String[] messageBrokenDot=null;
String[] spliters={",","="};
return name;
}
 
public String getRoles(HashMap text)
{
Set s = text.entrySet();
Iterator iter = s.iterator();
int iterCount=0;
String roles=null;
 
while(iter.hasNext())
{
Map.Entry e = (Entry) iter.next();
if(iterNumber==3)
if(iterCount==0)
{
messageBrokenDot=e.getValue().toString().split(spliters[0]);
String[] splitText=e.getValue().toString().split(",");
if(splitText[1].contains("CN"))
{
roles="student";
}
else if(splitText[1].contains("OU"))
{
roles="teacher";
}
}
iterNumber++;
//System.out.println(e.getKey() + ":" + e.getValue());
iterCount++;
}
for (int i = 0 ; i < iterNumber ; i++) {
// System.out.println("->" + messageBrokenDot[i].split(spliters[1]));
return roles;
}
 
public static void main(String[] args) throws Exception
{
//System.out.println(LdapManagerFactory.getLdapManager().login("a8824","21286"));
HashMap map = LdapManagerFactory.getLdapManager().getUserInfo("jmachado");
Set s = map.entrySet();
Iterator iter = s.iterator();
/* while(iter.hasNext())
{
Map.Entry e = (Entry) iter.next();
System.out.println(e.getKey() + ":" + e.getValue());
}
map = LdapManagerFactory.getLdapManager().getUserInfo("a8822");
s = map.entrySet();
iter = s.iterator();*/
 
/*while(iter.hasNext())
{
Map.Entry e = (Entry) iter.next();
 
System.out.println(e.getKey() + "-->" + e.getValue());
} */
//Set s = text.entrySet();
//Iterator iter = s.iterator();
int iterCount=0;
String name=null;
String roles=null;
 
while(iter.hasNext())
{
Map.Entry e = (Entry) iter.next();
if(iterCount==0)
{
String[] splitText=e.getValue().toString().split(",");
if(splitText[1].contains("CN"))
{
roles="student";
}
else if(splitText[1].contains("OU"))
{
roles="teacher";
}
}
 
if(iterCount==3)
{
name=e.getValue().toString();
}
iterCount++;
}
System.out.println("nome-->" + name);
System.out.println("nome-->" + roles);
 
}
}
/impl/src/java/pt/estgp/estgweb/Globals.java
13,6 → 13,7
public class Globals
{
 
public static final String ALL_ROLE = ConfigProperties.getProperty("user.super");;
public static final String ACTUAL_RELATIVE_PATH = "ACTUAL_RELATIVE_PATH";
public static final String ADMIN_ROLE = ConfigProperties.getProperty("user.admin");
public static final String SUPER_USER_ROLE = ConfigProperties.getProperty("user.super");
27,5 → 28,7
public static final int NUMBER_ANNOUNCEMENT_TYPE_NEW_INDEX=5;
public static final int NUMBER_ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS_INDEX=1;
public static final int NUMBER_ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS_INDEX=2;
public static final int ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS_TIMEOUT=ConfigProperties.getIntProperty("announcements.top.flash.news.timeout.miliseconds");
public static List<String> USER_ROLES = ConfigProperties.getListValues("user.role");
 
}
/impl/src/java/pt/estgp/estgweb/services/blog/CreateBlogService.java
New file
0,0 → 1,42
package pt.estgp.estgweb.services.blog;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.services.teste.TesteService;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.domain.Teste;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.Blog;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.Globals;
import org.apache.log4j.Logger;
 
import java.util.Date;
 
/*
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
*
*
* Created at 17/Out/2003 , 23:45:24
*
*/
/**
* @author Jorge Machado
*
*
* Created at 17/Out/2003 , 23:45:24
*
*/
public class CreateBlogService implements IService
{
private static final Logger logger = Logger.getLogger(CreateBlogService.class);
 
public void run(Blog b, UserSession userSession) throws ServiceException
{
if(b.getTargetRoles() == null || b.getTargetRoles().length() == 0)
b.setTargetRoles(Globals.ALL_ROLE);
b.setOwner(userSession.getUser());
b.setSaveDate(new Date());
DaoFactory.getBlogDaoImpl().save(b);
}
}
/impl/src/java/pt/estgp/estgweb/services/teste/TesteService.java
New file
0,0 → 1,34
package pt.estgp.estgweb.services.teste;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.services.authenticate.LogoutService;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.domain.Teste;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import org.apache.log4j.Logger;
 
/*
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
*
*
* Created at 17/Out/2003 , 23:45:24
*
*/
/**
* @author Jorge Machado
*
*
* Created at 17/Out/2003 , 23:45:24
*
*/
public class TesteService implements IService
{
private static final Logger logger = Logger.getLogger(TesteService.class);
 
public void run(Teste t) throws ServiceException
{
DaoFactory.getTesteDaoImpl().save(t);
}
}
/impl/src/java/pt/estgp/estgweb/services/announcements/CreateAnnouncementService.java
33,7 → 33,7
 
private static final Logger logger = Logger.getLogger(CreateAnnouncementService.class);
 
private static final String ALL_ROLE = ConfigProperties.getProperty("user.super");
private static final String ALL_ROLE = Globals.ALL_ROLE;
 
public AnnouncementView run(Announcement announcement, UserSession userSession)
{
42,11 → 42,86
announcement.setOwner(userSession.getUser());
announcement.setSaveDate(new Date());
 
//Se for de validacao automatica ha de aparecer a combobox na web page e o user é que escolhe
//se não pomos false
if(!RoleManager.hasRole(userSession.getUser(),Globals.AUTOMATIC_VALIDATION_ROLES))
announcement.setStatus(false);
if(RoleManager.hasRole(userSession.getUser(),Globals.AUTOMATIC_VALIDATION_ROLES))
announcement.setStatus(true);
else
{
String[] userRoles=announcement.getChoosedOwnerRole().split(",");
Boolean validation=false;
 
for(String role: userRoles)
{
if(!role.equals("all")&&validation==false)
{
try
{
String validationTargets=role+".auto.validation.targets";
String userAutoValitation=ConfigProperties.getProperty(validationTargets);
String[] userAutoValitationRoles=userAutoValitation.split(",");
int validTargetRoles=0;
if(announcement.getTargetRoles().contains(","))
{
String[] targetRolesAnnouncementSplited=announcement.getTargetRoles().split(",");
 
//Percorre os targets todos a quem se destina
for(String target: targetRolesAnnouncementSplited)
{
//Percorre todos os validation targets
for(String userTargetRoles: userAutoValitationRoles)
{
//Se o target a quem se destina constar na lista dos validation targets então incrementa
//o validTargetRoles
if(target.equals(userTargetRoles))
{
validTargetRoles++;
}
}
}
//Se o numero de roles validados for igual ao numero de targets a quem se destina
//Vai verificar se possui validationType para o type announcement
if(validTargetRoles==targetRolesAnnouncementSplited.length)
{
String validationTypes=role +".auto.validation.types";
String userAutoTypes=ConfigProperties.getProperty(validationTypes);
String[] userAutoValitationTypes=userAutoTypes.split(",");
for(String types: userAutoValitationTypes)
{
if(types.equals(announcement.getType()))
validation=true;
}
}
}
else
{
String targetRolesAnnouncement=announcement.getTargetRoles();
//Percorre todos os validation targets
for(String userTargetRoles: userAutoValitationRoles)
{
if(targetRolesAnnouncement.equals(userTargetRoles))
{
validTargetRoles++;
}
}
if(validTargetRoles==1)
{
String validationTypes=role +".auto.validation.types";
String userAutoTypes=ConfigProperties.getProperty(validationTypes);
String[] userAutoValitationTypes=userAutoTypes.split(",");
for(String types: userAutoValitationTypes)
{
if(types.equals(announcement.getType()))
validation=true;
}
}
}
}
catch(Exception e){}
}
}
announcement.setStatus(validation);
}
 
DaoFactory.getAnnouncementDaoImpl().save(announcement);
logger.info("Creating announcement:" + announcement.getId());
return new AnnouncementView(announcement);
/impl/src/java/pt/estgp/estgweb/services/announcements/LoadRoleTypeMaxAnnouncementsService.java
30,7 → 30,7
private static final Logger logger = Logger.getLogger(LoadRoleTypeMaxAnnouncementsService.class);
private static final int MAX_ANNOUNCEMENTS = ConfigProperties.getIntProperty("announcements.max.visible");
 
public List<AnnouncementView> run(String roles,String typeNews)
public List<AnnouncementView> run(String roles,String typeNews,String subTarget)
{
List<String> targetRoles = new ArrayList<String>();
if (roles.contains(","))
45,7 → 45,7
{
targetRoles.add(roles);
}
List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().findAnnouncements(MAX_ANNOUNCEMENTS,targetRoles,typeNews);
List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().findAnnouncements(MAX_ANNOUNCEMENTS,targetRoles,typeNews,subTarget);
if(announcements == null)
return null;
List<AnnouncementView> announcementViews = new ArrayList<AnnouncementView>();
60,8 → 60,8
 
//tens de ter cuidado com o nome que metes no servico, tavas a meter LoadRoleTypeMaxAnnouncements e no XML estava LoadRoleTypeMaxAnnouncementsService, o nome nao tem de ser igual a classe mas convem, por norma eu tenho tirado a palavra service do nome do servico
//ou seja esta LoadRoleTypeMaxAnnouncements para a classe LoadRoleTypeMaxAnnouncementsService logo no sm.execute tem de estar LoadRoleTypeMaxAnnouncements
//mudei a propriedade log.file build.properties para log.file=${data.dir}/estgweb.log assim já não dá o erro do log
//adicionei as libs jsp-api.jar da pasta tomcat/common/lib para não te falhar os imports nas TAGS aqui no Intellij
//mudei a propriedade log.file build.properties para log.file=${data.dir}/estgweb.log assim ja nao da o erro do log
//adicionei as libs jsp-api.jar da pasta tomcat/common/lib para nao te falhar os imports nas TAGS aqui no Intellij
//adiciona sempre todos os jars da common aqui no Intellij faltava-te o activation.jar do jaxb e era preciso para o MimeTypeGuesser
public static void main(String[] args) throws Throwable {
IServiceManager sm = ServiceManager.getInstance();
/impl/src/java/pt/estgp/estgweb/services/announcements/LoadTargetMaxAnnouncementsService.java
22,12 → 22,12
private static final Logger logger = Logger.getLogger(LoadTargetMaxAnnouncementsService.class);
private static final int MAX_ANNOUNCEMENTS = ConfigProperties.getIntProperty("announcements.max.visible");
 
public List<AnnouncementView> run(UserSession userSession)
public List<AnnouncementView> run(String subTarget,UserSession userSession)
{
List<String> targetRoles = null;
if(userSession.getUser() != null)
targetRoles = userSession.getUser().getTargetRolesList();
List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().findAnnouncements(MAX_ANNOUNCEMENTS,targetRoles);
List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().findAnnouncements(MAX_ANNOUNCEMENTS,targetRoles,subTarget);
if(announcements == null)
return null;
List<AnnouncementView> announcementViews = new ArrayList<AnnouncementView>();
/impl/src/java/pt/estgp/estgweb/services/announcements/LoadTopFlashNewsIterateService.java
30,15 → 30,15
private static final Logger logger = Logger.getLogger(LoadTopFlashNewsIterateService.class);
 
 
public AnnouncementView run(UserSession sess)
public AnnouncementView run(String subTarget, UserSession sess)
{
Integer iterator = (Integer) ((UserSessionImpl)sess).get(flashNewsIterator);
if(iterator == null)
iterator = 0;
 
int size = DaoFactory.getAnnouncementDaoImpl().countAnnouncements(1,null,Globals.ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS);
int size = DaoFactory.getAnnouncementDaoImpl().countAnnouncements(1,null,Globals.ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS,null);
iterator = iterator % size;
List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().findAnnouncements(iterator, 1,null,Globals.ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS);
List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().findAnnouncements(iterator, 1,null,Globals.ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS,subTarget);
iterator++;
((UserSessionImpl)sess).put(flashNewsIterator,iterator);
 
55,8 → 55,8
 
//tens de ter cuidado com o nome que metes no servico, tavas a meter LoadRoleTypeMaxAnnouncements e no XML estava LoadRoleTypeMaxAnnouncementsService, o nome nao tem de ser igual a classe mas convem, por norma eu tenho tirado a palavra service do nome do servico
//ou seja esta LoadRoleTypeMaxAnnouncements para a classe LoadRoleTypeMaxAnnouncementsService logo no sm.execute tem de estar LoadRoleTypeMaxAnnouncements
//mudei a propriedade log.file build.properties para log.file=${data.dir}/estgweb.log assim já não dá o erro do log
//adicionei as libs jsp-api.jar da pasta tomcat/common/lib para não te falhar os imports nas TAGS aqui no Intellij
//mudei a propriedade log.file build.properties para log.file=${data.dir}/estgweb.log assim ja nao da o erro do log
//adicionei as libs jsp-api.jar da pasta tomcat/common/lib para nao te falhar os imports nas TAGS aqui no Intellij
//adiciona sempre todos os jars da common aqui no Intellij faltava-te o activation.jar do jaxb e era preciso para o MimeTypeGuesser
public static void main(String[] args) throws Throwable {
IServiceManager sm = ServiceManager.getInstance();
/impl/src/java/pt/estgp/estgweb/services/authenticate/AuthenticateService.java
13,6 → 13,9
import openldap.LdapManagerFactory;
 
import java.util.HashMap;
import java.util.Set;
import java.util.Iterator;
import java.util.Map;
 
 
/*
37,7 → 40,7
 
ILdapManager ldapManager = LdapManagerFactory.getLdapManager();
 
public User run(String username, String password, UserSession userSession) throws ServiceException
public UserSession run(String username, String password, UserSession userSession) throws ServiceException
{
if(userSession.getUser() != null)
throw new AuthenticateException(AuthenticateException.ALREADY_AUTHENTICATED);
73,21 → 76,66
userSession.setUsername(u.getUsername());
userSession.setUser(u);
DaoFactory.getUserSessionDaoImpl().reattach(userSession);
return u;
return userSession;
}
 
//todo completar isto
private User getUserInfo(String username)
{
HashMap map = ldapManager.getUserInfo(username);
UserImpl u = DomainObjectFactory.createUserImpl();
u.setUsername(username);
u.setEmail((String) map.get("email"));
u.setName((String) map.get("name")); //isto esta mal e so para exemplificar depois tem de se ver isto bem
u.setUsername(username);
u.setName(getName(map));
u.setRoles(getRoles(map));
u.setNewUser(true);
DaoFactory.getUserDaoImpl().save(u);
return u;
}
 
private String getName(HashMap text)
{
Set s = text.entrySet();
Iterator iter = s.iterator();
int iterCount=0;
String name=null;
 
while(iter.hasNext())
{
Map.Entry e = (Map.Entry) iter.next();
if(iterCount==3)
{
name=e.getValue().toString();
}
iterCount++;
}
return name;
}
 
public String getRoles(HashMap text)
{
Set s = text.entrySet();
Iterator iter = s.iterator();
int iterCount=0;
String roles=null;
 
while(iter.hasNext())
{
Map.Entry e = (Map.Entry) iter.next();
if(iterCount==0)
{
String[] splitText=e.getValue().toString().split(",");
if(splitText[1].contains("CN"))
{
roles="student";
}
else if(splitText[1].contains("OU"))
{
roles="teacher";
}
}
iterCount++;
}
return roles;
}
}
 
 
/impl/src/java/pt/estgp/estgweb/services/urlstat/UrlStatService.java
39,7 → 39,7
{
String relativePath = entry.getKey();
UrlStatFilter.IntegerContainer ic = entry.getValue();
 
UrlStatImpl urlStat = (UrlStatImpl) DaoFactory.getUrlStatDaoImpl().loadOrNullLockUpgrade(relativePath);
if(urlStat == null)
{
/impl/src/java/pt/estgp/estgweb/services/urlstat/ChartBuilderService.java
105,7 → 105,7
 
private String build(HttpServletRequest request, String messageTitle, List<String> relativePaths, Date startDate, Date endDate,ChartTypeEnum type)
{
String location = linkToFileName(relativePaths,startDate,endDate,type.getScale());
String location = linkToFileNameEncode(relativePaths,startDate,endDate,type.getScale(),true);
File img = new File(Globals.TMP_DIR + location);
if(img.exists() && ((System.currentTimeMillis() - img.lastModified()) < LINK_CHART_EXPIRE_INTERVAL))
{
195,7 → 195,7
String dates = sp.format(startDate) + "_UNTIL_" + sp.format(endDate) + "_" + seriesScaleEnum.getType();
String path;
if(encode)
path = URIUtil.encodeAll(relativePathName.replaceAll("/","_"),"ISO-8859-1");
path = URIUtil.encodePath(relativePathName.replaceAll("/","_"),"ISO-8859-1");
else
path = relativePathName.replaceAll("/","_");
return LINK_CHART_TMP_DIR + "/" + path + "_" + dates + ".png";
219,7 → 219,7
// UrlStatService.main(null);
AbstractDao.getCurrentSession().beginTransaction();
List<String> relativePaths = new ArrayList<String>();
relativePaths.add("/Welcome.do");
relativePaths.add("/public/announcements/getFlashNews.jsp?sid=0.9998549583612295");
// relativePaths.add("/teste2");
System.out.println(new ChartBuilderService().run(new TestHttpServletRequest(),relativePaths, ChartTypeEnum.weekDays));
System.out.println(new ChartBuilderService().run(new TestHttpServletRequest(),relativePaths, ChartTypeEnum.monthDays));
/impl/src/java/pt/estgp/estgweb/domain/UserImpl.java
14,7 → 14,6
*/
public class UserImpl extends User
{
 
private boolean newUser = false;
 
 
24,8 → 23,7
 
public void setNewUser(boolean newUser) {
this.newUser = newUser;
}
 
}
/**
* check if user is in some group
* @param g to check
/impl/src/java/pt/estgp/estgweb/domain/UserSessionImpl.java
11,6 → 11,7
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.estgp.estgweb.domain.dao.DaoFactory;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
27,7 → 28,6
private Set<SessionObject> removeList;
 
/**
*
* @return
*/
public Serializable getSerializable()
41,14 → 41,14
* @param key
* @param obj
*/
public void put(String key,Serializable obj)
public void put(String key, Serializable obj)
{
if(getObjects() == null || getObjects().size() == 0)
if (getObjects() == null || getObjects().size() == 0)
{
setObjects(new HashSet<SessionObject>());
}
SessionObject sessionObject = getSessionObject(key);
if(sessionObject == null)
if (sessionObject == null)
{
sessionObject = DomainObjectFactory.createSessionObjectImpl();
SessionObjectId sessionObjectId = DomainObjectFactory.createSessionObjectIdImpl();
70,32 → 70,59
*
* @param key
*/
 
public void remove(String key)
{
if(getObjects() == null || getObjects().size() == 0)
if (getObjects() == null || getObjects().size() == 0)
{
setObjects(new HashSet<SessionObject>());
}
SessionObject sessionObject = getAndRemoveSessionObject(key);
if(sessionObject != null)
if (sessionObject != null)
{
if(removeList == null)
if (removeList == null)
removeList = new HashSet<SessionObject>();
removeList.add(sessionObject);
}
}
 
/**
* put an object in cache
* only will be persistent when serialize is called
*
* @param key
*/
 
public void removeWithOpenTransaction(String key)
{
if (getObjects() == null || getObjects().size() == 0)
{
setObjects(new HashSet<SessionObject>());
}
SessionObject sessionObject = getAndRemoveSessionObject(key);
DaoFactory.getSessionObjectDaoImpl().evictAndDelete(sessionObject);
}
 
 
public void clearObjects()
{
if(getObjects() == null || getObjects().size() == 0)
if (getObjects() == null || getObjects().size() == 0)
{
return;
}
removeList = getObjects();
if(removeList != null)
removeList.addAll(getObjects());
else
removeList = getObjects();
setObjects(null);
}
 
public void clearObjectsWithOpenTransaction()
{
clearObjects();
DaoFactory.getSessionObjectDaoImpl().evictAndDelete(removeList);
}
 
 
public void reset()
{
setUser(null);
104,33 → 131,45
clear();
}
 
public void resetWithOpenTransaction()
{
setUser(null);
setUsername(null);
setName(null);
clearWithOpenTransaction();
}
 
public void clear()
{
if(getObjects() == null || getObjects().size() == 0)
{
return;
}
removeList = getObjects();
setObjects(null);
clearObjects();
setUser(null);
setUsername(null);
setName(null);
}
 
public void clearWithOpenTransaction()
{
clearObjectsWithOpenTransaction();
setUser(null);
setUsername(null);
setName(null);
}
 
/**
* Return a seralized object for a given key
*
* @param key
* @return
*/
public Serializable get(String key)
{
if(getObjects() == null)
if (getObjects() == null)
{
return null;
}
for(SessionObject sessionObject: getObjects())
for (SessionObject sessionObject : getObjects())
{
if(sessionObject.getId().getKeyId().equals(key))
if (sessionObject.getId().getKeyId().equals(key))
{
XMLDecoder xmlDecoder = new XMLDecoder(new ByteArrayInputStream(sessionObject.getXmlObject().getBytes()));
return (Serializable) xmlDecoder.readObject();
140,20 → 179,20
}
 
/**
* Return an session object with a given key
*
* Return an session object with a given key
* @param key
* @return
*/
private SessionObject getSessionObject(String key)
{
if(getObjects() == null)
if (getObjects() == null)
{
return null;
}
for(SessionObject sessionObject: getObjects())
for (SessionObject sessionObject : getObjects())
{
if(sessionObject.getId().getKeyId().equals(key))
if (sessionObject.getId().getKeyId().equals(key))
{
return sessionObject;
}
161,22 → 200,23
return null;
}
 
/**
/**
* Return an session object with a given key removing it from list
*
* Return an session object with a given key removing it from list
* @param key
* @return
*/
private SessionObject getAndRemoveSessionObject(String key)
{
if(getObjects() == null)
if (getObjects() == null)
{
return null;
}
Iterator<SessionObject> iter = getObjects().iterator();
while (iter.hasNext()) {
while (iter.hasNext())
{
SessionObject sessionObject = iter.next();
if(sessionObject.getId().getKeyId().equals(key))
if (sessionObject.getId().getKeyId().equals(key))
{
iter.remove();
return sessionObject;
187,7 → 227,7
 
/**
* Serialize Session to Database
*
*
* @param request
* @throws Throwable
*/
207,12 → 247,14
try
{
IServiceManager sm = ServiceManager.getInstance();
Object[] args = new Object[]{this,removeList};
sm.execute(requester,"UpdateUserSession",args);
Object[] args = new Object[]{this, removeList};
sm.execute(requester, "UpdateUserSession", args);
removeList.clear();
}
catch (Throwable e)
{
throw e;
}
}
 
}
/impl/src/java/pt/estgp/estgweb/domain/BlogImpl.java
New file
0,0 → 1,11
package pt.estgp.estgweb.domain;
 
/**
* @author Jorge Machado
* @date 21/Abr/2008
* @time 14:37:50
* @see pt.estgp.estgweb.domain
*/
public class BlogImpl extends Blog
{
}
/impl/src/java/pt/estgp/estgweb/domain/TesteImpl.java
New file
0,0 → 1,10
package pt.estgp.estgweb.domain;
 
/**
* @author Jorge Machado
* @date 9/Abr/2008
* @time 16:57:12
* @see pt.estgp.estgweb.domain
*/
public class TesteImpl extends Teste{
}
/impl/src/java/pt/estgp/estgweb/domain/BlogPostImpl.java
New file
0,0 → 1,11
package pt.estgp.estgweb.domain;
 
/**
* @author Jorge Machado
* @date 21/Abr/2008
* @time 14:38:08
* @see pt.estgp.estgweb.domain
*/
public class BlogPostImpl extends BlogPost
{
}
/impl/src/java/pt/estgp/estgweb/domain/views/AnnouncementView.java
19,6 → 19,7
public class AnnouncementView extends DomainObjectView
{
public static final int TEXT_SUMMARY_SIZE = ConfigProperties.getIntProperty("announcements.text.summary.size");
public static final int TEXT_SUMMARY_SIZE_SMALL = ConfigProperties.getIntProperty("announcements.text.summary.size.small");
 
private long id;
private String title;
36,7 → 37,7
 
public AnnouncementView()
{}
 
public AnnouncementView(Announcement announcement)
{
 
200,4 → 201,23
return getText().substring(0,getText().substring(0,TEXT_SUMMARY_SIZE).lastIndexOf(' ')) + "...";
return getText();
}
 
public String getTextSummarySmall()
{
if(getText().length() > TEXT_SUMMARY_SIZE_SMALL)
return getText().substring(0,getText().substring(0,TEXT_SUMMARY_SIZE_SMALL).lastIndexOf(' ')) + "...";
return getText();
}
 
public Boolean getHaveAllText()
{
if(getType().equals("top.flash.news"))
{
return getText().length() > TEXT_SUMMARY_SIZE;
}
else
{
return getText().length() > TEXT_SUMMARY_SIZE_SMALL;
}
}
}
/impl/src/java/pt/estgp/estgweb/domain/views/DomainObjectView.java
14,4 → 14,11
{
public abstract Class getReferenceClass();
public abstract Serializable getSerializable();
 
public String getFragment(int maxSize, String text)
{
if(text.length() > maxSize)
return text.substring(0,text.substring(0, maxSize).lastIndexOf(' ')) + "...";
return text;
}
}
/impl/src/java/pt/estgp/estgweb/domain/views/BlogView.java
New file
0,0 → 1,129
package pt.estgp.estgweb.domain.views;
 
import pt.estgp.estgweb.utils.ConfigProperties;
import pt.estgp.estgweb.utils.RoleManager;
import pt.estgp.estgweb.domain.Image;
import pt.estgp.estgweb.domain.Announcement;
import pt.estgp.estgweb.domain.AnnouncementImpl;
import pt.estgp.estgweb.domain.Blog;
 
import java.util.List;
import java.util.Date;
import java.io.Serializable;
 
/**
* @author Jorge Machado
* @date 2/Mar/2008
* @time 19:34:49
* @see pt.estgp.estgweb.domain.views
*/
public class BlogView extends DomainObjectView
{
public static final int DESC_SIZE = ConfigProperties.getIntProperty("blog.desc.summary.size");
 
 
private long id;
private String title;
private String desc;
private List<String> targetRoles;
private Image image;
private long ownerId;
private boolean status;
 
public BlogView()
{}
 
public BlogView(Blog blog)
{
this.title = blog.getTitle();
this.desc = blog.getDesc();
this.image = blog.getImage();
this.targetRoles = RoleManager.getRolesFromSerial(blog.getTargetRoles());
this.status=blog.isStatus();
this.id = blog.getId();
this.ownerId = blog.getOwner().getId();
}
 
public void persistViewInObject(Blog blog)
{
blog.setTitle(title);
blog.setDesc(desc);
blog.setTargetRoles(RoleManager.getSerialRoles(targetRoles));
blog.setImage(image);
blog.setStatus(status);
}
 
 
public long getId() {
return id;
}
 
public void setId(long id) {
this.id = id;
}
 
public String getTitle() {
return title;
}
 
public void setTitle(String title) {
this.title = title;
}
 
public String getDesc() {
return desc;
}
 
public void setDesc(String desc) {
this.desc = desc;
}
 
public List<String> getTargetRoles() {
return targetRoles;
}
 
public void setTargetRoles(List<String> targetRoles) {
this.targetRoles = targetRoles;
}
 
public Image getImage() {
return image;
}
 
public void setImage(Image image) {
this.image = image;
}
 
public long getOwnerId() {
return ownerId;
}
 
public boolean isStatus() {
return status;
}
 
public void setStatus(boolean status) {
this.status = status;
}
 
public String getDescSummary()
{
return getFragment(DESC_SIZE,getDesc());
}
 
public Boolean getHaveAllText()
{
return getDesc().length() > DESC_SIZE;
}
 
public Class getReferenceClass()
{
return Blog.class;
}
 
public Serializable getSerializable()
{
return id;
}
}
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/BlogPostDaoImpl.java
New file
0,0 → 1,20
package pt.estgp.estgweb.domain.dao.impl;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 2:51:06
* @see pt.estgp.estgweb.domain.dao.impl
*/
public class BlogPostDaoImpl extends BlogPostDao
{
public static BlogPostDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new BlogPostDaoImpl();
return (BlogPostDaoImpl) myInstance;
}
 
 
 
}
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/AnnouncementDaoImpl.java
31,7 → 31,7
return (AnnouncementDaoImpl) myInstance;
}
 
public List<Announcement> findAnnouncements(int maxAnnouncements,List<String> roles)
public List<Announcement> findAnnouncements(int maxAnnouncements,List<String> roles,String subTarget)
{
if(roles == null)
{
48,6 → 48,16
else
co = or(co,cor);
}
Criterion coSubTargets=null;
 
if(subTarget==null)
{
coSubTargets=isNull("subTargets");
}
else
{
coSubTargets =eq("subTargets",subTarget);
}
MyCalendar cNow = new MyCalendar();
MyCalendar calendarWithOutTime = new MyCalendar(cNow.getYear(),cNow.getMonth(),cNow.getDay());
Date now = calendarWithOutTime.getTime();
55,28 → 65,29
.add(or(or(lt("startDate",now),eq("startDate",now)),isNull("startDate")))
.add(or(or(gt("expireDate",now),eq("expireDate",now)),isNull("expireDate")))
.add(eq("status",true))
.add(coSubTargets)
.setMaxResults(maxAnnouncements)
.addOrder(Order.desc("saveDate"));
return criteria.list();
}
 
public List<Announcement> findAnnouncements(int maxAnnouncements,List<String> roles,String type)
public List<Announcement> findAnnouncements(int maxAnnouncements,List<String> roles,String type,String subTarget)
{
return findAnnouncements(0,maxAnnouncements,roles, type);
return findAnnouncements(0,maxAnnouncements,roles, type,subTarget);
}
public List<Announcement> findAnnouncements(int startPage, int maxAnnouncements,List<String> roles,String type)
public List<Announcement> findAnnouncements(int startPage, int maxAnnouncements,List<String> roles,String type,String subTarget)
{
Criteria criteria = createMaxAnnouncementsRolesTypeCriteria(maxAnnouncements, roles,type);
Criteria criteria = createMaxAnnouncementsRolesTypeCriteria(maxAnnouncements, roles,type,subTarget);
return criteria.setFirstResult(maxAnnouncements*startPage).list();
}
 
public int countAnnouncements(int maxAnnouncements,List<String> roles,String type)
public int countAnnouncements(int maxAnnouncements,List<String> roles,String type,String subTarget)
{
Criteria criteria = createMaxAnnouncementsRolesTypeCriteria(Integer.MAX_VALUE, roles,type);
Criteria criteria = createMaxAnnouncementsRolesTypeCriteria(Integer.MAX_VALUE, roles,type,subTarget);
return criteria.list().size();
}
 
private Criteria createMaxAnnouncementsRolesTypeCriteria(int maxAnnouncements,List<String> roles,String type)
private Criteria createMaxAnnouncementsRolesTypeCriteria(int maxAnnouncements,List<String> roles,String type,String subTarget)
{
if(roles == null)
{
93,7 → 104,17
else
coRole = or(coRole,cor);
}
Criterion coType=eq("type",type) ;
Criterion coSubTargets=null;
 
if(subTarget==null)
{
coSubTargets=isNull("subTargets");
}
else
{
coSubTargets =eq("subTargets",subTarget);
}
Criterion coType=eq("type",type);
MyCalendar cNow = new MyCalendar();
MyCalendar calendarWithOutTime = new MyCalendar(cNow.getYear(),cNow.getMonth(),cNow.getDay());
Date now = calendarWithOutTime.getTime();
102,13 → 123,14
.add(or(or(lt("startDate",now),eq("startDate",now)),isNull("startDate")))
.add(or(or(gt("expireDate",now),eq("expireDate",now)),isNull("expireDate")))
.add(eq("status",true))
.add(coSubTargets)
.setMaxResults(maxAnnouncements)
.addOrder(Order.desc("saveDate"));
return criteria;
}
 
 
public static void main(String[] args)
/* public static void main(String[] args)
{
AbstractDao.getCurrentSession().beginTransaction();
List<String> roles = new ArrayList<String>();
127,5 → 149,5
System.out.println(a.getSaveDate() + ":" + a.getTitle() + " " + a.getOwner().getName() );
}
AbstractDao.getCurrentSession().beginTransaction().commit();
}
}*/
}
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/BlogDaoImpl.java
New file
0,0 → 1,30
package pt.estgp.estgweb.domain.dao.impl;
 
import pt.estgp.estgweb.domain.User;
 
import java.util.List;
import java.util.Date;
import java.io.Serializable;
 
import org.hibernate.HibernateException;
import org.hibernate.criterion.Restrictions;
import jomm.dao.DaoException;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 2:51:06
* @see pt.estgp.estgweb.domain.dao.impl
*/
public class BlogDaoImpl extends BlogDao
{
public static BlogDaoImpl getInstance()
{
if (myInstance == null)
myInstance = new BlogDaoImpl();
return (BlogDaoImpl) myInstance;
}
 
 
 
}
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/TesteDaoImpl.java
New file
0,0 → 1,42
package pt.estgp.estgweb.domain.dao.impl;
 
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.Teste;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ServiceManagerException;
import pt.utl.ist.berserk.logic.filterManager.exceptions.*;
 
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 2:51:06
* @see pt.estgp.estgweb.domain.dao.impl
*/
public class TesteDaoImpl extends TesteDao {
public static TesteDaoImpl getInstance() {
if (myInstance == null)
myInstance = new TesteDaoImpl();
return (TesteDaoImpl) myInstance;
}
 
 
public static void main(String[] args) throws ClassNotIFilterException, InvalidFilterException, ServiceManagerException, InvalidFilterExpressionException, IncompatibleFilterException, FilterRetrieveException {
 
Teste t = DomainObjectFactory.createTesteImpl();
t.setMorada("portalegre");
t.setName("jorge");
 
Object[] args2 = {t};
IServiceManager sm = ServiceManager.getInstance();
try {
sm.execute("123", "TesteSaver", args2);
}
catch (Throwable e) {
System.out.println("Already exist fail creation, gone login now");
}
}
 
}
/impl/src/java/pt/estgp/estgweb/domain/dao/DaoFactory.java
64,4 → 64,19
{
return UrlStatDayDaoImpl.getInstance();
}
 
public static TesteDaoImpl getTesteDaoImpl()
{
return TesteDaoImpl.getInstance();
}
 
public static BlogDaoImpl getBlogDaoImpl()
{
return BlogDaoImpl.getInstance();
}
 
public static BlogPostDaoImpl getBlogPostDaoImpl()
{
return BlogPostDaoImpl.getInstance();
}
}
/impl/src/java/pt/estgp/estgweb/domain/DomainObjectFactory.java
72,4 → 72,20
{
return new UrlStatDayImpl();
}
 
public static TesteImpl createTesteImpl()
{
return new TesteImpl();
}
 
public static BlogImpl createBlogImpl()
{
return new BlogImpl();
}
 
public static BlogPostImpl createBlogPostImpl()
{
return new BlogPostImpl();
}
 
}
/impl/src/java/pt/estgp/estgweb/domain/DomainObject.java
21,6 → 21,8
private static final String ALL_ROLE = ConfigProperties.getProperty("user.super");
 
 
public void setSaveDate(Date d){}
 
/**
* can be override in proper classes
* @return generic user owner of object
/impl/src/java/pt/estgp/estgweb/web/Globals.java
12,6 → 12,8
{
private static final String PORTAL_MENU_START_LINK_START = "/proxy/";
private static final String PORTAL_MENU_START_LINK_END = "/estgp/public/portal";
private static final String PORTAL_MENU_START_LINK_END_AA = "/estgweb/aa";
private static final String PORTAL_MENU_START_LINK_END_NUCLEO_ENG = "/estgweb/nucleoeng";
public static final String PORTAL_ROLE_VIEW_STUDENT ="?role=student&menu=menu.alunos";
public static final String PORTAL_ROLE_VIEW_FUTURE_STUDENT ="?role=futureStudent&menu=menu.futurosAlunos";
public static final String PORTAL_ROLE_VIEW_OLD_STUDENT ="?role=oldStudent&menu=menu.antigosAlunos";
20,7 → 22,13
 
public static String getStartLinkPortalMenu(String layout)
{
return PORTAL_MENU_START_LINK_START + layout + PORTAL_MENU_START_LINK_END;
if(layout.contains("AA"))
return PORTAL_MENU_START_LINK_START + layout + PORTAL_MENU_START_LINK_END_AA;
else if(layout.contains("NucleoEng"))
return PORTAL_MENU_START_LINK_START + layout + PORTAL_MENU_START_LINK_END_NUCLEO_ENG;
else
return PORTAL_MENU_START_LINK_START + layout + PORTAL_MENU_START_LINK_END;
 
}
 
}
/impl/src/java/pt/estgp/estgweb/web/form/AddRolesForm.java
New file
0,0 → 1,59
package pt.estgp.estgweb.web.form;
 
import pt.estgp.estgweb.domain.views.BlogView;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.web.form.blog.BlogForm;
 
import java.util.List;
 
/**
* @author Jorge Machado
* @date 21/Abr/2008
* @time 14:28:59
* @see pt.estgp.estgweb.web.form.blog
*/
public class AddRolesForm extends ApplicationForm
{
 
public static final String TARGET_ROLES_KEY = "targetRoles";
protected String role;
protected static List<String> targetRoles = Globals.USER_ROLES;
protected List<String> selectedRoles;
protected String targetRolesStr;
 
public String getRole() {
return role;
}
 
public void setRole(String role) {
this.role = role;
}
 
 
public List<String> getTargetRoles() {
return targetRoles;
}
 
public void setTargetRoles(List<String> roles)
{
 
}
 
 
public String getTargetRolesStr() {
return targetRolesStr;
}
 
public void setTargetRolesStr(String targetRolesStr) {
this.targetRolesStr = targetRolesStr;
}
 
public List<String> getSelectedRoles() {
return selectedRoles;
}
 
public void setSelectedRoles(List<String> selectedRoles) {
this.selectedRoles = selectedRoles;
}
}
/impl/src/java/pt/estgp/estgweb/web/form/blog/BlogForm.java
New file
0,0 → 1,40
package pt.estgp.estgweb.web.form.blog;
 
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.views.BlogView;
import pt.estgp.estgweb.web.form.ApplicationForm;
import pt.estgp.estgweb.web.form.AddRolesForm;
 
import java.util.List;
 
import org.apache.struts.upload.FormFile;
 
/**
* @author Jorge Machado
* @date 21/Abr/2008
* @time 14:28:59
* @see pt.estgp.estgweb.web.form.blog
*/
public class BlogForm extends AddRolesForm
{
private BlogView blogView = new BlogView();
 
private FormFile image;
 
public BlogView getBlogView() {
return blogView;
}
 
public void setBlogView(BlogView blogView) {
this.blogView = blogView;
}
 
public FormFile getImage() {
return image;
}
 
public void setImage(FormFile image) {
this.image = image;
}
}
/impl/src/java/pt/estgp/estgweb/web/form/TesteForm.java
New file
0,0 → 1,26
package pt.estgp.estgweb.web.form;
 
import org.apache.struts.action.ActionForm;
import pt.estgp.estgweb.domain.Teste;
import pt.estgp.estgweb.domain.DomainObjectFactory;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 20:42:25
* @see pt.estgp.estgweb.web.form
*/
public class TesteForm extends ApplicationForm
{
 
Teste teste = DomainObjectFactory.createTesteImpl();
 
 
public Teste getTeste() {
return teste;
}
 
public void setTeste(Teste teste) {
this.teste = teste;
}
}
/impl/src/java/pt/estgp/estgweb/web/form/announcements/AnnouncementsForm.java
8,7 → 8,9
import pt.estgp.estgweb.utils.ConfigProperties;
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.web.form.ApplicationForm;
import pt.estgp.estgweb.web.form.AddRolesForm;
import pt.estgp.estgweb.web.utils.DatesUtils;
import pt.estgp.estgweb.Globals;
 
import java.util.ArrayList;
import java.util.List;
19,29 → 21,28
* @time 20:42:25
* @see pt.estgp.estgweb.web.form
*/
public class AnnouncementsForm extends ApplicationForm
public class AnnouncementsForm extends AddRolesForm
{
 
private static final Logger logger = Logger.getLogger(AnnouncementsForm.class);
private static final String TARGET_ROLES_KEY = "targetRoles";
 
 
private AnnouncementView announcementView;
 
private String role;
 
private String startDate;
private String expireDate;
private String urlProtocol;
private String url;
private FormFile bigImage;
private FormFile smallImage;
private String targetRolesStr;
private String targetPrioritiesStr;
private Integer counter;
private List<String> selectedRoles;
 
 
 
private static List<String> targetRoles = ConfigProperties.getListValues("user.role");
 
 
private static List<String> announcementTypes = ConfigProperties.getListValues("announcements.type");
private static List<String> targetPriorities = ConfigProperties.getListValues("announcements.priority");
 
55,13 → 56,7
this.announcementView = announcementView;
}
 
public String getRole() {
return role;
}
 
public void setRole(String role) {
this.role = role;
}
 
public AnnouncementView getAnnouncementView()
{
73,23 → 68,6
this.announcementView = announcementView;
}
 
 
public List<String> getSelectedRoles() {
return selectedRoles;
}
 
public void setSelectedRoles(List<String> selectedRoles) {
this.selectedRoles = selectedRoles;
}
 
public String getTargetRolesStr() {
return targetRolesStr;
}
 
public void setTargetRolesStr(String targetRolesStr) {
this.targetRolesStr = targetRolesStr;
}
 
public String getStartDate()
{
return startDate;
110,16 → 88,7
this.expireDate = expireDate;
}
 
public List<String> getTargetRoles()
{
return targetRoles;
}
 
public void setTargetRoles(List<String> roles)
{
 
}
 
public FormFile getBigImage() {
return bigImage;
}
/impl/src/java/pt/estgp/estgweb/web/controllers/AddRolesController.java
New file
0,0 → 1,131
package pt.estgp.estgweb.web.controllers;
 
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import pt.estgp.estgweb.web.form.announcements.AnnouncementsForm;
import pt.estgp.estgweb.web.form.AddRolesForm;
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.Globals;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.Serializable;
import java.util.List;
import java.util.ArrayList;
 
/**
* @author Jorge Machado
* @date 26/Fev/2008
* @time 18:01:54
* @see pt.estgp.estgweb.web
*/
public class AddRolesController extends ApplicationDispatchController
{
 
private static final Logger logger = Logger.getLogger(AddRolesController.class);
 
private static final String TARGET_ROLES_KEY = AddRolesForm.TARGET_ROLES_KEY;
 
public ActionForward start(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
try
{
UserSessionImpl sess = (UserSessionImpl) UserSessionProxy.loadUserSession(request);
sess.remove(TARGET_ROLES_KEY);
sess.serialize(request);
return mapping.getInputForward();
}
catch(FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e,e);
throw e;
}
}
public ActionForward addRole(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
try
{
AddRolesForm addRolesForm = (AnnouncementsForm) form;
UserSessionImpl sess = (UserSessionImpl) UserSessionProxy.loadUserSession(request);
List<String> l = (List<String>) sess.get(TARGET_ROLES_KEY);
if(l == null)
l = new ArrayList<String>();
 
if(!isInTargetRoles(addRolesForm.getTargetRolesStr(),l))
{
l.add(addRolesForm.getTargetRolesStr());
sess.put(TARGET_ROLES_KEY, (Serializable) l);
sess.serialize(request);
}
else
{
addErrorWithKeys(request,"forms.object.already.in.list","user.role." + addRolesForm.getTargetRolesStr());
}
addRolesForm.setSelectedRoles(l);
}
catch(FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e,e);
throw e;
}
return mapping.getInputForward();
}
 
public ActionForward removeRole(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
try
{
AddRolesForm addRolessForm = (AddRolesForm) form;
UserSessionImpl sess = (UserSessionImpl) request.getAttribute(Globals.USER_SESSION_KEY);
List<String> l = (List<String>) sess.get(TARGET_ROLES_KEY);
 
if(l != null)
{
l.remove(addRolessForm.getRole());
sess.put(TARGET_ROLES_KEY, (Serializable) l);
sess.serialize(request);
}
}
catch(FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e,e);
throw e;
}
return mapping.getInputForward();
}
 
private boolean isInTargetRoles(String role, List l)
{
return l.contains(role);
}
}
/impl/src/java/pt/estgp/estgweb/web/controllers/blog/BlogController.java
New file
0,0 → 1,104
package pt.estgp.estgweb.web.controllers.blog;
 
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController;
import pt.estgp.estgweb.web.controllers.AddRolesController;
import pt.estgp.estgweb.web.controllers.authenticate.AuthenticateController;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.estgp.estgweb.web.exceptions.NoCookiesException;
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.web.form.announcements.AnnouncementsForm;
import pt.estgp.estgweb.web.form.blog.BlogForm;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.views.AnnouncementView;
import pt.estgp.estgweb.domain.views.BlogView;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.services.authenticate.AuthenticateException;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException;
import org.apache.log4j.Logger;
import org.apache.struts.action.*;
import org.apache.struts.upload.FormFile;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.InputStream;
import java.io.ByteArrayOutputStream;
import java.util.Date;
 
/**
* @author Jorge Machado
* @date 26/Fev/2008
* @time 18:01:54
* @see pt.estgp.estgweb.web
*/
public class BlogController extends AddRolesController {
 
private static final Logger logger = Logger.getLogger(BlogController.class);
 
public ActionForward save(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
try
{
BlogForm blogForm = (BlogForm) form;
if(blogForm.getBlogView().getId() <= 0)
{
Blog blog = DomainObjectFactory.createBlogImpl();
blogForm.getBlogView().persistViewInObject(blog);
IServiceManager sm = ServiceManager.getInstance();
 
if(blogForm.getImage().getFileSize()!= 0)
{
FormFile image = blogForm.getImage();
InputStream stream = image.getInputStream();
ByteArrayOutputStream b = new ByteArrayOutputStream();
int readedBytes;
byte[] buf = new byte[1024];
while((readedBytes = stream.read(buf)) > 0)
{
b.write(buf,0,readedBytes);
}
b.close();
Image i = DomainObjectFactory.createImageImpl();
i.setImage(b.toByteArray());
i.setContentType(image.getContentType());
i.setSize(image.getFileSize());
i.setDescription(blog.getTitle());
i.setName(image.getFileName());
i.setSaveDate(new Date());
blog.setImage(i);
}
String[] names = new String[]{"object"};
Object[] args = new Object[]{blog};
BlogView bV = (BlogView) sm.execute(RequestUtils.getRequester(request),"CreateBlog",args,names);
addMessage(request,"blog.created.success","" + bV.getId());
return mapping.findForward("success");
}
else
{
BlogView bV = blogForm.getBlogView();
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{"object"};
Object[] args = new Object[]{bV};
bV = (BlogView) sm.execute(RequestUtils.getRequester(request),"EditBlog",args,names);
addMessage(request,"blog.edited.success","" + bV.getId());
return mapping.findForward("success");
}
}
catch(FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e,e);
throw e;
}
}
}
/impl/src/java/pt/estgp/estgweb/web/controllers/TesteController.java
New file
0,0 → 1,66
package pt.estgp.estgweb.web.controllers;
 
import org.apache.log4j.Logger;
import org.apache.struts.action.*;
import pt.estgp.estgweb.web.controllers.authenticate.AuthenticateController;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.web.form.TesteForm;
import pt.estgp.estgweb.web.exceptions.NoCookiesException;
import pt.estgp.estgweb.services.authenticate.AuthenticateException;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.Globals;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ServiceManagerException;
import pt.utl.ist.berserk.logic.filterManager.exceptions.*;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
 
/**
* @author Jorge Machado
* @date 26/Fev/2008
* @time 18:01:54
* @see pt.estgp.estgweb.web
*/
public class TesteController extends ApplicationDispatchController
{
 
private static final Logger logger = Logger.getLogger(TesteController.class);
 
public ActionForward save(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
 
 
TesteForm tf = (TesteForm) form;
Object[] args2 = {tf.getTeste()};
IServiceManager sm = null;
try
{
sm = ServiceManager.getInstance();
}
catch (Exception e)
{
logger.error(e);
}
try
{
sm.execute(RequestUtils.getRequester(request), "TesteSaver", args2);
}
catch (Throwable e)
{
System.out.println("Already exist fail creation, gone login now");
}
return mapping.findForward("ok");
 
}
 
 
}
/impl/src/java/pt/estgp/estgweb/web/controllers/announcements/AnnouncementsController.java
4,8 → 4,9
import org.apache.struts.upload.FormFile;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.web.form.announcements.AnnouncementsForm;
import pt.estgp.estgweb.web.form.AddRolesForm;
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController;
import pt.estgp.estgweb.web.controllers.AddRolesController;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.estgp.estgweb.web.utils.DatesUtils;
import pt.estgp.estgweb.domain.UserSessionImpl;
13,8 → 14,6
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.Image;
import pt.estgp.estgweb.domain.views.AnnouncementView;
import pt.estgp.estgweb.filters.exceptions.AccessDeniedException;
import pt.estgp.estgweb.Globals;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException;
23,9 → 22,7
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;
import java.util.Date;
 
/**
34,12 → 31,11
* @time 18:01:54
* @see pt.estgp.estgweb.web
*/
public class AnnouncementsController extends ApplicationDispatchController
{
public class AnnouncementsController extends AddRolesController {
 
private static final Logger logger = Logger.getLogger(AnnouncementsController.class);
private static final String TARGET_ROLES_KEY = "targetRoles";
private static final String TARGET_ROLES_KEY = AddRolesForm.TARGET_ROLES_KEY;
public ActionForward save(ActionMapping mapping,
ActionForm form ,
50,7 → 46,6
try
{
AnnouncementsForm announcementsForm = (AnnouncementsForm) form;
 
if(announcementsForm.getAnnouncementView().getId() <= 0)
{
Announcement a = DomainObjectFactory.createAnnouncementImpl();
140,30 → 135,6
}
}
 
public ActionForward start(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
try
{
UserSessionImpl sess = (UserSessionImpl) UserSessionProxy.loadUserSession(request);
sess.remove(TARGET_ROLES_KEY);
sess.serialize(request);
return mapping.getInputForward();
}
catch(FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e,e);
throw e;
}
}
 
//TODO verificar problema com com dispatch=edit
public ActionForward edit(ActionMapping mapping,
ActionForm form ,
201,77 → 172,6
 
}
 
 
public ActionForward addRole(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
try
{
AnnouncementsForm announcementsForm = (AnnouncementsForm) form;
UserSessionImpl sess = (UserSessionImpl) UserSessionProxy.loadUserSession(request);
List<String> l = (List<String>) sess.get(TARGET_ROLES_KEY);
if(l == null)
l = new ArrayList<String>();
 
if(!isInTargetRoles(announcementsForm.getTargetRolesStr(),l))
{
l.add(announcementsForm.getTargetRolesStr());
sess.put(TARGET_ROLES_KEY, (Serializable) l);
sess.serialize(request);
}
else
{
addErrorWithKeys(request,"forms.object.already.in.list","user.role." + announcementsForm.getTargetRolesStr());
}
announcementsForm.setSelectedRoles(l);
}
catch(FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e,e);
throw e;
}
return mapping.getInputForward();
}
 
public ActionForward removeRole(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable, ServletException
{
try
{
AnnouncementsForm announcementsForm = (AnnouncementsForm) form;
UserSessionImpl sess = (UserSessionImpl) request.getAttribute(Globals.USER_SESSION_KEY);
List<String> l = (List<String>) sess.get(TARGET_ROLES_KEY);
 
if(l != null)
{
l.remove(announcementsForm.getRole());
sess.put(TARGET_ROLES_KEY, (Serializable) l);
sess.serialize(request);
}
}
catch(FilterChainFailedException e)
{
return mapping.findForward("error401");
}
catch (Throwable e)
{
logger.error(e,e);
throw e;
}
return mapping.getInputForward();
}
 
 
public ActionForward list(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
325,8 → 225,4
}
}
 
private boolean isInTargetRoles(String role, List l)
{
return l.contains(role);
}
}
/impl/src/java/pt/estgp/estgweb/web/controllers/authenticate/AuthenticateController.java
12,6 → 12,9
import pt.estgp.estgweb.services.authenticate.AuthenticateException;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.User;
import pt.estgp.estgweb.domain.UserImpl;
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ServiceManagerException;
37,12 → 40,12
private static final Logger logger = Logger.getLogger(AuthenticateController.class);
 
public ActionForward login(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws IOException,ServletException
{
 
String username = request.getParameter("username");
String password = request.getParameter("password");
 
50,9 → 53,13
{
IServiceManager sm = ServiceManager.getInstance();
Object[] args = new Object[]{username,password};
sm.execute(RequestUtils.getRequester(request),"Authenticate",args);
UserSessionProxy.loadUserSession(request);
return mapping.findForward("success");
UserSession userSession = (UserSession) sm.execute(RequestUtils.getRequester(request),"Authenticate",args);
request.setAttribute(Globals.USER_SESSION_KEY,userSession);
if(!((UserImpl)userSession.getUser()).isNewUser())
return mapping.findForward("success");
else
return mapping.findForward("firstTimeAuthenticate");
 
}
catch (AuthenticateException e)
{
71,9 → 78,9
}
 
public ActionForward logout(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
 
/impl/src/java/pt/estgp/estgweb/web/filters/UserSessionFilter.java
45,7 → 45,7
{
HttpServletRequest hrequest = (HttpServletRequest) request;
System.out.println(hrequest.getCookies()[0].getValue());
 
if(((HttpServletRequest)request).getServletPath().indexOf("errorNoCookies.do")>=0 || !hrequest.isRequestedSessionIdFromCookie())
chain.doFilter(request,response);
try
/impl/src/java/pt/estgp/estgweb/web/ImageStream.java
31,7 → 31,6
AbstractDao.getCurrentSession().beginTransaction();
Image image = new ImageDaoImpl().get(id);
try {
//String mimeType = MimeTypeGuesser.getInstance().guessMimeType(a.getName());
response.setContentType(image.getContentType());
byte[] imagemStream = image.getImage();
response.setContentLength(imagemStream.length);
/impl/src/java/pt/estgp/estgweb/examples/DBInit.java
3,6 → 3,8
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.UserImpl;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.AnnouncementImpl;
import pt.estgp.estgweb.Globals;
import jomm.dao.impl.AbstractDao;
import jomm.utils.BytesUtils;
 
30,6 → 32,32
userStudent.setRoles("student");
userStudent.setPassword(BytesUtils.getMD5("1"));
DaoFactory.getUserDaoImpl().save(userStudent);
AnnouncementImpl announcement = DomainObjectFactory.createAnnouncementImpl();
announcement.setOwner(user);
announcement.setTitle("Titulo de Teste");
announcement.setText("Anuncio de Teste");
announcement.setStatus(true);
announcement.setType(Globals.ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS);
announcement.setTargetRoles("all");
DaoFactory.getAnnouncementDaoImpl().save(announcement);
 
AnnouncementImpl announcement2 = DomainObjectFactory.createAnnouncementImpl();
announcement2.setOwner(user);
announcement2.setTargetRoles("all");
announcement2.setTitle("Titulo de Teste");
announcement2.setText("Anuncio de Teste");
announcement2.setStatus(true);
announcement2.setType(Globals.ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS);
DaoFactory.getAnnouncementDaoImpl().save(announcement2);
 
AnnouncementImpl announcement3 = DomainObjectFactory.createAnnouncementImpl();
announcement3.setOwner(user);
announcement3.setTitle("Titulo de Teste");
announcement3.setText("Anuncio de Teste");
announcement3.setTargetRoles("all");
announcement3.setType(Globals.ANNOUNCEMENT_TYPE_NEWS);
announcement3.setStatus(true);
DaoFactory.getAnnouncementDaoImpl().save(announcement3);
AbstractDao.getCurrentSession().getTransaction().commit();
}
}
/impl/src/hbm/pt/estgp/estgweb/domain/Blog.hbm.xml
New file
0,0 → 1,24
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping>
<class name="pt.estgp.estgweb.domain.Blog" table="blog" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<timestamp name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="title" type="string"/>
<property name="desc" type="text"/>
<property name="targetRoles" type="string"/>
<property name="status" type="boolean" />
<many-to-one name="image" column="image" class="pt.estgp.estgweb.domain.Image" lazy="no-proxy" outer-join="false" cascade="all"/>
<many-to-one name="owner" class="pt.estgp.estgweb.domain.GenericUser" lazy="proxy" outer-join="false"/>
<subclass name="pt.estgp.estgweb.domain.BlogImpl" discriminator-value="BlogImpl"/>
</class>
</hibernate-mapping>
/impl/src/hbm/pt/estgp/estgweb/domain/Teste.hbm.xml
New file
0,0 → 1,20
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping>
<class name="pt.estgp.estgweb.domain.Teste" table="teste" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<timestamp name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="name" type="string"/>
<property name="morada" type="string"/>
<subclass name="pt.estgp.estgweb.domain.TesteImpl" discriminator-value="TesteImpl"/>
</class>
</hibernate-mapping>
/impl/src/hbm/pt/estgp/estgweb/domain/BlogPost.hbm.xml
New file
0,0 → 1,25
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping>
<class name="pt.estgp.estgweb.domain.BlogPost" table="blogpost" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<timestamp name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="startDate" type="timestamp"/>
<property name="title" type="string"/>
<property name="text" type="text"/>
<property name="status" type="boolean" />
<many-to-one name="image" column="image" class="pt.estgp.estgweb.domain.Image" lazy="no-proxy" outer-join="false" cascade="all" />
<many-to-one name="owner" class="pt.estgp.estgweb.domain.GenericUser" lazy="proxy" outer-join="false"/>
<many-to-one name="blog" class="pt.estgp.estgweb.domain.Blog" lazy="false" outer-join="true"/>
<subclass name="pt.estgp.estgweb.domain.BlogPostImpl" discriminator-value="BlogPostImpl"/>
</class>
</hibernate-mapping>
/impl/src/hbm/pt/estgp/estgweb/domain/Announcement.hbm.xml
15,8 → 15,7
<property name="saveDate" type="timestamp"/>
<property name="startDate" type="timestamp"/>
<property name="expireDate" type="timestamp"/>
<!--<property name="bigImageId" column="bigImage" type="long"/>
<property name="smallImageId" column="smallImage" type="long"/>-->
<property name="subTargets" type="string"/>
<property name="title" type="string"/>
<property name="choosedOwnerRole" type="string"/>
<property name="text" type="text"/>
/impl/src/web/imgs/grafico.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/impl/src/web/teste.jsp
New file
0,0 → 1,13
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
 
 
<html:form action="/teste">
<input type="hidden" name="dispatch" value="save">
 
Nome <html:text property="teste.name"/><br>
Morada <html:text property="teste.morada"/><br>
<html:submit/>
</html:form>
 
 
/impl/src/web/auth/firstTimeAuthenticate.jsp
New file
0,0 → 1,34
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<bean:message key="authentication.first.time"/> <bean:write name="UserSession" property="name"/>
 
<table>
<tr>
<th><bean:message key="login.firts.time.name"/></th>
<td>
<html:text name="UserSession" property="name" maxlength="250"/>
</td>
</tr>
<tr>
<th><bean:message key="login.first.time.address"/></th>
<td>
</td>
</tr>
<tr>
<th><bean:message key="login.first.time.zip"/></th>
<td>
</td>
</tr>
<tr>
<th><bean:message key="login.first.time.email"/></th>
<td>
</td>
</tr>
<tr>
<th><bean:message key="login.first.time.phone.number"/></th>
<td>
</td>
</tr>
</table>
/impl/src/web/auth/autenticationok.jsp
8,4 → 8,4
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
 
<bean:message key="authentication.ok"/> <bean:write name="UserSession" property="username"/>
<bean:message key="authentication.ok"/> <bean:write name="UserSession" property="name"/>
/impl/src/web/admin/blog/submitBlog.jsp
New file
0,0 → 1,100
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<%@ taglib uri="/WEB-INF/tlds/estgweb.tld" prefix="estgweb" %>
<jsp:useBean id="BlogForm" type="pt.estgp.estgweb.web.form.blog.BlogForm" scope="request"/>
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/>
<html:messages id="messages"/>
<html:errors/>
<html:form action="/submitBlog" enctype="multipart/form-data">
<html:hidden property="role"/>
<html:hidden property="blogView.id"/>
<input type="hidden" name="dispatch" value="addRole">
<table class="form">
 
<estgweb:isAdmin>
<tr>
<th>
<bean:message key="blog.status"/>
</th>
<td>
<html:select property="blogView.status">
<html:option value="true"><bean:message key="yes"/></html:option>
<html:option value="false"><bean:message key="no"/></html:option>
</html:select>
</td>
</tr>
</estgweb:isAdmin>
<tr>
<th>
<bean:message key="blog.target.roles"/>
</th>
<td>
<html:select property="targetRolesStr">
<estgweb:isAdmin>
<logic:present name="BlogForm" property="targetRoles">
<logic:iterate id="item" name="BlogForm" property="targetRoles">
<jomm:option itemName="item" comparableObjectName="BlogForm" comparableObjectProperty="targetRolesStr">
<jomm:message patternMessage="user.role.{0}" name0="item"/>
</jomm:option>
</logic:iterate>
<input type="button" value="<bean:message key="add"/>" onclick="set(this.form,'addRole');this.form.submit()">
</logic:present>
</estgweb:isAdmin>
<estgweb:isNotAdmin>
<html:option value="all"><bean:message key="user.role.all"/></html:option>
<html:option value="student"><bean:message key="user.role.student"/></html:option>
<html:option value="oldStudent"><bean:message key="user.role.oldStudent"/></html:option>
<html:option value="futureStudent"><bean:message key="user.role.futureStudent"/></html:option>
<html:option value="teacher"><bean:message key="user.role.teacher"/></html:option>
</estgweb:isNotAdmin>
</html:select>
 
 
<logic:present name="BlogForm" property="selectedRoles">
<logic:notEmpty name="BlogForm" property="selectedRoles">
<ul>
<logic:iterate id="item" name="BlogForm" property="selectedRoles">
<li><jomm:message patternMessage="user.role.{0}" name0="item"/> <a href="BlogForm.role.value='${item}';set(BlogForm,'removeRole');BlogForm.submit();"/></li>
</logic:iterate>
</ul>
</logic:notEmpty>
</logic:present>
</td>
</tr>
 
<tr>
<th>
<bean:message key="blog.title"/>
</th>
<td>
<html:text property="blogView.title" maxlength="250"/>
</td>
</tr>
<tr>
<th>
<bean:message key="blog.image"/>
</th>
<td>
<html:file property="image"/>
</td>
</tr>
 
<tr>
<th>
<bean:message key="blog.desc"/>
</th>
<td>
<html:textarea property="blogView.desc"/>
</td>
</tr>
<tr class="buttons">
<td colspan="2">
<input type="button" onclick="set(this.form,'save');this.form.submit()" value="<bean:message key="confirm"/>"/>
</td>
</tr>
</table>
</html:form>
/impl/src/web/css/style.css
8,9 → 8,9
 
#body
{
width:950px;
margin-left: auto;
margin-right: auto;
width:950px;
margin-left: auto;
margin-right: auto;
}
 
#pageStructure
112,18 → 112,27
padding-right:10px;
}
 
.navLeftMenu h2
{
font-size:0.9em;
}
.navLeftMenu
{
font-size:0.7em;
}
 
.block P,.navLeftMenu h2
{
background-color:#ededed;
padding-left:10px;
margin:0;
background-color:#ededed;
padding-left:10px;
margin:0;
 
}
 
.block UL
{
LIST-STYLE-TYPE: none;
padding-left:10px;
padding-left:10px;
}
 
.block a:link
149,246 → 158,294
table-layout:fixed;
width:180px;
padding-top:10px;
font-size:0.8em;
}
 
.portalRightAnnouncements table
{
table-layout:fixed;
width:250px;
table-layout:fixed;
width:250px;
font-size:0.8em;
}
 
.portalAnnouncement a:link,.portalAnnouncement a:visited
{
font-size:10pt;
margin:0;
margin:0;
}
 
.portalAnnouncementTitle a
{
color:#000000;
color:#000000;
}
 
.portalAnnouncement a
{
text-decoration :none;
text-decoration :none;
}
 
.portalAnnouncementText a:link,.portalAnnouncementText a:visited
{
color:#4d4d4d;
color:#4d4d4d;
}
 
.navleftMenu
{
width:180px;
padding-left:10px;
padding-left:10px;
}
 
#portalMenu li.selected a
{
color:#8EC73F;
color:#8EC73F;
}
/**********************************************************************************/
 
/****************************** Standard Page Template ***************************/
.page,.pageText
.contentPortal h1
{
font-size :11.5pt;
background-color:#8EC73F;
color:#FFFFFF;
font-size:1.2em;
}
 
.page P
.contentPortal h2
{
font-size:1em;
}
 
.page h1,.pageHeader h1
.contentPortal
{
font-size:15pt;
font-size:0.75em;
}
 
.page h2,.sectionTitle h2
.contentPortal p
{
font-size:13pt;
font-weight:bold;
margin:0;
color:#4d4d4d;
}
 
.page h3,.sectionTitle h3
.section
{
font-size:10pt;
font-weight:bold;
color:#000000;
margin-bottom:10px;
}
 
.pageHeader h1
.contentPortal li a:link,.contentPortal a:visited,.contentPortal li
{
color:#FFFFFF;
background-color:#8EC73F;
padding-left:10px;
padding-right:10px;
color:#4d4d4d;
}
 
.portalContent
.contentPortal li a:hover
{
color:#8EC73F;
}
 
.pageBlock a:hover
{
color:#8EC73F;
text-decoration :underline;
}
 
.pageColumnTableSolid
{
border:#000000 solid 1px;
}
 
.listClean UL /*Lista sem nada*/
{
LIST-STYLE-TYPE: none;
padding:0;
LIST-STYLE-TYPE: none;
padding:0;
}
 
.listCircleWhite UL/*Lista circulo branco*/
{
LIST-STYLE-TYPE: circle;
LIST-STYLE-TYPE: circle;
}
 
.listDecimal UL/*Lista decimal*/
{
LIST-STYLE-TYPE: decimal;
LIST-STYLE-TYPE: decimal;
}
 
.listDisc UL/*Lista circulo preto*/
{
LIST-STYLE-TYPE: disc;
LIST-STYLE-TYPE: disc;
}
 
.listSquare UL/*Lista quadrado preto*/
{
LIST-STYLE-TYPE: square;
LIST-STYLE-TYPE: square;
}
 
.pageSection
.portalLeftAnnouncements img
{
height:133px;
width:177px;
}
 
.sectionTitle h2
/*PASSA PARA AQUI TUDO O QUE SEJA DE BLOCOS E VAMOS LIMPAR TUDO */
 
/*Isto tem de ser generico o H1 jáe um header nao necessita da classe .header para nada*/
/*Block Titles*/
.content h1, #lastnews h1
{
color:#000000;
margin-bottom:1px;
color:#FFFFFF;
background-color:#8EC73F;
padding-left:10px;
}
 
.pageText,.pageBlock a,.pageBlock a:visited
{
color:#4d4d4d;
text-decoration:none;
}
/*********************************************************************************/
 
/******************************* Index Page***************************************/
.indexPage Table
#flashTopNews * td, #flashCenterNews * td, #flashBottomNews * td
{
width:100%;
border-collapse: collapse;
vertical-align:top;
}
 
.header
/*FlashTopNews*/
#flashTopNews
{
color:#FFFFFF;
background-color:#8EC73F;
padding-left:10px;
padding:0;
margin:0;
}
 
.flashTopNews
#flashTopNews .container
{
text-align :right;
background-color:#4d4d4d;
height:100px;
width:100%;
margin:0;
}
 
.flashTopNews tr
#flashTopNews .container .textContainer
{
background-color:#4d4d4d;
margin:0;
text-align :justify;
}
 
#flashTopNews
#flashTopNews .container .imageContainer
{
background-color:#4d4d4d;
height:100px;
margin:0;
text-align :right;
text-decoration:none;
}
#flashTopNews img
{
 
height:100px;
height:167px;
width:341px;
}
.imageNewsTop
#flashTopNews * td
{
text-align:right;
vertical-align:top;
}
#flashTopNews td,.flashCenterNews td,.flashBottomNews td
#flashTopNews .container .textContainer h2
{
vertical-align:top;
margin:0;
margin-top:1px;
}
#flashTopNews .container .textContainer p
{
margin:0;
margin-top:1px;
}
#flashTopNews h2 a:link,#flashTopNews h2 a:visited
{
color:#8EC73F;
font-weight:bold;
text-decoration:none;
}
#flashTopNews p a:link, #flashTopNews p a:visited
{
color:#FFFFFF;
text-decoration:none;
}
 
.flashCenterNews
/*FlashCenterNews*/
#flashCenterNews
{
margin-top:2px;
border-top-style: dotted;
border-top-color:#DEDEDD;
border-top-color:gray;
}
 
.textNewsTop
#flashCenterNews .container
{
text-align :left;
width:100%;
margin:0;
}
 
.textNewsCenter,.textNewsBottom
#flashCenterNews .textContainer
{
padding-top :10px;
}
 
.titleNewsTop a,.titleNewsCenter a,.titleNewsBottom a,.titleLastNews a:hover,.copyRightLink a:hover,.linkLeftMenu a:hover,#leftMenuModule h2
#flashCenterNews h2 a:link,#flashCenterNews h2 a:visited
{
color:#8EC73F;
font-weight:bold;
text-decoration:none;
}
#flashCenterNews p a:link, #flashCenterNews p a:visited
{
color:#4d4d4d;
text-decoration:none;
}
#flashCenterNews img,#flashCenterNews td.imageContainer
{
width:133px;
height:133px;
}
 
.titleNewsTop a,.titleNewsCenter a,.titleNewsBottom a
 
 
/*FlashBottomNews*/
#flashBottomNews img
{
font-weight:bold;
width:100px;
height:100px;
}
 
.flashCenterNews a,.descriptionNewsBottom a,.linkLeftMenu a,.flashTopNews a
#flashBottomNews h2 a:link,#flashBottomNews h2 a:visited
{
text-decoration:none;
color:#8EC73F;
font-weight:bold;
}
 
.descriptionNewsCenter a:link,.descriptionNewsCenter a:visited,.descriptionNewsBottom a:link,.descriptionNewsBottom a:visited,.titleLastNews a,.copyRightLink a,.linkLeftMenu a
#flashBottomNews p a:link,#flashBottomNews p a:visited
{
color:#4d4d4d;
}
 
.descriptionNewsTop a:link,.descriptionNewsTop a:visited
/*Last News Block*/
#lastnews
{
color:#FFFFFF;
font-size:0.8em;
}
 
.imageNewsCenter
#lastnews ul
{
width:50px;
list-style: none;
width:160px;
LIST-STYLE-TYPE: none;
padding:0;
margin:0;
}
 
.titleNewsTop,.titleNewsCenter,.titleNewsBottom,.descriptionNewsCenter,.descriptionNewsBottom,.descriptionNewsTop
#lastnews li
{
padding-left :10px;
margin:0;
padding:0;
}
 
.lastnews ul
#lastnews li h2
{
padding:0;
padding-left:5px;
WIDTH: 160px;
padding-left:2px;
margin:1px;
}
#lastnews li h2 a,.linkLeftMenu a
{
text-decoration:none;
}
#lastnews li h2 a:link,.linkLeftMenu a:link
{
color:#4d4d4d;
}
#lastnews li h2 a:visited,.linkLeftMenu a:visited
{
color:#4d4d4d;
}
#lastnews li h2 a:hover,.linkLeftMenu a:hover
{
color:#8EC73F;
}
 
/**/
 
/*LEFT MENUS*/
#leftMenuModule h2
{
MARGIN: 0;
color:#8EC73F;
}
 
#leftMenuModule UL
{
MARGIN: 0;
441,7 → 498,32
/*****************************************************************************************/
 
/************************************** Content Structure ********************************/
.contentPortal
{
padding-left:10px;
padding-top:10px;
}
 
.content h2
{
font-size:1em;
}
 
.content
{
font-size:0.8em;
}
 
.content a:link,.content a:visited
{
color:#4d4d4d;
}
 
.content a:hover
{
color:#8EC73F
}
 
.content,.contentPortal
{
LEFT: 0;
490,6 → 572,15
{
}
 
#footer a:link,#footer a:visited
{
color:#4d4d4d;
}
#footer a:hover
{
color:#8EC73F;
}
 
/**************************************************************************************/
 
/******************************** Bar Module Color ************************************/
514,17 → 605,21
/*************************Staff Links Structure***************************************/
.staffLinks P
{
font-weight :bold;
font-weight :bold;
}
/*************************************************************************************/
 
.form , .boxHorizontal
form , .boxHorizontal
{
margin:0;
padding:3px;
border:1px #793B0D solid ;
background-color:#F5BB91;
border:0px #793B0D solid ;
background-color:#FFFFFF;
}
.boxHorizontal
{
padding-top:33px;
padding-left:180px;
}
 
.form th, .boxHorizontal th
{
533,10 → 628,10
padding-top:3px;
padding-bottom:3px;
padding-right:15px;
color:#793B0D;
background-color: #F5BB91;
border: 1px solid #793B0D;
font-size:0.76em;
color:#4d4d4d;
background-color: #FFFFFF;
border: 0px solid #793B0D;
font-size:0.86em;
font-weight:bold;
font-family:Helvetica,sans-serif;
text-align:left;
551,7 → 646,7
padding-right:15px;
color:#793B0D;
background-color: #FFFFFF;
border: 1px solid #793B0D;
border: 0px solid #793B0D;
font-size:0.8em;
font-family:Helvetica,sans-serif;
vertical-align:middle;
560,7 → 655,7
.form .buttons td, .boxHorizontal .buttons td
{
text-align:center;
background-color: #FDE1CD;
background-color: #FFFFFF;
}
 
.form textarea, .boxHorizontal textarea
621,7 → 716,7
 
input[type="button"], input[type="submit"]
{
color: black;
color: #4d4d4d;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
630,10 → 725,10
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-top-color: black;
border-right-color: black;
border-bottom-color: black;
border-left-color: black;
border-top-color:#4d4d4d;
border-right-color: #4d4d4d;
border-bottom-color: #4d4d4d;
border-left-color: #4d4d4d;
background-color: transparent;
background-image: none;
background-repeat: repeat;
642,7 → 737,7
 
input[type="button"]:hover, input[type="submit"]:hover
{
background-color: #909090;
background-color: #8EC73F;
background-image: none;
background-repeat: repeat;
background-attachment: scroll;
681,50 → 776,57
 
/********************************************** Navigation Menu ********************************/
ul.menubar{
margin: 0px;
padding: 0px;
background-color: #FFFFFF; /* IE6 Bug */
font-size: 100%;
margin: 0px;
padding: 0px;
background-color: #FFFFFF; /* IE6 Bug */
font-size: 100%;
 
}
.submenu
{
font: bold 16px sans;
FONT-FAMILY: "Lucida Grande","Trebuchet MS","bitstream vera sans",Verdana,Arial,Helvetica,sans-serif;
font-size:0.8em;
}
 
.menu
{
font: normal 14px sans;
FONT-FAMILY: "Lucida Grande","Trebuchet MS","bitstream vera sans",Verdana,Arial,Helvetica,sans-serif;
font-size:0.8em;
}
 
ul.menubar .submenu{
margin: 0px;
padding: 0px;
list-style: none;
background-color: #FFFFFF;
float:left;
margin: 0px;
padding: 0px;
list-style: none;
background-color: #FFFFFF;
float:left;
}
 
ul.menubar ul.menu{
display: none;
position: absolute;
margin: 0px;
display: none;
position: absolute;
margin: 0px;
}
 
ul.menubar a{
padding: 5px;
display:block;
text-decoration: none;
color: #4D4D4D;
padding: 5px;
 
display:block;
text-decoration: none;
color: #4D4D4D;
padding-left:5px;
padding-right:5px;
padding-top:2px;
padding-bottom:2px;
}
 
ul.menubar a:hover{
padding: 5px;
display:block;
text-decoration: none;
color: #4D4D4D;
padding: 5px;
display:block;
text-decoration: none;
color: #4D4D4D;
padding-left:5px;
padding-right:5px;
padding-top:2px;
padding-bottom:2px;
}
 
.menuTop
733,43 → 835,46
}
 
.menu a:hover{
padding: 5px;
display:block;
/* border-left: none;
 
display:block;
/* border-left: none;
border-right: none;
border-top: none;
border-bottom: none; */
padding: 5px;
 
}
 
ul.menu, ul.menu ul{
margin: 0;
padding: 2px;
/* border-left: 1px solid #ccc;
border-bottom: 1px solid #ccc;
border-top: 1px solid #ccc;
border-right: 1px solid #ccc; */
background-color: #FFFFFF; /* IE6 Bug */
margin: 0;
padding: 2px;
/* border-left: 1px solid #ccc;
border-bottom: 1px solid #ccc;
border-top: 1px solid #ccc;
border-right: 1px solid #ccc; */
background-color: #FFFFFF; /* IE6 Bug */
}
 
ul.menu li{
position: relative;
list-style: none;
/*border: 0px;*/
opacity:0.9;
background-color: #4D4D4D;
width:250px;
position: relative;
list-style: none;
/*border: 0px;*/
opacity:0.9;
background-color: #4D4D4D;
width:250px;
}
 
ul.menu li a{
display: block;
text-decoration: none;
/* border-bottom: 0px;*/
/*color: #4D4D4D;*/
/* background-color: #FFFFFF; */
color: #4d4d4d;
background-color: #CCCCCC;
padding: 5px 10px 5px 5px;
display: block;
text-decoration: none;
/* border-bottom: 0px;*/
/*color: #4D4D4D;*/
/* background-color: #FFFFFF; */
color: #4d4d4d;
background-color: #CCCCCC;
padding-left:2px;
padding-right:2px;
padding-top:2px;
padding-bottom:2px;
}
 
/*
790,11 → 895,11
color: inherit;
}
 
ul.menu li sup{
font-weight:bold;
font-size:7px;
color: red;
}
/*ul.menu li sup{
font-weight:bold;
font-size:7px;
color: red;
} */
 
/* Fix IE. Hide from IE Mac \*/
* html ul.menu li { float: left; height: 1%; }
802,10 → 907,10
/* End */
 
ul.menu ul{
position: absolute;
display: none;
left: 149px; /* Set 1px less than menu width */
top: 0px;
position: absolute;
display: none;
left: 149px; /* Set 1px less than menu width */
top: 0px;
}
 
ul.menu li.submenu ul
/impl/src/web/js/ajax.js
1,154 → 1,160
var xmlHttp;
var servidorBaseUrl = "@server.base.url@";
/**
*
* AJAX Functions
*
* This code is protected under GNU LGPL License
*
* @author Jorge Machado
* @date April 2008
**/
 
/**
* Starts XMLHTTP Ajax request
*
* @author Jorge Machado
* @date April 2008
*
* params:
* @params HTTP GET Parameters for query string
* @xmlHttpRequest request
* @id target element
* @stateChanged target function
* @innerPhrase to put while waiting for response
* @navjsp requested jsp
*/
function startRequest(xmlHttpRequest,params,id,stateChanged,innerPhrase,navjsp)
{
if(innerPhrase != '')
getObjectById(id).innerHTML = innerPhrase;
if (xmlHttpRequest==null)
{
alert ("Browser does not support HTTP Request");
return;
}
var url= navjsp;
if(params != null && params.length > 0)
{
url=url+"?"+ params;
url=url+"&sid="+Math.random();
}
else
{
url=url+"?sid="+Math.random();
}
xmlHttpRequest.onreadystatechange=stateChanged;
xmlHttpRequest.open("GET",url,true);
xmlHttpRequest.send(null);
}
 
function getObjectById(objectId) {
 
// cross-browser function to get an object's style object given its id
try
/**
* Return an HTML element given ID
*
* @author Jorge Machado
* @date April 2008
*
* params:
* @objectId required object
*/
function getObjectById(objectId)
{
// cross-browser function to get an object's style object given its id
try
{
if(document.getElementById && document.getElementById(objectId))
{
if(document.getElementById && document.getElementById(objectId)) {
// W3C DOM
return document.getElementById(objectId);
} else if (document.all(objectId)) {
return document.getElementById(objectId);
}
else if (document.all(objectId))
{
// MSIE 4 DOM
return document.all(objectId);
} else if (document.layers && document.layers[objectId]) {
return document.all(objectId);
}
else if (document.layers && document.layers[objectId])
{
// NN 4 DOM.. note: this won't find nested layers
return document.layers[objectId];
} else {
return false;
}
return document.layers[objectId];
}
catch(e)
else
{
return false;
}
 
} // getObjectById
 
function GetXmlHttpObject()
{
var objXMLHttp=null;
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
return objXMLHttp;
}
catch(e)
{
return false;
}
}
 
function GetXmlHttpObject(handler)
{
 
var objXmlHttp=null;
 
if (navigator.userAgent.indexOf("Opera")>=0)
{
alert("This example doesn't work in Opera") ;
return ;
}
if (navigator.userAgent.indexOf("MSIE")>=0)
{
var strName="Msxml2.XMLHTTP";
if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
{
strName="Microsoft.XMLHTTP";
}
try
{
objXmlHttp=new ActiveXObject(strName);
objXmlHttp.onreadystatechange=handler ;
return objXmlHttp;
}
catch(e)
{
alert("Error. Scripting for ActiveX might be disabled") ;
return ;
}
}
if (navigator.userAgent.indexOf("Mozilla")>=0)
{
objXmlHttp=new XMLHttpRequest();
objXmlHttp.onload=handler;
objXmlHttp.onerror=handler;
return objXmlHttp;
}
}
 
/**
* Creates a new XmlHttpObject
* @author Jorge Machado
* @date April 2008
*
* Application Methods Examples
*
*
* params:
* @handler target xmlHttpObject function
*/
 
 
function getImportState()
function GetXmlHttpObject(handler)
{
xmlHttp=GetXmlHttpObject(stateChangedGetImportState);
getObjectById("importState").innerHTML = "<div class=\"statusSearch\">Updating import state ....</div>";
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
//http://servidor:8080
var url= servidorBaseUrl + "/jsp/import/getImportState.jsp";
url=url+"?sid="+Math.random();
xmlHttp.onreadystatechange=stateChangedGetImportState;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
 
function stateChangedGetImportState()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
var html = xmlHttp.responseText;
getObjectById("importState").innerHTML=html;
if(!(getObjectById("importStateStatus") != null && getObjectById("importStateStatus").value == 'STOPPED'))
var objXmlHttp = null;
if (navigator.userAgent.indexOf("Opera")>=0)
{
alert("This example doesn't work in Opera") ;
return objXmlHttp;
}
if (navigator.userAgent.indexOf("MSIE")>=0)
{
var strName="Msxml2.XMLHTTP";
if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
{
setTimeout(getImportState,5000);
strName="Microsoft.XMLHTTP";
}
}
try
{
objXmlHttp=new ActiveXObject(strName);
objXmlHttp.onreadystatechange=handler ;
return objXmlHttp;
}
catch(e)
{
alert("Error. Scripting for ActiveX might be disabled") ;
return objXmlHttp;
}
}
if (navigator.userAgent.indexOf("Mozilla")>=0)
{
objXmlHttp=new XMLHttpRequest();
objXmlHttp.onload=handler;
objXmlHttp.onerror=handler;
return objXmlHttp;
}
}
 
/***************************************************
TopFlashNews
***************************************************/
var xmlHttpTopFlashNews;
var getFlashNewsTimeout;
var getFlashNewsJsp;
 
//GET DESTAQUE
 
var iterator = 0;
var cookie;
function getFlashNewsNext()
function getFlashNews(jsp,timeout)
{
getFlashNews(cookie);
getFlashNewsJsp = jsp;
getFlashNewsTimeout = timeout;
getFlashNewsTimeoutCall();
}
function getFlashNews()
function getFlashNewsTimeoutCall()
{
xmlHttp=GetXmlHttpObject(stateChangedGetFlashNews);
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
var url= servidorBaseUrl + "/public/announcements/getFlashNews.jsp";
url=url+"?sid="+Math.random()+"&iterator="+iterator;
iterator++;
xmlHttp.onreadystatechange=stateChangedGetFlashNews;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
xmlHttpTopFlashNews=GetXmlHttpObject(stateChangedGetFlashNews);
startRequest(xmlHttpTopFlashNews,"","flashTopNews",stateChangedGetFlashNews,"",getFlashNewsJsp)
}
 
function stateChangedGetFlashNews()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
getObjectById("flashTopNews").innerHTML=xmlHttp.responseText;
setTimeout(getFlashNews,5000);
}
if (xmlHttpTopFlashNews.readyState==4 || xmlHttpTopFlashNews.readyState=="complete")
{
getObjectById("flashTopNews").innerHTML=xmlHttpTopFlashNews.responseText;
setTimeout(getFlashNewsTimeoutCall,getFlashNewsTimeout);
}
}
 
 
/impl/src/web/public/index.jsp
12,8 → 12,9
 
<%
IServiceManager sm = ServiceManager.getInstance();
String subTarget=null;
String[] names = new String[]{};
Object[] args = new Object[]{};
Object[] args = new Object[]{subTarget};
int topAnnouncements=1;
int centerAnnouncements=1;
int bottomAnnouncements=1;
23,104 → 24,129
<jomm:messages/>
<html:errors/>
 
<script type="text/javascript">
<%--getFlashNews('<%=request.getCookies()[0].getValue()%>');--%>
getFlashNews();
</script>
<script type="text/javascript">
<!--
getFlashNews('<%=request.getContextPath()%>/public/announcements/getFlashNews.jsp',<%=Globals.ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS_TIMEOUT%>);
-->
</script>
 
<div class="indexPage" >
<div class="indexPage">
 
<div class="header">
<h1> <bean:message key="mainAnnouncements"/></h1>
<h1><bean:message key="mainAnnouncements"/></h1>
 
<div id="flashTopNews">
<table class="container">
<tr>
<td class="textContainer">
<bean:message key="announcements.loading"/>
</td>
<td class="imageContainer">
</td>
</tr>
</table>
</div>
 
<table id="flashTopNews">
<tr>
<td>
<div class="textNewsTop">
<bean:message key="announcements.loading"/>
</div>
</td>
<td class="imageNewsTop">
</td>
</tr>
</table>
<logic:iterate id="item" name="Announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView">
<logic:equal value="bottom.flash.news" name="item" property="type">
 
<table class="flashCenterNews">
<tr>
<div class="textNewsCenter">
<logic:iterate id="item" name="Announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView">
<logic:equal value="bottom.flash.news" name="item" property="type">
<%if(centerAnnouncements<=Globals.NUMBER_ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS_INDEX)
{
%>
<td class="imageNewsCenter">
<img src="<%=request.getContextPath()%>/imgs/destaque_2_1.jpg"/>
</td>
<td>
<div class="titleNewsCenter">
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.title}</html:link>
</div>
<div class="descriptionNewsCenter">
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.text}</html:link>
</div>
</td>
<%
}
else{
}
centerAnnouncements++;
%>
</logic:equal>
</logic:iterate>
</div>
</table>
<%if(centerAnnouncements<=Globals.NUMBER_ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS_INDEX)
{
if(centerAnnouncements==1)
{ %>
<div id="flashCenterNews">
<table class="container">
<tr>
<%}%>
<td class="imageContainer">
<%if(item.getSmallImage() != null){%><img alt="<%=item.getTitle()%>" src="<%=request.getContextPath()%>/imageStream/<%=item.getSmallImage().getId()%>"><%}%>
</td>
<td class="textContainer">
<logic:empty name="item" property="url">
<h2><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.title}</html:link></h2>
<p><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.textSummarySmall}</html:link></p>
</logic:empty>
<logic:notEmpty name="item" property="url">
<%if(!item.getHaveAllText())
{%>
<h2><html:link href="${item.url}">${item.title}</html:link></h2>
<p><html:link href="${item.url}">${item.textSummarySmall}</html:link></p>
<%}
else
{%>
<h2><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.title}</html:link></h2>
<p><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.textSummarySmall}</html:link></p>
<%}%>
</logic:notEmpty>
</td>
 
<table class="flashBottomNews">
<tr>
<div class="textNewsBottom">
<logic:iterate id="item" name="Announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView">
<logic:equal value="news" name="item" property="type">
<%if(bottomAnnouncements<=Globals.NUMBER_ANNOUNCEMENT_TYPE_NEW_INDEX)
{
%>
<td class="imageNewsBottom">
<img src="<%=request.getContextPath()%>/imgs/destaque_3_3.gif"/>
</td>
<%
}
else{
}
bottomAnnouncements++;
%>
</logic:equal>
</logic:iterate>
<%if(centerAnnouncements==Globals.NUMBER_ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS_INDEX)
{%>
</tr>
</table>
</div>
</tr>
<tr>
<%bottomAnnouncements=0;%>
<div class="textNewsBottom">
<logic:iterate length="5" id="item" name="Announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView">
<logic:equal value="news" name="item" property="type">
<%
if(bottomAnnouncements<=4)
{
%>
<td width="50px">
<div class="titleNewsBottom">
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link>
<%
}
centerAnnouncements++;
}
else if(bottomAnnouncements<=Globals.NUMBER_ANNOUNCEMENT_TYPE_NEW_INDEX)
{
if(bottomAnnouncements==1)
{
%>
 
<div id="flashBottomNews">
<table class="container">
<tr>
<%}%>
<td>
<div class="imageContainer">
<%if(item.getSmallImage() != null){%><img alt="<%=item.getTitle()%>" src="<%=request.getContextPath()%>/imageStream/<%=item.getSmallImage().getId()%>"><%}%>
</div>
<div class="descriptionNewsBottom">
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.text}</html:link>
<div class="textContainer">
<logic:empty name="item" property="url">
<h2><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link></h2>
<p><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.textSummarySmall}</html:link></p>
</logic:empty>
<logic:notEmpty name="item" property="url">
<%if(!item.getHaveAllText())
{%>
<h2><html:link href="${item.url}">${item.title}</html:link></h2>
<p><html:link href="${item.url}">${item.textSummarySmall}</html:link></p>
<%}
else
{%>
<h2><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.title}</html:link></h2>
<p><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.textSummarySmall}</html:link></p>
<%}%>
</logic:notEmpty>
</div>
</td>
<%
}
bottomAnnouncements++;
%>
</logic:equal>
</logic:iterate>
<%if(bottomAnnouncements==Globals.NUMBER_ANNOUNCEMENT_TYPE_NEW_INDEX)
{%>
</tr>
</table>
</div>
</tr>
</table>
<%
}
 
bottomAnnouncements++;
}
%>
</logic:equal>
</logic:iterate>
<%if(bottomAnnouncements>1 && bottomAnnouncements<=Globals.NUMBER_ANNOUNCEMENT_TYPE_NEW_INDEX)
{
%>
</tr>
</table>
</div>
<%}%>
<%if(centerAnnouncements>1 && centerAnnouncements<=Globals.NUMBER_ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS_INDEX)
{
%>
</tr>
</table>
</div>
<%}%>
</div>
 
/impl/src/web/public/portals/alunos/student.jsp
18,6 → 18,8
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="accaoSocialLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="paginasAlunosLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
</td>
<td class="column">
<jsp:include page="orgaosLinks.jsp"/>
/impl/src/web/public/portals/alunos/contactosLinks.jsp
13,4 → 13,5
topNav.addNavPlace(startLink + "/contactosGabineteComunicacao.html"+Globals.PORTAL_ROLE_VIEW_STUDENT, "portal.contactos.gabinete.comunicacao");
topNav.addNavPlace(startLink + "/contactosReprografia.html"+Globals.PORTAL_ROLE_VIEW_STUDENT, "portal.contactos.reprografia");
topNav.addNavPlace(startLink + "/contactosDocentesContactos.html"+Globals.PORTAL_ROLE_VIEW_STUDENT, "portal.contactos.docentes");
%>
topNav.addNavPlace("http://www.global.estgp.pt/ae/"+Globals.PORTAL_ROLE_VIEW_STUDENT, "portal.contactos.associacao.estudantes");
%>
/impl/src/web/public/portals/alunos/accaoSocialLinks.jsp
13,4 → 13,5
topNav.addNavPlace(startLink + "/accaoSocialDesportoCultura.html"+Globals.PORTAL_ROLE_VIEW_STUDENT, "portal.accao.social.desporto.cultura");
topNav.addNavPlace(startLink + "/accaoSocialGaap.html"+Globals.PORTAL_ROLE_VIEW_STUDENT, "portal.accao.social.gapp");
topNav.addNavPlace(startLink + "/accaoSocialInformacoes.html"+Globals.PORTAL_ROLE_VIEW_STUDENT, "portal.accao.social.informacoes");
topNav.addNavPlace("http://www.ipportalegre.pt/wwwsas/alimentacao_refeitorios.htm"+Globals.PORTAL_ROLE_VIEW_STUDENT, "portal.accao.social.cantinas");
%>
/impl/src/web/public/portals/alunos/paginasAlunosLinks.jsp
New file
0,0 → 1,13
<%@ page import="jomm.web.utils.TopNav" %>
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%@ page import="jomm.web.utils.NavPlaceServer" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
TopNav topNav = NavPlaceServer.getInstance().createPortalMenuPlacesKey(request);
topNav.setTitle("portal.paginas.alunos");
String startLinkAA = Globals.getStartLinkPortalMenu("layoutAA");
String startLinkNucleoENG = Globals.getStartLinkPortalMenu("layoutNucleoEng");
topNav.addNavPlace(startLinkAA + "/exemplo.html", "portal.paginas.alunos.assessoria");
topNav.addNavPlace(startLinkNucleoENG + "/exemplo.html", "portal.paginas.nucleo.engenharia");
 
%>
/impl/src/web/public/portals/menuPortal.jsp
40,11 → 40,22
NavPlace navPlace = (NavPlace) navKey;
if (navPlace.getUrl() != null)
{
if(!navPlace.getUrl().contains("http://"))
{
%>
<li class="navPlace<%=selectedClass%>">
<a href="<%=request.getContextPath() + navPlace.getUrl()%>"><%=MessageResources.getMessage(request, navPlace.getKey())%></a>
</li>
<%
}
else
{
%>
<li class="navPlace<%=selectedClass%>">
<a href="<%=navPlace.getUrl()%>"><%=MessageResources.getMessage(request, navPlace.getKey())%></a>
</li>
<%
}
}
else
{
/impl/src/web/public/portals/nucleoEngenharia/nucleoEngenharia.jsp
New file
0,0 → 1,7
<%@ page import="jomm.web.utils.TopNav" %>
<%@ page import="jomm.web.utils.NavPlaceServer" %>
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 
<jsp:include page="/public/portals/nucleoEngenharia/nucleoEngenhariaLinks.jsp"/>
<jsp:include page="/public/portals/menuPortal.jsp"/>
/impl/src/web/public/portals/nucleoEngenharia/nucleoEngenhariaLinks.jsp
New file
0,0 → 1,10
<%@ page import="jomm.web.utils.TopNav" %>
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%@ page import="jomm.web.utils.NavPlaceServer" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
TopNav topNav = NavPlaceServer.getInstance().createPortalMenuPlacesKey(request);
topNav.setTitle("portal.paginas.nucleo.engenharia");
String startLink = Globals.getStartLinkPortalMenu("layoutNucleoEng");
topNav.addNavPlace(startLink + "/exemplo.html", "portal.paginas.exemplo");
%>
/impl/src/web/public/portals/nucleoEngenharia/topnavNucleoEngenharia.jsp
New file
0,0 → 1,14
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="java.util.*"%>
<%@ page import="jomm.web.utils.NavPlace" %>
<%@ page import="jomm.web.utils.NavPlaceServer" %>
<%@ page import="jomm.web.utils.TopNav" %>
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/Welcome.do", "Home");
topNav.addNavPlace("/student.do" + Globals.PORTAL_ROLE_VIEW_STUDENT, "menu.alunos");
topNav.addNavPlace(null, "portal.paginas.nucleo.engenharia");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/public/portals/blocoPortal.jsp
11,31 → 11,41
{
%>
<div class="block">
<p><%=MessageResources.getMessage(request, topNav.getTitle())%></p>
<%
}
%>
<ul>
<%
List<NavPlace> navKeys = topNav.getNavPlaces();
for (NavPlace navKey : navKeys)
<p><%=MessageResources.getMessage(request, topNav.getTitle())%></p>
<%
}
%>
<ul>
<%
List<NavPlace> navKeys = topNav.getNavPlaces();
for (NavPlace navKey : navKeys)
{
NavPlace navPlace = (NavPlace) navKey;
if (navPlace.getUrl() != null)
{
NavPlace navPlace = (NavPlace) navKey;
if (navPlace.getUrl() != null)
if(!navPlace.getUrl().contains("http://"))
{
%>
<li>
<a href="<%=request.getContextPath() + navPlace.getUrl()%>"><%=MessageResources.getMessage(request, navPlace.getKey())%></a>
</li>
<%
%>
<li>
<a href="<%=request.getContextPath() + navPlace.getUrl()%>"><%=MessageResources.getMessage(request, navPlace.getKey())%></a>
</li>
<%
}
else
{
%>
<li>
<a href="<%=navPlace.getUrl()%>"><%=MessageResources.getMessage(request, navPlace.getKey())%></a>
</li>
<%}
}
else
{
%>
<li><%=MessageResources.getMessage(request, navPlace.getKey())%></li>
<%
}
}
else
{
%>
<li><%=MessageResources.getMessage(request, navPlace.getKey())%></li>
<%
}
}
%>
</ul>
%>
</ul>
</div>
/impl/src/web/public/portals/assessoria/topnavAssessoria.jsp
New file
0,0 → 1,14
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="java.util.*"%>
<%@ page import="jomm.web.utils.NavPlace" %>
<%@ page import="jomm.web.utils.NavPlaceServer" %>
<%@ page import="jomm.web.utils.TopNav" %>
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/Welcome.do", "Home");
topNav.addNavPlace("/student.do" + Globals.PORTAL_ROLE_VIEW_STUDENT, "menu.alunos");
topNav.addNavPlace(null, "portal.paginas.alunos.assessoria");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/public/portals/assessoria/assessoria.jsp
New file
0,0 → 1,7
<%@ page import="jomm.web.utils.TopNav" %>
<%@ page import="jomm.web.utils.NavPlaceServer" %>
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 
<jsp:include page="/public/portals/assessoria/assessoriaLinks.jsp"/>
<jsp:include page="/public/portals/menuPortal.jsp"/>
/impl/src/web/public/portals/assessoria/assessoriaLinks.jsp
New file
0,0 → 1,10
<%@ page import="jomm.web.utils.TopNav" %>
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%@ page import="jomm.web.utils.NavPlaceServer" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
TopNav topNav = NavPlaceServer.getInstance().createPortalMenuPlacesKey(request);
topNav.setTitle("portal.paginas.alunos.assessoria");
String startLink = Globals.getStartLinkPortalMenu("layoutAA");
topNav.addNavPlace(startLink + "/exemplo.html", "portal.paginas.exemplo");
%>
/impl/src/web/public/announcements/announcementsPortalLeft.jsp
17,8 → 17,9
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
IServiceManager sm = ServiceManager.getInstance();
String subTarget=null;
String[] names = new String[]{};
Object[] args = new Object[]{request.getParameter("role"), Globals.ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS};
Object[] args = new Object[]{request.getParameter("role"), Globals.ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS,subTarget};
List<AnnouncementView> announcementViews = (List<AnnouncementView>) sm.execute(RequestUtils.getRequester(request), "LoadRoleTypeMaxAnnouncements", args, names);
request.setAttribute("Announcements", announcementViews);
%>
31,24 → 32,30
<td>
<div class="portalAnnouncementTop">
<div class="imageAnnouncementTop">
<img src="<%=request.getContextPath()%>/imgs/destaque_2_1.jpg"/>
<%if(item.getBigImage() != null){%><img alt="<%=item.getTitle()%>" src="<%=request.getContextPath()%>/imageStream/<%=item.getSmallImage().getId()%>"><%}%>
</div>
<div class="portalAnnouncement">
<logic:empty name="item" property="url">
<div class="portalAnnouncementTitle"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link></div>
<div class="portalAnnouncementText"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.text}</html:link></div>
<div class="portalAnnouncementText"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.textSummarySmall}</html:link></div>
</logic:empty>
<logic:notEmpty name="item" property="url">
<%if(!item.getHaveAllText())
{%>
<div class="portalAnnouncementTitle"><html:link href="${item.url}">${item.title}</html:link></div>
<div class="portalAnnouncementText"><html:link href="${item.url}">${item.text}</html:link></div>
<div class="portalAnnouncementText"><html:link href="${item.url}">${item.textSummarySmall}</html:link></div>
<%}
else
{%>
<div class="portalAnnouncementTitle"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link></div>
<div class="portalAnnouncementText"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.textSummarySmall}</html:link></div>
<%}%>
</logic:notEmpty>
</div>
</div>
 
</td>
 
</tr>
</logic:iterate>
</logic:present>
</table>
</div>
</div>
/impl/src/web/public/announcements/getFlashNews.jsp
14,24 → 14,34
<%
//String iterator = request.getParameter("iterator");
IServiceManager sm = ServiceManager.getInstance();
String subTarget=null;
// String[] names = new String[]{"iterator"};
String[] names = new String[]{};
//Object[] arguments = new Object[]{Integer.parseInt(iterator)};
Object[] arguments = new Object[]{};
Object[] arguments = new Object[]{subTarget};
AnnouncementView announcementView = (AnnouncementView) sm.execute(RequestUtils.getRequester(request), "LoadTopFlashNewsIterate", arguments, names);
%>
<tr>
<td>
<div id="textNewsTop">
<div class="titleNewsTop">
<html:link action="/loadAnnouncement?id=<%=announcementView.getId()%>&dispatch=load"><%=announcementView.getTitle()%></html:link>
</div>
<div class="descriptionNewsTop">
<html:link action="/loadAnnouncement?id=<%=announcementView.getId()%>&dispatch=load"><%=announcementView.getTextSummary()%></html:link>
</div>
</div>
</td>
<td class="imageNewsTop">
<%if(announcementView.getBigImage() != null){%><img alt="<%=announcementView.getTitle()%>" src="<%=request.getContextPath()%>/imageStream/<%=announcementView.getBigImage().getId()%>"><%}%>
</td>
</tr>
<table class="container">
<tr>
<td class="textContainer">
<%if(announcementView.getUrl()==null)
{%>
<h2><a href="<%=request.getContextPath()%>/loadAnnouncement.do?id=<%=announcementView.getId()%>&dispatch=load"><%=announcementView.getTitle()%></a></h2>
<p><a href="<%=request.getContextPath()%>/loadAnnouncement.do?id=<%=announcementView.getId()%>&dispatch=load"><%=announcementView.getTextSummary()%></a></p>
<%}
else if(!announcementView.getHaveAllText())
{%>
<h2><a href="<%=announcementView.getUrl()%>"><%=announcementView.getTitle()%></a></h2>
<p><a href="<%=announcementView.getUrl()%>"><%=announcementView.getText()%></a></p>
<%}
else
{%>
<h2><a href="<%=request.getContextPath()%>/loadAnnouncement.do?id=<%=announcementView.getId()%>&dispatch=load"><%=announcementView.getTitle()%></a></h2>
<p><a href="<%=request.getContextPath()%>/loadAnnouncement.do?id=<%=announcementView.getId()%>&dispatch=load"><%=announcementView.getTextSummary()%></a></p>
<%}%>
</td>
<td class="imageContainer">
<%if(announcementView.getBigImage() != null){%><img alt="<%=announcementView.getTitle()%>" src="<%=request.getContextPath()%>/imageStream/<%=announcementView.getBigImage().getId()%>"><%}%>
</td>
</tr>
</table>
/impl/src/web/public/announcements/loadAnnouncement.jsp
7,18 → 7,32
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<jsp:useBean id="Announcement" type="pt.estgp.estgweb.domain.views.AnnouncementView" scope="request"/>
 
<table class="box">
<tr>
<th>
${Announcement.title}
</th>
</tr>
<tr>
<td>
 
<p>
${Announcement.text}
</p>
</td>
</tr>
</table>
<div class="pageSection">
<div class="sectionTitle">
<h2>${Announcement.title}</h2>
</div>
<div class="pageText">
<%
if(Announcement.getBigImage() != null)
{
%>
<img align="left" alt="<%=Announcement.getTitle()%>" src="<%=request.getContextPath()%>/imageStream/<%=Announcement.getBigImage().getId()%>">
<%
}
else if(Announcement.getSmallImage() != null)
{
%>
<img align="left" alt="<%=Announcement.getTitle()%>" src="<%=request.getContextPath()%>/imageStream/<%=Announcement.getSmallImage().getId()%>">
<%
}
%>
${Announcement.text}
<%
if(Announcement.getUrl()!=null)
{
%>
<html:link href="${Announcement.url}">Ver +</html:link>
<%
}%>
</div>
</div>
/impl/src/web/public/announcements/announcements.jsp
9,42 → 9,38
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%
IServiceManager sm = ServiceManager.getInstance();
String subTarget=null;
String[] names = new String[]{};
Object[] args = new Object[]{};
Object[] args = new Object[]{subTarget};
List<AnnouncementView> announcementViews = (List<AnnouncementView>) sm.execute(RequestUtils.getRequester(request), "LoadTargetMaxAnnouncements", args, names);
request.setAttribute("Announcements", announcementViews);
%>
 
<div class="lastNews">
<div class="header">
<h1><bean:message key="announcements"/></h1>
<div id="lastNews">
<h1><bean:message key="announcements"/></h1>
<div class="linkLeftMenu">
<logic:present name="Announcements">
<ul>
<logic:iterate id="item" name="Announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView">
<logic:equal value="news" name="item" property="type">
<li>
<logic:empty name="item" property="url">
<h2><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link></h2>
</logic:empty>
<logic:notEmpty name="item" property="url">
<%if(!item.getHaveAllText())
{%>
<h2><html:link href="${item.url}">${item.title}</html:link></h2>
<%}
else
{%>
<h2><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link></h2>
<%}%>
</logic:notEmpty>
</li>
</logic:equal>
</logic:iterate>
</ul>
</logic:present>
</div>
 
<table class="lastNewsBlock">
<tr>
<td>
<logic:present name="Announcements">
<div class="listClean">
<ul>
<logic:iterate id="item" name="Announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView">
<li>
<logic:empty name="item" property="url">
<logic:equal value="news" name="item" property="type">
<div class="titleLastNews"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link></div>
</logic:equal>
</logic:empty>
<logic:notEmpty name="item" property="url">
<logic:equal value="news" name="item" property="type">
<div class="titleLastNews"><html:link href="${item.url}">${item.title}</html:link></div>
</logic:equal>
</logic:notEmpty>
</li>
</logic:iterate>
</ul>
</div>
</logic:present>
</td>
</tr>
 
</table>
</div>
/impl/src/web/public/announcements/announcementsPortalRight.jsp
20,8 → 20,9
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%
IServiceManager sm = ServiceManager.getInstance();
String subTarget=null;
String[] names = new String[]{};
Object[] args = new Object[]{request.getParameter("role"), Globals.ANNOUNCEMENT_TYPE_NEWS};
Object[] args = new Object[]{request.getParameter("role"), Globals.ANNOUNCEMENT_TYPE_NEWS,subTarget};
List<AnnouncementView> announcementViews = (List<AnnouncementView>) sm.execute(RequestUtils.getRequester(request), "LoadRoleTypeMaxAnnouncements", args, names);
request.setAttribute("Announcements", announcementViews);
%>
42,11 → 43,19
<div class="portalAnnouncement">
<logic:empty name="item" property="url">
<div class="portalAnnouncementTitle"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link></div>
<div class="portalAnnouncementText"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.text}</html:link></div>
<div class="portalAnnouncementText"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.textSummarySmall}</html:link></div>
</logic:empty>
<logic:notEmpty name="item" property="url">
<%if(!item.getHaveAllText())
{%>
<div class="portalAnnouncementTitle"><html:link href="${item.url}">${item.title}</html:link></div>
<div class="portalAnnouncementText"><html:link href="${item.url}">${item.text}</html:link></div>
<div class="portalAnnouncementText"><html:link href="${item.url}">${item.textSummarySmall}</html:link></div>
<%}
else
{%>
<div class="portalAnnouncementTitle"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link></div>
<div class="portalAnnouncementText"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.textSummarySmall}</html:link></div>
<%}%>
</logic:notEmpty>
</div>
</div>
/impl/src/web/templates/templatePage.jsp
File deleted
\ No newline at end of file
/impl/src/web/templates/templatePageAssessoria.jsp
New file
0,0 → 1,87
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 
<h1>Página de Assessoria de Administração</h1>
 
<div class="section">
<h2>O que é a Assessoria de Administração?</h2>
<p> O curso de Assessoria de Administração constitui uma licenciatura bietápica,
que habilita os alunos a integrar o mercado de trabalho, em organismos públicos ou privados,
tecnicamente qualificados para exercerem funções com responsabilidades, no âmbito da Assessoria e
apoio à direcção e administração de empresas e junto dos mais diversos níveis hierárquicos e departamentos.</p>
</div>
 
<p>Para a consecução deste objectivo, a formação ao longo do curso fornece aos alunos um conjunto de
ferramentas multidisciplinares que lhes proporcionam formação superior e altamente qualificada em
áreas tão diversas como as Línguas (Portuguesa e Estrangeiras), Secretariado, Gestão, Contabilidade,
Sociologia, Direito, Informática e Novas Tecnologias.</p>
 
<div class="section">
<h2>Saidas Profissionais</h2>
<p>Os profissionais habilitados com o curso de Assessoria de Administração estão aptos a:</p>
<div class="listDisc">
<ul>
<li>Organismos públicos ou privados para exercer funções no âmbito da Assessoria e apoio à Direcção e Administração de empresas/instituições em diversos departamentos e junto dos mais diversos níveis hierárquicos.</li>
<li>Estão também habilitados a organizar eventos, congressos e seminários, de nível nacional e internacional.</li>
<li>Etc...</li>
</ul>
</div>
</div>
 
<div class="section">
<h2>Outros acessos preferencias:</h2>
<div class="listSquare">
<ul>
<li>R831 Agrupamento 3 / Administração</li>
<li>P540 Assistente de Gestão</li>
<li>T100 Assistente de Gestão</li>
<li>Ets...</li>
</ul>
</div>
</div>
 
<div class="listClean">
<ul>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
</ul>
</div>
 
<div class="listCircleWhite">
<ul>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
</ul>
</div>
 
<div class="listDecimal">
<ul>
<li><a href="#">Lista de Elementos Decimal</a></li>
<li><a href="#">Lista de Elementos Decimal</a></li>
<li><a href="#">Lista de Elementos Decimal</a></li>
<li><a href="#">Lista de Elementos Decimal</a></li>
</ul>
</div>
 
<div class="listDisc">
<ul>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
</ul>
</div>
 
<div class="listSquare">
<ul>
<li><a href="#">Lista de Elementos Quadrado</a></li>
<li><a href="#">Lista de Elementos Quadrado</a></li>
<li><a href="#">Lista de Elementos Quadrado</a></li>
<li><a href="#">Lista de Elementos Quadrado</a></li>
</ul>
</div>
 
<img src=""/>
/impl/src/web/templates/templatePageNucleoEng.jsp
New file
0,0 → 1,99
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 
<h1>Página do Nucleo de Engenharia</h1>
 
<div class="section">
<h2>O que é a Engenharia?</h2>
<p>Engenharia é a arte, a ciência e a técnica de bem conjugar os conhecimentos especializados
(científicos) de uma dada área do saber com a sua viabilidade técnico-econômica, para produzir
novas utilidades e/ou transformar a natureza, em conformidade com idéias bem planejadas. Já se
disse que "Engenharia é tão-somente aplicação da física aliada ao bom-senso"
[LUZ, Antônio Máximo Ribeiro da, Professor Emérito da UFMG (Belo Horizonte, MG, Brasil]
e — com os mais recentes avanços da ciência e da tecnologia, aqui se o pode aperfeiçoar:
Engenharia é aplicação prática dalgum conhecimento especializado aliado ao bom-senso.</p>
</div>
 
<p>Digno de nota é o fato de tradicionalmente as engenharias terem lidado apenas com objetos concretos,
palpáveis. Modernamente, porém, esse cenário mudou e deu lugar ao trato também de entidades ou objetos
abstratos, não-palpáveis. Tais são, por exemplo, as engenharias de custos, informática, de software, entre
outras. Numa certa medida, não rigorosa, pode-se incluir nesse novo rol, também as engenharias do ambiente e
genética, com as reservas que lhes são próprias. Toda engenharia, contudo, envolve certo grau de abstração.</p>
 
<div class="section">
<h2>Areas da Engenharia</h2>
<p>Várias são as especialidades/ramos de engenharia. Com o progresso das ciências e das tecnologias
que lhes são associadas, mais e mais especialidades continuamente estão a surgir. Eis, a seguir,
uma lista não-exaustiva das especialidades atuais de engenharia:</p>
<div class="listDecimal">
<ul>
<li>Engenharia Acústica</li>
<li>Engenharia Aeroespacial</li>
<li>Engenharia Aeronáutica</li>
<li>Engenharia Aeroviária</li>
<li><a href="http://pt.wikipedia.org/wiki/Engenharia_Agr%C3%ADcola">Engenharia Agrícola</a></li>
<li><a href="http://pt.wikipedia.org/wiki/Engenharia_de_Agrimensura">Engenharia de Agrimensura</a></li>
<li><a href="http://pt.wikipedia.org/w/index.php?title=Engenharia_Agron%C3%B4mica&action=edit&redlink=1">Engenharia Agronômica</a></li>
<li><a href="http://pt.wikipedia.org/wiki/Engenharia_de_Alimentos">Engenharia de Alimentos</a></li>
<li>Etc...</li>
</ul>
</div>
</div>
 
<div class="section">
<h2>Ver Também</h2>
<div class="listSquare">
<ul>
<li><a href="http://pt.wikipedia.org/wiki/Ci%C3%AAncia">Ciência</a></li>
<li><a href="http://pt.wikipedia.org/wiki/Modelos_f%C3%ADsicos">Modelos Fisicos</a></li>
<li><a href="http://pt.wikipedia.org/wiki/Tecnologia">Tecnologia</a></li>
<li><a href="http://pt.wikipedia.org/wiki/Toler%C3%A2ncia_%28engenharia%29">Tolerância</a></li>
</ul>
</div>
</div>
 
<div class="listClean">
<ul>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
</ul>
</div>
 
<div class="listCircleWhite">
<ul>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
</ul>
</div>
 
<div class="listDecimal">
<ul>
<li><a href="#">Lista de Elementos Decimal</a></li>
<li><a href="#">Lista de Elementos Decimal</a></li>
<li><a href="#">Lista de Elementos Decimal</a></li>
<li><a href="#">Lista de Elementos Decimal</a></li>
</ul>
</div>
 
<div class="listDisc">
<ul>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
</ul>
</div>
 
<div class="listSquare">
<ul>
<li><a href="#">Lista de Elementos Quadrado</a></li>
<li><a href="#">Lista de Elementos Quadrado</a></li>
<li><a href="#">Lista de Elementos Quadrado</a></li>
<li><a href="#">Lista de Elementos Quadrado</a></li>
</ul>
</div>
 
<img src=""/>
/impl/src/web/templates/templatePageOriginal.jsp
New file
0,0 → 1,54
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<h1>Titulo Principal a Verde</h1>
 
<div class="section">
<h2>Titulo da Secção</h2>
<p>textotextotextotextotextotextotextotexto</p>
</div>
 
<div class="listClean">
<ul>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
</ul>
</div>
 
<div class="listCircleWhite">
<ul>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
</ul>
</div>
 
<div class="listDecimal">
<ul>
<li><a href="#">Lista de Elementos Decimal</a></li>
<li><a href="#">Lista de Elementos Decimal</a></li>
<li><a href="#">Lista de Elementos Decimal</a></li>
<li><a href="#">Lista de Elementos Decimal</a></li>
</ul>
</div>
 
<div class="listDisc">
<ul>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
</ul>
</div>
 
<div class="listSquare">
<ul>
<li><a href="#">Lista de Elementos Quadrado</a></li>
<li><a href="#">Lista de Elementos Quadrado</a></li>
<li><a href="#">Lista de Elementos Quadrado</a></li>
<li><a href="#">Lista de Elementos Quadrado</a></li>
</ul>
</div>
 
<img src=""/>
/impl/gen/java/pt/estgp/estgweb/domain/Course.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 4/Abr/2008 15:49:07 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonth.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 4/Abr/2008 15:49:07 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatDayId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 4/Abr/2008 15:49:07 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
 
/impl/gen/java/pt/estgp/estgweb/domain/SessionObject.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 4/Abr/2008 15:49:07 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/GenericUser.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 4/Abr/2008 15:49:07 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/User.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 4/Abr/2008 15:49:07 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYear.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 4/Abr/2008 15:49:07 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonthId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 4/Abr/2008 15:49:07 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
 
/impl/gen/java/pt/estgp/estgweb/domain/UserSession.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 4/Abr/2008 15:49:07 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/Image.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 4/Abr/2008 15:49:07 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/GenericUserDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UserDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatYearDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatMonthIdDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UserSessionDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/ImageDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/BlogDao.java
New file
0,0 → 1,39
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
 
/**
* Home object for domain model class Blog.
* @author Jorge Machado - Hibernate Tools
*/
 
import jomm.dao.IDomainObjectDao;
import jomm.dao.impl.AbstractDao;
import pt.estgp.estgweb.domain.Blog;
 
 
public class BlogDao extends AbstractDao<Blog> {
//public class BlogDao extends AbstractDao implements IDomainObjectDao {
 
private static final Logger log = Logger.getLogger(BlogDao.class);
 
protected static BlogDao myInstance = null;
 
protected BlogDao(){
super();
}
 
public static BlogDao getInstance() {
if (myInstance == null)
myInstance = new BlogDao();
return myInstance;
}
 
protected Class getReferenceClass() {
return Blog.class;
}
}
 
 
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/TesteDao.java
New file
0,0 → 1,39
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
 
/**
* Home object for domain model class Teste.
* @author Jorge Machado - Hibernate Tools
*/
 
import jomm.dao.IDomainObjectDao;
import jomm.dao.impl.AbstractDao;
import pt.estgp.estgweb.domain.Teste;
 
 
public class TesteDao extends AbstractDao<Teste> {
//public class TesteDao extends AbstractDao implements IDomainObjectDao {
 
private static final Logger log = Logger.getLogger(TesteDao.class);
 
protected static TesteDao myInstance = null;
 
protected TesteDao(){
super();
}
 
public static TesteDao getInstance() {
if (myInstance == null)
myInstance = new TesteDao();
return myInstance;
}
 
protected Class getReferenceClass() {
return Teste.class;
}
}
 
 
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SessionObjectIdDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/BlogPostDao.java
New file
0,0 → 1,39
package pt.estgp.estgweb.domain.dao.impl;
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
 
/**
* Home object for domain model class BlogPost.
* @author Jorge Machado - Hibernate Tools
*/
 
import jomm.dao.IDomainObjectDao;
import jomm.dao.impl.AbstractDao;
import pt.estgp.estgweb.domain.BlogPost;
 
 
public class BlogPostDao extends AbstractDao<BlogPost> {
//public class BlogPostDao extends AbstractDao implements IDomainObjectDao {
 
private static final Logger log = Logger.getLogger(BlogPostDao.class);
 
protected static BlogPostDao myInstance = null;
 
protected BlogPostDao(){
super();
}
 
public static BlogPostDao getInstance() {
if (myInstance == null)
myInstance = new BlogPostDao();
return myInstance;
}
 
protected Class getReferenceClass() {
return BlogPost.class;
}
}
 
 
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/AnnouncementDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatYearIdDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseUserAssociationDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/GroupDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatDayDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatMonthDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatDayIdDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SessionObjectDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/Blog.java
New file
0,0 → 1,105
package pt.estgp.estgweb.domain;
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
 
/**
* Blog generated by hbm2java
*/
public abstract class Blog extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
 
 
private long id;
private Date updateDate;
private Date saveDate;
private String title;
private String desc;
private String targetRoles;
private boolean status;
private Image image;
private GenericUser owner;
 
public Blog() {
}
 
public Blog(Date saveDate, String title, String desc, String targetRoles, boolean status, Image image, GenericUser owner) {
this.saveDate = saveDate;
this.title = title;
this.desc = desc;
this.targetRoles = targetRoles;
this.status = status;
this.image = image;
this.owner = owner;
}
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
public Date getUpdateDate() {
return this.updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public Date getSaveDate() {
return this.saveDate;
}
public void setSaveDate(Date saveDate) {
this.saveDate = saveDate;
}
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDesc() {
return this.desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getTargetRoles() {
return this.targetRoles;
}
public void setTargetRoles(String targetRoles) {
this.targetRoles = targetRoles;
}
public boolean isStatus() {
return this.status;
}
public void setStatus(boolean status) {
this.status = status;
}
public Image getImage() {
return this.image;
}
public void setImage(Image image) {
this.image = image;
}
public GenericUser getOwner() {
return this.owner;
}
public void setOwner(GenericUser owner) {
this.owner = owner;
}
 
 
 
 
}
 
 
/impl/gen/java/pt/estgp/estgweb/domain/Teste.java
New file
0,0 → 1,69
package pt.estgp.estgweb.domain;
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
 
/**
* Teste generated by hbm2java
*/
public abstract class Teste extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
 
 
private long id;
private Date updateDate;
private Date saveDate;
private String name;
private String morada;
 
public Teste() {
}
 
public Teste(Date saveDate, String name, String morada) {
this.saveDate = saveDate;
this.name = name;
this.morada = morada;
}
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
public Date getUpdateDate() {
return this.updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public Date getSaveDate() {
return this.saveDate;
}
public void setSaveDate(Date saveDate) {
this.saveDate = saveDate;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getMorada() {
return this.morada;
}
public void setMorada(String morada) {
this.morada = morada;
}
 
 
 
 
}
 
 
/impl/gen/java/pt/estgp/estgweb/domain/SessionObjectId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 4/Abr/2008 15:49:07 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
 
/impl/gen/java/pt/estgp/estgweb/domain/BlogPost.java
New file
0,0 → 1,114
package pt.estgp.estgweb.domain;
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
 
/**
* BlogPost generated by hbm2java
*/
public abstract class BlogPost extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
 
 
private long id;
private Date updateDate;
private Date saveDate;
private Date startDate;
private String title;
private String text;
private boolean status;
private Image image;
private GenericUser owner;
private Blog blog;
 
public BlogPost() {
}
 
public BlogPost(Date saveDate, Date startDate, String title, String text, boolean status, Image image, GenericUser owner, Blog blog) {
this.saveDate = saveDate;
this.startDate = startDate;
this.title = title;
this.text = text;
this.status = status;
this.image = image;
this.owner = owner;
this.blog = blog;
}
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
public Date getUpdateDate() {
return this.updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public Date getSaveDate() {
return this.saveDate;
}
public void setSaveDate(Date saveDate) {
this.saveDate = saveDate;
}
public Date getStartDate() {
return this.startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
public String getText() {
return this.text;
}
public void setText(String text) {
this.text = text;
}
public boolean isStatus() {
return this.status;
}
public void setStatus(boolean status) {
this.status = status;
}
public Image getImage() {
return this.image;
}
public void setImage(Image image) {
this.image = image;
}
public GenericUser getOwner() {
return this.owner;
}
public void setOwner(GenericUser owner) {
this.owner = owner;
}
public Blog getBlog() {
return this.blog;
}
public void setBlog(Blog blog) {
this.blog = blog;
}
 
 
 
 
}
 
 
/impl/gen/java/pt/estgp/estgweb/domain/Announcement.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 4/Abr/2008 15:49:07 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
15,6 → 15,7
private Date saveDate;
private Date startDate;
private Date expireDate;
private String subTargets;
private String title;
private String choosedOwnerRole;
private String text;
30,10 → 31,11
public Announcement() {
}
 
public Announcement(Date saveDate, Date startDate, Date expireDate, String title, String choosedOwnerRole, String text, String targetRoles, String type, String url, boolean status, Integer counter, Image bigImage, Image smallImage, GenericUser owner) {
public Announcement(Date saveDate, Date startDate, Date expireDate, String subTargets, String title, String choosedOwnerRole, String text, String targetRoles, String type, String url, boolean status, Integer counter, Image bigImage, Image smallImage, GenericUser owner) {
this.saveDate = saveDate;
this.startDate = startDate;
this.expireDate = expireDate;
this.subTargets = subTargets;
this.title = title;
this.choosedOwnerRole = choosedOwnerRole;
this.text = text;
82,6 → 84,13
public void setExpireDate(Date expireDate) {
this.expireDate = expireDate;
}
public String getSubTargets() {
return this.subTargets;
}
public void setSubTargets(String subTargets) {
this.subTargets = subTargets;
}
public String getTitle() {
return this.title;
}
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatDay.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 4/Abr/2008 15:49:07 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/Group.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 4/Abr/2008 15:49:07 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/CourseUserAssociation.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 4/Abr/2008 15:49:07 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYearId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 4/Abr/2008 15:49:07 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
 
/impl/gen/java/pt/estgp/estgweb/domain/UrlStat.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 4/Abr/2008 15:49:07 by Hibernate Tools 3.2.0.b9
// Generated 21/Abr/2008 15:54:27 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/build.xml
1,4 → 1,4
<?xml version="1.0"?>
<?xml version="1.0" encoding="utf-8"?>
<project name="estgweb" basedir="." default="help">