/*
- * Copyright (C) 2016 Roland Haeder
+ * Copyright (C) 2016, 2017 Roland Häder
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
import java.text.MessageFormat;
import java.util.Calendar;
import java.util.Collections;
-import java.util.GregorianCalendar;
import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
-import org.mxchange.jjobs.beans.login.JobsUserLoginWebSessionController;
-import org.mxchange.jjobs.events.addressbook.AddressbookLoadedEvent;
-import org.mxchange.jjobs.events.addressbook.LoadedAddressbookEvent;
-import org.mxchange.jjobs.exceptions.AddressbookNameAlreadyUsedException;
-import org.mxchange.jjobs.exceptions.AddressbookNotFoundException;
-import org.mxchange.jjobs.model.addressbook.Addressbook;
-import org.mxchange.jjobs.model.addressbook.JobsAddressbookSessionBeanRemote;
-import org.mxchange.jjobs.model.addressbook.UserAddressbook;
-import org.mxchange.jjobs.model.addressbook.entry.AddressbookEntry;
-import org.mxchange.jusercore.events.login.UserLoggedInEvent;
+import org.mxchange.addressbook.model.addressbook.AddressbookSessionBeanRemote;
+import org.mxchange.jaddressbook.events.addressbook.AddressbookLoadedEvent;
+import org.mxchange.jaddressbook.events.addressbook.ObservableAddressbookLoadedEvent;
+import org.mxchange.jaddressbook.exceptions.AddressbookNameAlreadyUsedException;
+import org.mxchange.jaddressbook.exceptions.AddressbookNotFoundException;
+import org.mxchange.jaddressbook.model.addressbook.Addressbook;
+import org.mxchange.jaddressbook.model.addressbook.UserAddressbook;
+import org.mxchange.jaddressbook.model.addressbook.entry.AddressbookEntry;
+import org.mxchange.jjobs.beans.BaseJobsController;
+import org.mxchange.jjobs.beans.login.user.JobsUserLoginWebSessionController;
+import org.mxchange.jusercore.events.login.ObservableUserLoggedInEvent;
import org.mxchange.jusercore.model.user.User;
/**
* An address book bean (controller)
* <p>
- * @author Roland Haeder<roland@mxchange.org>
+ * @author Roland Häder<roland@mxchange.org>
*/
@Named ("addressbookController")
@SessionScoped
-public class JobsAddressbookWebSessionBean implements JobsAddressbookWebSessionController {
+public class JobsAddressbookWebSessionBean extends BaseJobsController implements JobsAddressbookWebSessionController {
/**
* Serial number
/**
* Remote address book bean
*/
- private JobsAddressbookSessionBeanRemote addressbookBean;
+ private AddressbookSessionBeanRemote addressbookBean;
/**
* When this address book has been created
*/
@Inject
@Any
- private Event<AddressbookLoadedEvent> loadedEvent;
+ private Event<ObservableAddressbookLoadedEvent> loadedEvent;
/**
* Login controller
*/
@Inject
- private JobsUserLoginWebSessionController loginController;
+ private JobsUserLoginWebSessionController userLoginController;
/**
* A list of all user's address books
* Default constructor
*/
public JobsAddressbookWebSessionBean () {
- // Try it
- try {
- // Get initial context
- Context context = new InitialContext();
-
- // Try to lookup
- this.addressbookBean = (JobsAddressbookSessionBeanRemote) context.lookup("java:global/jjobs-ejb/jjobs-adr!org.mxchange.jjobs.model.addressbook.JobsAddressbookSessionBeanRemote"); //NOI18N
- } catch (final NamingException e) {
- // Throw again
- throw new FaceletException(e);
- }
+ // Call super constructor
+ super();
}
@Override
public String addAddressbook () {
// Is this name already used?
- if (!this.loginController.isUserLoggedIn()) {
+ if (!this.userLoginController.isUserLoggedIn()) {
// Not logged in
throw new FaceletException("This method can only be called as logged-in user."); //NOI18N
} else if (this.getAddressbookName() == null) {
}
// Create address book instance with name
- Addressbook book = new UserAddressbook(this.getAddressbookName(), this.loginController.getLoggedInUser(), new GregorianCalendar());
+ Addressbook book = new UserAddressbook(this.getAddressbookName(), this.userLoginController.getLoggedInUser());
try {
// Register this address book
}
@Override
- public void afterAddressbookLoadedEvent (final @Observes AddressbookLoadedEvent event) {
+ public void afterAddressbookLoadedEvent (@Observes final ObservableAddressbookLoadedEvent event) {
// event should not be null
if (null == event) {
// Throw NPE
}
@Override
- public void afterLoginEvent (final @Observes UserLoggedInEvent event) {
+ public void afterLoginEvent (@Observes final ObservableUserLoggedInEvent event) {
// Is the user logged in?
if (null == event) {
// Is null
throw new NullPointerException("event is null"); //NOI18N
- } else if (event.getUser() == null) {
+ } else if (event.getLoggedInUser() == null) {
// user is null
throw new NullPointerException("event.user is null"); //NOI18N
- } else if (!event.getUser().equals(this.loginController.getLoggedInUser())) {
+ } else if (!event.getLoggedInUser().equals(this.userLoginController.getLoggedInUser())) {
// Not matching
- throw new IllegalStateException("event.user and loginController.loggedInUser don't match."); //NOI18N
- } else if (!this.loginController.isUserLoggedIn()) {
+ throw new IllegalStateException("event.user and userLoginController.loggedInUser don't match."); //NOI18N
+ } else if (!this.userLoginController.isUserLoggedIn()) {
// Not logged in
throw new FaceletException("This method can only be called as logged-in user."); //NOI18N
}
@Override
public List<Addressbook> allAddressbooks () {
// Is the user logged in?
- if (!this.loginController.isUserLoggedIn()) {
+ if (!this.userLoginController.isUserLoggedIn()) {
// Not logged in
throw new FaceletException("This method can only be called as logged-in user."); //NOI18N
}
@Override
public List<AddressbookEntry> allEntries (final Addressbook addressbook) {
// Is the user logged in?
- if (!this.loginController.isUserLoggedIn()) {
+ if (!this.userLoginController.isUserLoggedIn()) {
// Not logged in
throw new FaceletException("This method can only be called as logged-in user."); //NOI18N
}
}
@Override
+ @SuppressWarnings ("ReturnOfDateField")
public Calendar getAddressbookCreated () {
return this.addressbookCreated;
}
@Override
+ @SuppressWarnings ("AssignmentToDateFieldFromParameter")
public void setAddressbookCreated (final Calendar addressbookCreated) {
this.addressbookCreated = addressbookCreated;
}
@Override
public boolean hasCreatedAddressbooks () {
// Is the user logged in?
- if (!this.loginController.isUserLoggedIn()) {
+ if (!this.userLoginController.isUserLoggedIn()) {
// Not logged in
throw new FaceletException("This method can only be called as logged-in user."); //NOI18N
}
*/
@PostConstruct
public void init () {
+ // Try it
+ try {
+ // Get initial context
+ Context context = new InitialContext();
+
+ // Try to lookup
+ this.addressbookBean = (AddressbookSessionBeanRemote) context.lookup("java:global/jjobs-ejb/jjobs-adr!org.mxchange.jjobs.model.addressbook.JobsAddressbookSessionBeanRemote"); //NOI18N
+ } catch (final NamingException e) {
+ // Throw again
+ throw new FaceletException(e);
+ }
+
// Init list
this.usersAddressbooks = new LinkedList<>();
// Is the user logged-in?
- if (this.loginController.isUserLoggedIn()) {
+ if (this.userLoginController.isUserLoggedIn()) {
// Initialize list
this.initAddressbookList();
}
@Override
public boolean isOwnAddressbook () {
// Is the user logged in?
- if (!this.loginController.isUserLoggedIn()) {
+ if (!this.userLoginController.isUserLoggedIn()) {
// No, then no own address book
throw new IllegalStateException("isOwnAddressbook() has been invoked for a guest account"); //NOI18N
}
// Is same user?
- return Objects.equals(this.getAddressbookUser(), this.loginController.getLoggedInUser());
+ return Objects.equals(this.getAddressbookUser(), this.userLoginController.getLoggedInUser());
}
@Override
Addressbook a = this.addressbookBean.getAddressbookById(this.getAddressbookId());
// Fire event here
- this.loadedEvent.fire(new LoadedAddressbookEvent(a));
+ this.loadedEvent.fire(new AddressbookLoadedEvent(a));
// Found it
isFound = true;
*/
private void initAddressbookList () {
// Get user instance
- User user = this.loginController.getLoggedInUser();
+ User user = this.userLoginController.getLoggedInUser();
// Fill list with entries
this.usersAddressbooks = this.addressbookBean.getUsersAddressbookList(user);
}
+
}