From 4ea2c8c80a433c28c7c5dec02225d5fb0d9b5210 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Aragunde=20P=C3=A9rez?= Date: Mon, 4 Jan 2010 15:58:24 +0100 Subject: [PATCH] ItEr41S26CUListaSubcontratas: First revision of the web interface to list ExternalCompany objects --- .../ExternalCompanyCRUDController.java | 90 +++++++++++++++++++ .../ExternalCompanyModel.java | 49 ++++++++++ .../IExternalCompanyCRUDController.java | 38 ++++++++ .../IExternalCompanyModel.java | 40 +++++++++ .../_editExternalCompany.zul | 25 ++++++ .../_listExternalCompanies.zul | 52 +++++++++++ .../externalcompanies/externalcompanies.zul | 38 ++++++++ 7 files changed, 332 insertions(+) create mode 100644 navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyCRUDController.java create mode 100644 navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyModel.java create mode 100644 navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/IExternalCompanyCRUDController.java create mode 100644 navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/IExternalCompanyModel.java create mode 100644 navalplanner-webapp/src/main/webapp/externalcompanies/_editExternalCompany.zul create mode 100644 navalplanner-webapp/src/main/webapp/externalcompanies/_listExternalCompanies.zul create mode 100644 navalplanner-webapp/src/main/webapp/externalcompanies/externalcompanies.zul diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyCRUDController.java new file mode 100644 index 000000000..c27ee4a5c --- /dev/null +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyCRUDController.java @@ -0,0 +1,90 @@ +/* + * This file is part of ###PROJECT_NAME### + * + * Copyright (C) 2009 Fundación para o Fomento da Calidade Industrial e + * Desenvolvemento Tecnolóxico de Galicia + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package org.navalplanner.web.externalcompanies; + +import java.util.List; + +import org.navalplanner.business.externalcompanies.entities.ExternalCompany; +import org.navalplanner.business.users.entities.User; +import org.navalplanner.web.common.IMessagesForUser; +import org.navalplanner.web.common.MessagesForUser; +import org.navalplanner.web.common.OnlyOneVisible; +import org.navalplanner.web.common.Util; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.util.GenericForwardComposer; +import org.zkoss.zul.Window; + +/** + * Controller for CRUD actions over a {@link User} + * + * @author Jacobo Aragunde Perez + */ +@SuppressWarnings("serial") +public class ExternalCompanyCRUDController extends GenericForwardComposer + implements IExternalCompanyCRUDController { + + private IExternalCompanyModel externalCompanyModel; + + private Window createWindow; + + private Window listWindow; + + private OnlyOneVisible visibility; + + private IMessagesForUser messagesForUser; + + private Component messagesContainer; + + @Override + public void doAfterCompose(Component comp) throws Exception { + super.doAfterCompose(comp); + comp.setVariable("controller", this, true); + messagesForUser = new MessagesForUser(messagesContainer); + getVisibility().showOnly(listWindow); + } + + @Override + public void goToCreateForm() { + // TODO implement + + } + + @Override + public void goToEditForm(ExternalCompany company) { + // TODO implement + } + + @Override + public void goToList() { + getVisibility().showOnly(listWindow); + Util.reloadBindings(listWindow); + } + + public List getCompanies() { + return externalCompanyModel.getCompanies(); + } + + private OnlyOneVisible getVisibility() { + return (visibility == null) ? new OnlyOneVisible(createWindow, + listWindow) + : visibility; + } +} diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyModel.java new file mode 100644 index 000000000..c9942baeb --- /dev/null +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/ExternalCompanyModel.java @@ -0,0 +1,49 @@ +/* + * This file is part of ###PROJECT_NAME### + * + * Copyright (C) 2009 Fundación para o Fomento da Calidade Industrial e + * Desenvolvemento Tecnolóxico de Galicia + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package org.navalplanner.web.externalcompanies; + +import java.util.List; + +import org.navalplanner.business.externalcompanies.daos.IExternalCompanyDAO; +import org.navalplanner.business.externalcompanies.entities.ExternalCompany; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Service; + +/** + * Model for UI operations related to {@link ExternalCompany} + * + * @author Jacobo Aragunde Perez + */ +@Service +@Scope(BeanDefinition.SCOPE_PROTOTYPE) +public class ExternalCompanyModel implements IExternalCompanyModel { + + @Autowired + private IExternalCompanyDAO externalCompanyDAO; + + @Override + public List getCompanies() { + return externalCompanyDAO.list(ExternalCompany.class); + } + +} diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/IExternalCompanyCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/IExternalCompanyCRUDController.java new file mode 100644 index 000000000..8720015d6 --- /dev/null +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/IExternalCompanyCRUDController.java @@ -0,0 +1,38 @@ +/* + * This file is part of ###PROJECT_NAME### + * + * Copyright (C) 2009 Fundación para o Fomento da Calidade Industrial e + * Desenvolvemento Tecnolóxico de Galicia + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package org.navalplanner.web.externalcompanies; + +import org.navalplanner.business.externalcompanies.entities.ExternalCompany; +import org.navalplanner.web.common.entrypoints.EntryPoint; +import org.navalplanner.web.common.entrypoints.EntryPoints; + +@EntryPoints(page = "/externalcompanies/externalcompanies.zul", registerAs = "externalCompanyCRUD") +public interface IExternalCompanyCRUDController { + + @EntryPoint("edit") + public abstract void goToEditForm(ExternalCompany company); + + @EntryPoint("create") + public abstract void goToCreateForm(); + + @EntryPoint("list") + public abstract void goToList(); +} diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/IExternalCompanyModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/IExternalCompanyModel.java new file mode 100644 index 000000000..e5ecf16a3 --- /dev/null +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/externalcompanies/IExternalCompanyModel.java @@ -0,0 +1,40 @@ +/* + * This file is part of ###PROJECT_NAME### + * + * Copyright (C) 2009 Fundación para o Fomento da Calidade Industrial e + * Desenvolvemento Tecnolóxico de Galicia + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package org.navalplanner.web.externalcompanies; + +import java.util.List; + +import org.navalplanner.business.externalcompanies.entities.ExternalCompany; + +/** + * Model for UI operations related to {@link ExternalCompany} + * + * @author Jacobo Aragunde Perez + */ +public interface IExternalCompanyModel { + + /** + * Lists all the {@link ExternalCompany} objects available in the system. + * + * @return A list of {@link ExternalCompany} objects. + */ + List getCompanies(); +} diff --git a/navalplanner-webapp/src/main/webapp/externalcompanies/_editExternalCompany.zul b/navalplanner-webapp/src/main/webapp/externalcompanies/_editExternalCompany.zul new file mode 100644 index 000000000..83bfb6e04 --- /dev/null +++ b/navalplanner-webapp/src/main/webapp/externalcompanies/_editExternalCompany.zul @@ -0,0 +1,25 @@ + + + + + + + diff --git a/navalplanner-webapp/src/main/webapp/externalcompanies/_listExternalCompanies.zul b/navalplanner-webapp/src/main/webapp/externalcompanies/_listExternalCompanies.zul new file mode 100644 index 000000000..3bd1a29df --- /dev/null +++ b/navalplanner-webapp/src/main/webapp/externalcompanies/_listExternalCompanies.zul @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + diff --git a/navalplanner-webapp/src/main/webapp/externalcompanies/externalcompanies.zul b/navalplanner-webapp/src/main/webapp/externalcompanies/externalcompanies.zul new file mode 100644 index 000000000..ab988de33 --- /dev/null +++ b/navalplanner-webapp/src/main/webapp/externalcompanies/externalcompanies.zul @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + +