kune-commits
Threads by month
- ----- 2026 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
January 2012
- 1 participants
- 26 discussions
Author: vjrj_
Date: 2012-01-09 16:37:06 +0100 (Mon, 09 Jan 2012)
New Revision: 1657
Removed:
trunk/src/main/java/org/ourproject/
trunk/src/main/java/org/waveprotocol/box/server/
trunk/src/main/java/org/waveprotocol/box/webclient/
trunk/src/main/java/org/waveprotocol/wave/client/wavepanel/impl/
Modified:
trunk/src/main/java/cc/kune/core/client/state/Session.java
trunk/src/main/java/cc/kune/core/client/state/SessionExpirationManager.java
trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceMultiLang.java
trunk/src/main/java/cc/kune/core/server/i18n/impl/I18nTranslationServiceDefault.java
trunk/src/main/java/cc/kune/core/server/manager/Manager.java
trunk/src/main/java/cc/kune/core/server/manager/impl/DefaultManager.java
trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
trunk/src/main/java/cc/kune/core/server/notifier/NotifySender.java
trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java
trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java
trunk/src/main/java/cc/kune/core/server/rpc/SocialNetworkRPC.java
trunk/src/main/java/cc/kune/core/shared/domain/dto/EmailNotificationFrequency.java
trunk/src/main/java/cc/kune/domain/Container.java
trunk/src/main/java/cc/kune/domain/Revision.java
trunk/src/main/java/cc/kune/domain/User.java
trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java
trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java.seg
trunk/src/main/java/cc/kune/wave/server/kspecific/WaveEmailNotifier.java
trunk/src/main/resources/assembly.xml
Log:
Some Notification fixes and clean up.
NEW - # 185: Implement notification levels (hourly and daily) similar to Google Wave
http://kune.ourproject.org/issues/ticket/185
Modified: trunk/src/main/java/cc/kune/core/client/state/Session.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/Session.java 2012-01-08 23:06:53 UTC (rev 1656)
+++ trunk/src/main/java/cc/kune/core/client/state/Session.java 2012-01-09 15:37:06 UTC (rev 1657)
@@ -65,7 +65,7 @@
long ANON_SESSION_DURATION = A_DAY;
long ANON_SESSION_DURATION_AFTER_REG = A_DAY * 365;
long SESSION_DURATION = A_DAY * 14; // two weeks login session duration
- // long SESSION_DURATION = 1000;
+ // long SESSION_DURATION = 100; // For test
String USERHASH = "k007userHash";
Modified: trunk/src/main/java/cc/kune/core/client/state/SessionExpirationManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/SessionExpirationManager.java 2012-01-08 23:06:53 UTC (rev 1656)
+++ trunk/src/main/java/cc/kune/core/client/state/SessionExpirationManager.java 2012-01-09 15:37:06 UTC (rev 1657)
@@ -26,6 +26,9 @@
eventBus.addHandler(SessionExpiredEvent.getType(), new SessionExpiredEvent.SessionExpiredHandler() {
@Override
public void onSessionExpired(final SessionExpiredEvent event) {
+ if (session.isLogged()) {
+ session.signOut();
+ }
NotifyUser.info(i18n.t("Please sign in again"));
}
});
Modified: trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceMultiLang.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceMultiLang.java 2012-01-08 23:06:53 UTC (rev 1656)
+++ trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceMultiLang.java 2012-01-09 15:37:06 UTC (rev 1657)
@@ -17,4 +17,16 @@
* @return text translated in the specified language
*/
public String tWithNT(I18nLanguage lang, final String text, final String noteForTranslators);
+
+ /**
+ * Use [%s] to reference the String parameter.
+ *
+ * Also adds [%NT noteForTranslators] at the end of text. This tag is later
+ * renderer in the translator panel to inform translator how to do this
+ * translation
+ *
+ */
+ public String tWithNT(I18nLanguage lang, final String text, final String noteForTranslators,
+ final String... args);
+
}
Modified: trunk/src/main/java/cc/kune/core/server/i18n/impl/I18nTranslationServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/i18n/impl/I18nTranslationServiceDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
+++ trunk/src/main/java/cc/kune/core/server/i18n/impl/I18nTranslationServiceDefault.java 2012-01-09 15:37:06 UTC (rev 1657)
@@ -19,6 +19,7 @@
*/
package cc.kune.core.server.i18n.impl;
+import cc.kune.common.client.utils.Pair;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.server.UserSessionManager;
@@ -65,6 +66,19 @@
}
/**
+ * Use [%s] to reference the string parameter
+ *
+ */
+ // @PMD:REVIEWED:ShortMethodName: by vjrj on 21/05/09 13:50
+ private String t(final I18nLanguage lang, final Pair<String, String> pair, final String... args) {
+ String translation = tWithNT(lang, pair.getLeft(), pair.getRight());
+ for (final String arg : args) {
+ translation = translation.replaceFirst("\\[%s\\]", arg);
+ }
+ return decodeHtml(translation);
+ }
+
+ /**
* If the text is not in the db, it stores the text pending for translation.
*
* Warning: text is escaped as html before insert in the db. Don't use html
@@ -89,6 +103,12 @@
return decodeHtml(translation);
}
+ @Override
+ public String tWithNT(final I18nLanguage lang, final String text, final String noteForTranslators,
+ final String... args) {
+ return t(lang, Pair.create(text, noteForTranslators), args);
+ }
+
/**
* If the text is not in the db, it stores the text pending for translation.
*
Modified: trunk/src/main/java/cc/kune/core/server/manager/Manager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/Manager.java 2012-01-08 23:06:53 UTC (rev 1656)
+++ trunk/src/main/java/cc/kune/core/server/manager/Manager.java 2012-01-09 15:37:06 UTC (rev 1657)
@@ -21,28 +21,25 @@
import org.apache.lucene.search.BooleanClause;
-
public interface Manager<T, X> {
- void clear();
+ T find(X id);
- T find(X id);
+ T merge(T entity);
- T merge(T entity);
+ T persist(T entity);
- T persist(T entity);
+ void reIndex();
- void reIndex();
+ void remove(T entity);
- void remove(T entity);
+ SearchResult<T> search(final String query, final String[] fields, final BooleanClause.Occur[] flags,
+ final Integer firstResult, final Integer maxResults);
- SearchResult<T> search(final String query, final String[] fields, final BooleanClause.Occur[] flags,
- final Integer firstResult, final Integer maxResults);
+ SearchResult<T> search(final String[] queries, final String[] fields,
+ final BooleanClause.Occur[] flags, final Integer firstResult, final Integer maxResults);
- SearchResult<T> search(final String[] queries, final String[] fields, final BooleanClause.Occur[] flags,
- final Integer firstResult, final Integer maxResults);
+ SearchResult<T> search(final String[] queries, final String[] fields, final Integer firstResult,
+ final Integer maxResults);
- SearchResult<T> search(final String[] queries, final String[] fields, final Integer firstResult,
- final Integer maxResults);
-
}
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/DefaultManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/DefaultManager.java 2012-01-08 23:06:53 UTC (rev 1656)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/DefaultManager.java 2012-01-09 15:37:06 UTC (rev 1657)
@@ -49,10 +49,6 @@
log = LogFactory.getLog(entityClass);
}
- public void clear() {
- getEntityManager().clear();
- }
-
/**
* use carefully!!!
*/
@@ -64,6 +60,10 @@
return getEntityManager().find(entityClass, primaryKey);
}
+ public void flush() {
+ getEntityManager().flush();
+ }
+
private EntityManager getEntityManager() {
return provider.get();
}
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2012-01-09 15:37:06 UTC (rev 1657)
@@ -43,7 +43,6 @@
import org.waveprotocol.wave.model.wave.ParticipantId;
import org.waveprotocol.wave.model.waveref.WaveRef;
-import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.errors.DefaultException;
import cc.kune.core.client.errors.EmailAddressInUseException;
@@ -52,6 +51,7 @@
import cc.kune.core.client.errors.I18nNotFoundException;
import cc.kune.core.client.errors.UserRegistrationException;
import cc.kune.core.client.errors.WrongCurrentPasswordException;
+import cc.kune.core.server.i18n.I18nTranslationServiceMultiLang;
import cc.kune.core.server.manager.GroupManager;
import cc.kune.core.server.manager.I18nCountryManager;
import cc.kune.core.server.manager.I18nLanguageManager;
@@ -86,7 +86,7 @@
private final ChatProperties chatProperties;
private final I18nCountryManager countryManager;
private final GroupManager groupManager;
- private final I18nTranslationService i18n;
+ private final I18nTranslationServiceMultiLang i18n;
private final KuneWaveService kuneWaveManager;
private final I18nLanguageManager languageManager;
private final NotifyService notifyService;
@@ -101,7 +101,7 @@
public UserManagerDefault(final Provider<EntityManager> provider, final UserFinder finder,
final I18nLanguageManager languageManager, final I18nCountryManager countryManager,
final XmppManager xmppManager, final ChatProperties chatProperties,
- final I18nTranslationService i18n, final CustomUserRegistrationServlet waveUserRegister,
+ final I18nTranslationServiceMultiLang i18n, final CustomUserRegistrationServlet waveUserRegister,
final AccountStore waveAccountStore, final KuneWaveService kuneWaveManager,
final ParticipantUtils participantUtils, final KuneBasicProperties properties,
final GroupManager groupManager, final NotifyService notifyService) {
@@ -201,13 +201,13 @@
passwdDigest.getSalt(), language, country, tz);
final String defWave = properties.getWelcomewave();
+ groupManager.createUserGroup(user, wantPersonalHomepage);
if (defWave != null) {
welcome = kuneWaveManager.createWave(
ContentConstants.WELCOME_WAVE_CONTENT_TITLE.replaceAll("\\[%s\\]",
properties.getDefaultSiteName()), "", defWave, null,
participantUtils.of(properties.getAdminShortName()), participantUtils.of(shortName));
}
- groupManager.createUserGroup(user, wantPersonalHomepage);
// Is this necessary? try to remove (used when we were setting the def
// content
// contentManager.save(userGroup.getDefaultContent());
@@ -318,6 +318,7 @@
return null;
}
}
+ final I18nLanguage lang = user.getLanguage();
if (user.getPassword().equals(passwd)) {
if (user.getLastLogin() == null) {
final String userName = user.getShortName();
@@ -325,13 +326,15 @@
timer.schedule(new TimerTask() {
@Override
public void run() {
+ // FIXME: Use notifyService!
xmppManager.sendMessage(
userName,
- i18n.t(
+ i18n.tWithNT(
+ lang,
"This is the chat window. "
+ "Here you can communicate with other users of [%s] but also with other users with compatible accounts (like gmail accounts). "
- + "Just add some buddy and start to chat.",
- i18n.t(properties.getSiteCommonName())));
+ + "Just add some buddy and start to chat.", "",
+ i18n.tWithNT(lang, properties.getSiteCommonName(), "")));
}
}, 5000);
}
Modified: trunk/src/main/java/cc/kune/core/server/notifier/NotifySender.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/notifier/NotifySender.java 2012-01-08 23:06:53 UTC (rev 1656)
+++ trunk/src/main/java/cc/kune/core/server/notifier/NotifySender.java 2012-01-09 15:37:06 UTC (rev 1657)
@@ -9,8 +9,8 @@
public interface NotifySender {
/**
- * Send a message to the recipients (also translate the subject/body using the
- * user language)
+ * Send a html message to the recipients (also translate the subject/body
+ * using the user language)
*
* @param notifyType
* the notify type (email, etc)
@@ -21,15 +21,17 @@
* {@link String.format} args
* @param isHtml
* if the body is html
+ * @param forceSend
+ * send even this user has "no notifications" selected
* @param recipients
* the recipients
*/
void send(NotifyType notifyType, FormatedString subject, FormatedString body, boolean isHtml,
- User... recipients);
+ final boolean forceSend, User... recipients);
/**
- * Send a message to the recipients (also translate the subject/body using the
- * user language)
+ * Send a text message to the recipients (also translate the subject/body
+ * using the user language)
*
* @param notifyType
* the notify type (email, etc)
@@ -41,6 +43,7 @@
* @param recipients
* the recipients
*/
+ @Deprecated
void send(NotifyType notifyType, FormatedString subject, FormatedString body, User... recipients);
}
Modified: trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
+++ trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java 2012-01-09 15:37:06 UTC (rev 1657)
@@ -27,28 +27,34 @@
private final String emailTemplate;
private final I18nTranslationServiceMultiLang i18n;
private final MailService mailService;
+ private final String subjectPrefix;
+ private final UsersOnline usersOnline;
private final KuneWaveService waveService;
private final XmppManager xmppManager;
@Inject
public NotifySenderDefault(final MailService mailService, final KuneWaveService waveService,
final XmppManager xmppManager, final I18nTranslationServiceMultiLang i18n,
- final KuneProperties kuneProperties) throws IOException {
+ final UsersOnline usersOnline, final KuneProperties kuneProperties) throws IOException {
this.mailService = mailService;
this.waveService = waveService;
this.xmppManager = xmppManager;
this.i18n = i18n;
+ this.usersOnline = usersOnline;
emailTemplate = FileUtils.readFileToString(new File(
kuneProperties.get(KuneProperties.SITE_EMAIL_TEMPLATE)));
Preconditions.checkNotNull(emailTemplate);
Preconditions.checkArgument(TextUtils.notEmpty(emailTemplate));
+ subjectPrefix = new StringBuffer("[").append(kuneProperties.get(KuneProperties.SITE_NAME)).append(
+ "] ").toString();
}
@Override
public void send(final NotifyType notifyType, final FormatedString subject, final FormatedString body,
- final boolean isHtml, final User... recipients) {
+ final boolean isHtml, final boolean forceSend, final User... recipients) {
for (final User user : recipients) {
final String username = user.getShortName();
+ subject.setTemplate(subjectPrefix + subject.getTemplate());
if (subject.shouldBeTranslated()) {
// Translate per recipient language
// final String subjectTranslation = i18n.tWithNT(user.getLanguage(),
@@ -68,15 +74,19 @@
}
switch (notifyType) {
case chat:
+ // FIXME seems that html is not sending correctly... check server specs
xmppManager.sendMessage(username,
String.format("<b>%s</b>%s", subject.getString(), body.getString()));
break;
case email:
- if (user.getEmailNotifFreq().equals(EmailNotificationFrequency.immediately)) {
- mailService.send(subject, FormatedString.build(emailTemplate.replace("%s", body.getString())),
- isHtml, user.getEmail());
- } else {
- // TODO: handle other types of notifications frequencies
+ if (forceSend || !usersOnline.isLogged(username)) {
+ if (user.getEmailNotifFreq().equals(EmailNotificationFrequency.immediately)) {
+ mailService.send(subject,
+ FormatedString.build(emailTemplate.replace("%s", body.getString())), isHtml,
+ user.getEmail());
+ } else {
+ // TODO: handle other types of notifications frequencies
+ }
}
break;
case wave:
@@ -90,9 +100,10 @@
}
@Override
+ @Deprecated
public void send(final NotifyType notifyType, final FormatedString subject, final FormatedString body,
final User... dests) {
- send(notifyType, subject, body, false, dests);
+ send(notifyType, subject, body, false, false, dests);
}
}
Modified: trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java 2012-01-08 23:06:53 UTC (rev 1656)
+++ trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java 2012-01-09 15:37:06 UTC (rev 1657)
@@ -79,12 +79,13 @@
final Collection<User> users) {
for (final User to : users) {
sender.send(NotifyType.email, FormatedString.build(subject),
- helper.groupNotification(groupSender.getShortName(), groupSender.hasLogo(), message), to);
+ helper.groupNotification(groupSender.getShortName(), groupSender.hasLogo(), message), true,
+ true, to);
}
}
public void notifyUser(final User to, final Group group, final String subject, final String message) {
sender.send(NotifyType.email, FormatedString.build(subject),
- helper.groupNotification(group.getShortName(), group.hasLogo(), message), to);
+ helper.groupNotification(group.getShortName(), group.hasLogo(), message), true, true, to);
}
}
Modified: trunk/src/main/java/cc/kune/core/server/rpc/SocialNetworkRPC.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/SocialNetworkRPC.java 2012-01-08 23:06:53 UTC (rev 1656)
+++ trunk/src/main/java/cc/kune/core/server/rpc/SocialNetworkRPC.java 2012-01-09 15:37:06 UTC (rev 1657)
@@ -85,7 +85,8 @@
checkIsNotPersonalGroup(group);
final Group groupToAdd = groupManager.findByShortName(groupToAddShortName);
socialNetworkManager.addGroupToAdmins(userLogged, groupToAdd, group);
- notifyService.notifyGroup(groupToAdd, group, "Accepted as admin", "You are now admin of this group");
+ notifyService.notifyGroup(groupToAdd, group, "Added as administrator",
+ "You are now admin of this group");
return generateResponse(userLogged, group);
}
@@ -100,7 +101,7 @@
checkIsNotPersonalGroup(group);
final Group groupToAdd = groupManager.findByShortName(groupToAddShortName);
socialNetworkManager.addGroupToCollabs(userLogged, groupToAdd, group);
- notifyService.notifyGroup(groupToAdd, group, "Accepted as collaborator",
+ notifyService.notifyGroup(groupToAdd, group, "Added as collaborator",
"You are now a collaborator of this group");
return generateResponse(userLogged, group);
}
Modified: trunk/src/main/java/cc/kune/core/shared/domain/dto/EmailNotificationFrequency.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/domain/dto/EmailNotificationFrequency.java 2012-01-08 23:06:53 UTC (rev 1656)
+++ trunk/src/main/java/cc/kune/core/shared/domain/dto/EmailNotificationFrequency.java 2012-01-09 15:37:06 UTC (rev 1657)
@@ -22,8 +22,8 @@
import com.google.gwt.user.client.rpc.IsSerializable;
public enum EmailNotificationFrequency implements IsSerializable {
- daily, // at most daily,
- hourly, // at most hourly
- immediately, // almost immediately
- no // I don't need email notifications
+ daily, // at most daily, (not used yet)
+ hourly, // at most hourly (not used yet)
+ immediately, // almost immediately (currently used)
+ no // I don't need email notifications (currently used)
}
Modified: trunk/src/main/java/cc/kune/domain/Container.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/Container.java 2012-01-08 23:06:53 UTC (rev 1656)
+++ trunk/src/main/java/cc/kune/domain/Container.java 2012-01-09 15:37:06 UTC (rev 1657)
@@ -99,7 +99,7 @@
private String name;
@IndexedEmbedded(depth = 1, prefix = "owner_")
- @OneToOne
+ @OneToOne(cascade = CascadeType.ALL)
private Group owner;
// Parent/Child pattern:
Modified: trunk/src/main/java/cc/kune/domain/Revision.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/Revision.java 2012-01-08 23:06:53 UTC (rev 1656)
+++ trunk/src/main/java/cc/kune/domain/Revision.java 2012-01-09 15:37:06 UTC (rev 1657)
@@ -48,114 +48,114 @@
@Table(name = "revisions")
@Indexed
public class Revision {
- @Id
- @GeneratedValue
- @DocumentId
- private Long id;
+ // http://www.hibernate.org/112.html
+ @Lob
+ @Column(length = 2147483647)
+ @Field(index = Index.TOKENIZED, store = Store.NO)
+ @FieldBridge(impl = DataFieldBridge.class)
+ char[] body;
- @Field(index = Index.TOKENIZED, store = Store.NO)
- String title;
+ @ContainedIn
+ @ManyToOne(cascade = CascadeType.ALL)
+ @JoinColumn
+ private Content content;
- // http://www.hibernate.org/112.html
- @Lob
- @Column(length = 2147483647)
- @Field(index = Index.TOKENIZED, store = Store.NO)
- @FieldBridge(impl = DataFieldBridge.class)
- char[] body;
+ @Basic(optional = false)
+ private Long createdOn;
- @OneToOne
- private User editor;
+ @OneToOne
+ private User editor;
- @Basic(optional = false)
- private Long createdOn;
+ @Id
+ @GeneratedValue
+ @DocumentId
+ private Long id;
- @Version
- private int version;
+ @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
+ private Revision previous;
- @ContainedIn
- @ManyToOne
- @JoinColumn
- private Content content;
+ @Field(index = Index.TOKENIZED, store = Store.NO)
+ String title;
- @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
- private Revision previous;
+ @Version
+ private int version;
- public Revision() {
- this(null);
- }
+ public Revision() {
+ this(null);
+ }
- public Revision(final Content content) {
- this.content = content;
- createdOn = System.currentTimeMillis();
- }
+ public Revision(final Content content) {
+ this.content = content;
+ createdOn = System.currentTimeMillis();
+ }
- public Long getId() {
- return id;
- }
+ public char[] getBody() {
+ return body;
+ }
- public void setId(final Long id) {
- this.id = id;
- }
+ public Content getContent() {
+ return content;
+ }
- public User getEditor() {
- return editor;
- }
+ public Long getCreatedOn() {
+ return createdOn;
+ }
- public void setEditor(final User editor) {
- this.editor = editor;
- }
+ public User getEditor() {
+ return editor;
+ }
- public Long getCreatedOn() {
- return createdOn;
- }
+ public Long getId() {
+ return id;
+ }
- public void setCreatedOn(final Long modifiedOn) {
- this.createdOn = modifiedOn;
- }
+ public Revision getPrevious() {
+ return previous;
+ }
- public int getVersion() {
- return version;
- }
+ public String getTitle() {
+ return title;
+ }
- public void setVersion(final int version) {
- this.version = version;
- }
+ public int getVersion() {
+ return version;
+ }
- public Revision getPrevious() {
- return previous;
- }
+ @Transient
+ public boolean isLast() {
+ return content.getLastRevision().equals(this);
+ }
- public void setPrevious(final Revision previous) {
- this.previous = previous;
- }
+ public void setBody(final String body) {
+ this.body = body.toCharArray();
+ }
- public Content getContent() {
- return content;
- }
+ public void setContent(final Content content) {
+ this.content = content;
+ }
- public void setContent(final Content content) {
- this.content = content;
- }
+ public void setCreatedOn(final Long modifiedOn) {
+ this.createdOn = modifiedOn;
+ }
- public String getTitle() {
- return title;
- }
+ public void setEditor(final User editor) {
+ this.editor = editor;
+ }
- public void setTitle(final String title) {
- this.title = title;
- }
+ public void setId(final Long id) {
+ this.id = id;
+ }
- public char[] getBody() {
- return body;
- }
+ public void setPrevious(final Revision previous) {
+ this.previous = previous;
+ }
- public void setBody(final String body) {
- this.body = body.toCharArray();
- }
+ public void setTitle(final String title) {
+ this.title = title;
+ }
- @Transient
- public boolean isLast() {
- return content.getLastRevision().equals(this);
- }
+ public void setVersion(final int version) {
+ this.version = version;
+ }
}
Modified: trunk/src/main/java/cc/kune/domain/User.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/User.java 2012-01-08 23:06:53 UTC (rev 1656)
+++ trunk/src/main/java/cc/kune/domain/User.java 2012-01-09 15:37:06 UTC (rev 1657)
@@ -128,7 +128,7 @@
@NotNull
private TimeZone timezone;
- @OneToOne(cascade = CascadeType.REMOVE)
+ @OneToOne(cascade = CascadeType.ALL)
private Group userGroup;
public User() {
Modified: trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java 2012-01-08 23:06:53 UTC (rev 1656)
+++ trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java 2012-01-09 15:37:06 UTC (rev 1657)
@@ -57,6 +57,7 @@
import org.waveprotocol.wave.model.wave.ParticipantId;
import org.waveprotocol.wave.model.waveref.WaveRef;
+import cc.kune.common.client.log.Log;
import cc.kune.common.shared.i18n.I18nTranslationService;
import com.google.gwt.dom.client.Element;
@@ -270,15 +271,27 @@
wave = null;
}
if (three != null) {
+ try {
three.getEditActions().stopEditing();
+ } catch (final Exception e) {
+ Log.info("Some exception stoping editing", e);
+ }
three = null;
}
if (two != null) {
+ try {
two.getConnector().close();
+ } catch (final Exception e) {
+ Log.info("Some exception closing connector", e);
+ }
two = null;
}
if (one != null) {
+ try {
one.getWavePanel().destroy();
+ } catch (final Exception e) {
+ Log.info("Some exception destroying panel", e);
+ }
one = null;
}
closed = true;
Modified: trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java.seg
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java.seg 2012-01-08 23:06:53 UTC (rev 1656)
+++ trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java.seg 2012-01-09 15:37:06 UTC (rev 1657)
@@ -57,6 +57,7 @@
import org.waveprotocol.wave.model.wave.ParticipantId;
import org.waveprotocol.wave.model.waveref.WaveRef;
+import cc.kune.common.client.log.Log;
import cc.kune.common.shared.i18n.I18nTranslationService;
import com.google.gwt.dom.client.Element;
@@ -270,15 +271,27 @@
wave = null;
}
if (three != null) {
+ try {
three.getEditActions().stopEditing();
+ } catch (final Exception e) {
+ Log.info("Some exception stoping editing", e);
+ }
three = null;
}
if (two != null) {
+ try {
two.getConnector().close();
+ } catch (final Exception e) {
+ Log.info("Some exception closing connector", e);
+ }
two = null;
}
if (one != null) {
+ try {
one.getWavePanel().destroy();
+ } catch (final Exception e) {
+ Log.info("Some exception destroying panel", e);
+ }
one = null;
}
closed = true;
Modified: trunk/src/main/java/cc/kune/wave/server/kspecific/WaveEmailNotifier.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/kspecific/WaveEmailNotifier.java 2012-01-08 23:06:53 UTC (rev 1656)
+++ trunk/src/main/java/cc/kune/wave/server/kspecific/WaveEmailNotifier.java 2012-01-09 15:37:06 UTC (rev 1657)
@@ -23,7 +23,6 @@
import cc.kune.core.server.mail.FormatedString;
import cc.kune.core.server.notifier.NotifySender;
import cc.kune.core.server.notifier.NotifyType;
-import cc.kune.core.server.notifier.UsersOnline;
import cc.kune.core.server.properties.KuneBasicProperties;
import cc.kune.domain.User;
import cc.kune.domain.finders.UserFinder;
@@ -38,8 +37,8 @@
@Inject
public WaveEmailNotifier(final WaveBus waveBus, final NotifySender notifyService,
- final UsersOnline usersOnline, final KuneBasicProperties basicProperties,
- final ParticipantUtils partUtils, final UserFinder userFinder) {
+ final KuneBasicProperties basicProperties, final ParticipantUtils partUtils,
+ final UserFinder userFinder) {
waveBus.subscribe(new Subscriber() {
@Override
public void waveletCommitted(final WaveletName waveletName, final HashedVersion version) {
@@ -62,15 +61,13 @@
final String address = participant.getAddress();
if (partUtils.isLocal(address)) {
final String userName = partUtils.getAddressName(address);
- // FIXME only for testing
try {
final User user = userFinder.findByShortName(userName);
- if (!usersOnline.isLogged(userName)) {
- notifyService.send(NotifyType.email, FormatedString.build("You have a new message"),
- body, true, user);
- notifyService.send(NotifyType.chat, FormatedString.build("New message"), body, true,
- user);
- }
+ notifyService.send(NotifyType.email, FormatedString.build("You have a new message"),
+ body, true, false, user);
+ // notifyService.send(NotifyType.chat,
+ // FormatedString.build("New message"), body, true,
+ // user);
} catch (final NoResultException e) {
// Seems is not a local user
}
Modified: trunk/src/main/resources/assembly.xml
===================================================================
--- trunk/src/main/resources/assembly.xml 2012-01-08 23:06:53 UTC (rev 1656)
+++ trunk/src/main/resources/assembly.xml 2012-01-09 15:37:06 UTC (rev 1657)
@@ -16,11 +16,11 @@
</dependencySet>
</dependencySets>
<fileSets>
- <fileSet>
+ <!-- <fileSet> -->
<!-- ${module.groupId}-${module.artifactId}-${module.version}.${module.extension} -->
- <directory>target/kune-0.1.0-SNAPSHOT/ws/</directory>
+ <!-- <directory>target/kune-0.1.0-SNAPSHOT/ws/</directory>
<outputDirectory>META-INF/resources/ws</outputDirectory>
- </fileSet>
+ </fileSet>-->
<fileSet>
<directory>${project.basedir}/src/main/webapp/</directory>
<outputDirectory>META-INF/resources/webapp</outputDirectory>
1
0
Author: vjrj_
Date: 2012-01-09 00:06:53 +0100 (Mon, 09 Jan 2012)
New Revision: 1656
Added:
trunk/src/main/java/cc/kune/core/client/actions/RolComparator.java
trunk/src/main/java/cc/kune/core/client/contacts/
trunk/src/main/java/cc/kune/core/client/contacts/SimpleContactManager.java
trunk/src/main/java/cc/kune/core/client/events/AccessRightsChangedEvent.java
trunk/src/main/java/cc/kune/core/client/events/AppStartEvent.java
trunk/src/main/java/cc/kune/core/client/events/AppStopEvent.java
trunk/src/main/java/cc/kune/core/client/events/GroupChangedEvent.java
trunk/src/main/java/cc/kune/core/client/events/SocialNetworkChangedEvent.java
trunk/src/main/java/cc/kune/core/client/events/StateChangedEvent.java
trunk/src/main/java/cc/kune/core/client/events/ToolChangedEvent.java
trunk/src/main/java/cc/kune/core/client/events/UserSignInEvent.java
trunk/src/main/java/cc/kune/core/client/events/UserSignInOrSignOutEvent.java
trunk/src/main/java/cc/kune/core/client/events/UserSignOutEvent.java
trunk/src/main/java/cc/kune/core/client/sn/actions/GroupSNModerationSubMenu.java
trunk/src/main/java/cc/kune/core/client/sn/actions/GroupSNOptionsMenu.java
trunk/src/main/java/cc/kune/core/client/sn/actions/GroupSNVisibilitySubMenu.java
trunk/src/main/java/cc/kune/core/client/state/impl/
trunk/src/main/java/cc/kune/core/client/state/impl/ContentCacheDefault.java
trunk/src/main/java/cc/kune/core/client/state/impl/HistoryWrapperDefault.java
trunk/src/main/java/cc/kune/core/client/state/impl/SessionDefault.java
trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java
trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceMultiLang.java
trunk/src/main/java/cc/kune/core/server/i18n/impl/
trunk/src/main/java/cc/kune/core/server/i18n/impl/I18nTranslationServiceDefault.java
trunk/src/main/java/cc/kune/core/server/manager/SearchResult.java
trunk/src/main/java/cc/kune/core/server/manager/impl/TagUserContentManagerDefault.java
trunk/src/main/java/cc/kune/core/server/rack/RackServletFilter.java
trunk/src/main/java/cc/kune/core/server/rack/utils/
trunk/src/main/java/cc/kune/core/server/rack/utils/RackHelper.java
trunk/src/main/java/cc/kune/gspace/client/armor/
trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceArmor.java
trunk/src/main/java/cc/kune/gspace/client/armor/impl/
trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.java
trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.ui.xml
trunk/src/main/java/cc/kune/gspace/client/armor/resources/
trunk/src/main/java/cc/kune/gspace/client/events/
trunk/src/main/java/cc/kune/gspace/client/events/CurrentEntityChangedEvent.java
trunk/src/main/java/cc/kune/gspace/client/viewers/items/
trunk/src/main/java/cc/kune/gspace/client/viewers/items/FolderItemDescriptor.java
trunk/src/main/java/cc/kune/gspace/client/viewers/items/FolderItemWidget.java
trunk/src/main/java/cc/kune/gspace/client/viewers/items/FolderItemWidget.ui.xml
trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java.seg
trunk/src/main/java/cc/kune/wave/client/WaveClientClearEvent.java
trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java
trunk/src/main/java/cc/kune/wave/client/resources/
trunk/src/main/java/cc/kune/wave/client/resources/KuneConversation.css
trunk/src/main/java/cc/kune/wave/client/resources/KuneWaveResources.java
trunk/src/main/java/cc/kune/wave/client/resources/toolbar_empty.png
trunk/src/main/java/cc/kune/wave/server/kspecific/
trunk/src/main/java/cc/kune/wave/server/kspecific/KuneAgent.java
trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveService.java
trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveServiceDefault.java
trunk/src/main/java/cc/kune/wave/server/kspecific/WaveEmailNotifier.java
trunk/src/test/java/cc/kune/core/client/state/impl/
trunk/src/test/java/cc/kune/core/client/state/impl/EventBusTester.java
trunk/src/test/java/cc/kune/core/client/state/impl/StateManagerDefaultTest.java
trunk/src/test/java/cc/kune/core/client/state/impl/StateTokenTest.java
trunk/src/test/java/cc/kune/core/client/state/impl/TokenMatcherTest.java
Removed:
trunk/src/main/java/cc/kune/core/client/init/AppStartEvent.java
trunk/src/main/java/cc/kune/core/client/init/AppStopEvent.java
trunk/src/main/java/cc/kune/core/client/sn/SimpleContactManager.java
trunk/src/main/java/cc/kune/core/client/sn/actions/RolComparator.java
trunk/src/main/java/cc/kune/core/client/state/AccessRightsChangedEvent.java
trunk/src/main/java/cc/kune/core/client/state/ContentCacheDefault.java
trunk/src/main/java/cc/kune/core/client/state/GroupChangedEvent.java
trunk/src/main/java/cc/kune/core/client/state/HistoryWrapperDefault.java
trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java
trunk/src/main/java/cc/kune/core/client/state/SocialNetworkChangedEvent.java
trunk/src/main/java/cc/kune/core/client/state/StateChangedEvent.java
trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java
trunk/src/main/java/cc/kune/core/client/state/ToolChangedEvent.java
trunk/src/main/java/cc/kune/core/client/state/UserSignInEvent.java
trunk/src/main/java/cc/kune/core/client/state/UserSignInOrSignOutEvent.java
trunk/src/main/java/cc/kune/core/client/state/UserSignOutEvent.java
trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceDefault.java
trunk/src/main/java/cc/kune/core/server/manager/TagUserContentManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/SearchResult.java
trunk/src/main/java/cc/kune/core/server/rack/RackHelper.java
trunk/src/main/java/cc/kune/core/server/rack/RackServletFilter.java
trunk/src/main/java/cc/kune/gspace/client/GSpaceArmor.java
trunk/src/main/java/cc/kune/gspace/client/GSpaceArmorImpl.java
trunk/src/main/java/cc/kune/gspace/client/GSpaceArmorImpl.ui.xml
trunk/src/main/java/cc/kune/gspace/client/options/logo/CurrentEntityChangedEvent.java
trunk/src/main/java/cc/kune/gspace/client/resources/
trunk/src/main/java/cc/kune/gspace/client/viewers/FolderItemDescriptor.java
trunk/src/main/java/cc/kune/gspace/client/viewers/FolderItemWidget.java
trunk/src/main/java/cc/kune/gspace/client/viewers/FolderItemWidget.ui.xml
trunk/src/main/java/cc/kune/wave/client/KuneConversation.css
trunk/src/main/java/cc/kune/wave/client/KuneWaveResources.java
trunk/src/main/java/cc/kune/wave/client/WaveClientClearEvent.java
trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java
trunk/src/main/java/cc/kune/wave/client/toolbar_empty.png
trunk/src/main/java/cc/kune/wave/server/KuneAgent.java
trunk/src/main/java/cc/kune/wave/server/KuneWaveService.java
trunk/src/main/java/cc/kune/wave/server/KuneWaveServiceDefault.java
trunk/src/main/java/cc/kune/wave/server/WaveEmailNotifier.java
trunk/src/test/java/cc/kune/core/client/state/EventBusTester.java
trunk/src/test/java/cc/kune/core/client/state/StateManagerDefaultTest.java
trunk/src/test/java/cc/kune/core/client/state/StateTokenTest.java
trunk/src/test/java/cc/kune/core/client/state/TokenMatcherTest.java
Modified:
trunk/.classpath
trunk/pom.xml
trunk/src/main/java/cc/kune/chat/client/ChatClient.java
trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java
trunk/src/main/java/cc/kune/chat/client/ChatGinModule.java
trunk/src/main/java/cc/kune/chat/client/ChatParts.java
trunk/src/main/java/cc/kune/chat/client/actions/AddAsBuddieHeaderButton.java
trunk/src/main/java/cc/kune/chat/client/actions/OpenGroupPublicChatRoomAction.java
trunk/src/main/java/cc/kune/chat/client/actions/StartAssemblyWithMembers.java
trunk/src/main/java/cc/kune/client/OnAppStartFactory.java
trunk/src/main/java/cc/kune/core/client/CoreGinModule.java
trunk/src/main/java/cc/kune/core/client/CoreParts.java
trunk/src/main/java/cc/kune/core/client/actions/RolActionAutoUpdated.java
trunk/src/main/java/cc/kune/core/client/auth/AnonUsersManager.java
trunk/src/main/java/cc/kune/core/client/auth/WaveClientSimpleAuthenticator.java
trunk/src/main/java/cc/kune/core/client/cnt/AbstractContentPanel.java
trunk/src/main/java/cc/kune/core/client/cnt/ActionContentToolbarImpl.java
trunk/src/main/java/cc/kune/core/client/cnt/FoldableContentPanel.java
trunk/src/main/java/cc/kune/core/client/cnt/FoldableContentPresenter.java
trunk/src/main/java/cc/kune/core/client/dnd/FolderViewerDropController.java
trunk/src/main/java/cc/kune/core/client/dnd/KuneDragController.java
trunk/src/main/java/cc/kune/core/client/dnd/NotImplementedDropManager.java
trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java
trunk/src/main/java/cc/kune/core/client/i18n/KuneConstants.properties
trunk/src/main/java/cc/kune/core/client/i18n/KuneConstants_fr.properties
trunk/src/main/java/cc/kune/core/client/init/AppStarterDefault.java
trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java
trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPanel.java
trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java
trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignInLink.java
trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java
trunk/src/main/java/cc/kune/core/client/sitebar/logo/SiteLogo.java
trunk/src/main/java/cc/kune/core/client/sitebar/search/SitebarSearchPanel.java
trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPanel.java
trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPanel.ui.xml
trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java
trunk/src/main/java/cc/kune/core/client/sn/AbstractSNPanel.java
trunk/src/main/java/cc/kune/core/client/sn/GroupSNPanel.java
trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java
trunk/src/main/java/cc/kune/core/client/sn/UserSNPanel.java
trunk/src/main/java/cc/kune/core/client/sn/UserSNPresenter.java
trunk/src/main/java/cc/kune/core/client/sn/actions/AddNewBuddiesAction.java
trunk/src/main/java/cc/kune/core/client/sn/actions/SessionAction.java
trunk/src/main/java/cc/kune/core/client/sn/actions/WriteToAdmins.java
trunk/src/main/java/cc/kune/core/client/sn/actions/WriteToBuddyHeaderButton.java
trunk/src/main/java/cc/kune/core/client/sn/actions/WriteToMembers.java
trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsBuddieCondition.java
trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsNotBuddieCondition.java
trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupSNConfActions.java
trunk/src/main/java/cc/kune/core/client/sn/actions/registry/UserSNConfActions.java
trunk/src/main/java/cc/kune/core/client/state/AccessRightsClientManager.java
trunk/src/main/java/cc/kune/core/client/state/Session.java
trunk/src/main/java/cc/kune/core/client/state/StateManager.java
trunk/src/main/java/cc/kune/core/client/ws/CoreViewImpl.java
trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java
trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPresenter.java
trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java
trunk/src/main/java/cc/kune/core/server/content/ContainerManager.java
trunk/src/main/java/cc/kune/core/server/content/ContainerManagerDefault.java
trunk/src/main/java/cc/kune/core/server/content/ContentManager.java
trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java
trunk/src/main/java/cc/kune/core/server/content/CreationServiceDefault.java
trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java
trunk/src/main/java/cc/kune/core/server/manager/GroupManager.java
trunk/src/main/java/cc/kune/core/server/manager/Manager.java
trunk/src/main/java/cc/kune/core/server/manager/UserManager.java
trunk/src/main/java/cc/kune/core/server/manager/impl/DefaultManager.java
trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/KuneWaveManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
trunk/src/main/java/cc/kune/core/server/mapper/DozerMapper.java
trunk/src/main/java/cc/kune/core/server/mapper/Mapper.java
trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java
trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java
trunk/src/main/java/cc/kune/core/server/rack/filters/AbstractInjectedFilter.java
trunk/src/main/java/cc/kune/core/server/rack/filters/ForwardFilter.java
trunk/src/main/java/cc/kune/core/server/rack/filters/LogFilter.java
trunk/src/main/java/cc/kune/core/server/rack/filters/gwts/GWTServiceFilter.java
trunk/src/main/java/cc/kune/core/server/rack/filters/rest/RESTServiceFilter.java
trunk/src/main/java/cc/kune/core/server/rack/filters/servlet/ServletServiceFilter.java
trunk/src/main/java/cc/kune/core/server/rest/ContentJSONService.java
trunk/src/main/java/cc/kune/core/server/rest/GroupJSONService.java
trunk/src/main/java/cc/kune/core/server/rest/UserJSONService.java
trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java
trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java
trunk/src/main/java/cc/kune/gspace/client/GSpaceArmorEntryPoint.java
trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java
trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java
trunk/src/main/java/cc/kune/gspace/client/actions/AbstractEditorsMenu.java
trunk/src/main/java/cc/kune/gspace/client/actions/AbstractFoldableToolActions.java
trunk/src/main/java/cc/kune/gspace/client/actions/GiveUsFeedbackBtn.java
trunk/src/main/java/cc/kune/gspace/client/actions/GotoTokenAction.java
trunk/src/main/java/cc/kune/gspace/client/armor/resources/GSpaceArmorResources.java
trunk/src/main/java/cc/kune/gspace/client/options/GroupOptionsPresenter.java
trunk/src/main/java/cc/kune/gspace/client/options/UserOptionsPresenter.java
trunk/src/main/java/cc/kune/gspace/client/options/general/EntityOptGeneralPresenter.java
trunk/src/main/java/cc/kune/gspace/client/options/general/GroupOptGeneralPresenter.java
trunk/src/main/java/cc/kune/gspace/client/options/general/UserOptGeneralPresenter.java
trunk/src/main/java/cc/kune/gspace/client/options/license/GroupOptDefLicensePresenter.java
trunk/src/main/java/cc/kune/gspace/client/options/license/UserOptDefLicensePresenter.java
trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPresenter.java
trunk/src/main/java/cc/kune/gspace/client/options/logo/GroupOptLogoPresenter.java
trunk/src/main/java/cc/kune/gspace/client/options/logo/UserOptLogoPresenter.java
trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePresenter.java
trunk/src/main/java/cc/kune/gspace/client/options/tools/GroupOptToolsPresenter.java
trunk/src/main/java/cc/kune/gspace/client/options/tools/UserOptToolsPresenter.java
trunk/src/main/java/cc/kune/gspace/client/style/GSpaceBackManagerImpl.java
trunk/src/main/java/cc/kune/gspace/client/tags/TagsSummaryPanel.java
trunk/src/main/java/cc/kune/gspace/client/tags/TagsSummaryPresenter.java
trunk/src/main/java/cc/kune/gspace/client/themes/GSpaceThemeManager.java
trunk/src/main/java/cc/kune/gspace/client/themes/GSpaceThemeSelectorPresenter.java
trunk/src/main/java/cc/kune/gspace/client/tool/ContentViewerSelector.java
trunk/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorPanel.java
trunk/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorPresenter.java
trunk/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePanel.java
trunk/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePresenter.java
trunk/src/main/java/cc/kune/gspace/client/viewers/AbstractFolderViewerPanel.java
trunk/src/main/java/cc/kune/gspace/client/viewers/AbstractFolderViewerView.java
trunk/src/main/java/cc/kune/gspace/client/viewers/ContentTitleWidget.java
trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.java
trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java
trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsFlowPanel.java
trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsTablePanel.java
trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerUtils.java
trunk/src/main/java/cc/kune/gspace/client/viewers/NoHomePageViewer.java
trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.java
trunk/src/main/java/cc/kune/hspace/client/HSpaceParts.java
trunk/src/main/java/cc/kune/hspace/client/HSpacePresenter.java
trunk/src/main/java/cc/kune/lists/server/ListsServerTool.java
trunk/src/main/java/cc/kune/pspace/client/PSpaceInDevelopment.java
trunk/src/main/java/cc/kune/pspace/client/PSpacePanel.java
trunk/src/main/java/cc/kune/pspace/client/PSpaceParts.java
trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java
trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java
trunk/src/main/java/cc/kune/wave/client/WaveClientManager.java
trunk/src/main/java/cc/kune/wave/client/WaveParts.java
trunk/src/main/java/cc/kune/wave/client/inboxcount/InboxCountPresenter.java
trunk/src/main/java/cc/kune/wave/server/CustomUserRegistrationServlet.java
trunk/src/main/java/org/waveprotocol/wave/client/wavepanel/view/dom/full/KuneWavePanelResourceLoader.java
trunk/src/test/java/cc/kune/core/server/manager/ContentManagerDefaultTest.java
trunk/src/test/java/cc/kune/core/server/manager/GroupManagerDefaultTest.java
trunk/src/test/java/cc/kune/core/server/manager/TagUserContentTest.java
trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java
trunk/src/test/java/cc/kune/gspace/client/tags/TagsSummaryPresenterTest.java
trunk/src/test/java/cc/kune/gspace/client/tool/selector/ToolSelectorPresenterTest.java
trunk/src/test/java/cc/kune/wave/server/KuneAgentTest.java
trunk/src/test/java/cc/kune/wave/server/KuneWaveServiceDefaultTest.java
Log:
Refactorization and Wave update
Modified: trunk/.classpath
===================================================================
--- trunk/.classpath 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/.classpath 2012-01-08 23:06:53 UTC (rev 1656)
@@ -13,19 +13,19 @@
<classpathentry kind="var" path="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" sourcepath="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar"/>
<classpathentry kind="var" path="M2_REPO/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar" sourcepath="M2_REPO/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/box/0.3.8/box-0.3.8.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/box-src/0.3.8/box-src-0.3.8.jar" sourcepath="M2_REPO/org/waveprotocol/box-src/0.3.8/box-src-0.3.8-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/box/0.3.9/box-0.3.9.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/box-src/0.3.9/box-src-0.3.9.jar" sourcepath="M2_REPO/org/waveprotocol/box-src/0.3.9/box-src-0.3.9-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar"/>
<classpathentry kind="var" path="M2_REPO/c3p0/c3p0/0.9.1/c3p0-0.9.1.jar" sourcepath="M2_REPO/c3p0/c3p0/0.9.1/c3p0-0.9.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar" sourcepath="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client/0.3.8/client-0.3.8.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-common/0.3.8/client-common-0.3.8.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-common-src/0.3.8/client-common-src-0.3.8.jar" sourcepath="M2_REPO/org/waveprotocol/client-common-src/0.3.8/client-common-src-0.3.8-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-scheduler-src/0.3.8/client-scheduler-src-0.3.8.jar" sourcepath="M2_REPO/org/waveprotocol/client-scheduler-src/0.3.8/client-scheduler-src-0.3.8-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-src/0.3.8/client-src-0.3.8.jar" sourcepath="M2_REPO/org/waveprotocol/client-src/0.3.8/client-src-0.3.8-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client/0.3.9/client-0.3.9.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-common/0.3.9/client-common-0.3.9.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-common-src/0.3.9/client-common-src-0.3.9.jar" sourcepath="M2_REPO/org/waveprotocol/client-common-src/0.3.9/client-common-src-0.3.9-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-scheduler-src/0.3.9/client-scheduler-src-0.3.9.jar" sourcepath="M2_REPO/org/waveprotocol/client-scheduler-src/0.3.9/client-scheduler-src-0.3.9-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/client-src/0.3.9/client-src-0.3.9.jar" sourcepath="M2_REPO/org/waveprotocol/client-src/0.3.9/client-src-0.3.9-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/cobogw/gwt/cobogw/1.3.1/cobogw-1.3.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/common-src/0.3.8/common-src-0.3.8.jar" sourcepath="M2_REPO/org/waveprotocol/common-src/0.3.8/common-src-0.3.8-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/common-src/0.3.9/common-src-0.3.9.jar" sourcepath="M2_REPO/org/waveprotocol/common-src/0.3.9/common-src-0.3.9-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar" sourcepath="M2_REPO/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-cli/commons-cli/1.2/commons-cli-1.2.jar" sourcepath="M2_REPO/commons-cli/commons-cli/1.2/commons-cli-1.2-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-codec/commons-codec/1.4/commons-codec-1.4.jar" sourcepath="M2_REPO/commons-codec/commons-codec/1.4/commons-codec-1.4-sources.jar"/>
@@ -34,8 +34,8 @@
<classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar" sourcepath="M2_REPO/commons-io/commons-io/1.3.1/commons-io-1.3.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.5/commons-lang-2.5.jar" sourcepath="M2_REPO/commons-lang/commons-lang/2.5/commons-lang-2.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/communication-src/0.3.8/communication-src-0.3.8.jar" sourcepath="M2_REPO/org/waveprotocol/communication-src/0.3.8/communication-src-0.3.8-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/concurrencycontrol-src/0.3.8/concurrencycontrol-src-0.3.8.jar" sourcepath="M2_REPO/org/waveprotocol/concurrencycontrol-src/0.3.8/concurrencycontrol-src-0.3.8-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/communication-src/0.3.9/communication-src-0.3.9.jar" sourcepath="M2_REPO/org/waveprotocol/communication-src/0.3.9/communication-src-0.3.9-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/concurrencycontrol-src/0.3.9/concurrencycontrol-src-0.3.9.jar" sourcepath="M2_REPO/org/waveprotocol/concurrencycontrol-src/0.3.9/concurrencycontrol-src-0.3.9-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/net/sourceforge/cssparser/cssparser/0.9.5/cssparser-0.9.5.jar" sourcepath="M2_REPO/net/sourceforge/cssparser/cssparser/0.9.5/cssparser-0.9.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar" sourcepath="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/net/sf/dozer/dozer/4.0/dozer-4.0.jar" sourcepath="M2_REPO/net/sf/dozer/dozer/4.0/dozer-4.0-sources.jar"/>
@@ -57,7 +57,7 @@
<classpathentry kind="var" path="M2_REPO/com/allen_sauer/gwt/log/gwt-log/gwt-log/3.0.1/gwt-log-3.0.1.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/gwt/gwt-servlet/2.1.1/gwt-servlet-2.1.1.jar" sourcepath="M2_REPO/com/google/gwt/gwt-servlet/2.1.1/gwt-servlet-2.1.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/gwt/gwt-user/2.1.1/gwt-user-2.1.1.jar" sourcepath="M2_REPO/com/google/gwt/gwt-user/2.1.1/gwt-user-2.1.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/gwt-util-src/0.3.8/gwt-util-src-0.3.8.jar" sourcepath="M2_REPO/org/waveprotocol/gwt-util-src/0.3.8/gwt-util-src-0.3.8-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/gwt-util-src/0.3.9/gwt-util-src-0.3.9.jar" sourcepath="M2_REPO/org/waveprotocol/gwt-util-src/0.3.9/gwt-util-src-0.3.9-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/allen_sauer/gwt/voices/gwt-voices/gwt-voices/2.0.0/gwt-voices-2.0.0.jar"/>
<classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-all/0.5/gwtp-all-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-all/0.5/gwtp-all-0.5-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-clients-common/0.5/gwtp-clients-common-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-clients-common/0.5/gwtp-clients-common-0.5-sources.jar"/>
@@ -114,16 +114,16 @@
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-profile/2.0/maven-profile-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-profile/2.0/maven-profile-2.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-project/2.0/maven-project-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-project/2.0/maven-project-2.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.jar" sourcepath="M2_REPO/org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/media-src/0.3.8/media-src-0.3.8.jar" sourcepath="M2_REPO/org/waveprotocol/media-src/0.3.8/media-src-0.3.8-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/media-src/0.3.9/media-src-0.3.9.jar" sourcepath="M2_REPO/org/waveprotocol/media-src/0.3.9/media-src-0.3.9-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.jar" sourcepath="M2_REPO/org/mockito/mockito-core/1.8.5/mockito-core-1.8.5-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/model-src/0.3.8/model-src-0.3.8.jar" sourcepath="M2_REPO/org/waveprotocol/model-src/0.3.8/model-src-0.3.8-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/model-src/0.3.9/model-src-0.3.9.jar" sourcepath="M2_REPO/org/waveprotocol/model-src/0.3.9/model-src-0.3.9-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.16/mvel2-2.0.16.jar" sourcepath="M2_REPO/org/mvel/mvel2/2.0.16/mvel2-2.0.16-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/mysql/mysql-connector-java/5.1.13/mysql-connector-java-5.1.13.jar"/>
<classpathentry kind="var" path="M2_REPO/net/sourceforge/nekohtml/nekohtml/1.9.15/nekohtml-1.9.15.jar" sourcepath="M2_REPO/net/sourceforge/nekohtml/nekohtml/1.9.15/nekohtml-1.9.15-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar" sourcepath="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.jar" sourcepath="M2_REPO/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar" sourcepath="M2_REPO/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/proto-msg/0.3.8/proto-msg-0.3.8.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/proto-msg/0.3.9/proto-msg-0.3.9.jar"/>
<classpathentry kind="var" path="M2_REPO/org/quartz-scheduler/quartz/2.1.0/quartz-2.1.0.jar" sourcepath="M2_REPO/org/quartz-scheduler/quartz/2.1.0/quartz-2.1.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/w3c/css/sac/1.3/sac-1.3.jar" sourcepath="M2_REPO/org/w3c/css/sac/1.3/sac-1.3-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/seleniumhq/selenium/selenium-android-driver/2.12.0/selenium-android-driver-2.12.0.jar" sourcepath="M2_REPO/org/seleniumhq/selenium/selenium-android-driver/2.12.0/selenium-android-driver-2.12.0-sources.jar"/>
@@ -148,9 +148,9 @@
<classpathentry kind="var" path="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar"/>
<classpathentry kind="var" path="M2_REPO/org/testng/testng/6.2.1/testng-6.2.1.jar" sourcepath="M2_REPO/org/testng/testng/6.2.1/testng-6.2.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/tigase/tigase-xmltools/3.3.5/tigase-xmltools-3.3.5.jar" sourcepath="M2_REPO/tigase/tigase-xmltools/3.3.5/tigase-xmltools-3.3.5-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/util-src/0.3.8/util-src-0.3.8.jar" sourcepath="M2_REPO/org/waveprotocol/util-src/0.3.8/util-src-0.3.8-sources.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/util-src/0.3.9/util-src-0.3.9.jar" sourcepath="M2_REPO/org/waveprotocol/util-src/0.3.9/util-src-0.3.9-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5.jar" sourcepath="M2_REPO/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/waveprotocol/waveinabox-server-0.3/0.3.8/waveinabox-server-0.3-0.3.8.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/waveprotocol/waveinabox-server-0.3/0.3.9/waveinabox-server-0.3-0.3.9.jar"/>
<classpathentry kind="var" path="M2_REPO/xalan/xalan/2.7.1/xalan-2.7.1.jar" sourcepath="M2_REPO/xalan/xalan/2.7.1/xalan-2.7.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar"/>
<classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar" sourcepath="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2-sources.jar"/>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/pom.xml 2012-01-08 23:06:53 UTC (rev 1656)
@@ -19,7 +19,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<slf4j.version>1.6.1</slf4j.version>
<openjpa.version>2.0.1</openjpa.version>
- <wiab.version>0.3.8</wiab.version>
+ <wiab.version>0.3.9</wiab.version>
<skipTests>true</skipTests>
</properties>
<repositories>
Modified: trunk/src/main/java/cc/kune/chat/client/ChatClient.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatClient.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/chat/client/ChatClient.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -19,7 +19,7 @@
*/
package cc.kune.chat.client;
-import cc.kune.core.client.sn.SimpleContactManager;
+import cc.kune.core.client.contacts.SimpleContactManager;
import com.calclab.emite.core.client.xmpp.stanzas.XmppURI;
import com.calclab.emite.xep.muc.client.Room;
Modified: trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -40,18 +40,18 @@
import cc.kune.common.client.utils.WindowUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.common.shared.utils.TextUtils;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.AppStopEvent;
import cc.kune.core.client.events.AvatarChangedEvent;
import cc.kune.core.client.events.NewUserRegisteredEvent;
-import cc.kune.core.client.init.AppStartEvent;
-import cc.kune.core.client.init.AppStopEvent;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignOutEvent;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
+import cc.kune.core.client.events.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.sitebar.SitebarActions;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.UserSignInEvent;
-import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
-import cc.kune.core.client.state.UserSignOutEvent;
-import cc.kune.core.client.state.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.shared.dto.UserInfoDTO;
import com.calclab.emite.core.client.xmpp.session.XmppSession;
Modified: trunk/src/main/java/cc/kune/chat/client/ChatGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatGinModule.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/chat/client/ChatGinModule.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -25,7 +25,7 @@
import cc.kune.core.client.ExtendedGinModule;
import cc.kune.core.client.avatar.MediumAvatarDecorator;
import cc.kune.core.client.avatar.SmallAvatarDecorator;
-import cc.kune.core.client.sn.SimpleContactManager;
+import cc.kune.core.client.contacts.SimpleContactManager;
public class ChatGinModule extends ExtendedGinModule {
/*
Modified: trunk/src/main/java/cc/kune/chat/client/ChatParts.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatParts.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/chat/client/ChatParts.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -34,8 +34,8 @@
import cc.kune.common.client.actions.PropertyChangeListener;
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.common.shared.i18n.I18nTranslationService;
-import cc.kune.core.client.init.AppStartEvent;
-import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
import cc.kune.core.client.sn.GroupSNPresenter;
import cc.kune.core.client.sn.actions.conditions.IsBuddieCondition;
import cc.kune.core.client.sn.actions.conditions.IsCurrentStateAGroupCondition;
Modified: trunk/src/main/java/cc/kune/chat/client/actions/AddAsBuddieHeaderButton.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/AddAsBuddieHeaderButton.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/chat/client/actions/AddAsBuddieHeaderButton.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -29,11 +29,11 @@
import cc.kune.common.client.actions.PropertyChangeListener;
import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.core.client.events.StateChangedEvent;
+import cc.kune.core.client.events.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.resources.CoreMessages;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.StateChangedEvent;
-import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.client.ws.entheader.EntityHeader;
import cc.kune.core.shared.dto.StateAbstractDTO;
Modified: trunk/src/main/java/cc/kune/chat/client/actions/OpenGroupPublicChatRoomAction.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/OpenGroupPublicChatRoomAction.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/chat/client/actions/OpenGroupPublicChatRoomAction.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -29,10 +29,10 @@
import cc.kune.common.client.actions.ActionEvent;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.actions.RolActionAutoUpdated;
+import cc.kune.core.client.events.StateChangedEvent;
+import cc.kune.core.client.events.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.state.AccessRightsClientManager;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.StateChangedEvent;
-import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.dto.AccessRolDTO;
import cc.kune.core.shared.dto.GroupDTO;
Modified: trunk/src/main/java/cc/kune/chat/client/actions/StartAssemblyWithMembers.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/StartAssemblyWithMembers.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/chat/client/actions/StartAssemblyWithMembers.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -21,7 +21,7 @@
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.common.shared.i18n.I18nTranslationService;
-import cc.kune.core.client.sn.actions.registry.GroupSNConfActions;
+import cc.kune.core.client.sn.actions.GroupSNOptionsMenu;
import com.google.inject.Inject;
@@ -29,12 +29,12 @@
@Inject
public StartAssemblyWithMembers(final StartAssemblyWithMembersAction action,
- final I18nTranslationService i18n) {
+ final I18nTranslationService i18n, final GroupSNOptionsMenu optionsMenu) {
super(action);
action.setInviteMembers(true);
withText(i18n.t("Start a public assembly with members")).withToolTip(
i18n.t("Enter to this group public chat room and invite members"));
- setParent(GroupSNConfActions.OPTIONS_MENU);
+ setParent(optionsMenu);
setPosition(0);
}
}
Modified: trunk/src/main/java/cc/kune/client/OnAppStartFactory.java
===================================================================
--- trunk/src/main/java/cc/kune/client/OnAppStartFactory.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/client/OnAppStartFactory.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -20,9 +20,9 @@
package cc.kune.client;
import cc.kune.core.client.auth.SignIn;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
import cc.kune.core.client.groups.newgroup.NewGroup;
-import cc.kune.core.client.init.AppStartEvent;
-import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.SiteTokenListeners;
Modified: trunk/src/main/java/cc/kune/core/client/CoreGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -93,17 +93,17 @@
import cc.kune.core.client.sn.actions.registry.UserSNMenuItemsRegistry;
import cc.kune.core.client.state.AccessRightsClientManager;
import cc.kune.core.client.state.ContentCache;
-import cc.kune.core.client.state.ContentCacheDefault;
import cc.kune.core.client.state.HistoryWrapper;
-import cc.kune.core.client.state.HistoryWrapperDefault;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.SessionDefault;
import cc.kune.core.client.state.SessionExpirationManager;
import cc.kune.core.client.state.SiteTokenListeners;
import cc.kune.core.client.state.SiteTokens;
import cc.kune.core.client.state.StateManager;
-import cc.kune.core.client.state.StateManagerDefault;
import cc.kune.core.client.state.TokenMatcher;
+import cc.kune.core.client.state.impl.ContentCacheDefault;
+import cc.kune.core.client.state.impl.HistoryWrapperDefault;
+import cc.kune.core.client.state.impl.SessionDefault;
+import cc.kune.core.client.state.impl.StateManagerDefault;
import cc.kune.core.client.sub.SubtitlesManager;
import cc.kune.core.client.sub.SubtitlesWidget;
import cc.kune.core.client.ws.CorePresenter;
Modified: trunk/src/main/java/cc/kune/core/client/CoreParts.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/CoreParts.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/CoreParts.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -22,9 +22,9 @@
import cc.kune.core.client.auth.AnonUsersManager;
import cc.kune.core.client.auth.Register;
import cc.kune.core.client.auth.SignIn;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
import cc.kune.core.client.groups.newgroup.NewGroup;
-import cc.kune.core.client.init.AppStartEvent;
-import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
import cc.kune.core.client.sitebar.AboutKuneDialog;
import cc.kune.core.client.sitebar.SiteUserOptionsPresenter;
import cc.kune.core.client.sitebar.spaces.Space;
Modified: trunk/src/main/java/cc/kune/core/client/actions/RolActionAutoUpdated.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/RolActionAutoUpdated.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/actions/RolActionAutoUpdated.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -21,9 +21,8 @@
import cc.kune.common.client.actions.AbstractExtendedAction;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
-import cc.kune.core.client.sn.actions.RolComparator;
-import cc.kune.core.client.state.AccessRightsChangedEvent;
-import cc.kune.core.client.state.AccessRightsChangedEvent.AccessRightsChangedHandler;
+import cc.kune.core.client.events.AccessRightsChangedEvent;
+import cc.kune.core.client.events.AccessRightsChangedEvent.AccessRightsChangedHandler;
import cc.kune.core.client.state.AccessRightsClientManager;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
Copied: trunk/src/main/java/cc/kune/core/client/actions/RolComparator.java (from rev 1655, trunk/src/main/java/cc/kune/core/client/sn/actions/RolComparator.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/RolComparator.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/actions/RolComparator.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,45 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.actions;
+
+import cc.kune.core.shared.domain.utils.AccessRights;
+import cc.kune.core.shared.dto.AccessRolDTO;
+
+public final class RolComparator {
+
+ public static boolean isEnabled(final AccessRolDTO rolRequired, final AccessRights rights) {
+ switch (rolRequired) {
+ case Administrator:
+ return rights.isAdministrable();
+ case Editor:
+ return rights.isEditable();
+ case Viewer:
+ return rights.isVisible();
+ }
+ return false;
+ }
+
+ public static boolean isMember(final AccessRights newRights) {
+ return newRights.isAdministrable() || newRights.isEditable();
+ }
+
+ private RolComparator() {
+ }
+}
Modified: trunk/src/main/java/cc/kune/core/client/auth/AnonUsersManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/AnonUsersManager.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/auth/AnonUsersManager.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -23,13 +23,13 @@
import cc.kune.common.client.notify.UserNotifyEvent;
import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.cookies.CookiesManager;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
import cc.kune.core.client.i18n.I18nUITranslationService;
-import cc.kune.core.client.init.AppStartEvent;
-import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.SiteTokens;
-import cc.kune.core.client.state.UserSignInEvent;
-import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
import com.google.gwt.event.shared.EventBus;
import com.google.inject.Inject;
Modified: trunk/src/main/java/cc/kune/core/client/auth/WaveClientSimpleAuthenticator.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/WaveClientSimpleAuthenticator.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/auth/WaveClientSimpleAuthenticator.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -20,7 +20,7 @@
package cc.kune.core.client.auth;
import cc.kune.core.client.events.StackErrorEvent;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.http.client.Request;
Modified: trunk/src/main/java/cc/kune/core/client/cnt/AbstractContentPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/cnt/AbstractContentPanel.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/cnt/AbstractContentPanel.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -19,7 +19,7 @@
*/
package cc.kune.core.client.cnt;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import com.google.gwt.user.client.ui.InsertPanel.ForIsWidget;
import com.google.gwt.user.client.ui.Widget;
Modified: trunk/src/main/java/cc/kune/core/client/cnt/ActionContentToolbarImpl.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/cnt/ActionContentToolbarImpl.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/cnt/ActionContentToolbarImpl.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -22,7 +22,7 @@
import cc.kune.common.client.actions.ui.ActionFlowPanel;
import cc.kune.common.client.actions.ui.GuiProvider;
import cc.kune.common.shared.i18n.I18nTranslationService;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import com.google.gwt.user.client.ui.InsertPanel.ForIsWidget;
import com.google.inject.Inject;
Modified: trunk/src/main/java/cc/kune/core/client/cnt/FoldableContentPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/cnt/FoldableContentPanel.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/cnt/FoldableContentPanel.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -24,7 +24,7 @@
import cc.kune.common.client.resources.CommonResources;
import cc.kune.common.client.ui.IconLabel;
import cc.kune.common.shared.i18n.I18nTranslationService;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import cc.kune.wave.client.WaveClientManager;
import com.google.gwt.event.dom.client.ClickEvent;
Modified: trunk/src/main/java/cc/kune/core/client/cnt/FoldableContentPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/cnt/FoldableContentPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/cnt/FoldableContentPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -22,12 +22,12 @@
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
import cc.kune.common.client.notify.NotifyUser;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.core.client.events.StateChangedEvent;
+import cc.kune.core.client.events.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.services.ImageSize;
import cc.kune.core.client.services.MediaUtils;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.StateChangedEvent;
-import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.BasicMimeTypeDTO;
Copied: trunk/src/main/java/cc/kune/core/client/contacts/SimpleContactManager.java (from rev 1655, trunk/src/main/java/cc/kune/core/client/sn/SimpleContactManager.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/contacts/SimpleContactManager.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/contacts/SimpleContactManager.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,30 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.contacts;
+
+public interface SimpleContactManager {
+
+ void addNewBuddy(String shortName);
+
+ void chat(String shortName);
+
+ boolean isBuddy(String shortName);
+
+}
Modified: trunk/src/main/java/cc/kune/core/client/dnd/FolderViewerDropController.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/dnd/FolderViewerDropController.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/dnd/FolderViewerDropController.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -30,7 +30,7 @@
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.StateContainerDTO;
-import cc.kune.gspace.client.viewers.FolderItemWidget;
+import cc.kune.gspace.client.viewers.items.FolderItemWidget;
import com.allen_sauer.gwt.dnd.client.DragContext;
import com.allen_sauer.gwt.dnd.client.VetoDragException;
@@ -41,14 +41,6 @@
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;
-/**
- * @author vjrj
- *
- */
-/**
- * @author vjrj
- *
- */
public class FolderViewerDropController implements DropTarget {
private final ContentCache contentCache;
Modified: trunk/src/main/java/cc/kune/core/client/dnd/KuneDragController.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/dnd/KuneDragController.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/dnd/KuneDragController.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -19,7 +19,7 @@
*/
package cc.kune.core.client.dnd;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import com.allen_sauer.gwt.dnd.client.PickupDragController;
import com.google.gwt.core.client.Scheduler;
Modified: trunk/src/main/java/cc/kune/core/client/dnd/NotImplementedDropManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/dnd/NotImplementedDropManager.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/dnd/NotImplementedDropManager.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -20,7 +20,7 @@
package cc.kune.core.client.dnd;
import cc.kune.common.shared.i18n.I18nTranslationService;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import com.google.gwt.event.logical.shared.AttachEvent;
import com.google.gwt.event.logical.shared.AttachEvent.Handler;
Copied: trunk/src/main/java/cc/kune/core/client/events/AccessRightsChangedEvent.java (from rev 1655, trunk/src/main/java/cc/kune/core/client/state/AccessRightsChangedEvent.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/events/AccessRightsChangedEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/events/AccessRightsChangedEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,115 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.events;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+
+public class AccessRightsChangedEvent extends GwtEvent<AccessRightsChangedEvent.AccessRightsChangedHandler> {
+
+ public interface HasAccessRightsChangedHandlers extends HasHandlers {
+ HandlerRegistration addAccessRightsChangedHandler(AccessRightsChangedHandler handler);
+ }
+
+ public interface AccessRightsChangedHandler extends EventHandler {
+ public void onAccessRightsChanged(AccessRightsChangedEvent event);
+ }
+
+ private static final Type<AccessRightsChangedHandler> TYPE = new Type<AccessRightsChangedHandler>();
+
+ public static void fire(HasHandlers source, cc.kune.core.shared.domain.utils.AccessRights previousRights, cc.kune.core.shared.domain.utils.AccessRights currentRights) {
+ source.fireEvent(new AccessRightsChangedEvent(previousRights, currentRights));
+ }
+
+ public static Type<AccessRightsChangedHandler> getType() {
+ return TYPE;
+ }
+
+ cc.kune.core.shared.domain.utils.AccessRights previousRights;
+ cc.kune.core.shared.domain.utils.AccessRights currentRights;
+
+ public AccessRightsChangedEvent(cc.kune.core.shared.domain.utils.AccessRights previousRights, cc.kune.core.shared.domain.utils.AccessRights currentRights) {
+ this.previousRights = previousRights;
+ this.currentRights = currentRights;
+ }
+
+ protected AccessRightsChangedEvent() {
+ // Possibly for serialization.
+ }
+
+ @Override
+ public Type<AccessRightsChangedHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ public cc.kune.core.shared.domain.utils.AccessRights getPreviousRights() {
+ return previousRights;
+ }
+
+ public cc.kune.core.shared.domain.utils.AccessRights getCurrentRights() {
+ return currentRights;
+ }
+
+ @Override
+ protected void dispatch(AccessRightsChangedHandler handler) {
+ handler.onAccessRightsChanged(this);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ AccessRightsChangedEvent other = (AccessRightsChangedEvent) obj;
+ if (previousRights == null) {
+ if (other.previousRights != null)
+ return false;
+ } else if (!previousRights.equals(other.previousRights))
+ return false;
+ if (currentRights == null) {
+ if (other.currentRights != null)
+ return false;
+ } else if (!currentRights.equals(other.currentRights))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 23;
+ hashCode = (hashCode * 37) + (previousRights == null ? 1 : previousRights.hashCode());
+ hashCode = (hashCode * 37) + (currentRights == null ? 1 : currentRights.hashCode());
+ return hashCode;
+ }
+
+ @Override
+ public String toString() {
+ return "AccessRightsChangedEvent["
+ + previousRights
+ + ","
+ + currentRights
+ + "]";
+ }
+}
Copied: trunk/src/main/java/cc/kune/core/client/events/AppStartEvent.java (from rev 1655, trunk/src/main/java/cc/kune/core/client/init/AppStartEvent.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/events/AppStartEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/events/AppStartEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,94 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.events;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+import com.gwtplatform.mvp.client.HasEventBus;
+
+public class AppStartEvent extends GwtEvent<AppStartEvent.AppStartHandler> {
+
+ public interface HasAppStartHandlers extends HasHandlers {
+ HandlerRegistration addAppStartHandler(AppStartHandler handler);
+ }
+
+ public interface AppStartHandler extends EventHandler {
+ public void onAppStart(AppStartEvent event);
+ }
+
+ private static final Type<AppStartHandler> TYPE = new Type<AppStartHandler>();
+
+ public static void fire(HasEventBus source, cc.kune.core.shared.dto.InitDataDTO initData) {
+ source.fireEvent(new AppStartEvent(initData));
+ }
+
+ public static Type<AppStartHandler> getType() {
+ return TYPE;
+ }
+
+ private final cc.kune.core.shared.dto.InitDataDTO initData;
+
+ public AppStartEvent(cc.kune.core.shared.dto.InitDataDTO initData) {
+ this.initData = initData;
+ }
+
+ @Override
+ public Type<AppStartHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ public cc.kune.core.shared.dto.InitDataDTO getInitData() {
+ return initData;
+ }
+
+ @Override
+ protected void dispatch(AppStartHandler handler) {
+ handler.onAppStart(this);
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (other != null && other.getClass().equals(this.getClass())) {
+ AppStartEvent o = (AppStartEvent) other;
+ return true
+ && ((o.initData == null && this.initData == null) || (o.initData != null && o.initData.equals(this.initData)))
+ ;
+ }
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 23;
+ hashCode = (hashCode * 37) + getClass().hashCode();
+ hashCode = (hashCode * 37) + (initData == null ? 1 : initData.hashCode());
+ return hashCode;
+ }
+
+ @Override
+ public String toString() {
+ return "AppStartEvent["
+ + initData
+ + "]";
+ }
+
+}
Copied: trunk/src/main/java/cc/kune/core/client/events/AppStopEvent.java (from rev 1655, trunk/src/main/java/cc/kune/core/client/init/AppStopEvent.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/events/AppStopEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/events/AppStopEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,85 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.events;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+import com.gwtplatform.mvp.client.HasEventBus;
+
+public class AppStopEvent extends GwtEvent<AppStopEvent.AppStopHandler> {
+
+ public interface HasAppStopHandlers extends HasHandlers {
+ HandlerRegistration addAppStopHandler(AppStopHandler handler);
+ }
+
+ public interface AppStopHandler extends EventHandler {
+ public void onAppStop(AppStopEvent event);
+ }
+
+ private static final Type<AppStopHandler> TYPE = new Type<AppStopHandler>();
+
+ public static void fire(HasEventBus source) {
+ source.fireEvent(new AppStopEvent());
+ }
+
+ public static Type<AppStopHandler> getType() {
+ return TYPE;
+ }
+
+
+ public AppStopEvent() {
+ }
+
+ @Override
+ public Type<AppStopHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(AppStopHandler handler) {
+ handler.onAppStop(this);
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (other != null && other.getClass().equals(this.getClass())) {
+ AppStopEvent o = (AppStopEvent) other;
+ return true
+ ;
+ }
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 23;
+ hashCode = (hashCode * 37) + getClass().hashCode();
+ return hashCode;
+ }
+
+ @Override
+ public String toString() {
+ return "AppStopEvent["
+ + "]";
+ }
+
+}
Copied: trunk/src/main/java/cc/kune/core/client/events/GroupChangedEvent.java (from rev 1655, trunk/src/main/java/cc/kune/core/client/state/GroupChangedEvent.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/events/GroupChangedEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/events/GroupChangedEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,115 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.events;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+
+public class GroupChangedEvent extends GwtEvent<GroupChangedEvent.GroupChangedHandler> {
+
+ public interface HasGroupChangedHandlers extends HasHandlers {
+ HandlerRegistration addGroupChangedHandler(GroupChangedHandler handler);
+ }
+
+ public interface GroupChangedHandler extends EventHandler {
+ public void onGroupChanged(GroupChangedEvent event);
+ }
+
+ private static final Type<GroupChangedHandler> TYPE = new Type<GroupChangedHandler>();
+
+ public static void fire(HasHandlers source, java.lang.String previousGroup, java.lang.String newGroup) {
+ source.fireEvent(new GroupChangedEvent(previousGroup, newGroup));
+ }
+
+ public static Type<GroupChangedHandler> getType() {
+ return TYPE;
+ }
+
+ java.lang.String previousGroup;
+ java.lang.String newGroup;
+
+ public GroupChangedEvent(java.lang.String previousGroup, java.lang.String newGroup) {
+ this.previousGroup = previousGroup;
+ this.newGroup = newGroup;
+ }
+
+ protected GroupChangedEvent() {
+ // Possibly for serialization.
+ }
+
+ @Override
+ public Type<GroupChangedHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ public java.lang.String getPreviousGroup() {
+ return previousGroup;
+ }
+
+ public java.lang.String getNewGroup() {
+ return newGroup;
+ }
+
+ @Override
+ protected void dispatch(GroupChangedHandler handler) {
+ handler.onGroupChanged(this);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ GroupChangedEvent other = (GroupChangedEvent) obj;
+ if (previousGroup == null) {
+ if (other.previousGroup != null)
+ return false;
+ } else if (!previousGroup.equals(other.previousGroup))
+ return false;
+ if (newGroup == null) {
+ if (other.newGroup != null)
+ return false;
+ } else if (!newGroup.equals(other.newGroup))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 23;
+ hashCode = (hashCode * 37) + (previousGroup == null ? 1 : previousGroup.hashCode());
+ hashCode = (hashCode * 37) + (newGroup == null ? 1 : newGroup.hashCode());
+ return hashCode;
+ }
+
+ @Override
+ public String toString() {
+ return "GroupChangedEvent["
+ + previousGroup
+ + ","
+ + newGroup
+ + "]";
+ }
+}
Copied: trunk/src/main/java/cc/kune/core/client/events/SocialNetworkChangedEvent.java (from rev 1655, trunk/src/main/java/cc/kune/core/client/state/SocialNetworkChangedEvent.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/events/SocialNetworkChangedEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/events/SocialNetworkChangedEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,101 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.events;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+
+public class SocialNetworkChangedEvent extends GwtEvent<SocialNetworkChangedEvent.SocialNetworkChangedHandler> {
+
+ public interface HasSocialNetworkChangedHandlers extends HasHandlers {
+ HandlerRegistration addSocialNetworkChangedHandler(SocialNetworkChangedHandler handler);
+ }
+
+ public interface SocialNetworkChangedHandler extends EventHandler {
+ public void onSocialNetworkChanged(SocialNetworkChangedEvent event);
+ }
+
+ private static final Type<SocialNetworkChangedHandler> TYPE = new Type<SocialNetworkChangedHandler>();
+
+ public static void fire(HasHandlers source, cc.kune.core.shared.dto.StateAbstractDTO state) {
+ source.fireEvent(new SocialNetworkChangedEvent(state));
+ }
+
+ public static Type<SocialNetworkChangedHandler> getType() {
+ return TYPE;
+ }
+
+ cc.kune.core.shared.dto.StateAbstractDTO state;
+
+ public SocialNetworkChangedEvent(cc.kune.core.shared.dto.StateAbstractDTO state) {
+ this.state = state;
+ }
+
+ protected SocialNetworkChangedEvent() {
+ // Possibly for serialization.
+ }
+
+ @Override
+ public Type<SocialNetworkChangedHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ public cc.kune.core.shared.dto.StateAbstractDTO getState() {
+ return state;
+ }
+
+ @Override
+ protected void dispatch(SocialNetworkChangedHandler handler) {
+ handler.onSocialNetworkChanged(this);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ SocialNetworkChangedEvent other = (SocialNetworkChangedEvent) obj;
+ if (state == null) {
+ if (other.state != null)
+ return false;
+ } else if (!state.equals(other.state))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 23;
+ hashCode = (hashCode * 37) + (state == null ? 1 : state.hashCode());
+ return hashCode;
+ }
+
+ @Override
+ public String toString() {
+ return "SocialNetworkChangedEvent["
+ + state
+ + "]";
+ }
+}
Copied: trunk/src/main/java/cc/kune/core/client/events/StateChangedEvent.java (from rev 1655, trunk/src/main/java/cc/kune/core/client/state/StateChangedEvent.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/events/StateChangedEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/events/StateChangedEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,101 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.events;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+
+public class StateChangedEvent extends GwtEvent<StateChangedEvent.StateChangedHandler> {
+
+ public interface HasStateChangedHandlers extends HasHandlers {
+ HandlerRegistration addStateChangedHandler(StateChangedHandler handler);
+ }
+
+ public interface StateChangedHandler extends EventHandler {
+ public void onStateChanged(StateChangedEvent event);
+ }
+
+ private static final Type<StateChangedHandler> TYPE = new Type<StateChangedHandler>();
+
+ public static void fire(HasHandlers source, cc.kune.core.shared.dto.StateAbstractDTO state) {
+ source.fireEvent(new StateChangedEvent(state));
+ }
+
+ public static Type<StateChangedHandler> getType() {
+ return TYPE;
+ }
+
+ cc.kune.core.shared.dto.StateAbstractDTO state;
+
+ public StateChangedEvent(cc.kune.core.shared.dto.StateAbstractDTO state) {
+ this.state = state;
+ }
+
+ protected StateChangedEvent() {
+ // Possibly for serialization.
+ }
+
+ @Override
+ public Type<StateChangedHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ public cc.kune.core.shared.dto.StateAbstractDTO getState() {
+ return state;
+ }
+
+ @Override
+ protected void dispatch(StateChangedHandler handler) {
+ handler.onStateChanged(this);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ StateChangedEvent other = (StateChangedEvent) obj;
+ if (state == null) {
+ if (other.state != null)
+ return false;
+ } else if (!state.equals(other.state))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 23;
+ hashCode = (hashCode * 37) + (state == null ? 1 : state.hashCode());
+ return hashCode;
+ }
+
+ @Override
+ public String toString() {
+ return "StateChangedEvent["
+ + state
+ + "]";
+ }
+}
Copied: trunk/src/main/java/cc/kune/core/client/events/ToolChangedEvent.java (from rev 1655, trunk/src/main/java/cc/kune/core/client/state/ToolChangedEvent.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/events/ToolChangedEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/events/ToolChangedEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,130 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.events;
+
+import cc.kune.core.shared.domain.utils.StateToken;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+
+public class ToolChangedEvent extends GwtEvent<ToolChangedEvent.ToolChangedHandler> {
+
+ public interface HasToolChangedHandlers extends HasHandlers {
+ HandlerRegistration addToolChangedHandler(ToolChangedHandler handler);
+ }
+
+ public interface ToolChangedHandler extends EventHandler {
+ public void onToolChanged(ToolChangedEvent event);
+ }
+
+ private static final Type<ToolChangedHandler> TYPE = new Type<ToolChangedHandler>();
+
+ public static void fire(final HasHandlers source, final StateToken previousToken,
+ final StateToken newToken) {
+ source.fireEvent(new ToolChangedEvent(previousToken, newToken));
+ }
+
+ public static Type<ToolChangedHandler> getType() {
+ return TYPE;
+ }
+
+ private StateToken newToken;
+ private StateToken previousToken;
+
+ protected ToolChangedEvent() {
+ // Possibly for serialization.
+ }
+
+ public ToolChangedEvent(final StateToken previousToken, final StateToken newToken) {
+ this.previousToken = previousToken;
+ this.newToken = newToken;
+ }
+
+ @Override
+ protected void dispatch(final ToolChangedHandler handler) {
+ handler.onToolChanged(this);
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ final ToolChangedEvent other = (ToolChangedEvent) obj;
+ if (newToken == null) {
+ if (other.newToken != null) {
+ return false;
+ }
+ } else if (!newToken.equals(other.newToken)) {
+ return false;
+ }
+ if (previousToken == null) {
+ if (other.previousToken != null) {
+ return false;
+ }
+ } else if (!previousToken.equals(other.previousToken)) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public Type<ToolChangedHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ public StateToken getNewToken() {
+ return newToken;
+ }
+
+ public java.lang.String getNewTool() {
+ return newToken != null ? newToken.getTool() : null;
+ }
+
+ public StateToken getPreviousToken() {
+ return previousToken;
+ }
+
+ public java.lang.String getPreviousTool() {
+ return previousToken != null ? previousToken.getTool() : null;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((newToken == null) ? 0 : newToken.hashCode());
+ result = prime * result + ((previousToken == null) ? 0 : previousToken.hashCode());
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return "ToolChangedEvent[" + getPreviousTool() + "," + getNewTool() + "]";
+ }
+}
Copied: trunk/src/main/java/cc/kune/core/client/events/UserSignInEvent.java (from rev 1655, trunk/src/main/java/cc/kune/core/client/state/UserSignInEvent.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/events/UserSignInEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/events/UserSignInEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,85 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.events;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+
+public class UserSignInEvent extends GwtEvent<UserSignInEvent.UserSignInHandler> {
+
+ public interface HasUserSignInHandlers extends HasHandlers {
+ HandlerRegistration addUserSignInHandler(UserSignInHandler handler);
+ }
+
+ public interface UserSignInHandler extends EventHandler {
+ public void onUserSignIn(UserSignInEvent event);
+ }
+
+ private static final Type<UserSignInHandler> TYPE = new Type<UserSignInHandler>();
+
+ public static Type<UserSignInHandler> getType() {
+ return TYPE;
+ }
+
+ private final cc.kune.core.shared.dto.UserInfoDTO userInfo;
+
+ public UserSignInEvent(final cc.kune.core.shared.dto.UserInfoDTO userInfo) {
+ this.userInfo = userInfo;
+ }
+
+ @Override
+ protected void dispatch(final UserSignInHandler handler) {
+ handler.onUserSignIn(this);
+ }
+
+ @Override
+ public boolean equals(final Object other) {
+ if (other != null && other.getClass().equals(this.getClass())) {
+ final UserSignInEvent o = (UserSignInEvent) other;
+ return true && ((o.userInfo == null && this.userInfo == null) || (o.userInfo != null && o.userInfo.equals(this.userInfo)));
+ }
+ return false;
+ }
+
+ @Override
+ public Type<UserSignInHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ public cc.kune.core.shared.dto.UserInfoDTO getUserInfo() {
+ return userInfo;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 23;
+ hashCode = (hashCode * 37) + getClass().hashCode();
+ hashCode = (hashCode * 37) + (userInfo == null ? 1 : userInfo.hashCode());
+ return hashCode;
+ }
+
+ @Override
+ public String toString() {
+ return "UserSignInEvent[" + userInfo + "]";
+ }
+
+}
Copied: trunk/src/main/java/cc/kune/core/client/events/UserSignInOrSignOutEvent.java (from rev 1655, trunk/src/main/java/cc/kune/core/client/state/UserSignInOrSignOutEvent.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/events/UserSignInOrSignOutEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/events/UserSignInOrSignOutEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,94 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.events;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+
+public class UserSignInOrSignOutEvent extends GwtEvent<UserSignInOrSignOutEvent.UserSignInOrSignOutHandler> {
+
+ public interface HasUserSignInOrSignOutHandlers extends HasHandlers {
+ HandlerRegistration addUserSignInOrSignOutHandler(UserSignInOrSignOutHandler handler);
+ }
+
+ public interface UserSignInOrSignOutHandler extends EventHandler {
+ public void onUserSignInOrSignOut(UserSignInOrSignOutEvent event);
+ }
+
+ private static final Type<UserSignInOrSignOutHandler> TYPE = new Type<UserSignInOrSignOutHandler>();
+
+ public static Type<UserSignInOrSignOutHandler> getType() {
+ return TYPE;
+ }
+
+ private final boolean loggedin;
+
+ public UserSignInOrSignOutEvent(final boolean loggedin) {
+ this.loggedin = loggedin;
+ }
+
+ @Override
+ protected void dispatch(final UserSignInOrSignOutHandler handler) {
+ handler.onUserSignInOrSignOut(this);
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ final UserSignInOrSignOutEvent other = (UserSignInOrSignOutEvent) obj;
+ if (loggedin != other.loggedin) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public Type<UserSignInOrSignOutHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + (loggedin ? 1231 : 1237);
+ return result;
+ }
+
+ public boolean isLogged() {
+ return loggedin;
+ }
+
+ @Override
+ public String toString() {
+ return "UserSignInOrSignOutEvent[" + loggedin + "]";
+ }
+
+}
Copied: trunk/src/main/java/cc/kune/core/client/events/UserSignOutEvent.java (from rev 1655, trunk/src/main/java/cc/kune/core/client/state/UserSignOutEvent.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/events/UserSignOutEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/events/UserSignOutEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,81 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.events;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+import com.gwtplatform.mvp.client.HasEventBus;
+
+public class UserSignOutEvent extends GwtEvent<UserSignOutEvent.UserSignOutHandler> {
+
+ public interface HasUserSignOutHandlers extends HasHandlers {
+ HandlerRegistration addUserSignOutHandler(UserSignOutHandler handler);
+ }
+
+ public interface UserSignOutHandler extends EventHandler {
+ public void onUserSignOut(UserSignOutEvent event);
+ }
+
+ private static final Type<UserSignOutHandler> TYPE = new Type<UserSignOutHandler>();
+
+ public static void fire(final HasEventBus source) {
+ source.fireEvent(new UserSignOutEvent());
+ }
+
+ public static Type<UserSignOutHandler> getType() {
+ return TYPE;
+ }
+
+ public UserSignOutEvent() {
+ }
+
+ @Override
+ protected void dispatch(final UserSignOutHandler handler) {
+ handler.onUserSignOut(this);
+ }
+
+ @Override
+ public boolean equals(final Object other) {
+ if (other != null && other.getClass().equals(this.getClass())) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public Type<UserSignOutHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 23;
+ hashCode = (hashCode * 37) + getClass().hashCode();
+ return hashCode;
+ }
+
+ @Override
+ public String toString() {
+ return "UserSignOutEvent[" + "]";
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -35,10 +35,10 @@
import cc.kune.common.client.utils.WindowUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.common.shared.utils.TextUtils;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
import cc.kune.core.client.rpcservices.I18nServiceAsync;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.UserSignInEvent;
-import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
import cc.kune.core.shared.dto.I18nLanguageDTO;
import com.google.gwt.core.client.Scheduler;
Modified: trunk/src/main/java/cc/kune/core/client/i18n/KuneConstants.properties
===================================================================
--- trunk/src/main/java/cc/kune/core/client/i18n/KuneConstants.properties 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/i18n/KuneConstants.properties 2012-01-08 23:06:53 UTC (rev 1656)
@@ -102,7 +102,7 @@
andNExternalUser = and [%d] external user
thisIsOnlyAPreviewOfHowThisPageWouldLookLikeToTheGeneralPublicOnTheInternet = This is only a preview of how this page would look like to the general public on the internet.
preview = Preview
-paramUnderLicenseParam = � [%s], under license: [%s]
+paramUnderLicenseParam = © [%s], under license: [%s]
clickToRename = Click to rename
createANewDocumentIfYouChooseToPublishItThisDocumentWillAppearAsANewPageInThePublicWeb = Create a New Document. If you choose to publish it, this document will appear as a new 'Page' in the public web
reloadCurrentPage = Reload current page
@@ -343,8 +343,8 @@
error = Error
toJoinAChatroomYouNeedToBeOnline = To join a chatroom you need to be 'online'
licenseWizard = License wizard
-backUsedInButton = � Back
-nextUsedInButton = Next �
+backUsedInButton = « Back
+nextUsedInButton = Next »
select = Select
finishUsedInButton = Finish
selectTheLicenseYouPreferUsingForSharingYourGroupContentsWithOtherPeople = Select the license you prefer using for sharing your group contents with other people:
@@ -433,7 +433,6 @@
nowadaysTheGadgetsMapsPollsEtcAreExperimentalInSomeBrowsersYouMightExperienceProblemsWithCertainGadg = Nowadays the gadgets (maps, polls, etc) are experimental. In some browsers you might experience problems with certain gadgets
errorConfiguringTheTool = Error configuring the tool
youDoNotHaveRightsToPerformThatAction = You do not have rights to perform that action
-0 = 0
signInOrRegisterToHelpWithTheTranslation = Sign in or register to help with the translation
thisNameAlreadyExistsItIsUsedWhenAFileOrAFolderWithTheSameNameAlreadyExists = This name already exists
doYouWantToAddParamAsAMemberOfParam = Do you want to add '[%s]' as a member of '[%s]'?
Modified: trunk/src/main/java/cc/kune/core/client/i18n/KuneConstants_fr.properties
===================================================================
--- trunk/src/main/java/cc/kune/core/client/i18n/KuneConstants_fr.properties 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/i18n/KuneConstants_fr.properties 2012-01-08 23:06:53 UTC (rev 1656)
@@ -431,7 +431,6 @@
nowadaysTheGadgetsMapsPollsEtcAreExperimentalInSomeBrowsersYouMightExperienceProblemsWithCertainGadg = Les gadgets (cartes, sondages, etc) sont encore expérimentaux. Dans certains navigateurs, vous pourrez avoir des problèmes avec certains gadgets
errorConfiguringTheTool = Erreur lors de la configuration de l'outil
youDoNotHaveRightsToPerformThatAction = Vous n'avez pas les permissions suffisantes pour accomplir cette action
-0 = 0
signInOrRegisterToHelpWithTheTranslation = Connectez-vous ou créez un compte pour aider à la traduction
thisNameAlreadyExistsItIsUsedWhenAFileOrAFolderWithTheSameNameAlreadyExists = Ce nom existe déjÃ
doYouWantToAddParamAsAMemberOfParam = Voulez-vous ajouter '[%s]' comme membre de '[%s]' ?
Deleted: trunk/src/main/java/cc/kune/core/client/init/AppStartEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/init/AppStartEvent.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/init/AppStartEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,94 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.init;
-
-import com.google.gwt.event.shared.EventHandler;
-import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerRegistration;
-import com.google.gwt.event.shared.HasHandlers;
-import com.gwtplatform.mvp.client.HasEventBus;
-
-public class AppStartEvent extends GwtEvent<AppStartEvent.AppStartHandler> {
-
- public interface HasAppStartHandlers extends HasHandlers {
- HandlerRegistration addAppStartHandler(AppStartHandler handler);
- }
-
- public interface AppStartHandler extends EventHandler {
- public void onAppStart(AppStartEvent event);
- }
-
- private static final Type<AppStartHandler> TYPE = new Type<AppStartHandler>();
-
- public static void fire(HasEventBus source, cc.kune.core.shared.dto.InitDataDTO initData) {
- source.fireEvent(new AppStartEvent(initData));
- }
-
- public static Type<AppStartHandler> getType() {
- return TYPE;
- }
-
- private final cc.kune.core.shared.dto.InitDataDTO initData;
-
- public AppStartEvent(cc.kune.core.shared.dto.InitDataDTO initData) {
- this.initData = initData;
- }
-
- @Override
- public Type<AppStartHandler> getAssociatedType() {
- return TYPE;
- }
-
- public cc.kune.core.shared.dto.InitDataDTO getInitData() {
- return initData;
- }
-
- @Override
- protected void dispatch(AppStartHandler handler) {
- handler.onAppStart(this);
- }
-
- @Override
- public boolean equals(Object other) {
- if (other != null && other.getClass().equals(this.getClass())) {
- AppStartEvent o = (AppStartEvent) other;
- return true
- && ((o.initData == null && this.initData == null) || (o.initData != null && o.initData.equals(this.initData)))
- ;
- }
- return false;
- }
-
- @Override
- public int hashCode() {
- int hashCode = 23;
- hashCode = (hashCode * 37) + getClass().hashCode();
- hashCode = (hashCode * 37) + (initData == null ? 1 : initData.hashCode());
- return hashCode;
- }
-
- @Override
- public String toString() {
- return "AppStartEvent["
- + initData
- + "]";
- }
-
-}
Modified: trunk/src/main/java/cc/kune/core/client/init/AppStarterDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/init/AppStarterDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/init/AppStarterDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -26,6 +26,8 @@
import cc.kune.common.client.notify.UserNotifyEvent;
import cc.kune.common.client.resources.CommonResources;
import cc.kune.common.client.utils.SimpleResponseCallback;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.AppStopEvent;
import cc.kune.core.client.rpcservices.SiteServiceAsync;
import cc.kune.core.client.state.Session;
import cc.kune.core.shared.dto.InitDataDTO;
Deleted: trunk/src/main/java/cc/kune/core/client/init/AppStopEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/init/AppStopEvent.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/init/AppStopEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,85 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.init;
-
-import com.google.gwt.event.shared.EventHandler;
-import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerRegistration;
-import com.google.gwt.event.shared.HasHandlers;
-import com.gwtplatform.mvp.client.HasEventBus;
-
-public class AppStopEvent extends GwtEvent<AppStopEvent.AppStopHandler> {
-
- public interface HasAppStopHandlers extends HasHandlers {
- HandlerRegistration addAppStopHandler(AppStopHandler handler);
- }
-
- public interface AppStopHandler extends EventHandler {
- public void onAppStop(AppStopEvent event);
- }
-
- private static final Type<AppStopHandler> TYPE = new Type<AppStopHandler>();
-
- public static void fire(HasEventBus source) {
- source.fireEvent(new AppStopEvent());
- }
-
- public static Type<AppStopHandler> getType() {
- return TYPE;
- }
-
-
- public AppStopEvent() {
- }
-
- @Override
- public Type<AppStopHandler> getAssociatedType() {
- return TYPE;
- }
-
- @Override
- protected void dispatch(AppStopHandler handler) {
- handler.onAppStop(this);
- }
-
- @Override
- public boolean equals(Object other) {
- if (other != null && other.getClass().equals(this.getClass())) {
- AppStopEvent o = (AppStopEvent) other;
- return true
- ;
- }
- return false;
- }
-
- @Override
- public int hashCode() {
- int hashCode = 23;
- hashCode = (hashCode * 37) + getClass().hashCode();
- return hashCode;
- }
-
- @Override
- public String toString() {
- return "AppStopEvent["
- + "]";
- }
-
-}
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -31,16 +31,16 @@
import cc.kune.common.client.actions.ui.descrip.ToolbarSeparatorDescriptor;
import cc.kune.common.client.actions.ui.descrip.ToolbarSeparatorDescriptor.Type;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignOutEvent;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
+import cc.kune.core.client.events.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.client.resources.CoreMessages;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.sn.actions.GotoGroupAction;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
-import cc.kune.core.client.state.UserSignInEvent;
-import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
-import cc.kune.core.client.state.UserSignOutEvent;
-import cc.kune.core.client.state.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.shared.dto.GroupDTO;
import cc.kune.core.shared.dto.UserInfoDTO;
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPanel.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPanel.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -24,7 +24,7 @@
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.sitebar.SitebarActionsPresenter.SitebarActionsView;
import cc.kune.core.client.sitebar.logo.SiteLogo;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -33,7 +33,7 @@
import cc.kune.common.client.resources.CommonResources;
import cc.kune.common.client.ui.KuneWindowUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
-import cc.kune.core.client.init.AppStartEvent;
+import cc.kune.core.client.events.AppStartEvent;
import cc.kune.core.client.resources.CoreResources;
import com.google.gwt.event.shared.EventBus;
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignInLink.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignInLink.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignInLink.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -23,14 +23,14 @@
import cc.kune.common.client.actions.Action;
import cc.kune.common.client.actions.ActionEvent;
import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignOutEvent;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
+import cc.kune.core.client.events.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.client.i18n.I18nUITranslationService;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.SiteTokens;
import cc.kune.core.client.state.StateManager;
-import cc.kune.core.client.state.UserSignInEvent;
-import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
-import cc.kune.core.client.state.UserSignOutEvent;
-import cc.kune.core.client.state.UserSignOutEvent.UserSignOutHandler;
import com.google.gwt.event.shared.EventBus;
import com.google.inject.Inject;
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -33,12 +33,12 @@
import cc.kune.core.client.errors.ErrorHandler;
import cc.kune.core.client.errors.SessionExpiredException;
import cc.kune.core.client.errors.UserMustBeLoggedException;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignOutEvent;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
+import cc.kune.core.client.events.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.client.rpcservices.UserServiceAsync;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.UserSignInEvent;
-import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
-import cc.kune.core.client.state.UserSignOutEvent;
-import cc.kune.core.client.state.UserSignOutEvent.UserSignOutHandler;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.user.client.rpc.AsyncCallback;
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/logo/SiteLogo.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/logo/SiteLogo.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/logo/SiteLogo.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -20,9 +20,9 @@
package cc.kune.core.client.sitebar.logo;
import cc.kune.common.client.tooltip.Tooltip;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
import cc.kune.core.client.i18n.I18nUITranslationService;
-import cc.kune.core.client.init.AppStartEvent;
-import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.SiteTokens;
import cc.kune.core.client.state.StateManager;
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/search/SitebarSearchPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/search/SitebarSearchPanel.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/search/SitebarSearchPanel.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -24,7 +24,7 @@
import cc.kune.core.client.sitebar.search.SitebarSearchPresenter.SitebarSearchView;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import com.google.gwt.event.dom.client.HasAllFocusHandlers;
import com.google.gwt.event.dom.client.HasClickHandlers;
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPanel.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPanel.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -24,8 +24,8 @@
import cc.kune.core.client.i18n.I18nUITranslationService;
import cc.kune.core.client.sitebar.spaces.SpaceSelectorPresenter.SpaceSelectorView;
import cc.kune.core.client.state.Session;
-import cc.kune.gspace.client.GSpaceArmor;
-import cc.kune.gspace.client.resources.GSpaceArmorResources;
+import cc.kune.gspace.client.armor.GSpaceArmor;
+import cc.kune.gspace.client.armor.resources.GSpaceArmorResources;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.HasClickHandlers;
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPanel.ui.xml
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPanel.ui.xml 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPanel.ui.xml 2012-01-08 23:06:53 UTC (rev 1656)
@@ -2,7 +2,7 @@
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui">
<ui:with field='img'
- type='cc.kune.gspace.client.resources.GSpaceArmorResources' />
+ type='cc.kune.gspace.client.armor.resources.GSpaceArmorResources' />
<g:FlowPanel ui:field="panel" addStyleNames="k-space-sel k-10corners k-floatleft k-pointer" >
<g:ToggleButton ui:field="homeButton" styleName="k-space-sel-btn">
<g:upFace image='{img.homeSpaceDisabled}' />
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -24,14 +24,14 @@
import cc.kune.common.client.ui.MaskWidgetView;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.auth.SignIn;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.UserSignOutEvent;
import cc.kune.core.client.events.WindowFocusEvent;
-import cc.kune.core.client.init.AppStartEvent;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.SiteTokens;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.client.state.TokenUtils;
-import cc.kune.core.client.state.UserSignOutEvent;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import cc.kune.gspace.client.style.GSpaceBackManager;
import com.google.gwt.event.dom.client.ClickEvent;
Modified: trunk/src/main/java/cc/kune/core/client/sn/AbstractSNPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/AbstractSNPanel.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sn/AbstractSNPanel.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -33,7 +33,7 @@
import cc.kune.core.client.dnd.KuneDragController;
import cc.kune.core.client.dnd.NotImplementedDropManager;
import cc.kune.core.client.ui.BasicDragableThumb;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
Modified: trunk/src/main/java/cc/kune/core/client/sn/GroupSNPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/GroupSNPanel.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sn/GroupSNPanel.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -30,7 +30,7 @@
import cc.kune.core.client.sn.GroupSNPresenter.GroupSNView;
import cc.kune.core.client.ui.BasicDragableThumb;
import cc.kune.core.shared.dto.GroupDTO;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;
Modified: trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -23,19 +23,19 @@
import cc.kune.common.client.actions.ui.IsActionExtensible;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
+import cc.kune.core.client.events.SocialNetworkChangedEvent;
+import cc.kune.core.client.events.StateChangedEvent;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignOutEvent;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
+import cc.kune.core.client.events.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.sn.actions.registry.GroupSNAdminsMenuItemsRegistry;
import cc.kune.core.client.sn.actions.registry.GroupSNCollabsMenuItemsRegistry;
import cc.kune.core.client.sn.actions.registry.GroupSNConfActions;
import cc.kune.core.client.sn.actions.registry.GroupSNPendingsMenuItemsRegistry;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.SocialNetworkChangedEvent;
-import cc.kune.core.client.state.StateChangedEvent;
import cc.kune.core.client.state.StateManager;
-import cc.kune.core.client.state.UserSignInEvent;
-import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
-import cc.kune.core.client.state.UserSignOutEvent;
-import cc.kune.core.client.state.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.shared.domain.utils.AccessRights;
import cc.kune.core.shared.dto.AccessListsDTO;
import cc.kune.core.shared.dto.GroupDTO;
Deleted: trunk/src/main/java/cc/kune/core/client/sn/SimpleContactManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/SimpleContactManager.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sn/SimpleContactManager.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,30 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.sn;
-
-public interface SimpleContactManager {
-
- void addNewBuddy(String shortName);
-
- void chat(String shortName);
-
- boolean isBuddy(String shortName);
-
-}
Modified: trunk/src/main/java/cc/kune/core/client/sn/UserSNPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/UserSNPanel.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sn/UserSNPanel.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -31,7 +31,7 @@
import cc.kune.core.client.ui.BasicDragableThumb;
import cc.kune.core.shared.dto.GroupDTO;
import cc.kune.core.shared.dto.UserSimpleDTO;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
Modified: trunk/src/main/java/cc/kune/core/client/sn/UserSNPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/UserSNPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sn/UserSNPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -24,19 +24,19 @@
import cc.kune.common.client.actions.ui.IsActionExtensible;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.core.client.events.SocialNetworkChangedEvent;
+import cc.kune.core.client.events.StateChangedEvent;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignOutEvent;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
+import cc.kune.core.client.events.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.sn.UserSNPresenter.UserSNProxy;
import cc.kune.core.client.sn.UserSNPresenter.UserSNView;
import cc.kune.core.client.sn.actions.registry.UserSNConfActions;
import cc.kune.core.client.sn.actions.registry.UserSNMenuItemsRegistry;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.SocialNetworkChangedEvent;
-import cc.kune.core.client.state.StateChangedEvent;
import cc.kune.core.client.state.StateManager;
-import cc.kune.core.client.state.UserSignInEvent;
-import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
-import cc.kune.core.client.state.UserSignOutEvent;
-import cc.kune.core.client.state.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.shared.dto.GroupDTO;
import cc.kune.core.shared.dto.ParticipationDataDTO;
import cc.kune.core.shared.dto.StateAbstractDTO;
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/AddNewBuddiesAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/AddNewBuddiesAction.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/AddNewBuddiesAction.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -25,10 +25,10 @@
import cc.kune.common.client.notify.NotifyUser;
import cc.kune.common.client.utils.SimpleResponseCallback;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.core.client.contacts.SimpleContactManager;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.client.sitebar.search.EntitySearchPanel;
import cc.kune.core.client.sitebar.search.OnEntitySelectedInSearch;
-import cc.kune.core.client.sn.SimpleContactManager;
import com.google.inject.Inject;
Added: trunk/src/main/java/cc/kune/core/client/sn/actions/GroupSNModerationSubMenu.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/GroupSNModerationSubMenu.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/GroupSNModerationSubMenu.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,9 @@
+package cc.kune.core.client.sn.actions;
+
+import cc.kune.common.client.actions.ui.descrip.SubMenuDescriptor;
+
+import com.google.inject.Singleton;
+
+@Singleton
+public class GroupSNModerationSubMenu extends SubMenuDescriptor {
+}
Added: trunk/src/main/java/cc/kune/core/client/sn/actions/GroupSNOptionsMenu.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/GroupSNOptionsMenu.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/GroupSNOptionsMenu.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,9 @@
+package cc.kune.core.client.sn.actions;
+
+import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
+
+import com.google.inject.Singleton;
+
+@Singleton
+public class GroupSNOptionsMenu extends MenuDescriptor {
+}
Added: trunk/src/main/java/cc/kune/core/client/sn/actions/GroupSNVisibilitySubMenu.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/GroupSNVisibilitySubMenu.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/GroupSNVisibilitySubMenu.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,9 @@
+package cc.kune.core.client.sn.actions;
+
+import cc.kune.common.client.actions.ui.descrip.SubMenuDescriptor;
+
+import com.google.inject.Singleton;
+
+@Singleton
+public class GroupSNVisibilitySubMenu extends SubMenuDescriptor {
+}
Deleted: trunk/src/main/java/cc/kune/core/client/sn/actions/RolComparator.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/RolComparator.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/RolComparator.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,45 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.sn.actions;
-
-import cc.kune.core.shared.domain.utils.AccessRights;
-import cc.kune.core.shared.dto.AccessRolDTO;
-
-public final class RolComparator {
-
- public static boolean isEnabled(final AccessRolDTO rolRequired, final AccessRights rights) {
- switch (rolRequired) {
- case Administrator:
- return rights.isAdministrable();
- case Editor:
- return rights.isEditable();
- case Viewer:
- return rights.isVisible();
- }
- return false;
- }
-
- public static boolean isMember(final AccessRights newRights) {
- return newRights.isAdministrable() || newRights.isEditable();
- }
-
- private RolComparator() {
- }
-}
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/SessionAction.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/SessionAction.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/SessionAction.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -21,9 +21,9 @@
import cc.kune.common.client.actions.AbstractExtendedAction;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
+import cc.kune.core.client.events.UserSignInOrSignOutEvent;
+import cc.kune.core.client.events.UserSignInOrSignOutEvent.UserSignInOrSignOutHandler;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.UserSignInOrSignOutEvent;
-import cc.kune.core.client.state.UserSignInOrSignOutEvent.UserSignInOrSignOutHandler;
import com.google.inject.Inject;
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/WriteToAdmins.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/WriteToAdmins.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/WriteToAdmins.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -21,18 +21,18 @@
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.common.shared.i18n.I18nTranslationService;
-import cc.kune.core.client.sn.actions.registry.GroupSNConfActions;
import com.google.inject.Inject;
public class WriteToAdmins extends MenuItemDescriptor {
@Inject
- public WriteToAdmins(final WriteToAction action, final I18nTranslationService i18n) {
+ public WriteToAdmins(final WriteToAction action, final I18nTranslationService i18n,
+ final GroupSNOptionsMenu optionsMenu) {
super(action);
action.setOnlyToAdmin(true);
withText(i18n.t("Write to the administrators of this group"));
- setParent(GroupSNConfActions.OPTIONS_MENU);
+ setParent(optionsMenu);
setPosition(0);
}
}
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/WriteToBuddyHeaderButton.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/WriteToBuddyHeaderButton.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/WriteToBuddyHeaderButton.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -23,10 +23,10 @@
import cc.kune.common.client.actions.PropertyChangeEvent;
import cc.kune.common.client.actions.PropertyChangeListener;
import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
-import cc.kune.core.client.sn.SimpleContactManager;
+import cc.kune.core.client.contacts.SimpleContactManager;
+import cc.kune.core.client.events.StateChangedEvent;
+import cc.kune.core.client.events.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.StateChangedEvent;
-import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.client.ws.entheader.EntityHeader;
import cc.kune.core.shared.dto.GroupDTO;
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/WriteToMembers.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/WriteToMembers.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/WriteToMembers.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -21,18 +21,18 @@
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.common.shared.i18n.I18nTranslationService;
-import cc.kune.core.client.sn.actions.registry.GroupSNConfActions;
import com.google.inject.Inject;
public class WriteToMembers extends MenuItemDescriptor {
@Inject
- public WriteToMembers(final WriteToAction action, final I18nTranslationService i18n) {
+ public WriteToMembers(final WriteToAction action, final I18nTranslationService i18n,
+ final GroupSNOptionsMenu optionsMenu) {
super(action);
action.setOnlyToAdmin(false);
withText(i18n.t("Write to the members of this group"));
- setParent(GroupSNConfActions.OPTIONS_MENU);
+ setParent(optionsMenu);
setPosition(0);
}
}
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsBuddieCondition.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsBuddieCondition.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsBuddieCondition.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -22,7 +22,7 @@
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
import cc.kune.common.client.actions.ui.descrip.GuiAddCondition;
import cc.kune.common.client.errors.UIException;
-import cc.kune.core.client.sn.SimpleContactManager;
+import cc.kune.core.client.contacts.SimpleContactManager;
import cc.kune.core.client.state.Session;
import cc.kune.core.shared.dto.GroupDTO;
import cc.kune.core.shared.dto.UserSimpleDTO;
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsNotBuddieCondition.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsNotBuddieCondition.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/conditions/IsNotBuddieCondition.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -20,7 +20,7 @@
package cc.kune.core.client.sn.actions.conditions;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
-import cc.kune.core.client.sn.SimpleContactManager;
+import cc.kune.core.client.contacts.SimpleContactManager;
import cc.kune.core.client.state.Session;
import com.google.inject.Inject;
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupSNConfActions.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupSNConfActions.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/registry/GroupSNConfActions.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -21,15 +21,18 @@
import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
-import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuRadioItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuTitleItemDescriptor;
-import cc.kune.common.client.actions.ui.descrip.SubMenuDescriptor;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.core.client.events.StateChangedEvent;
+import cc.kune.core.client.events.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.client.sn.GroupSNPresenter;
import cc.kune.core.client.sn.actions.AddEntityToThisGroupAction;
+import cc.kune.core.client.sn.actions.GroupSNModerationSubMenu;
+import cc.kune.core.client.sn.actions.GroupSNOptionsMenu;
+import cc.kune.core.client.sn.actions.GroupSNVisibilitySubMenu;
import cc.kune.core.client.sn.actions.JoinGroupAction;
import cc.kune.core.client.sn.actions.MembersModerationMenuItem;
import cc.kune.core.client.sn.actions.MembersVisibilityMenuItem;
@@ -39,8 +42,6 @@
import cc.kune.core.client.sn.actions.conditions.IsGroupCondition;
import cc.kune.core.client.sn.actions.conditions.IsLoggedCondition;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.StateChangedEvent;
-import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.domain.AdmissionType;
import cc.kune.core.shared.domain.SocialNetworkVisibility;
@@ -60,10 +61,7 @@
@SuppressWarnings("serial")
public class GroupSNConfActions extends AbstractSNActionsRegistry {
- public static final SubMenuDescriptor MODERATION_SUBMENU = new SubMenuDescriptor();
- public static final MenuDescriptor OPTIONS_MENU = new MenuDescriptor();
public static final String OPTIONS_STYLES = "k-sn-options-menu, k-noborder, k-nobackcolor, k-no-backimage, k-btn-min";
- public static final SubMenuDescriptor VISIBILITY_SUBMENU = new SubMenuDescriptor();
@Inject
public GroupSNConfActions(final Session session, final StateManager stateManager,
@@ -72,8 +70,9 @@
final IsLoggedCondition isLoggedCondition, final JoinGroupAction joinGroupAction,
final WriteToMembers writeToMembers, final WriteToAdmins writeToAdmins,
final IsGroupCondition isGroupCondition, final UnJoinFromCurrentGroupAction unJoinGroupAction,
- final AddEntityToThisGroupAction addEntityToThisGroupAction) {
- OPTIONS_MENU.withToolTip(i18n.t("Options")).withIcon(res.arrowdownsitebar()).withStyles(
+ final AddEntityToThisGroupAction addEntityToThisGroupAction, final GroupSNOptionsMenu optionsMenu,
+ final GroupSNModerationSubMenu moderationSubMenu, final GroupSNVisibilitySubMenu visibilitySubMenu) {
+ optionsMenu.withToolTip(i18n.t("Options")).withIcon(res.arrowdownsitebar()).withStyles(
OPTIONS_STYLES);
final MenuRadioItemDescriptor anyoneItem = membersVisibility.get().withVisibility(
SocialNetworkVisibility.anyone);
@@ -87,19 +86,19 @@
AdmissionType.Moderated);
final MenuRadioItemDescriptor openItem = membersModeration.get().withModeration(AdmissionType.Open);
- addImpl(OPTIONS_MENU);
- new MenuTitleItemDescriptor(i18n.t("Options")).withParent(OPTIONS_MENU);
- new MenuItemDescriptor(addEntityToThisGroupAction).withParent(OPTIONS_MENU).setPosition(0);
- new MenuItemDescriptor(unJoinGroupAction).withParent(OPTIONS_MENU).setPosition(1);
+ addImpl(optionsMenu);
+ new MenuTitleItemDescriptor(i18n.t("Options")).withParent(optionsMenu);
+ new MenuItemDescriptor(addEntityToThisGroupAction).withParent(optionsMenu).setPosition(0);
+ new MenuItemDescriptor(unJoinGroupAction).withParent(optionsMenu).setPosition(1);
- VISIBILITY_SUBMENU.withText(i18n.t("Users who can view this member list")).withParent(OPTIONS_MENU);
- MODERATION_SUBMENU.withText(i18n.t("New members policy")).withParent(OPTIONS_MENU);
- anyoneItem.withParent(VISIBILITY_SUBMENU).withText(i18n.t("anyone"));
- onlyMembersItem.withParent(VISIBILITY_SUBMENU).withText(i18n.t("only members"));
- onlyAdminsItem.withParent(VISIBILITY_SUBMENU).withText(i18n.t("only administrators"));
- moderatedItem.withParent(MODERATION_SUBMENU).withText(i18n.t("moderate request to join"));
- openItem.withParent(MODERATION_SUBMENU).withText(i18n.t("auto accept request to join"));
- closedItem.withParent(MODERATION_SUBMENU).withText(i18n.t("closed for new members"));
+ visibilitySubMenu.withText(i18n.t("Users who can view this member list")).withParent(optionsMenu);
+ moderationSubMenu.withText(i18n.t("New members policy")).withParent(optionsMenu);
+ anyoneItem.withParent(visibilitySubMenu).withText(i18n.t("anyone"));
+ onlyMembersItem.withParent(visibilitySubMenu).withText(i18n.t("only members"));
+ onlyAdminsItem.withParent(visibilitySubMenu).withText(i18n.t("only administrators"));
+ moderatedItem.withParent(moderationSubMenu).withText(i18n.t("moderate request to join"));
+ openItem.withParent(moderationSubMenu).withText(i18n.t("auto accept request to join"));
+ closedItem.withParent(moderationSubMenu).withText(i18n.t("closed for new members"));
final ButtonDescriptor joinBtn = new ButtonDescriptor(joinGroupAction);
// final ButtonDescriptor unJoinBtn = new
@@ -116,8 +115,8 @@
@Override
public void onStateChanged(final StateChangedEvent event) {
final boolean administrable = event.getState().getGroupRights().isAdministrable();
- OPTIONS_MENU.setVisible(administrable);
- OPTIONS_MENU.setEnabled(administrable);
+ optionsMenu.setVisible(administrable);
+ optionsMenu.setEnabled(administrable);
final StateAbstractDTO state = event.getState();
final GroupDTO currentGroup = state.getGroup();
if (currentGroup.isNotPersonal()) {
Modified: trunk/src/main/java/cc/kune/core/client/sn/actions/registry/UserSNConfActions.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/actions/registry/UserSNConfActions.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/sn/actions/registry/UserSNConfActions.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -25,14 +25,14 @@
import cc.kune.common.client.actions.ui.descrip.MenuRadioItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.SubMenuDescriptor;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.core.client.events.StateChangedEvent;
+import cc.kune.core.client.events.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.client.sn.UserSNPresenter;
import cc.kune.core.client.sn.actions.AddNewBuddiesAction;
import cc.kune.core.client.sn.actions.UserSNVisibilityMenuItem;
import cc.kune.core.client.sn.actions.conditions.IsGroupCondition;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.StateChangedEvent;
-import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.domain.UserSNetVisibility;
import cc.kune.core.shared.dto.StateAbstractDTO;
Deleted: trunk/src/main/java/cc/kune/core/client/state/AccessRightsChangedEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/AccessRightsChangedEvent.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/state/AccessRightsChangedEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,115 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.state;
-
-import com.google.gwt.event.shared.EventHandler;
-import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerRegistration;
-import com.google.gwt.event.shared.HasHandlers;
-
-public class AccessRightsChangedEvent extends GwtEvent<AccessRightsChangedEvent.AccessRightsChangedHandler> {
-
- public interface HasAccessRightsChangedHandlers extends HasHandlers {
- HandlerRegistration addAccessRightsChangedHandler(AccessRightsChangedHandler handler);
- }
-
- public interface AccessRightsChangedHandler extends EventHandler {
- public void onAccessRightsChanged(AccessRightsChangedEvent event);
- }
-
- private static final Type<AccessRightsChangedHandler> TYPE = new Type<AccessRightsChangedHandler>();
-
- public static void fire(HasHandlers source, cc.kune.core.shared.domain.utils.AccessRights previousRights, cc.kune.core.shared.domain.utils.AccessRights currentRights) {
- source.fireEvent(new AccessRightsChangedEvent(previousRights, currentRights));
- }
-
- public static Type<AccessRightsChangedHandler> getType() {
- return TYPE;
- }
-
- cc.kune.core.shared.domain.utils.AccessRights previousRights;
- cc.kune.core.shared.domain.utils.AccessRights currentRights;
-
- public AccessRightsChangedEvent(cc.kune.core.shared.domain.utils.AccessRights previousRights, cc.kune.core.shared.domain.utils.AccessRights currentRights) {
- this.previousRights = previousRights;
- this.currentRights = currentRights;
- }
-
- protected AccessRightsChangedEvent() {
- // Possibly for serialization.
- }
-
- @Override
- public Type<AccessRightsChangedHandler> getAssociatedType() {
- return TYPE;
- }
-
- public cc.kune.core.shared.domain.utils.AccessRights getPreviousRights() {
- return previousRights;
- }
-
- public cc.kune.core.shared.domain.utils.AccessRights getCurrentRights() {
- return currentRights;
- }
-
- @Override
- protected void dispatch(AccessRightsChangedHandler handler) {
- handler.onAccessRightsChanged(this);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- AccessRightsChangedEvent other = (AccessRightsChangedEvent) obj;
- if (previousRights == null) {
- if (other.previousRights != null)
- return false;
- } else if (!previousRights.equals(other.previousRights))
- return false;
- if (currentRights == null) {
- if (other.currentRights != null)
- return false;
- } else if (!currentRights.equals(other.currentRights))
- return false;
- return true;
- }
-
- @Override
- public int hashCode() {
- int hashCode = 23;
- hashCode = (hashCode * 37) + (previousRights == null ? 1 : previousRights.hashCode());
- hashCode = (hashCode * 37) + (currentRights == null ? 1 : currentRights.hashCode());
- return hashCode;
- }
-
- @Override
- public String toString() {
- return "AccessRightsChangedEvent["
- + previousRights
- + ","
- + currentRights
- + "]";
- }
-}
Modified: trunk/src/main/java/cc/kune/core/client/state/AccessRightsClientManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/AccessRightsClientManager.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/state/AccessRightsClientManager.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -19,7 +19,9 @@
*/
package cc.kune.core.client.state;
-import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler;
+import cc.kune.core.client.events.AccessRightsChangedEvent;
+import cc.kune.core.client.events.StateChangedEvent;
+import cc.kune.core.client.events.StateChangedEvent.StateChangedHandler;
import cc.kune.core.shared.domain.utils.AccessRights;
import cc.kune.core.shared.dto.StateAbstractDTO;
Deleted: trunk/src/main/java/cc/kune/core/client/state/ContentCacheDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/ContentCacheDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/state/ContentCacheDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,107 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.state;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import cc.kune.common.client.notify.ProgressShowEvent;
-import cc.kune.core.client.init.AppStartEvent;
-import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
-import cc.kune.core.client.rpcservices.ContentServiceAsync;
-import cc.kune.core.client.state.UserSignInOrSignOutEvent.UserSignInOrSignOutHandler;
-import cc.kune.core.shared.domain.utils.StateToken;
-import cc.kune.core.shared.dto.StateAbstractDTO;
-
-import com.google.gwt.event.shared.EventBus;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.google.inject.Inject;
-
-public class ContentCacheDefault implements ContentCache {
- private final Map<StateToken, StateAbstractDTO> cacheMap;
- private final EventBus eventBus;
- private final ContentServiceAsync server;
- private boolean useCache = false;
-
- @Inject
- public ContentCacheDefault(final ContentServiceAsync server, final EventBus eventBus,
- final Session session) {
- this.server = server;
- this.eventBus = eventBus;
- this.cacheMap = new HashMap<StateToken, StateAbstractDTO>();
- // Better, don't use while we don't check changes in the server (by others)
- // and we do server pub/sub
- session.onAppStart(true, new AppStartHandler() {
- @Override
- public void onAppStart(final AppStartEvent event) {
- useCache = event.getInitData().useClientContentCache();
- }
- });
- useCache = true;
- session.onUserSignInOrSignOut(false, new UserSignInOrSignOutHandler() {
- @Override
- public void onUserSignInOrSignOut(final UserSignInOrSignOutEvent event) {
- cacheMap.clear();
- }
- });
- }
-
- @Override
- public void cache(final StateToken encodeState, final StateAbstractDTO content) {
- assert encodeState != null;
- if (useCache) {
- cacheMap.put(encodeState, content);
- }
- }
-
- private StateAbstractDTO getCached(final StateToken newState) {
- assert newState != null;
- return useCache ? cacheMap.get(newState) : null;
- }
-
- @Override
- public void getContent(final String user, final StateToken newState,
- final AsyncCallback<StateAbstractDTO> callback) {
- assert newState != null;
- eventBus.fireEvent(new ProgressShowEvent(""));
- final StateAbstractDTO catched = getCached(newState);
- if (catched != null) {
- callback.onSuccess(catched);
- } else {
- // NotifyUser.info("Getting state of: " + newState, true);
- server.getContent(user, newState, callback);
- }
- }
-
- @Override
- public void remove(final StateToken token) {
- cacheMap.remove(token);
- }
-
- @Override
- public void removeCacheOfGroup(final String group) {
- for (final StateToken entry : cacheMap.keySet()) {
- if (entry.getGroup().equals(group)) {
- cacheMap.put(entry, null);
- }
- }
- }
-
-}
Deleted: trunk/src/main/java/cc/kune/core/client/state/GroupChangedEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/GroupChangedEvent.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/state/GroupChangedEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,115 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.state;
-
-import com.google.gwt.event.shared.EventHandler;
-import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerRegistration;
-import com.google.gwt.event.shared.HasHandlers;
-
-public class GroupChangedEvent extends GwtEvent<GroupChangedEvent.GroupChangedHandler> {
-
- public interface HasGroupChangedHandlers extends HasHandlers {
- HandlerRegistration addGroupChangedHandler(GroupChangedHandler handler);
- }
-
- public interface GroupChangedHandler extends EventHandler {
- public void onGroupChanged(GroupChangedEvent event);
- }
-
- private static final Type<GroupChangedHandler> TYPE = new Type<GroupChangedHandler>();
-
- public static void fire(HasHandlers source, java.lang.String previousGroup, java.lang.String newGroup) {
- source.fireEvent(new GroupChangedEvent(previousGroup, newGroup));
- }
-
- public static Type<GroupChangedHandler> getType() {
- return TYPE;
- }
-
- java.lang.String previousGroup;
- java.lang.String newGroup;
-
- public GroupChangedEvent(java.lang.String previousGroup, java.lang.String newGroup) {
- this.previousGroup = previousGroup;
- this.newGroup = newGroup;
- }
-
- protected GroupChangedEvent() {
- // Possibly for serialization.
- }
-
- @Override
- public Type<GroupChangedHandler> getAssociatedType() {
- return TYPE;
- }
-
- public java.lang.String getPreviousGroup() {
- return previousGroup;
- }
-
- public java.lang.String getNewGroup() {
- return newGroup;
- }
-
- @Override
- protected void dispatch(GroupChangedHandler handler) {
- handler.onGroupChanged(this);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- GroupChangedEvent other = (GroupChangedEvent) obj;
- if (previousGroup == null) {
- if (other.previousGroup != null)
- return false;
- } else if (!previousGroup.equals(other.previousGroup))
- return false;
- if (newGroup == null) {
- if (other.newGroup != null)
- return false;
- } else if (!newGroup.equals(other.newGroup))
- return false;
- return true;
- }
-
- @Override
- public int hashCode() {
- int hashCode = 23;
- hashCode = (hashCode * 37) + (previousGroup == null ? 1 : previousGroup.hashCode());
- hashCode = (hashCode * 37) + (newGroup == null ? 1 : newGroup.hashCode());
- return hashCode;
- }
-
- @Override
- public String toString() {
- return "GroupChangedEvent["
- + previousGroup
- + ","
- + newGroup
- + "]";
- }
-}
Deleted: trunk/src/main/java/cc/kune/core/client/state/HistoryWrapperDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/HistoryWrapperDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/state/HistoryWrapperDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,41 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.state;
-
-import com.google.gwt.user.client.History;
-
-public class HistoryWrapperDefault implements HistoryWrapper {
-
- @Override
- public String getToken() {
- return History.getToken();
- }
-
- @Override
- public void newItem(final String historyToken) {
- History.newItem(historyToken);
- }
-
- @Override
- public void newItem(final String historyToken, final boolean issueEvent) {
- History.newItem(historyToken, issueEvent);
- }
-
-}
Modified: trunk/src/main/java/cc/kune/core/client/state/Session.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/Session.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/state/Session.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -41,7 +41,10 @@
import java.util.Collection;
import java.util.List;
-import cc.kune.core.client.init.AppStartEvent;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignInOrSignOutEvent;
+import cc.kune.core.client.events.UserSignOutEvent;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.I18nCountryDTO;
Deleted: trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,373 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.state;
-
-import java.util.Collection;
-import java.util.List;
-
-import cc.kune.common.client.log.Log;
-import cc.kune.core.client.cookies.CookiesManager;
-import cc.kune.core.client.init.AppStartEvent;
-import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
-import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
-import cc.kune.core.client.rpcservices.UserServiceAsync;
-import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
-import cc.kune.core.client.state.UserSignInOrSignOutEvent.UserSignInOrSignOutHandler;
-import cc.kune.core.client.state.UserSignOutEvent.UserSignOutHandler;
-import cc.kune.core.shared.domain.utils.StateToken;
-import cc.kune.core.shared.dto.I18nCountryDTO;
-import cc.kune.core.shared.dto.I18nLanguageDTO;
-import cc.kune.core.shared.dto.I18nLanguageSimpleDTO;
-import cc.kune.core.shared.dto.InitDataDTO;
-import cc.kune.core.shared.dto.LicenseDTO;
-import cc.kune.core.shared.dto.StateAbstractDTO;
-import cc.kune.core.shared.dto.StateContainerDTO;
-import cc.kune.core.shared.dto.StateContentDTO;
-import cc.kune.core.shared.dto.ToolSimpleDTO;
-import cc.kune.core.shared.dto.UserInfoDTO;
-import cc.kune.core.shared.dto.UserSimpleDTO;
-
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.event.shared.EventBus;
-import com.google.inject.Inject;
-import com.google.inject.Provider;
-
-public class SessionDefault implements Session {
- private final CookiesManager cookieManager;
- private Object[][] countriesArray;
- private I18nLanguageDTO currentLanguage;
- private StateAbstractDTO currentState;
- private UserInfoDTO currentUserInfo;
- private final EventBus eventBus;
- private InitDataDTO initData;
- private Object[][] languagesArray;
- private Object[][] timezonesArray;
- private String userHash;
- private final Provider<UserServiceAsync> userServiceProvider;
-
- @Inject
- public SessionDefault(final CookiesManager cookieManager,
- final Provider<UserServiceAsync> userServiceProvider, final EventBus eventBus) {
- this.cookieManager = cookieManager;
- this.eventBus = eventBus;
- this.userHash = cookieManager.getAuthCookie();
- this.userHash = userHash == null || userHash.equals("null") ? null : userHash;
- this.userServiceProvider = userServiceProvider;
- languagesArray = null;
- check(new AsyncCallbackSimple<Void>() {
- @Override
- public void onSuccess(final Void result) {
- }
- });
- }
-
- @Override
- public void check(final AsyncCallbackSimple<Void> callback) {
- Log.debug("Checking session (userhash: " + getUserHash() + ")");
- userServiceProvider.get().onlyCheckSession(getUserHash(), callback);
- }
-
- @Override
- public StateContainerDTO getContainerState() {
- return (StateContainerDTO) currentState;
- }
-
- @Override
- public StateContentDTO getContentState() {
- return (StateContentDTO) currentState;
- }
-
- @Override
- public List<I18nCountryDTO> getCountries() {
- return initData.getCountries();
- }
-
- @Override
- public Object[][] getCountriesArray() {
- if (countriesArray == null) {
- countriesArray = mapCountries();
- }
- return countriesArray.clone();
- }
-
- @Override
- public String getCurrentCCversion() {
- return initData.getCurrentCCversion();
- }
-
- @Override
- public String getCurrentGroupShortName() {
- return currentState == null ? null : currentState.getStateToken().getGroup();
- }
-
- @Override
- public I18nLanguageDTO getCurrentLanguage() {
- return currentLanguage;
- }
-
- @Override
- public StateAbstractDTO getCurrentState() {
- return currentState;
- }
-
- @Override
- public StateToken getCurrentStateToken() {
- return currentState == null ? null : currentState.getStateToken();
- }
-
- @Override
- public UserSimpleDTO getCurrentUser() {
- return currentUserInfo == null ? null : currentUserInfo.getUser();
- }
-
- @Override
- public UserInfoDTO getCurrentUserInfo() {
- return currentUserInfo;
- }
-
- @Override
- public LicenseDTO getDefLicense() {
- return initData.getDefaultLicense();
- }
-
- @Override
- public String getGalleryPermittedExtensions() {
- return initData.getGalleryPermittedExtensions();
- }
-
- @Override
- public Collection<ToolSimpleDTO> getGroupTools() {
- return initData.getGroupTools();
- }
-
- @Override
- public int getImgCropsize() {
- return initData.getImgCropsize();
- }
-
- @Override
- public int getImgIconsize() {
- return initData.getImgIconsize();
- }
-
- @Override
- public int getImgResizewidth() {
- return initData.getImgResizewidth();
- }
-
- @Override
- public int getImgThumbsize() {
- return initData.getImgThumbsize();
- }
-
- @Override
- public InitDataDTO getInitData() {
- return initData;
- }
-
- @Override
- public List<I18nLanguageSimpleDTO> getLanguages() {
- return initData.getLanguages();
- }
-
- @Override
- public Object[][] getLanguagesArray() {
- if (languagesArray == null) {
- languagesArray = mapLangs();
- }
- return languagesArray.clone();
- }
-
- @Override
- public List<LicenseDTO> getLicenses() {
- return initData.getLicenses();
- }
-
- @Override
- public boolean getShowDeletedContent() {
- return currentUserInfo == null ? false : currentUserInfo.getShowDeletedContent();
- }
-
- @Override
- public String getSiteUrl() {
- final String baseURL = GWT.getModuleBaseURL();
- return baseURL.substring(0, baseURL.lastIndexOf("/" + GWT.getModuleName()));
- }
-
- @Override
- public Object[][] getTimezones() {
- if (timezonesArray == null) {
- mapTimezones();
- }
- return timezonesArray.clone();
- }
-
- @Override
- public String getUserHash() {
- return userHash;
- }
-
- @Override
- public Collection<ToolSimpleDTO> getUserTools() {
- return initData.getUserTools();
- }
-
- @Override
- public boolean inSameToken(final StateToken token) {
- return getCurrentStateToken().equals(token);
- }
-
- @Override
- public boolean isCurrentStateAContent() {
- return currentState instanceof StateContentDTO;
- }
-
- @Override
- public boolean isCurrentStateAGroup() {
- return currentState == null ? false : !currentState.getGroup().isPersonal();
- }
-
- @Override
- public boolean isCurrentStateAPerson() {
- return currentState == null ? false : currentState.getGroup().isPersonal();
- }
-
- @Override
- public boolean isInCurrentUserSpace() {
- if (!isLogged()) {
- return false;
- }
- if (getCurrentStateToken().getGroup().equals(getCurrentUser().getShortName())) {
- return true;
- }
- return false;
- }
-
- @Override
- public boolean isLogged() {
- return userHash != null;
- }
-
- @Override
- public boolean isNotLogged() {
- return !isLogged();
- }
-
- private Object[][] mapCountries() {
- assert initData != null;
- final Object[][] objs = new Object[initData.getCountries().size()][1];
- int i = 0;
- for (final I18nCountryDTO country : initData.getCountries()) {
- final Object[] obj = new Object[] { country.getCode(), country.getEnglishName() };
- objs[i++] = obj;
- }
- return objs;
- }
-
- private Object[][] mapLangs() {
- assert initData != null;
- final Object[][] objs = new Object[initData.getLanguages().size()][1];
- int i = 0;
- for (final I18nLanguageSimpleDTO language : initData.getLanguages()) {
- final Object[] obj = new Object[] { language.getCode(), language.getEnglishName() };
- objs[i++] = obj;
- }
- return objs;
- }
-
- private void mapTimezones() {
- assert initData != null;
- timezonesArray = new Object[initData.getTimezones().length][1];
- for (int i = 0; i < getTimezones().length; i++) {
- final Object[] obj = new Object[] { initData.getTimezones()[i] };
- timezonesArray[i] = obj;
- }
- }
-
- @Override
- public void onAppStart(final boolean fireNow, final AppStartHandler handler) {
- eventBus.addHandler(AppStartEvent.getType(), handler);
- if (fireNow && initData != null) {
- handler.onAppStart(new AppStartEvent(initData));
- }
- }
-
- @Override
- public void onUserSignIn(final boolean fireNow, final UserSignInHandler handler) {
- eventBus.addHandler(UserSignInEvent.getType(), handler);
- if (fireNow && isLogged() && currentUserInfo != null) {
- handler.onUserSignIn(new UserSignInEvent(currentUserInfo));
- }
- }
-
- @Override
- public void onUserSignInOrSignOut(final boolean fireNow, final UserSignInOrSignOutHandler handler) {
- eventBus.addHandler(UserSignInOrSignOutEvent.getType(), handler);
- if (fireNow) {
- handler.onUserSignInOrSignOut(new UserSignInOrSignOutEvent(isLogged()));
- }
- }
-
- @Override
- public void onUserSignOut(final boolean fireNow, final UserSignOutHandler handler) {
- eventBus.addHandler(UserSignOutEvent.getType(), handler);
- if (fireNow && isNotLogged()) {
- handler.onUserSignOut(new UserSignOutEvent());
- }
- }
-
- @Override
- public void setCurrentLanguage(final I18nLanguageDTO currentLanguage) {
- this.currentLanguage = currentLanguage;
- }
-
- @Override
- public void setCurrentState(final StateAbstractDTO currentState) {
- this.currentState = currentState;
- }
-
- @Override
- public void setCurrentUserInfo(final UserInfoDTO currentUserInfo) {
- this.currentUserInfo = currentUserInfo;
- if (currentUserInfo != null) {
- eventBus.fireEvent(new UserSignInEvent(this.currentUserInfo));
- } else {
- eventBus.fireEvent(new UserSignOutEvent());
- }
- eventBus.fireEvent(new UserSignInOrSignOutEvent(isLogged()));
- }
-
- @Override
- public void setInitData(final InitDataDTO initData) {
- this.initData = initData;
- }
-
- @Override
- public void setUserHash(final String userHash) {
- this.userHash = userHash;
- }
-
- @Override
- public void signOut() {
- cookieManager.removeAuthCookie();
- setUserHash(null);
- setCurrentUserInfo(null);
- }
-}
Deleted: trunk/src/main/java/cc/kune/core/client/state/SocialNetworkChangedEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/SocialNetworkChangedEvent.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/state/SocialNetworkChangedEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,101 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.state;
-
-import com.google.gwt.event.shared.EventHandler;
-import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerRegistration;
-import com.google.gwt.event.shared.HasHandlers;
-
-public class SocialNetworkChangedEvent extends GwtEvent<SocialNetworkChangedEvent.SocialNetworkChangedHandler> {
-
- public interface HasSocialNetworkChangedHandlers extends HasHandlers {
- HandlerRegistration addSocialNetworkChangedHandler(SocialNetworkChangedHandler handler);
- }
-
- public interface SocialNetworkChangedHandler extends EventHandler {
- public void onSocialNetworkChanged(SocialNetworkChangedEvent event);
- }
-
- private static final Type<SocialNetworkChangedHandler> TYPE = new Type<SocialNetworkChangedHandler>();
-
- public static void fire(HasHandlers source, cc.kune.core.shared.dto.StateAbstractDTO state) {
- source.fireEvent(new SocialNetworkChangedEvent(state));
- }
-
- public static Type<SocialNetworkChangedHandler> getType() {
- return TYPE;
- }
-
- cc.kune.core.shared.dto.StateAbstractDTO state;
-
- public SocialNetworkChangedEvent(cc.kune.core.shared.dto.StateAbstractDTO state) {
- this.state = state;
- }
-
- protected SocialNetworkChangedEvent() {
- // Possibly for serialization.
- }
-
- @Override
- public Type<SocialNetworkChangedHandler> getAssociatedType() {
- return TYPE;
- }
-
- public cc.kune.core.shared.dto.StateAbstractDTO getState() {
- return state;
- }
-
- @Override
- protected void dispatch(SocialNetworkChangedHandler handler) {
- handler.onSocialNetworkChanged(this);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- SocialNetworkChangedEvent other = (SocialNetworkChangedEvent) obj;
- if (state == null) {
- if (other.state != null)
- return false;
- } else if (!state.equals(other.state))
- return false;
- return true;
- }
-
- @Override
- public int hashCode() {
- int hashCode = 23;
- hashCode = (hashCode * 37) + (state == null ? 1 : state.hashCode());
- return hashCode;
- }
-
- @Override
- public String toString() {
- return "SocialNetworkChangedEvent["
- + state
- + "]";
- }
-}
Deleted: trunk/src/main/java/cc/kune/core/client/state/StateChangedEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/StateChangedEvent.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/state/StateChangedEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,101 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.state;
-
-import com.google.gwt.event.shared.EventHandler;
-import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerRegistration;
-import com.google.gwt.event.shared.HasHandlers;
-
-public class StateChangedEvent extends GwtEvent<StateChangedEvent.StateChangedHandler> {
-
- public interface HasStateChangedHandlers extends HasHandlers {
- HandlerRegistration addStateChangedHandler(StateChangedHandler handler);
- }
-
- public interface StateChangedHandler extends EventHandler {
- public void onStateChanged(StateChangedEvent event);
- }
-
- private static final Type<StateChangedHandler> TYPE = new Type<StateChangedHandler>();
-
- public static void fire(HasHandlers source, cc.kune.core.shared.dto.StateAbstractDTO state) {
- source.fireEvent(new StateChangedEvent(state));
- }
-
- public static Type<StateChangedHandler> getType() {
- return TYPE;
- }
-
- cc.kune.core.shared.dto.StateAbstractDTO state;
-
- public StateChangedEvent(cc.kune.core.shared.dto.StateAbstractDTO state) {
- this.state = state;
- }
-
- protected StateChangedEvent() {
- // Possibly for serialization.
- }
-
- @Override
- public Type<StateChangedHandler> getAssociatedType() {
- return TYPE;
- }
-
- public cc.kune.core.shared.dto.StateAbstractDTO getState() {
- return state;
- }
-
- @Override
- protected void dispatch(StateChangedHandler handler) {
- handler.onStateChanged(this);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- StateChangedEvent other = (StateChangedEvent) obj;
- if (state == null) {
- if (other.state != null)
- return false;
- } else if (!state.equals(other.state))
- return false;
- return true;
- }
-
- @Override
- public int hashCode() {
- int hashCode = 23;
- hashCode = (hashCode * 37) + (state == null ? 1 : state.hashCode());
- return hashCode;
- }
-
- @Override
- public String toString() {
- return "StateChangedEvent["
- + state
- + "]";
- }
-}
Modified: trunk/src/main/java/cc/kune/core/client/state/StateManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/StateManager.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/state/StateManager.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -20,6 +20,10 @@
package cc.kune.core.client.state;
import cc.kune.common.client.actions.BeforeActionListener;
+import cc.kune.core.client.events.GroupChangedEvent;
+import cc.kune.core.client.events.SocialNetworkChangedEvent;
+import cc.kune.core.client.events.StateChangedEvent;
+import cc.kune.core.client.events.ToolChangedEvent;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.SocialNetworkDataDTO;
import cc.kune.core.shared.dto.StateAbstractDTO;
Deleted: trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,461 +0,0 @@
-/*
- *
-
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.state;
-
-import org.waveprotocol.box.webclient.client.ClientEvents;
-import org.waveprotocol.box.webclient.client.events.WaveSelectionEvent;
-import org.waveprotocol.wave.model.waveref.InvalidWaveRefException;
-import org.waveprotocol.wave.util.escapers.GwtWaverefEncoder;
-
-import cc.kune.common.client.actions.BeforeActionCollection;
-import cc.kune.common.client.actions.BeforeActionListener;
-import cc.kune.common.client.log.Log;
-import cc.kune.common.client.notify.ProgressHideEvent;
-import cc.kune.common.client.utils.Pair;
-import cc.kune.core.client.events.GoHomeEvent;
-import cc.kune.core.client.init.AppStartEvent;
-import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
-import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
-import cc.kune.core.client.sitebar.spaces.Space;
-import cc.kune.core.client.sitebar.spaces.SpaceConfEvent;
-import cc.kune.core.client.sitebar.spaces.SpaceSelectEvent;
-import cc.kune.core.client.state.GroupChangedEvent.GroupChangedHandler;
-import cc.kune.core.client.state.SocialNetworkChangedEvent.SocialNetworkChangedHandler;
-import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler;
-import cc.kune.core.client.state.ToolChangedEvent.ToolChangedHandler;
-import cc.kune.core.shared.domain.utils.StateToken;
-import cc.kune.core.shared.dto.SocialNetworkDataDTO;
-import cc.kune.core.shared.dto.StateAbstractDTO;
-
-import com.google.gwt.event.logical.shared.ValueChangeEvent;
-import com.google.gwt.event.logical.shared.ValueChangeHandler;
-import com.google.gwt.event.shared.EventBus;
-import com.google.inject.Inject;
-
-public class StateManagerDefault implements StateManager, ValueChangeHandler<String> {
- private final BeforeActionCollection beforeStateChangeCollection;
- private final ContentCache contentCache;
- private final EventBus eventBus;
- private final HistoryWrapper history;
- private StateToken previousGroupToken;
- /**
- * When a historyChanged is interrupted (for instance because you are editing
- * something), the new history token is stored here
- */
- private String resumedHistoryToken;
- private final Session session;
- private final SiteTokenListeners siteTokens;
- private final TokenMatcher tokenMatcher;
-
- @Inject
- public StateManagerDefault(final ContentCache contentProvider, final Session session,
- final HistoryWrapper history, final TokenMatcher tokenMatcher, final EventBus eventBus,
- final SiteTokenListeners siteTokens) {
- this.tokenMatcher = tokenMatcher;
- this.eventBus = eventBus;
- this.contentCache = contentProvider;
- this.session = session;
- this.history = history;
- this.previousGroupToken = null;
- this.resumedHistoryToken = null;
- tokenMatcher.init(GwtWaverefEncoder.INSTANCE);
- this.siteTokens = siteTokens;
- beforeStateChangeCollection = new BeforeActionCollection();
- session.onAppStart(true, new AppStartHandler() {
- @Override
- public void onAppStart(final AppStartEvent event) {
- session.onUserSignIn(false, new UserSignInEvent.UserSignInHandler() {
- @Override
- public void onUserSignIn(final UserSignInEvent event) {
- // refreshCurrentGroupState();
- }
- });
- session.onUserSignOut(false, new UserSignOutEvent.UserSignOutHandler() {
- @Override
- public void onUserSignOut(final UserSignOutEvent event) {
- refreshCurrentStateWithoutCache();
- }
- });
- processCurrentHistoryToken();
- }
- });
- onSocialNetworkChanged(false, new SocialNetworkChangedHandler() {
- @Override
- public void onSocialNetworkChanged(final SocialNetworkChangedEvent event) {
- contentCache.removeCacheOfGroup(event.getState().getStateToken().getGroup());
- }
- });
- eventBus.addHandler(GoHomeEvent.getType(), new GoHomeEvent.GoHomeHandler() {
- @Override
- public void onGoHome(final GoHomeEvent event) {
- gotoDefaultHomepage();
- }
- });
- }
-
- @Override
- public void addBeforeStateChangeListener(final BeforeActionListener listener) {
- beforeStateChangeCollection.add(listener);
- }
-
- @Override
- public void addSiteToken(final String token, final HistoryTokenCallback callback) {
- siteTokens.put(token.toLowerCase(), callback);
- }
-
- private void checkGroupAndToolChange(final StateAbstractDTO newState) {
- final String newGroup = newState.getStateToken().getGroup();
- final String previousGroup = getPreviousGroup();
- if (startingUp() || !previousGroup.equals(newGroup)) {
- GroupChangedEvent.fire(eventBus, previousGroup, newGroup);
- }
- final String previousToolName = getPreviousTool();
- final String newTokenTool = newState.getStateToken().getTool();
- final String newToolName = newTokenTool == null ? "" : newTokenTool;
- if (startingUp() || previousToolName == null || !previousToolName.equals(newToolName)) {
- ToolChangedEvent.fire(eventBus, previousGroupToken, newState.getStateToken());
- }
- }
-
- private void getContent(final StateToken newState) {
- getContent(newState, false);
- }
-
- private void getContent(final StateToken newState, final boolean setBrowserHistory) {
- // NotifyUser.info("loading: " + newState + " because current:" +
- // session.getCurrentStateToken());
- contentCache.getContent(session.getUserHash(), newState,
- new AsyncCallbackSimple<StateAbstractDTO>() {
- @Override
- public void onSuccess(final StateAbstractDTO newState) {
- setState(newState);
- final String currentToken = newState.getStateToken().toString();
- SpaceConfEvent.fire(eventBus, Space.groupSpace, currentToken);
- SpaceConfEvent.fire(eventBus, Space.publicSpace, TokenUtils.preview(currentToken));
- if (setBrowserHistory) {
- history.newItem(currentToken, false);
- SpaceSelectEvent.fire(eventBus, Space.groupSpace);
- }
- }
- });
- }
-
- @Override
- public String getCurrentToken() {
- return history.getToken();
- }
-
- private String getPreviousGroup() {
- final String previousGroup = startingUp() ? "" : previousGroupToken.getGroup();
- return previousGroup;
- }
-
- private String getPreviousTool() {
- final String previousTool = startingUp() ? "" : previousGroupToken.getTool();
- return previousTool;
- }
-
- @Override
- public void gotoDefaultHomepage() {
- getContent(new StateToken(SiteTokens.GROUP_HOME), true);
- }
-
- @Override
- public void gotoHistoryToken(final String token) {
- Log.debug("StateManager: history goto-string-token: " + token);
- history.newItem(token);
- }
-
- @Override
- public void gotoHistoryTokenButRedirectToCurrent(final String token) {
- gotoHistoryToken(TokenUtils.addRedirect(token, history.getToken()));
-
- }
-
- @Override
- public void gotoStateToken(final StateToken newToken) {
- Log.debug("StateManager: history goto-token: " + newToken + ", previous: " + previousGroupToken);
- history.newItem(newToken.getEncoded());
- }
-
- @Override
- public void gotoStateToken(final StateToken token, final boolean useCache) {
- if (!useCache) {
- contentCache.remove(token);
- }
- gotoStateToken(token);
- }
-
- @Override
- public void onGroupChanged(final boolean fireNow, final GroupChangedHandler handler) {
- eventBus.addHandler(GroupChangedEvent.getType(), handler);
- final StateAbstractDTO currentState = session.getCurrentState();
- if (fireNow && currentState != null) {
- handler.onGroupChanged(new GroupChangedEvent(getPreviousGroup(),
- currentState.getStateToken().getGroup()));
- }
-
- }
-
- @Override
- public void onSocialNetworkChanged(final boolean fireNow, final SocialNetworkChangedHandler handler) {
- eventBus.addHandler(SocialNetworkChangedEvent.getType(), handler);
- final StateAbstractDTO currentState = session.getCurrentState();
- if (fireNow && currentState != null) {
- handler.onSocialNetworkChanged(new SocialNetworkChangedEvent(currentState));
- }
- }
-
- @Override
- public void onStateChanged(final boolean fireNow, final StateChangedHandler handler) {
- eventBus.addHandler(StateChangedEvent.getType(), handler);
- final StateAbstractDTO currentState = session.getCurrentState();
- if (fireNow && currentState != null) {
- handler.onStateChanged(new StateChangedEvent(currentState));
- }
- }
-
- @Override
- public void onToolChanged(final boolean fireNow, final ToolChangedHandler handler) {
- eventBus.addHandler(ToolChangedEvent.getType(), handler);
- final StateAbstractDTO currentState = session.getCurrentState();
- if (fireNow && currentState != null) {
- handler.onToolChanged(new ToolChangedEvent(previousGroupToken, currentState.getStateToken()));
- }
- }
-
- @Override
- public void onValueChange(final ValueChangeEvent<String> event) {
- Log.info("History event value changed: " + event.getValue());
- processHistoryToken(event.getValue());
- }
-
- private void processCurrentHistoryToken() {
- processHistoryToken(history.getToken());
- }
-
- void processHistoryToken(final String newHistoryToken) {
- // http://code.google.com/p/google-web-toolkit-doc-1-5/wiki/DevGuideHistory
- if (beforeStateChangeCollection.checkBeforeAction()) {
- // There isn't a beforeStateChange listener that stops this history
- // change
- HistoryTokenCallback tokenListener = null;
- if (newHistoryToken != null) {
- final String nToken = newHistoryToken.toLowerCase();
- tokenListener = siteTokens.get(nToken);
- }
- Log.debug("StateManager: on history changed (" + newHistoryToken + ")");
- if (tokenListener == null) {
- // Log.debug("Is not a special hash");
- // token is not one of #newgroup #signin #translate ...
- final String nToken = newHistoryToken != null ? newHistoryToken.toLowerCase() : null;
- if (nToken != null && tokenMatcher.hasRedirect(nToken)) {
- final Pair<String, String> redirect = tokenMatcher.getRedirect(nToken);
- final String firstToken = redirect.getLeft();
- final String sndToken = redirect.getRight();
- if (firstToken.equals(SiteTokens.PREVIEW)) {
- SpaceSelectEvent.fire(eventBus, Space.publicSpace);
- SpaceConfEvent.fire(eventBus, Space.groupSpace, sndToken);
- SpaceConfEvent.fire(eventBus, Space.publicSpace, TokenUtils.preview(sndToken));
- getContent(new StateToken(sndToken));
- } else if (firstToken.equals(SiteTokens.SUBTITLES)) {
- siteTokens.get(SiteTokens.SUBTITLES).onHistoryToken(
- tokenMatcher.getRedirect(newHistoryToken).getRight());
- } else if (firstToken.equals(SiteTokens.NEWGROUP)) {
- siteTokens.get(SiteTokens.NEWGROUP).onHistoryToken(newHistoryToken);
- } else if (firstToken.equals(SiteTokens.SIGNIN)) {
- if (session.isLogged()) {
- // We are logged, then redirect:
- history.newItem(sndToken, false);
- processHistoryToken(sndToken);
- } else {
- // We have to loggin
- siteTokens.get(SiteTokens.SIGNIN).onHistoryToken(newHistoryToken);
- }
- }
- } else
- // No redirection
- if (tokenMatcher.isWaveToken(newHistoryToken)) {
- if (session.isLogged()) {
- SpaceConfEvent.fire(eventBus, Space.userSpace, newHistoryToken);
- SpaceSelectEvent.fire(eventBus, Space.userSpace);
- try {
- ClientEvents.get().fireEvent(
- new WaveSelectionEvent(GwtWaverefEncoder.decodeWaveRefFromPath(newHistoryToken)));
- } catch (final InvalidWaveRefException e) {
- Log.error(nToken, e);
- }
- } else {
- // Wave, but don't logged
- history.newItem(TokenUtils.addRedirect(SiteTokens.SIGNIN, newHistoryToken));
- if (startingUp()) {
- // Starting application (with Wave)
- getContent(new StateToken(SiteTokens.GROUP_HOME), false);
- }
- }
- } else if (tokenMatcher.isGroupToken(newHistoryToken)) {
- SpaceConfEvent.fire(eventBus, Space.groupSpace, newHistoryToken);
- SpaceConfEvent.fire(eventBus, Space.publicSpace, TokenUtils.preview(newHistoryToken));
- SpaceSelectEvent.fire(eventBus, Space.groupSpace);
- getContent(new StateToken(newHistoryToken));
- } else {
- gotoDefaultHomepage();
- }
- } else {
- // token is one of #newgroup #signin #translate ...
- if (startingUp()) {
- // Starting with some token like "signin": load defContent
- // also
- getContent(new StateToken(SiteTokens.GROUP_HOME), false);
- // processHistoryToken(SiteTokens.GROUP_HOME);
- // SpaceSelectEvent.fire(eventBus, Space.groupSpace);
- }
- // Fire the listener of this #hash token
- tokenListener.onHistoryToken(newHistoryToken);
- }
- } else {
- resumedHistoryToken = newHistoryToken;
- }
- }
-
- @Override
- public void redirectOrRestorePreviousToken() {
- final String token = history.getToken();
- if (tokenMatcher.hasRedirect(token)) {
- // URL of the form signin(group.tool)
- final String previousToken = tokenMatcher.getRedirect(token).getRight();
- if (previousToken.equals(SiteTokens.WAVEINBOX) && session.isNotLogged()) {
- // signin(inbox) && cancel
- restorePreviousToken();
- } else {
- history.newItem(previousToken); // FIXMEKK
- }
- } else {
- // No redirect then restore previous token
- restorePreviousToken();
- }
- }
-
- /**
- * <p>
- * Reload current state (using client cache if available)
- * </p>
- */
- @Override
- public void refreshCurrentState() {
- processHistoryToken(history.getToken());
- }
-
- /**
- * <p>
- * Reload current state (not using client cache)
- * </p>
- */
- @Override
- public void refreshCurrentStateWithoutCache() {
- final StateToken currentStateToken = session.getCurrentStateToken();
- if (currentStateToken == null) {
- processCurrentHistoryToken();
- } else {
- contentCache.remove(currentStateToken);
- getContent(currentStateToken);
- }
- }
-
- @Override
- public void removeBeforeStateChangeListener(final BeforeActionListener listener) {
- beforeStateChangeCollection.remove(listener);
- }
-
- @Override
- public void removeCache(final StateToken parentToken) {
- contentCache.remove(parentToken);
- }
-
- @Override
- public void removeCacheOfGroup(final String group) {
- contentCache.removeCacheOfGroup(group);
- }
-
- @Override
- public void removeSiteToken(final String token) {
- siteTokens.remove(token);
- }
-
- @Override
- public void restorePreviousToken() {
- if (previousGroupToken != null) {
- gotoStateToken(previousGroupToken);
- }
- }
-
- @Override
- public void resumeTokenChange() {
- if (resumedHistoryToken != null) {
- // Is this reload redundant?
- refreshCurrentState();
- gotoHistoryToken(resumedHistoryToken);
- resumedHistoryToken = null;
- }
- }
-
- @Override
- public void setRetrievedState(final StateAbstractDTO newState) {
- contentCache.cache(newState.getStateToken(), newState);
- }
-
- @Override
- public void setRetrievedStateAndGo(final StateAbstractDTO newState) {
- setRetrievedState(newState);
- final String token = newState.getStateToken().toString();
- if (history.getToken().equals(token)) {
- setState(newState);
- }
- history.newItem(token);
- }
-
- @Override
- public void setSocialNetwork(final SocialNetworkDataDTO socialNet) {
- StateAbstractDTO state;
- if (session != null && (state = session.getCurrentState()) != null) {
- // After a SN operation, usually returns a SocialNetworkResultDTO
- // with new SN data and we refresh the state
- // to avoid to reload() again the state
- state.setSocialNetworkData(socialNet);
- SocialNetworkChangedEvent.fire(eventBus, state);
- }
- }
-
- void setState(final StateAbstractDTO newState) {
- session.setCurrentState(newState);
- final StateToken newToken = newState.getStateToken();
- contentCache.cache(newToken, newState);
- // history.newItem(newToken.toString(), false);
- StateChangedEvent.fire(eventBus, newState);
- checkGroupAndToolChange(newState);
- previousGroupToken = newToken.copy();
- eventBus.fireEvent(new ProgressHideEvent());
- }
-
- private boolean startingUp() {
- return previousGroupToken == null;
- }
-}
Deleted: trunk/src/main/java/cc/kune/core/client/state/ToolChangedEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/ToolChangedEvent.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/state/ToolChangedEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,130 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.state;
-
-import cc.kune.core.shared.domain.utils.StateToken;
-
-import com.google.gwt.event.shared.EventHandler;
-import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerRegistration;
-import com.google.gwt.event.shared.HasHandlers;
-
-public class ToolChangedEvent extends GwtEvent<ToolChangedEvent.ToolChangedHandler> {
-
- public interface HasToolChangedHandlers extends HasHandlers {
- HandlerRegistration addToolChangedHandler(ToolChangedHandler handler);
- }
-
- public interface ToolChangedHandler extends EventHandler {
- public void onToolChanged(ToolChangedEvent event);
- }
-
- private static final Type<ToolChangedHandler> TYPE = new Type<ToolChangedHandler>();
-
- public static void fire(final HasHandlers source, final StateToken previousToken,
- final StateToken newToken) {
- source.fireEvent(new ToolChangedEvent(previousToken, newToken));
- }
-
- public static Type<ToolChangedHandler> getType() {
- return TYPE;
- }
-
- private StateToken newToken;
- private StateToken previousToken;
-
- protected ToolChangedEvent() {
- // Possibly for serialization.
- }
-
- public ToolChangedEvent(final StateToken previousToken, final StateToken newToken) {
- this.previousToken = previousToken;
- this.newToken = newToken;
- }
-
- @Override
- protected void dispatch(final ToolChangedHandler handler) {
- handler.onToolChanged(this);
- }
-
- @Override
- public boolean equals(final Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- final ToolChangedEvent other = (ToolChangedEvent) obj;
- if (newToken == null) {
- if (other.newToken != null) {
- return false;
- }
- } else if (!newToken.equals(other.newToken)) {
- return false;
- }
- if (previousToken == null) {
- if (other.previousToken != null) {
- return false;
- }
- } else if (!previousToken.equals(other.previousToken)) {
- return false;
- }
- return true;
- }
-
- @Override
- public Type<ToolChangedHandler> getAssociatedType() {
- return TYPE;
- }
-
- public StateToken getNewToken() {
- return newToken;
- }
-
- public java.lang.String getNewTool() {
- return newToken != null ? newToken.getTool() : null;
- }
-
- public StateToken getPreviousToken() {
- return previousToken;
- }
-
- public java.lang.String getPreviousTool() {
- return previousToken != null ? previousToken.getTool() : null;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((newToken == null) ? 0 : newToken.hashCode());
- result = prime * result + ((previousToken == null) ? 0 : previousToken.hashCode());
- return result;
- }
-
- @Override
- public String toString() {
- return "ToolChangedEvent[" + getPreviousTool() + "," + getNewTool() + "]";
- }
-}
Deleted: trunk/src/main/java/cc/kune/core/client/state/UserSignInEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/UserSignInEvent.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/state/UserSignInEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,85 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.state;
-
-import com.google.gwt.event.shared.EventHandler;
-import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerRegistration;
-import com.google.gwt.event.shared.HasHandlers;
-
-public class UserSignInEvent extends GwtEvent<UserSignInEvent.UserSignInHandler> {
-
- public interface HasUserSignInHandlers extends HasHandlers {
- HandlerRegistration addUserSignInHandler(UserSignInHandler handler);
- }
-
- public interface UserSignInHandler extends EventHandler {
- public void onUserSignIn(UserSignInEvent event);
- }
-
- private static final Type<UserSignInHandler> TYPE = new Type<UserSignInHandler>();
-
- public static Type<UserSignInHandler> getType() {
- return TYPE;
- }
-
- private final cc.kune.core.shared.dto.UserInfoDTO userInfo;
-
- public UserSignInEvent(final cc.kune.core.shared.dto.UserInfoDTO userInfo) {
- this.userInfo = userInfo;
- }
-
- @Override
- protected void dispatch(final UserSignInHandler handler) {
- handler.onUserSignIn(this);
- }
-
- @Override
- public boolean equals(final Object other) {
- if (other != null && other.getClass().equals(this.getClass())) {
- final UserSignInEvent o = (UserSignInEvent) other;
- return true && ((o.userInfo == null && this.userInfo == null) || (o.userInfo != null && o.userInfo.equals(this.userInfo)));
- }
- return false;
- }
-
- @Override
- public Type<UserSignInHandler> getAssociatedType() {
- return TYPE;
- }
-
- public cc.kune.core.shared.dto.UserInfoDTO getUserInfo() {
- return userInfo;
- }
-
- @Override
- public int hashCode() {
- int hashCode = 23;
- hashCode = (hashCode * 37) + getClass().hashCode();
- hashCode = (hashCode * 37) + (userInfo == null ? 1 : userInfo.hashCode());
- return hashCode;
- }
-
- @Override
- public String toString() {
- return "UserSignInEvent[" + userInfo + "]";
- }
-
-}
Deleted: trunk/src/main/java/cc/kune/core/client/state/UserSignInOrSignOutEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/UserSignInOrSignOutEvent.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/state/UserSignInOrSignOutEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,94 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.state;
-
-import com.google.gwt.event.shared.EventHandler;
-import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerRegistration;
-import com.google.gwt.event.shared.HasHandlers;
-
-public class UserSignInOrSignOutEvent extends GwtEvent<UserSignInOrSignOutEvent.UserSignInOrSignOutHandler> {
-
- public interface HasUserSignInOrSignOutHandlers extends HasHandlers {
- HandlerRegistration addUserSignInOrSignOutHandler(UserSignInOrSignOutHandler handler);
- }
-
- public interface UserSignInOrSignOutHandler extends EventHandler {
- public void onUserSignInOrSignOut(UserSignInOrSignOutEvent event);
- }
-
- private static final Type<UserSignInOrSignOutHandler> TYPE = new Type<UserSignInOrSignOutHandler>();
-
- public static Type<UserSignInOrSignOutHandler> getType() {
- return TYPE;
- }
-
- private final boolean loggedin;
-
- public UserSignInOrSignOutEvent(final boolean loggedin) {
- this.loggedin = loggedin;
- }
-
- @Override
- protected void dispatch(final UserSignInOrSignOutHandler handler) {
- handler.onUserSignInOrSignOut(this);
- }
-
- @Override
- public boolean equals(final Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- final UserSignInOrSignOutEvent other = (UserSignInOrSignOutEvent) obj;
- if (loggedin != other.loggedin) {
- return false;
- }
- return true;
- }
-
- @Override
- public Type<UserSignInOrSignOutHandler> getAssociatedType() {
- return TYPE;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + (loggedin ? 1231 : 1237);
- return result;
- }
-
- public boolean isLogged() {
- return loggedin;
- }
-
- @Override
- public String toString() {
- return "UserSignInOrSignOutEvent[" + loggedin + "]";
- }
-
-}
Deleted: trunk/src/main/java/cc/kune/core/client/state/UserSignOutEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/UserSignOutEvent.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/state/UserSignOutEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,81 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.state;
-
-import com.google.gwt.event.shared.EventHandler;
-import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerRegistration;
-import com.google.gwt.event.shared.HasHandlers;
-import com.gwtplatform.mvp.client.HasEventBus;
-
-public class UserSignOutEvent extends GwtEvent<UserSignOutEvent.UserSignOutHandler> {
-
- public interface HasUserSignOutHandlers extends HasHandlers {
- HandlerRegistration addUserSignOutHandler(UserSignOutHandler handler);
- }
-
- public interface UserSignOutHandler extends EventHandler {
- public void onUserSignOut(UserSignOutEvent event);
- }
-
- private static final Type<UserSignOutHandler> TYPE = new Type<UserSignOutHandler>();
-
- public static void fire(final HasEventBus source) {
- source.fireEvent(new UserSignOutEvent());
- }
-
- public static Type<UserSignOutHandler> getType() {
- return TYPE;
- }
-
- public UserSignOutEvent() {
- }
-
- @Override
- protected void dispatch(final UserSignOutHandler handler) {
- handler.onUserSignOut(this);
- }
-
- @Override
- public boolean equals(final Object other) {
- if (other != null && other.getClass().equals(this.getClass())) {
- return true;
- }
- return false;
- }
-
- @Override
- public Type<UserSignOutHandler> getAssociatedType() {
- return TYPE;
- }
-
- @Override
- public int hashCode() {
- int hashCode = 23;
- hashCode = (hashCode * 37) + getClass().hashCode();
- return hashCode;
- }
-
- @Override
- public String toString() {
- return "UserSignOutEvent[" + "]";
- }
-
-}
Copied: trunk/src/main/java/cc/kune/core/client/state/impl/ContentCacheDefault.java (from rev 1655, trunk/src/main/java/cc/kune/core/client/state/ContentCacheDefault.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/impl/ContentCacheDefault.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/state/impl/ContentCacheDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,110 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.state.impl;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import cc.kune.common.client.notify.ProgressShowEvent;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.UserSignInOrSignOutEvent;
+import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
+import cc.kune.core.client.events.UserSignInOrSignOutEvent.UserSignInOrSignOutHandler;
+import cc.kune.core.client.rpcservices.ContentServiceAsync;
+import cc.kune.core.client.state.ContentCache;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.core.shared.dto.StateAbstractDTO;
+
+import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.inject.Inject;
+
+public class ContentCacheDefault implements ContentCache {
+ private final Map<StateToken, StateAbstractDTO> cacheMap;
+ private final EventBus eventBus;
+ private final ContentServiceAsync server;
+ private boolean useCache = false;
+
+ @Inject
+ public ContentCacheDefault(final ContentServiceAsync server, final EventBus eventBus,
+ final Session session) {
+ this.server = server;
+ this.eventBus = eventBus;
+ this.cacheMap = new HashMap<StateToken, StateAbstractDTO>();
+ // Better, don't use while we don't check changes in the server (by others)
+ // and we do server pub/sub
+ session.onAppStart(true, new AppStartHandler() {
+ @Override
+ public void onAppStart(final AppStartEvent event) {
+ useCache = event.getInitData().useClientContentCache();
+ }
+ });
+ useCache = true;
+ session.onUserSignInOrSignOut(false, new UserSignInOrSignOutHandler() {
+ @Override
+ public void onUserSignInOrSignOut(final UserSignInOrSignOutEvent event) {
+ cacheMap.clear();
+ }
+ });
+ }
+
+ @Override
+ public void cache(final StateToken encodeState, final StateAbstractDTO content) {
+ assert encodeState != null;
+ if (useCache) {
+ cacheMap.put(encodeState, content);
+ }
+ }
+
+ private StateAbstractDTO getCached(final StateToken newState) {
+ assert newState != null;
+ return useCache ? cacheMap.get(newState) : null;
+ }
+
+ @Override
+ public void getContent(final String user, final StateToken newState,
+ final AsyncCallback<StateAbstractDTO> callback) {
+ assert newState != null;
+ eventBus.fireEvent(new ProgressShowEvent(""));
+ final StateAbstractDTO catched = getCached(newState);
+ if (catched != null) {
+ callback.onSuccess(catched);
+ } else {
+ // NotifyUser.info("Getting state of: " + newState, true);
+ server.getContent(user, newState, callback);
+ }
+ }
+
+ @Override
+ public void remove(final StateToken token) {
+ cacheMap.remove(token);
+ }
+
+ @Override
+ public void removeCacheOfGroup(final String group) {
+ for (final StateToken entry : cacheMap.keySet()) {
+ if (entry.getGroup().equals(group)) {
+ cacheMap.put(entry, null);
+ }
+ }
+ }
+
+}
Copied: trunk/src/main/java/cc/kune/core/client/state/impl/HistoryWrapperDefault.java (from rev 1655, trunk/src/main/java/cc/kune/core/client/state/HistoryWrapperDefault.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/impl/HistoryWrapperDefault.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/state/impl/HistoryWrapperDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.state.impl;
+
+import cc.kune.core.client.state.HistoryWrapper;
+
+import com.google.gwt.user.client.History;
+
+public class HistoryWrapperDefault implements HistoryWrapper {
+
+ @Override
+ public String getToken() {
+ return History.getToken();
+ }
+
+ @Override
+ public void newItem(final String historyToken) {
+ History.newItem(historyToken);
+ }
+
+ @Override
+ public void newItem(final String historyToken, final boolean issueEvent) {
+ History.newItem(historyToken, issueEvent);
+ }
+
+}
Copied: trunk/src/main/java/cc/kune/core/client/state/impl/SessionDefault.java (from rev 1655, trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/impl/SessionDefault.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/state/impl/SessionDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,377 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.state.impl;
+
+import java.util.Collection;
+import java.util.List;
+
+import cc.kune.common.client.log.Log;
+import cc.kune.core.client.cookies.CookiesManager;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
+import cc.kune.core.client.events.UserSignInOrSignOutEvent;
+import cc.kune.core.client.events.UserSignInOrSignOutEvent.UserSignInOrSignOutHandler;
+import cc.kune.core.client.events.UserSignOutEvent;
+import cc.kune.core.client.events.UserSignOutEvent.UserSignOutHandler;
+import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
+import cc.kune.core.client.rpcservices.UserServiceAsync;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.core.shared.dto.I18nCountryDTO;
+import cc.kune.core.shared.dto.I18nLanguageDTO;
+import cc.kune.core.shared.dto.I18nLanguageSimpleDTO;
+import cc.kune.core.shared.dto.InitDataDTO;
+import cc.kune.core.shared.dto.LicenseDTO;
+import cc.kune.core.shared.dto.StateAbstractDTO;
+import cc.kune.core.shared.dto.StateContainerDTO;
+import cc.kune.core.shared.dto.StateContentDTO;
+import cc.kune.core.shared.dto.ToolSimpleDTO;
+import cc.kune.core.shared.dto.UserInfoDTO;
+import cc.kune.core.shared.dto.UserSimpleDTO;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.shared.EventBus;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class SessionDefault implements Session {
+ private final CookiesManager cookieManager;
+ private Object[][] countriesArray;
+ private I18nLanguageDTO currentLanguage;
+ private StateAbstractDTO currentState;
+ private UserInfoDTO currentUserInfo;
+ private final EventBus eventBus;
+ private InitDataDTO initData;
+ private Object[][] languagesArray;
+ private Object[][] timezonesArray;
+ private String userHash;
+ private final Provider<UserServiceAsync> userServiceProvider;
+
+ @Inject
+ public SessionDefault(final CookiesManager cookieManager,
+ final Provider<UserServiceAsync> userServiceProvider, final EventBus eventBus) {
+ this.cookieManager = cookieManager;
+ this.eventBus = eventBus;
+ this.userHash = cookieManager.getAuthCookie();
+ this.userHash = userHash == null || userHash.equals("null") ? null : userHash;
+ this.userServiceProvider = userServiceProvider;
+ languagesArray = null;
+ check(new AsyncCallbackSimple<Void>() {
+ @Override
+ public void onSuccess(final Void result) {
+ }
+ });
+ }
+
+ @Override
+ public void check(final AsyncCallbackSimple<Void> callback) {
+ Log.debug("Checking session (userhash: " + getUserHash() + ")");
+ userServiceProvider.get().onlyCheckSession(getUserHash(), callback);
+ }
+
+ @Override
+ public StateContainerDTO getContainerState() {
+ return (StateContainerDTO) currentState;
+ }
+
+ @Override
+ public StateContentDTO getContentState() {
+ return (StateContentDTO) currentState;
+ }
+
+ @Override
+ public List<I18nCountryDTO> getCountries() {
+ return initData.getCountries();
+ }
+
+ @Override
+ public Object[][] getCountriesArray() {
+ if (countriesArray == null) {
+ countriesArray = mapCountries();
+ }
+ return countriesArray;
+ }
+
+ @Override
+ public String getCurrentCCversion() {
+ return initData.getCurrentCCversion();
+ }
+
+ @Override
+ public String getCurrentGroupShortName() {
+ return currentState == null ? null : currentState.getStateToken().getGroup();
+ }
+
+ @Override
+ public I18nLanguageDTO getCurrentLanguage() {
+ return currentLanguage;
+ }
+
+ @Override
+ public StateAbstractDTO getCurrentState() {
+ return currentState;
+ }
+
+ @Override
+ public StateToken getCurrentStateToken() {
+ return currentState == null ? null : currentState.getStateToken();
+ }
+
+ @Override
+ public UserSimpleDTO getCurrentUser() {
+ return currentUserInfo == null ? null : currentUserInfo.getUser();
+ }
+
+ @Override
+ public UserInfoDTO getCurrentUserInfo() {
+ return currentUserInfo;
+ }
+
+ @Override
+ public LicenseDTO getDefLicense() {
+ return initData.getDefaultLicense();
+ }
+
+ @Override
+ public String getGalleryPermittedExtensions() {
+ return initData.getGalleryPermittedExtensions();
+ }
+
+ @Override
+ public Collection<ToolSimpleDTO> getGroupTools() {
+ return initData.getGroupTools();
+ }
+
+ @Override
+ public int getImgCropsize() {
+ return initData.getImgCropsize();
+ }
+
+ @Override
+ public int getImgIconsize() {
+ return initData.getImgIconsize();
+ }
+
+ @Override
+ public int getImgResizewidth() {
+ return initData.getImgResizewidth();
+ }
+
+ @Override
+ public int getImgThumbsize() {
+ return initData.getImgThumbsize();
+ }
+
+ @Override
+ public InitDataDTO getInitData() {
+ return initData;
+ }
+
+ @Override
+ public List<I18nLanguageSimpleDTO> getLanguages() {
+ return initData.getLanguages();
+ }
+
+ @Override
+ public Object[][] getLanguagesArray() {
+ if (languagesArray == null) {
+ languagesArray = mapLangs();
+ }
+ return languagesArray;
+ }
+
+ @Override
+ public List<LicenseDTO> getLicenses() {
+ return initData.getLicenses();
+ }
+
+ @Override
+ public boolean getShowDeletedContent() {
+ return currentUserInfo == null ? false : currentUserInfo.getShowDeletedContent();
+ }
+
+ @Override
+ public String getSiteUrl() {
+ final String baseURL = GWT.getModuleBaseURL();
+ return baseURL.substring(0, baseURL.lastIndexOf("/" + GWT.getModuleName()));
+ }
+
+ @Override
+ public Object[][] getTimezones() {
+ if (timezonesArray == null) {
+ mapTimezones();
+ }
+ return timezonesArray;
+ }
+
+ @Override
+ public String getUserHash() {
+ return userHash;
+ }
+
+ @Override
+ public Collection<ToolSimpleDTO> getUserTools() {
+ return initData.getUserTools();
+ }
+
+ @Override
+ public boolean inSameToken(final StateToken token) {
+ return getCurrentStateToken().equals(token);
+ }
+
+ @Override
+ public boolean isCurrentStateAContent() {
+ return currentState instanceof StateContentDTO;
+ }
+
+ @Override
+ public boolean isCurrentStateAGroup() {
+ return currentState == null ? false : !currentState.getGroup().isPersonal();
+ }
+
+ @Override
+ public boolean isCurrentStateAPerson() {
+ return currentState == null ? false : currentState.getGroup().isPersonal();
+ }
+
+ @Override
+ public boolean isInCurrentUserSpace() {
+ if (!isLogged()) {
+ return false;
+ }
+ if (getCurrentStateToken().getGroup().equals(getCurrentUser().getShortName())) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public boolean isLogged() {
+ return userHash != null;
+ }
+
+ @Override
+ public boolean isNotLogged() {
+ return !isLogged();
+ }
+
+ private Object[][] mapCountries() {
+ assert initData != null;
+ final Object[][] objs = new Object[initData.getCountries().size()][1];
+ int i = 0;
+ for (final I18nCountryDTO country : initData.getCountries()) {
+ final Object[] obj = new Object[] { country.getCode(), country.getEnglishName() };
+ objs[i++] = obj;
+ }
+ return objs;
+ }
+
+ private Object[][] mapLangs() {
+ assert initData != null;
+ final Object[][] objs = new Object[initData.getLanguages().size()][1];
+ int i = 0;
+ for (final I18nLanguageSimpleDTO language : initData.getLanguages()) {
+ final Object[] obj = new Object[] { language.getCode(), language.getEnglishName() };
+ objs[i++] = obj;
+ }
+ return objs;
+ }
+
+ private void mapTimezones() {
+ assert initData != null;
+ timezonesArray = new Object[initData.getTimezones().length][1];
+ for (int i = 0; i < getTimezones().length; i++) {
+ final Object[] obj = new Object[] { initData.getTimezones()[i] };
+ timezonesArray[i] = obj;
+ }
+ }
+
+ @Override
+ public void onAppStart(final boolean fireNow, final AppStartHandler handler) {
+ eventBus.addHandler(AppStartEvent.getType(), handler);
+ if (fireNow && initData != null) {
+ handler.onAppStart(new AppStartEvent(initData));
+ }
+ }
+
+ @Override
+ public void onUserSignIn(final boolean fireNow, final UserSignInHandler handler) {
+ eventBus.addHandler(UserSignInEvent.getType(), handler);
+ if (fireNow && isLogged() && currentUserInfo != null) {
+ handler.onUserSignIn(new UserSignInEvent(currentUserInfo));
+ }
+ }
+
+ @Override
+ public void onUserSignInOrSignOut(final boolean fireNow, final UserSignInOrSignOutHandler handler) {
+ eventBus.addHandler(UserSignInOrSignOutEvent.getType(), handler);
+ if (fireNow) {
+ handler.onUserSignInOrSignOut(new UserSignInOrSignOutEvent(isLogged()));
+ }
+ }
+
+ @Override
+ public void onUserSignOut(final boolean fireNow, final UserSignOutHandler handler) {
+ eventBus.addHandler(UserSignOutEvent.getType(), handler);
+ if (fireNow && isNotLogged()) {
+ handler.onUserSignOut(new UserSignOutEvent());
+ }
+ }
+
+ @Override
+ public void setCurrentLanguage(final I18nLanguageDTO currentLanguage) {
+ this.currentLanguage = currentLanguage;
+ }
+
+ @Override
+ public void setCurrentState(final StateAbstractDTO currentState) {
+ this.currentState = currentState;
+ }
+
+ @Override
+ public void setCurrentUserInfo(final UserInfoDTO currentUserInfo) {
+ this.currentUserInfo = currentUserInfo;
+ if (currentUserInfo != null) {
+ eventBus.fireEvent(new UserSignInEvent(this.currentUserInfo));
+ } else {
+ eventBus.fireEvent(new UserSignOutEvent());
+ }
+ eventBus.fireEvent(new UserSignInOrSignOutEvent(isLogged()));
+ }
+
+ @Override
+ public void setInitData(final InitDataDTO initData) {
+ this.initData = initData;
+ }
+
+ @Override
+ public void setUserHash(final String userHash) {
+ this.userHash = userHash;
+ }
+
+ @Override
+ public void signOut() {
+ cookieManager.removeAuthCookie();
+ setUserHash(null);
+ setCurrentUserInfo(null);
+ }
+}
Copied: trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java (from rev 1655, trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/state/impl/StateManagerDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,476 @@
+/*
+ *
+
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.state.impl;
+
+import org.waveprotocol.box.webclient.client.ClientEvents;
+import org.waveprotocol.box.webclient.client.events.WaveSelectionEvent;
+import org.waveprotocol.wave.model.waveref.InvalidWaveRefException;
+import org.waveprotocol.wave.util.escapers.GwtWaverefEncoder;
+
+import cc.kune.common.client.actions.BeforeActionCollection;
+import cc.kune.common.client.actions.BeforeActionListener;
+import cc.kune.common.client.log.Log;
+import cc.kune.common.client.notify.ProgressHideEvent;
+import cc.kune.common.client.utils.Pair;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.GoHomeEvent;
+import cc.kune.core.client.events.GroupChangedEvent;
+import cc.kune.core.client.events.SocialNetworkChangedEvent;
+import cc.kune.core.client.events.StateChangedEvent;
+import cc.kune.core.client.events.ToolChangedEvent;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignOutEvent;
+import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
+import cc.kune.core.client.events.GroupChangedEvent.GroupChangedHandler;
+import cc.kune.core.client.events.SocialNetworkChangedEvent.SocialNetworkChangedHandler;
+import cc.kune.core.client.events.StateChangedEvent.StateChangedHandler;
+import cc.kune.core.client.events.ToolChangedEvent.ToolChangedHandler;
+import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
+import cc.kune.core.client.sitebar.spaces.Space;
+import cc.kune.core.client.sitebar.spaces.SpaceConfEvent;
+import cc.kune.core.client.sitebar.spaces.SpaceSelectEvent;
+import cc.kune.core.client.state.ContentCache;
+import cc.kune.core.client.state.HistoryTokenCallback;
+import cc.kune.core.client.state.HistoryWrapper;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.client.state.SiteTokenListeners;
+import cc.kune.core.client.state.SiteTokens;
+import cc.kune.core.client.state.StateManager;
+import cc.kune.core.client.state.TokenMatcher;
+import cc.kune.core.client.state.TokenUtils;
+import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.core.shared.dto.SocialNetworkDataDTO;
+import cc.kune.core.shared.dto.StateAbstractDTO;
+
+import com.google.gwt.event.logical.shared.ValueChangeEvent;
+import com.google.gwt.event.logical.shared.ValueChangeHandler;
+import com.google.gwt.event.shared.EventBus;
+import com.google.inject.Inject;
+
+public class StateManagerDefault implements StateManager, ValueChangeHandler<String> {
+ private final BeforeActionCollection beforeStateChangeCollection;
+ private final ContentCache contentCache;
+ private final EventBus eventBus;
+ private final HistoryWrapper history;
+ private StateToken previousGroupToken;
+ /**
+ * When a historyChanged is interrupted (for instance because you are editing
+ * something), the new history token is stored here
+ */
+ private String resumedHistoryToken;
+ private final Session session;
+ private final SiteTokenListeners siteTokens;
+ private final TokenMatcher tokenMatcher;
+
+ @Inject
+ public StateManagerDefault(final ContentCache contentProvider, final Session session,
+ final HistoryWrapper history, final TokenMatcher tokenMatcher, final EventBus eventBus,
+ final SiteTokenListeners siteTokens) {
+ this.tokenMatcher = tokenMatcher;
+ this.eventBus = eventBus;
+ this.contentCache = contentProvider;
+ this.session = session;
+ this.history = history;
+ this.previousGroupToken = null;
+ this.resumedHistoryToken = null;
+ tokenMatcher.init(GwtWaverefEncoder.INSTANCE);
+ this.siteTokens = siteTokens;
+ beforeStateChangeCollection = new BeforeActionCollection();
+ session.onAppStart(true, new AppStartHandler() {
+ @Override
+ public void onAppStart(final AppStartEvent event) {
+ session.onUserSignIn(false, new UserSignInEvent.UserSignInHandler() {
+ @Override
+ public void onUserSignIn(final UserSignInEvent event) {
+ // refreshCurrentGroupState();
+ }
+ });
+ session.onUserSignOut(false, new UserSignOutEvent.UserSignOutHandler() {
+ @Override
+ public void onUserSignOut(final UserSignOutEvent event) {
+ refreshCurrentStateWithoutCache();
+ }
+ });
+ processCurrentHistoryToken();
+ }
+ });
+ onSocialNetworkChanged(false, new SocialNetworkChangedHandler() {
+ @Override
+ public void onSocialNetworkChanged(final SocialNetworkChangedEvent event) {
+ contentCache.removeCacheOfGroup(event.getState().getStateToken().getGroup());
+ }
+ });
+ eventBus.addHandler(GoHomeEvent.getType(), new GoHomeEvent.GoHomeHandler() {
+ @Override
+ public void onGoHome(final GoHomeEvent event) {
+ gotoDefaultHomepage();
+ }
+ });
+ }
+
+ @Override
+ public void addBeforeStateChangeListener(final BeforeActionListener listener) {
+ beforeStateChangeCollection.add(listener);
+ }
+
+ @Override
+ public void addSiteToken(final String token, final HistoryTokenCallback callback) {
+ siteTokens.put(token.toLowerCase(), callback);
+ }
+
+ private void checkGroupAndToolChange(final StateAbstractDTO newState) {
+ final String newGroup = newState.getStateToken().getGroup();
+ final String previousGroup = getPreviousGroup();
+ if (startingUp() || !previousGroup.equals(newGroup)) {
+ GroupChangedEvent.fire(eventBus, previousGroup, newGroup);
+ }
+ final String previousToolName = getPreviousTool();
+ final String newTokenTool = newState.getStateToken().getTool();
+ final String newToolName = newTokenTool == null ? "" : newTokenTool;
+ if (startingUp() || previousToolName == null || !previousToolName.equals(newToolName)) {
+ ToolChangedEvent.fire(eventBus, previousGroupToken, newState.getStateToken());
+ }
+ }
+
+ private void getContent(final StateToken newState) {
+ getContent(newState, false);
+ }
+
+ private void getContent(final StateToken newState, final boolean setBrowserHistory) {
+ // NotifyUser.info("loading: " + newState + " because current:" +
+ // session.getCurrentStateToken());
+ contentCache.getContent(session.getUserHash(), newState,
+ new AsyncCallbackSimple<StateAbstractDTO>() {
+ @Override
+ public void onSuccess(final StateAbstractDTO newState) {
+ setState(newState);
+ final String currentToken = newState.getStateToken().toString();
+ SpaceConfEvent.fire(eventBus, Space.groupSpace, currentToken);
+ SpaceConfEvent.fire(eventBus, Space.publicSpace, TokenUtils.preview(currentToken));
+ if (setBrowserHistory) {
+ history.newItem(currentToken, false);
+ SpaceSelectEvent.fire(eventBus, Space.groupSpace);
+ }
+ }
+ });
+ }
+
+ @Override
+ public String getCurrentToken() {
+ return history.getToken();
+ }
+
+ private String getPreviousGroup() {
+ final String previousGroup = startingUp() ? "" : previousGroupToken.getGroup();
+ return previousGroup;
+ }
+
+ private String getPreviousTool() {
+ final String previousTool = startingUp() ? "" : previousGroupToken.getTool();
+ return previousTool;
+ }
+
+ @Override
+ public void gotoDefaultHomepage() {
+ getContent(new StateToken(SiteTokens.GROUP_HOME), true);
+ }
+
+ @Override
+ public void gotoHistoryToken(final String token) {
+ Log.debug("StateManager: history goto-string-token: " + token);
+ history.newItem(token);
+ }
+
+ @Override
+ public void gotoHistoryTokenButRedirectToCurrent(final String token) {
+ gotoHistoryToken(TokenUtils.addRedirect(token, history.getToken()));
+
+ }
+
+ @Override
+ public void gotoStateToken(final StateToken newToken) {
+ Log.debug("StateManager: history goto-token: " + newToken + ", previous: " + previousGroupToken);
+ history.newItem(newToken.getEncoded());
+ }
+
+ @Override
+ public void gotoStateToken(final StateToken token, final boolean useCache) {
+ if (!useCache) {
+ contentCache.remove(token);
+ }
+ gotoStateToken(token);
+ }
+
+ @Override
+ public void onGroupChanged(final boolean fireNow, final GroupChangedHandler handler) {
+ eventBus.addHandler(GroupChangedEvent.getType(), handler);
+ final StateAbstractDTO currentState = session.getCurrentState();
+ if (fireNow && currentState != null) {
+ handler.onGroupChanged(new GroupChangedEvent(getPreviousGroup(),
+ currentState.getStateToken().getGroup()));
+ }
+
+ }
+
+ @Override
+ public void onSocialNetworkChanged(final boolean fireNow, final SocialNetworkChangedHandler handler) {
+ eventBus.addHandler(SocialNetworkChangedEvent.getType(), handler);
+ final StateAbstractDTO currentState = session.getCurrentState();
+ if (fireNow && currentState != null) {
+ handler.onSocialNetworkChanged(new SocialNetworkChangedEvent(currentState));
+ }
+ }
+
+ @Override
+ public void onStateChanged(final boolean fireNow, final StateChangedHandler handler) {
+ eventBus.addHandler(StateChangedEvent.getType(), handler);
+ final StateAbstractDTO currentState = session.getCurrentState();
+ if (fireNow && currentState != null) {
+ handler.onStateChanged(new StateChangedEvent(currentState));
+ }
+ }
+
+ @Override
+ public void onToolChanged(final boolean fireNow, final ToolChangedHandler handler) {
+ eventBus.addHandler(ToolChangedEvent.getType(), handler);
+ final StateAbstractDTO currentState = session.getCurrentState();
+ if (fireNow && currentState != null) {
+ handler.onToolChanged(new ToolChangedEvent(previousGroupToken, currentState.getStateToken()));
+ }
+ }
+
+ @Override
+ public void onValueChange(final ValueChangeEvent<String> event) {
+ Log.info("History event value changed: " + event.getValue());
+ processHistoryToken(event.getValue());
+ }
+
+ private void processCurrentHistoryToken() {
+ processHistoryToken(history.getToken());
+ }
+
+ void processHistoryToken(final String newHistoryToken) {
+ // http://code.google.com/p/google-web-toolkit-doc-1-5/wiki/DevGuideHistory
+ if (beforeStateChangeCollection.checkBeforeAction()) {
+ // There isn't a beforeStateChange listener that stops this history
+ // change
+ HistoryTokenCallback tokenListener = null;
+ if (newHistoryToken != null) {
+ final String nToken = newHistoryToken.toLowerCase();
+ tokenListener = siteTokens.get(nToken);
+ }
+ Log.debug("StateManager: on history changed (" + newHistoryToken + ")");
+ if (tokenListener == null) {
+ // Log.debug("Is not a special hash");
+ // token is not one of #newgroup #signin #translate ...
+ final String nToken = newHistoryToken != null ? newHistoryToken.toLowerCase() : null;
+ if (nToken != null && tokenMatcher.hasRedirect(nToken)) {
+ final Pair<String, String> redirect = tokenMatcher.getRedirect(nToken);
+ final String firstToken = redirect.getLeft();
+ final String sndToken = redirect.getRight();
+ if (firstToken.equals(SiteTokens.PREVIEW)) {
+ SpaceSelectEvent.fire(eventBus, Space.publicSpace);
+ SpaceConfEvent.fire(eventBus, Space.groupSpace, sndToken);
+ SpaceConfEvent.fire(eventBus, Space.publicSpace, TokenUtils.preview(sndToken));
+ getContent(new StateToken(sndToken));
+ } else if (firstToken.equals(SiteTokens.SUBTITLES)) {
+ siteTokens.get(SiteTokens.SUBTITLES).onHistoryToken(
+ tokenMatcher.getRedirect(newHistoryToken).getRight());
+ } else if (firstToken.equals(SiteTokens.NEWGROUP)) {
+ siteTokens.get(SiteTokens.NEWGROUP).onHistoryToken(newHistoryToken);
+ } else if (firstToken.equals(SiteTokens.SIGNIN)) {
+ if (session.isLogged()) {
+ // We are logged, then redirect:
+ history.newItem(sndToken, false);
+ processHistoryToken(sndToken);
+ } else {
+ // We have to loggin
+ siteTokens.get(SiteTokens.SIGNIN).onHistoryToken(newHistoryToken);
+ }
+ }
+ } else
+ // No redirection
+ if (tokenMatcher.isWaveToken(newHistoryToken)) {
+ if (session.isLogged()) {
+ SpaceConfEvent.fire(eventBus, Space.userSpace, newHistoryToken);
+ SpaceSelectEvent.fire(eventBus, Space.userSpace);
+ try {
+ ClientEvents.get().fireEvent(
+ new WaveSelectionEvent(GwtWaverefEncoder.decodeWaveRefFromPath(newHistoryToken)));
+ } catch (final InvalidWaveRefException e) {
+ Log.error(nToken, e);
+ }
+ } else {
+ // Wave, but don't logged
+ history.newItem(TokenUtils.addRedirect(SiteTokens.SIGNIN, newHistoryToken));
+ if (startingUp()) {
+ // Starting application (with Wave)
+ getContent(new StateToken(SiteTokens.GROUP_HOME), false);
+ }
+ }
+ } else if (tokenMatcher.isGroupToken(newHistoryToken)) {
+ SpaceConfEvent.fire(eventBus, Space.groupSpace, newHistoryToken);
+ SpaceConfEvent.fire(eventBus, Space.publicSpace, TokenUtils.preview(newHistoryToken));
+ SpaceSelectEvent.fire(eventBus, Space.groupSpace);
+ getContent(new StateToken(newHistoryToken));
+ } else {
+ gotoDefaultHomepage();
+ }
+ } else {
+ // token is one of #newgroup #signin #translate ...
+ if (startingUp()) {
+ // Starting with some token like "signin": load defContent
+ // also
+ getContent(new StateToken(SiteTokens.GROUP_HOME), false);
+ // processHistoryToken(SiteTokens.GROUP_HOME);
+ // SpaceSelectEvent.fire(eventBus, Space.groupSpace);
+ }
+ // Fire the listener of this #hash token
+ tokenListener.onHistoryToken(newHistoryToken);
+ }
+ } else {
+ resumedHistoryToken = newHistoryToken;
+ }
+ }
+
+ @Override
+ public void redirectOrRestorePreviousToken() {
+ final String token = history.getToken();
+ if (tokenMatcher.hasRedirect(token)) {
+ // URL of the form signin(group.tool)
+ final String previousToken = tokenMatcher.getRedirect(token).getRight();
+ if (previousToken.equals(SiteTokens.WAVEINBOX) && session.isNotLogged()) {
+ // signin(inbox) && cancel
+ restorePreviousToken();
+ } else {
+ history.newItem(previousToken); // FIXMEKK
+ }
+ } else {
+ // No redirect then restore previous token
+ restorePreviousToken();
+ }
+ }
+
+ /**
+ * <p>
+ * Reload current state (using client cache if available)
+ * </p>
+ */
+ @Override
+ public void refreshCurrentState() {
+ processHistoryToken(history.getToken());
+ }
+
+ /**
+ * <p>
+ * Reload current state (not using client cache)
+ * </p>
+ */
+ @Override
+ public void refreshCurrentStateWithoutCache() {
+ final StateToken currentStateToken = session.getCurrentStateToken();
+ if (currentStateToken == null) {
+ processCurrentHistoryToken();
+ } else {
+ contentCache.remove(currentStateToken);
+ getContent(currentStateToken);
+ }
+ }
+
+ @Override
+ public void removeBeforeStateChangeListener(final BeforeActionListener listener) {
+ beforeStateChangeCollection.remove(listener);
+ }
+
+ @Override
+ public void removeCache(final StateToken parentToken) {
+ contentCache.remove(parentToken);
+ }
+
+ @Override
+ public void removeCacheOfGroup(final String group) {
+ contentCache.removeCacheOfGroup(group);
+ }
+
+ @Override
+ public void removeSiteToken(final String token) {
+ siteTokens.remove(token);
+ }
+
+ @Override
+ public void restorePreviousToken() {
+ if (previousGroupToken != null) {
+ gotoStateToken(previousGroupToken);
+ }
+ }
+
+ @Override
+ public void resumeTokenChange() {
+ if (resumedHistoryToken != null) {
+ // Is this reload redundant?
+ refreshCurrentState();
+ gotoHistoryToken(resumedHistoryToken);
+ resumedHistoryToken = null;
+ }
+ }
+
+ @Override
+ public void setRetrievedState(final StateAbstractDTO newState) {
+ contentCache.cache(newState.getStateToken(), newState);
+ }
+
+ @Override
+ public void setRetrievedStateAndGo(final StateAbstractDTO newState) {
+ setRetrievedState(newState);
+ final String token = newState.getStateToken().toString();
+ if (history.getToken().equals(token)) {
+ setState(newState);
+ }
+ history.newItem(token);
+ }
+
+ @Override
+ public void setSocialNetwork(final SocialNetworkDataDTO socialNet) {
+ StateAbstractDTO state;
+ if (session != null && (state = session.getCurrentState()) != null) {
+ // After a SN operation, usually returns a SocialNetworkResultDTO
+ // with new SN data and we refresh the state
+ // to avoid to reload() again the state
+ state.setSocialNetworkData(socialNet);
+ SocialNetworkChangedEvent.fire(eventBus, state);
+ }
+ }
+
+ void setState(final StateAbstractDTO newState) {
+ session.setCurrentState(newState);
+ final StateToken newToken = newState.getStateToken();
+ contentCache.cache(newToken, newState);
+ // history.newItem(newToken.toString(), false);
+ StateChangedEvent.fire(eventBus, newState);
+ checkGroupAndToolChange(newState);
+ previousGroupToken = newToken.copy();
+ eventBus.fireEvent(new ProgressHideEvent());
+ }
+
+ private boolean startingUp() {
+ return previousGroupToken == null;
+ }
+}
Modified: trunk/src/main/java/cc/kune/core/client/ws/CoreViewImpl.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/ws/CoreViewImpl.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/ws/CoreViewImpl.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -20,9 +20,9 @@
package cc.kune.core.client.ws;
import cc.kune.core.client.resources.CoreResources;
-import cc.kune.core.client.state.StateManagerDefault;
-import cc.kune.gspace.client.GSpaceArmorImpl;
-import cc.kune.gspace.client.resources.GSpaceArmorResources;
+import cc.kune.core.client.state.impl.StateManagerDefault;
+import cc.kune.gspace.client.armor.impl.GSpaceArmorImpl;
+import cc.kune.gspace.client.armor.resources.GSpaceArmorResources;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.History;
Modified: trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -30,7 +30,7 @@
import cc.kune.core.shared.FileConstants;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.GroupDTO;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import com.google.gwt.user.client.ui.AbstractImagePrototype;
import com.google.gwt.user.client.ui.HorizontalPanel;
Modified: trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -20,13 +20,13 @@
package cc.kune.core.client.ws.entheader;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
-import cc.kune.core.client.state.GroupChangedEvent;
-import cc.kune.core.client.state.GroupChangedEvent.GroupChangedHandler;
+import cc.kune.core.client.events.GroupChangedEvent;
+import cc.kune.core.client.events.GroupChangedEvent.GroupChangedHandler;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.dto.GroupDTO;
-import cc.kune.gspace.client.options.logo.CurrentEntityChangedEvent;
-import cc.kune.gspace.client.options.logo.CurrentEntityChangedEvent.CurrentEntityChangedHandler;
+import cc.kune.gspace.client.events.CurrentEntityChangedEvent;
+import cc.kune.gspace.client.events.CurrentEntityChangedEvent.CurrentEntityChangedHandler;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.user.client.ui.IsWidget;
Modified: trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -49,7 +49,8 @@
import cc.kune.core.server.content.CreationService;
import cc.kune.core.server.content.CreationServiceDefault;
import cc.kune.core.server.content.XMLActionReader;
-import cc.kune.core.server.i18n.I18nTranslationServiceDefault;
+import cc.kune.core.server.i18n.I18nTranslationServiceMultiLang;
+import cc.kune.core.server.i18n.impl.I18nTranslationServiceDefault;
import cc.kune.core.server.mail.MailService;
import cc.kune.core.server.mail.MailServiceDefault;
import cc.kune.core.server.manager.ExtMediaDescripManager;
@@ -64,7 +65,6 @@
import cc.kune.core.server.manager.SocialNetworkManager;
import cc.kune.core.server.manager.TagManager;
import cc.kune.core.server.manager.TagUserContentManager;
-import cc.kune.core.server.manager.TagUserContentManagerDefault;
import cc.kune.core.server.manager.ToolConfigurationManager;
import cc.kune.core.server.manager.UserManager;
import cc.kune.core.server.manager.file.EntityLogoDownloadManager;
@@ -82,6 +82,7 @@
import cc.kune.core.server.manager.impl.RateManagerDefault;
import cc.kune.core.server.manager.impl.SocialNetworkManagerDefault;
import cc.kune.core.server.manager.impl.TagManagerDefault;
+import cc.kune.core.server.manager.impl.TagUserContentManagerDefault;
import cc.kune.core.server.manager.impl.ToolConfigurationManagerDefault;
import cc.kune.core.server.manager.impl.UserManagerDefault;
import cc.kune.core.server.mapper.DozerMapper;
@@ -110,10 +111,10 @@
import cc.kune.hspace.client.ClientStatsService;
import cc.kune.lists.client.rpc.ListsService;
import cc.kune.lists.server.rpc.ListsRPC;
-import cc.kune.wave.server.KuneWaveService;
-import cc.kune.wave.server.KuneWaveServiceDefault;
import cc.kune.wave.server.ParticipantUtils;
-import cc.kune.wave.server.WaveEmailNotifier;
+import cc.kune.wave.server.kspecific.KuneWaveService;
+import cc.kune.wave.server.kspecific.KuneWaveServiceDefault;
+import cc.kune.wave.server.kspecific.WaveEmailNotifier;
import com.google.inject.Singleton;
import com.google.inject.matcher.Matchers;
@@ -168,6 +169,7 @@
bind(FinderService.class).to(FinderServiceDefault.class);
bind(StateService.class).to(StateServiceDefault.class);
bind(I18nTranslationService.class).to(I18nTranslationServiceDefault.class);
+ bind(I18nTranslationServiceMultiLang.class).to(I18nTranslationServiceDefault.class);
bind(KuneWaveService.class).to(KuneWaveServiceDefault.class);
bind(MailService.class).to(MailServiceDefault.class);
bind(XMLActionReader.class);
Modified: trunk/src/main/java/cc/kune/core/server/content/ContainerManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/ContainerManager.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/content/ContainerManager.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -21,7 +21,7 @@
import cc.kune.core.client.errors.DefaultException;
import cc.kune.core.server.manager.Manager;
-import cc.kune.core.server.manager.impl.SearchResult;
+import cc.kune.core.server.manager.SearchResult;
import cc.kune.domain.AccessLists;
import cc.kune.domain.Container;
import cc.kune.domain.Group;
Modified: trunk/src/main/java/cc/kune/core/server/content/ContainerManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/ContainerManagerDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/content/ContainerManagerDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -30,9 +30,9 @@
import cc.kune.core.client.errors.DefaultException;
import cc.kune.core.client.errors.MoveOnSameContainerException;
import cc.kune.core.client.errors.NameInUseException;
+import cc.kune.core.server.manager.SearchResult;
import cc.kune.core.server.manager.file.FileUtils;
import cc.kune.core.server.manager.impl.DefaultManager;
-import cc.kune.core.server.manager.impl.SearchResult;
import cc.kune.core.server.manager.impl.ServerManagerException;
import cc.kune.core.server.utils.FilenameUtils;
import cc.kune.domain.AccessLists;
Modified: trunk/src/main/java/cc/kune/core/server/content/ContentManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/ContentManager.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/content/ContentManager.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -23,7 +23,7 @@
import cc.kune.core.client.errors.DefaultException;
import cc.kune.core.server.manager.Manager;
-import cc.kune.core.server.manager.impl.SearchResult;
+import cc.kune.core.server.manager.SearchResult;
import cc.kune.core.shared.domain.ContentStatus;
import cc.kune.core.shared.domain.RateResult;
import cc.kune.domain.Container;
Modified: trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -38,10 +38,10 @@
import cc.kune.core.client.errors.NameInUseException;
import cc.kune.core.client.errors.UserNotFoundException;
import cc.kune.core.server.access.FinderService;
+import cc.kune.core.server.manager.SearchResult;
import cc.kune.core.server.manager.TagUserContentManager;
import cc.kune.core.server.manager.file.FileUtils;
import cc.kune.core.server.manager.impl.DefaultManager;
-import cc.kune.core.server.manager.impl.SearchResult;
import cc.kune.core.server.manager.impl.ServerManagerException;
import cc.kune.core.server.utils.FilenameUtils;
import cc.kune.core.shared.domain.ContentStatus;
@@ -56,9 +56,9 @@
import cc.kune.domain.finders.ContentFinder;
import cc.kune.domain.finders.I18nLanguageFinder;
import cc.kune.domain.finders.UserFinder;
-import cc.kune.wave.server.KuneWaveService;
import cc.kune.wave.server.KuneWaveUtils;
import cc.kune.wave.server.ParticipantUtils;
+import cc.kune.wave.server.kspecific.KuneWaveService;
import com.google.inject.Inject;
import com.google.inject.Provider;
Modified: trunk/src/main/java/cc/kune/core/server/content/CreationServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/CreationServiceDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/content/CreationServiceDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -35,7 +35,7 @@
import cc.kune.domain.Group;
import cc.kune.domain.I18nLanguage;
import cc.kune.domain.User;
-import cc.kune.wave.server.KuneWaveService;
+import cc.kune.wave.server.kspecific.KuneWaveService;
import com.google.inject.Inject;
import com.google.inject.Singleton;
Deleted: trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,99 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.server.i18n;
-
-import cc.kune.common.shared.i18n.I18nTranslationService;
-import cc.kune.common.shared.utils.TextUtils;
-import cc.kune.core.server.UserSessionManager;
-import cc.kune.core.server.manager.I18nTranslationManager;
-import cc.kune.domain.I18nTranslation;
-
-import com.google.inject.Inject;
-import com.google.inject.Provider;
-import com.google.inject.Singleton;
-
-@Singleton
-public class I18nTranslationServiceDefault extends I18nTranslationService {
-
- private boolean initiliazied = false;
- private final I18nTranslationManager translationManager;
- private final Provider<UserSessionManager> userSessionManager;
-
- @Inject
- public I18nTranslationServiceDefault(final I18nTranslationManager translationManager,
- final Provider<UserSessionManager> userSessionManager) {
- this.translationManager = translationManager;
- this.userSessionManager = userSessionManager;
- }
-
- public void init() {
- initiliazied = true;
- }
-
- @Override
- public boolean isRTL() {
- return userSessionManager.get().isUserLoggedIn() ? userSessionManager.get().getUser().getLanguage().getDirection().equals(
- RTL)
- : false;
- }
-
- /**
- * If the text is not in the db, it stores the text pending for translation.
- *
- * Warning: text is escaped as html before insert in the db. Don't use html
- * here (o user this method with params).
- *
- * @param text
- * @return text translated in the current language
- */
- @Override
- public String t(final String text) {
- return tWithNT(text, "");
- }
-
- /**
- * If the text is not in the db, it stores the text pending for translation.
- *
- * Warning: text is escaped as html before insert in the db. Don't use html
- * here (o user this method with params).
- *
- * @param text
- * @param noteForTranslators
- * some note for facilitate the translation
- *
- * @return text translated in the current language
- */
- @Override
- public String tWithNT(final String text, final String noteForTranslators) {
- String language;
- if (initiliazied && userSessionManager.get().isUserLoggedIn()) {
- language = userSessionManager.get().getUser().getLanguage().getCode();
- } else {
- language = I18nTranslation.DEFAULT_LANG;
- }
- final String encodeText = TextUtils.escapeHtmlLight(text);
- String translation = translationManager.getTranslation(language, text, noteForTranslators);
- if (translation == UNTRANSLATED_VALUE) {
- // Not translated but in db, return text
- translation = encodeText;
- }
- return decodeHtml(translation);
- }
-}
Added: trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceMultiLang.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceMultiLang.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceMultiLang.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,20 @@
+package cc.kune.core.server.i18n;
+
+import cc.kune.domain.I18nLanguage;
+
+public interface I18nTranslationServiceMultiLang {
+ /**
+ * If the text is not in the db, it stores the text pending for translation.
+ *
+ * Warning: text is escaped as html before insert in the db. Don't use html
+ * here (o user this method with params).
+ *
+ * @param text
+ * @param noteForTranslators
+ * some note for facilitate the translation
+ * @param lang
+ * translation for some specific language
+ * @return text translated in the specified language
+ */
+ public String tWithNT(I18nLanguage lang, final String text, final String noteForTranslators);
+}
Copied: trunk/src/main/java/cc/kune/core/server/i18n/impl/I18nTranslationServiceDefault.java (from rev 1655, trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceDefault.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/server/i18n/impl/I18nTranslationServiceDefault.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/i18n/impl/I18nTranslationServiceDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,114 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.server.i18n.impl;
+
+import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
+import cc.kune.core.server.UserSessionManager;
+import cc.kune.core.server.i18n.I18nTranslationServiceMultiLang;
+import cc.kune.core.server.manager.I18nLanguageManager;
+import cc.kune.core.server.manager.I18nTranslationManager;
+import cc.kune.domain.I18nLanguage;
+import cc.kune.domain.I18nTranslation;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
+
+@Singleton
+public class I18nTranslationServiceDefault extends I18nTranslationService implements
+ I18nTranslationServiceMultiLang {
+
+ private boolean initiliazied = false;
+ private final I18nLanguageManager languageManager;
+ private final I18nTranslationManager translationManager;
+ private final Provider<UserSessionManager> userSessionManager;
+
+ @Inject
+ public I18nTranslationServiceDefault(final I18nTranslationManager translationManager,
+ final Provider<UserSessionManager> userSessionManager, final I18nLanguageManager languageManager) {
+ this.translationManager = translationManager;
+ this.userSessionManager = userSessionManager;
+ this.languageManager = languageManager;
+ }
+
+ private I18nLanguage defLang() {
+ return languageManager.findByCode(I18nTranslation.DEFAULT_LANG);
+ }
+
+ public void init() {
+ initiliazied = true;
+ }
+
+ @Override
+ public boolean isRTL() {
+ return userSessionManager.get().isUserLoggedIn() ? userSessionManager.get().getUser().getLanguage().getDirection().equals(
+ RTL)
+ : false;
+ }
+
+ /**
+ * If the text is not in the db, it stores the text pending for translation.
+ *
+ * Warning: text is escaped as html before insert in the db. Don't use html
+ * here (o user this method with params).
+ *
+ * @param text
+ * @return text translated in the current language
+ */
+ @Override
+ public String t(final String text) {
+ return tWithNT(text, "");
+ }
+
+ @Override
+ public String tWithNT(final I18nLanguage language, final String text, final String noteForTranslators) {
+ final String encodeText = TextUtils.escapeHtmlLight(text);
+ String translation = translationManager.getTranslation(language.getCode(), text, noteForTranslators);
+ if (translation == UNTRANSLATED_VALUE) {
+ // Not translated but in db, return text
+ translation = encodeText;
+ }
+ return decodeHtml(translation);
+ }
+
+ /**
+ * If the text is not in the db, it stores the text pending for translation.
+ *
+ * Warning: text is escaped as html before insert in the db. Don't use html
+ * here (o user this method with params).
+ *
+ * @param text
+ * @param noteForTranslators
+ * some note for facilitate the translation
+ *
+ * @return text translated in the current language
+ */
+ @Override
+ public String tWithNT(final String text, final String noteForTranslators) {
+ I18nLanguage language;
+ if (initiliazied && userSessionManager.get().isUserLoggedIn()) {
+ language = userSessionManager.get().getUser().getLanguage();
+ } else {
+ language = defLang();
+ }
+ return tWithNT(language, text, noteForTranslators);
+ }
+}
Modified: trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/init/DatabaseInitializer.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -29,7 +29,7 @@
import cc.kune.core.client.errors.UserMustBeLoggedException;
import cc.kune.core.server.content.ContentManager;
-import cc.kune.core.server.i18n.I18nTranslationServiceDefault;
+import cc.kune.core.server.i18n.impl.I18nTranslationServiceDefault;
import cc.kune.core.server.manager.GroupManager;
import cc.kune.core.server.manager.I18nCountryManager;
import cc.kune.core.server.manager.I18nLanguageManager;
Modified: trunk/src/main/java/cc/kune/core/server/manager/GroupManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/GroupManager.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/manager/GroupManager.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -26,7 +26,6 @@
import cc.kune.core.client.errors.EmailAddressInUseException;
import cc.kune.core.client.errors.GroupShortNameInUseException;
import cc.kune.core.client.errors.UserMustBeLoggedException;
-import cc.kune.core.server.manager.impl.SearchResult;
import cc.kune.core.shared.dto.GroupDTO;
import cc.kune.domain.Content;
import cc.kune.domain.Group;
Modified: trunk/src/main/java/cc/kune/core/server/manager/Manager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/Manager.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/manager/Manager.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -21,7 +21,6 @@
import org.apache.lucene.search.BooleanClause;
-import cc.kune.core.server.manager.impl.SearchResult;
public interface Manager<T, X> {
Copied: trunk/src/main/java/cc/kune/core/server/manager/SearchResult.java (from rev 1655, trunk/src/main/java/cc/kune/core/server/manager/impl/SearchResult.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/SearchResult.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/manager/SearchResult.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,62 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.server.manager;
+
+import java.util.List;
+
+public class SearchResult<T> {
+ List<T> list;
+ int size;
+
+ public SearchResult() {
+ this(0, null);
+ }
+
+ public SearchResult(final int count, final List<T> list) {
+ this.list = list;
+ this.size = count;
+ }
+
+ public List<T> getList() {
+ return list;
+ }
+
+ /**
+ * Gets the size of total results (may differ from list size).
+ *
+ * @return the size
+ */
+ public int getSize() {
+ return size;
+ }
+
+ public void setList(final List<T> list) {
+ this.list = list;
+ }
+
+ public void setSize(final int size) {
+ this.size = size;
+ }
+
+ @Override
+ public String toString() {
+ return "SearchResult[(" + getSize() + "): " + list + "]";
+ }
+}
Deleted: trunk/src/main/java/cc/kune/core/server/manager/TagUserContentManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/TagUserContentManagerDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/manager/TagUserContentManagerDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,127 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.server.manager;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-
-
-import cc.kune.common.shared.utils.TextUtils;
-import cc.kune.core.server.manager.impl.DefaultManager;
-import cc.kune.core.shared.domain.TagCloudResult;
-import cc.kune.core.shared.domain.TagCount;
-import cc.kune.domain.Content;
-import cc.kune.domain.Group;
-import cc.kune.domain.Tag;
-import cc.kune.domain.TagUserContent;
-import cc.kune.domain.User;
-import cc.kune.domain.finders.TagUserContentFinder;
-
-import com.google.inject.Inject;
-import com.google.inject.Provider;
-import com.google.inject.Singleton;
-
-@Singleton
-public class TagUserContentManagerDefault extends DefaultManager<TagUserContent, Long> implements TagUserContentManager {
- private final TagUserContentFinder finder;
- private final Provider<EntityManager> provider;
- private final TagManager tagManager;
-
- @Inject
- public TagUserContentManagerDefault(final Provider<EntityManager> provider, final TagManager tagManager,
- final TagUserContentFinder finder) {
- super(provider, TagUserContent.class);
- this.provider = provider;
- this.tagManager = tagManager;
- this.finder = finder;
- }
-
- List<Tag> find(final User user, final Content content) {
- return finder.findTags(user, content);
- }
-
- private int getMaxCount(final Group group) {
- return finder.getMaxGrouped(group).intValue();
- }
-
- private int getMinCount(final Group group) {
- return finder.getMinGrouped(group).intValue();
- }
-
- private List<TagCount> getSummaryByGroup(final Group group) {
- return finder.getTagsGroups(group);
- }
-
- @Override
- public TagCloudResult getTagCloudResultByGroup(final Group group) {
- try {
- return new TagCloudResult(getSummaryByGroup(group), getMaxCount(group), getMinCount(group));
- } catch (final NoResultException e) {
- return new TagCloudResult();
- }
- }
-
- @Override
- public String getTagsAsString(final User user, final Content content) {
- final StringBuffer tagConcatenated = new StringBuffer();
- if (user.getId() != null) {
- // FIXME: User must be persisted (this fails on tests)
- final List<Tag> tags = find(user, content);
- for (final Tag tag : tags) {
- tagConcatenated.append(" ").append(tag.getName());
- }
- }
- return tagConcatenated.toString().replaceFirst(" ", "");
- }
-
- @Override
- public void remove(final User user, final Content content) {
- for (final TagUserContent item : finder.find(user, content)) {
- provider.get().remove(item);
- }
- }
-
- @Override
- public void setTags(final User user, final Content content, final String tags) {
- final ArrayList<String> tagsStripped = TextUtils.splitTags(tags);
- final ArrayList<Tag> tagList = new ArrayList<Tag>();
-
- for (final String tagString : tagsStripped) {
- Tag tag;
- try {
- tag = tagManager.findByTagName(tagString);
- } catch (final NoResultException e) {
- tag = new Tag(tagString);
- tagManager.persist(tag);
- }
- if (!tagList.contains(tag)) {
- tagList.add(tag);
- }
- }
- remove(user, content);
- for (final Tag tag : tagList) {
- final TagUserContent tagUserContent = new TagUserContent(tag, user, content);
- persist(tagUserContent);
- }
- }
-}
Modified: trunk/src/main/java/cc/kune/core/server/manager/UserManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/UserManager.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/manager/UserManager.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -22,7 +22,6 @@
import org.waveprotocol.box.server.authentication.PasswordDigest;
import cc.kune.core.client.errors.I18nNotFoundException;
-import cc.kune.core.server.manager.impl.SearchResult;
import cc.kune.core.shared.domain.UserSNetVisibility;
import cc.kune.core.shared.dto.I18nLanguageSimpleDTO;
import cc.kune.core.shared.dto.UserDTO;
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/DefaultManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/DefaultManager.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/DefaultManager.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -34,6 +34,8 @@
import org.hibernate.search.jpa.FullTextQuery;
import org.hibernate.search.jpa.Search;
+import cc.kune.core.server.manager.SearchResult;
+
import com.google.inject.Provider;
public abstract class DefaultManager<T, K> {
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -42,6 +42,7 @@
import cc.kune.core.server.manager.FileManager;
import cc.kune.core.server.manager.GroupManager;
import cc.kune.core.server.manager.LicenseManager;
+import cc.kune.core.server.manager.SearchResult;
import cc.kune.core.server.manager.file.FileUtils;
import cc.kune.core.server.properties.KuneBasicProperties;
import cc.kune.core.server.properties.KuneProperties;
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/KuneWaveManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/KuneWaveManagerDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/KuneWaveManagerDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -36,9 +36,9 @@
import cc.kune.domain.User;
import cc.kune.domain.UserBuddiesData;
import cc.kune.domain.finders.GroupFinder;
-import cc.kune.wave.server.KuneWaveService;
import cc.kune.wave.server.KuneWaveUtils;
import cc.kune.wave.server.ParticipantUtils;
+import cc.kune.wave.server.kspecific.KuneWaveService;
import com.google.inject.Inject;
import com.google.inject.Singleton;
Deleted: trunk/src/main/java/cc/kune/core/server/manager/impl/SearchResult.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/SearchResult.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/SearchResult.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,62 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.server.manager.impl;
-
-import java.util.List;
-
-public class SearchResult<T> {
- List<T> list;
- int size;
-
- public SearchResult() {
- this(0, null);
- }
-
- public SearchResult(final int count, final List<T> list) {
- this.list = list;
- this.size = count;
- }
-
- public List<T> getList() {
- return list;
- }
-
- /**
- * Gets the size of total results (may differ from list size).
- *
- * @return the size
- */
- public int getSize() {
- return size;
- }
-
- public void setList(final List<T> list) {
- this.list = list;
- }
-
- public void setSize(final int size) {
- this.size = size;
- }
-
- @Override
- public String toString() {
- return "SearchResult[(" + getSize() + "): " + list + "]";
- }
-}
Copied: trunk/src/main/java/cc/kune/core/server/manager/impl/TagUserContentManagerDefault.java (from rev 1655, trunk/src/main/java/cc/kune/core/server/manager/TagUserContentManagerDefault.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/TagUserContentManagerDefault.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/TagUserContentManagerDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,128 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.server.manager.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+
+import cc.kune.common.shared.utils.TextUtils;
+import cc.kune.core.server.manager.TagManager;
+import cc.kune.core.server.manager.TagUserContentManager;
+import cc.kune.core.shared.domain.TagCloudResult;
+import cc.kune.core.shared.domain.TagCount;
+import cc.kune.domain.Content;
+import cc.kune.domain.Group;
+import cc.kune.domain.Tag;
+import cc.kune.domain.TagUserContent;
+import cc.kune.domain.User;
+import cc.kune.domain.finders.TagUserContentFinder;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
+
+@Singleton
+public class TagUserContentManagerDefault extends DefaultManager<TagUserContent, Long> implements
+ TagUserContentManager {
+ private final TagUserContentFinder finder;
+ private final Provider<EntityManager> provider;
+ private final TagManager tagManager;
+
+ @Inject
+ public TagUserContentManagerDefault(final Provider<EntityManager> provider,
+ final TagManager tagManager, final TagUserContentFinder finder) {
+ super(provider, TagUserContent.class);
+ this.provider = provider;
+ this.tagManager = tagManager;
+ this.finder = finder;
+ }
+
+ public List<Tag> find(final User user, final Content content) {
+ return finder.findTags(user, content);
+ }
+
+ private int getMaxCount(final Group group) {
+ return finder.getMaxGrouped(group).intValue();
+ }
+
+ private int getMinCount(final Group group) {
+ return finder.getMinGrouped(group).intValue();
+ }
+
+ private List<TagCount> getSummaryByGroup(final Group group) {
+ return finder.getTagsGroups(group);
+ }
+
+ @Override
+ public TagCloudResult getTagCloudResultByGroup(final Group group) {
+ try {
+ return new TagCloudResult(getSummaryByGroup(group), getMaxCount(group), getMinCount(group));
+ } catch (final NoResultException e) {
+ return new TagCloudResult();
+ }
+ }
+
+ @Override
+ public String getTagsAsString(final User user, final Content content) {
+ final StringBuffer tagConcatenated = new StringBuffer();
+ if (user.getId() != null) {
+ // FIXME: User must be persisted (this fails on tests)
+ final List<Tag> tags = find(user, content);
+ for (final Tag tag : tags) {
+ tagConcatenated.append(" ").append(tag.getName());
+ }
+ }
+ return tagConcatenated.toString().replaceFirst(" ", "");
+ }
+
+ @Override
+ public void remove(final User user, final Content content) {
+ for (final TagUserContent item : finder.find(user, content)) {
+ provider.get().remove(item);
+ }
+ }
+
+ @Override
+ public void setTags(final User user, final Content content, final String tags) {
+ final ArrayList<String> tagsStripped = TextUtils.splitTags(tags);
+ final ArrayList<Tag> tagList = new ArrayList<Tag>();
+
+ for (final String tagString : tagsStripped) {
+ Tag tag;
+ try {
+ tag = tagManager.findByTagName(tagString);
+ } catch (final NoResultException e) {
+ tag = new Tag(tagString);
+ tagManager.persist(tag);
+ }
+ if (!tagList.contains(tag)) {
+ tagList.add(tag);
+ }
+ }
+ remove(user, content);
+ for (final Tag tag : tagList) {
+ final TagUserContent tagUserContent = new TagUserContent(tag, user, content);
+ persist(tagUserContent);
+ }
+ }
+}
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -55,6 +55,7 @@
import cc.kune.core.server.manager.GroupManager;
import cc.kune.core.server.manager.I18nCountryManager;
import cc.kune.core.server.manager.I18nLanguageManager;
+import cc.kune.core.server.manager.SearchResult;
import cc.kune.core.server.manager.UserManager;
import cc.kune.core.server.notifier.NotifyService;
import cc.kune.core.server.properties.ChatProperties;
@@ -72,8 +73,8 @@
import cc.kune.domain.UserBuddiesData;
import cc.kune.domain.finders.UserFinder;
import cc.kune.wave.server.CustomUserRegistrationServlet;
-import cc.kune.wave.server.KuneWaveService;
import cc.kune.wave.server.ParticipantUtils;
+import cc.kune.wave.server.kspecific.KuneWaveService;
import com.google.inject.Inject;
import com.google.inject.Provider;
Modified: trunk/src/main/java/cc/kune/core/server/mapper/DozerMapper.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/mapper/DozerMapper.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/mapper/DozerMapper.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -24,7 +24,7 @@
import net.sf.dozer.util.mapping.DozerBeanMapperSingletonWrapper;
import net.sf.dozer.util.mapping.MapperIF;
-import cc.kune.core.server.manager.impl.SearchResult;
+import cc.kune.core.server.manager.SearchResult;
import cc.kune.core.shared.dto.SearchResultDTO;
import com.google.inject.Singleton;
Modified: trunk/src/main/java/cc/kune/core/server/mapper/Mapper.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/mapper/Mapper.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/mapper/Mapper.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -22,7 +22,7 @@
import java.util.List;
-import cc.kune.core.server.manager.impl.SearchResult;
+import cc.kune.core.server.manager.SearchResult;
import cc.kune.core.shared.dto.SearchResultDTO;
public interface Mapper {
Modified: trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -8,14 +8,14 @@
import org.apache.commons.logging.LogFactory;
import cc.kune.common.shared.utils.TextUtils;
+import cc.kune.core.server.i18n.I18nTranslationServiceMultiLang;
import cc.kune.core.server.mail.FormatedString;
import cc.kune.core.server.mail.MailService;
-import cc.kune.core.server.manager.I18nTranslationManager;
import cc.kune.core.server.properties.KuneProperties;
import cc.kune.core.server.xmpp.XmppManager;
import cc.kune.core.shared.domain.dto.EmailNotificationFrequency;
import cc.kune.domain.User;
-import cc.kune.wave.server.KuneWaveService;
+import cc.kune.wave.server.kspecific.KuneWaveService;
import com.google.common.base.Preconditions;
import com.google.inject.Inject;
@@ -25,14 +25,14 @@
public class NotifySenderDefault implements NotifySender {
public static final Log LOG = LogFactory.getLog(NotifySenderDefault.class);
private final String emailTemplate;
- private final I18nTranslationManager i18n;
+ private final I18nTranslationServiceMultiLang i18n;
private final MailService mailService;
private final KuneWaveService waveService;
private final XmppManager xmppManager;
@Inject
public NotifySenderDefault(final MailService mailService, final KuneWaveService waveService,
- final XmppManager xmppManager, final I18nTranslationManager i18n,
+ final XmppManager xmppManager, final I18nTranslationServiceMultiLang i18n,
final KuneProperties kuneProperties) throws IOException {
this.mailService = mailService;
this.waveService = waveService;
@@ -51,20 +51,20 @@
final String username = user.getShortName();
if (subject.shouldBeTranslated()) {
// Translate per recipient language
- final String subjectTranslation = i18n.getTranslation(user.getLanguage().getCode(),
- subject.getTemplate(), "");
- if (subjectTranslation != null) {
- // Right now commented because we are only testing
- // subject.setTemplate(subjectTranslation);
- }
+ // final String subjectTranslation = i18n.tWithNT(user.getLanguage(),
+ // subject.getTemplate(), "");
+ // if (subjectTranslation != null) {
+ // Right now commented because we are only testing
+ // subject.setTemplate(subjectTranslation);
+ // }
}
if (body.shouldBeTranslated()) {
- final String bodyTranslation = i18n.getTranslation(user.getLanguage().getCode(),
- body.getTemplate(), "");
- if (bodyTranslation != null) {
- // Right now commented because we are only testing
- // body.setTemplate(bodyTranslation);
- }
+ // final String bodyTranslation = i18n.tWithNT(user.getLanguage(),
+ // body.getTemplate(), "");
+ // if (bodyTranslation != null) {
+ // Right now commented because we are only testing
+ // body.setTemplate(bodyTranslation);
+ // }
}
switch (notifyType) {
case chat:
Modified: trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -33,6 +33,7 @@
this.userFinder = userFinder;
}
+ @SuppressWarnings("unchecked")
private void getAllUserMembers(final Set<User> users, final Group groupToNotify,
final boolean onlyAdmins) {
final Collection<Group> members;
@@ -60,7 +61,6 @@
}
- @SuppressWarnings("unchecked")
public void notifyGroup(final Group groupToNotify, final Group groupSender, final String subject,
final String message) {
final Set<User> members = new HashSet<User>();
Deleted: trunk/src/main/java/cc/kune/core/server/rack/RackHelper.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rack/RackHelper.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/rack/RackHelper.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,57 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.server.rack;
-
-import javax.servlet.ServletRequest;
-import javax.servlet.http.HttpServletRequest;
-
-public final class RackHelper {
- public static String buildForwardString(final ServletRequest request, final String forward) {
- String parameters = RackHelper.extractParameters(request);
- return new StringBuilder(forward).append(parameters).toString();
- }
-
- public static String extractParameters(final ServletRequest request) {
- HttpServletRequest httpServletRequest = (HttpServletRequest) request;
- String uri = httpServletRequest.getRequestURI();
- int index = uri.indexOf('?');
- if (index > 0) {
- return uri.substring(index);
- } else {
- return "";
- }
- }
-
- public static String getRelativeURL(final ServletRequest request) {
- HttpServletRequest req = (HttpServletRequest) request;
- String contextPath = req.getContextPath();
- String uri = req.getRequestURI();
- return uri.substring(contextPath.length());
- }
-
- public static String getURI(final ServletRequest request) {
- HttpServletRequest httpServletRequest = (HttpServletRequest) request;
- return httpServletRequest.getRequestURI();
- }
-
- private RackHelper() {
- }
-
-}
Deleted: trunk/src/main/java/cc/kune/core/server/rack/RackServletFilter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rack/RackServletFilter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/rack/RackServletFilter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,192 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.server.rack;
-
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.quartz.SchedulerException;
-import org.waveprotocol.box.server.rpc.ServerRpcProvider;
-
-import cc.kune.core.server.error.ServerException;
-import cc.kune.core.server.rack.dock.Dock;
-import cc.kune.core.server.rack.dock.RequestMatcher;
-import cc.kune.core.server.scheduler.CronServerTasksManager;
-import cc.kune.wave.server.WaveEmailNotifier;
-
-import com.google.inject.Injector;
-
-public class RackServletFilter implements Filter {
- public static class DockChain implements FilterChain {
- private final Iterator<Dock> iterator;
-
- public DockChain(final Iterator<Dock> iterator) {
- this.iterator = iterator;
- }
-
- @Override
- public void doFilter(final ServletRequest request, final ServletResponse response)
- throws IOException, ServletException {
- Dock dock = null;
- boolean matched = false;
-
- final String relative = RackHelper.getRelativeURL(request);
- while (!matched && iterator.hasNext()) {
- dock = iterator.next();
- matched = dock.matches(relative);
- }
- if (matched) {
- execute(dock.getFilter(), request, response);
- }
- }
-
- private void execute(final Filter filter, final ServletRequest request,
- final ServletResponse response) throws IOException, ServletException {
- // log.debug("RACK FILTER: " + filter.getClass().getSimpleName());
- filter.doFilter(request, response, this);
- }
- }
-
- public static final String INJECTOR_ATTRIBUTE = Injector.class.getName() + "Child";
- public static final String INJECTOR_PARENT_ATTRIBUTE = ServerRpcProvider.INJECTOR_ATTRIBUTE;
- private static final Log LOG = LogFactory.getLog(RackServletFilter.class);
- private static final String MODULE_PARAMETER = RackModule.class.getName();
- private List<Dock> docks;
-
- private List<RequestMatcher> excludes;
- private Injector injector;
- private Rack rack;
-
- @Override
- public void destroy() {
- for (final Dock dock : docks) {
- dock.getFilter().destroy();
- }
- }
-
- @Override
- public void doFilter(final ServletRequest request, final ServletResponse response,
- final FilterChain chain) throws IOException, ServletException {
-
- final String relative = RackHelper.getRelativeURL(request);
- for (final RequestMatcher matcher : excludes) {
- if (matcher.matches(relative)) {
- LOG.info("Excluded (from Guice): " + relative);
- chain.doFilter(request, response);
- return;
- }
- }
- LOG.debug("REQUEST: " + relative);
- final FilterChain newChain = new DockChain(docks.iterator());
- newChain.doFilter(request, response);
- }
-
- @Override
- protected void finalize() throws Throwable {
- super.finalize();
- stopContainerListeners(rack.getListeners(), injector);
- }
-
- private RackModule getModule(final FilterConfig filterConfig) {
- final String moduleName = getModuleName(filterConfig);
- try {
- final Class<?> clazz = Class.forName(moduleName);
- final RackModule module = (RackModule) clazz.newInstance();
- return module;
- } catch (final Exception e) {
- throw new ServerException("couldn't instantiate the rack module", e);
- }
- }
-
- private String getModuleName(final FilterConfig filterConfig) {
- final String moduleName = filterConfig.getInitParameter(MODULE_PARAMETER);
- if (moduleName == null) {
- throw new ServerException("Rack module name can't be null!");
- }
- return moduleName;
- }
-
- @Override
- public void init(final FilterConfig filterConfig) throws ServletException {
- LOG.debug("INITIALIZING RackServletFilter...");
- final RackModule module = getModule(filterConfig);
- final RackBuilder builder = new RackBuilder();
- module.configure(builder);
- rack = builder.getRack();
- injector = (Injector) filterConfig.getServletContext().getAttribute(INJECTOR_PARENT_ATTRIBUTE);
- final Injector kuneChildInjector = installInjector(filterConfig, rack, injector);
- startContainerListeners(rack.getListeners(), kuneChildInjector);
- docks = rack.getDocks();
- excludes = rack.getExcludes();
- initFilters(filterConfig);
- kuneChildInjector.getInstance(WaveEmailNotifier.class);
- try {
- kuneChildInjector.getInstance(CronServerTasksManager.class).start();
- } catch (final SchedulerException e) {
- LOG.error("Error starting cron scheduler", e);
- }
- LOG.debug("INITIALIZATION DONE!");
- }
-
- private void initFilters(final FilterConfig filterConfig) throws ServletException {
- for (final Dock dock : docks) {
- dock.getFilter().init(filterConfig);
- }
- }
-
- private Injector installInjector(final FilterConfig filterConfig, final Rack rack,
- final Injector waveChildInjector) {
- // final Injector injector = Guice.createInjector();
- final Injector childInjector = waveChildInjector.createChildInjector(rack.getGuiceModules());
- filterConfig.getServletContext().setAttribute(INJECTOR_ATTRIBUTE, childInjector);
- return childInjector;
- }
-
- private void startContainerListeners(final List<Class<? extends ContainerListener>> listenerClasses,
- final Injector injector) {
- LOG.debug("STARTING CONTAINER LISTENERS...");
- for (final Class<? extends ContainerListener> listenerClass : listenerClasses) {
- final ContainerListener listener = injector.getInstance(listenerClass);
- listener.start();
- }
- }
-
- // FIXME: Dani, never used this:
- @SuppressWarnings("unused")
- private void stopContainerListeners(final List<Class<? extends ContainerListener>> listenerClasses,
- final Injector injector) {
- LOG.debug("STOPING CONTAINER LISTENERS...");
- for (final Class<? extends ContainerListener> listenerClass : listenerClasses) {
- final ContainerListener listener = injector.getInstance(listenerClass);
- listener.stop();
- }
- }
-
-}
Added: trunk/src/main/java/cc/kune/core/server/rack/RackServletFilter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rack/RackServletFilter.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/rack/RackServletFilter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,191 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.server.rack;
+
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.quartz.SchedulerException;
+import org.waveprotocol.box.server.rpc.ServerRpcProvider;
+
+import cc.kune.core.server.error.ServerException;
+import cc.kune.core.server.rack.dock.Dock;
+import cc.kune.core.server.rack.dock.RequestMatcher;
+import cc.kune.core.server.rack.utils.RackHelper;
+import cc.kune.core.server.scheduler.CronServerTasksManager;
+import cc.kune.wave.server.kspecific.WaveEmailNotifier;
+
+import com.google.inject.Injector;
+
+public class RackServletFilter implements Filter {
+ public static class DockChain implements FilterChain {
+ private final Iterator<Dock> iterator;
+
+ public DockChain(final Iterator<Dock> iterator) {
+ this.iterator = iterator;
+ }
+
+ @Override
+ public void doFilter(final ServletRequest request, final ServletResponse response)
+ throws IOException, ServletException {
+ Dock dock = null;
+ boolean matched = false;
+
+ final String relative = RackHelper.getRelativeURL(request);
+ while (!matched && iterator.hasNext()) {
+ dock = iterator.next();
+ matched = dock.matches(relative);
+ }
+ if (matched) {
+ execute(dock.getFilter(), request, response);
+ }
+ }
+
+ private void execute(final Filter filter, final ServletRequest request,
+ final ServletResponse response) throws IOException, ServletException {
+ // log.debug("RACK FILTER: " + filter.getClass().getSimpleName());
+ filter.doFilter(request, response, this);
+ }
+ }
+
+ public static final String INJECTOR_ATTRIBUTE = Injector.class.getName() + "Child";
+ public static final String INJECTOR_PARENT_ATTRIBUTE = ServerRpcProvider.INJECTOR_ATTRIBUTE;
+ private static final Log LOG = LogFactory.getLog(RackServletFilter.class);
+ private static final String MODULE_PARAMETER = RackModule.class.getName();
+ private List<Dock> docks;
+
+ private List<RequestMatcher> excludes;
+ private Injector injector;
+ private Rack rack;
+
+ @Override
+ public void destroy() {
+ for (final Dock dock : docks) {
+ dock.getFilter().destroy();
+ }
+ }
+
+ @Override
+ public void doFilter(final ServletRequest request, final ServletResponse response,
+ final FilterChain chain) throws IOException, ServletException {
+
+ final String relative = RackHelper.getRelativeURL(request);
+ for (final RequestMatcher matcher : excludes) {
+ if (matcher.matches(relative)) {
+ LOG.info("Excluded (from Guice): " + relative);
+ chain.doFilter(request, response);
+ return;
+ }
+ }
+ LOG.debug("REQUEST: " + relative);
+ final FilterChain newChain = new DockChain(docks.iterator());
+ newChain.doFilter(request, response);
+ }
+
+ @Override
+ protected void finalize() throws Throwable {
+ super.finalize();
+ stopContainerListeners(rack.getListeners(), injector);
+ }
+
+ private RackModule getModule(final FilterConfig filterConfig) {
+ final String moduleName = getModuleName(filterConfig);
+ try {
+ final Class<?> clazz = Class.forName(moduleName);
+ final RackModule module = (RackModule) clazz.newInstance();
+ return module;
+ } catch (final Exception e) {
+ throw new ServerException("couldn't instantiate the rack module", e);
+ }
+ }
+
+ private String getModuleName(final FilterConfig filterConfig) {
+ final String moduleName = filterConfig.getInitParameter(MODULE_PARAMETER);
+ if (moduleName == null) {
+ throw new ServerException("Rack module name can't be null!");
+ }
+ return moduleName;
+ }
+
+ @Override
+ public void init(final FilterConfig filterConfig) throws ServletException {
+ LOG.debug("INITIALIZING RackServletFilter...");
+ final RackModule module = getModule(filterConfig);
+ final RackBuilder builder = new RackBuilder();
+ module.configure(builder);
+ rack = builder.getRack();
+ injector = (Injector) filterConfig.getServletContext().getAttribute(INJECTOR_PARENT_ATTRIBUTE);
+ final Injector kuneChildInjector = installInjector(filterConfig, rack, injector);
+ startContainerListeners(rack.getListeners(), kuneChildInjector);
+ docks = rack.getDocks();
+ excludes = rack.getExcludes();
+ initFilters(filterConfig);
+ kuneChildInjector.getInstance(WaveEmailNotifier.class);
+ try {
+ kuneChildInjector.getInstance(CronServerTasksManager.class).start();
+ } catch (final SchedulerException e) {
+ LOG.error("Error starting cron scheduler", e);
+ }
+ LOG.debug("INITIALIZATION DONE!");
+ }
+
+ private void initFilters(final FilterConfig filterConfig) throws ServletException {
+ for (final Dock dock : docks) {
+ dock.getFilter().init(filterConfig);
+ }
+ }
+
+ private Injector installInjector(final FilterConfig filterConfig, final Rack rack,
+ final Injector waveChildInjector) {
+ // final Injector injector = Guice.createInjector();
+ final Injector childInjector = waveChildInjector.createChildInjector(rack.getGuiceModules());
+ filterConfig.getServletContext().setAttribute(INJECTOR_ATTRIBUTE, childInjector);
+ return childInjector;
+ }
+
+ private void startContainerListeners(final List<Class<? extends ContainerListener>> listenerClasses,
+ final Injector injector) {
+ LOG.debug("STARTING CONTAINER LISTENERS...");
+ for (final Class<? extends ContainerListener> listenerClass : listenerClasses) {
+ final ContainerListener listener = injector.getInstance(listenerClass);
+ listener.start();
+ }
+ }
+
+ private void stopContainerListeners(final List<Class<? extends ContainerListener>> listenerClasses,
+ final Injector injector) {
+ LOG.debug("STOPING CONTAINER LISTENERS...");
+ for (final Class<? extends ContainerListener> listenerClass : listenerClasses) {
+ final ContainerListener listener = injector.getInstance(listenerClass);
+ listener.stop();
+ }
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/core/server/rack/filters/AbstractInjectedFilter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rack/filters/AbstractInjectedFilter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/rack/filters/AbstractInjectedFilter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -31,23 +31,23 @@
public abstract class AbstractInjectedFilter implements Filter {
- protected ServletContext ctx;
+ protected ServletContext ctx;
- @Override
- public abstract void destroy();
+ @Override
+ public abstract void destroy();
- public <T> T getInstance(final Class<T> type) {
- return getInjector().getInstance(type);
- }
+ private Injector getInjector() {
+ return (Injector) ctx.getAttribute(RackServletFilter.INJECTOR_ATTRIBUTE);
+ }
- @Override
- public void init(final FilterConfig filterConfig) throws ServletException {
- this.ctx = filterConfig.getServletContext();
- getInjector().injectMembers(this);
- }
+ public <T> T getInstance(final Class<T> type) {
+ return getInjector().getInstance(type);
+ }
- private Injector getInjector() {
- return (Injector) ctx.getAttribute(RackServletFilter.INJECTOR_ATTRIBUTE);
- }
+ @Override
+ public void init(final FilterConfig filterConfig) throws ServletException {
+ this.ctx = filterConfig.getServletContext();
+ getInjector().injectMembers(this);
+ }
}
Modified: trunk/src/main/java/cc/kune/core/server/rack/filters/ForwardFilter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rack/filters/ForwardFilter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/rack/filters/ForwardFilter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -29,7 +29,7 @@
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
-import cc.kune.core.server.rack.RackHelper;
+import cc.kune.core.server.rack.utils.RackHelper;
public class ForwardFilter extends AbstractInjectedFilter {
// private static final Log log = LogFactory.getLog(ForwardFilter.class);
Modified: trunk/src/main/java/cc/kune/core/server/rack/filters/LogFilter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rack/filters/LogFilter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/rack/filters/LogFilter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -31,7 +31,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import cc.kune.core.server.rack.RackHelper;
+import cc.kune.core.server.rack.utils.RackHelper;
public class LogFilter implements Filter {
public static final Log LOG = LogFactory.getLog(LogFilter.class);
Modified: trunk/src/main/java/cc/kune/core/server/rack/filters/gwts/GWTServiceFilter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rack/filters/gwts/GWTServiceFilter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/rack/filters/gwts/GWTServiceFilter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -32,8 +32,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import cc.kune.core.server.rack.RackHelper;
import cc.kune.core.server.rack.filters.AbstractInjectedFilter;
+import cc.kune.core.server.rack.utils.RackHelper;
import com.google.gwt.user.client.rpc.RemoteService;
Modified: trunk/src/main/java/cc/kune/core/server/rack/filters/rest/RESTServiceFilter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rack/filters/rest/RESTServiceFilter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/rack/filters/rest/RESTServiceFilter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -32,8 +32,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import cc.kune.core.server.rack.RackHelper;
import cc.kune.core.server.rack.filters.AbstractInjectedFilter;
+import cc.kune.core.server.rack.utils.RackHelper;
import com.google.inject.Inject;
Modified: trunk/src/main/java/cc/kune/core/server/rack/filters/servlet/ServletServiceFilter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rack/filters/servlet/ServletServiceFilter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/rack/filters/servlet/ServletServiceFilter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -31,8 +31,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import cc.kune.core.server.rack.RackHelper;
import cc.kune.core.server.rack.filters.AbstractInjectedFilter;
+import cc.kune.core.server.rack.utils.RackHelper;
public class ServletServiceFilter extends AbstractInjectedFilter {
Log log = LogFactory.getLog(ServletServiceFilter.class);
Copied: trunk/src/main/java/cc/kune/core/server/rack/utils/RackHelper.java (from rev 1655, trunk/src/main/java/cc/kune/core/server/rack/RackHelper.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rack/utils/RackHelper.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/rack/utils/RackHelper.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,57 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.server.rack.utils;
+
+import javax.servlet.ServletRequest;
+import javax.servlet.http.HttpServletRequest;
+
+public final class RackHelper {
+ public static String buildForwardString(final ServletRequest request, final String forward) {
+ String parameters = RackHelper.extractParameters(request);
+ return new StringBuilder(forward).append(parameters).toString();
+ }
+
+ public static String extractParameters(final ServletRequest request) {
+ HttpServletRequest httpServletRequest = (HttpServletRequest) request;
+ String uri = httpServletRequest.getRequestURI();
+ int index = uri.indexOf('?');
+ if (index > 0) {
+ return uri.substring(index);
+ } else {
+ return "";
+ }
+ }
+
+ public static String getRelativeURL(final ServletRequest request) {
+ HttpServletRequest req = (HttpServletRequest) request;
+ String contextPath = req.getContextPath();
+ String uri = req.getRequestURI();
+ return uri.substring(contextPath.length());
+ }
+
+ public static String getURI(final ServletRequest request) {
+ HttpServletRequest httpServletRequest = (HttpServletRequest) request;
+ return httpServletRequest.getRequestURI();
+ }
+
+ private RackHelper() {
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/core/server/rest/ContentJSONService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rest/ContentJSONService.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/rest/ContentJSONService.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -22,7 +22,7 @@
import cc.kune.core.server.content.ContainerManager;
import cc.kune.core.server.content.ContentManager;
-import cc.kune.core.server.manager.impl.SearchResult;
+import cc.kune.core.server.manager.SearchResult;
import cc.kune.core.server.mapper.Mapper;
import cc.kune.core.server.rack.filters.rest.REST;
import cc.kune.core.shared.SearcherConstants;
Modified: trunk/src/main/java/cc/kune/core/server/rest/GroupJSONService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rest/GroupJSONService.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/rest/GroupJSONService.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -21,7 +21,7 @@
import cc.kune.core.server.manager.GroupManager;
-import cc.kune.core.server.manager.impl.SearchResult;
+import cc.kune.core.server.manager.SearchResult;
import cc.kune.core.server.mapper.Mapper;
import cc.kune.core.server.rack.filters.rest.REST;
import cc.kune.core.shared.SearcherConstants;
Modified: trunk/src/main/java/cc/kune/core/server/rest/UserJSONService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rest/UserJSONService.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/rest/UserJSONService.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -20,8 +20,8 @@
package cc.kune.core.server.rest;
+import cc.kune.core.server.manager.SearchResult;
import cc.kune.core.server.manager.UserManager;
-import cc.kune.core.server.manager.impl.SearchResult;
import cc.kune.core.server.mapper.Mapper;
import cc.kune.core.server.rack.filters.rest.REST;
import cc.kune.core.shared.SearcherConstants;
Modified: trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -35,7 +35,7 @@
import cc.kune.domain.License;
import cc.kune.domain.Revision;
import cc.kune.domain.User;
-import cc.kune.wave.server.KuneWaveService;
+import cc.kune.wave.server.kspecific.KuneWaveService;
import com.google.inject.Inject;
import com.google.inject.Singleton;
Modified: trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -10,9 +10,9 @@
import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.events.client.viewer.CalendarViewerPresenter.CalendarViewerView;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import cc.kune.gspace.client.viewers.AbstractFolderViewerPanel;
-import cc.kune.gspace.client.viewers.FolderItemDescriptor;
+import cc.kune.gspace.client.viewers.items.FolderItemDescriptor;
import com.bradrydzewski.gwt.calendar.client.Appointment;
import com.bradrydzewski.gwt.calendar.client.AppointmentStyle;
Deleted: trunk/src/main/java/cc/kune/gspace/client/GSpaceArmor.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/GSpaceArmor.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/GSpaceArmor.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,83 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.gspace.client;
-
-import cc.kune.common.client.actions.ui.IsActionExtensible;
-
-import com.google.gwt.user.client.ui.InsertPanel.ForIsWidget;
-import com.google.gwt.user.client.ui.IsWidget;
-import com.google.gwt.user.client.ui.SimplePanel;
-
-public interface GSpaceArmor {
-
- void clearBackImage();
-
- void enableCenterScroll(boolean enable);
-
- ForIsWidget getDocContainer();
-
- ForIsWidget getDocFooter();
-
- IsActionExtensible getDocFooterToolbar();
-
- ForIsWidget getDocHeader();
-
- ForIsWidget getDocSubheader();
-
- ForIsWidget getEntityFooter();
-
- IsActionExtensible getEntityFooterToolbar();
-
- ForIsWidget getEntityHeader();
-
- ForIsWidget getEntityToolsCenter();
-
- ForIsWidget getEntityToolsNorth();
-
- ForIsWidget getEntityToolsSouth();
-
- IsActionExtensible getHeaderToolbar();
-
- SimplePanel getHomeSpace();
-
- IsWidget getMainpanel();
-
- SimplePanel getPublicSpace();
-
- ForIsWidget getSitebar();
-
- IsActionExtensible getSubheaderToolbar();
-
- IsActionExtensible getToolsSouthToolbar();
-
- ForIsWidget getUserSpace();
-
- void selectGroupSpace();
-
- void selectHomeSpace();
-
- void selectPublicSpace();
-
- void selectUserSpace();
-
- void setBackImage(String url);
-
- void setContentVisible(boolean visible);
-}
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/gspace/client/GSpaceArmorEntryPoint.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/GSpaceArmorEntryPoint.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/GSpaceArmorEntryPoint.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -19,7 +19,8 @@
*/
package cc.kune.gspace.client;
-import cc.kune.gspace.client.resources.GSpaceArmorResources;
+import cc.kune.gspace.client.armor.impl.GSpaceArmorImpl;
+import cc.kune.gspace.client.armor.resources.GSpaceArmorResources;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
Deleted: trunk/src/main/java/cc/kune/gspace/client/GSpaceArmorImpl.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/GSpaceArmorImpl.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/GSpaceArmorImpl.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,277 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.gspace.client;
-
-import org.cobogw.gwt.user.client.CSS;
-
-import cc.kune.common.client.actions.ui.ActionFlowPanel;
-import cc.kune.common.client.actions.ui.IsActionExtensible;
-
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.dom.client.Style.Overflow;
-import com.google.gwt.dom.client.Style.Position;
-import com.google.gwt.uibinder.client.UiBinder;
-import com.google.gwt.uibinder.client.UiField;
-import com.google.gwt.user.client.DOM;
-import com.google.gwt.user.client.Element;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.DockLayoutPanel;
-import com.google.gwt.user.client.ui.FlowPanel;
-import com.google.gwt.user.client.ui.InsertPanel.ForIsWidget;
-import com.google.gwt.user.client.ui.IsWidget;
-import com.google.gwt.user.client.ui.ScrollPanel;
-import com.google.gwt.user.client.ui.SimplePanel;
-import com.google.gwt.user.client.ui.SplitLayoutPanel;
-import com.google.gwt.user.client.ui.TabLayoutPanel;
-import com.google.gwt.user.client.ui.Widget;
-import com.google.inject.Inject;
-import com.google.inject.Provider;
-
-public class GSpaceArmorImpl extends Composite implements GSpaceArmor {
-
- interface WsArmorImplUiBinder extends UiBinder<Widget, GSpaceArmorImpl> {
- }
-
- private static WsArmorImplUiBinder uiBinder = GWT.create(WsArmorImplUiBinder.class);
-
- @UiField
- ScrollPanel centerScroll;
- @UiField
- FlowPanel docContainer;
- @UiField
- DockLayoutPanel docContainerParent;
- @UiField
- FlowPanel docFooter;
- private final ActionFlowPanel docFooterToolbar;
- @UiField
- FlowPanel docHeader;
- @UiField
- FlowPanel docSubheader;
- @UiField
- FlowPanel entityFooter;
- private final ActionFlowPanel entityFooterToolbar;
- @UiField
- FlowPanel entityHeader;
- @UiField
- FlowPanel entityToolsCenter;
- @UiField
- FlowPanel entityToolsContainer;
- @UiField
- FlowPanel entityToolsNorth;
- @UiField
- FlowPanel entityToolsSouth;
- @UiField
- SplitLayoutPanel groupSpace;
- @UiField
- SimplePanel groupSpaceWrapper;
- private final ActionFlowPanel headerToolbar;
- @UiField
- SimplePanel homeSpace;
- @UiField
- DockLayoutPanel mainpanel;
- @UiField
- SimplePanel publicSpace;
- @UiField
- FlowPanel sitebar;
- @UiField
- DockLayoutPanel splitCenter;
- @UiField
- DockLayoutPanel splitEast;
- private final ActionFlowPanel subheaderToolbar;
- @UiField
- TabLayoutPanel tabs;
- private final ActionFlowPanel toolsSouthToolbar;
- @UiField
- FlowPanel userSpace;
-
- @Inject
- public GSpaceArmorImpl(final Provider<ActionFlowPanel> toolbarProv) {
- initWidget(uiBinder.createAndBindUi(this));
- groupSpace.setWidgetMinSize(splitEast, 150);
- DOM.setStyleAttribute((Element) groupSpace.getWidgetContainerElement(splitEast), "overflow",
- "visible");
- DOM.setStyleAttribute((Element) splitEast.getWidgetContainerElement(entityToolsContainer),
- "overflow", "visible");
- docFooterToolbar = toolbarProv.get();
- headerToolbar = toolbarProv.get();
- subheaderToolbar = toolbarProv.get();
- toolsSouthToolbar = toolbarProv.get();
- entityFooterToolbar = toolbarProv.get();
- getDocHeader().add(headerToolbar);
- getDocSubheader().add(subheaderToolbar);
- getDocFooter().add(docFooterToolbar);
- getEntityToolsSouth().add(toolsSouthToolbar);
- getEntityFooter().add(entityFooterToolbar);
- entityToolsNorth.getElement().getStyle().setPosition(Position.RELATIVE);
- // entityToolsSouth.setVisible(false);
- mainpanel.getWidgetContainerElement(tabs).addClassName("k-spaces");
- enableCenterScroll(true);
- }
-
- @Override
- public void clearBackImage() {
- final String bodyProp = "#FFFFFF";
- DOM.setStyleAttribute(groupSpaceWrapper.getElement(), CSS.A.BACKGROUND, bodyProp);
- }
-
- @Override
- public void enableCenterScroll(final boolean enable) {
- // TODO use here Element.getStyle()...
- if (enable) {
- centerScroll.setAlwaysShowScrollBars(false);
- DOM.setStyleAttribute(centerScroll.getElement(), "position", "absolute");
- DOM.setStyleAttribute((Element) centerScroll.getElement().getFirstChildElement(), "position",
- "relative");
- } else {
- centerScroll.getElement().getStyle().setOverflow(Overflow.HIDDEN);
- DOM.setStyleAttribute(centerScroll.getElement(), "position", "");
- DOM.setStyleAttribute((Element) centerScroll.getElement().getFirstChildElement(), "position", "");
- }
- }
-
- @Override
- public ForIsWidget getDocContainer() {
- return docContainer;
- }
-
- @Override
- public ForIsWidget getDocFooter() {
- return docFooter;
- }
-
- @Override
- public IsActionExtensible getDocFooterToolbar() {
- return docFooterToolbar;
- }
-
- @Override
- public ForIsWidget getDocHeader() {
- return docHeader;
- }
-
- @Override
- public ForIsWidget getDocSubheader() {
- return docSubheader;
- }
-
- @Override
- public ForIsWidget getEntityFooter() {
- return entityFooter;
- }
-
- @Override
- public IsActionExtensible getEntityFooterToolbar() {
- return entityFooterToolbar;
- }
-
- @Override
- public ForIsWidget getEntityHeader() {
- return entityHeader;
- }
-
- @Override
- public ForIsWidget getEntityToolsCenter() {
- return entityToolsCenter;
- }
-
- @Override
- public ForIsWidget getEntityToolsNorth() {
- return entityToolsNorth;
- }
-
- @Override
- public ForIsWidget getEntityToolsSouth() {
- return entityToolsSouth;
- }
-
- @Override
- public IsActionExtensible getHeaderToolbar() {
- return headerToolbar;
- }
-
- @Override
- public SimplePanel getHomeSpace() {
- return homeSpace;
- }
-
- @Override
- public IsWidget getMainpanel() {
- return mainpanel;
- }
-
- @Override
- public SimplePanel getPublicSpace() {
- return publicSpace;
- }
-
- @Override
- public ForIsWidget getSitebar() {
- return sitebar;
- }
-
- @Override
- public IsActionExtensible getSubheaderToolbar() {
- return subheaderToolbar;
- }
-
- @Override
- public IsActionExtensible getToolsSouthToolbar() {
- return toolsSouthToolbar;
- }
-
- @Override
- public ForIsWidget getUserSpace() {
- return userSpace;
- }
-
- @Override
- public void selectGroupSpace() {
- tabs.selectTab(groupSpaceWrapper);
- }
-
- @Override
- public void selectHomeSpace() {
- tabs.selectTab(homeSpace);
- }
-
- @Override
- public void selectPublicSpace() {
- tabs.selectTab(publicSpace);
- }
-
- @Override
- public void selectUserSpace() {
- tabs.selectTab(userSpace);
- }
-
- @Override
- public void setBackImage(final String url) {
- final String bodyProp = "#FFFFFF url('" + url + "') fixed top left";
- DOM.setStyleAttribute(groupSpaceWrapper.getElement(), CSS.A.BACKGROUND, bodyProp);
- }
-
- @Override
- public void setContentVisible(final boolean visible) {
- // FIXME: remove this?
- // NotifyUser.info("Visible: " + visible);
- // docContainer.getElement().getStyle().setOpacity(visible ? 1d : .0d);
- // docFooter.getElement().getStyle().setOpacity(visible ? 1d : .0d);
- }
-}
Deleted: trunk/src/main/java/cc/kune/gspace/client/GSpaceArmorImpl.ui.xml
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/GSpaceArmorImpl.ui.xml 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/GSpaceArmorImpl.ui.xml 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,126 +0,0 @@
-<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
-<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
- xmlns:co="urn:import:cc.kune.core.client" xmlns:kp="urn:import:cc.kune.pspace.client"
- xmlns:g="urn:import:com.google.gwt.user.client.ui">
- <ui:with field='res'
- type='cc.kune.gspace.client.resources.GSpaceArmorResources'/>
- <ui:style>
- .frame {
- border: 0px;
- margin: 0px;
- }
- </ui:style>
- <g:DockLayoutPanel ui:field="mainpanel" styleName='{res.style.mainPanel}'
- unit="PX">
- <g:north size="23">
- <g:FlowPanel ui:field="sitebar" height="23px"
- styleName='{res.style.siteBar}'>
- </g:FlowPanel>
- </g:north>
- <g:center>
- <g:TabLayoutPanel width="100%" height="100%"
- barUnit='PX' barHeight='0' ui:field="tabs">
- <g:tab>
- <g:header size='0'/>
- <g:SimplePanel styleName="k-space" ui:field="homeSpace"
- width="100%" height="100%"></g:SimplePanel>
- </g:tab>
- <g:tab>
- <g:header size='0'/>
- <g:FlowPanel ui:field="userSpace" styleName="k-space"
- width="100%" height="100%">
- <!-- <g:Frame url="/" styleName="{style.frame}" -->
- <!-- ui:field="frame" width="100%" height="100%" /> -->
- </g:FlowPanel>
- </g:tab>
- <g:tab>
- <g:header size='0'/>
- <g:SimplePanel ui:field="groupSpaceWrapper"
- styleName="k-group-space">
- <g:SplitLayoutPanel width="100%" height="100%"
- styleName="k-space" ui:field="groupSpace">
- <g:center size="1.0">
- <g:DockLayoutPanel unit="PX" ui:field="splitCenter"
- styleName="{res.style.entityCentralContainer}">
- <g:north size="153">
- <g:VerticalPanel width="100%"
- height="153px">
- <g:FlowPanel height="70px" width="100%"
- styleName="{res.style.entityHeader}" ui:field="entityHeader">
- <!--<g:RichTextArea width="100%" height="70px" /> -->
- </g:FlowPanel>
- <g:FlowPanel width="100%" height="38px"
- styleName="{res.style.docHeader}" ui:field="docHeader">
- </g:FlowPanel>
- <g:HTMLPanel ui:field="arrow"
- styleName="{res.style.docSubheaderArrow}"/>
- <g:FlowPanel width="100%" height="45px"
- styleName="{res.style.docSubheader}" ui:field="docSubheader">
- </g:FlowPanel>
- </g:VerticalPanel>
- </g:north>
- <g:center>
- <g:DockLayoutPanel unit="PX"
- styleName="{res.style.docEditorMargin}" ui:field="docContainerParent">
- <g:west size="10">
- <g:SimplePanel/>
- </g:west>
- <g:east size="10">
- <g:SimplePanel/>
- </g:east>
- <g:center>
- <g:ScrollPanel ui:field="centerScroll"
- styleName="{res.style.docEditor}">
- <g:FlowPanel width="auto" height="auto"
- styleName="{res.style.docEditorContainer}"
- ui:field="docContainer"/>
- </g:ScrollPanel>
- </g:center>
- <g:south size="33.0">
- <g:VerticalPanel height="33px"
- width="100%" styleName="{res.style.docFooter}">
- <g:FlowPanel width="100%" height="33"
- ui:field="docFooter">
- </g:FlowPanel>
- </g:VerticalPanel>
- </g:south>
- </g:DockLayoutPanel>
- </g:center>
- <g:south size="36">
- <g:FlowPanel height="36px" width="100%"
- styleName="{res.style.entityFooter}" ui:field="entityFooter">
- </g:FlowPanel>
- </g:south>
- </g:DockLayoutPanel>
- </g:center>
- <!-- east to RTL (plus css changes in corners and menus) -->
- <g:west size="200.0">
- <g:DockLayoutPanel unit="PX"
- styleName="{res.style.entityTools}" ui:field="splitEast">
- <g:center>
- <g:FlowPanel ui:field="entityToolsContainer">
- <g:FlowPanel width="100%" ui:field="entityToolsNorth"
- styleName="{res.style.entityToolsNorth}"></g:FlowPanel>
- <g:FlowPanel width="100%" ui:field="entityToolsCenter"
- styleName="{res.style.entityToolsCenter}">
- </g:FlowPanel>
- </g:FlowPanel>
- </g:center>
- <g:south size="98">
- <g:FlowPanel styleName="{res.style.entityToolsSouth}"
- ui:field="entityToolsSouth" width="100%"/>
- </g:south>
- </g:DockLayoutPanel>
- </g:west>
- </g:SplitLayoutPanel>
- </g:SimplePanel>
- </g:tab>
- <g:tab>
- <g:header size='0'/>
- <g:SimplePanel ui:field="publicSpace" width="100%"
- styleName="k-space" height="100%"></g:SimplePanel>
- </g:tab>
- </g:TabLayoutPanel>
- </g:center>
- </g:DockLayoutPanel>
-</ui:UiBinder>
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/GSpaceGinModule.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -26,6 +26,8 @@
import cc.kune.gspace.client.actions.ContentViewerOptionsMenu;
import cc.kune.gspace.client.actions.GiveUsFeedbackBtn;
import cc.kune.gspace.client.actions.RenameAction;
+import cc.kune.gspace.client.armor.GSpaceArmor;
+import cc.kune.gspace.client.armor.impl.GSpaceArmorImpl;
import cc.kune.gspace.client.i18n.I18nTranslator;
import cc.kune.gspace.client.i18n.I18nTranslatorPanel;
import cc.kune.gspace.client.i18n.I18nTranslatorPresenter;
Modified: trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -19,8 +19,8 @@
*/
package cc.kune.gspace.client;
-import cc.kune.core.client.init.AppStartEvent;
-import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
import cc.kune.core.client.sitebar.search.SitebarSearchPresenter;
import cc.kune.core.client.sn.actions.WriteToBuddyHeaderButton;
import cc.kune.core.client.state.HistoryTokenCallback;
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/AbstractEditorsMenu.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/AbstractEditorsMenu.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/AbstractEditorsMenu.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -20,8 +20,8 @@
package cc.kune.gspace.client.actions;
import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
-import cc.kune.core.client.state.AccessRightsChangedEvent;
-import cc.kune.core.client.state.AccessRightsChangedEvent.AccessRightsChangedHandler;
+import cc.kune.core.client.events.AccessRightsChangedEvent;
+import cc.kune.core.client.events.AccessRightsChangedEvent.AccessRightsChangedHandler;
import cc.kune.core.client.state.AccessRightsClientManager;
public class AbstractEditorsMenu extends MenuDescriptor {
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/AbstractFoldableToolActions.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/AbstractFoldableToolActions.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/AbstractFoldableToolActions.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -20,9 +20,9 @@
package cc.kune.gspace.client.actions;
import cc.kune.core.client.actions.ActionRegistryByType;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
import cc.kune.core.client.i18n.I18nUITranslationService;
-import cc.kune.core.client.init.AppStartEvent;
-import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/GiveUsFeedbackBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/GiveUsFeedbackBtn.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/GiveUsFeedbackBtn.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -22,7 +22,7 @@
import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
import cc.kune.core.client.i18n.I18nUITranslationService;
import cc.kune.core.client.resources.nav.NavResources;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import com.google.inject.Inject;
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/GotoTokenAction.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/GotoTokenAction.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/GotoTokenAction.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -23,8 +23,8 @@
import cc.kune.common.client.actions.Action;
import cc.kune.common.client.actions.ActionEvent;
import cc.kune.core.client.events.RenameContentEvent;
-import cc.kune.core.client.state.SocialNetworkChangedEvent;
-import cc.kune.core.client.state.SocialNetworkChangedEvent.SocialNetworkChangedHandler;
+import cc.kune.core.client.events.SocialNetworkChangedEvent;
+import cc.kune.core.client.events.SocialNetworkChangedEvent.SocialNetworkChangedHandler;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.domain.utils.StateToken;
Copied: trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceArmor.java (from rev 1655, trunk/src/main/java/cc/kune/gspace/client/GSpaceArmor.java)
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceArmor.java (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/armor/GSpaceArmor.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,83 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.gspace.client.armor;
+
+import cc.kune.common.client.actions.ui.IsActionExtensible;
+
+import com.google.gwt.user.client.ui.InsertPanel.ForIsWidget;
+import com.google.gwt.user.client.ui.IsWidget;
+import com.google.gwt.user.client.ui.SimplePanel;
+
+public interface GSpaceArmor {
+
+ void clearBackImage();
+
+ void enableCenterScroll(boolean enable);
+
+ ForIsWidget getDocContainer();
+
+ ForIsWidget getDocFooter();
+
+ IsActionExtensible getDocFooterToolbar();
+
+ ForIsWidget getDocHeader();
+
+ ForIsWidget getDocSubheader();
+
+ ForIsWidget getEntityFooter();
+
+ IsActionExtensible getEntityFooterToolbar();
+
+ ForIsWidget getEntityHeader();
+
+ ForIsWidget getEntityToolsCenter();
+
+ ForIsWidget getEntityToolsNorth();
+
+ ForIsWidget getEntityToolsSouth();
+
+ IsActionExtensible getHeaderToolbar();
+
+ SimplePanel getHomeSpace();
+
+ IsWidget getMainpanel();
+
+ SimplePanel getPublicSpace();
+
+ ForIsWidget getSitebar();
+
+ IsActionExtensible getSubheaderToolbar();
+
+ IsActionExtensible getToolsSouthToolbar();
+
+ ForIsWidget getUserSpace();
+
+ void selectGroupSpace();
+
+ void selectHomeSpace();
+
+ void selectPublicSpace();
+
+ void selectUserSpace();
+
+ void setBackImage(String url);
+
+ void setContentVisible(boolean visible);
+}
\ No newline at end of file
Copied: trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.java (from rev 1655, trunk/src/main/java/cc/kune/gspace/client/GSpaceArmorImpl.java)
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.java (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,278 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.gspace.client.armor.impl;
+
+import org.cobogw.gwt.user.client.CSS;
+
+import cc.kune.common.client.actions.ui.ActionFlowPanel;
+import cc.kune.common.client.actions.ui.IsActionExtensible;
+import cc.kune.gspace.client.armor.GSpaceArmor;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.dom.client.Style.Overflow;
+import com.google.gwt.dom.client.Style.Position;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Element;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.DockLayoutPanel;
+import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.InsertPanel.ForIsWidget;
+import com.google.gwt.user.client.ui.IsWidget;
+import com.google.gwt.user.client.ui.ScrollPanel;
+import com.google.gwt.user.client.ui.SimplePanel;
+import com.google.gwt.user.client.ui.SplitLayoutPanel;
+import com.google.gwt.user.client.ui.TabLayoutPanel;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class GSpaceArmorImpl extends Composite implements GSpaceArmor {
+
+ interface WsArmorImplUiBinder extends UiBinder<Widget, GSpaceArmorImpl> {
+ }
+
+ private static WsArmorImplUiBinder uiBinder = GWT.create(WsArmorImplUiBinder.class);
+
+ @UiField
+ ScrollPanel centerScroll;
+ @UiField
+ FlowPanel docContainer;
+ @UiField
+ DockLayoutPanel docContainerParent;
+ @UiField
+ FlowPanel docFooter;
+ private final ActionFlowPanel docFooterToolbar;
+ @UiField
+ FlowPanel docHeader;
+ @UiField
+ FlowPanel docSubheader;
+ @UiField
+ FlowPanel entityFooter;
+ private final ActionFlowPanel entityFooterToolbar;
+ @UiField
+ FlowPanel entityHeader;
+ @UiField
+ FlowPanel entityToolsCenter;
+ @UiField
+ FlowPanel entityToolsContainer;
+ @UiField
+ FlowPanel entityToolsNorth;
+ @UiField
+ FlowPanel entityToolsSouth;
+ @UiField
+ SplitLayoutPanel groupSpace;
+ @UiField
+ SimplePanel groupSpaceWrapper;
+ private final ActionFlowPanel headerToolbar;
+ @UiField
+ SimplePanel homeSpace;
+ @UiField
+ DockLayoutPanel mainpanel;
+ @UiField
+ SimplePanel publicSpace;
+ @UiField
+ FlowPanel sitebar;
+ @UiField
+ DockLayoutPanel splitCenter;
+ @UiField
+ DockLayoutPanel splitEast;
+ private final ActionFlowPanel subheaderToolbar;
+ @UiField
+ TabLayoutPanel tabs;
+ private final ActionFlowPanel toolsSouthToolbar;
+ @UiField
+ FlowPanel userSpace;
+
+ @Inject
+ public GSpaceArmorImpl(final Provider<ActionFlowPanel> toolbarProv) {
+ initWidget(uiBinder.createAndBindUi(this));
+ groupSpace.setWidgetMinSize(splitEast, 150);
+ DOM.setStyleAttribute((Element) groupSpace.getWidgetContainerElement(splitEast), "overflow",
+ "visible");
+ DOM.setStyleAttribute((Element) splitEast.getWidgetContainerElement(entityToolsContainer),
+ "overflow", "visible");
+ docFooterToolbar = toolbarProv.get();
+ headerToolbar = toolbarProv.get();
+ subheaderToolbar = toolbarProv.get();
+ toolsSouthToolbar = toolbarProv.get();
+ entityFooterToolbar = toolbarProv.get();
+ getDocHeader().add(headerToolbar);
+ getDocSubheader().add(subheaderToolbar);
+ getDocFooter().add(docFooterToolbar);
+ getEntityToolsSouth().add(toolsSouthToolbar);
+ getEntityFooter().add(entityFooterToolbar);
+ entityToolsNorth.getElement().getStyle().setPosition(Position.RELATIVE);
+ // entityToolsSouth.setVisible(false);
+ mainpanel.getWidgetContainerElement(tabs).addClassName("k-spaces");
+ enableCenterScroll(true);
+ }
+
+ @Override
+ public void clearBackImage() {
+ final String bodyProp = "#FFFFFF";
+ DOM.setStyleAttribute(groupSpaceWrapper.getElement(), CSS.A.BACKGROUND, bodyProp);
+ }
+
+ @Override
+ public void enableCenterScroll(final boolean enable) {
+ // TODO use here Element.getStyle()...
+ if (enable) {
+ centerScroll.setAlwaysShowScrollBars(false);
+ DOM.setStyleAttribute(centerScroll.getElement(), "position", "absolute");
+ DOM.setStyleAttribute((Element) centerScroll.getElement().getFirstChildElement(), "position",
+ "relative");
+ } else {
+ centerScroll.getElement().getStyle().setOverflow(Overflow.HIDDEN);
+ DOM.setStyleAttribute(centerScroll.getElement(), "position", "");
+ DOM.setStyleAttribute((Element) centerScroll.getElement().getFirstChildElement(), "position", "");
+ }
+ }
+
+ @Override
+ public ForIsWidget getDocContainer() {
+ return docContainer;
+ }
+
+ @Override
+ public ForIsWidget getDocFooter() {
+ return docFooter;
+ }
+
+ @Override
+ public IsActionExtensible getDocFooterToolbar() {
+ return docFooterToolbar;
+ }
+
+ @Override
+ public ForIsWidget getDocHeader() {
+ return docHeader;
+ }
+
+ @Override
+ public ForIsWidget getDocSubheader() {
+ return docSubheader;
+ }
+
+ @Override
+ public ForIsWidget getEntityFooter() {
+ return entityFooter;
+ }
+
+ @Override
+ public IsActionExtensible getEntityFooterToolbar() {
+ return entityFooterToolbar;
+ }
+
+ @Override
+ public ForIsWidget getEntityHeader() {
+ return entityHeader;
+ }
+
+ @Override
+ public ForIsWidget getEntityToolsCenter() {
+ return entityToolsCenter;
+ }
+
+ @Override
+ public ForIsWidget getEntityToolsNorth() {
+ return entityToolsNorth;
+ }
+
+ @Override
+ public ForIsWidget getEntityToolsSouth() {
+ return entityToolsSouth;
+ }
+
+ @Override
+ public IsActionExtensible getHeaderToolbar() {
+ return headerToolbar;
+ }
+
+ @Override
+ public SimplePanel getHomeSpace() {
+ return homeSpace;
+ }
+
+ @Override
+ public IsWidget getMainpanel() {
+ return mainpanel;
+ }
+
+ @Override
+ public SimplePanel getPublicSpace() {
+ return publicSpace;
+ }
+
+ @Override
+ public ForIsWidget getSitebar() {
+ return sitebar;
+ }
+
+ @Override
+ public IsActionExtensible getSubheaderToolbar() {
+ return subheaderToolbar;
+ }
+
+ @Override
+ public IsActionExtensible getToolsSouthToolbar() {
+ return toolsSouthToolbar;
+ }
+
+ @Override
+ public ForIsWidget getUserSpace() {
+ return userSpace;
+ }
+
+ @Override
+ public void selectGroupSpace() {
+ tabs.selectTab(groupSpaceWrapper);
+ }
+
+ @Override
+ public void selectHomeSpace() {
+ tabs.selectTab(homeSpace);
+ }
+
+ @Override
+ public void selectPublicSpace() {
+ tabs.selectTab(publicSpace);
+ }
+
+ @Override
+ public void selectUserSpace() {
+ tabs.selectTab(userSpace);
+ }
+
+ @Override
+ public void setBackImage(final String url) {
+ final String bodyProp = "#FFFFFF url('" + url + "') fixed top left";
+ DOM.setStyleAttribute(groupSpaceWrapper.getElement(), CSS.A.BACKGROUND, bodyProp);
+ }
+
+ @Override
+ public void setContentVisible(final boolean visible) {
+ // FIXME: remove this?
+ // NotifyUser.info("Visible: " + visible);
+ // docContainer.getElement().getStyle().setOpacity(visible ? 1d : .0d);
+ // docFooter.getElement().getStyle().setOpacity(visible ? 1d : .0d);
+ }
+}
Copied: trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.ui.xml (from rev 1655, trunk/src/main/java/cc/kune/gspace/client/GSpaceArmorImpl.ui.xml)
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.ui.xml (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/armor/impl/GSpaceArmorImpl.ui.xml 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,126 @@
+<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
+<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
+ xmlns:co="urn:import:cc.kune.core.client" xmlns:kp="urn:import:cc.kune.pspace.client"
+ xmlns:g="urn:import:com.google.gwt.user.client.ui">
+ <ui:with field='res'
+ type='cc.kune.gspace.client.armor.resources.GSpaceArmorResources'/>
+ <ui:style>
+ .frame {
+ border: 0px;
+ margin: 0px;
+ }
+ </ui:style>
+ <g:DockLayoutPanel ui:field="mainpanel" styleName='{res.style.mainPanel}'
+ unit="PX">
+ <g:north size="23">
+ <g:FlowPanel ui:field="sitebar" height="23px"
+ styleName='{res.style.siteBar}'>
+ </g:FlowPanel>
+ </g:north>
+ <g:center>
+ <g:TabLayoutPanel width="100%" height="100%"
+ barUnit='PX' barHeight='0' ui:field="tabs">
+ <g:tab>
+ <g:header size='0'/>
+ <g:SimplePanel styleName="k-space" ui:field="homeSpace"
+ width="100%" height="100%"></g:SimplePanel>
+ </g:tab>
+ <g:tab>
+ <g:header size='0'/>
+ <g:FlowPanel ui:field="userSpace" styleName="k-space"
+ width="100%" height="100%">
+ <!-- <g:Frame url="/" styleName="{style.frame}" -->
+ <!-- ui:field="frame" width="100%" height="100%" /> -->
+ </g:FlowPanel>
+ </g:tab>
+ <g:tab>
+ <g:header size='0'/>
+ <g:SimplePanel ui:field="groupSpaceWrapper"
+ styleName="k-group-space">
+ <g:SplitLayoutPanel width="100%" height="100%"
+ styleName="k-space" ui:field="groupSpace">
+ <g:center size="1.0">
+ <g:DockLayoutPanel unit="PX" ui:field="splitCenter"
+ styleName="{res.style.entityCentralContainer}">
+ <g:north size="153">
+ <g:VerticalPanel width="100%"
+ height="153px">
+ <g:FlowPanel height="70px" width="100%"
+ styleName="{res.style.entityHeader}" ui:field="entityHeader">
+ <!--<g:RichTextArea width="100%" height="70px" /> -->
+ </g:FlowPanel>
+ <g:FlowPanel width="100%" height="38px"
+ styleName="{res.style.docHeader}" ui:field="docHeader">
+ </g:FlowPanel>
+ <g:HTMLPanel ui:field="arrow"
+ styleName="{res.style.docSubheaderArrow}"/>
+ <g:FlowPanel width="100%" height="45px"
+ styleName="{res.style.docSubheader}" ui:field="docSubheader">
+ </g:FlowPanel>
+ </g:VerticalPanel>
+ </g:north>
+ <g:center>
+ <g:DockLayoutPanel unit="PX"
+ styleName="{res.style.docEditorMargin}" ui:field="docContainerParent">
+ <g:west size="10">
+ <g:SimplePanel/>
+ </g:west>
+ <g:east size="10">
+ <g:SimplePanel/>
+ </g:east>
+ <g:center>
+ <g:ScrollPanel ui:field="centerScroll"
+ styleName="{res.style.docEditor}">
+ <g:FlowPanel width="auto" height="auto"
+ styleName="{res.style.docEditorContainer}"
+ ui:field="docContainer"/>
+ </g:ScrollPanel>
+ </g:center>
+ <g:south size="33.0">
+ <g:VerticalPanel height="33px"
+ width="100%" styleName="{res.style.docFooter}">
+ <g:FlowPanel width="100%" height="33"
+ ui:field="docFooter">
+ </g:FlowPanel>
+ </g:VerticalPanel>
+ </g:south>
+ </g:DockLayoutPanel>
+ </g:center>
+ <g:south size="36">
+ <g:FlowPanel height="36px" width="100%"
+ styleName="{res.style.entityFooter}" ui:field="entityFooter">
+ </g:FlowPanel>
+ </g:south>
+ </g:DockLayoutPanel>
+ </g:center>
+ <!-- east to RTL (plus css changes in corners and menus) -->
+ <g:west size="200.0">
+ <g:DockLayoutPanel unit="PX"
+ styleName="{res.style.entityTools}" ui:field="splitEast">
+ <g:center>
+ <g:FlowPanel ui:field="entityToolsContainer">
+ <g:FlowPanel width="100%" ui:field="entityToolsNorth"
+ styleName="{res.style.entityToolsNorth}"></g:FlowPanel>
+ <g:FlowPanel width="100%" ui:field="entityToolsCenter"
+ styleName="{res.style.entityToolsCenter}">
+ </g:FlowPanel>
+ </g:FlowPanel>
+ </g:center>
+ <g:south size="98">
+ <g:FlowPanel styleName="{res.style.entityToolsSouth}"
+ ui:field="entityToolsSouth" width="100%"/>
+ </g:south>
+ </g:DockLayoutPanel>
+ </g:west>
+ </g:SplitLayoutPanel>
+ </g:SimplePanel>
+ </g:tab>
+ <g:tab>
+ <g:header size='0'/>
+ <g:SimplePanel ui:field="publicSpace" width="100%"
+ styleName="k-space" height="100%"></g:SimplePanel>
+ </g:tab>
+ </g:TabLayoutPanel>
+ </g:center>
+ </g:DockLayoutPanel>
+</ui:UiBinder>
\ No newline at end of file
Copied: trunk/src/main/java/cc/kune/gspace/client/armor/resources (from rev 1655, trunk/src/main/java/cc/kune/gspace/client/resources)
Modified: trunk/src/main/java/cc/kune/gspace/client/armor/resources/GSpaceArmorResources.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/resources/GSpaceArmorResources.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/armor/resources/GSpaceArmorResources.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -17,7 +17,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
-package cc.kune.gspace.client.resources;
+package cc.kune.gspace.client.armor.resources;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.CssResource;
Copied: trunk/src/main/java/cc/kune/gspace/client/events/CurrentEntityChangedEvent.java (from rev 1655, trunk/src/main/java/cc/kune/gspace/client/options/logo/CurrentEntityChangedEvent.java)
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/events/CurrentEntityChangedEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/events/CurrentEntityChangedEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,74 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.gspace.client.events;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+
+public class CurrentEntityChangedEvent extends GwtEvent<CurrentEntityChangedEvent.CurrentEntityChangedHandler> {
+
+ public interface CurrentEntityChangedHandler extends EventHandler {
+ public void onCurrentLogoChanged(CurrentEntityChangedEvent event);
+ }
+
+ public interface HasCurrentLogoChangedHandlers extends HasHandlers {
+ HandlerRegistration addCurrentLogoChangedHandler(CurrentEntityChangedHandler handler);
+ }
+
+ private static final Type<CurrentEntityChangedHandler> TYPE = new Type<CurrentEntityChangedHandler>();
+
+ public static void fire(final HasHandlers source) {
+ source.fireEvent(new CurrentEntityChangedEvent());
+ }
+
+ public static Type<CurrentEntityChangedHandler> getType() {
+ return TYPE;
+ }
+
+ public CurrentEntityChangedEvent() {
+ }
+
+ @Override
+ protected void dispatch(final CurrentEntityChangedHandler handler) {
+ handler.onCurrentLogoChanged(this);
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ return super.equals(obj);
+ }
+
+ @Override
+ public Type<CurrentEntityChangedHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ public int hashCode() {
+ return super.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return "CurrentLogoChangedEvent[" + "]";
+ }
+}
Modified: trunk/src/main/java/cc/kune/gspace/client/options/GroupOptionsPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/GroupOptionsPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/options/GroupOptionsPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -25,13 +25,13 @@
import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.core.client.events.StateChangedEvent;
+import cc.kune.core.client.events.UserSignOutEvent;
+import cc.kune.core.client.events.StateChangedEvent.StateChangedHandler;
+import cc.kune.core.client.events.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.StateChangedEvent;
-import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.state.StateManager;
-import cc.kune.core.client.state.UserSignOutEvent;
-import cc.kune.core.client.state.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.client.ui.dialogs.tabbed.AbstractTabbedDialogPresenter;
import cc.kune.core.shared.dto.StateAbstractDTO;
import cc.kune.gspace.client.options.GroupOptionsPresenter.GroupOptionsView;
Modified: trunk/src/main/java/cc/kune/gspace/client/options/UserOptionsPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/UserOptionsPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/options/UserOptionsPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -24,14 +24,14 @@
import cc.kune.common.client.actions.ActionEvent;
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignOutEvent;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
+import cc.kune.core.client.events.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.client.sitebar.SiteUserOptions;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
-import cc.kune.core.client.state.UserSignInEvent;
-import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
-import cc.kune.core.client.state.UserSignOutEvent;
-import cc.kune.core.client.state.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.client.ui.dialogs.tabbed.AbstractTabbedDialogPresenter;
import cc.kune.gspace.client.options.UserOptionsPresenter.UserOptionsView;
Modified: trunk/src/main/java/cc/kune/gspace/client/options/general/EntityOptGeneralPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/general/EntityOptGeneralPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/options/general/EntityOptGeneralPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -22,8 +22,8 @@
import cc.kune.core.client.i18n.I18nUITranslationService;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
+import cc.kune.gspace.client.events.CurrentEntityChangedEvent;
import cc.kune.gspace.client.options.EntityOptions;
-import cc.kune.gspace.client.options.logo.CurrentEntityChangedEvent;
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
Modified: trunk/src/main/java/cc/kune/gspace/client/options/general/GroupOptGeneralPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/general/GroupOptGeneralPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/options/general/GroupOptGeneralPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -20,11 +20,11 @@
package cc.kune.gspace.client.options.general;
import cc.kune.common.client.notify.NotifyUser;
+import cc.kune.core.client.events.GroupChangedEvent;
+import cc.kune.core.client.events.GroupChangedEvent.GroupChangedHandler;
import cc.kune.core.client.i18n.I18nUITranslationService;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.rpcservices.GroupServiceAsync;
-import cc.kune.core.client.state.GroupChangedEvent;
-import cc.kune.core.client.state.GroupChangedEvent.GroupChangedHandler;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.domain.utils.StateToken;
Modified: trunk/src/main/java/cc/kune/gspace/client/options/general/UserOptGeneralPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/general/UserOptGeneralPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/options/general/UserOptGeneralPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -20,14 +20,14 @@
package cc.kune.gspace.client.options.general;
import cc.kune.common.client.notify.NotifyUser;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
import cc.kune.core.client.i18n.I18nUITranslationService;
import cc.kune.core.client.i18n.I18nUITranslationService.I18nLanguageChangeNeeded;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.rpcservices.UserServiceAsync;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
-import cc.kune.core.client.state.UserSignInEvent;
-import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
import cc.kune.core.shared.domain.dto.EmailNotificationFrequency;
import cc.kune.core.shared.dto.I18nLanguageSimpleDTO;
import cc.kune.core.shared.dto.StateAbstractDTO;
Modified: trunk/src/main/java/cc/kune/gspace/client/options/license/GroupOptDefLicensePresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/license/GroupOptDefLicensePresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/options/license/GroupOptDefLicensePresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -19,10 +19,10 @@
*/
package cc.kune.gspace.client.options.license;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
-import cc.kune.core.client.state.UserSignInEvent;
-import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.LicenseDTO;
import cc.kune.gspace.client.licensewizard.LicenseChangeAction;
Modified: trunk/src/main/java/cc/kune/gspace/client/options/license/UserOptDefLicensePresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/license/UserOptDefLicensePresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/options/license/UserOptDefLicensePresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -19,9 +19,9 @@
*/
package cc.kune.gspace.client.options.license;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.UserSignInEvent;
-import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.LicenseDTO;
import cc.kune.gspace.client.licensewizard.LicenseChangeAction;
Deleted: trunk/src/main/java/cc/kune/gspace/client/options/logo/CurrentEntityChangedEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/logo/CurrentEntityChangedEvent.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/options/logo/CurrentEntityChangedEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,74 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.gspace.client.options.logo;
-
-import com.google.gwt.event.shared.EventHandler;
-import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerRegistration;
-import com.google.gwt.event.shared.HasHandlers;
-
-public class CurrentEntityChangedEvent extends GwtEvent<CurrentEntityChangedEvent.CurrentEntityChangedHandler> {
-
- public interface CurrentEntityChangedHandler extends EventHandler {
- public void onCurrentLogoChanged(CurrentEntityChangedEvent event);
- }
-
- public interface HasCurrentLogoChangedHandlers extends HasHandlers {
- HandlerRegistration addCurrentLogoChangedHandler(CurrentEntityChangedHandler handler);
- }
-
- private static final Type<CurrentEntityChangedHandler> TYPE = new Type<CurrentEntityChangedHandler>();
-
- public static void fire(final HasHandlers source) {
- source.fireEvent(new CurrentEntityChangedEvent());
- }
-
- public static Type<CurrentEntityChangedHandler> getType() {
- return TYPE;
- }
-
- public CurrentEntityChangedEvent() {
- }
-
- @Override
- protected void dispatch(final CurrentEntityChangedHandler handler) {
- handler.onCurrentLogoChanged(this);
- }
-
- @Override
- public boolean equals(final Object obj) {
- return super.equals(obj);
- }
-
- @Override
- public Type<CurrentEntityChangedHandler> getAssociatedType() {
- return TYPE;
- }
-
- @Override
- public int hashCode() {
- return super.hashCode();
- }
-
- @Override
- public String toString() {
- return "CurrentLogoChangedEvent[" + "]";
- }
-}
Modified: trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -27,6 +27,7 @@
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.rpcservices.UserServiceAsync;
import cc.kune.core.client.state.Session;
+import cc.kune.gspace.client.events.CurrentEntityChangedEvent;
import cc.kune.gspace.client.options.EntityOptions;
import com.google.gwt.event.shared.EventBus;
Modified: trunk/src/main/java/cc/kune/gspace/client/options/logo/GroupOptLogoPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/logo/GroupOptLogoPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/options/logo/GroupOptLogoPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -20,9 +20,9 @@
package cc.kune.gspace.client.options.logo;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.core.client.events.GroupChangedEvent;
+import cc.kune.core.client.events.GroupChangedEvent.GroupChangedHandler;
import cc.kune.core.client.rpcservices.UserServiceAsync;
-import cc.kune.core.client.state.GroupChangedEvent;
-import cc.kune.core.client.state.GroupChangedEvent.GroupChangedHandler;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
import cc.kune.gspace.client.options.GroupOptions;
Modified: trunk/src/main/java/cc/kune/gspace/client/options/logo/UserOptLogoPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/logo/UserOptLogoPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/options/logo/UserOptLogoPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -22,12 +22,12 @@
import gwtupload.client.IUploader;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.events.AvatarChangedEvent;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.rpcservices.UserServiceAsync;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
-import cc.kune.core.client.state.UserSignInEvent;
-import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
import cc.kune.core.shared.dto.GroupDTO;
import cc.kune.gspace.client.options.UserOptions;
Modified: trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -26,13 +26,13 @@
import cc.kune.common.client.notify.NotifyUser;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.common.shared.utils.TextUtils;
+import cc.kune.core.client.events.StateChangedEvent;
+import cc.kune.core.client.events.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.rpcservices.GroupServiceAsync;
import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.services.ImageSize;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.StateChangedEvent;
-import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.GroupDTO;
Modified: trunk/src/main/java/cc/kune/gspace/client/options/tools/GroupOptToolsPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/tools/GroupOptToolsPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/options/tools/GroupOptToolsPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -23,9 +23,9 @@
import java.util.List;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.core.client.events.GroupChangedEvent;
+import cc.kune.core.client.events.GroupChangedEvent.GroupChangedHandler;
import cc.kune.core.client.rpcservices.GroupServiceAsync;
-import cc.kune.core.client.state.GroupChangedEvent;
-import cc.kune.core.client.state.GroupChangedEvent.GroupChangedHandler;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.domain.utils.StateToken;
Modified: trunk/src/main/java/cc/kune/gspace/client/options/tools/UserOptToolsPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/tools/UserOptToolsPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/options/tools/UserOptToolsPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -23,11 +23,11 @@
import java.util.List;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
import cc.kune.core.client.rpcservices.GroupServiceAsync;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
-import cc.kune.core.client.state.UserSignInEvent;
-import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.ToolSimpleDTO;
import cc.kune.gspace.client.options.UserOptions;
Modified: trunk/src/main/java/cc/kune/gspace/client/style/GSpaceBackManagerImpl.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/style/GSpaceBackManagerImpl.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/style/GSpaceBackManagerImpl.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -22,9 +22,8 @@
import javax.annotation.Nonnull;
import cc.kune.core.client.services.ClientFileDownloadUtils;
-import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.domain.utils.StateToken;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import com.google.inject.Inject;
@@ -34,14 +33,11 @@
private final ClientFileDownloadUtils downloadUtils;
private final GSpaceArmor gSpaceArmor;
private StateToken lastToken;
- private final StateManager stateManager;
@Inject
- public GSpaceBackManagerImpl(final ClientFileDownloadUtils downloadUtils, final GSpaceArmor gSpaceArmor,
- final StateManager stateManager) {
+ public GSpaceBackManagerImpl(final ClientFileDownloadUtils downloadUtils, final GSpaceArmor gSpaceArmor) {
this.downloadUtils = downloadUtils;
this.gSpaceArmor = gSpaceArmor;
- this.stateManager = stateManager;
lastToken = NO_TOKEN;
}
Modified: trunk/src/main/java/cc/kune/gspace/client/tags/TagsSummaryPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/tags/TagsSummaryPanel.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/tags/TagsSummaryPanel.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -20,7 +20,7 @@
package cc.kune.gspace.client.tags;
import cc.kune.common.shared.i18n.I18nTranslationService;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import cc.kune.gspace.client.tags.TagsSummaryPresenter.TagsSummaryView;
import com.google.gwt.event.dom.client.ClickHandler;
Modified: trunk/src/main/java/cc/kune/gspace/client/tags/TagsSummaryPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/tags/TagsSummaryPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/tags/TagsSummaryPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -21,9 +21,9 @@
import cc.kune.common.client.log.Log;
import cc.kune.common.client.notify.NotifyUser;
+import cc.kune.core.client.events.StateChangedEvent;
+import cc.kune.core.client.events.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.StateChangedEvent;
-import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.domain.TagCloudResult;
import cc.kune.core.shared.domain.TagCount;
Modified: trunk/src/main/java/cc/kune/gspace/client/themes/GSpaceThemeManager.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/themes/GSpaceThemeManager.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/themes/GSpaceThemeManager.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -23,12 +23,12 @@
import cc.kune.common.client.notify.NotifyUser;
import cc.kune.common.client.utils.CSSUtils;
-import cc.kune.core.client.init.AppStartEvent;
-import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.GroupChangedEvent;
+import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
+import cc.kune.core.client.events.GroupChangedEvent.GroupChangedHandler;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.rpcservices.GroupServiceAsync;
-import cc.kune.core.client.state.GroupChangedEvent;
-import cc.kune.core.client.state.GroupChangedEvent.GroupChangedHandler;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.domain.utils.StateToken;
@@ -36,7 +36,7 @@
import cc.kune.core.shared.dto.GroupDTO;
import cc.kune.core.shared.dto.InitDataDTO;
import cc.kune.core.shared.dto.StateAbstractDTO;
-import cc.kune.gspace.client.resources.GSpaceArmorResources;
+import cc.kune.gspace.client.armor.resources.GSpaceArmorResources;
import cc.kune.gspace.client.style.GSpaceBackManager;
import com.google.gwt.dom.client.StyleElement;
Modified: trunk/src/main/java/cc/kune/gspace/client/themes/GSpaceThemeSelectorPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/themes/GSpaceThemeSelectorPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/themes/GSpaceThemeSelectorPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -28,8 +28,8 @@
import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuRadioItemDescriptor;
import cc.kune.common.shared.i18n.I18nTranslationService;
-import cc.kune.core.client.init.AppStartEvent;
-import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.client.state.Session;
import cc.kune.core.shared.dto.GSpaceTheme;
Modified: trunk/src/main/java/cc/kune/gspace/client/tool/ContentViewerSelector.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/tool/ContentViewerSelector.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/tool/ContentViewerSelector.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -27,11 +27,11 @@
import cc.kune.common.client.log.Log;
import cc.kune.common.client.notify.NotifyUser;
-import cc.kune.core.client.init.AppStartEvent;
-import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.StateChangedEvent;
+import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
+import cc.kune.core.client.events.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.StateChangedEvent;
-import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.dto.HasContent;
import cc.kune.core.shared.dto.StateAbstractDTO;
Modified: trunk/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorPanel.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorPanel.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -20,7 +20,7 @@
package cc.kune.gspace.client.tool.selector;
import cc.kune.core.client.dnd.FolderViewerDropController;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import cc.kune.gspace.client.tool.selector.ToolSelectorItemPresenter.ToolSelectorItemView;
import cc.kune.gspace.client.tool.selector.ToolSelectorPresenter.ToolSelectorView;
Modified: trunk/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -25,13 +25,13 @@
import cc.kune.common.client.errors.UIException;
import cc.kune.common.client.log.Log;
import cc.kune.common.shared.utils.TextUtils;
-import cc.kune.core.client.state.GroupChangedEvent;
-import cc.kune.core.client.state.GroupChangedEvent.GroupChangedHandler;
-import cc.kune.core.client.state.StateChangedEvent;
-import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler;
+import cc.kune.core.client.events.GroupChangedEvent;
+import cc.kune.core.client.events.StateChangedEvent;
+import cc.kune.core.client.events.ToolChangedEvent;
+import cc.kune.core.client.events.GroupChangedEvent.GroupChangedHandler;
+import cc.kune.core.client.events.StateChangedEvent.StateChangedHandler;
+import cc.kune.core.client.events.ToolChangedEvent.ToolChangedHandler;
import cc.kune.core.client.state.StateManager;
-import cc.kune.core.client.state.ToolChangedEvent;
-import cc.kune.core.client.state.ToolChangedEvent.ToolChangedHandler;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.gspace.client.tool.selector.ToolSelectorItemPresenter.ToolSelectorItemView;
Modified: trunk/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePanel.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePanel.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -23,7 +23,7 @@
import cc.kune.common.client.ui.KuneWindowUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.shared.dto.LicenseDTO;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import cc.kune.gspace.client.ui.footer.license.EntityLicensePresenter.EntityLicenseView;
import com.google.gwt.core.client.GWT;
Modified: trunk/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -19,9 +19,9 @@
*/
package cc.kune.gspace.client.ui.footer.license;
+import cc.kune.core.client.events.StateChangedEvent;
+import cc.kune.core.client.events.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.StateChangedEvent;
-import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.dto.HasContent;
import cc.kune.core.shared.dto.LicenseDTO;
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/AbstractFolderViewerPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/AbstractFolderViewerPanel.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/AbstractFolderViewerPanel.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -28,7 +28,7 @@
import cc.kune.core.client.dnd.KuneDragController;
import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
import cc.kune.core.shared.dto.StateContainerDTO;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import cc.kune.gspace.client.viewers.FolderViewerPresenter.FolderViewerView;
import com.google.gwt.user.client.Window;
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/AbstractFolderViewerView.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/AbstractFolderViewerView.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/AbstractFolderViewerView.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -3,6 +3,7 @@
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
import cc.kune.common.client.ui.HasEditHandler;
import cc.kune.core.shared.dto.StateContainerDTO;
+import cc.kune.gspace.client.viewers.items.FolderItemDescriptor;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.DoubleClickHandler;
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/ContentTitleWidget.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/ContentTitleWidget.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/ContentTitleWidget.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -25,7 +25,7 @@
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.registry.IconsRegistry;
import cc.kune.core.shared.dto.BasicMimeTypeDTO;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.user.client.ui.Composite;
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPanel.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -39,7 +39,7 @@
import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.dto.StateContentDTO;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import cc.kune.gspace.client.viewers.ContentViewerPresenter.ContentViewerView;
import cc.kune.wave.client.KuneStagesProvider;
import cc.kune.wave.client.WaveClientClearEvent;
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/ContentViewerPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -29,12 +29,12 @@
import cc.kune.common.client.ui.EditEvent.EditHandler;
import cc.kune.common.client.ui.HasEditHandler;
import cc.kune.core.client.actions.ActionRegistryByType;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignOutEvent;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
+import cc.kune.core.client.events.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
-import cc.kune.core.client.state.UserSignInEvent;
-import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
-import cc.kune.core.client.state.UserSignOutEvent;
-import cc.kune.core.client.state.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.shared.domain.utils.AccessRights;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.HasContent;
Deleted: trunk/src/main/java/cc/kune/gspace/client/viewers/FolderItemDescriptor.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/FolderItemDescriptor.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/FolderItemDescriptor.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,100 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- \*/
-package cc.kune.gspace.client.viewers;
-
-import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
-import cc.kune.core.shared.domain.ContentStatus;
-import cc.kune.core.shared.domain.utils.StateToken;
-
-public class FolderItemDescriptor {
- private final GuiActionDescCollection actionCollection;
- private final boolean allowDrag;
- private final boolean allowDrop;
- private final ContentStatus contentStatus;
- private final Object icon;
- private final String id;
- private final long modififiedOn;
- private final String parentId;
- private final String text;
- private final StateToken token;
- private final String tooltip;
-
- public FolderItemDescriptor(final String id, final String parentId, final Object icon,
- final String text, final String tooltip, final ContentStatus contentStatus,
- final StateToken token, final long modififiedOn, final boolean allowDrag, final boolean allowDrop,
- final GuiActionDescCollection actionCollection) {
- this.id = id;
- this.parentId = parentId;
- this.icon = icon;
- this.text = text;
- this.tooltip = tooltip;
- this.contentStatus = contentStatus;
- this.token = token;
- this.modififiedOn = modififiedOn;
- this.allowDrag = allowDrag;
- this.allowDrop = allowDrop;
- this.actionCollection = actionCollection;
- }
-
- public GuiActionDescCollection getActionCollection() {
- return actionCollection;
- }
-
- public ContentStatus getContentStatus() {
- return contentStatus;
- }
-
- public Object getIcon() {
- return icon;
- }
-
- public String getId() {
- return id;
- }
-
- public long getModififiedOn() {
- return modififiedOn;
- }
-
- public String getParentId() {
- return parentId;
- }
-
- public StateToken getStateToken() {
- return token;
- }
-
- public String getText() {
- return text;
- }
-
- public String getTooltip() {
- return tooltip;
- }
-
- public boolean isDraggable() {
- return allowDrag;
- }
-
- public boolean isDroppable() {
- return allowDrop;
- }
-
-}
Deleted: trunk/src/main/java/cc/kune/gspace/client/viewers/FolderItemWidget.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/FolderItemWidget.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/FolderItemWidget.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,165 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.gspace.client.viewers;
-
-import cc.kune.common.client.actions.ui.ActionSimplePanel;
-import cc.kune.core.shared.domain.utils.StateToken;
-
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.event.dom.client.BlurEvent;
-import com.google.gwt.event.dom.client.FocusEvent;
-import com.google.gwt.event.dom.client.HasAllFocusHandlers;
-import com.google.gwt.event.dom.client.HasAllMouseHandlers;
-import com.google.gwt.event.dom.client.HasClickHandlers;
-import com.google.gwt.event.dom.client.HasDoubleClickHandlers;
-import com.google.gwt.event.dom.client.MouseOutEvent;
-import com.google.gwt.event.dom.client.MouseOverEvent;
-import com.google.gwt.resources.client.ImageResource;
-import com.google.gwt.uibinder.client.UiBinder;
-import com.google.gwt.uibinder.client.UiField;
-import com.google.gwt.uibinder.client.UiHandler;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.FlowPanel;
-import com.google.gwt.user.client.ui.FocusPanel;
-import com.google.gwt.user.client.ui.HasText;
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.InlineLabel;
-import com.google.gwt.user.client.ui.SimplePanel;
-import com.google.gwt.user.client.ui.Widget;
-
-public class FolderItemWidget extends Composite implements HasText {
-
- interface FolderItemWidgetUiBinder extends UiBinder<Widget, FolderItemWidget> {
- }
-
- private static FolderItemWidgetUiBinder uiBinder = GWT.create(FolderItemWidgetUiBinder.class);
-
- @UiField
- FlowPanel flow;
- @UiField
- FocusPanel focusPanel;
- @UiField
- Image icon;
- @UiField
- SimplePanel menu;
- @UiField
- InlineLabel modified;
- @UiField
- InlineLabel title;
-
- private final StateToken token;
-
- public FolderItemWidget(final ImageResource iconResource, final String title, final StateToken token) {
- this.token = token;
- initWidget(uiBinder.createAndBindUi(this));
- this.title.setText(title);
- icon.setResource(iconResource);
- }
-
- private void clearFocusStyles() {
- focusPanel.removeStyleDependentName("nofocused");
- focusPanel.removeStyleDependentName("focused");
- }
-
- FlowPanel getFlow() {
- return flow;
- }
-
- Widget getIcon() {
- return icon;
- }
-
- HasClickHandlers getRowClick() {
- return focusPanel;
- }
-
- HasDoubleClickHandlers getRowDoubleClick() {
- return focusPanel;
- }
-
- HasAllFocusHandlers getRowFocus() {
- return focusPanel;
- }
-
- HasAllMouseHandlers getRowMouse() {
- return focusPanel;
- }
-
- @Override
- public String getText() {
- return title.getText();
- }
-
- Widget getTitleWidget() {
- return title;
- }
-
- public StateToken getToken() {
- return token;
- }
-
- @UiHandler("focusPanel")
- public void onBlur(final BlurEvent event) {
- clearFocusStyles();
- focusPanel.addStyleDependentName("nofocused");
- }
-
- @UiHandler("focusPanel")
- public void onFocus(final FocusEvent event) {
- clearFocusStyles();
- focusPanel.addStyleDependentName("focused");
- }
-
- @UiHandler("focusPanel")
- public void onOut(final MouseOutEvent event) {
- clearFocusStyles();
- focusPanel.addStyleDependentName("nofocused");
- }
-
- @UiHandler("focusPanel")
- public void onOver(final MouseOverEvent event) {
- clearFocusStyles();
- focusPanel.addStyleDependentName("focused");
- }
-
- public void setMenu(final ActionSimplePanel toolbar) {
- menu.add(toolbar);
- }
-
- public void setMenuVisible(final boolean visible) {
- menu.getElement().getStyle().setOpacity(visible ? 1d : 0.2d);
- }
-
- public void setModifiedText(final String text) {
- modified.setText(text);
- }
-
- public void setSelect(final boolean selected) {
- clearFocusStyles();
- focusPanel.removeStyleDependentName(selected ? "noselected" : "selected");
- focusPanel.addStyleDependentName(selected ? "selected" : "noselected");
- }
-
- @Override
- public void setText(final String text) {
- title.setText(text);
- }
-
-}
Deleted: trunk/src/main/java/cc/kune/gspace/client/viewers/FolderItemWidget.ui.xml
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/FolderItemWidget.ui.xml 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/FolderItemWidget.ui.xml 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,79 +0,0 @@
-<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
-<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
- xmlns:co="urn:ui:cc.kune.core.client" xmlns:g="urn:import:com.google.gwt.user.client.ui">
- <ui:style>
- @external .k-folderitem-focus;
- @external .k-folderitem-focus-focused;
- @external .k-folderitem-focus-selected;
- @external .k-folderitem-focus-noselected;
- @external .k-folderitem-focus-nofocused;
- .k-folderitem-focus {
- background-color: none;
- border: solid 2px transparent;
- -moz-border-radius: 4px;
- -webkit-border-radius: 4px;
- border-radius: 4px;
- }
-
- .k-folderitem-focus-focused {
- background-color: #F2F5FD;
- }
-
- .k-folderitem-focus-selected {
- background-color: #E3E9FF;
- }
-
- .k-folderitem-focus-noselected {
-
- }
-
- .k-folderitem-focus-nofocused {
-
- }
-
- .flow {
- cursor: pointer;
- border-bottom: 1px solid #F3F3F3;
- line-height: 1.3em;
- height: 28px;
- outline: 0;
- }
-
- .modified {
- margin-right: 5px;
- color: #A05A2C;
- font-size: 17px;
- line-height: 1.3em;
- -moz-user-select: none;
- -khtml-user-select: none;
- float: right;
- font-style: italic;
- }
-
- .title {
- margin-left: 5px;
- color: #A05A2C;
- font-size: 19px;
- line-height: 1.3em;
- -moz-user-select: none;
- -khtml-user-select: none;
- }
-
- .icon {
- margin: 5px;
- }
-
- .menu {
- float: right;
- }
- </ui:style>
- <g:FocusPanel ui:field="focusPanel" styleName="{style.k-folderitem-focus}">
- <g:FlowPanel styleName="{style.flow}" ui:field="flow">
- <g:Image styleName="{style.icon}" ui:field="icon"/>
- <g:InlineLabel styleName="{style.title}" ui:field="title"/>
- <g:SimplePanel styleName="{style.menu}" ui:field="menu"/>
- <g:InlineLabel styleName="{style.modified}"
- ui:field="modified"/>
- </g:FlowPanel>
- </g:FocusPanel>
-</ui:UiBinder>
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsFlowPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsFlowPanel.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsFlowPanel.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -29,7 +29,8 @@
import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
import cc.kune.core.client.ui.BasicDragableThumb;
import cc.kune.core.shared.dto.StateContainerDTO;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
+import cc.kune.gspace.client.viewers.items.FolderItemDescriptor;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsTablePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsTablePanel.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsTablePanel.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -34,8 +34,10 @@
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.shared.domain.ContentStatus;
import cc.kune.core.shared.dto.StateContainerDTO;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import cc.kune.gspace.client.viewers.FolderViewerPresenter.FolderViewerView;
+import cc.kune.gspace.client.viewers.items.FolderItemDescriptor;
+import cc.kune.gspace.client.viewers.items.FolderItemWidget;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerUtils.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerUtils.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -24,6 +24,7 @@
import cc.kune.core.shared.dto.StateContainerDTO;
import cc.kune.gspace.client.actions.ActionGroups;
import cc.kune.gspace.client.viewers.FolderViewerPresenter.FolderViewerView;
+import cc.kune.gspace.client.viewers.items.FolderItemDescriptor;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/NoHomePageViewer.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/NoHomePageViewer.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/NoHomePageViewer.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -24,7 +24,7 @@
import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
import cc.kune.core.client.resources.CoreMessages;
import cc.kune.core.shared.dto.HasContent;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import cc.kune.gspace.client.tool.ContentViewer;
import com.google.inject.Inject;
Copied: trunk/src/main/java/cc/kune/gspace/client/viewers/items/FolderItemDescriptor.java (from rev 1655, trunk/src/main/java/cc/kune/gspace/client/viewers/FolderItemDescriptor.java)
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/items/FolderItemDescriptor.java (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/items/FolderItemDescriptor.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,100 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ \*/
+package cc.kune.gspace.client.viewers.items;
+
+import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
+import cc.kune.core.shared.domain.ContentStatus;
+import cc.kune.core.shared.domain.utils.StateToken;
+
+public class FolderItemDescriptor {
+ private final GuiActionDescCollection actionCollection;
+ private final boolean allowDrag;
+ private final boolean allowDrop;
+ private final ContentStatus contentStatus;
+ private final Object icon;
+ private final String id;
+ private final long modififiedOn;
+ private final String parentId;
+ private final String text;
+ private final StateToken token;
+ private final String tooltip;
+
+ public FolderItemDescriptor(final String id, final String parentId, final Object icon,
+ final String text, final String tooltip, final ContentStatus contentStatus,
+ final StateToken token, final long modififiedOn, final boolean allowDrag, final boolean allowDrop,
+ final GuiActionDescCollection actionCollection) {
+ this.id = id;
+ this.parentId = parentId;
+ this.icon = icon;
+ this.text = text;
+ this.tooltip = tooltip;
+ this.contentStatus = contentStatus;
+ this.token = token;
+ this.modififiedOn = modififiedOn;
+ this.allowDrag = allowDrag;
+ this.allowDrop = allowDrop;
+ this.actionCollection = actionCollection;
+ }
+
+ public GuiActionDescCollection getActionCollection() {
+ return actionCollection;
+ }
+
+ public ContentStatus getContentStatus() {
+ return contentStatus;
+ }
+
+ public Object getIcon() {
+ return icon;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public long getModififiedOn() {
+ return modififiedOn;
+ }
+
+ public String getParentId() {
+ return parentId;
+ }
+
+ public StateToken getStateToken() {
+ return token;
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public String getTooltip() {
+ return tooltip;
+ }
+
+ public boolean isDraggable() {
+ return allowDrag;
+ }
+
+ public boolean isDroppable() {
+ return allowDrop;
+ }
+
+}
Copied: trunk/src/main/java/cc/kune/gspace/client/viewers/items/FolderItemWidget.java (from rev 1655, trunk/src/main/java/cc/kune/gspace/client/viewers/FolderItemWidget.java)
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/items/FolderItemWidget.java (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/items/FolderItemWidget.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,165 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.gspace.client.viewers.items;
+
+import cc.kune.common.client.actions.ui.ActionSimplePanel;
+import cc.kune.core.shared.domain.utils.StateToken;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.BlurEvent;
+import com.google.gwt.event.dom.client.FocusEvent;
+import com.google.gwt.event.dom.client.HasAllFocusHandlers;
+import com.google.gwt.event.dom.client.HasAllMouseHandlers;
+import com.google.gwt.event.dom.client.HasClickHandlers;
+import com.google.gwt.event.dom.client.HasDoubleClickHandlers;
+import com.google.gwt.event.dom.client.MouseOutEvent;
+import com.google.gwt.event.dom.client.MouseOverEvent;
+import com.google.gwt.resources.client.ImageResource;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.uibinder.client.UiHandler;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.FocusPanel;
+import com.google.gwt.user.client.ui.HasText;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.InlineLabel;
+import com.google.gwt.user.client.ui.SimplePanel;
+import com.google.gwt.user.client.ui.Widget;
+
+public class FolderItemWidget extends Composite implements HasText {
+
+ interface FolderItemWidgetUiBinder extends UiBinder<Widget, FolderItemWidget> {
+ }
+
+ private static FolderItemWidgetUiBinder uiBinder = GWT.create(FolderItemWidgetUiBinder.class);
+
+ @UiField
+ FlowPanel flow;
+ @UiField
+ FocusPanel focusPanel;
+ @UiField
+ Image icon;
+ @UiField
+ SimplePanel menu;
+ @UiField
+ InlineLabel modified;
+ @UiField
+ InlineLabel title;
+
+ private final StateToken token;
+
+ public FolderItemWidget(final ImageResource iconResource, final String title, final StateToken token) {
+ this.token = token;
+ initWidget(uiBinder.createAndBindUi(this));
+ this.title.setText(title);
+ icon.setResource(iconResource);
+ }
+
+ private void clearFocusStyles() {
+ focusPanel.removeStyleDependentName("nofocused");
+ focusPanel.removeStyleDependentName("focused");
+ }
+
+ public FlowPanel getFlow() {
+ return flow;
+ }
+
+ public Widget getIcon() {
+ return icon;
+ }
+
+ public HasClickHandlers getRowClick() {
+ return focusPanel;
+ }
+
+ public HasDoubleClickHandlers getRowDoubleClick() {
+ return focusPanel;
+ }
+
+ public HasAllFocusHandlers getRowFocus() {
+ return focusPanel;
+ }
+
+ public HasAllMouseHandlers getRowMouse() {
+ return focusPanel;
+ }
+
+ @Override
+ public String getText() {
+ return title.getText();
+ }
+
+ public Widget getTitleWidget() {
+ return title;
+ }
+
+ public StateToken getToken() {
+ return token;
+ }
+
+ @UiHandler("focusPanel")
+ public void onBlur(final BlurEvent event) {
+ clearFocusStyles();
+ focusPanel.addStyleDependentName("nofocused");
+ }
+
+ @UiHandler("focusPanel")
+ public void onFocus(final FocusEvent event) {
+ clearFocusStyles();
+ focusPanel.addStyleDependentName("focused");
+ }
+
+ @UiHandler("focusPanel")
+ public void onOut(final MouseOutEvent event) {
+ clearFocusStyles();
+ focusPanel.addStyleDependentName("nofocused");
+ }
+
+ @UiHandler("focusPanel")
+ public void onOver(final MouseOverEvent event) {
+ clearFocusStyles();
+ focusPanel.addStyleDependentName("focused");
+ }
+
+ public void setMenu(final ActionSimplePanel toolbar) {
+ menu.add(toolbar);
+ }
+
+ public void setMenuVisible(final boolean visible) {
+ menu.getElement().getStyle().setOpacity(visible ? 1d : 0.2d);
+ }
+
+ public void setModifiedText(final String text) {
+ modified.setText(text);
+ }
+
+ public void setSelect(final boolean selected) {
+ clearFocusStyles();
+ focusPanel.removeStyleDependentName(selected ? "noselected" : "selected");
+ focusPanel.addStyleDependentName(selected ? "selected" : "noselected");
+ }
+
+ @Override
+ public void setText(final String text) {
+ title.setText(text);
+ }
+
+}
Copied: trunk/src/main/java/cc/kune/gspace/client/viewers/items/FolderItemWidget.ui.xml (from rev 1655, trunk/src/main/java/cc/kune/gspace/client/viewers/FolderItemWidget.ui.xml)
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/items/FolderItemWidget.ui.xml (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/items/FolderItemWidget.ui.xml 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,79 @@
+<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
+<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
+ xmlns:co="urn:ui:cc.kune.core.client" xmlns:g="urn:import:com.google.gwt.user.client.ui">
+ <ui:style>
+ @external .k-folderitem-focus;
+ @external .k-folderitem-focus-focused;
+ @external .k-folderitem-focus-selected;
+ @external .k-folderitem-focus-noselected;
+ @external .k-folderitem-focus-nofocused;
+ .k-folderitem-focus {
+ background-color: none;
+ border: solid 2px transparent;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ }
+
+ .k-folderitem-focus-focused {
+ background-color: #F2F5FD;
+ }
+
+ .k-folderitem-focus-selected {
+ background-color: #E3E9FF;
+ }
+
+ .k-folderitem-focus-noselected {
+
+ }
+
+ .k-folderitem-focus-nofocused {
+
+ }
+
+ .flow {
+ cursor: pointer;
+ border-bottom: 1px solid #F3F3F3;
+ line-height: 1.3em;
+ height: 28px;
+ outline: 0;
+ }
+
+ .modified {
+ margin-right: 5px;
+ color: #A05A2C;
+ font-size: 17px;
+ line-height: 1.3em;
+ -moz-user-select: none;
+ -khtml-user-select: none;
+ float: right;
+ font-style: italic;
+ }
+
+ .title {
+ margin-left: 5px;
+ color: #A05A2C;
+ font-size: 19px;
+ line-height: 1.3em;
+ -moz-user-select: none;
+ -khtml-user-select: none;
+ }
+
+ .icon {
+ margin: 5px;
+ }
+
+ .menu {
+ float: right;
+ }
+ </ui:style>
+ <g:FocusPanel ui:field="focusPanel" styleName="{style.k-folderitem-focus}">
+ <g:FlowPanel styleName="{style.flow}" ui:field="flow">
+ <g:Image styleName="{style.icon}" ui:field="icon"/>
+ <g:InlineLabel styleName="{style.title}" ui:field="title"/>
+ <g:SimplePanel styleName="{style.menu}" ui:field="menu"/>
+ <g:InlineLabel styleName="{style.modified}"
+ ui:field="modified"/>
+ </g:FlowPanel>
+ </g:FocusPanel>
+</ui:UiBinder>
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -30,7 +30,7 @@
import cc.kune.core.shared.dto.ContentSimpleDTO;
import cc.kune.core.shared.dto.GroupDTO;
import cc.kune.core.shared.utils.SharedFileDownloadUtils;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import cc.kune.hspace.client.HSpacePresenter.HSpaceView;
import com.calclab.emite.core.client.packet.TextUtils;
Modified: trunk/src/main/java/cc/kune/hspace/client/HSpaceParts.java
===================================================================
--- trunk/src/main/java/cc/kune/hspace/client/HSpaceParts.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/hspace/client/HSpaceParts.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -19,8 +19,8 @@
*/
package cc.kune.hspace.client;
-import cc.kune.core.client.init.AppStartEvent;
-import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
import cc.kune.core.client.state.Session;
import com.google.inject.Inject;
Modified: trunk/src/main/java/cc/kune/hspace/client/HSpacePresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/hspace/client/HSpacePresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/hspace/client/HSpacePresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -23,10 +23,10 @@
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.events.InboxUnreadUpdatedEvent;
+import cc.kune.core.client.events.UserSignInOrSignOutEvent;
+import cc.kune.core.client.events.UserSignInOrSignOutEvent.UserSignInOrSignOutHandler;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.UserSignInOrSignOutEvent;
-import cc.kune.core.client.state.UserSignInOrSignOutEvent.UserSignInOrSignOutHandler;
import cc.kune.core.shared.dto.ContentSimpleDTO;
import cc.kune.core.shared.dto.GroupDTO;
import cc.kune.core.shared.dto.HomeStatsDTO;
Modified: trunk/src/main/java/cc/kune/lists/server/ListsServerTool.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/server/ListsServerTool.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/lists/server/ListsServerTool.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -44,8 +44,8 @@
import cc.kune.domain.Content;
import cc.kune.domain.Group;
import cc.kune.domain.User;
-import cc.kune.wave.server.KuneWaveService;
import cc.kune.wave.server.KuneWaveUtils;
+import cc.kune.wave.server.kspecific.KuneWaveService;
import com.google.inject.Inject;
Modified: trunk/src/main/java/cc/kune/pspace/client/PSpaceInDevelopment.java
===================================================================
--- trunk/src/main/java/cc/kune/pspace/client/PSpaceInDevelopment.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/pspace/client/PSpaceInDevelopment.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -22,16 +22,16 @@
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.common.shared.utils.TextUtils;
import cc.kune.common.shared.utils.UrlParam;
+import cc.kune.core.client.events.GroupChangedEvent;
+import cc.kune.core.client.events.GroupChangedEvent.GroupChangedHandler;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.client.services.ClientFileDownloadUtils;
-import cc.kune.core.client.state.GroupChangedEvent;
-import cc.kune.core.client.state.GroupChangedEvent.GroupChangedHandler;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.GroupDTO;
-import cc.kune.gspace.client.options.logo.CurrentEntityChangedEvent;
-import cc.kune.gspace.client.options.logo.CurrentEntityChangedEvent.CurrentEntityChangedHandler;
+import cc.kune.gspace.client.events.CurrentEntityChangedEvent;
+import cc.kune.gspace.client.events.CurrentEntityChangedEvent.CurrentEntityChangedHandler;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.shared.EventBus;
Modified: trunk/src/main/java/cc/kune/pspace/client/PSpacePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/pspace/client/PSpacePanel.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/pspace/client/PSpacePanel.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -24,7 +24,7 @@
import cc.kune.common.client.actions.ui.IsActionExtensible;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.resources.CoreResources;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import cc.kune.pspace.client.PSpacePresenter.PSpaceView;
import com.google.gwt.core.client.GWT;
Modified: trunk/src/main/java/cc/kune/pspace/client/PSpaceParts.java
===================================================================
--- trunk/src/main/java/cc/kune/pspace/client/PSpaceParts.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/pspace/client/PSpaceParts.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -19,8 +19,8 @@
*/
package cc.kune.pspace.client;
-import cc.kune.core.client.init.AppStartEvent;
-import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
import cc.kune.core.client.state.Session;
import com.google.inject.Inject;
Modified: trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -22,10 +22,10 @@
import cc.kune.common.client.actions.ui.IsActionExtensible;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.common.shared.utils.TextUtils;
-import cc.kune.core.client.init.AppStartEvent;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.StateChangedEvent;
+import cc.kune.core.client.events.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.StateChangedEvent;
-import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.client.state.StateTokenUtils;
import cc.kune.core.shared.domain.ContentStatus;
Deleted: trunk/src/main/java/cc/kune/wave/client/KuneConversation.css
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/KuneConversation.css 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/wave/client/KuneConversation.css 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,31 +0,0 @@
-/*
- * CSS for conversations.
- *
- * Author: reuben(a)google.com (Reuben Kan)
- */
-.fixedSelf {
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- z-index: 0;
-}
-
-.fixedThread {
- /*
- * Allow scrolling. Also, keep the scrollbar there permanently, so that content does not get
- * horizontally resized by the addition and removal of a scrollbar.
- */
- overflow-y: scroll;
- /* position: absolute; */ /* position: relative; */
- /* top: 24px; */
- top: 0;
- /* left: 0; */ /* right: 0; */ /* bottom: 0; */
- /* Layout under siblings (participant panel etc). */
- z-index: -1;
-}
-
-@sprite .toolbar {
- gwt-image: 'emptyToolbar';
-}
Modified: trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -49,12 +49,14 @@
import org.waveprotocol.wave.client.wavepanel.view.dom.full.DomRenderer;
import org.waveprotocol.wave.client.widget.popup.PopupChromeFactory;
import org.waveprotocol.wave.client.widget.popup.PopupFactory;
+import org.waveprotocol.wave.model.conversation.Conversation;
+import org.waveprotocol.wave.model.conversation.ConversationBlip;
import org.waveprotocol.wave.model.conversation.ConversationView;
import org.waveprotocol.wave.model.id.IdGenerator;
+import org.waveprotocol.wave.model.id.ModernIdSerialiser;
import org.waveprotocol.wave.model.wave.ParticipantId;
import org.waveprotocol.wave.model.waveref.WaveRef;
-import cc.kune.common.client.log.Log;
import cc.kune.common.shared.i18n.I18nTranslationService;
import com.google.gwt.dom.client.Element;
@@ -68,30 +70,29 @@
private final static AsyncHolder<Object> HALT = new AsyncHolder<Object>() {
@Override
- public void call(final Accessor<Object> accessor) {
+ public void call(Accessor<Object> accessor) {
// Never ready, so never notify the accessor.
}
};
+ private final Element wavePanelElement;
+ private final LogicalPanel rootPanel;
+ private final WaveRef waveRef;
private final RemoteViewServiceMultiplexer channel;
- private boolean closed;
private final I18nTranslationService i18n;
private final IdGenerator idGenerator;
+ private final ProfileManager profiles;
+ private final WaveStore waveStore;
private final boolean isNewWave;
private final String localDomain;
- private StageOne one;
- private final ProfileManager profiles;
- private final LogicalPanel rootPanel;
private final boolean showParticipantsPanel;
+ private boolean closed;
+ private StageOne one;
+ private StageTwo two;
private StageThree three;
- private StageTwo two;
private WaveContext wave;
- private final Element wavePanelElement;
- private final WaveRef waveRef;
- private final WaveStore waveStore;
-
/**
* @param wavePanelElement The dom element to become the wave panel
* @param rootPanel A panel that this an ancestor of wavePanelElement. This is
@@ -102,9 +103,9 @@
* @param isNewWave true if the wave is a new client-created wave
* @param idGenerator
*/
- public KuneStagesProvider(final Element wavePanelElement, final LogicalPanel rootPanel, final WaveRef waveRef,
- final RemoteViewServiceMultiplexer channel, final IdGenerator idGenerator, final ProfileManager profiles,
- final WaveStore store, final boolean isNewWave, final String localDomain, final boolean showParticipantsPanel, final I18nTranslationService i18n) {
+ public KuneStagesProvider(Element wavePanelElement, LogicalPanel rootPanel, WaveRef waveRef,
+ RemoteViewServiceMultiplexer channel, IdGenerator idGenerator, ProfileManager profiles,
+ WaveStore store, boolean isNewWave, String localDomain, boolean showParticipantsPanel, I18nTranslationService i18n) {
this.wavePanelElement = wavePanelElement;
this.rootPanel = rootPanel;
this.waveRef = waveRef;
@@ -119,17 +120,43 @@
}
@Override
- protected AsyncHolder<StageOne> createStageOneLoader(final StageZero zero) {
+ protected AsyncHolder<StageZero> createStageZeroLoader() {
+ return haltIfClosed(super.createStageZeroLoader());
+ }
+
+ @Override
+ protected AsyncHolder<StageOne> createStageOneLoader(StageZero zero) {
return haltIfClosed(new StageOne.DefaultProvider(zero) {
@Override
+ protected Element createWaveHolder() {
+ return wavePanelElement;
+ }
+
+ @Override
protected LogicalPanel createWaveContainer() {
return rootPanel;
}
+ });
+ }
+ @Override
+ protected AsyncHolder<StageTwo> createStageTwoLoader(StageOne one) {
+ return haltIfClosed(new StageTwoProvider(
+ this.one = one, waveRef.getWaveId(), channel, isNewWave, idGenerator, profiles) {
+ // Kune patch
@Override
- protected Element createWaveHolder() {
- return wavePanelElement;
+ protected DomRenderer createRenderer() {
+ return KuneFullDomWaveRendererImpl.create(getConversations(), getProfileManager(),
+ getBlipDetailer(), getViewIdMapper(), getBlipQueue(), getThreadReadStateMonitor(),
+ createViewFactories(), showParticipantsPanel);
}
+
+ // Warning: this run into issue #73
+ // @Override
+ // protected void installFeatures() {
+ // WavePanelResourceLoader.loadCss();
+ // // KuneWavePanelResourceLoader.loadCss();
+ // }
});
}
@@ -141,7 +168,7 @@
// Prepend an init wave flow onto the stage continuation.
super.create(new Accessor<StageThree>() {
@Override
- public void use(final StageThree x) {
+ public void use(StageThree x) {
onStageThreeLoaded(x, whenReady);
}
});
@@ -178,31 +205,64 @@
});
}
- @Override
- protected AsyncHolder<StageTwo> createStageTwoLoader(final StageOne one) {
- return haltIfClosed(new StageTwoProvider(
- this.one = one, waveRef, channel, isNewWave, idGenerator, profiles) {
- // Kune patch
- @Override
- protected DomRenderer createRenderer() {
- return KuneFullDomWaveRendererImpl.create(getConversations(), getProfileManager(),
- getBlipDetailer(), getViewIdMapper(), getBlipQueue(), getThreadReadStateMonitor(),
- createViewFactories(), showParticipantsPanel);
- }
+ private void onStageThreeLoaded(StageThree x, Accessor<StageThree> whenReady) {
+ if (closed) {
+ // Stop the loading process.
+ return;
+ }
+ three = x;
+ if (isNewWave) {
+ initNewWave(x);
+ } else {
+ handleExistingWave(x);
+ }
+ wave = new WaveContext(
+ two.getWave(), two.getConversations(), two.getSupplement(), two.getReadMonitor());
+ waveStore.add(wave);
+ whenReady.use(x);
+ }
- // Warning: this run into issue #73
- // @Override
- // protected void installFeatures() {
- // WavePanelResourceLoader.loadCss();
- // // KuneWavePanelResourceLoader.loadCss();
- // }
- });
+ private void initNewWave(StageThree three) {
+ // Do the new-wave flow.
+ ModelAsViewProvider views = two.getModelAsViewProvider();
+ BlipQueueRenderer blipQueue = two.getBlipQueue();
+ ConversationView wave = two.getConversations();
+
+ // Force rendering to finish.
+ blipQueue.flush();
+ BlipView blipUi = views.getBlipView(wave.getRoot().getRootThread().getFirstBlip());
+ three.getEditActions().startEditing(blipUi);
}
- @Override
- protected AsyncHolder<StageZero> createStageZeroLoader() {
- return haltIfClosed(super.createStageZeroLoader());
+ private void handleExistingWave(StageThree three) {
+ // If there's blip reference then focus on that blip.
+ String documentId = waveRef.getDocumentId();
+ if (documentId != null) {
+ ModelAsViewProvider views = two.getModelAsViewProvider();
+ BlipQueueRenderer blipQueue = two.getBlipQueue();
+ ConversationView wave = two.getConversations();
+ blipQueue.flush();
+ // Find conversation
+ Conversation conversation;
+ if (waveRef.hasWaveletId()) {
+ String id = ModernIdSerialiser.INSTANCE.serialiseWaveletId(waveRef.getWaveletId());
+ conversation = wave.getConversation(id);
+ } else {
+ // Unspecified wavelet means root.
+ conversation = wave.getRoot();
+ }
+ if (conversation != null) {
+ // Find selected blip.
+ ConversationBlip blip = wave.getRoot().getBlip(documentId);
+ if (blip != null) {
+ BlipView blipUi = views.getBlipView(blip);
+ if (blipUi != null) {
+ two.getStageOne().getFocusFrame().focus(blipUi);
}
+ }
+ }
+ }
+ }
public void destroy() {
if (wave != null) {
@@ -210,27 +270,15 @@
wave = null;
}
if (three != null) {
- try {
three.getEditActions().stopEditing();
- } catch (final Exception e) {
- Log.info("Some exception stoping editing", e);
- }
three = null;
}
if (two != null) {
- try {
two.getConnector().close();
- } catch (final Exception e) {
- Log.info("Some exception closing connector", e);
- }
two = null;
}
if (one != null) {
- try {
one.getWavePanel().destroy();
- } catch (final Exception e) {
- Log.info("Some exception destroying panel", e);
- }
one = null;
}
closed = true;
@@ -241,41 +289,7 @@
* given provider.
*/
@SuppressWarnings("unchecked") // HALT is safe as a holder for any type
- private <T> AsyncHolder<T> haltIfClosed(final AsyncHolder<T> provider) {
+ private <T> AsyncHolder<T> haltIfClosed(AsyncHolder<T> provider) {
return closed ? (AsyncHolder<T>) HALT : provider;
}
-
- private void handleExistingWave(final StageThree three) {
- final BlipQueueRenderer blipQueue = two.getBlipQueue();
- blipQueue.flush();
- }
-
- private void initNewWave(final StageThree three) {
- // Do the new-wave flow.
- final ModelAsViewProvider views = two.getModelAsViewProvider();
- final BlipQueueRenderer blipQueue = two.getBlipQueue();
- final ConversationView wave = two.getConversations();
-
- // Force rendering to finish.
- blipQueue.flush();
- final BlipView blipUi = views.getBlipView(wave.getRoot().getRootThread().getFirstBlip());
- three.getEditActions().startEditing(blipUi);
- }
-
- private void onStageThreeLoaded(final StageThree x, final Accessor<StageThree> whenReady) {
- if (closed) {
- // Stop the loading process.
- return;
- }
- three = x;
- if (isNewWave) {
- initNewWave(x);
- } else {
- handleExistingWave(x);
- }
- wave = new WaveContext(
- two.getWave(), two.getConversations(), two.getSupplement(), two.getReadMonitor());
- waveStore.add(wave);
- whenReady.use(x);
- }
}
Added: trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java.seg
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java.seg (rev 0)
+++ trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java.seg 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,295 @@
+// @formatter:off
+/**
+ * Copyright 2010 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+
+package cc.kune.wave.client;
+
+import org.waveprotocol.box.webclient.client.RemoteViewServiceMultiplexer;
+import org.waveprotocol.box.webclient.client.StageTwoProvider;
+import org.waveprotocol.box.webclient.search.WaveContext;
+import org.waveprotocol.box.webclient.search.WaveStore;
+import org.waveprotocol.wave.client.StageOne;
+import org.waveprotocol.wave.client.StageThree;
+import org.waveprotocol.wave.client.StageTwo;
+import org.waveprotocol.wave.client.StageZero;
+import org.waveprotocol.wave.client.Stages;
+import org.waveprotocol.wave.client.account.ProfileManager;
+import org.waveprotocol.wave.client.common.util.AsyncHolder;
+import org.waveprotocol.wave.client.common.util.AsyncHolder.Accessor;
+import org.waveprotocol.wave.client.common.util.LogicalPanel;
+import org.waveprotocol.wave.client.editor.EditorStaticDeps;
+import org.waveprotocol.wave.client.wavepanel.impl.WavePanelImpl;
+import org.waveprotocol.wave.client.wavepanel.impl.edit.Actions;
+import org.waveprotocol.wave.client.wavepanel.impl.edit.EditController;
+import org.waveprotocol.wave.client.wavepanel.impl.edit.EditSession;
+import org.waveprotocol.wave.client.wavepanel.impl.edit.KeepFocusInView;
+import org.waveprotocol.wave.client.wavepanel.impl.focus.FocusFramePresenter;
+import org.waveprotocol.wave.client.wavepanel.impl.indicator.ReplyIndicatorController;
+import org.waveprotocol.wave.client.wavepanel.impl.menu.MenuController;
+import org.waveprotocol.wave.client.wavepanel.impl.title.WaveTitleHandler;
+import org.waveprotocol.wave.client.wavepanel.impl.toolbar.ToolbarSwitcher;
+import org.waveprotocol.wave.client.wavepanel.view.BlipView;
+import org.waveprotocol.wave.client.wavepanel.view.dom.ModelAsViewProvider;
+import org.waveprotocol.wave.client.wavepanel.view.dom.full.BlipQueueRenderer;
+import org.waveprotocol.wave.client.wavepanel.view.dom.full.DomRenderer;
+import org.waveprotocol.wave.client.widget.popup.PopupChromeFactory;
+import org.waveprotocol.wave.client.widget.popup.PopupFactory;
+import org.waveprotocol.wave.model.conversation.Conversation;
+import org.waveprotocol.wave.model.conversation.ConversationBlip;
+import org.waveprotocol.wave.model.conversation.ConversationView;
+import org.waveprotocol.wave.model.id.IdGenerator;
+import org.waveprotocol.wave.model.id.ModernIdSerialiser;
+import org.waveprotocol.wave.model.wave.ParticipantId;
+import org.waveprotocol.wave.model.waveref.WaveRef;
+
+import cc.kune.common.shared.i18n.I18nTranslationService;
+
+import com.google.gwt.dom.client.Element;
+
+/**
+ * Stages for loading the undercurrent Wave Panel
+ *
+ * @author zdwang(a)google.com (David Wang)
+ */
+public class KuneStagesProvider extends Stages {
+
+ private final static AsyncHolder<Object> HALT = new AsyncHolder<Object>() {
+ @Override
+ public void call(Accessor<Object> accessor) {
+ // Never ready, so never notify the accessor.
+ }
+ };
+
+ private final Element wavePanelElement;
+ private final LogicalPanel rootPanel;
+ private final WaveRef waveRef;
+ private final RemoteViewServiceMultiplexer channel;
+ private final I18nTranslationService i18n;
+ private final IdGenerator idGenerator;
+ private final ProfileManager profiles;
+ private final WaveStore waveStore;
+ private final boolean isNewWave;
+ private final String localDomain;
+
+ private final boolean showParticipantsPanel;
+ private boolean closed;
+ private StageOne one;
+ private StageTwo two;
+ private StageThree three;
+ private WaveContext wave;
+
+ /**
+ * @param wavePanelElement The dom element to become the wave panel
+ * @param rootPanel A panel that this an ancestor of wavePanelElement. This is
+ * used for adopting to the GWT widget tree.
+ * @param waveRef the id of the wave to open. If null, it means, create a new
+ * wave.
+ * @param channel communication channel.
+ * @param isNewWave true if the wave is a new client-created wave
+ * @param idGenerator
+ */
+ public KuneStagesProvider(Element wavePanelElement, LogicalPanel rootPanel, WaveRef waveRef,
+ RemoteViewServiceMultiplexer channel, IdGenerator idGenerator, ProfileManager profiles,
+ WaveStore store, boolean isNewWave, String localDomain, boolean showParticipantsPanel, I18nTranslationService i18n) {
+ this.wavePanelElement = wavePanelElement;
+ this.rootPanel = rootPanel;
+ this.waveRef = waveRef;
+ this.channel = channel;
+ this.idGenerator = idGenerator;
+ this.profiles = profiles;
+ this.waveStore = store;
+ this.isNewWave = isNewWave;
+ this.localDomain = localDomain;
+ this.showParticipantsPanel = showParticipantsPanel;
+ this.i18n = i18n;
+ }
+
+ @Override
+ protected AsyncHolder<StageZero> createStageZeroLoader() {
+ return haltIfClosed(super.createStageZeroLoader());
+ }
+
+ @Override
+ protected AsyncHolder<StageOne> createStageOneLoader(StageZero zero) {
+ return haltIfClosed(new StageOne.DefaultProvider(zero) {
+ @Override
+ protected Element createWaveHolder() {
+ return wavePanelElement;
+ }
+
+ @Override
+ protected LogicalPanel createWaveContainer() {
+ return rootPanel;
+ }
+ });
+ }
+
+ @Override
+ protected AsyncHolder<StageTwo> createStageTwoLoader(StageOne one) {
+ return haltIfClosed(new StageTwoProvider(
+ this.one = one, waveRef.getWaveId(), channel, isNewWave, idGenerator, profiles) {
+ // Kune patch
+ @Override
+ protected DomRenderer createRenderer() {
+ return KuneFullDomWaveRendererImpl.create(getConversations(), getProfileManager(),
+ getBlipDetailer(), getViewIdMapper(), getBlipQueue(), getThreadReadStateMonitor(),
+ createViewFactories(), showParticipantsPanel);
+ }
+
+ // Warning: this run into issue #73
+ // @Override
+ // protected void installFeatures() {
+ // WavePanelResourceLoader.loadCss();
+ // // KuneWavePanelResourceLoader.loadCss();
+ // }
+ });
+ }
+
+ @Override
+ protected AsyncHolder<StageThree> createStageThreeLoader(final StageTwo two) {
+ return haltIfClosed(new StageThree.DefaultProvider(this.two = two) {
+ @Override
+ protected void create(final Accessor<StageThree> whenReady) {
+ // Prepend an init wave flow onto the stage continuation.
+ super.create(new Accessor<StageThree>() {
+ @Override
+ public void use(StageThree x) {
+ onStageThreeLoaded(x, whenReady);
+ }
+ });
+ }
+
+ @Override
+ protected String getLocalDomain() {
+ return localDomain;
+ }
+ @Override
+ protected void install() {
+ EditorStaticDeps.setPopupProvider(PopupFactory.getProvider());
+ EditorStaticDeps.setPopupChromeProvider(PopupChromeFactory.getProvider());
+
+ // Eagerly install some features.
+ final WavePanelImpl panel = stageTwo.getStageOne().getWavePanel();
+ final FocusFramePresenter focus = stageTwo.getStageOne().getFocusFrame();
+ final ParticipantId user = stageTwo.getSignedInUser();
+ final ModelAsViewProvider models = stageTwo.getModelAsViewProvider();
+ final ProfileManager profiles = stageTwo.getProfileManager();
+
+ final Actions actions = getEditActions();
+ final EditSession edit = getEditSession();
+ MenuController.install(actions, panel);
+ ToolbarSwitcher.install(stageTwo.getStageOne().getWavePanel(), getEditSession(),
+ getViewToolbar(), getEditToolbar());
+ WaveTitleHandler.install(edit, models);
+ ReplyIndicatorController.install(actions, edit, panel);
+ EditController.install(focus, actions, panel);
+ KuneParticipantController.install(panel, models, profiles, getLocalDomain(), i18n);
+ KeepFocusInView.install(edit, panel);
+ stageTwo.getDiffController().upgrade(edit);
+ }
+ });
+ }
+
+ private void onStageThreeLoaded(StageThree x, Accessor<StageThree> whenReady) {
+ if (closed) {
+ // Stop the loading process.
+ return;
+ }
+ three = x;
+ if (isNewWave) {
+ initNewWave(x);
+ } else {
+ handleExistingWave(x);
+ }
+ wave = new WaveContext(
+ two.getWave(), two.getConversations(), two.getSupplement(), two.getReadMonitor());
+ waveStore.add(wave);
+ whenReady.use(x);
+ }
+
+ private void initNewWave(StageThree three) {
+ // Do the new-wave flow.
+ ModelAsViewProvider views = two.getModelAsViewProvider();
+ BlipQueueRenderer blipQueue = two.getBlipQueue();
+ ConversationView wave = two.getConversations();
+
+ // Force rendering to finish.
+ blipQueue.flush();
+ BlipView blipUi = views.getBlipView(wave.getRoot().getRootThread().getFirstBlip());
+ three.getEditActions().startEditing(blipUi);
+ }
+
+ private void handleExistingWave(StageThree three) {
+ // If there's blip reference then focus on that blip.
+ String documentId = waveRef.getDocumentId();
+ if (documentId != null) {
+ ModelAsViewProvider views = two.getModelAsViewProvider();
+ BlipQueueRenderer blipQueue = two.getBlipQueue();
+ ConversationView wave = two.getConversations();
+ blipQueue.flush();
+ // Find conversation
+ Conversation conversation;
+ if (waveRef.hasWaveletId()) {
+ String id = ModernIdSerialiser.INSTANCE.serialiseWaveletId(waveRef.getWaveletId());
+ conversation = wave.getConversation(id);
+ } else {
+ // Unspecified wavelet means root.
+ conversation = wave.getRoot();
+ }
+ if (conversation != null) {
+ // Find selected blip.
+ ConversationBlip blip = wave.getRoot().getBlip(documentId);
+ if (blip != null) {
+ BlipView blipUi = views.getBlipView(blip);
+ if (blipUi != null) {
+ two.getStageOne().getFocusFrame().focus(blipUi);
+ }
+ }
+ }
+ }
+ }
+
+ public void destroy() {
+ if (wave != null) {
+ waveStore.remove(wave);
+ wave = null;
+ }
+ if (three != null) {
+ three.getEditActions().stopEditing();
+ three = null;
+ }
+ if (two != null) {
+ two.getConnector().close();
+ two = null;
+ }
+ if (one != null) {
+ one.getWavePanel().destroy();
+ one = null;
+ }
+ closed = true;
+ }
+
+ /**
+ * @return a halting provider if this stage is closed. Otherwise, returns the
+ * given provider.
+ */
+ @SuppressWarnings("unchecked") // HALT is safe as a holder for any type
+ private <T> AsyncHolder<T> haltIfClosed(AsyncHolder<T> provider) {
+ return closed ? (AsyncHolder<T>) HALT : provider;
+ }
+}
Deleted: trunk/src/main/java/cc/kune/wave/client/KuneWaveResources.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/KuneWaveResources.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/wave/client/KuneWaveResources.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,41 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.wave.client;
-
-import org.waveprotocol.wave.client.wavepanel.view.dom.full.TopConversationViewBuilder;
-
-import com.google.gwt.resources.client.ClientBundle;
-import com.google.gwt.resources.client.ImageResource;
-import com.google.gwt.resources.client.ImageResource.ImageOptions;
-import com.google.gwt.resources.client.ImageResource.RepeatStyle;
-
-public class KuneWaveResources {
- // Not used now
- public interface Conversation extends ClientBundle {
- // Note: the CSS file contains a gwt-image reference, so must be defined
- // after the referenced images in this interface.
- @Source("KuneConversation.css")
- TopConversationViewBuilder.Css css();
-
- @ImageOptions(repeatStyle = RepeatStyle.Horizontal)
- @Source("toolbar_empty.png")
- ImageResource emptyToolbar();
- }
-}
Deleted: trunk/src/main/java/cc/kune/wave/client/WaveClientClearEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WaveClientClearEvent.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/wave/client/WaveClientClearEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,77 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.wave.client;
-
-import com.google.gwt.event.shared.EventHandler;
-import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerRegistration;
-
-import com.google.gwt.event.shared.HasHandlers;
-
-public class WaveClientClearEvent extends GwtEvent<WaveClientClearEvent.WaveClientClearHandler> {
-
- public interface HasWaveClientClearHandlers extends HasHandlers {
- HandlerRegistration addWaveClientClearHandler(WaveClientClearHandler handler);
- }
-
- public interface WaveClientClearHandler extends EventHandler {
- public void onWaveClientClear(WaveClientClearEvent event);
- }
-
- private static final Type<WaveClientClearHandler> TYPE = new Type<WaveClientClearHandler>();
-
- public static void fire(HasHandlers source) {
- source.fireEvent(new WaveClientClearEvent());
- }
-
- public static Type<WaveClientClearHandler> getType() {
- return TYPE;
- }
-
-
- public WaveClientClearEvent() {
- }
-
- @Override
- public Type<WaveClientClearHandler> getAssociatedType() {
- return TYPE;
- }
-
- @Override
- protected void dispatch(WaveClientClearHandler handler) {
- handler.onWaveClientClear(this);
- }
-
- @Override
- public boolean equals(Object obj) {
- return super.equals(obj);
- }
-
- @Override
- public int hashCode() {
- return super.hashCode();
- }
-
- @Override
- public String toString() {
- return "WaveClientClearEvent["
- + "]";
- }
-}
Added: trunk/src/main/java/cc/kune/wave/client/WaveClientClearEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WaveClientClearEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/wave/client/WaveClientClearEvent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,77 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.wave.client;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+
+import com.google.gwt.event.shared.HasHandlers;
+
+public class WaveClientClearEvent extends GwtEvent<WaveClientClearEvent.WaveClientClearHandler> {
+
+ public interface HasWaveClientClearHandlers extends HasHandlers {
+ HandlerRegistration addWaveClientClearHandler(WaveClientClearHandler handler);
+ }
+
+ public interface WaveClientClearHandler extends EventHandler {
+ public void onWaveClientClear(WaveClientClearEvent event);
+ }
+
+ private static final Type<WaveClientClearHandler> TYPE = new Type<WaveClientClearHandler>();
+
+ public static void fire(HasHandlers source) {
+ source.fireEvent(new WaveClientClearEvent());
+ }
+
+ public static Type<WaveClientClearHandler> getType() {
+ return TYPE;
+ }
+
+
+ public WaveClientClearEvent() {
+ }
+
+ @Override
+ public Type<WaveClientClearHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(WaveClientClearHandler handler) {
+ handler.onWaveClientClear(this);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return super.equals(obj);
+ }
+
+ @Override
+ public int hashCode() {
+ return super.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return "WaveClientClearEvent["
+ + "]";
+ }
+}
Modified: trunk/src/main/java/cc/kune/wave/client/WaveClientManager.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WaveClientManager.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/wave/client/WaveClientManager.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -20,17 +20,17 @@
package cc.kune.wave.client;
import cc.kune.common.client.log.Log;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignOutEvent;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
+import cc.kune.core.client.events.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.rpcservices.UserServiceAsync;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.client.state.TokenMatcher;
-import cc.kune.core.client.state.UserSignInEvent;
-import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
-import cc.kune.core.client.state.UserSignOutEvent;
-import cc.kune.core.client.state.UserSignOutEvent.UserSignOutHandler;
import cc.kune.core.shared.dto.WaveClientParams;
-import cc.kune.gspace.client.GSpaceArmor;
+import cc.kune.gspace.client.armor.GSpaceArmor;
import cc.kune.wave.client.inboxcount.InboxCountPresenter;
import com.google.gwt.core.client.JavaScriptObject;
Modified: trunk/src/main/java/cc/kune/wave/client/WaveParts.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WaveParts.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/wave/client/WaveParts.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -19,8 +19,8 @@
*/
package cc.kune.wave.client;
-import cc.kune.core.client.init.AppStartEvent;
-import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
import cc.kune.core.client.state.Session;
import cc.kune.wave.client.inboxcount.InboxCountPresenter;
Deleted: trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,92 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.wave.client;
-
-import org.waveprotocol.box.webclient.client.ClientEvents;
-import org.waveprotocol.box.webclient.client.events.NetworkStatusEvent;
-import org.waveprotocol.box.webclient.client.events.NetworkStatusEventHandler;
-
-import cc.kune.common.client.actions.AbstractAction;
-import cc.kune.common.client.actions.Action;
-import cc.kune.common.client.actions.ActionEvent;
-import cc.kune.common.client.actions.ui.descrip.IconLabelDescriptor;
-import cc.kune.common.client.notify.NotifyUser;
-import cc.kune.common.shared.i18n.I18nTranslationService;
-import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
-import cc.kune.core.client.sitebar.SitebarActionsPresenter;
-import cc.kune.core.client.sn.actions.SessionAction;
-import cc.kune.core.client.state.Session;
-
-import com.google.inject.Inject;
-
-public class WaveStatusIndicator {
-
- public static class WaveStatusAction extends SessionAction {
-
- @Inject
- public WaveStatusAction(final Session session, final I18nTranslationService i18n) {
- super(session, true);
- setVisible(false);
- ClientEvents.get().addNetworkStatusEventHandler(new NetworkStatusEventHandler() {
- private void goOnline() {
- putValue(Action.NAME, ""); // i18n.t("Online"));
- putValue(AbstractAction.STYLES, "k-sitebar-wave-status, k-sitebar-wave-status-online");
- setVisible(false);
- NotifyUser.hideProgress();
- }
-
- @Override
- public void onNetworkStatus(final NetworkStatusEvent event) {
- switch (event.getStatus()) {
- case CONNECTED:
- case RECONNECTED:
- session.check(new AsyncCallbackSimple<Void>() {
- @Override
- public void onSuccess(final Void result) {
- goOnline();
- }
- });
- break;
- case DISCONNECTED:
- NotifyUser.showProgress(i18n.t("Connecting"));
- case RECONNECTING:
- putValue(Action.NAME, i18n.t("Offline"));
- putValue(AbstractAction.STYLES, "k-sitebar-wave-status, k-sitebar-wave-status-offline");
- setVisible(true);
- break;
- }
- }
- });
- }
-
- @Override
- public void actionPerformed(final ActionEvent event) {
- // Do nothing
- }
-
- }
-
- @Inject
- public WaveStatusIndicator(final SitebarActionsPresenter sitebar, final WaveStatusAction action) {
- final IconLabelDescriptor status = new IconLabelDescriptor(action);
- status.setPosition(1);
- sitebar.getRightToolbar().add(status);
- }
-}
Added: trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java (rev 0)
+++ trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,92 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.wave.client;
+
+import org.waveprotocol.box.webclient.client.ClientEvents;
+import org.waveprotocol.box.webclient.client.events.NetworkStatusEvent;
+import org.waveprotocol.box.webclient.client.events.NetworkStatusEventHandler;
+
+import cc.kune.common.client.actions.AbstractAction;
+import cc.kune.common.client.actions.Action;
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.actions.ui.descrip.IconLabelDescriptor;
+import cc.kune.common.client.notify.NotifyUser;
+import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
+import cc.kune.core.client.sitebar.SitebarActionsPresenter;
+import cc.kune.core.client.sn.actions.SessionAction;
+import cc.kune.core.client.state.Session;
+
+import com.google.inject.Inject;
+
+public class WaveStatusIndicator {
+
+ public static class WaveStatusAction extends SessionAction {
+
+ @Inject
+ public WaveStatusAction(final Session session, final I18nTranslationService i18n) {
+ super(session, true);
+ setVisible(false);
+ ClientEvents.get().addNetworkStatusEventHandler(new NetworkStatusEventHandler() {
+ private void goOnline() {
+ putValue(Action.NAME, ""); // i18n.t("Online"));
+ putValue(AbstractAction.STYLES, "k-sitebar-wave-status, k-sitebar-wave-status-online");
+ setVisible(false);
+ NotifyUser.hideProgress();
+ }
+
+ @Override
+ public void onNetworkStatus(final NetworkStatusEvent event) {
+ switch (event.getStatus()) {
+ case CONNECTED:
+ case RECONNECTED:
+ session.check(new AsyncCallbackSimple<Void>() {
+ @Override
+ public void onSuccess(final Void result) {
+ goOnline();
+ }
+ });
+ break;
+ case DISCONNECTED:
+ NotifyUser.showProgress(i18n.t("Connecting"));
+ case RECONNECTING:
+ putValue(Action.NAME, i18n.t("Offline"));
+ putValue(AbstractAction.STYLES, "k-sitebar-wave-status, k-sitebar-wave-status-offline");
+ setVisible(true);
+ break;
+ }
+ }
+ });
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ // Do nothing
+ }
+
+ }
+
+ @Inject
+ public WaveStatusIndicator(final SitebarActionsPresenter sitebar, final WaveStatusAction action) {
+ final IconLabelDescriptor status = new IconLabelDescriptor(action);
+ status.setPosition(1);
+ sitebar.getRightToolbar().add(status);
+ }
+}
Modified: trunk/src/main/java/cc/kune/wave/client/inboxcount/InboxCountPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/inboxcount/InboxCountPresenter.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/wave/client/inboxcount/InboxCountPresenter.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -29,9 +29,9 @@
import cc.kune.core.client.events.InboxUnreadUpdatedEvent;
import cc.kune.core.client.events.NewUserRegisteredEvent;
import cc.kune.core.client.events.SndClickEvent;
+import cc.kune.core.client.events.UserSignInOrSignOutEvent;
+import cc.kune.core.client.events.UserSignInOrSignOutEvent.UserSignInOrSignOutHandler;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.UserSignInOrSignOutEvent;
-import cc.kune.core.client.state.UserSignInOrSignOutEvent.UserSignInOrSignOutHandler;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.user.client.Timer;
Copied: trunk/src/main/java/cc/kune/wave/client/resources/KuneConversation.css (from rev 1655, trunk/src/main/java/cc/kune/wave/client/KuneConversation.css)
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/resources/KuneConversation.css (rev 0)
+++ trunk/src/main/java/cc/kune/wave/client/resources/KuneConversation.css 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,31 @@
+/*
+ * CSS for conversations.
+ *
+ * Author: reuben(a)google.com (Reuben Kan)
+ */
+.fixedSelf {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ z-index: 0;
+}
+
+.fixedThread {
+ /*
+ * Allow scrolling. Also, keep the scrollbar there permanently, so that content does not get
+ * horizontally resized by the addition and removal of a scrollbar.
+ */
+ overflow-y: scroll;
+ /* position: absolute; */ /* position: relative; */
+ /* top: 24px; */
+ top: 0;
+ /* left: 0; */ /* right: 0; */ /* bottom: 0; */
+ /* Layout under siblings (participant panel etc). */
+ z-index: -1;
+}
+
+@sprite .toolbar {
+ gwt-image: 'emptyToolbar';
+}
Copied: trunk/src/main/java/cc/kune/wave/client/resources/KuneWaveResources.java (from rev 1655, trunk/src/main/java/cc/kune/wave/client/KuneWaveResources.java)
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/resources/KuneWaveResources.java (rev 0)
+++ trunk/src/main/java/cc/kune/wave/client/resources/KuneWaveResources.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,41 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.wave.client.resources;
+
+import org.waveprotocol.wave.client.wavepanel.view.dom.full.TopConversationViewBuilder;
+
+import com.google.gwt.resources.client.ClientBundle;
+import com.google.gwt.resources.client.ImageResource;
+import com.google.gwt.resources.client.ImageResource.ImageOptions;
+import com.google.gwt.resources.client.ImageResource.RepeatStyle;
+
+public class KuneWaveResources {
+ // Not used now
+ public interface Conversation extends ClientBundle {
+ // Note: the CSS file contains a gwt-image reference, so must be defined
+ // after the referenced images in this interface.
+ @Source("KuneConversation.css")
+ TopConversationViewBuilder.Css css();
+
+ @ImageOptions(repeatStyle = RepeatStyle.Horizontal)
+ @Source("toolbar_empty.png")
+ ImageResource emptyToolbar();
+ }
+}
Copied: trunk/src/main/java/cc/kune/wave/client/resources/toolbar_empty.png (from rev 1655, trunk/src/main/java/cc/kune/wave/client/toolbar_empty.png)
===================================================================
(Binary files differ)
Deleted: trunk/src/main/java/cc/kune/wave/client/toolbar_empty.png
===================================================================
(Binary files differ)
Modified: trunk/src/main/java/cc/kune/wave/server/CustomUserRegistrationServlet.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/CustomUserRegistrationServlet.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/wave/server/CustomUserRegistrationServlet.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -44,7 +44,7 @@
/**
* The user registration servlet allows new users to register accounts.
- *
+ *
* @author josephg(a)gmail.com (Joseph Gentle)
*/
@SuppressWarnings("serial")
@@ -53,17 +53,18 @@
private final AccountStore accountStore;
private final String domain;
- // private final WelcomeRobot welcomeBot;
+ private final boolean registrationDisabled;
private final Log LOG = Log.get(CustomUserRegistrationServlet.class);
@Inject
public CustomUserRegistrationServlet(AccountStore accountStore,
- @Named(CoreSettings.WAVE_SERVER_DOMAIN) String domain) {
- //, WelcomeRobot welcomeBot) {
+ @Named(CoreSettings.WAVE_SERVER_DOMAIN) String domain,
+ @Named(CoreSettings.DISABLE_REGISTRATION) boolean registrationDisabled) {
this.accountStore = accountStore;
this.domain = domain;
// this.welcomeBot = welcomeBot;
+ this.registrationDisabled = registrationDisabled;
}
@Override
@@ -71,26 +72,29 @@
writeRegistrationPage("", AuthenticationServlet.RESPONSE_STATUS_NONE, req.getLocale(), resp);
}
- @SuppressWarnings("unchecked")
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
req.setCharacterEncoding("UTF-8");
+ String message = null;
+ String responseType;
String password = req.getParameter(HttpRequestBasedCallbackHandler.PASSWORD_FIELD);
if (password == null) {
// Register the user with an empty password.
password = "";
}
+ if (!registrationDisabled) {
final PasswordDigest passwordDigest = new PasswordDigest(password.toCharArray());
- String message =
+ message =
tryCreateUser(req.getParameter(HttpRequestBasedCallbackHandler.ADDRESS_FIELD), passwordDigest);
- String responseType = AuthenticationServlet.RESPONSE_STATUS_SUCCESS;
+ }
- if (message != null) {
+ if (message != null || registrationDisabled) {
resp.setStatus(HttpServletResponse.SC_FORBIDDEN);
responseType = AuthenticationServlet.RESPONSE_STATUS_FAILED;
} else {
message = "Registration complete.";
resp.setStatus(HttpServletResponse.SC_OK);
+ responseType = AuthenticationServlet.RESPONSE_STATUS_SUCCESS;
}
writeRegistrationPage(message, responseType, req.getLocale(), resp);
@@ -101,7 +105,6 @@
* returns a string containing an error message. On success, returns null.
*/
public String tryCreateUser(String username, final PasswordDigest passwordDigest) { // NOPMD by vjrj on 27/04/11 8:36
- final String message = null;
ParticipantId id = null;
try {
@@ -159,6 +162,6 @@
dest.setCharacterEncoding("UTF-8");
dest.setContentType("text/html;charset=utf-8");
UserRegistrationPage.write(dest.getWriter(), new GxpContext(locale), domain, message,
- responseType);
+ responseType, registrationDisabled);
}
}
Deleted: trunk/src/main/java/cc/kune/wave/server/KuneAgent.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/KuneAgent.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/wave/server/KuneAgent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,193 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.wave.server;
-
-import java.net.URL;
-import java.util.HashSet;
-import java.util.logging.Logger;
-
-import javax.annotation.Nonnull;
-
-import org.waveprotocol.box.server.robots.agent.AbstractBaseRobotAgent;
-import org.waveprotocol.wave.model.id.WaveId;
-import org.waveprotocol.wave.model.id.WaveletId;
-import org.waveprotocol.wave.model.wave.ParticipantId;
-import org.waveprotocol.wave.model.waveref.WaveRef;
-
-import com.google.inject.Inject;
-import com.google.inject.Injector;
-import com.google.inject.Singleton;
-import com.google.wave.api.Wavelet;
-
-@SuppressWarnings("serial")
-@Singleton
-public class KuneAgent extends AbstractBaseRobotAgent implements KuneWaveService {
-
- private static final Logger LOG = Logger.getLogger(KuneAgent.class.getName());
-
- private static final String NO_TITLE = "";
- public static final String ROBOT_URI = AGENT_PREFIX_URI + "/kune-agent";
-
- @Inject
- public KuneAgent(final Injector injector) {
- super(injector);
- }
-
- // public KuneAgent(final String waveDomain, final AccountStore accountStore,
- // final TokenGenerator tokenGenerator, final ServerFrontendAddressHolder
- // frontendAddressHolder) {
- // super(waveDomain, accountStore, tokenGenerator, frontendAddressHolder);
- // }
-
- @Override
- public void addGadget(final WaveRef waveName, final String author, final URL gadgetUrl) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void addParticipants(final WaveRef waveName, final String author, final String userWhoAdd,
- final String... newParticipants) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public WaveRef createWave(final String message, final ParticipantId... participants) {
- return createWave(NO_TITLE, message, participants);
- }
-
- @Override
- public WaveRef createWave(@Nonnull final String title, final String message,
- @Nonnull final ParticipantId... participantsArray) {
- return createWave(title, message, WITHOUT_GADGET, participantsArray);
- }
-
- @Override
- public WaveRef createWave(final String title, final String message, final String... participantsArray) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public WaveRef createWave(final String title, final String message, final String waveIdToCopy,
- final URL gadgetUrl, final ParticipantId... participantsArray) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public WaveRef createWave(final String title, final String message, final URL gadgetUrl,
- final ParticipantId... participantsArray) {
- // super.newWave(getWaveDomain(), participantsArray);
- final HashSet<String> parts = new HashSet<String>();
- for (final ParticipantId part : participantsArray) {
- parts.add(part.getAddress());
- }
- final Wavelet wave = newWave(getWaveDomain(), parts);
- return WaveRef.of(wave.getWaveId(), wave.getWaveletId());
- }
-
- @Override
- public void delParticipants(final WaveRef waveName, final String whoDel, final String... participants) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public Wavelet fetchWave(final WaveId waveId, final WaveletId waveletId, final String author) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Wavelet fetchWave(final WaveRef waveRef, final String author) {
- // // Preconditions.checkNotNull(author);
- // RobotAccountData account = null;
- // final String rpcUrl = "http://" + getFrontEndAddress() + "/robot/rpc";
- // try {
- // account = getAccountStore().getAccount(
- // ParticipantId.ofUnsafe(getRobotId() + "@" + getWaveDomain())).asRobot();
- // } catch (final PersistenceException e) {
- // LOG.log(Level.WARNING, "Cannot fetch account data for robot id: " +
- // getRobotId(), e);
- // }
- // if (account != null) {
- // setupOAuth(account.getId().getAddress(), account.getConsumerSecret(),
- // rpcUrl);
- // try {
- // return super.fetchWavelet(waveRef.getWaveId(), waveRef.getWaveletId(),
- // "http://"
- // + getFrontEndAddress() + "/robot/rpc");
- // } catch (final IOException e) {
- // e.printStackTrace();
- // return null;
- // }
- // }
- return null;
- }
-
- @Override
- public String getRobotId() {
- return "kune-agent";
- }
-
- @Override
- protected String getRobotName() {
- return "Kune Agent";
- }
-
- @Override
- public String getRobotUri() {
- return ROBOT_URI;
- }
-
- @Override
- public boolean isParticipant(final Wavelet wavelet, final String user) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public String render(final Wavelet wavelet) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public String render(final WaveRef waveRef, final String author) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public void setGadgetProperty(final WaveRef waveletName, final String author, final URL gadgetUrl,
- final String someProperty, final String someValue) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void setTitle(final WaveRef waveName, final String title, final String author) {
- // TODO Auto-generated method stub
-
- }
-
-}
Deleted: trunk/src/main/java/cc/kune/wave/server/KuneWaveService.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/KuneWaveService.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/wave/server/KuneWaveService.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,68 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.wave.server;
-
-import java.net.URL;
-
-import org.waveprotocol.wave.model.id.WaveId;
-import org.waveprotocol.wave.model.id.WaveletId;
-import org.waveprotocol.wave.model.wave.ParticipantId;
-import org.waveprotocol.wave.model.waveref.WaveRef;
-
-import com.google.wave.api.Wavelet;
-
-public interface KuneWaveService {
- public static final String NO_MESSAGE = "";
- public static final String NO_TITLE = "";
- public static final URL WITHOUT_GADGET = null;
-
- void addGadget(WaveRef waveName, String author, URL gadgetUrl);
-
- void addParticipants(WaveRef waveName, String author, String userWhoAdd, String... newParticipants);
-
- WaveRef createWave(String message, ParticipantId... participants);
-
- WaveRef createWave(String title, String message, ParticipantId... participantsArray);
-
- WaveRef createWave(String title, String message, String... participantsArray);
-
- WaveRef createWave(String title, String message, String waveIdToCopy, URL gadgetUrl,
- ParticipantId... participantsArray);
-
- WaveRef createWave(String title, String message, URL gadgetUrl, ParticipantId... participantsArray);
-
- void delParticipants(WaveRef waveName, String whoDel, String... participants);
-
- Wavelet fetchWave(WaveId waveId, WaveletId waveletId, String author);
-
- Wavelet fetchWave(WaveRef waveRef, String author);
-
- boolean isParticipant(Wavelet wavelet, String user);
-
- String render(Wavelet wavelet);
-
- String render(WaveRef waveRef, String author);
-
- void setGadgetProperty(WaveRef waveletName, String author, URL gadgetUrl, String someProperty,
- String someValue);
-
- void setTitle(WaveRef waveName, String title, String author);
-
-}
Deleted: trunk/src/main/java/cc/kune/wave/server/KuneWaveServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/KuneWaveServiceDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/wave/server/KuneWaveServiceDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,491 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.wave.server;
-
-import java.net.URL;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.TreeSet;
-
-import javax.annotation.Nonnull;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.waveprotocol.box.server.CoreSettings;
-import org.waveprotocol.box.server.robots.OperationContextImpl;
-import org.waveprotocol.box.server.robots.OperationServiceRegistry;
-import org.waveprotocol.box.server.robots.util.ConversationUtil;
-import org.waveprotocol.box.server.robots.util.OperationUtil;
-import org.waveprotocol.box.server.waveserver.WaveletProvider;
-import org.waveprotocol.box.server.waveserver.WaveletProvider.SubmitRequestListener;
-import org.waveprotocol.wave.model.id.InvalidIdException;
-import org.waveprotocol.wave.model.id.WaveId;
-import org.waveprotocol.wave.model.id.WaveletId;
-import org.waveprotocol.wave.model.version.HashedVersion;
-import org.waveprotocol.wave.model.wave.ParticipantId;
-import org.waveprotocol.wave.model.waveref.WaveRef;
-
-import cc.kune.common.shared.utils.TextUtils;
-import cc.kune.core.client.errors.DefaultException;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import com.google.wave.api.Annotation;
-import com.google.wave.api.ApiIdSerializer;
-import com.google.wave.api.Blip;
-import com.google.wave.api.BlipContent;
-import com.google.wave.api.BlipData;
-import com.google.wave.api.BlipThread;
-import com.google.wave.api.Element;
-import com.google.wave.api.ElementType;
-import com.google.wave.api.FormElement;
-import com.google.wave.api.Gadget;
-import com.google.wave.api.Image;
-import com.google.wave.api.JsonRpcConstant.ParamsProperty;
-import com.google.wave.api.JsonRpcResponse;
-import com.google.wave.api.Line;
-import com.google.wave.api.OperationQueue;
-import com.google.wave.api.OperationRequest;
-import com.google.wave.api.OperationRequest.Parameter;
-import com.google.wave.api.Participants;
-import com.google.wave.api.ProtocolVersion;
-import com.google.wave.api.Range;
-import com.google.wave.api.Wavelet;
-import com.google.wave.api.data.converter.EventDataConverterManager;
-import com.google.wave.api.impl.DocumentModifyAction;
-import com.google.wave.api.impl.DocumentModifyAction.BundledAnnotation;
-import com.google.wave.api.impl.DocumentModifyAction.ModifyHow;
-import com.google.wave.api.impl.DocumentModifyQuery;
-import com.google.wave.api.impl.WaveletData;
-import com.google.wave.splash.rpc.ClientAction;
-import com.google.wave.splash.web.template.WaveRenderer;
-
-public class KuneWaveServiceDefault implements KuneWaveService {
- public static final Log LOG = LogFactory.getLog(KuneWaveServiceDefault.class);
-
- // See: DocumentModifyServiceTest
- private static final String NO_ANNOTATION_KEY = null;
- private static final List<BundledAnnotation> NO_BUNDLED_ANNOTATIONS = Collections.emptyList();
- private static final List<String> NO_VALUES = Collections.<String> emptyList();
- private static final String NO_WAVE_TO_COPY = null;
-
- /**
- *
- * Copy blips
- *
- * @param fromBlip
- * @param toBlip
- *
- * @author yurize(a)apache.org (Yuri Zelikov)
- *
- */
- public static void copyWavelet(final Blip fromBlip, final Blip toBlip) {
- for (final BlipContent blipContent : fromBlip.all().values()) {
- toBlip.append(blipContent);
- }
- // Deep copy annotations
- for (final Annotation annotation : fromBlip.getAnnotations()) {
- final Range range = annotation.getRange();
- try {
- toBlip.range(range.getStart() + 1, range.getEnd() + 1).annotate(annotation.getName(),
- annotation.getValue());
- } catch (final IndexOutOfBoundsException e) {
- // Don't copy faulty annotations
- }
- }
- }
-
- public static void copyWaveletElements(final Blip fromBlip, final Blip toBlip) {
- // Deep copy form elements.
- // DocumentModifyService don't permit this:
- // "Can't insert other elements than text and gadgets at the moment");
- for (final Entry<Integer, Element> entry : fromBlip.getElements().entrySet()) {
- final ElementType type = entry.getValue().getType();
- Element result = null;
- if (FormElement.getFormElementTypes().contains(type)) {
- result = new FormElement(type, entry.getValue().getProperties());
- } else if (type == ElementType.GADGET) {
- result = new Gadget(entry.getValue().getProperties());
- } else if (type == ElementType.IMAGE) {
- result = new Image(entry.getValue().getProperties());
- } else if (type == ElementType.LINE) {
- result = new Line(entry.getValue().getProperties());
- } else {
- result = new Element(type, entry.getValue().getProperties());
- }
- toBlip.append(result);
- }
- }
-
- private final ConversationUtil conversationUtil;
- private final EventDataConverterManager converterManager;
- private final String domain;
- private final OperationServiceRegistry operationRegistry;
- private final ParticipantUtils participantUtils;
- private final WaveletProvider waveletProvider;
- private final WaveRenderer waveRenderer;
-
- @Inject
- public KuneWaveServiceDefault(final EventDataConverterManager converterManager,
- @Named("DataApiRegistry") final OperationServiceRegistry operationRegistry,
- final WaveletProvider waveletProvider, final ConversationUtil conversationUtil,
- final ParticipantUtils participantUtils, final WaveRenderer waveRenderer,
- @Named(CoreSettings.WAVE_SERVER_DOMAIN) final String domain) {
- this.converterManager = converterManager;
- this.waveletProvider = waveletProvider;
- this.conversationUtil = conversationUtil;
- this.operationRegistry = operationRegistry;
- this.participantUtils = participantUtils;
- this.waveRenderer = waveRenderer;
- this.domain = domain;
- }
-
- @Override
- public void addGadget(final WaveRef waveName, final String author, final URL gadgetUrl) {
- // See DocumentModifyServiceTest
- final List<Element> elementsIn = Lists.newArrayListWithCapacity(1);
- final Map<String, String> properties = Maps.newHashMap();
- properties.put(Gadget.URL, gadgetUrl.toString());
- properties.put(Gadget.AUTHOR, participantUtils.of(author).getAddress());
- final Gadget gadget = new Gadget(properties);
-
- elementsIn.add(gadget);
- final Wavelet wavelet = fetchWave(waveName, author);
- final OperationQueue opQueue = new OperationQueue();
- final Blip rootBlip = wavelet.getRootBlip();
-
- final OperationRequest operationRequest = opQueue.modifyDocument(rootBlip);
- operationRequest.addParameter(Parameter.of(ParamsProperty.MODIFY_ACTION, new DocumentModifyAction(
- ModifyHow.INSERT, NO_VALUES, NO_ANNOTATION_KEY, elementsIn, NO_BUNDLED_ANNOTATIONS, false)));
- operationRequest.addParameter(Parameter.of(ParamsProperty.INDEX, 1));
- doOperation(author, opQueue, "add gadget");
- }
-
- @Override
- public void addParticipants(final WaveRef waveName, final String author, final String userWhoAdds,
- final String... newLocalParticipants) {
- final Wavelet wavelet = fetchWave(waveName, author);
- final Participants currentParticipants = wavelet.getParticipants();
- // Removing duplicates
- for (final String participant : toSet(newLocalParticipants)) {
- final String newPartWithDomain = participantUtils.of(participant).toString();
- if (!currentParticipants.contains(newPartWithDomain)) {
- // FIXME This is very costly. Seems like only one participant per
- // opQueue is added (try to
- // fix this in WAVE)
- final OperationQueue opQueue = new OperationQueue();
- LOG.debug("Adding as participant: " + newPartWithDomain);
- opQueue.addParticipantToWavelet(wavelet, newPartWithDomain);
- final String whoAdd = wavelet.getParticipants().contains(participantUtils.of(userWhoAdds)) ? userWhoAdds
- : author;
- doOperation(whoAdd, opQueue, "add participant");
- }
- }
- }
-
- @Override
- public WaveRef createWave(final String message, final ParticipantId... participants) {
- return createWave(NO_TITLE, message, participants);
- }
-
- @Override
- public WaveRef createWave(@Nonnull final String title, final String message,
- @Nonnull final ParticipantId... participantsArray) {
- return createWave(title, message, WITHOUT_GADGET, participantsArray);
- }
-
- @Override
- public WaveRef createWave(final String title, final String message, final String... participantsArray) {
- return createWave(title, message, participantUtils.listFrom(participantsArray));
- }
-
- @Override
- public WaveRef createWave(@Nonnull final String title, final String message,
- final String waveIdToCopy, final URL gadgetUrl, @Nonnull final ParticipantId... participantsArray) {
- String newWaveId = null;
- String newWaveletId = null;
- final Set<String> participants = new HashSet<String>();
- for (final ParticipantId participant : participantsArray) {
- participants.add(participant.toString());
- }
- final ParticipantId user = participantsArray[0];
- final OperationQueue opQueue = new OperationQueue();
- final Wavelet newWavelet = opQueue.createWavelet(domain, participants);
- opQueue.setTitleOfWavelet(newWavelet, title);
- final Blip rootBlip = newWavelet.getRootBlip();
- rootBlip.append(new com.google.wave.api.Markup(message).getText());
-
- if (waveIdToCopy != NO_WAVE_TO_COPY && TextUtils.notEmpty(waveIdToCopy)) {
- try {
- WaveId copyWaveId;
- copyWaveId = WaveId.ofChecked(domain, waveIdToCopy);
- final Wavelet waveletToCopy = fetchWave(copyWaveId, WaveletId.of(domain, "conv+root"),
- participantsArray[0].toString());
- if (waveletToCopy != null) {
- copyWavelet(waveletToCopy.getRootBlip(), rootBlip);
- }
- } catch (final InvalidIdException e) {
- LOG.error("Error copying wave content", e);
- } catch (final DefaultException e2) {
- LOG.error("Error copying wave content", e2);
- }
- }
-
- if (gadgetUrl != WITHOUT_GADGET) {
- final Gadget gadget = new Gadget(gadgetUrl.toString());
- rootBlip.append(gadget);
- }
-
- final OperationContextImpl context = new OperationContextImpl(waveletProvider,
- converterManager.getEventDataConverter(ProtocolVersion.DEFAULT), conversationUtil);
- for (final OperationRequest req : opQueue.getPendingOperations()) {
- OperationUtil.executeOperation(req, operationRegistry, context, user);
- final String reqId = req.getId();
- final JsonRpcResponse response = context.getResponse(reqId);
- if (response != null) {
- if (response.isError()) {
- onFailure(context.getResponse(reqId).getErrorMessage());
- } else {
- final Object responseWaveId = response.getData().get(ParamsProperty.WAVE_ID);
- final Object responseWaveletId = response.getData().get(ParamsProperty.WAVELET_ID);
- if (responseWaveId != null && responseWaveletId != null) {
- // This is serialized use
- // ApiIdSerializer.instance().deserialiseWaveId (see
- // WaveService)
- newWaveId = (String) responseWaveId;
- newWaveletId = (String) responseWaveletId;
- }
- }
- }
- }
- OperationUtil.submitDeltas(context, waveletProvider, new SubmitRequestListener() {
- @Override
- public void onFailure(final String arg0) {
- KuneWaveServiceDefault.this.onFailure("Wave creation failed, onFailure: " + arg0);
- }
-
- @Override
- public void onSuccess(final int arg0, final HashedVersion arg1, final long arg2) {
- LOG.info("Wave creation success: " + arg1);
- }
- });
- LOG.info("WaveId: " + newWaveId + " waveletId: " + newWaveletId);
- WaveRef wavename;
- try {
- wavename = WaveRef.of(ApiIdSerializer.instance().deserialiseWaveId(newWaveId),
- ApiIdSerializer.instance().deserialiseWaveletId(newWaveletId));
- } catch (final InvalidIdException e) {
- throw new DefaultException("Error getting wave id");
- }
- return wavename;
- }
-
- @Override
- public WaveRef createWave(@Nonnull final String title, final String message, final URL gadgetUrl,
- @Nonnull final ParticipantId... participantsArray) {
- return createWave(title, message, NO_WAVE_TO_COPY, gadgetUrl, participantsArray);
- }
-
- @Override
- public void delParticipants(final WaveRef waveName, final String whoDel,
- final String... participantsToDel) {
- final Wavelet wavelet = fetchWave(waveName, whoDel);
- final Participants currentParticipants = wavelet.getParticipants();
- final Set<String> set = toSet(participantsToDel);
- LOG.debug("Removing participants: " + set.toString());
- for (final String participant : set) {
- // FIXME Seems like only one participant per opQueue is added (try to fix
- // this in WAVE)
- final String partWithDomain = participantUtils.of(participant).toString();
- if (currentParticipants.contains(partWithDomain)) {
- final OperationQueue opQueue = new OperationQueue();
- LOG.debug("Removing as participant: " + partWithDomain);
- opQueue.removeParticipantFromWavelet(wavelet, partWithDomain);
- doOperation(whoDel, opQueue, "del participant");
- }
- }
- }
-
- private void doOperation(final String author, final OperationQueue opQueue, final String logComment) {
- // FIXME: do here a callback!!!
- final OperationContextImpl context = new OperationContextImpl(waveletProvider,
- converterManager.getEventDataConverter(ProtocolVersion.DEFAULT), conversationUtil);
- for (final OperationRequest request : opQueue.getPendingOperations()) {
- // final OperationRequest request = opQueue.getPendingOperations().get(0);
- OperationUtil.executeOperation(request, operationRegistry, context, participantUtils.of(author));
- final String reqId = request.getId();
- final JsonRpcResponse response = context.getResponse(reqId);
- if (response != null && response.isError()) {
- onFailure(context.getResponse(reqId).getErrorMessage());
- }
- OperationUtil.submitDeltas(context, waveletProvider, new SubmitRequestListener() {
- @Override
- public void onFailure(final String arg0) {
- KuneWaveServiceDefault.this.onFailure("Wave " + logComment + " failed, onFailure: " + arg0);
- }
-
- @Override
- public void onSuccess(final int arg0, final HashedVersion arg1, final long arg2) {
- LOG.info("Wave " + logComment + " success: " + arg1);
- }
- });
- }
- }
-
- public void doOperations(final WaveRef waveName, final String author, final OperationQueue opQueue,
- final SubmitRequestListener listener) {
- final OperationContextImpl context = new OperationContextImpl(waveletProvider,
- converterManager.getEventDataConverter(ProtocolVersion.DEFAULT), conversationUtil);
- for (final OperationRequest req : opQueue.getPendingOperations()) {
- OperationUtil.executeOperation(req, operationRegistry, context, participantUtils.of(author));
- }
- OperationUtil.submitDeltas(context, waveletProvider, listener);
- }
-
- @Override
- public Wavelet fetchWave(final WaveId waveId, final WaveletId waveletId, final String author) {
- final OperationQueue opQueue = new OperationQueue();
- opQueue.fetchWavelet(waveId, waveletId);
- Wavelet wavelet = null;
- final OperationContextImpl context = new OperationContextImpl(waveletProvider,
- converterManager.getEventDataConverter(ProtocolVersion.DEFAULT), conversationUtil);
- final OperationRequest request = opQueue.getPendingOperations().get(0);
- OperationUtil.executeOperation(request, operationRegistry, context, participantUtils.of(author));
- final String reqId = request.getId();
- final JsonRpcResponse response = context.getResponse(reqId);
- if (response != null && response.isError()) {
- onFailure(context.getResponse(reqId).getErrorMessage());
- } else {
- // Duplicate code from WaveService
- assert response != null;
- final WaveletData waveletData = (WaveletData) response.getData().get(ParamsProperty.WAVELET_DATA);
- final Map<String, Blip> blips = new HashMap<String, Blip>();
- final Map<String, BlipThread> threads = new HashMap<String, BlipThread>();
- wavelet = Wavelet.deserialize(opQueue, blips, threads, waveletData);
-
- // Deserialize threads.
- @SuppressWarnings("unchecked")
- final Map<String, BlipThread> tempThreads = (Map<String, BlipThread>) response.getData().get(
- ParamsProperty.THREADS);
- for (final Map.Entry<String, BlipThread> entry : tempThreads.entrySet()) {
- final BlipThread thread = entry.getValue();
- threads.put(entry.getKey(),
- new BlipThread(thread.getId(), thread.getLocation(), thread.getBlipIds(), blips));
- }
-
- // Deserialize blips.
- @SuppressWarnings("unchecked")
- final Map<String, BlipData> blipDatas = (Map<String, BlipData>) response.getData().get(
- ParamsProperty.BLIPS);
- for (final Map.Entry<String, BlipData> entry : blipDatas.entrySet()) {
- blips.put(entry.getKey(), Blip.deserialize(opQueue, wavelet, entry.getValue()));
- }
- }
- return wavelet;
- }
-
- @Override
- public Wavelet fetchWave(final WaveRef waveName, final String author) {
- final WaveId waveId = waveName.getWaveId();
- final WaveletId waveletId = waveName.getWaveletId();
- return fetchWave(waveId, waveletId, author);
- }
-
- @Override
- public boolean isParticipant(final Wavelet wavelet, final String user) {
- return wavelet.getParticipants().contains(participantUtils.of(user).toString());
- }
-
- private void onFailure(final String message) {
- final String errorMsg = TextUtils.notEmpty(message) ? message : "Wave operation failed";
- LOG.error(errorMsg);
- throw new DefaultException(errorMsg);
- }
-
- @Override
- public String render(final Wavelet wavelet) {
- final ClientAction clientPage = waveRenderer.render(wavelet, 0);
- final String html = clientPage.getHtml();
- return html;
- }
-
- @Override
- public String render(final WaveRef waveRef, final String author) {
- return render(fetchWave(waveRef, author));
- }
-
- @Override
- public void setGadgetProperty(final WaveRef waveletName, final String author, final URL gadgetUrl,
- final String someProperty, final String someValue) {
- // See BlipContentRefs DocumentModifyService
- final Wavelet wavelet = fetchWave(waveletName, author);
- // FIXME
- final OperationQueue opQueue = new OperationQueue();
- final Blip rootBlip = wavelet.getRootBlip();
- for (final Element elem : rootBlip.getElements().values()) {
- if (elem.isGadget()) {
- final Map<String, String> properties = elem.getProperties();
- if (properties.get(Gadget.URL).equals(gadgetUrl.toString())) {
- // This is the gadget we want to modify (the first of that type)
- final List<Element> updatedElementsIn = Lists.newArrayListWithCapacity(1);
- properties.put(someProperty, someValue);
- // properties.put(propertyNameToDelete, null);
- final Gadget gadget = (Gadget) elem;
- gadget.setProperty(someProperty, someValue);
- // updatedElementsIn.add(new Gadget(properties));
- updatedElementsIn.add(gadget);
- final OperationRequest operationRequest = opQueue.modifyDocument(rootBlip);
- operationRequest.addParameter(Parameter.of(ParamsProperty.MODIFY_ACTION,
- new DocumentModifyAction(ModifyHow.UPDATE_ELEMENT, NO_VALUES, NO_ANNOTATION_KEY,
- updatedElementsIn, NO_BUNDLED_ANNOTATIONS, false)));
- operationRequest.addParameter(Parameter.of(
- ParamsProperty.MODIFY_QUERY,
- new DocumentModifyQuery(ElementType.GADGET, ImmutableMap.of(Gadget.URL,
- gadgetUrl.toString()), 1)));
- doOperation(author, opQueue, "set gadget property");
- break;
- }
- }
- }
- }
-
- @Override
- public void setTitle(final WaveRef waveName, final String title, final String author) {
- final Wavelet wavelet = fetchWave(waveName, author);
- final OperationQueue opQueue = new OperationQueue();
- opQueue.setTitleOfWavelet(wavelet, title);
- doOperation(author, opQueue, "set title");
- }
-
- private Set<String> toSet(final String[] array) {
- final Set<String> set = new TreeSet<String>(Collections.reverseOrder());
- set.addAll(Arrays.asList(array));
- return set;
- }
-}
Deleted: trunk/src/main/java/cc/kune/wave/server/WaveEmailNotifier.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/WaveEmailNotifier.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/cc/kune/wave/server/WaveEmailNotifier.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,84 +0,0 @@
-package cc.kune.wave.server;
-
-import javax.persistence.NoResultException;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.waveprotocol.box.common.DeltaSequence;
-import org.waveprotocol.box.server.waveserver.WaveBus;
-import org.waveprotocol.box.server.waveserver.WaveBus.Subscriber;
-import org.waveprotocol.wave.model.id.IdUtil;
-import org.waveprotocol.wave.model.id.WaveletId;
-import org.waveprotocol.wave.model.id.WaveletName;
-import org.waveprotocol.wave.model.operation.wave.AddParticipant;
-import org.waveprotocol.wave.model.operation.wave.TransformedWaveletDelta;
-import org.waveprotocol.wave.model.operation.wave.WaveletBlipOperation;
-import org.waveprotocol.wave.model.operation.wave.WaveletOperation;
-import org.waveprotocol.wave.model.version.HashedVersion;
-import org.waveprotocol.wave.model.wave.ParticipantId;
-import org.waveprotocol.wave.model.wave.data.ReadableWaveletData;
-import org.waveprotocol.wave.model.waveref.WaveRef;
-
-import cc.kune.core.server.LogThis;
-import cc.kune.core.server.mail.FormatedString;
-import cc.kune.core.server.notifier.NotifySender;
-import cc.kune.core.server.notifier.NotifyType;
-import cc.kune.core.server.notifier.UsersOnline;
-import cc.kune.core.server.properties.KuneBasicProperties;
-import cc.kune.domain.User;
-import cc.kune.domain.finders.UserFinder;
-
-import com.google.inject.Inject;
-
-@LogThis
-public class WaveEmailNotifier {
- public static final Log LOG = LogFactory.getLog(WaveEmailNotifier.class);
-
- @Inject
- public WaveEmailNotifier(final WaveBus waveBus, final NotifySender notifyService,
- final UsersOnline usersOnline, final KuneBasicProperties basicProperties,
- final ParticipantUtils partUtils, final UserFinder userFinder) {
- waveBus.subscribe(new Subscriber() {
- @Override
- public void waveletCommitted(final WaveletName waveletName, final HashedVersion version) {
- }
-
- @Override
- public void waveletUpdate(final ReadableWaveletData wavelet, final DeltaSequence deltas) {
- final WaveletId waveletId = wavelet.getWaveletId();
- if (IdUtil.isUserDataWavelet(waveletId)) {
- return;
- }
- for (final TransformedWaveletDelta delta : deltas) {
- for (final WaveletOperation op : delta) {
- if (op instanceof AddParticipant) {
- final ParticipantId participant = ((AddParticipant) op).getParticipantId();
- final String url = KuneWaveUtils.getUrl(WaveRef.of(wavelet.getWaveId(), waveletId));
- final FormatedString body = FormatedString.build(
- "Hi there,<br><br>You have a new message in %s. <a href=\"%s#%s\">Read more</a>.<br>",
- basicProperties.getSiteCommonName(), basicProperties.getSiteUrl(), url);
- final String address = participant.getAddress();
- if (partUtils.isLocal(address)) {
- final String userName = partUtils.getAddressName(address);
- // FIXME only for testing
- try {
- final User user = userFinder.findByShortName(userName);
- if (true || !usersOnline.isLogged(userName)) {
- notifyService.send(NotifyType.email, FormatedString.build("You have a new message"),
- body, true, user);
- notifyService.send(NotifyType.chat, FormatedString.build("New message"), body, true,
- user);
- }
- } catch (final NoResultException e) {
- // Seems is not a local user
- }
- }
- } else if (op instanceof WaveletBlipOperation) {
-
- }
- }
- }
- }
- });
- }
-}
Copied: trunk/src/main/java/cc/kune/wave/server/kspecific/KuneAgent.java (from rev 1655, trunk/src/main/java/cc/kune/wave/server/KuneAgent.java)
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/kspecific/KuneAgent.java (rev 0)
+++ trunk/src/main/java/cc/kune/wave/server/kspecific/KuneAgent.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,193 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.wave.server.kspecific;
+
+import java.net.URL;
+import java.util.HashSet;
+import java.util.logging.Logger;
+
+import javax.annotation.Nonnull;
+
+import org.waveprotocol.box.server.robots.agent.AbstractBaseRobotAgent;
+import org.waveprotocol.wave.model.id.WaveId;
+import org.waveprotocol.wave.model.id.WaveletId;
+import org.waveprotocol.wave.model.wave.ParticipantId;
+import org.waveprotocol.wave.model.waveref.WaveRef;
+
+import com.google.inject.Inject;
+import com.google.inject.Injector;
+import com.google.inject.Singleton;
+import com.google.wave.api.Wavelet;
+
+@SuppressWarnings("serial")
+@Singleton
+public class KuneAgent extends AbstractBaseRobotAgent implements KuneWaveService {
+
+ private static final Logger LOG = Logger.getLogger(KuneAgent.class.getName());
+
+ private static final String NO_TITLE = "";
+ public static final String ROBOT_URI = AGENT_PREFIX_URI + "/kune-agent";
+
+ @Inject
+ public KuneAgent(final Injector injector) {
+ super(injector);
+ }
+
+ // public KuneAgent(final String waveDomain, final AccountStore accountStore,
+ // final TokenGenerator tokenGenerator, final ServerFrontendAddressHolder
+ // frontendAddressHolder) {
+ // super(waveDomain, accountStore, tokenGenerator, frontendAddressHolder);
+ // }
+
+ @Override
+ public void addGadget(final WaveRef waveName, final String author, final URL gadgetUrl) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void addParticipants(final WaveRef waveName, final String author, final String userWhoAdd,
+ final String... newParticipants) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public WaveRef createWave(final String message, final ParticipantId... participants) {
+ return createWave(NO_TITLE, message, participants);
+ }
+
+ @Override
+ public WaveRef createWave(@Nonnull final String title, final String message,
+ @Nonnull final ParticipantId... participantsArray) {
+ return createWave(title, message, WITHOUT_GADGET, participantsArray);
+ }
+
+ @Override
+ public WaveRef createWave(final String title, final String message, final String... participantsArray) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public WaveRef createWave(final String title, final String message, final String waveIdToCopy,
+ final URL gadgetUrl, final ParticipantId... participantsArray) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public WaveRef createWave(final String title, final String message, final URL gadgetUrl,
+ final ParticipantId... participantsArray) {
+ // super.newWave(getWaveDomain(), participantsArray);
+ final HashSet<String> parts = new HashSet<String>();
+ for (final ParticipantId part : participantsArray) {
+ parts.add(part.getAddress());
+ }
+ final Wavelet wave = newWave(getWaveDomain(), parts);
+ return WaveRef.of(wave.getWaveId(), wave.getWaveletId());
+ }
+
+ @Override
+ public void delParticipants(final WaveRef waveName, final String whoDel, final String... participants) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public Wavelet fetchWave(final WaveId waveId, final WaveletId waveletId, final String author) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Wavelet fetchWave(final WaveRef waveRef, final String author) {
+ // // Preconditions.checkNotNull(author);
+ // RobotAccountData account = null;
+ // final String rpcUrl = "http://" + getFrontEndAddress() + "/robot/rpc";
+ // try {
+ // account = getAccountStore().getAccount(
+ // ParticipantId.ofUnsafe(getRobotId() + "@" + getWaveDomain())).asRobot();
+ // } catch (final PersistenceException e) {
+ // LOG.log(Level.WARNING, "Cannot fetch account data for robot id: " +
+ // getRobotId(), e);
+ // }
+ // if (account != null) {
+ // setupOAuth(account.getId().getAddress(), account.getConsumerSecret(),
+ // rpcUrl);
+ // try {
+ // return super.fetchWavelet(waveRef.getWaveId(), waveRef.getWaveletId(),
+ // "http://"
+ // + getFrontEndAddress() + "/robot/rpc");
+ // } catch (final IOException e) {
+ // e.printStackTrace();
+ // return null;
+ // }
+ // }
+ return null;
+ }
+
+ @Override
+ public String getRobotId() {
+ return "kune-agent";
+ }
+
+ @Override
+ protected String getRobotName() {
+ return "Kune Agent";
+ }
+
+ @Override
+ public String getRobotUri() {
+ return ROBOT_URI;
+ }
+
+ @Override
+ public boolean isParticipant(final Wavelet wavelet, final String user) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public String render(final Wavelet wavelet) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public String render(final WaveRef waveRef, final String author) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setGadgetProperty(final WaveRef waveletName, final String author, final URL gadgetUrl,
+ final String someProperty, final String someValue) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setTitle(final WaveRef waveName, final String title, final String author) {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Copied: trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveService.java (from rev 1655, trunk/src/main/java/cc/kune/wave/server/KuneWaveService.java)
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveService.java (rev 0)
+++ trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveService.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,68 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.wave.server.kspecific;
+
+import java.net.URL;
+
+import org.waveprotocol.wave.model.id.WaveId;
+import org.waveprotocol.wave.model.id.WaveletId;
+import org.waveprotocol.wave.model.wave.ParticipantId;
+import org.waveprotocol.wave.model.waveref.WaveRef;
+
+import com.google.wave.api.Wavelet;
+
+public interface KuneWaveService {
+ public static final String NO_MESSAGE = "";
+ public static final String NO_TITLE = "";
+ public static final URL WITHOUT_GADGET = null;
+
+ void addGadget(WaveRef waveName, String author, URL gadgetUrl);
+
+ void addParticipants(WaveRef waveName, String author, String userWhoAdd, String... newParticipants);
+
+ WaveRef createWave(String message, ParticipantId... participants);
+
+ WaveRef createWave(String title, String message, ParticipantId... participantsArray);
+
+ WaveRef createWave(String title, String message, String... participantsArray);
+
+ WaveRef createWave(String title, String message, String waveIdToCopy, URL gadgetUrl,
+ ParticipantId... participantsArray);
+
+ WaveRef createWave(String title, String message, URL gadgetUrl, ParticipantId... participantsArray);
+
+ void delParticipants(WaveRef waveName, String whoDel, String... participants);
+
+ Wavelet fetchWave(WaveId waveId, WaveletId waveletId, String author);
+
+ Wavelet fetchWave(WaveRef waveRef, String author);
+
+ boolean isParticipant(Wavelet wavelet, String user);
+
+ String render(Wavelet wavelet);
+
+ String render(WaveRef waveRef, String author);
+
+ void setGadgetProperty(WaveRef waveletName, String author, URL gadgetUrl, String someProperty,
+ String someValue);
+
+ void setTitle(WaveRef waveName, String title, String author);
+
+}
Copied: trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveServiceDefault.java (from rev 1655, trunk/src/main/java/cc/kune/wave/server/KuneWaveServiceDefault.java)
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveServiceDefault.java (rev 0)
+++ trunk/src/main/java/cc/kune/wave/server/kspecific/KuneWaveServiceDefault.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,492 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.wave.server.kspecific;
+
+import java.net.URL;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.TreeSet;
+
+import javax.annotation.Nonnull;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.waveprotocol.box.server.CoreSettings;
+import org.waveprotocol.box.server.robots.OperationContextImpl;
+import org.waveprotocol.box.server.robots.OperationServiceRegistry;
+import org.waveprotocol.box.server.robots.util.ConversationUtil;
+import org.waveprotocol.box.server.robots.util.OperationUtil;
+import org.waveprotocol.box.server.waveserver.WaveletProvider;
+import org.waveprotocol.box.server.waveserver.WaveletProvider.SubmitRequestListener;
+import org.waveprotocol.wave.model.id.InvalidIdException;
+import org.waveprotocol.wave.model.id.WaveId;
+import org.waveprotocol.wave.model.id.WaveletId;
+import org.waveprotocol.wave.model.version.HashedVersion;
+import org.waveprotocol.wave.model.wave.ParticipantId;
+import org.waveprotocol.wave.model.waveref.WaveRef;
+
+import cc.kune.common.shared.utils.TextUtils;
+import cc.kune.core.client.errors.DefaultException;
+import cc.kune.wave.server.ParticipantUtils;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+import com.google.wave.api.Annotation;
+import com.google.wave.api.ApiIdSerializer;
+import com.google.wave.api.Blip;
+import com.google.wave.api.BlipContent;
+import com.google.wave.api.BlipData;
+import com.google.wave.api.BlipThread;
+import com.google.wave.api.Element;
+import com.google.wave.api.ElementType;
+import com.google.wave.api.FormElement;
+import com.google.wave.api.Gadget;
+import com.google.wave.api.Image;
+import com.google.wave.api.JsonRpcConstant.ParamsProperty;
+import com.google.wave.api.JsonRpcResponse;
+import com.google.wave.api.Line;
+import com.google.wave.api.OperationQueue;
+import com.google.wave.api.OperationRequest;
+import com.google.wave.api.OperationRequest.Parameter;
+import com.google.wave.api.Participants;
+import com.google.wave.api.ProtocolVersion;
+import com.google.wave.api.Range;
+import com.google.wave.api.Wavelet;
+import com.google.wave.api.data.converter.EventDataConverterManager;
+import com.google.wave.api.impl.DocumentModifyAction;
+import com.google.wave.api.impl.DocumentModifyAction.BundledAnnotation;
+import com.google.wave.api.impl.DocumentModifyAction.ModifyHow;
+import com.google.wave.api.impl.DocumentModifyQuery;
+import com.google.wave.api.impl.WaveletData;
+import com.google.wave.splash.rpc.ClientAction;
+import com.google.wave.splash.web.template.WaveRenderer;
+
+public class KuneWaveServiceDefault implements KuneWaveService {
+ public static final Log LOG = LogFactory.getLog(KuneWaveServiceDefault.class);
+
+ // See: DocumentModifyServiceTest
+ private static final String NO_ANNOTATION_KEY = null;
+ private static final List<BundledAnnotation> NO_BUNDLED_ANNOTATIONS = Collections.emptyList();
+ private static final List<String> NO_VALUES = Collections.<String> emptyList();
+ private static final String NO_WAVE_TO_COPY = null;
+
+ /**
+ *
+ * Copy blips
+ *
+ * @param fromBlip
+ * @param toBlip
+ *
+ * @author yurize(a)apache.org (Yuri Zelikov)
+ *
+ */
+ public static void copyWavelet(final Blip fromBlip, final Blip toBlip) {
+ for (final BlipContent blipContent : fromBlip.all().values()) {
+ toBlip.append(blipContent);
+ }
+ // Deep copy annotations
+ for (final Annotation annotation : fromBlip.getAnnotations()) {
+ final Range range = annotation.getRange();
+ try {
+ toBlip.range(range.getStart() + 1, range.getEnd() + 1).annotate(annotation.getName(),
+ annotation.getValue());
+ } catch (final IndexOutOfBoundsException e) {
+ // Don't copy faulty annotations
+ }
+ }
+ }
+
+ public static void copyWaveletElements(final Blip fromBlip, final Blip toBlip) {
+ // Deep copy form elements.
+ // DocumentModifyService don't permit this:
+ // "Can't insert other elements than text and gadgets at the moment");
+ for (final Entry<Integer, Element> entry : fromBlip.getElements().entrySet()) {
+ final ElementType type = entry.getValue().getType();
+ Element result = null;
+ if (FormElement.getFormElementTypes().contains(type)) {
+ result = new FormElement(type, entry.getValue().getProperties());
+ } else if (type == ElementType.GADGET) {
+ result = new Gadget(entry.getValue().getProperties());
+ } else if (type == ElementType.IMAGE) {
+ result = new Image(entry.getValue().getProperties());
+ } else if (type == ElementType.LINE) {
+ result = new Line(entry.getValue().getProperties());
+ } else {
+ result = new Element(type, entry.getValue().getProperties());
+ }
+ toBlip.append(result);
+ }
+ }
+
+ private final ConversationUtil conversationUtil;
+ private final EventDataConverterManager converterManager;
+ private final String domain;
+ private final OperationServiceRegistry operationRegistry;
+ private final ParticipantUtils participantUtils;
+ private final WaveletProvider waveletProvider;
+ private final WaveRenderer waveRenderer;
+
+ @Inject
+ public KuneWaveServiceDefault(final EventDataConverterManager converterManager,
+ @Named("DataApiRegistry") final OperationServiceRegistry operationRegistry,
+ final WaveletProvider waveletProvider, final ConversationUtil conversationUtil,
+ final ParticipantUtils participantUtils, final WaveRenderer waveRenderer,
+ @Named(CoreSettings.WAVE_SERVER_DOMAIN) final String domain) {
+ this.converterManager = converterManager;
+ this.waveletProvider = waveletProvider;
+ this.conversationUtil = conversationUtil;
+ this.operationRegistry = operationRegistry;
+ this.participantUtils = participantUtils;
+ this.waveRenderer = waveRenderer;
+ this.domain = domain;
+ }
+
+ @Override
+ public void addGadget(final WaveRef waveName, final String author, final URL gadgetUrl) {
+ // See DocumentModifyServiceTest
+ final List<Element> elementsIn = Lists.newArrayListWithCapacity(1);
+ final Map<String, String> properties = Maps.newHashMap();
+ properties.put(Gadget.URL, gadgetUrl.toString());
+ properties.put(Gadget.AUTHOR, participantUtils.of(author).getAddress());
+ final Gadget gadget = new Gadget(properties);
+
+ elementsIn.add(gadget);
+ final Wavelet wavelet = fetchWave(waveName, author);
+ final OperationQueue opQueue = new OperationQueue();
+ final Blip rootBlip = wavelet.getRootBlip();
+
+ final OperationRequest operationRequest = opQueue.modifyDocument(rootBlip);
+ operationRequest.addParameter(Parameter.of(ParamsProperty.MODIFY_ACTION, new DocumentModifyAction(
+ ModifyHow.INSERT, NO_VALUES, NO_ANNOTATION_KEY, elementsIn, NO_BUNDLED_ANNOTATIONS, false)));
+ operationRequest.addParameter(Parameter.of(ParamsProperty.INDEX, 1));
+ doOperation(author, opQueue, "add gadget");
+ }
+
+ @Override
+ public void addParticipants(final WaveRef waveName, final String author, final String userWhoAdds,
+ final String... newLocalParticipants) {
+ final Wavelet wavelet = fetchWave(waveName, author);
+ final Participants currentParticipants = wavelet.getParticipants();
+ // Removing duplicates
+ for (final String participant : toSet(newLocalParticipants)) {
+ final String newPartWithDomain = participantUtils.of(participant).toString();
+ if (!currentParticipants.contains(newPartWithDomain)) {
+ // FIXME This is very costly. Seems like only one participant per
+ // opQueue is added (try to
+ // fix this in WAVE)
+ final OperationQueue opQueue = new OperationQueue();
+ LOG.debug("Adding as participant: " + newPartWithDomain);
+ opQueue.addParticipantToWavelet(wavelet, newPartWithDomain);
+ final String whoAdd = wavelet.getParticipants().contains(participantUtils.of(userWhoAdds)) ? userWhoAdds
+ : author;
+ doOperation(whoAdd, opQueue, "add participant");
+ }
+ }
+ }
+
+ @Override
+ public WaveRef createWave(final String message, final ParticipantId... participants) {
+ return createWave(NO_TITLE, message, participants);
+ }
+
+ @Override
+ public WaveRef createWave(@Nonnull final String title, final String message,
+ @Nonnull final ParticipantId... participantsArray) {
+ return createWave(title, message, WITHOUT_GADGET, participantsArray);
+ }
+
+ @Override
+ public WaveRef createWave(final String title, final String message, final String... participantsArray) {
+ return createWave(title, message, participantUtils.listFrom(participantsArray));
+ }
+
+ @Override
+ public WaveRef createWave(@Nonnull final String title, final String message,
+ final String waveIdToCopy, final URL gadgetUrl, @Nonnull final ParticipantId... participantsArray) {
+ String newWaveId = null;
+ String newWaveletId = null;
+ final Set<String> participants = new HashSet<String>();
+ for (final ParticipantId participant : participantsArray) {
+ participants.add(participant.toString());
+ }
+ final ParticipantId user = participantsArray[0];
+ final OperationQueue opQueue = new OperationQueue();
+ final Wavelet newWavelet = opQueue.createWavelet(domain, participants);
+ opQueue.setTitleOfWavelet(newWavelet, title);
+ final Blip rootBlip = newWavelet.getRootBlip();
+ rootBlip.append(new com.google.wave.api.Markup(message).getText());
+
+ if (waveIdToCopy != NO_WAVE_TO_COPY && TextUtils.notEmpty(waveIdToCopy)) {
+ try {
+ WaveId copyWaveId;
+ copyWaveId = WaveId.ofChecked(domain, waveIdToCopy);
+ final Wavelet waveletToCopy = fetchWave(copyWaveId, WaveletId.of(domain, "conv+root"),
+ participantsArray[0].toString());
+ if (waveletToCopy != null) {
+ copyWavelet(waveletToCopy.getRootBlip(), rootBlip);
+ }
+ } catch (final InvalidIdException e) {
+ LOG.error("Error copying wave content", e);
+ } catch (final DefaultException e2) {
+ LOG.error("Error copying wave content", e2);
+ }
+ }
+
+ if (gadgetUrl != WITHOUT_GADGET) {
+ final Gadget gadget = new Gadget(gadgetUrl.toString());
+ rootBlip.append(gadget);
+ }
+
+ final OperationContextImpl context = new OperationContextImpl(waveletProvider,
+ converterManager.getEventDataConverter(ProtocolVersion.DEFAULT), conversationUtil);
+ for (final OperationRequest req : opQueue.getPendingOperations()) {
+ OperationUtil.executeOperation(req, operationRegistry, context, user);
+ final String reqId = req.getId();
+ final JsonRpcResponse response = context.getResponse(reqId);
+ if (response != null) {
+ if (response.isError()) {
+ onFailure(context.getResponse(reqId).getErrorMessage());
+ } else {
+ final Object responseWaveId = response.getData().get(ParamsProperty.WAVE_ID);
+ final Object responseWaveletId = response.getData().get(ParamsProperty.WAVELET_ID);
+ if (responseWaveId != null && responseWaveletId != null) {
+ // This is serialized use
+ // ApiIdSerializer.instance().deserialiseWaveId (see
+ // WaveService)
+ newWaveId = (String) responseWaveId;
+ newWaveletId = (String) responseWaveletId;
+ }
+ }
+ }
+ }
+ OperationUtil.submitDeltas(context, waveletProvider, new SubmitRequestListener() {
+ @Override
+ public void onFailure(final String arg0) {
+ KuneWaveServiceDefault.this.onFailure("Wave creation failed, onFailure: " + arg0);
+ }
+
+ @Override
+ public void onSuccess(final int arg0, final HashedVersion arg1, final long arg2) {
+ LOG.info("Wave creation success: " + arg1);
+ }
+ });
+ LOG.info("WaveId: " + newWaveId + " waveletId: " + newWaveletId);
+ WaveRef wavename;
+ try {
+ wavename = WaveRef.of(ApiIdSerializer.instance().deserialiseWaveId(newWaveId),
+ ApiIdSerializer.instance().deserialiseWaveletId(newWaveletId));
+ } catch (final InvalidIdException e) {
+ throw new DefaultException("Error getting wave id");
+ }
+ return wavename;
+ }
+
+ @Override
+ public WaveRef createWave(@Nonnull final String title, final String message, final URL gadgetUrl,
+ @Nonnull final ParticipantId... participantsArray) {
+ return createWave(title, message, NO_WAVE_TO_COPY, gadgetUrl, participantsArray);
+ }
+
+ @Override
+ public void delParticipants(final WaveRef waveName, final String whoDel,
+ final String... participantsToDel) {
+ final Wavelet wavelet = fetchWave(waveName, whoDel);
+ final Participants currentParticipants = wavelet.getParticipants();
+ final Set<String> set = toSet(participantsToDel);
+ LOG.debug("Removing participants: " + set.toString());
+ for (final String participant : set) {
+ // FIXME Seems like only one participant per opQueue is added (try to fix
+ // this in WAVE)
+ final String partWithDomain = participantUtils.of(participant).toString();
+ if (currentParticipants.contains(partWithDomain)) {
+ final OperationQueue opQueue = new OperationQueue();
+ LOG.debug("Removing as participant: " + partWithDomain);
+ opQueue.removeParticipantFromWavelet(wavelet, partWithDomain);
+ doOperation(whoDel, opQueue, "del participant");
+ }
+ }
+ }
+
+ private void doOperation(final String author, final OperationQueue opQueue, final String logComment) {
+ // FIXME: do here a callback!!!
+ final OperationContextImpl context = new OperationContextImpl(waveletProvider,
+ converterManager.getEventDataConverter(ProtocolVersion.DEFAULT), conversationUtil);
+ for (final OperationRequest request : opQueue.getPendingOperations()) {
+ // final OperationRequest request = opQueue.getPendingOperations().get(0);
+ OperationUtil.executeOperation(request, operationRegistry, context, participantUtils.of(author));
+ final String reqId = request.getId();
+ final JsonRpcResponse response = context.getResponse(reqId);
+ if (response != null && response.isError()) {
+ onFailure(context.getResponse(reqId).getErrorMessage());
+ }
+ OperationUtil.submitDeltas(context, waveletProvider, new SubmitRequestListener() {
+ @Override
+ public void onFailure(final String arg0) {
+ KuneWaveServiceDefault.this.onFailure("Wave " + logComment + " failed, onFailure: " + arg0);
+ }
+
+ @Override
+ public void onSuccess(final int arg0, final HashedVersion arg1, final long arg2) {
+ LOG.info("Wave " + logComment + " success: " + arg1);
+ }
+ });
+ }
+ }
+
+ public void doOperations(final WaveRef waveName, final String author, final OperationQueue opQueue,
+ final SubmitRequestListener listener) {
+ final OperationContextImpl context = new OperationContextImpl(waveletProvider,
+ converterManager.getEventDataConverter(ProtocolVersion.DEFAULT), conversationUtil);
+ for (final OperationRequest req : opQueue.getPendingOperations()) {
+ OperationUtil.executeOperation(req, operationRegistry, context, participantUtils.of(author));
+ }
+ OperationUtil.submitDeltas(context, waveletProvider, listener);
+ }
+
+ @Override
+ public Wavelet fetchWave(final WaveId waveId, final WaveletId waveletId, final String author) {
+ final OperationQueue opQueue = new OperationQueue();
+ opQueue.fetchWavelet(waveId, waveletId);
+ Wavelet wavelet = null;
+ final OperationContextImpl context = new OperationContextImpl(waveletProvider,
+ converterManager.getEventDataConverter(ProtocolVersion.DEFAULT), conversationUtil);
+ final OperationRequest request = opQueue.getPendingOperations().get(0);
+ OperationUtil.executeOperation(request, operationRegistry, context, participantUtils.of(author));
+ final String reqId = request.getId();
+ final JsonRpcResponse response = context.getResponse(reqId);
+ if (response != null && response.isError()) {
+ onFailure(context.getResponse(reqId).getErrorMessage());
+ } else {
+ // Duplicate code from WaveService
+ assert response != null;
+ final WaveletData waveletData = (WaveletData) response.getData().get(ParamsProperty.WAVELET_DATA);
+ final Map<String, Blip> blips = new HashMap<String, Blip>();
+ final Map<String, BlipThread> threads = new HashMap<String, BlipThread>();
+ wavelet = Wavelet.deserialize(opQueue, blips, threads, waveletData);
+
+ // Deserialize threads.
+ @SuppressWarnings("unchecked")
+ final Map<String, BlipThread> tempThreads = (Map<String, BlipThread>) response.getData().get(
+ ParamsProperty.THREADS);
+ for (final Map.Entry<String, BlipThread> entry : tempThreads.entrySet()) {
+ final BlipThread thread = entry.getValue();
+ threads.put(entry.getKey(),
+ new BlipThread(thread.getId(), thread.getLocation(), thread.getBlipIds(), blips));
+ }
+
+ // Deserialize blips.
+ @SuppressWarnings("unchecked")
+ final Map<String, BlipData> blipDatas = (Map<String, BlipData>) response.getData().get(
+ ParamsProperty.BLIPS);
+ for (final Map.Entry<String, BlipData> entry : blipDatas.entrySet()) {
+ blips.put(entry.getKey(), Blip.deserialize(opQueue, wavelet, entry.getValue()));
+ }
+ }
+ return wavelet;
+ }
+
+ @Override
+ public Wavelet fetchWave(final WaveRef waveName, final String author) {
+ final WaveId waveId = waveName.getWaveId();
+ final WaveletId waveletId = waveName.getWaveletId();
+ return fetchWave(waveId, waveletId, author);
+ }
+
+ @Override
+ public boolean isParticipant(final Wavelet wavelet, final String user) {
+ return wavelet.getParticipants().contains(participantUtils.of(user).toString());
+ }
+
+ private void onFailure(final String message) {
+ final String errorMsg = TextUtils.notEmpty(message) ? message : "Wave operation failed";
+ LOG.error(errorMsg);
+ throw new DefaultException(errorMsg);
+ }
+
+ @Override
+ public String render(final Wavelet wavelet) {
+ final ClientAction clientPage = waveRenderer.render(wavelet, 0);
+ final String html = clientPage.getHtml();
+ return html;
+ }
+
+ @Override
+ public String render(final WaveRef waveRef, final String author) {
+ return render(fetchWave(waveRef, author));
+ }
+
+ @Override
+ public void setGadgetProperty(final WaveRef waveletName, final String author, final URL gadgetUrl,
+ final String someProperty, final String someValue) {
+ // See BlipContentRefs DocumentModifyService
+ final Wavelet wavelet = fetchWave(waveletName, author);
+ // FIXME
+ final OperationQueue opQueue = new OperationQueue();
+ final Blip rootBlip = wavelet.getRootBlip();
+ for (final Element elem : rootBlip.getElements().values()) {
+ if (elem.isGadget()) {
+ final Map<String, String> properties = elem.getProperties();
+ if (properties.get(Gadget.URL).equals(gadgetUrl.toString())) {
+ // This is the gadget we want to modify (the first of that type)
+ final List<Element> updatedElementsIn = Lists.newArrayListWithCapacity(1);
+ properties.put(someProperty, someValue);
+ // properties.put(propertyNameToDelete, null);
+ final Gadget gadget = (Gadget) elem;
+ gadget.setProperty(someProperty, someValue);
+ // updatedElementsIn.add(new Gadget(properties));
+ updatedElementsIn.add(gadget);
+ final OperationRequest operationRequest = opQueue.modifyDocument(rootBlip);
+ operationRequest.addParameter(Parameter.of(ParamsProperty.MODIFY_ACTION,
+ new DocumentModifyAction(ModifyHow.UPDATE_ELEMENT, NO_VALUES, NO_ANNOTATION_KEY,
+ updatedElementsIn, NO_BUNDLED_ANNOTATIONS, false)));
+ operationRequest.addParameter(Parameter.of(
+ ParamsProperty.MODIFY_QUERY,
+ new DocumentModifyQuery(ElementType.GADGET, ImmutableMap.of(Gadget.URL,
+ gadgetUrl.toString()), 1)));
+ doOperation(author, opQueue, "set gadget property");
+ break;
+ }
+ }
+ }
+ }
+
+ @Override
+ public void setTitle(final WaveRef waveName, final String title, final String author) {
+ final Wavelet wavelet = fetchWave(waveName, author);
+ final OperationQueue opQueue = new OperationQueue();
+ opQueue.setTitleOfWavelet(wavelet, title);
+ doOperation(author, opQueue, "set title");
+ }
+
+ private Set<String> toSet(final String[] array) {
+ final Set<String> set = new TreeSet<String>(Collections.reverseOrder());
+ set.addAll(Arrays.asList(array));
+ return set;
+ }
+}
Copied: trunk/src/main/java/cc/kune/wave/server/kspecific/WaveEmailNotifier.java (from rev 1655, trunk/src/main/java/cc/kune/wave/server/WaveEmailNotifier.java)
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/kspecific/WaveEmailNotifier.java (rev 0)
+++ trunk/src/main/java/cc/kune/wave/server/kspecific/WaveEmailNotifier.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,86 @@
+package cc.kune.wave.server.kspecific;
+
+import javax.persistence.NoResultException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.waveprotocol.box.common.DeltaSequence;
+import org.waveprotocol.box.server.waveserver.WaveBus;
+import org.waveprotocol.box.server.waveserver.WaveBus.Subscriber;
+import org.waveprotocol.wave.model.id.IdUtil;
+import org.waveprotocol.wave.model.id.WaveletId;
+import org.waveprotocol.wave.model.id.WaveletName;
+import org.waveprotocol.wave.model.operation.wave.AddParticipant;
+import org.waveprotocol.wave.model.operation.wave.TransformedWaveletDelta;
+import org.waveprotocol.wave.model.operation.wave.WaveletBlipOperation;
+import org.waveprotocol.wave.model.operation.wave.WaveletOperation;
+import org.waveprotocol.wave.model.version.HashedVersion;
+import org.waveprotocol.wave.model.wave.ParticipantId;
+import org.waveprotocol.wave.model.wave.data.ReadableWaveletData;
+import org.waveprotocol.wave.model.waveref.WaveRef;
+
+import cc.kune.core.server.LogThis;
+import cc.kune.core.server.mail.FormatedString;
+import cc.kune.core.server.notifier.NotifySender;
+import cc.kune.core.server.notifier.NotifyType;
+import cc.kune.core.server.notifier.UsersOnline;
+import cc.kune.core.server.properties.KuneBasicProperties;
+import cc.kune.domain.User;
+import cc.kune.domain.finders.UserFinder;
+import cc.kune.wave.server.KuneWaveUtils;
+import cc.kune.wave.server.ParticipantUtils;
+
+import com.google.inject.Inject;
+
+@LogThis
+public class WaveEmailNotifier {
+ public static final Log LOG = LogFactory.getLog(WaveEmailNotifier.class);
+
+ @Inject
+ public WaveEmailNotifier(final WaveBus waveBus, final NotifySender notifyService,
+ final UsersOnline usersOnline, final KuneBasicProperties basicProperties,
+ final ParticipantUtils partUtils, final UserFinder userFinder) {
+ waveBus.subscribe(new Subscriber() {
+ @Override
+ public void waveletCommitted(final WaveletName waveletName, final HashedVersion version) {
+ }
+
+ @Override
+ public void waveletUpdate(final ReadableWaveletData wavelet, final DeltaSequence deltas) {
+ final WaveletId waveletId = wavelet.getWaveletId();
+ if (IdUtil.isUserDataWavelet(waveletId)) {
+ return;
+ }
+ for (final TransformedWaveletDelta delta : deltas) {
+ for (final WaveletOperation op : delta) {
+ if (op instanceof AddParticipant) {
+ final ParticipantId participant = ((AddParticipant) op).getParticipantId();
+ final String url = KuneWaveUtils.getUrl(WaveRef.of(wavelet.getWaveId(), waveletId));
+ final FormatedString body = FormatedString.build(
+ "Hi there,<br><br>You have a new message in %s. <a href=\"%s#%s\">Read more</a>.<br>",
+ basicProperties.getSiteCommonName(), basicProperties.getSiteUrl(), url);
+ final String address = participant.getAddress();
+ if (partUtils.isLocal(address)) {
+ final String userName = partUtils.getAddressName(address);
+ // FIXME only for testing
+ try {
+ final User user = userFinder.findByShortName(userName);
+ if (!usersOnline.isLogged(userName)) {
+ notifyService.send(NotifyType.email, FormatedString.build("You have a new message"),
+ body, true, user);
+ notifyService.send(NotifyType.chat, FormatedString.build("New message"), body, true,
+ user);
+ }
+ } catch (final NoResultException e) {
+ // Seems is not a local user
+ }
+ }
+ } else if (op instanceof WaveletBlipOperation) {
+
+ }
+ }
+ }
+ }
+ });
+ }
+}
Modified: trunk/src/main/java/org/waveprotocol/wave/client/wavepanel/view/dom/full/KuneWavePanelResourceLoader.java
===================================================================
--- trunk/src/main/java/org/waveprotocol/wave/client/wavepanel/view/dom/full/KuneWavePanelResourceLoader.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/main/java/org/waveprotocol/wave/client/wavepanel/view/dom/full/KuneWavePanelResourceLoader.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -18,7 +18,7 @@
import org.waveprotocol.wave.client.editor.EditorImpl;
-import cc.kune.wave.client.KuneWaveResources;
+import cc.kune.wave.client.resources.KuneWaveResources;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.StyleInjector;
Deleted: trunk/src/test/java/cc/kune/core/client/state/EventBusTester.java
===================================================================
--- trunk/src/test/java/cc/kune/core/client/state/EventBusTester.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/test/java/cc/kune/core/client/state/EventBusTester.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,59 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.state;
-
-import java.util.ArrayList;
-
-import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.SimpleEventBus;
-
-public class EventBusTester extends SimpleEventBus {
- private final ArrayList<GwtEvent<?>> all;
- private GwtEvent<?> lastEvent;
-
- public EventBusTester() {
- all = new ArrayList<GwtEvent<?>>();
- }
-
- @Override
- public void fireEvent(final GwtEvent<?> event) {
- all.add(event);
- this.lastEvent = event;
- super.fireEvent(event);
- }
-
- public GwtEvent<?> getLastEvent() {
- return lastEvent;
- }
-
- @SuppressWarnings("unchecked")
- public <T extends GwtEvent<?>> Class<T> getLastEventClass() {
- return (Class<T>) lastEvent.getClass();
- }
-
- public boolean receivedEventOfClass(final Class<? extends GwtEvent<?>> eventClass) {
- for (final GwtEvent<?> event : all) {
- if (eventClass.equals(event.getClass())) {
- return true;
- }
- }
- return false;
- }
-}
Deleted: trunk/src/test/java/cc/kune/core/client/state/StateManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/client/state/StateManagerDefaultTest.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/test/java/cc/kune/core/client/state/StateManagerDefaultTest.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,329 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.state;
-
-import static org.mockito.Matchers.anyBoolean;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
-
-import cc.kune.common.client.actions.BeforeActionListener;
-import cc.kune.core.client.init.AppStartEvent;
-import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
-import cc.kune.core.client.state.GroupChangedEvent.GroupChangedHandler;
-import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler;
-import cc.kune.core.client.state.ToolChangedEvent.ToolChangedHandler;
-import cc.kune.core.client.state.UserSignInEvent.UserSignInHandler;
-import cc.kune.core.client.state.UserSignOutEvent.UserSignOutHandler;
-import cc.kune.core.shared.domain.utils.StateToken;
-import cc.kune.core.shared.dto.InitDataDTO;
-import cc.kune.core.shared.dto.StateAbstractDTO;
-
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-public class StateManagerDefaultTest {
-
- private static final StateToken EMPTY_TOKEN = null;
- private static final StateToken GROUP1_TOOL1 = new StateToken("group1.tool1");
- private static final StateToken GROUP1_TOOL2 = new StateToken("group1.tool2");
- private static final StateToken GROUP2_TOOL1 = new StateToken("group2.tool1");
- private static final String HASH = "someUserHash";
- private BeforeActionListener beforeChangeListener1;
- private BeforeActionListener beforeChangeListener2;
- private ContentCache contentProvider;
- private EventBusTester eventBus;
- private GroupChangedHandler groupChangeHandler;
- private HistoryWrapper history;
- private Session session;
- private SiteTokenListeners siteTokens;
- private StateAbstractDTO state;
- private StateChangedHandler stateChangeHandler;
- private StateManagerDefault stateManager;
- private TokenMatcher tokenMatcher;
- private ToolChangedHandler toolChangeHandler;
-
- @Before
- public void before() {
- contentProvider = Mockito.mock(ContentCache.class);
- session = Mockito.mock(Session.class);
- history = Mockito.mock(HistoryWrapper.class);
- tokenMatcher = Mockito.mock(TokenMatcher.class);
- siteTokens = Mockito.mock(SiteTokenListeners.class);
- eventBus = new EventBusTester();
- Mockito.when(session.getUserHash()).thenReturn(HASH);
- Mockito.doAnswer(new Answer<Object>() {
- @Override
- public Object answer(final InvocationOnMock invocation) throws Throwable {
- eventBus.addHandler(UserSignInEvent.getType(), (UserSignInHandler) invocation.getArguments()[1]);
- return null;
- }
- }).when(session).onUserSignIn(anyBoolean(), (UserSignInHandler) Mockito.anyObject());
- Mockito.doAnswer(new Answer<Object>() {
- @Override
- public Object answer(final InvocationOnMock invocation) throws Throwable {
- eventBus.addHandler(UserSignOutEvent.getType(),
- (UserSignOutHandler) invocation.getArguments()[1]);
- return null;
- }
- }).when(session).onUserSignOut(anyBoolean(), (UserSignOutHandler) Mockito.anyObject());
- Mockito.doAnswer(new Answer<Object>() {
- @Override
- public Object answer(final InvocationOnMock invocation) throws Throwable {
- eventBus.addHandler(AppStartEvent.getType(), (AppStartHandler) invocation.getArguments()[1]);
- return null;
- }
- }).when(session).onAppStart(anyBoolean(), (AppStartHandler) Mockito.anyObject());
- state = Mockito.mock(StateAbstractDTO.class);
- stateManager = new StateManagerDefault(contentProvider, session, history, tokenMatcher, eventBus,
- siteTokens);
- stateChangeHandler = Mockito.mock(StateChangedHandler.class);
- groupChangeHandler = Mockito.mock(GroupChangedHandler.class);
- toolChangeHandler = Mockito.mock(ToolChangedHandler.class);
- beforeChangeListener1 = Mockito.mock(BeforeActionListener.class);
- beforeChangeListener2 = Mockito.mock(BeforeActionListener.class);
- eventBus.addHandler(StateChangedEvent.getType(), stateChangeHandler);
- eventBus.addHandler(GroupChangedEvent.getType(), groupChangeHandler);
- eventBus.addHandler(ToolChangedEvent.getType(), toolChangeHandler);
- // new NotifyUser(null, null);
- }
-
- @Test
- public void changeGroupWithNoTool() {
- changeState("group1", "group2");
- Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged(
- (StateChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(2)).onGroupChanged(
- (GroupChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(2)).onGroupChanged(
- (GroupChangedEvent) Mockito.anyObject());
- }
-
- private void changeState(final String... tokens) {
- for (final String token : tokens) {
- Mockito.when(state.getStateToken()).thenReturn(new StateToken(token));
- stateManager.setState(state);
- }
- }
-
- @Test
- public void changeStateWithDifferentAndGroupsToolsMustFireListener() {
- changeState("group2.tool1", "group1.tool2");
- Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged(
- (StateChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(2)).onGroupChanged(
- (GroupChangedEvent) Mockito.anyObject());
- Mockito.verify(toolChangeHandler, Mockito.times(2)).onToolChanged(
- (ToolChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
- new GroupChangedEvent("", "group2"));
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
- new GroupChangedEvent("group2", "group1"));
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
- new ToolChangedEvent(EMPTY_TOKEN, GROUP2_TOOL1));
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
- new ToolChangedEvent(GROUP2_TOOL1, GROUP1_TOOL2));
- }
-
- @Test
- public void changeStateWithDifferentGroupsMustFireListener() {
- changeState("group1.tool1", "group2.tool1");
- // assertTrue(stateChangeListener.isCalled(2));
- // assertTrue(groupChangeListener.isCalledWithEquals("", "group1",
- // "group1", "group2"));
- // assertTrue(toolChangeListener.isCalledWithEquals("", "tool1"));
- Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged(
- (StateChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(2)).onGroupChanged(
- (GroupChangedEvent) Mockito.anyObject());
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
- (ToolChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
- new GroupChangedEvent("", "group1"));
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
- new GroupChangedEvent("group1", "group2"));
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
- new ToolChangedEvent(null, GROUP1_TOOL1));
-
- }
-
- @Test
- public void changeStateWithDifferentToolsMustFireListener() {
- changeState("group1.tool1", "group1.tool2");
- Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged(
- (StateChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
- (GroupChangedEvent) Mockito.anyObject());
- Mockito.verify(toolChangeHandler, Mockito.times(2)).onToolChanged(
- (ToolChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
- new GroupChangedEvent("", "group1"));
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
- new ToolChangedEvent(EMPTY_TOKEN, GROUP1_TOOL1));
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
- new ToolChangedEvent(GROUP1_TOOL1, GROUP1_TOOL2));
- }
-
- @Test
- public void changeToNoTool() {
- changeState("group1.tool1", "group1");
- Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged(
- (StateChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
- (GroupChangedEvent) Mockito.anyObject());
- Mockito.verify(toolChangeHandler, Mockito.times(2)).onToolChanged(
- (ToolChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
- new GroupChangedEvent("", "group1"));
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
- new ToolChangedEvent(EMPTY_TOKEN, GROUP1_TOOL1));
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
- new ToolChangedEvent(GROUP1_TOOL1, new StateToken("group1")));
- }
-
- @Test
- public void changeToSameToken() {
- changeState("group1.tool1", "group1.tool1");
- Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged(
- (StateChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
- (GroupChangedEvent) Mockito.anyObject());
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
- (ToolChangedEvent) Mockito.anyObject());
- Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
- new GroupChangedEvent("", "group1"));
- Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
- new ToolChangedEvent(EMPTY_TOKEN, GROUP1_TOOL1));
- }
-
- private String confBeforeStateChangeListeners(final boolean value, final boolean value2) {
- stateManager.addBeforeStateChangeListener(beforeChangeListener1);
- stateManager.addBeforeStateChangeListener(beforeChangeListener2);
- final String newToken = "something";
- Mockito.when(beforeChangeListener1.beforeAction()).thenReturn(value);
- Mockito.when(beforeChangeListener2.beforeAction()).thenReturn(value2);
- return newToken;
- }
-
- @SuppressWarnings("unchecked")
- @Test
- public void getDefGroup() {
- stateManager.processHistoryToken("site.docs");
- verifyGetServerContent();
- }
-
- public void getWaveToken() {
- stateManager.processHistoryToken("example.com/w+abcd/~/conv+root/b+45kg");
- }
-
- @SuppressWarnings("unchecked")
- @Test
- public void normalStartLoggedUser() {
- // When a user enter reload state, also if the application is starting
- // (and the user was logged)
- Mockito.when(history.getToken()).thenReturn("");
- stateManager.refreshCurrentState();
- verifyGetServerContent();
- }
-
- @SuppressWarnings("unchecked")
- @Test
- public void oneBeforeStateChangeListenerAddAndRemove() {
- final String newToken = confBeforeStateChangeListeners(false, false);
- stateManager.processHistoryToken(newToken);
- removeBeforeStateChangeListener();
- stateManager.processHistoryToken(newToken);
- verifyGetServerContent();
- }
-
- @Test
- public void oneBeforeStateChangeListenerFalseAndResume() {
- final String token = confBeforeStateChangeListeners(false, true);
- stateManager.processHistoryToken(token);
- Mockito.verify(history, Mockito.never()).newItem(token);
- removeBeforeStateChangeListener();
- stateManager.resumeTokenChange();
- Mockito.verify(history, Mockito.times(1)).newItem(token);
- }
-
- @SuppressWarnings("unchecked")
- @Test
- public void oneBeforeStateChangeListenerReturnFalse() {
- stateManager.processHistoryToken(confBeforeStateChangeListeners(true, false));
- Mockito.verify(contentProvider, Mockito.never()).getContent(Mockito.anyString(),
- (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
- }
-
- @SuppressWarnings("unchecked")
- @Test
- public void oneBeforeStateChangeListenerReturnFalseWithTwo() {
- stateManager.processHistoryToken(confBeforeStateChangeListeners(false, false));
- Mockito.verify(contentProvider, Mockito.never()).getContent(Mockito.anyString(),
- (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
- }
-
- @SuppressWarnings("unchecked")
- @Test
- public void oneBeforeStateChangeListenerReturnTrue() {
- stateManager.processHistoryToken(confBeforeStateChangeListeners(true, true));
- verifyGetServerContent();
- }
-
- private void removeBeforeStateChangeListener() {
- stateManager.removeBeforeStateChangeListener(beforeChangeListener1);
- stateManager.removeBeforeStateChangeListener(beforeChangeListener2);
- }
-
- @SuppressWarnings("unchecked")
- @Test
- public void siteTokenFirstLoadDefContentAndFireListener() {
- final HistoryTokenCallback listener = Mockito.mock(HistoryTokenCallback.class);
- final String token = SiteTokens.SIGNIN;
- stateManager.addSiteToken(token, listener);
- Mockito.when(siteTokens.get(SiteTokens.SIGNIN)).thenReturn(listener);
- stateManager.processHistoryToken(token);
- Mockito.verify(listener, Mockito.times(1)).onHistoryToken(Mockito.anyString());
- verifyGetServerContent();
- }
-
- @Test
- public void siteTokenTest() {
- final HistoryTokenCallback listener = Mockito.mock(HistoryTokenCallback.class);
- stateManager.addSiteToken(SiteTokens.SIGNIN, listener);
- Mockito.when(siteTokens.get(SiteTokens.SIGNIN)).thenReturn(listener);
- stateManager.processHistoryToken("signIn");
- Mockito.verify(listener, Mockito.times(1)).onHistoryToken(Mockito.anyString());
- }
-
- @Test
- public void startMustLoadContent() {
- final InitDataDTO initData = Mockito.mock(InitDataDTO.class);
- Mockito.when(history.getToken()).thenReturn("");
- eventBus.fireEvent(new AppStartEvent(initData));
- verifyGetServerContent();
- }
-
- private void verifyGetServerContent() {
- Mockito.verify(contentProvider, Mockito.times(1)).getContent(Mockito.anyString(),
- (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
- }
-}
Deleted: trunk/src/test/java/cc/kune/core/client/state/StateTokenTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/client/state/StateTokenTest.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/test/java/cc/kune/core/client/state/StateTokenTest.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,72 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.state;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-
-import org.junit.Test;
-
-import cc.kune.core.shared.domain.utils.StateToken;
-
-public class StateTokenTest {
-
- @Test
- public void checkAllEmpty() {
- final StateToken token = new StateToken("");
- assertNull(token.getGroup());
- assertNull(token.getTool());
- assertNull(token.getFolder());
- assertNull(token.getDocument());
- }
-
- @Test
- public void checkEquals() {
- final StateToken token1 = new StateToken("abc", "da", "1", "1");
- final StateToken token2 = new StateToken("abc", "da", "1", "1");
- assertEquals(token1, token2);
- }
-
- @Test
- public void checkEqualsEncoded() {
- final StateToken token1 = new StateToken("abc.da.1.1");
- final StateToken token2 = new StateToken("abc.da.1.1");
- assertEquals(token1, token2);
- }
-
- @Test
- public void checkNoEquals() {
- final StateToken token1 = new StateToken("abc", "da", "1", "1");
- final StateToken token2 = new StateToken("abc", "da", 1L);
- assertFalse(token1.equals(token2));
- }
-
- @Test
- public void parseEncodedNotCatched() {
- final StateToken token1 = new StateToken();
- final StateToken token2 = new StateToken();
- token1.getEncoded();
- token2.getEncoded();
- token1.setEncoded("abc.da.1.1");
- token2.setEncoded("abc.da.1.2");
- assertFalse(token1.equals(token2));
- }
-}
Deleted: trunk/src/test/java/cc/kune/core/client/state/TokenMatcherTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/client/state/TokenMatcherTest.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/test/java/cc/kune/core/client/state/TokenMatcherTest.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -1,152 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.client.state;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.waveprotocol.wave.util.escapers.jvm.JavaWaverefEncoder;
-
-import cc.kune.core.shared.dto.ReservedWordsRegistryDTO;
-
-public class TokenMatcherTest {
-
- private static final String DEF_SITE_TOKEN = "";
- private static final String GROUP_TOKEN = "site.docs.1";
- private static final String GROUP_TOKEN_ONLY_PROJECT = "site";
- private static final String GROUP_TOKEN_ONLY_PROJECT_AND_TOOL = "site.docs";
- private static final String REDIRECT_LINK = "example.com/w+jsdKixyHhZA";
- private static final String SIGNIN_TOKEN = "signin";
- private static final String SIGNIN_TOKEN_WITH_REDIRECT = SIGNIN_TOKEN + "(" + REDIRECT_LINK + ")";
- private static final String SIGNIN_TOKEN_WITH_REDIRECT_TO_PREVIEW = SIGNIN_TOKEN + "(" + SiteTokens.PREVIEW + "("
- + REDIRECT_LINK + "))";
- private static final String WAVE_TOKEN_SAMPLE1 = "example.com/w+abcd";
- private static final String WAVE_TOKEN_SAMPLE2 = "example.com/w+abcd/~/conv+root";
- private static final String WAVE_TOKEN_SAMPLE3 = "example.com/w+abcd/~/conv+root/b+45kg";
- private TokenMatcher tokenMatcher;
-
- @Before
- public void before() {
- final ReservedWordsRegistryDTO reservedWords = new ReservedWordsRegistryDTO();
- reservedWords.add(SIGNIN_TOKEN);
- tokenMatcher = new TokenMatcher(reservedWords);
- tokenMatcher.init(JavaWaverefEncoder.INSTANCE);
- }
-
- private void dontMatchGroupToken(final String token) {
- assertFalse("Expected '" + token + "' dont match isGroup", tokenMatcher.isGroupToken(token));
- }
-
- @Test
- public void dontMatchRedirect() {
- dontMatchWaveToken(SIGNIN_TOKEN_WITH_REDIRECT);
- dontMatchGroupToken(SIGNIN_TOKEN_WITH_REDIRECT);
- assertFalse(tokenMatcher.hasRedirect(SIGNIN_TOKEN));
- }
-
- private void dontMatchWaveToken(final String token) {
- assertFalse("Expected '" + token + "' dont match isWaveToken", tokenMatcher.isWaveToken(token));
- }
-
- private void matchGroupToken(final String token) {
- assertTrue("Expected '" + token + "' match isGroup", tokenMatcher.isGroupToken(token));
- }
-
- private void matchWaveToken(final String token) {
- assertTrue("Expected '" + token + "' match isWaveToken", tokenMatcher.isWaveToken(token));
- }
-
- @Test
- public void matchWaveToken2() {
- matchWaveToken(WAVE_TOKEN_SAMPLE2);
- dontMatchGroupToken(WAVE_TOKEN_SAMPLE2);
- }
-
- @Test
- public void matchWaveToken3() {
- matchWaveToken(WAVE_TOKEN_SAMPLE3);
- dontMatchGroupToken(WAVE_TOKEN_SAMPLE3);
- }
-
- @Test
- public void shouldDontMatchNull() {
- dontMatchWaveToken(null);
- dontMatchWaveToken("");
- dontMatchGroupToken(null);
- dontMatchGroupToken("");
- }
-
- @Test
- public void shouldExtractRedirect() {
- assertTrue(tokenMatcher.hasRedirect(SIGNIN_TOKEN_WITH_REDIRECT));
- assertEquals(SIGNIN_TOKEN, tokenMatcher.getRedirect(SIGNIN_TOKEN_WITH_REDIRECT).getLeft());
- assertEquals(REDIRECT_LINK, tokenMatcher.getRedirect(SIGNIN_TOKEN_WITH_REDIRECT).getRight());
- }
-
- @Test
- public void shouldExtractRedirectInSignPreview() {
- assertTrue(tokenMatcher.hasRedirect(SIGNIN_TOKEN_WITH_REDIRECT_TO_PREVIEW));
- assertEquals(
- "Expected " + SIGNIN_TOKEN + " but: "
- + tokenMatcher.getRedirect(SIGNIN_TOKEN_WITH_REDIRECT_TO_PREVIEW).getLeft(), SIGNIN_TOKEN,
- tokenMatcher.getRedirect(SIGNIN_TOKEN_WITH_REDIRECT_TO_PREVIEW).getLeft());
- // assertEquals(REDIRECT_LINK,
- // tokenMatcher.getRedirect(SIGNIN_TOKEN_WITH_REDIRECT).getRight());
- }
-
- @Test
- public void shoulMatchCompleteToken() {
- matchGroupToken(GROUP_TOKEN);
- dontMatchWaveToken(GROUP_TOKEN);
- }
-
- @Test
- public void shoulMatchGroupToken() {
- matchGroupToken(GROUP_TOKEN_ONLY_PROJECT);
- dontMatchWaveToken(GROUP_TOKEN_ONLY_PROJECT);
- }
-
- @Test
- public void shoulMatchGroupToolToken() {
- matchGroupToken(GROUP_TOKEN_ONLY_PROJECT_AND_TOOL);
- dontMatchWaveToken(GROUP_TOKEN_ONLY_PROJECT_AND_TOOL);
- }
-
- @Test
- public void testDefSiteTokenDontMatch() {
- dontMatchWaveToken(DEF_SITE_TOKEN);
- dontMatchGroupToken(DEF_SITE_TOKEN);
- }
-
- @Test
- public void testMatchWaveToken1() {
- matchWaveToken(WAVE_TOKEN_SAMPLE1);
- dontMatchGroupToken(WAVE_TOKEN_SAMPLE1);
- }
-
- @Test
- public void testOtherSiteTokensDontMatch() {
- dontMatchWaveToken(SIGNIN_TOKEN);
- dontMatchGroupToken(SIGNIN_TOKEN);
- }
-}
Copied: trunk/src/test/java/cc/kune/core/client/state/impl/EventBusTester.java (from rev 1655, trunk/src/test/java/cc/kune/core/client/state/EventBusTester.java)
===================================================================
--- trunk/src/test/java/cc/kune/core/client/state/impl/EventBusTester.java (rev 0)
+++ trunk/src/test/java/cc/kune/core/client/state/impl/EventBusTester.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,59 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.state.impl;
+
+import java.util.ArrayList;
+
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.SimpleEventBus;
+
+public class EventBusTester extends SimpleEventBus {
+ private final ArrayList<GwtEvent<?>> all;
+ private GwtEvent<?> lastEvent;
+
+ public EventBusTester() {
+ all = new ArrayList<GwtEvent<?>>();
+ }
+
+ @Override
+ public void fireEvent(final GwtEvent<?> event) {
+ all.add(event);
+ this.lastEvent = event;
+ super.fireEvent(event);
+ }
+
+ public GwtEvent<?> getLastEvent() {
+ return lastEvent;
+ }
+
+ @SuppressWarnings("unchecked")
+ public <T extends GwtEvent<?>> Class<T> getLastEventClass() {
+ return (Class<T>) lastEvent.getClass();
+ }
+
+ public boolean receivedEventOfClass(final Class<? extends GwtEvent<?>> eventClass) {
+ for (final GwtEvent<?> event : all) {
+ if (eventClass.equals(event.getClass())) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
Copied: trunk/src/test/java/cc/kune/core/client/state/impl/StateManagerDefaultTest.java (from rev 1655, trunk/src/test/java/cc/kune/core/client/state/StateManagerDefaultTest.java)
===================================================================
--- trunk/src/test/java/cc/kune/core/client/state/impl/StateManagerDefaultTest.java (rev 0)
+++ trunk/src/test/java/cc/kune/core/client/state/impl/StateManagerDefaultTest.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,342 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.state.impl;
+
+import static org.mockito.Matchers.anyBoolean;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+
+import cc.kune.common.client.actions.BeforeActionListener;
+import cc.kune.core.client.events.AppStartEvent;
+import cc.kune.core.client.events.GroupChangedEvent;
+import cc.kune.core.client.events.StateChangedEvent;
+import cc.kune.core.client.events.ToolChangedEvent;
+import cc.kune.core.client.events.UserSignInEvent;
+import cc.kune.core.client.events.UserSignOutEvent;
+import cc.kune.core.client.events.AppStartEvent.AppStartHandler;
+import cc.kune.core.client.events.GroupChangedEvent.GroupChangedHandler;
+import cc.kune.core.client.events.StateChangedEvent.StateChangedHandler;
+import cc.kune.core.client.events.ToolChangedEvent.ToolChangedHandler;
+import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler;
+import cc.kune.core.client.events.UserSignOutEvent.UserSignOutHandler;
+import cc.kune.core.client.state.ContentCache;
+import cc.kune.core.client.state.HistoryTokenCallback;
+import cc.kune.core.client.state.HistoryWrapper;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.client.state.SiteTokenListeners;
+import cc.kune.core.client.state.SiteTokens;
+import cc.kune.core.client.state.TokenMatcher;
+import cc.kune.core.client.state.impl.StateManagerDefault;
+import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.core.shared.dto.InitDataDTO;
+import cc.kune.core.shared.dto.StateAbstractDTO;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
+public class StateManagerDefaultTest {
+
+ private static final StateToken EMPTY_TOKEN = null;
+ private static final StateToken GROUP1_TOOL1 = new StateToken("group1.tool1");
+ private static final StateToken GROUP1_TOOL2 = new StateToken("group1.tool2");
+ private static final StateToken GROUP2_TOOL1 = new StateToken("group2.tool1");
+ private static final String HASH = "someUserHash";
+ private BeforeActionListener beforeChangeListener1;
+ private BeforeActionListener beforeChangeListener2;
+ private ContentCache contentProvider;
+ private EventBusTester eventBus;
+ private GroupChangedHandler groupChangeHandler;
+ private HistoryWrapper history;
+ private Session session;
+ private SiteTokenListeners siteTokens;
+ private StateAbstractDTO state;
+ private StateChangedHandler stateChangeHandler;
+ private StateManagerDefault stateManager;
+ private TokenMatcher tokenMatcher;
+ private ToolChangedHandler toolChangeHandler;
+
+ @Before
+ public void before() {
+ contentProvider = Mockito.mock(ContentCache.class);
+ session = Mockito.mock(Session.class);
+ history = Mockito.mock(HistoryWrapper.class);
+ tokenMatcher = Mockito.mock(TokenMatcher.class);
+ siteTokens = Mockito.mock(SiteTokenListeners.class);
+ eventBus = new EventBusTester();
+ Mockito.when(session.getUserHash()).thenReturn(HASH);
+ Mockito.doAnswer(new Answer<Object>() {
+ @Override
+ public Object answer(final InvocationOnMock invocation) throws Throwable {
+ eventBus.addHandler(UserSignInEvent.getType(), (UserSignInHandler) invocation.getArguments()[1]);
+ return null;
+ }
+ }).when(session).onUserSignIn(anyBoolean(), (UserSignInHandler) Mockito.anyObject());
+ Mockito.doAnswer(new Answer<Object>() {
+ @Override
+ public Object answer(final InvocationOnMock invocation) throws Throwable {
+ eventBus.addHandler(UserSignOutEvent.getType(),
+ (UserSignOutHandler) invocation.getArguments()[1]);
+ return null;
+ }
+ }).when(session).onUserSignOut(anyBoolean(), (UserSignOutHandler) Mockito.anyObject());
+ Mockito.doAnswer(new Answer<Object>() {
+ @Override
+ public Object answer(final InvocationOnMock invocation) throws Throwable {
+ eventBus.addHandler(AppStartEvent.getType(), (AppStartHandler) invocation.getArguments()[1]);
+ return null;
+ }
+ }).when(session).onAppStart(anyBoolean(), (AppStartHandler) Mockito.anyObject());
+ state = Mockito.mock(StateAbstractDTO.class);
+ stateManager = new StateManagerDefault(contentProvider, session, history, tokenMatcher, eventBus,
+ siteTokens);
+ stateChangeHandler = Mockito.mock(StateChangedHandler.class);
+ groupChangeHandler = Mockito.mock(GroupChangedHandler.class);
+ toolChangeHandler = Mockito.mock(ToolChangedHandler.class);
+ beforeChangeListener1 = Mockito.mock(BeforeActionListener.class);
+ beforeChangeListener2 = Mockito.mock(BeforeActionListener.class);
+ eventBus.addHandler(StateChangedEvent.getType(), stateChangeHandler);
+ eventBus.addHandler(GroupChangedEvent.getType(), groupChangeHandler);
+ eventBus.addHandler(ToolChangedEvent.getType(), toolChangeHandler);
+ // new NotifyUser(null, null);
+ }
+
+ @Test
+ public void changeGroupWithNoTool() {
+ changeState("group1", "group2");
+ Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged(
+ (StateChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(2)).onGroupChanged(
+ (GroupChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(2)).onGroupChanged(
+ (GroupChangedEvent) Mockito.anyObject());
+ }
+
+ private void changeState(final String... tokens) {
+ for (final String token : tokens) {
+ Mockito.when(state.getStateToken()).thenReturn(new StateToken(token));
+ stateManager.setState(state);
+ }
+ }
+
+ @Test
+ public void changeStateWithDifferentAndGroupsToolsMustFireListener() {
+ changeState("group2.tool1", "group1.tool2");
+ Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged(
+ (StateChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(2)).onGroupChanged(
+ (GroupChangedEvent) Mockito.anyObject());
+ Mockito.verify(toolChangeHandler, Mockito.times(2)).onToolChanged(
+ (ToolChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ new GroupChangedEvent("", "group2"));
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ new GroupChangedEvent("group2", "group1"));
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
+ new ToolChangedEvent(EMPTY_TOKEN, GROUP2_TOOL1));
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
+ new ToolChangedEvent(GROUP2_TOOL1, GROUP1_TOOL2));
+ }
+
+ @Test
+ public void changeStateWithDifferentGroupsMustFireListener() {
+ changeState("group1.tool1", "group2.tool1");
+ // assertTrue(stateChangeListener.isCalled(2));
+ // assertTrue(groupChangeListener.isCalledWithEquals("", "group1",
+ // "group1", "group2"));
+ // assertTrue(toolChangeListener.isCalledWithEquals("", "tool1"));
+ Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged(
+ (StateChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(2)).onGroupChanged(
+ (GroupChangedEvent) Mockito.anyObject());
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
+ (ToolChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ new GroupChangedEvent("", "group1"));
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ new GroupChangedEvent("group1", "group2"));
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
+ new ToolChangedEvent(null, GROUP1_TOOL1));
+
+ }
+
+ @Test
+ public void changeStateWithDifferentToolsMustFireListener() {
+ changeState("group1.tool1", "group1.tool2");
+ Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged(
+ (StateChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ (GroupChangedEvent) Mockito.anyObject());
+ Mockito.verify(toolChangeHandler, Mockito.times(2)).onToolChanged(
+ (ToolChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ new GroupChangedEvent("", "group1"));
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
+ new ToolChangedEvent(EMPTY_TOKEN, GROUP1_TOOL1));
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
+ new ToolChangedEvent(GROUP1_TOOL1, GROUP1_TOOL2));
+ }
+
+ @Test
+ public void changeToNoTool() {
+ changeState("group1.tool1", "group1");
+ Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged(
+ (StateChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ (GroupChangedEvent) Mockito.anyObject());
+ Mockito.verify(toolChangeHandler, Mockito.times(2)).onToolChanged(
+ (ToolChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ new GroupChangedEvent("", "group1"));
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
+ new ToolChangedEvent(EMPTY_TOKEN, GROUP1_TOOL1));
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
+ new ToolChangedEvent(GROUP1_TOOL1, new StateToken("group1")));
+ }
+
+ @Test
+ public void changeToSameToken() {
+ changeState("group1.tool1", "group1.tool1");
+ Mockito.verify(stateChangeHandler, Mockito.times(2)).onStateChanged(
+ (StateChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ (GroupChangedEvent) Mockito.anyObject());
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
+ (ToolChangedEvent) Mockito.anyObject());
+ Mockito.verify(groupChangeHandler, Mockito.times(1)).onGroupChanged(
+ new GroupChangedEvent("", "group1"));
+ Mockito.verify(toolChangeHandler, Mockito.times(1)).onToolChanged(
+ new ToolChangedEvent(EMPTY_TOKEN, GROUP1_TOOL1));
+ }
+
+ private String confBeforeStateChangeListeners(final boolean value, final boolean value2) {
+ stateManager.addBeforeStateChangeListener(beforeChangeListener1);
+ stateManager.addBeforeStateChangeListener(beforeChangeListener2);
+ final String newToken = "something";
+ Mockito.when(beforeChangeListener1.beforeAction()).thenReturn(value);
+ Mockito.when(beforeChangeListener2.beforeAction()).thenReturn(value2);
+ return newToken;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void getDefGroup() {
+ stateManager.processHistoryToken("site.docs");
+ verifyGetServerContent();
+ }
+
+ public void getWaveToken() {
+ stateManager.processHistoryToken("example.com/w+abcd/~/conv+root/b+45kg");
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void normalStartLoggedUser() {
+ // When a user enter reload state, also if the application is starting
+ // (and the user was logged)
+ Mockito.when(history.getToken()).thenReturn("");
+ stateManager.refreshCurrentState();
+ verifyGetServerContent();
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void oneBeforeStateChangeListenerAddAndRemove() {
+ final String newToken = confBeforeStateChangeListeners(false, false);
+ stateManager.processHistoryToken(newToken);
+ removeBeforeStateChangeListener();
+ stateManager.processHistoryToken(newToken);
+ verifyGetServerContent();
+ }
+
+ @Test
+ public void oneBeforeStateChangeListenerFalseAndResume() {
+ final String token = confBeforeStateChangeListeners(false, true);
+ stateManager.processHistoryToken(token);
+ Mockito.verify(history, Mockito.never()).newItem(token);
+ removeBeforeStateChangeListener();
+ stateManager.resumeTokenChange();
+ Mockito.verify(history, Mockito.times(1)).newItem(token);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void oneBeforeStateChangeListenerReturnFalse() {
+ stateManager.processHistoryToken(confBeforeStateChangeListeners(true, false));
+ Mockito.verify(contentProvider, Mockito.never()).getContent(Mockito.anyString(),
+ (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void oneBeforeStateChangeListenerReturnFalseWithTwo() {
+ stateManager.processHistoryToken(confBeforeStateChangeListeners(false, false));
+ Mockito.verify(contentProvider, Mockito.never()).getContent(Mockito.anyString(),
+ (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void oneBeforeStateChangeListenerReturnTrue() {
+ stateManager.processHistoryToken(confBeforeStateChangeListeners(true, true));
+ verifyGetServerContent();
+ }
+
+ private void removeBeforeStateChangeListener() {
+ stateManager.removeBeforeStateChangeListener(beforeChangeListener1);
+ stateManager.removeBeforeStateChangeListener(beforeChangeListener2);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void siteTokenFirstLoadDefContentAndFireListener() {
+ final HistoryTokenCallback listener = Mockito.mock(HistoryTokenCallback.class);
+ final String token = SiteTokens.SIGNIN;
+ stateManager.addSiteToken(token, listener);
+ Mockito.when(siteTokens.get(SiteTokens.SIGNIN)).thenReturn(listener);
+ stateManager.processHistoryToken(token);
+ Mockito.verify(listener, Mockito.times(1)).onHistoryToken(Mockito.anyString());
+ verifyGetServerContent();
+ }
+
+ @Test
+ public void siteTokenTest() {
+ final HistoryTokenCallback listener = Mockito.mock(HistoryTokenCallback.class);
+ stateManager.addSiteToken(SiteTokens.SIGNIN, listener);
+ Mockito.when(siteTokens.get(SiteTokens.SIGNIN)).thenReturn(listener);
+ stateManager.processHistoryToken("signIn");
+ Mockito.verify(listener, Mockito.times(1)).onHistoryToken(Mockito.anyString());
+ }
+
+ @Test
+ public void startMustLoadContent() {
+ final InitDataDTO initData = Mockito.mock(InitDataDTO.class);
+ Mockito.when(history.getToken()).thenReturn("");
+ eventBus.fireEvent(new AppStartEvent(initData));
+ verifyGetServerContent();
+ }
+
+ private void verifyGetServerContent() {
+ Mockito.verify(contentProvider, Mockito.times(1)).getContent(Mockito.anyString(),
+ (StateToken) Mockito.anyObject(), (AsyncCallback<StateAbstractDTO>) Mockito.anyObject());
+ }
+}
Copied: trunk/src/test/java/cc/kune/core/client/state/impl/StateTokenTest.java (from rev 1655, trunk/src/test/java/cc/kune/core/client/state/StateTokenTest.java)
===================================================================
--- trunk/src/test/java/cc/kune/core/client/state/impl/StateTokenTest.java (rev 0)
+++ trunk/src/test/java/cc/kune/core/client/state/impl/StateTokenTest.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,72 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.state.impl;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+
+import org.junit.Test;
+
+import cc.kune.core.shared.domain.utils.StateToken;
+
+public class StateTokenTest {
+
+ @Test
+ public void checkAllEmpty() {
+ final StateToken token = new StateToken("");
+ assertNull(token.getGroup());
+ assertNull(token.getTool());
+ assertNull(token.getFolder());
+ assertNull(token.getDocument());
+ }
+
+ @Test
+ public void checkEquals() {
+ final StateToken token1 = new StateToken("abc", "da", "1", "1");
+ final StateToken token2 = new StateToken("abc", "da", "1", "1");
+ assertEquals(token1, token2);
+ }
+
+ @Test
+ public void checkEqualsEncoded() {
+ final StateToken token1 = new StateToken("abc.da.1.1");
+ final StateToken token2 = new StateToken("abc.da.1.1");
+ assertEquals(token1, token2);
+ }
+
+ @Test
+ public void checkNoEquals() {
+ final StateToken token1 = new StateToken("abc", "da", "1", "1");
+ final StateToken token2 = new StateToken("abc", "da", 1L);
+ assertFalse(token1.equals(token2));
+ }
+
+ @Test
+ public void parseEncodedNotCatched() {
+ final StateToken token1 = new StateToken();
+ final StateToken token2 = new StateToken();
+ token1.getEncoded();
+ token2.getEncoded();
+ token1.setEncoded("abc.da.1.1");
+ token2.setEncoded("abc.da.1.2");
+ assertFalse(token1.equals(token2));
+ }
+}
Copied: trunk/src/test/java/cc/kune/core/client/state/impl/TokenMatcherTest.java (from rev 1655, trunk/src/test/java/cc/kune/core/client/state/TokenMatcherTest.java)
===================================================================
--- trunk/src/test/java/cc/kune/core/client/state/impl/TokenMatcherTest.java (rev 0)
+++ trunk/src/test/java/cc/kune/core/client/state/impl/TokenMatcherTest.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -0,0 +1,154 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.state.impl;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.waveprotocol.wave.util.escapers.jvm.JavaWaverefEncoder;
+
+import cc.kune.core.client.state.SiteTokens;
+import cc.kune.core.client.state.TokenMatcher;
+import cc.kune.core.shared.dto.ReservedWordsRegistryDTO;
+
+public class TokenMatcherTest {
+
+ private static final String DEF_SITE_TOKEN = "";
+ private static final String GROUP_TOKEN = "site.docs.1";
+ private static final String GROUP_TOKEN_ONLY_PROJECT = "site";
+ private static final String GROUP_TOKEN_ONLY_PROJECT_AND_TOOL = "site.docs";
+ private static final String REDIRECT_LINK = "example.com/w+jsdKixyHhZA";
+ private static final String SIGNIN_TOKEN = "signin";
+ private static final String SIGNIN_TOKEN_WITH_REDIRECT = SIGNIN_TOKEN + "(" + REDIRECT_LINK + ")";
+ private static final String SIGNIN_TOKEN_WITH_REDIRECT_TO_PREVIEW = SIGNIN_TOKEN + "(" + SiteTokens.PREVIEW + "("
+ + REDIRECT_LINK + "))";
+ private static final String WAVE_TOKEN_SAMPLE1 = "example.com/w+abcd";
+ private static final String WAVE_TOKEN_SAMPLE2 = "example.com/w+abcd/~/conv+root";
+ private static final String WAVE_TOKEN_SAMPLE3 = "example.com/w+abcd/~/conv+root/b+45kg";
+ private TokenMatcher tokenMatcher;
+
+ @Before
+ public void before() {
+ final ReservedWordsRegistryDTO reservedWords = new ReservedWordsRegistryDTO();
+ reservedWords.add(SIGNIN_TOKEN);
+ tokenMatcher = new TokenMatcher(reservedWords);
+ tokenMatcher.init(JavaWaverefEncoder.INSTANCE);
+ }
+
+ private void dontMatchGroupToken(final String token) {
+ assertFalse("Expected '" + token + "' dont match isGroup", tokenMatcher.isGroupToken(token));
+ }
+
+ @Test
+ public void dontMatchRedirect() {
+ dontMatchWaveToken(SIGNIN_TOKEN_WITH_REDIRECT);
+ dontMatchGroupToken(SIGNIN_TOKEN_WITH_REDIRECT);
+ assertFalse(tokenMatcher.hasRedirect(SIGNIN_TOKEN));
+ }
+
+ private void dontMatchWaveToken(final String token) {
+ assertFalse("Expected '" + token + "' dont match isWaveToken", tokenMatcher.isWaveToken(token));
+ }
+
+ private void matchGroupToken(final String token) {
+ assertTrue("Expected '" + token + "' match isGroup", tokenMatcher.isGroupToken(token));
+ }
+
+ private void matchWaveToken(final String token) {
+ assertTrue("Expected '" + token + "' match isWaveToken", tokenMatcher.isWaveToken(token));
+ }
+
+ @Test
+ public void matchWaveToken2() {
+ matchWaveToken(WAVE_TOKEN_SAMPLE2);
+ dontMatchGroupToken(WAVE_TOKEN_SAMPLE2);
+ }
+
+ @Test
+ public void matchWaveToken3() {
+ matchWaveToken(WAVE_TOKEN_SAMPLE3);
+ dontMatchGroupToken(WAVE_TOKEN_SAMPLE3);
+ }
+
+ @Test
+ public void shouldDontMatchNull() {
+ dontMatchWaveToken(null);
+ dontMatchWaveToken("");
+ dontMatchGroupToken(null);
+ dontMatchGroupToken("");
+ }
+
+ @Test
+ public void shouldExtractRedirect() {
+ assertTrue(tokenMatcher.hasRedirect(SIGNIN_TOKEN_WITH_REDIRECT));
+ assertEquals(SIGNIN_TOKEN, tokenMatcher.getRedirect(SIGNIN_TOKEN_WITH_REDIRECT).getLeft());
+ assertEquals(REDIRECT_LINK, tokenMatcher.getRedirect(SIGNIN_TOKEN_WITH_REDIRECT).getRight());
+ }
+
+ @Test
+ public void shouldExtractRedirectInSignPreview() {
+ assertTrue(tokenMatcher.hasRedirect(SIGNIN_TOKEN_WITH_REDIRECT_TO_PREVIEW));
+ assertEquals(
+ "Expected " + SIGNIN_TOKEN + " but: "
+ + tokenMatcher.getRedirect(SIGNIN_TOKEN_WITH_REDIRECT_TO_PREVIEW).getLeft(), SIGNIN_TOKEN,
+ tokenMatcher.getRedirect(SIGNIN_TOKEN_WITH_REDIRECT_TO_PREVIEW).getLeft());
+ // assertEquals(REDIRECT_LINK,
+ // tokenMatcher.getRedirect(SIGNIN_TOKEN_WITH_REDIRECT).getRight());
+ }
+
+ @Test
+ public void shoulMatchCompleteToken() {
+ matchGroupToken(GROUP_TOKEN);
+ dontMatchWaveToken(GROUP_TOKEN);
+ }
+
+ @Test
+ public void shoulMatchGroupToken() {
+ matchGroupToken(GROUP_TOKEN_ONLY_PROJECT);
+ dontMatchWaveToken(GROUP_TOKEN_ONLY_PROJECT);
+ }
+
+ @Test
+ public void shoulMatchGroupToolToken() {
+ matchGroupToken(GROUP_TOKEN_ONLY_PROJECT_AND_TOOL);
+ dontMatchWaveToken(GROUP_TOKEN_ONLY_PROJECT_AND_TOOL);
+ }
+
+ @Test
+ public void testDefSiteTokenDontMatch() {
+ dontMatchWaveToken(DEF_SITE_TOKEN);
+ dontMatchGroupToken(DEF_SITE_TOKEN);
+ }
+
+ @Test
+ public void testMatchWaveToken1() {
+ matchWaveToken(WAVE_TOKEN_SAMPLE1);
+ dontMatchGroupToken(WAVE_TOKEN_SAMPLE1);
+ }
+
+ @Test
+ public void testOtherSiteTokensDontMatch() {
+ dontMatchWaveToken(SIGNIN_TOKEN);
+ dontMatchGroupToken(SIGNIN_TOKEN);
+ }
+}
Modified: trunk/src/test/java/cc/kune/core/server/manager/ContentManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/manager/ContentManagerDefaultTest.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/test/java/cc/kune/core/server/manager/ContentManagerDefaultTest.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -30,7 +30,6 @@
import cc.kune.core.client.errors.MoveOnSameContainerException;
import cc.kune.core.client.errors.NameInUseException;
import cc.kune.core.server.PersistencePreLoadedDataTest;
-import cc.kune.core.server.manager.impl.SearchResult;
import cc.kune.domain.BasicMimeType;
import cc.kune.domain.Content;
Modified: trunk/src/test/java/cc/kune/core/server/manager/GroupManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/manager/GroupManagerDefaultTest.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/test/java/cc/kune/core/server/manager/GroupManagerDefaultTest.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -34,7 +34,6 @@
import cc.kune.core.client.errors.I18nNotFoundException;
import cc.kune.core.client.errors.UserRegistrationException;
import cc.kune.core.server.PersistencePreLoadedDataTest;
-import cc.kune.core.server.manager.impl.SearchResult;
import cc.kune.core.shared.dto.GroupType;
import cc.kune.domain.AccessLists;
import cc.kune.domain.Group;
Modified: trunk/src/test/java/cc/kune/core/server/manager/TagUserContentTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/manager/TagUserContentTest.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/test/java/cc/kune/core/server/manager/TagUserContentTest.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -29,7 +29,7 @@
import cc.kune.core.server.PersistencePreLoadedDataTest;
import cc.kune.core.server.manager.TagManager;
-import cc.kune.core.server.manager.TagUserContentManagerDefault;
+import cc.kune.core.server.manager.impl.TagUserContentManagerDefault;
import cc.kune.domain.Tag;
import cc.kune.domain.TagUserContent;
import cc.kune.domain.finders.TagUserContentFinder;
Modified: trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -34,7 +34,6 @@
import cc.kune.core.client.errors.GroupShortNameInUseException;
import cc.kune.core.client.errors.I18nNotFoundException;
import cc.kune.core.server.PersistencePreLoadedDataTest;
-import cc.kune.core.server.manager.impl.SearchResult;
import cc.kune.core.shared.domain.UserSNetVisibility;
import cc.kune.domain.Group;
import cc.kune.domain.User;
Modified: trunk/src/test/java/cc/kune/gspace/client/tags/TagsSummaryPresenterTest.java
===================================================================
--- trunk/src/test/java/cc/kune/gspace/client/tags/TagsSummaryPresenterTest.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/test/java/cc/kune/gspace/client/tags/TagsSummaryPresenterTest.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -25,9 +25,9 @@
import org.junit.Test;
import org.mockito.Mockito;
-import cc.kune.core.client.state.EventBusTester;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
+import cc.kune.core.client.state.impl.EventBusTester;
import cc.kune.core.shared.domain.TagCloudResult;
import cc.kune.core.shared.domain.TagCount;
import cc.kune.core.shared.dto.StateContainerDTO;
Modified: trunk/src/test/java/cc/kune/gspace/client/tool/selector/ToolSelectorPresenterTest.java
===================================================================
--- trunk/src/test/java/cc/kune/gspace/client/tool/selector/ToolSelectorPresenterTest.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/test/java/cc/kune/gspace/client/tool/selector/ToolSelectorPresenterTest.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -23,8 +23,8 @@
import org.junit.Test;
import org.mockito.Mockito;
-import cc.kune.core.client.state.EventBusTester;
import cc.kune.core.client.state.StateManager;
+import cc.kune.core.client.state.impl.EventBusTester;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.gspace.client.tool.selector.ToolSelectorPresenter.ToolSelectorProxy;
import cc.kune.gspace.client.tool.selector.ToolSelectorPresenter.ToolSelectorView;
Modified: trunk/src/test/java/cc/kune/wave/server/KuneAgentTest.java
===================================================================
--- trunk/src/test/java/cc/kune/wave/server/KuneAgentTest.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/test/java/cc/kune/wave/server/KuneAgentTest.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -37,6 +37,8 @@
import org.waveprotocol.wave.model.wave.ParticipantId;
import org.waveprotocol.wave.model.waveref.WaveRef;
+import cc.kune.wave.server.kspecific.KuneAgent;
+
import com.google.common.collect.Lists;
import com.google.wave.api.Wavelet;
Modified: trunk/src/test/java/cc/kune/wave/server/KuneWaveServiceDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/wave/server/KuneWaveServiceDefaultTest.java 2012-01-06 20:54:28 UTC (rev 1655)
+++ trunk/src/test/java/cc/kune/wave/server/KuneWaveServiceDefaultTest.java 2012-01-08 23:06:53 UTC (rev 1656)
@@ -40,6 +40,7 @@
import cc.kune.core.client.errors.DefaultException;
import cc.kune.core.server.integration.IntegrationTest;
import cc.kune.core.server.integration.IntegrationTestHelper;
+import cc.kune.wave.server.kspecific.KuneWaveService;
import com.google.inject.Inject;
import com.google.wave.api.Element;
1
0
r1655 - in trunk/src/main/java/cc/kune: core/client/auth core/client/events core/client/state core/client/ui core/server core/server/notifier core/server/tool wave/server
by Vicente J. Ruiz Jurado 06 Jan '12
by Vicente J. Ruiz Jurado 06 Jan '12
06 Jan '12
Author: vjrj_
Date: 2012-01-06 21:54:28 +0100 (Fri, 06 Jan 2012)
New Revision: 1655
Modified:
trunk/src/main/java/cc/kune/core/client/auth/WaveClientSimpleAuthenticator.java
trunk/src/main/java/cc/kune/core/client/events/InboxUnreadUpdatedEvent.java
trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java
trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java
trunk/src/main/java/cc/kune/core/client/state/UserSignOutEvent.java
trunk/src/main/java/cc/kune/core/client/ui/ContentPosition.java
trunk/src/main/java/cc/kune/core/server/InitData.java
trunk/src/main/java/cc/kune/core/server/notifier/NotifySender.java
trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java
trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java
trunk/src/main/java/cc/kune/core/server/tool/ServerToolRegistry.java
trunk/src/main/java/cc/kune/wave/server/WaveEmailNotifier.java
Log:
Dep refactorization
Modified: trunk/src/main/java/cc/kune/core/client/auth/WaveClientSimpleAuthenticator.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/WaveClientSimpleAuthenticator.java 2012-01-03 01:47:18 UTC (rev 1654)
+++ trunk/src/main/java/cc/kune/core/client/auth/WaveClientSimpleAuthenticator.java 2012-01-06 20:54:28 UTC (rev 1655)
@@ -19,10 +19,10 @@
*/
package cc.kune.core.client.auth;
-import cc.kune.common.client.log.Log;
-import cc.kune.common.client.notify.NotifyUser;
+import cc.kune.core.client.events.StackErrorEvent;
import cc.kune.gspace.client.GSpaceArmor;
+import com.google.gwt.event.shared.EventBus;
import com.google.gwt.http.client.Request;
import com.google.gwt.http.client.RequestBuilder;
import com.google.gwt.http.client.RequestCallback;
@@ -35,65 +35,68 @@
public class WaveClientSimpleAuthenticator {
- private final GSpaceArmor wsArmor;
+ private final EventBus eventBus;
+ private final GSpaceArmor wsArmor;
- @Inject
- public WaveClientSimpleAuthenticator(final GSpaceArmor wsArmor) {
- this.wsArmor = wsArmor;
- }
+ @Inject
+ public WaveClientSimpleAuthenticator(final GSpaceArmor wsArmor, final EventBus eventBus) {
+ this.wsArmor = wsArmor;
+ this.eventBus = eventBus;
+ }
- public void doLogin(final String userWithoutDomain, final String passwd, final AsyncCallback<Void> callback) {
- final RequestBuilder request = new RequestBuilder(RequestBuilder.POST, "/auth/signin");
- final StringBuffer params = new StringBuffer();
- params.append("address=");
- params.append(URL.encodeQueryString(userWithoutDomain));
- params.append("&password=");
- params.append(URL.encodeQueryString(passwd));
- params.append("&signIn=");
- params.append(URL.encodeQueryString("Sign in"));
- try {
- request.setHeader("Content-Type", "application/x-www-form-urlencoded");
- request.sendRequest(params.toString(), new RequestCallback() {
- @Override
- public void onError(final Request request, final Throwable exception) {
- NotifyUser.error(exception.getStackTrace().toString(), true);
- callback.onFailure(exception);
- }
+ public void doLogin(final String userWithoutDomain, final String passwd,
+ final AsyncCallback<Void> callback) {
+ final RequestBuilder request = new RequestBuilder(RequestBuilder.POST, "/auth/signin");
+ final StringBuffer params = new StringBuffer();
+ params.append("address=");
+ params.append(URL.encodeQueryString(userWithoutDomain));
+ params.append("&password=");
+ params.append(URL.encodeQueryString(passwd));
+ params.append("&signIn=");
+ params.append(URL.encodeQueryString("Sign in"));
+ try {
+ request.setHeader("Content-Type", "application/x-www-form-urlencoded");
+ request.sendRequest(params.toString(), new RequestCallback() {
+ @Override
+ public void onError(final Request request, final Throwable exception) {
+ StackErrorEvent.fire(eventBus, exception);
+ callback.onFailure(exception);
+ }
- @Override
- public void onResponseReceived(final Request request, final Response response) {
- callback.onSuccess(null);
- }
- });
- } catch (final RequestException e) {
- Log.error(e.getStackTrace().toString());
+ @Override
+ public void onResponseReceived(final Request request, final Response response) {
+ callback.onSuccess(null);
}
+ });
+ } catch (final RequestException e) {
+ StackErrorEvent.fire(eventBus, e);
}
+ }
- public void doLogout(final AsyncCallback<Void> callback) {
- // Original: <a href=\"/auth/signout?r=/\">"
- final RequestBuilder request = new RequestBuilder(RequestBuilder.GET, "/auth/signout");
- try {
- request.setHeader("Content-Type", "application/x-www-form-urlencoded");
- final StringBuffer params = new StringBuffer();
- request.sendRequest(params.toString(), new RequestCallback() {
- @Override
- public void onError(final Request request, final Throwable exception) {
- NotifyUser.error(exception.getStackTrace().toString(), true);
- callback.onFailure(exception);
- }
+ public void doLogout(final AsyncCallback<Void> callback) {
+ // Original: <a href=\"/auth/signout?r=/\">"
+ final RequestBuilder request = new RequestBuilder(RequestBuilder.GET, "/auth/signout");
+ try {
+ request.setHeader("Content-Type", "application/x-www-form-urlencoded");
+ final StringBuffer params = new StringBuffer();
+ request.sendRequest(params.toString(), new RequestCallback() {
+ @Override
+ public void onError(final Request request, final Throwable exception) {
+ StackErrorEvent.fire(eventBus, exception);
+ callback.onFailure(exception);
+ }
- @Override
- public void onResponseReceived(final Request request, final Response response) {
- callback.onSuccess(null);
- }
- });
- } catch (final RequestException e) {
- Log.error(e.getStackTrace().toString());
+ @Override
+ public void onResponseReceived(final Request request, final Response response) {
+ callback.onSuccess(null);
}
+ });
+ } catch (final RequestException e) {
+ StackErrorEvent.fire(eventBus, e);
}
+ }
- public String getCookieTokenValue() {
- return Cookies.getCookie("JSESSIONID");
- }
+ public String getCookieTokenValue() {
+ return Cookies.getCookie("JSESSIONID");
+ }
}
Modified: trunk/src/main/java/cc/kune/core/client/events/InboxUnreadUpdatedEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/events/InboxUnreadUpdatedEvent.java 2012-01-03 01:47:18 UTC (rev 1654)
+++ trunk/src/main/java/cc/kune/core/client/events/InboxUnreadUpdatedEvent.java 2012-01-06 20:54:28 UTC (rev 1655)
@@ -94,8 +94,8 @@
@Override
public int hashCode() {
int hashCode = 23;
- hashCode = (hashCode * 37) + new Integer(count).hashCode();
- hashCode = (hashCode * 37) + new Boolean(greater).hashCode();
+ hashCode = (hashCode * 37) + Integer.valueOf(count).hashCode();
+ hashCode = (hashCode * 37) + Boolean.valueOf(greater).hashCode();
return hashCode;
}
Modified: trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java 2012-01-03 01:47:18 UTC (rev 1654)
+++ trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
@@ -104,7 +104,7 @@
if (countriesArray == null) {
countriesArray = mapCountries();
}
- return countriesArray;
+ return countriesArray.clone();
}
@Override
@@ -192,7 +192,7 @@
if (languagesArray == null) {
languagesArray = mapLangs();
}
- return languagesArray;
+ return languagesArray.clone();
}
@Override
@@ -216,7 +216,7 @@
if (timezonesArray == null) {
mapTimezones();
}
- return timezonesArray;
+ return timezonesArray.clone();
}
@Override
Modified: trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java 2012-01-03 01:47:18 UTC (rev 1654)
+++ trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
@@ -267,7 +267,7 @@
// Log.debug("Is not a special hash");
// token is not one of #newgroup #signin #translate ...
final String nToken = newHistoryToken != null ? newHistoryToken.toLowerCase() : null;
- if (tokenMatcher.hasRedirect(nToken)) {
+ if (nToken != null && tokenMatcher.hasRedirect(nToken)) {
final Pair<String, String> redirect = tokenMatcher.getRedirect(nToken);
final String firstToken = redirect.getLeft();
final String sndToken = redirect.getRight();
Modified: trunk/src/main/java/cc/kune/core/client/state/UserSignOutEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/UserSignOutEvent.java 2012-01-03 01:47:18 UTC (rev 1654)
+++ trunk/src/main/java/cc/kune/core/client/state/UserSignOutEvent.java 2012-01-06 20:54:28 UTC (rev 1655)
@@ -25,7 +25,7 @@
import com.google.gwt.event.shared.HasHandlers;
import com.gwtplatform.mvp.client.HasEventBus;
-public class UserSignOutEvent extends GwtEvent<UserSignOutEvent.UserSignOutHandler> {
+public class UserSignOutEvent extends GwtEvent<UserSignOutEvent.UserSignOutHandler> {
public interface HasUserSignOutHandlers extends HasHandlers {
HandlerRegistration addUserSignOutHandler(UserSignOutHandler handler);
@@ -37,7 +37,7 @@
private static final Type<UserSignOutHandler> TYPE = new Type<UserSignOutHandler>();
- public static void fire(HasEventBus source) {
+ public static void fire(final HasEventBus source) {
source.fireEvent(new UserSignOutEvent());
}
@@ -45,31 +45,28 @@
return TYPE;
}
-
public UserSignOutEvent() {
}
@Override
- public Type<UserSignOutHandler> getAssociatedType() {
- return TYPE;
- }
-
- @Override
- protected void dispatch(UserSignOutHandler handler) {
+ protected void dispatch(final UserSignOutHandler handler) {
handler.onUserSignOut(this);
}
@Override
- public boolean equals(Object other) {
+ public boolean equals(final Object other) {
if (other != null && other.getClass().equals(this.getClass())) {
- UserSignOutEvent o = (UserSignOutEvent) other;
- return true
- ;
+ return true;
}
return false;
}
@Override
+ public Type<UserSignOutHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
public int hashCode() {
int hashCode = 23;
hashCode = (hashCode * 37) + getClass().hashCode();
@@ -78,8 +75,7 @@
@Override
public String toString() {
- return "UserSignOutEvent["
- + "]";
+ return "UserSignOutEvent[" + "]";
}
}
Modified: trunk/src/main/java/cc/kune/core/client/ui/ContentPosition.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/ui/ContentPosition.java 2012-01-03 01:47:18 UTC (rev 1654)
+++ trunk/src/main/java/cc/kune/core/client/ui/ContentPosition.java 2012-01-06 20:54:28 UTC (rev 1655)
@@ -35,7 +35,7 @@
public static final String RIGHT = "right";
private static I18nTranslationService i18n;
private static Object[][] positionObjs;
- public static final String[][] POSITIONS = { new String[] { LEFT }, new String[] { CENTER }, new String[] { RIGHT } };
+ protected static final String[][] POSITIONS = { new String[] { LEFT }, new String[] { CENTER }, new String[] { RIGHT } };
public synchronized static Object[][] getPositions() {
if (positionObjs == null) {
Modified: trunk/src/main/java/cc/kune/core/server/InitData.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/InitData.java 2012-01-03 01:47:18 UTC (rev 1654)
+++ trunk/src/main/java/cc/kune/core/server/InitData.java 2012-01-06 20:54:28 UTC (rev 1655)
@@ -58,7 +58,6 @@
private String oggEmbedObject;
private ReservedWordsRegistryDTO reservedWords;
private String siteCommonName;
- private String siteDomain;
private String siteLogoUrl;
private String siteLogoUrlOnOver;
private String siteShortName;
Modified: trunk/src/main/java/cc/kune/core/server/notifier/NotifySender.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/notifier/NotifySender.java 2012-01-03 01:47:18 UTC (rev 1654)
+++ trunk/src/main/java/cc/kune/core/server/notifier/NotifySender.java 2012-01-06 20:54:28 UTC (rev 1655)
@@ -1,6 +1,7 @@
package cc.kune.core.server.notifier;
import cc.kune.core.server.mail.FormatedString;
+import cc.kune.domain.User;
/**
* The Interface NotifySender.
@@ -21,10 +22,10 @@
* @param isHtml
* if the body is html
* @param recipients
- * the recipients shortnames (without domain)
+ * the recipients
*/
void send(NotifyType notifyType, FormatedString subject, FormatedString body, boolean isHtml,
- String... recipients);
+ User... recipients);
/**
* Send a message to the recipients (also translate the subject/body using the
@@ -38,8 +39,8 @@
* the body of the message (no translated) but with some %s
* {@link String.format} args
* @param recipients
- * the recipients shortnames (without domain)
+ * the recipients
*/
- void send(NotifyType notifyType, FormatedString subject, FormatedString body, String... recipients);
+ void send(NotifyType notifyType, FormatedString subject, FormatedString body, User... recipients);
}
Modified: trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java 2012-01-03 01:47:18 UTC (rev 1654)
+++ trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java 2012-01-06 20:54:28 UTC (rev 1655)
@@ -3,8 +3,6 @@
import java.io.File;
import java.io.IOException;
-import javax.persistence.NoResultException;
-
import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -13,7 +11,6 @@
import cc.kune.core.server.mail.FormatedString;
import cc.kune.core.server.mail.MailService;
import cc.kune.core.server.manager.I18nTranslationManager;
-import cc.kune.core.server.manager.UserManager;
import cc.kune.core.server.properties.KuneProperties;
import cc.kune.core.server.xmpp.XmppManager;
import cc.kune.core.shared.domain.dto.EmailNotificationFrequency;
@@ -30,18 +27,16 @@
private final String emailTemplate;
private final I18nTranslationManager i18n;
private final MailService mailService;
- private final UserManager userManager;
private final KuneWaveService waveService;
private final XmppManager xmppManager;
@Inject
public NotifySenderDefault(final MailService mailService, final KuneWaveService waveService,
- final XmppManager xmppManager, final UserManager userManager, final I18nTranslationManager i18n,
+ final XmppManager xmppManager, final I18nTranslationManager i18n,
final KuneProperties kuneProperties) throws IOException {
this.mailService = mailService;
this.waveService = waveService;
this.xmppManager = xmppManager;
- this.userManager = userManager;
this.i18n = i18n;
emailTemplate = FileUtils.readFileToString(new File(
kuneProperties.get(KuneProperties.SITE_EMAIL_TEMPLATE)));
@@ -51,15 +46,9 @@
@Override
public void send(final NotifyType notifyType, final FormatedString subject, final FormatedString body,
- final boolean isHtml, final String... recipients) {
- for (final String recipient : recipients) {
- User user;
- try {
- user = userManager.findByShortname(recipient);
- } catch (final NoResultException e) {
- LOG.info(String.format("The recipient %s is not a local user, don't notify", recipient));
- continue;
- }
+ final boolean isHtml, final User... recipients) {
+ for (final User user : recipients) {
+ final String username = user.getShortName();
if (subject.shouldBeTranslated()) {
// Translate per recipient language
final String subjectTranslation = i18n.getTranslation(user.getLanguage().getCode(),
@@ -79,7 +68,7 @@
}
switch (notifyType) {
case chat:
- xmppManager.sendMessage(recipient,
+ xmppManager.sendMessage(username,
String.format("<b>%s</b>%s", subject.getString(), body.getString()));
break;
case email:
@@ -94,7 +83,7 @@
if (isHtml) {
LOG.error("Wave html messages not supported yet");
}
- waveService.createWave(subject.getString(), body.getString(), recipient);
+ waveService.createWave(subject.getString(), body.getString(), username);
break;
}
}
@@ -102,7 +91,7 @@
@Override
public void send(final NotifyType notifyType, final FormatedString subject, final FormatedString body,
- final String... dests) {
+ final User... dests) {
send(notifyType, subject, body, false, dests);
}
Modified: trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java 2012-01-03 01:47:18 UTC (rev 1654)
+++ trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java 2012-01-06 20:54:28 UTC (rev 1655)
@@ -1,13 +1,19 @@
package cc.kune.core.server.notifier;
import java.util.Collection;
-import java.util.List;
+import java.util.HashSet;
import java.util.Set;
+import javax.persistence.NoResultException;
+
import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import cc.kune.core.server.mail.FormatedString;
import cc.kune.domain.Group;
+import cc.kune.domain.User;
+import cc.kune.domain.finders.UserFinder;
import com.google.inject.Inject;
import com.google.inject.Singleton;
@@ -15,40 +21,69 @@
@Singleton
public class NotifyService {
+ public static final Log LOG = LogFactory.getLog(NotifyService.class);
private final NotifyHtmlHelper helper;
private final NotifySender sender;
+ private final UserFinder userFinder;
@Inject
- NotifyService(final NotifySender sender, final NotifyHtmlHelper helper) {
+ NotifyService(final NotifySender sender, final NotifyHtmlHelper helper, final UserFinder userFinder) {
this.sender = sender;
this.helper = helper;
+ this.userFinder = userFinder;
}
+ private void getAllUserMembers(final Set<User> users, final Group groupToNotify,
+ final boolean onlyAdmins) {
+ final Collection<Group> members;
+ final Set<Group> admins = groupToNotify.getSocialNetwork().getAccessLists().getAdmins().getList();
+ if (onlyAdmins) {
+ members = admins;
+ } else {
+ final Set<Group> collabs = groupToNotify.getSocialNetwork().getAccessLists().getEditors().getList();
+ members = CollectionUtils.union(admins, collabs);
+ }
+ for (final Group member : members) {
+ if (member.isPersonal()) {
+ final String shortName = member.getShortName();
+ try {
+ final User user = userFinder.findByShortName(shortName);
+ users.add(user);
+ } catch (final NoResultException e) {
+ LOG.error(String.format("This personal group %s is not a local user", shortName));
+ }
+ } else {
+ // Is a group, so go recursively
+ getAllUserMembers(users, member, onlyAdmins);
+ }
+ }
+
+ }
+
@SuppressWarnings("unchecked")
public void notifyGroup(final Group groupToNotify, final Group groupSender, final String subject,
final String message) {
- final Set<Group> admins = groupToNotify.getSocialNetwork().getAccessLists().getAdmins().getList();
- final Set<Group> collabs = groupToNotify.getSocialNetwork().getAccessLists().getEditors().getList();
- final List<Group> groups = (List<Group>) CollectionUtils.union(admins, collabs);
- notifyToAll(groupSender, subject, message, groups);
+ final Set<User> members = new HashSet<User>();
+ getAllUserMembers(members, groupToNotify, false);
+ notifyToAll(groupSender, subject, message, members);
}
public void notifyGroupAdmins(final Group groupToNotify, final Group groupSender,
final String subject, final String message) {
- final Set<Group> admins = groupToNotify.getSocialNetwork().getAccessLists().getAdmins().getList();
- notifyToAll(groupSender, subject, message, admins);
+ final Set<User> adminMembers = new HashSet<User>();
+ getAllUserMembers(adminMembers, groupToNotify, true);
+ notifyToAll(groupSender, subject, message, adminMembers);
}
private void notifyToAll(final Group groupSender, final String subject, final String message,
- final Collection<Group> groups) {
- for (final Group to : groups) {
+ final Collection<User> users) {
+ for (final User to : users) {
sender.send(NotifyType.email, FormatedString.build(subject),
- helper.groupNotification(groupSender.getShortName(), groupSender.hasLogo(), message),
- to.getShortName());
+ helper.groupNotification(groupSender.getShortName(), groupSender.hasLogo(), message), to);
}
}
- public void notifyUser(final String to, final Group group, final String subject, final String message) {
+ public void notifyUser(final User to, final Group group, final String subject, final String message) {
sender.send(NotifyType.email, FormatedString.build(subject),
helper.groupNotification(group.getShortName(), group.hasLogo(), message), to);
}
Modified: trunk/src/main/java/cc/kune/core/server/tool/ServerToolRegistry.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/tool/ServerToolRegistry.java 2012-01-03 01:47:18 UTC (rev 1654)
+++ trunk/src/main/java/cc/kune/core/server/tool/ServerToolRegistry.java 2012-01-06 20:54:28 UTC (rev 1655)
@@ -34,7 +34,7 @@
@Singleton
public class ServerToolRegistry {
- public static List<String> emptyToolList = new ArrayList<String>();
+ public static final List<String> emptyToolList = new ArrayList<String>();
static Log log = LogFactory.getLog(ServerToolRegistry.class);
Modified: trunk/src/main/java/cc/kune/wave/server/WaveEmailNotifier.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/WaveEmailNotifier.java 2012-01-03 01:47:18 UTC (rev 1654)
+++ trunk/src/main/java/cc/kune/wave/server/WaveEmailNotifier.java 2012-01-06 20:54:28 UTC (rev 1655)
@@ -1,5 +1,7 @@
package cc.kune.wave.server;
+import javax.persistence.NoResultException;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.waveprotocol.box.common.DeltaSequence;
@@ -23,6 +25,8 @@
import cc.kune.core.server.notifier.NotifyType;
import cc.kune.core.server.notifier.UsersOnline;
import cc.kune.core.server.properties.KuneBasicProperties;
+import cc.kune.domain.User;
+import cc.kune.domain.finders.UserFinder;
import com.google.inject.Inject;
@@ -33,7 +37,7 @@
@Inject
public WaveEmailNotifier(final WaveBus waveBus, final NotifySender notifyService,
final UsersOnline usersOnline, final KuneBasicProperties basicProperties,
- final ParticipantUtils partUtils) {
+ final ParticipantUtils partUtils, final UserFinder userFinder) {
waveBus.subscribe(new Subscriber() {
@Override
public void waveletCommitted(final WaveletName waveletName, final HashedVersion version) {
@@ -48,20 +52,25 @@
for (final TransformedWaveletDelta delta : deltas) {
for (final WaveletOperation op : delta) {
if (op instanceof AddParticipant) {
- final ParticipantId user = ((AddParticipant) op).getParticipantId();
+ final ParticipantId participant = ((AddParticipant) op).getParticipantId();
final String url = KuneWaveUtils.getUrl(WaveRef.of(wavelet.getWaveId(), waveletId));
final FormatedString body = FormatedString.build(
"Hi there,<br><br>You have a new message in %s. <a href=\"%s#%s\">Read more</a>.<br>",
basicProperties.getSiteCommonName(), basicProperties.getSiteUrl(), url);
- final String address = user.getAddress();
+ final String address = participant.getAddress();
if (partUtils.isLocal(address)) {
final String userName = partUtils.getAddressName(address);
// FIXME only for testing
- if (true || !usersOnline.isLogged(userName)) {
- notifyService.send(NotifyType.email, FormatedString.build("You have a new message"),
- body, true, userName);
- notifyService.send(NotifyType.chat, FormatedString.build("New message"), body, true,
- userName);
+ try {
+ final User user = userFinder.findByShortName(userName);
+ if (true || !usersOnline.isLogged(userName)) {
+ notifyService.send(NotifyType.email, FormatedString.build("You have a new message"),
+ body, true, user);
+ notifyService.send(NotifyType.chat, FormatedString.build("New message"), body, true,
+ user);
+ }
+ } catch (final NoResultException e) {
+ // Seems is not a local user
}
}
} else if (op instanceof WaveletBlipOperation) {
1
0
r1654 - in trunk/src/main/java/cc/kune: client core/client core/client/auth core/client/groups/newgroup core/client/state core/server core/server/error core/server/manager/impl core/server/properties core/server/rack core/server/rack/filters/rest gspace/client
by Vicente J. Ruiz Jurado 03 Jan '12
by Vicente J. Ruiz Jurado 03 Jan '12
03 Jan '12
Author: vjrj_
Date: 2012-01-03 02:47:18 +0100 (Tue, 03 Jan 2012)
New Revision: 1654
Added:
trunk/src/main/java/cc/kune/core/server/error/
trunk/src/main/java/cc/kune/core/server/error/ServerException.java
Removed:
trunk/src/main/java/cc/kune/core/server/ServerException.java
Modified:
trunk/src/main/java/cc/kune/client/OnAppStartFactory.java
trunk/src/main/java/cc/kune/core/client/CoreParts.java
trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java
trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java
trunk/src/main/java/cc/kune/core/client/state/SiteTokenListeners.java
trunk/src/main/java/cc/kune/core/server/KunePersistenceService.java
trunk/src/main/java/cc/kune/core/server/manager/impl/ServerManagerException.java
trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
trunk/src/main/java/cc/kune/core/server/properties/KunePropertiesDefault.java
trunk/src/main/java/cc/kune/core/server/rack/RackServletFilter.java
trunk/src/main/java/cc/kune/core/server/rack/filters/rest/JSONLibRESTSerializer.java
trunk/src/main/java/cc/kune/core/server/rack/filters/rest/RESTMethod.java
trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java
Log:
Removing some dep. cycles
Modified: trunk/src/main/java/cc/kune/client/OnAppStartFactory.java
===================================================================
--- trunk/src/main/java/cc/kune/client/OnAppStartFactory.java 2012-01-02 20:12:42 UTC (rev 1653)
+++ trunk/src/main/java/cc/kune/client/OnAppStartFactory.java 2012-01-03 01:47:18 UTC (rev 1654)
@@ -19,19 +19,26 @@
*/
package cc.kune.client;
+import cc.kune.core.client.auth.SignIn;
+import cc.kune.core.client.groups.newgroup.NewGroup;
import cc.kune.core.client.init.AppStartEvent;
import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
import cc.kune.core.client.state.Session;
+import cc.kune.core.client.state.SiteTokenListeners;
import com.google.inject.Inject;
+import com.google.inject.Provider;
public class OnAppStartFactory {
@Inject
- public OnAppStartFactory(final Session session) {
+ public OnAppStartFactory(final Session session, final Provider<NewGroup> newGroup,
+ final Provider<SignIn> signIn, final SiteTokenListeners tokenListener) {
session.onAppStart(true, new AppStartHandler() {
@Override
public void onAppStart(final AppStartEvent event) {
+ newGroup.get();
+ //
}
});
}
Modified: trunk/src/main/java/cc/kune/core/client/CoreParts.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/CoreParts.java 2012-01-02 20:12:42 UTC (rev 1653)
+++ trunk/src/main/java/cc/kune/core/client/CoreParts.java 2012-01-03 01:47:18 UTC (rev 1654)
@@ -20,16 +20,27 @@
package cc.kune.core.client;
import cc.kune.core.client.auth.AnonUsersManager;
+import cc.kune.core.client.auth.Register;
+import cc.kune.core.client.auth.SignIn;
+import cc.kune.core.client.groups.newgroup.NewGroup;
import cc.kune.core.client.init.AppStartEvent;
import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
+import cc.kune.core.client.sitebar.AboutKuneDialog;
import cc.kune.core.client.sitebar.SiteUserOptionsPresenter;
+import cc.kune.core.client.sitebar.spaces.Space;
+import cc.kune.core.client.sitebar.spaces.SpaceSelectEvent;
import cc.kune.core.client.sitebar.spaces.SpaceSelectorPresenter;
import cc.kune.core.client.sn.GroupSNPresenter;
import cc.kune.core.client.sn.UserSNPresenter;
import cc.kune.core.client.sn.actions.registry.GroupSNConfActions;
import cc.kune.core.client.sn.actions.registry.UserSNConfActions;
+import cc.kune.core.client.state.HistoryTokenCallback;
import cc.kune.core.client.state.Session;
+import cc.kune.core.client.state.SiteTokenListeners;
+import cc.kune.core.client.state.SiteTokens;
+import cc.kune.core.client.sub.SubtitlesManager;
+import com.google.gwt.event.shared.EventBus;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -41,7 +52,10 @@
final Provider<GroupSNConfActions> groupMembersConfActions,
final Provider<UserSNConfActions> userSNConfActions, final Provider<AnonUsersManager> anonUsers,
final Provider<SiteUserOptionsPresenter> userOptions,
- final Provider<SpaceSelectorPresenter> spaceSelector) {
+ final Provider<SpaceSelectorPresenter> spaceSelector, final SiteTokenListeners tokenListener,
+ final Provider<SignIn> signIn, final Provider<Register> register,
+ final Provider<AboutKuneDialog> aboutKuneDialog, final Provider<NewGroup> newGroup,
+ final Provider<SubtitlesManager> subProvider, final EventBus eventBus) {
session.onAppStart(true, new AppStartHandler() {
@Override
public void onAppStart(final AppStartEvent event) {
@@ -54,5 +68,48 @@
spaceSelector.get();
}
});
+ tokenListener.put(SiteTokens.SIGNIN, new HistoryTokenCallback() {
+ @Override
+ public void onHistoryToken(final String token) {
+ signIn.get().showSignInDialog();
+ }
+ });
+ tokenListener.put(SiteTokens.ABOUTKUNE, new HistoryTokenCallback() {
+ @Override
+ public void onHistoryToken(final String token) {
+ // FIXME, something to come back
+ aboutKuneDialog.get().showCentered();
+ }
+ });
+ tokenListener.put(SiteTokens.REGISTER, new HistoryTokenCallback() {
+ @Override
+ public void onHistoryToken(final String token) {
+ register.get().doRegister();
+ }
+ });
+ tokenListener.put(SiteTokens.NEWGROUP, new HistoryTokenCallback() {
+ @Override
+ public void onHistoryToken(final String token) {
+ newGroup.get().doNewGroup();
+ }
+ });
+ tokenListener.put(SiteTokens.SUBTITLES, new HistoryTokenCallback() {
+ @Override
+ public void onHistoryToken(final String token) {
+ subProvider.get().show(token);
+ }
+ });
+ tokenListener.put(SiteTokens.HOME, new HistoryTokenCallback() {
+ @Override
+ public void onHistoryToken(final String token) {
+ SpaceSelectEvent.fire(eventBus, Space.homeSpace);
+ }
+ });
+ tokenListener.put(SiteTokens.WAVEINBOX, new HistoryTokenCallback() {
+ @Override
+ public void onHistoryToken(final String token) {
+ SpaceSelectEvent.fire(eventBus, Space.userSpace);
+ }
+ });
}
}
Modified: trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java 2012-01-02 20:12:42 UTC (rev 1653)
+++ trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java 2012-01-03 01:47:18 UTC (rev 1654)
@@ -120,7 +120,6 @@
@Override
public void onSuccess(final Void arg) {
-
final AsyncCallback<UserInfoDTO> callback = new AsyncCallback<UserInfoDTO>() {
@Override
public void onFailure(final Throwable caught) {
Modified: trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java 2012-01-02 20:12:42 UTC (rev 1653)
+++ trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java 2012-01-03 01:47:18 UTC (rev 1654)
@@ -29,9 +29,7 @@
import cc.kune.core.client.resources.CoreMessages;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.rpcservices.GroupServiceAsync;
-import cc.kune.core.client.state.HistoryTokenCallback;
import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.SiteTokens;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.dto.GroupDTO;
import cc.kune.core.shared.dto.GroupType;
@@ -64,12 +62,10 @@
}
private final GroupOptions groupOptions;
-
private final Provider<GroupServiceAsync> groupService;
private final I18nTranslationService i18n;
private final Session session;
private final Provider<SignIn> signIn;
-
private final StateManager stateManager;
@Inject
@@ -84,12 +80,6 @@
this.groupService = groupService;
this.signIn = signIn;
this.groupOptions = groupOptions;
- stateManager.addSiteToken(SiteTokens.NEWGROUP, new HistoryTokenCallback() {
- @Override
- public void onHistoryToken(final String token) {
- doNewGroup();
- }
- });
}
@Override
Modified: trunk/src/main/java/cc/kune/core/client/state/SiteTokenListeners.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/SiteTokenListeners.java 2012-01-02 20:12:42 UTC (rev 1653)
+++ trunk/src/main/java/cc/kune/core/client/state/SiteTokenListeners.java 2012-01-03 01:47:18 UTC (rev 1654)
@@ -21,97 +21,6 @@
import java.util.HashMap;
-import cc.kune.core.client.auth.Register;
-import cc.kune.core.client.auth.SignIn;
-import cc.kune.core.client.groups.newgroup.NewGroup;
-import cc.kune.core.client.sitebar.AboutKuneDialog;
-import cc.kune.core.client.sitebar.spaces.Space;
-import cc.kune.core.client.sitebar.spaces.SpaceSelectEvent;
-import cc.kune.core.client.sub.SubtitlesManager;
-import cc.kune.gspace.client.i18n.I18nTranslator;
-
-import com.google.gwt.event.shared.EventBus;
-import com.google.inject.Inject;
-import com.google.inject.Provider;
-
@SuppressWarnings("serial")
public class SiteTokenListeners extends HashMap<String, HistoryTokenCallback> {
- private final Provider<AboutKuneDialog> aboutKuneDialog;
- private final EventBus eventBus;
- private final Provider<NewGroup> newGroup;
- private final Provider<Register> register;
- private final Session session;
- private final Provider<SignIn> signIn;
- private final Provider<SubtitlesManager> subProvider;
- private final Provider<I18nTranslator> translator;
-
- @Inject
- public SiteTokenListeners(final Session session, final EventBus eventBus,
- final Provider<SignIn> signIn, final Provider<Register> register,
- final Provider<NewGroup> newGroup, final Provider<AboutKuneDialog> aboutKuneDialog,
- final Provider<I18nTranslator> translator, final Provider<SubtitlesManager> subProvider) {
- this.session = session;
- this.eventBus = eventBus;
- this.signIn = signIn;
- this.register = register;
- this.newGroup = newGroup;
- this.aboutKuneDialog = aboutKuneDialog;
- this.translator = translator;
- this.subProvider = subProvider;
- putValues();
- }
-
- private void putValues() {
- put(SiteTokens.HOME, new HistoryTokenCallback() {
- @Override
- public void onHistoryToken(final String token) {
- SpaceSelectEvent.fire(eventBus, Space.homeSpace);
- }
- });
- put(SiteTokens.WAVEINBOX, new HistoryTokenCallback() {
- @Override
- public void onHistoryToken(final String token) {
- SpaceSelectEvent.fire(eventBus, Space.userSpace);
- }
- });
- put(SiteTokens.SIGNIN, new HistoryTokenCallback() {
- @Override
- public void onHistoryToken(final String token) {
- signIn.get().showSignInDialog();
- }
- });
- put(SiteTokens.REGISTER, new HistoryTokenCallback() {
- @Override
- public void onHistoryToken(final String token) {
- register.get().doRegister();
- }
- });
- put(SiteTokens.NEWGROUP, new HistoryTokenCallback() {
- @Override
- public void onHistoryToken(final String token) {
- newGroup.get().doNewGroup();
- }
- });
- put(SiteTokens.ABOUTKUNE, new HistoryTokenCallback() {
- @Override
- public void onHistoryToken(final String token) {
- // FIXME, something to come back
- aboutKuneDialog.get().showCentered();
- }
- });
- put(SiteTokens.TRANSLATE, new HistoryTokenCallback() {
- @Override
- public void onHistoryToken(final String token) {
- if (session.isLogged() && session.getInitData().isTranslatorEnabled()) {
- translator.get().show();
- }
- }
- });
- put(SiteTokens.SUBTITLES, new HistoryTokenCallback() {
- @Override
- public void onHistoryToken(final String token) {
- subProvider.get().show(token);
- }
- });
- }
}
Modified: trunk/src/main/java/cc/kune/core/server/KunePersistenceService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/KunePersistenceService.java 2012-01-02 20:12:42 UTC (rev 1653)
+++ trunk/src/main/java/cc/kune/core/server/KunePersistenceService.java 2012-01-03 01:47:18 UTC (rev 1654)
@@ -19,6 +19,7 @@
*/
package cc.kune.core.server;
+import cc.kune.core.server.error.ServerException;
import cc.kune.core.server.init.DatabaseInitializer;
import com.google.inject.Inject;
Deleted: trunk/src/main/java/cc/kune/core/server/ServerException.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/ServerException.java 2012-01-02 20:12:42 UTC (rev 1653)
+++ trunk/src/main/java/cc/kune/core/server/ServerException.java 2012-01-03 01:47:18 UTC (rev 1654)
@@ -1,50 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.server;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-public class ServerException extends RuntimeException {
-
- private static final long serialVersionUID = 2028618233098694418L;
-
- private static final Log LOG = LogFactory.getLog(ServerException.class);
-
- public ServerException() {
- super();
- }
-
- public ServerException(final String text) {
- super(text);
- LOG.error(text);
- }
-
- public ServerException(final String text, final Throwable cause) {
- super(text, cause);
- LOG.error(text, cause);
- }
-
- public ServerException(final Throwable cause) {
- super(cause);
- LOG.error("ServerManagerException", cause);
- }
-
-}
Copied: trunk/src/main/java/cc/kune/core/server/error/ServerException.java (from rev 1647, trunk/src/main/java/cc/kune/core/server/ServerException.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/server/error/ServerException.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/error/ServerException.java 2012-01-03 01:47:18 UTC (rev 1654)
@@ -0,0 +1,50 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.server.error;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+public class ServerException extends RuntimeException {
+
+ private static final Log LOG = LogFactory.getLog(ServerException.class);
+
+ private static final long serialVersionUID = 2028618233098694418L;
+
+ public ServerException() {
+ super();
+ }
+
+ public ServerException(final String text) {
+ super(text);
+ LOG.error(text);
+ }
+
+ public ServerException(final String text, final Throwable cause) {
+ super(text, cause);
+ LOG.error(text, cause);
+ }
+
+ public ServerException(final Throwable cause) {
+ super(cause);
+ LOG.error("ServerException", cause);
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/ServerManagerException.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/ServerManagerException.java 2012-01-02 20:12:42 UTC (rev 1653)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/ServerManagerException.java 2012-01-03 01:47:18 UTC (rev 1654)
@@ -19,7 +19,7 @@
*/
package cc.kune.core.server.manager.impl;
-import cc.kune.core.server.ServerException;
+import cc.kune.core.server.error.ServerException;
public class ServerManagerException extends ServerException {
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java 2012-01-02 20:12:42 UTC (rev 1653)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java 2012-01-03 01:47:18 UTC (rev 1654)
@@ -29,8 +29,8 @@
import cc.kune.core.client.errors.DefaultException;
import cc.kune.core.client.errors.LastAdminInGroupException;
import cc.kune.core.client.errors.UserMustBeLoggedException;
-import cc.kune.core.server.ServerException;
import cc.kune.core.server.access.AccessRightsService;
+import cc.kune.core.server.error.ServerException;
import cc.kune.core.server.manager.SocialNetworkManager;
import cc.kune.core.server.manager.UserManager;
import cc.kune.core.shared.domain.AdmissionType;
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2012-01-02 20:12:42 UTC (rev 1653)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2012-01-03 01:47:18 UTC (rev 1654)
@@ -52,12 +52,11 @@
import cc.kune.core.client.errors.I18nNotFoundException;
import cc.kune.core.client.errors.UserRegistrationException;
import cc.kune.core.client.errors.WrongCurrentPasswordException;
-import cc.kune.core.server.mail.FormatedString;
-import cc.kune.core.server.mail.MailService;
import cc.kune.core.server.manager.GroupManager;
import cc.kune.core.server.manager.I18nCountryManager;
import cc.kune.core.server.manager.I18nLanguageManager;
import cc.kune.core.server.manager.UserManager;
+import cc.kune.core.server.notifier.NotifyService;
import cc.kune.core.server.properties.ChatProperties;
import cc.kune.core.server.properties.KuneBasicProperties;
import cc.kune.core.server.xmpp.ChatConnection;
@@ -89,7 +88,7 @@
private final I18nTranslationService i18n;
private final KuneWaveService kuneWaveManager;
private final I18nLanguageManager languageManager;
- private final MailService mailService;
+ private final NotifyService notifyService;
private final ParticipantUtils participantUtils;
private final KuneBasicProperties properties;
private final UserFinder userFinder;
@@ -104,7 +103,7 @@
final I18nTranslationService i18n, final CustomUserRegistrationServlet waveUserRegister,
final AccountStore waveAccountStore, final KuneWaveService kuneWaveManager,
final ParticipantUtils participantUtils, final KuneBasicProperties properties,
- final GroupManager groupManager, final MailService mailService) {
+ final GroupManager groupManager, final NotifyService notifyService) {
super(provider, User.class);
this.userFinder = finder;
this.languageManager = languageManager;
@@ -118,7 +117,7 @@
this.participantUtils = participantUtils;
this.properties = properties;
this.groupManager = groupManager;
- this.mailService = mailService;
+ this.notifyService = notifyService;
}
@Override
@@ -211,7 +210,10 @@
// Is this necessary? try to remove (used when we were setting the def
// content
// contentManager.save(userGroup.getDefaultContent());
- mailService.sendPlain(new FormatedString("Welcome", ""), new FormatedString("welcome"), email);
+
+ // FIXME: notifyService.
+ // mailService.sendPlain(new FormatedString("Welcome", ""), new
+ // FormatedString("welcome"), email);
return user;
} catch (final RuntimeException e) {
try {
Modified: trunk/src/main/java/cc/kune/core/server/properties/KunePropertiesDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/properties/KunePropertiesDefault.java 2012-01-02 20:12:42 UTC (rev 1653)
+++ trunk/src/main/java/cc/kune/core/server/properties/KunePropertiesDefault.java 2012-01-03 01:47:18 UTC (rev 1654)
@@ -27,7 +27,7 @@
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.configuration.SystemConfiguration;
-import cc.kune.core.server.ServerException;
+import cc.kune.core.server.error.ServerException;
import com.google.inject.Inject;
import com.google.inject.Singleton;
Modified: trunk/src/main/java/cc/kune/core/server/rack/RackServletFilter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rack/RackServletFilter.java 2012-01-02 20:12:42 UTC (rev 1653)
+++ trunk/src/main/java/cc/kune/core/server/rack/RackServletFilter.java 2012-01-03 01:47:18 UTC (rev 1654)
@@ -35,7 +35,7 @@
import org.quartz.SchedulerException;
import org.waveprotocol.box.server.rpc.ServerRpcProvider;
-import cc.kune.core.server.ServerException;
+import cc.kune.core.server.error.ServerException;
import cc.kune.core.server.rack.dock.Dock;
import cc.kune.core.server.rack.dock.RequestMatcher;
import cc.kune.core.server.scheduler.CronServerTasksManager;
Modified: trunk/src/main/java/cc/kune/core/server/rack/filters/rest/JSONLibRESTSerializer.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rack/filters/rest/JSONLibRESTSerializer.java 2012-01-02 20:12:42 UTC (rev 1653)
+++ trunk/src/main/java/cc/kune/core/server/rack/filters/rest/JSONLibRESTSerializer.java 2012-01-03 01:47:18 UTC (rev 1654)
@@ -23,7 +23,7 @@
import net.sf.json.JsonConfig;
import net.sf.json.util.CycleDetectionStrategy;
-import cc.kune.core.server.ServerException;
+import cc.kune.core.server.error.ServerException;
public class JSONLibRESTSerializer implements RESTSerializer {
private final JsonConfig config;
Modified: trunk/src/main/java/cc/kune/core/server/rack/filters/rest/RESTMethod.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rack/filters/rest/RESTMethod.java 2012-01-02 20:12:42 UTC (rev 1653)
+++ trunk/src/main/java/cc/kune/core/server/rack/filters/rest/RESTMethod.java 2012-01-03 01:47:18 UTC (rev 1654)
@@ -21,7 +21,7 @@
import java.lang.reflect.Method;
-import cc.kune.core.server.ServerException;
+import cc.kune.core.server.error.ServerException;
public class RESTMethod {
public static final String FORMAT_JSON = "json";
Modified: trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java 2012-01-02 20:12:42 UTC (rev 1653)
+++ trunk/src/main/java/cc/kune/gspace/client/GSpaceParts.java 2012-01-03 01:47:18 UTC (rev 1654)
@@ -23,9 +23,13 @@
import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
import cc.kune.core.client.sitebar.search.SitebarSearchPresenter;
import cc.kune.core.client.sn.actions.WriteToBuddyHeaderButton;
+import cc.kune.core.client.state.HistoryTokenCallback;
import cc.kune.core.client.state.Session;
+import cc.kune.core.client.state.SiteTokenListeners;
+import cc.kune.core.client.state.SiteTokens;
import cc.kune.gspace.client.actions.GiveUsFeedbackBtn;
import cc.kune.gspace.client.i18n.I18nToTranslateGridPanel;
+import cc.kune.gspace.client.i18n.I18nTranslator;
import cc.kune.gspace.client.i18n.I18nTranslatorTabsCollection;
import cc.kune.gspace.client.i18n.SiteOptionsI18nTranslatorAction;
import cc.kune.gspace.client.options.GroupOptions;
@@ -74,10 +78,8 @@
final Provider<GiveUsFeedbackBtn> giveUsFeedback,
final Provider<I18nToTranslateGridPanel> toTrans,
final Provider<I18nTranslatorTabsCollection> gtranslator,
- final Provider<WriteToBuddyHeaderButton> writeToBuddie
-
- ) {
-
+ final Provider<I18nTranslator> translator, final Provider<WriteToBuddyHeaderButton> writeToBuddie,
+ final SiteTokenListeners tokenListener) {
session.onAppStart(true, new AppStartHandler() {
@Override
public void onAppStart(final AppStartEvent event) {
@@ -123,5 +125,13 @@
writeToBuddie.get();
}
});
+ tokenListener.put(SiteTokens.TRANSLATE, new HistoryTokenCallback() {
+ @Override
+ public void onHistoryToken(final String token) {
+ if (session.isLogged() && session.getInitData().isTranslatorEnabled()) {
+ translator.get().show();
+ }
+ }
+ });
}
}
1
0
Author: vjrj_
Date: 2012-01-02 21:12:42 +0100 (Mon, 02 Jan 2012)
New Revision: 1653
Added:
trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiBinding.java
trunk/src/main/java/cc/kune/common/client/actions/ui/DefaultGuiProvider.java
trunk/src/main/java/cc/kune/common/client/actions/ui/GuiBinding.java
trunk/src/main/java/cc/kune/common/client/actions/ui/GuiChildBinding.java
trunk/src/main/java/cc/kune/common/client/actions/ui/GuiProvider.java
trunk/src/main/java/cc/kune/common/client/notify/ProgressHideEvent.java
trunk/src/main/java/cc/kune/common/client/notify/ProgressShowEvent.java
trunk/src/main/java/cc/kune/common/client/notify/UserNotifyEvent.java
trunk/src/main/java/cc/kune/common/client/notify/events/
trunk/src/main/java/cc/kune/core/client/events/GoHomeEvent.java
trunk/src/main/java/cc/kune/core/client/events/StackErrorEvent.java
trunk/src/main/java/cc/kune/core/client/events/UserMustBeLoggedEvent.java
trunk/src/main/java/cc/kune/core/client/state/SessionExpirationManager.java
trunk/src/main/java/cc/kune/core/client/state/StateTokenUtils.java
trunk/src/main/java/cc/kune/domain/ParticipationData.java
trunk/src/main/java/cc/kune/domain/SocialNetworkData.java
trunk/src/main/java/cc/kune/domain/UserBuddiesData.java
Removed:
trunk/src/main/java/cc/kune/common/client/actions/ui/bind/
trunk/src/main/java/cc/kune/common/client/events/
trunk/src/main/java/cc/kune/common/client/notify/events/ProgressHideEvent.java
trunk/src/main/java/cc/kune/common/client/notify/events/ProgressShowEvent.java
trunk/src/main/java/cc/kune/common/client/notify/events/UserNotifyEvent.java
trunk/src/main/java/cc/kune/core/shared/dto/StateTokenUtils.java
trunk/src/main/java/cc/kune/domain/utils/ParticipationData.java
trunk/src/main/java/cc/kune/domain/utils/SocialNetworkData.java
trunk/src/main/java/cc/kune/domain/utils/UserBuddiesData.java
Modified:
trunk/src/main/java/cc/kune/client/KuneEntryPoint.java
trunk/src/main/java/cc/kune/client/KuneGinjector.java
trunk/src/main/java/cc/kune/common/client/SampleGinModule.java
trunk/src/main/java/cc/kune/common/client/SampleGinjector.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtGuiProvider.java
trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtSimpleGuiItem.java
trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtGuiProvider.java
trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractComposedGuiItem.java
trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java
trunk/src/main/java/cc/kune/common/client/actions/ui/ActionFlowPanel.java
trunk/src/main/java/cc/kune/common/client/actions/ui/ActionSimplePanel.java
trunk/src/main/java/cc/kune/common/client/notify/NotifyUser.java
trunk/src/main/java/cc/kune/core/client/CoreGinModule.java
trunk/src/main/java/cc/kune/core/client/auth/AnonUsersManager.java
trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java
trunk/src/main/java/cc/kune/core/client/cnt/ActionContentToolbarImpl.java
trunk/src/main/java/cc/kune/core/client/errors/ErrorHandler.java
trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java
trunk/src/main/java/cc/kune/core/client/init/AppStarterDefault.java
trunk/src/main/java/cc/kune/core/client/notify/msgs/UserNotifierPresenter.java
trunk/src/main/java/cc/kune/core/client/notify/msgs/UserNotifierViewImpl.java
trunk/src/main/java/cc/kune/core/client/notify/spiner/SpinerPresenter.java
trunk/src/main/java/cc/kune/core/client/sitebar/ErrorsDialog.java
trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java
trunk/src/main/java/cc/kune/core/client/sn/AbstractSNPanel.java
trunk/src/main/java/cc/kune/core/client/sn/GroupSNPanel.java
trunk/src/main/java/cc/kune/core/client/sn/UserSNPanel.java
trunk/src/main/java/cc/kune/core/client/state/ContentCacheDefault.java
trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java
trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java
trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java
trunk/src/main/java/cc/kune/core/server/mail/FormatedString.java
trunk/src/main/java/cc/kune/core/server/manager/SocialNetworkManager.java
trunk/src/main/java/cc/kune/core/server/manager/UserManager.java
trunk/src/main/java/cc/kune/core/server/manager/impl/KuneWaveManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
trunk/src/main/java/cc/kune/core/server/state/StateAbstract.java
trunk/src/main/java/cc/kune/core/server/users/UserInfoServiceDefault.java
trunk/src/main/java/cc/kune/core/shared/FileConstants.java
trunk/src/main/java/cc/kune/core/shared/utils/SharedFileDownloadUtils.java
trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java
trunk/src/main/java/cc/kune/gspace/client/themes/GSpaceThemeSelectorPanel.java
trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsTablePanel.java
trunk/src/main/java/cc/kune/pspace/client/PSpacePanel.java
trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java
trunk/src/main/java/cc/kune/wave/client/WebClient.java
trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java
trunk/src/main/resources/dozerBeanMapping.xml
trunk/src/test/java/cc/kune/core/server/manager/impl/SocialNetworkManagerMoreTest.java
trunk/src/test/java/cc/kune/core/server/mapper/MapperTest.java
Log:
Refactorization solving dep cycles
Modified: trunk/src/main/java/cc/kune/client/KuneEntryPoint.java
===================================================================
--- trunk/src/main/java/cc/kune/client/KuneEntryPoint.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/client/KuneEntryPoint.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -67,6 +67,7 @@
ginjector.getSpinerPresenter();
ginjector.getGlobalShortcutRegister().enable();
AsyncCallbackSimple.init(ginjector.getErrorHandler());
+ ginjector.getSessionExpirationManager();
ginjector.getEventLogger();
NotifyUser.init(ginjector.getEventBus(), ginjector.getI18n());
ginjector.getCorePresenter().get().forceReveal();
Modified: trunk/src/main/java/cc/kune/client/KuneGinjector.java
===================================================================
--- trunk/src/main/java/cc/kune/client/KuneGinjector.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/client/KuneGinjector.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -26,7 +26,7 @@
import cc.kune.chat.client.ChatGinModule;
import cc.kune.chat.client.ChatGinjector;
import cc.kune.common.client.actions.gwtui.GwtGuiProvider;
-import cc.kune.common.client.actions.ui.bind.GuiProvider;
+import cc.kune.common.client.actions.ui.GuiProvider;
import cc.kune.common.client.log.EventBusWithLogging;
import cc.kune.common.client.shortcuts.GlobalShortcutRegister;
import cc.kune.common.shared.i18n.I18nTranslationService;
@@ -46,6 +46,7 @@
import cc.kune.core.client.sitebar.spaces.SpaceSelectorPresenter;
import cc.kune.core.client.sn.GroupSNPresenter;
import cc.kune.core.client.sn.UserSNPresenter;
+import cc.kune.core.client.state.SessionExpirationManager;
import cc.kune.core.client.state.SiteTokenListeners;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.client.state.TokenMatcher;
@@ -116,10 +117,10 @@
GwtGuiProvider getGwtGuiProvider();
+ HSpaceParts getHSpaceParts();
+
// GxtGuiProvider getGxtGuiProvider();
- HSpaceParts getHSpaceParts();
-
AsyncProvider<HSpacePresenter> getHSpacePresenter();
I18nTranslationService getI18n();
@@ -136,6 +137,8 @@
AsyncProvider<RegisterPresenter> getRegisterPresenter();
+ SessionExpirationManager getSessionExpirationManager();
+
AsyncProvider<SignInPresenter> getSignInPresenter();
AsyncProvider<SitebarActionsPresenter> getSitebarActionsPresenter();
Modified: trunk/src/main/java/cc/kune/common/client/SampleGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/SampleGinModule.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/common/client/SampleGinModule.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -21,8 +21,8 @@
import cc.kune.common.client.actions.gwtui.GwtGuiProvider;
import cc.kune.common.client.actions.gxtui.GxtGuiProvider;
-import cc.kune.common.client.actions.ui.bind.DefaultGuiProvider;
-import cc.kune.common.client.actions.ui.bind.GuiProvider;
+import cc.kune.common.client.actions.ui.DefaultGuiProvider;
+import cc.kune.common.client.actions.ui.GuiProvider;
import cc.kune.common.client.shortcuts.DefaultGlobalShortcutRegister;
import cc.kune.common.client.shortcuts.GlobalShortcutRegister;
Modified: trunk/src/main/java/cc/kune/common/client/SampleGinjector.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/SampleGinjector.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/common/client/SampleGinjector.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -21,7 +21,7 @@
import cc.kune.common.client.actions.gwtui.GwtGuiProvider;
import cc.kune.common.client.actions.gxtui.GxtGuiProvider;
-import cc.kune.common.client.actions.ui.bind.GuiProvider;
+import cc.kune.common.client.actions.ui.GuiProvider;
import cc.kune.common.client.shortcuts.GlobalShortcutRegister;
import com.google.gwt.inject.client.GinModules;
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtGuiProvider.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtGuiProvider.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtGuiProvider.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -19,7 +19,7 @@
*/
package cc.kune.common.client.actions.gwtui;
-import cc.kune.common.client.actions.ui.bind.GuiProvider;
+import cc.kune.common.client.actions.ui.GuiProvider;
import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
import cc.kune.common.client.actions.ui.descrip.IconLabelDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuCheckItemDescriptor;
Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtSimpleGuiItem.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtSimpleGuiItem.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/GwtSimpleGuiItem.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -21,7 +21,7 @@
import cc.kune.common.client.actions.ui.AbstractComposedGuiItem;
import cc.kune.common.client.actions.ui.AbstractGuiItem;
-import cc.kune.common.client.actions.ui.bind.GuiProvider;
+import cc.kune.common.client.actions.ui.GuiProvider;
import cc.kune.common.shared.i18n.HasRTL;
import com.google.gwt.user.client.ui.HorizontalPanel;
Modified: trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtGuiProvider.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtGuiProvider.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtGuiProvider.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -20,7 +20,7 @@
package cc.kune.common.client.actions.gxtui;
import cc.kune.common.client.actions.gwtui.GwtIconLabelGui;
-import cc.kune.common.client.actions.ui.bind.GuiProvider;
+import cc.kune.common.client.actions.ui.GuiProvider;
import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
import cc.kune.common.client.actions.ui.descrip.IconLabelDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuCheckItemDescriptor;
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractComposedGuiItem.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractComposedGuiItem.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractComposedGuiItem.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -21,8 +21,6 @@
import java.util.List;
-import cc.kune.common.client.actions.ui.bind.GuiBinding;
-import cc.kune.common.client.actions.ui.bind.GuiProvider;
import cc.kune.common.client.actions.ui.descrip.AbstractParentGuiActionDescrip;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
Copied: trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiBinding.java (from rev 1647, trunk/src/main/java/cc/kune/common/client/actions/ui/bind/AbstractGuiBinding.java)
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiBinding.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiBinding.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -0,0 +1,41 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.common.client.actions.ui;
+
+import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
+
+public abstract class AbstractGuiBinding implements GuiBinding {
+
+ @Override
+ public AbstractGuiItem create(final GuiActionDescrip descriptor) { // NOPMD
+ // by
+ // vjrj
+ // on
+ // 18/01/11
+ // 0:47
+ return null;
+ }
+
+ @Override
+ public boolean shouldBeAdded() { // NOPMD by vjrj on 18/01/11 0:47
+ return true;
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -24,7 +24,6 @@
import cc.kune.common.client.actions.ActionEvent;
import cc.kune.common.client.actions.PropertyChangeEvent;
import cc.kune.common.client.actions.PropertyChangeListener;
-import cc.kune.common.client.actions.ui.bind.GuiBinding;
import cc.kune.common.client.actions.ui.descrip.DropTarget;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
import cc.kune.common.client.errors.NotImplementedException;
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/ActionFlowPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/ActionFlowPanel.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/ActionFlowPanel.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -19,7 +19,6 @@
*/
package cc.kune.common.client.actions.ui;
-import cc.kune.common.client.actions.ui.bind.GuiProvider;
import cc.kune.common.shared.i18n.HasRTL;
import com.google.gwt.user.client.ui.FlowPanel;
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/ActionSimplePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/ActionSimplePanel.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/ActionSimplePanel.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -19,7 +19,6 @@
*/
package cc.kune.common.client.actions.ui;
-import cc.kune.common.client.actions.ui.bind.GuiProvider;
import cc.kune.common.shared.i18n.HasRTL;
import com.google.gwt.user.client.ui.HorizontalPanel;
Copied: trunk/src/main/java/cc/kune/common/client/actions/ui/DefaultGuiProvider.java (from rev 1647, trunk/src/main/java/cc/kune/common/client/actions/ui/bind/DefaultGuiProvider.java)
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/DefaultGuiProvider.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/DefaultGuiProvider.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -0,0 +1,45 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.common.client.actions.ui;
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+import com.google.inject.Provider;
+
+public class DefaultGuiProvider implements GuiProvider {
+
+ private final Map<Class<?>, Provider<?>> map;
+
+ public DefaultGuiProvider() {
+ map = new HashMap<Class<?>, Provider<?>>();
+ }
+
+ @Override
+ public <T> GuiBinding get(final Class<T> classType) {
+ return (GuiBinding) map.get(classType).get();
+ }
+
+ @Override
+ public <T, Z> void register(final Class<T> classType, final Provider<Z> binding) {
+ map.put(classType, binding);
+ }
+}
Copied: trunk/src/main/java/cc/kune/common/client/actions/ui/GuiBinding.java (from rev 1647, trunk/src/main/java/cc/kune/common/client/actions/ui/bind/GuiBinding.java)
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/GuiBinding.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/GuiBinding.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -0,0 +1,30 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.common.client.actions.ui;
+
+import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
+
+public interface GuiBinding {
+
+ AbstractGuiItem create(GuiActionDescrip descriptor);
+
+ boolean shouldBeAdded();
+
+}
Copied: trunk/src/main/java/cc/kune/common/client/actions/ui/GuiChildBinding.java (from rev 1647, trunk/src/main/java/cc/kune/common/client/actions/ui/bind/GuiChildBinding.java)
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/GuiChildBinding.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/GuiChildBinding.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -0,0 +1,54 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.common.client.actions.ui;
+
+import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
+import cc.kune.common.client.errors.UIException;
+
+import com.google.gwt.user.client.ui.UIObject;
+
+public abstract class GuiChildBinding extends AbstractGuiBinding {
+
+ protected UIObject child;
+ protected ParentWidget parent;
+
+ @Override
+ public AbstractGuiItem create(final GuiActionDescrip descriptor) {
+ final int position = descriptor.getPosition();
+ if (descriptor.isChild()) {
+ // A menu item is a child, a toolbar separator, also. A button can
+ // be a child of a toolbar or not
+ parent = ((ParentWidget) descriptor.getParent().getValue(ParentWidget.PARENT_UI));
+ if (parent == null) {
+ throw new UIException("To add a item you need to add its parent before. Item: " + descriptor);
+ }
+ if (child != null) {
+ // Sometimes (menu/toolbar separators), there is no Widget to
+ // add/insert
+ if (position == GuiActionDescrip.NO_POSITION) {
+ parent.add(child);
+ } else {
+ parent.insert(position, child);
+ }
+ }
+ }
+ return super.create(descriptor);
+ }
+}
Copied: trunk/src/main/java/cc/kune/common/client/actions/ui/GuiProvider.java (from rev 1647, trunk/src/main/java/cc/kune/common/client/actions/ui/bind/GuiProvider.java)
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/GuiProvider.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/GuiProvider.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -0,0 +1,31 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.common.client.actions.ui;
+
+
+import com.google.inject.Provider;
+
+public interface GuiProvider {
+
+ <T> GuiBinding get(final Class<T> classType);
+
+ <T, Z> void register(final Class<T> classType, final Provider<Z> provider);
+
+}
Modified: trunk/src/main/java/cc/kune/common/client/notify/NotifyUser.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/notify/NotifyUser.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/common/client/notify/NotifyUser.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -19,9 +19,6 @@
*/
package cc.kune.common.client.notify;
-import cc.kune.common.client.events.ProgressHideEvent;
-import cc.kune.common.client.events.ProgressShowEvent;
-import cc.kune.common.client.events.UserNotifyEvent;
import cc.kune.common.client.utils.SimpleResponseCallback;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.common.shared.utils.TextUtils;
Copied: trunk/src/main/java/cc/kune/common/client/notify/ProgressHideEvent.java (from rev 1647, trunk/src/main/java/cc/kune/common/client/events/ProgressHideEvent.java)
===================================================================
--- trunk/src/main/java/cc/kune/common/client/notify/ProgressHideEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/client/notify/ProgressHideEvent.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -0,0 +1,81 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.common.client.notify;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+
+public class ProgressHideEvent extends GwtEvent<ProgressHideEvent.ProgressHideHandler> {
+
+ public interface HasProgressHideHandlers extends HasHandlers {
+ HandlerRegistration addProgressHideHandler(ProgressHideHandler handler);
+ }
+
+ public interface ProgressHideHandler extends EventHandler {
+ public void onProgressHide(ProgressHideEvent event);
+ }
+
+ private static final Type<ProgressHideHandler> TYPE = new Type<ProgressHideHandler>();
+
+ public static void fire(final HasHandlers source) {
+ source.fireEvent(new ProgressHideEvent());
+ }
+
+ public static Type<ProgressHideHandler> getType() {
+ return TYPE;
+ }
+
+ public ProgressHideEvent() {
+ }
+
+ @Override
+ protected void dispatch(final ProgressHideHandler handler) {
+ handler.onProgressHide(this);
+ }
+
+ @Override
+ public boolean equals(final Object other) {
+ if (other != null && other.getClass().equals(this.getClass())) {
+ final ProgressHideEvent o = (ProgressHideEvent) other;
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public Type<ProgressHideHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 23;
+ hashCode = (hashCode * 37) + getClass().hashCode();
+ return hashCode;
+ }
+
+ @Override
+ public String toString() {
+ return "ProgressHideEvent[" + "]";
+ }
+
+}
Copied: trunk/src/main/java/cc/kune/common/client/notify/ProgressShowEvent.java (from rev 1647, trunk/src/main/java/cc/kune/common/client/events/ProgressShowEvent.java)
===================================================================
--- trunk/src/main/java/cc/kune/common/client/notify/ProgressShowEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/client/notify/ProgressShowEvent.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -0,0 +1,93 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.common.client.notify;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+
+public class ProgressShowEvent extends GwtEvent<ProgressShowEvent.ProgressShowHandler> {
+
+ public interface HasProgressShowHandlers extends HasHandlers {
+ HandlerRegistration addProgressShowHandler(ProgressShowHandler handler);
+ }
+
+ public interface ProgressShowHandler extends EventHandler {
+ public void onProgressShow(ProgressShowEvent event);
+ }
+
+ private static final Type<ProgressShowHandler> TYPE = new Type<ProgressShowHandler>();
+
+ public static void fire(final HasHandlers source, final java.lang.String message) {
+ source.fireEvent(new ProgressShowEvent(message));
+ }
+
+ public static Type<ProgressShowHandler> getType() {
+ return TYPE;
+ }
+
+ private final java.lang.String message;
+
+ public ProgressShowEvent() {
+ this("");
+ }
+
+ public ProgressShowEvent(final java.lang.String message) {
+ this.message = message;
+ }
+
+ @Override
+ protected void dispatch(final ProgressShowHandler handler) {
+ handler.onProgressShow(this);
+ }
+
+ @Override
+ public boolean equals(final Object other) {
+ if (other != null && other.getClass().equals(this.getClass())) {
+ final ProgressShowEvent o = (ProgressShowEvent) other;
+ return true && ((o.message == null && this.message == null) || (o.message != null && o.message.equals(this.message)));
+ }
+ return false;
+ }
+
+ @Override
+ public Type<ProgressShowHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ public java.lang.String getMessage() {
+ return message;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 23;
+ hashCode = (hashCode * 37) + getClass().hashCode();
+ hashCode = (hashCode * 37) + (message == null ? 1 : message.hashCode());
+ return hashCode;
+ }
+
+ @Override
+ public String toString() {
+ return "ProgressShowEvent[" + message + "]";
+ }
+
+}
Copied: trunk/src/main/java/cc/kune/common/client/notify/UserNotifyEvent.java (from rev 1647, trunk/src/main/java/cc/kune/common/client/events/UserNotifyEvent.java)
===================================================================
--- trunk/src/main/java/cc/kune/common/client/notify/UserNotifyEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/client/notify/UserNotifyEvent.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -0,0 +1,154 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.common.client.notify;
+
+
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+
+public class UserNotifyEvent extends GwtEvent<UserNotifyEvent.UserNotifyHandler> {
+
+ public interface HasUserNotifyHandlers extends HasHandlers {
+ HandlerRegistration addUserNotifyHandler(UserNotifyHandler handler);
+ }
+
+ public interface UserNotifyCloser {
+ public void close();
+ }
+
+ public interface UserNotifyHandler extends EventHandler {
+ public void onUserNotify(UserNotifyEvent event);
+ }
+
+ private static final Type<UserNotifyHandler> TYPE = new Type<UserNotifyHandler>();
+
+ public static void fire(final HasHandlers source, final NotifyLevel level,
+ final java.lang.String message) {
+ source.fireEvent(new UserNotifyEvent(level, "", message));
+ }
+
+ public static void fire(final HasHandlers source, final NotifyLevel level,
+ final java.lang.String message, final Boolean closeable) {
+ source.fireEvent(new UserNotifyEvent(level, "", message, closeable));
+ }
+
+ public static void fire(final HasHandlers source, final NotifyLevel level,
+ final java.lang.String title, final java.lang.String message) {
+ source.fireEvent(new UserNotifyEvent(level, title, message));
+ }
+
+ public static UserNotifyEvent fire(final HasHandlers source, final NotifyLevel level,
+ final java.lang.String title, final java.lang.String message, final Boolean closeable) {
+ final UserNotifyEvent event = new UserNotifyEvent(level, title, message, closeable);
+ source.fireEvent(event);
+ return event;
+ }
+
+ public static Type<UserNotifyHandler> getType() {
+ return TYPE;
+ }
+
+ private ClickHandler clickHandler;
+ private final Boolean closeable;
+ private UserNotifyCloser closer;
+ private java.lang.String id;
+ private final NotifyLevel level;
+ private final java.lang.String message;
+ private final java.lang.String title;
+
+ public UserNotifyEvent(final NotifyLevel level, final java.lang.String message) {
+ this(level, "", message, false);
+ }
+
+ public UserNotifyEvent(final NotifyLevel level, final java.lang.String message, final Boolean closeable) {
+ this(level, "", message, closeable);
+ }
+
+ public UserNotifyEvent(final NotifyLevel level, final java.lang.String title,
+ final java.lang.String message) {
+ this(level, title, message, false);
+ }
+
+ public UserNotifyEvent(final NotifyLevel level, final java.lang.String title,
+ final java.lang.String message, final Boolean closeable) {
+ this.level = level;
+ this.title = title;
+ this.message = message;
+ this.closeable = closeable;
+ }
+
+ public UserNotifyEvent(final String message) {
+ this(NotifyLevel.info, message);
+ }
+
+ @Override
+ protected void dispatch(final UserNotifyHandler handler) {
+ handler.onUserNotify(this);
+ }
+
+ @Override
+ public Type<UserNotifyHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ public ClickHandler getClickHandler() {
+ return clickHandler;
+ }
+
+ public Boolean getCloseable() {
+ return closeable;
+ }
+
+ public UserNotifyCloser getCloser() {
+ return closer;
+ }
+
+ public java.lang.String getId() {
+ return id;
+ }
+
+ public NotifyLevel getLevel() {
+ return level;
+ }
+
+ public java.lang.String getMessage() {
+ return message;
+ }
+
+ public java.lang.String getTitle() {
+ return title;
+ }
+
+ public void setClickHandler(final ClickHandler clickHandler) {
+ this.clickHandler = clickHandler;
+ }
+
+ public void setCloser(final UserNotifyCloser closer) {
+ this.closer = closer;
+ }
+
+ public void setId(final String id) {
+ this.id = id;
+ }
+
+}
Copied: trunk/src/main/java/cc/kune/common/client/notify/events (from rev 1647, trunk/src/main/java/cc/kune/common/client/events)
Deleted: trunk/src/main/java/cc/kune/common/client/notify/events/ProgressHideEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/events/ProgressHideEvent.java 2011-12-21 23:32:22 UTC (rev 1647)
+++ trunk/src/main/java/cc/kune/common/client/notify/events/ProgressHideEvent.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -1,81 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.common.client.events;
-
-import com.google.gwt.event.shared.EventHandler;
-import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerRegistration;
-import com.google.gwt.event.shared.HasHandlers;
-
-public class ProgressHideEvent extends GwtEvent<ProgressHideEvent.ProgressHideHandler> {
-
- public interface HasProgressHideHandlers extends HasHandlers {
- HandlerRegistration addProgressHideHandler(ProgressHideHandler handler);
- }
-
- public interface ProgressHideHandler extends EventHandler {
- public void onProgressHide(ProgressHideEvent event);
- }
-
- private static final Type<ProgressHideHandler> TYPE = new Type<ProgressHideHandler>();
-
- public static void fire(final HasHandlers source) {
- source.fireEvent(new ProgressHideEvent());
- }
-
- public static Type<ProgressHideHandler> getType() {
- return TYPE;
- }
-
- public ProgressHideEvent() {
- }
-
- @Override
- protected void dispatch(final ProgressHideHandler handler) {
- handler.onProgressHide(this);
- }
-
- @Override
- public boolean equals(final Object other) {
- if (other != null && other.getClass().equals(this.getClass())) {
- final ProgressHideEvent o = (ProgressHideEvent) other;
- return true;
- }
- return false;
- }
-
- @Override
- public Type<ProgressHideHandler> getAssociatedType() {
- return TYPE;
- }
-
- @Override
- public int hashCode() {
- int hashCode = 23;
- hashCode = (hashCode * 37) + getClass().hashCode();
- return hashCode;
- }
-
- @Override
- public String toString() {
- return "ProgressHideEvent[" + "]";
- }
-
-}
Deleted: trunk/src/main/java/cc/kune/common/client/notify/events/ProgressShowEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/events/ProgressShowEvent.java 2011-12-21 23:32:22 UTC (rev 1647)
+++ trunk/src/main/java/cc/kune/common/client/notify/events/ProgressShowEvent.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -1,93 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.common.client.events;
-
-import com.google.gwt.event.shared.EventHandler;
-import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerRegistration;
-import com.google.gwt.event.shared.HasHandlers;
-
-public class ProgressShowEvent extends GwtEvent<ProgressShowEvent.ProgressShowHandler> {
-
- public interface HasProgressShowHandlers extends HasHandlers {
- HandlerRegistration addProgressShowHandler(ProgressShowHandler handler);
- }
-
- public interface ProgressShowHandler extends EventHandler {
- public void onProgressShow(ProgressShowEvent event);
- }
-
- private static final Type<ProgressShowHandler> TYPE = new Type<ProgressShowHandler>();
-
- public static void fire(final HasHandlers source, final java.lang.String message) {
- source.fireEvent(new ProgressShowEvent(message));
- }
-
- public static Type<ProgressShowHandler> getType() {
- return TYPE;
- }
-
- private final java.lang.String message;
-
- public ProgressShowEvent() {
- this("");
- }
-
- public ProgressShowEvent(final java.lang.String message) {
- this.message = message;
- }
-
- @Override
- protected void dispatch(final ProgressShowHandler handler) {
- handler.onProgressShow(this);
- }
-
- @Override
- public boolean equals(final Object other) {
- if (other != null && other.getClass().equals(this.getClass())) {
- final ProgressShowEvent o = (ProgressShowEvent) other;
- return true && ((o.message == null && this.message == null) || (o.message != null && o.message.equals(this.message)));
- }
- return false;
- }
-
- @Override
- public Type<ProgressShowHandler> getAssociatedType() {
- return TYPE;
- }
-
- public java.lang.String getMessage() {
- return message;
- }
-
- @Override
- public int hashCode() {
- int hashCode = 23;
- hashCode = (hashCode * 37) + getClass().hashCode();
- hashCode = (hashCode * 37) + (message == null ? 1 : message.hashCode());
- return hashCode;
- }
-
- @Override
- public String toString() {
- return "ProgressShowEvent[" + message + "]";
- }
-
-}
Deleted: trunk/src/main/java/cc/kune/common/client/notify/events/UserNotifyEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/events/UserNotifyEvent.java 2011-12-21 23:32:22 UTC (rev 1647)
+++ trunk/src/main/java/cc/kune/common/client/notify/events/UserNotifyEvent.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -1,155 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.common.client.events;
-
-import cc.kune.common.client.notify.NotifyLevel;
-
-import com.google.gwt.event.dom.client.ClickHandler;
-import com.google.gwt.event.shared.EventHandler;
-import com.google.gwt.event.shared.GwtEvent;
-import com.google.gwt.event.shared.HandlerRegistration;
-import com.google.gwt.event.shared.HasHandlers;
-
-public class UserNotifyEvent extends GwtEvent<UserNotifyEvent.UserNotifyHandler> {
-
- public interface HasUserNotifyHandlers extends HasHandlers {
- HandlerRegistration addUserNotifyHandler(UserNotifyHandler handler);
- }
-
- public interface UserNotifyCloser {
- public void close();
- }
-
- public interface UserNotifyHandler extends EventHandler {
- public void onUserNotify(UserNotifyEvent event);
- }
-
- private static final Type<UserNotifyHandler> TYPE = new Type<UserNotifyHandler>();
-
- public static void fire(final HasHandlers source, final NotifyLevel level,
- final java.lang.String message) {
- source.fireEvent(new UserNotifyEvent(level, "", message));
- }
-
- public static void fire(final HasHandlers source, final NotifyLevel level,
- final java.lang.String message, final Boolean closeable) {
- source.fireEvent(new UserNotifyEvent(level, "", message, closeable));
- }
-
- public static void fire(final HasHandlers source, final NotifyLevel level,
- final java.lang.String title, final java.lang.String message) {
- source.fireEvent(new UserNotifyEvent(level, title, message));
- }
-
- public static UserNotifyEvent fire(final HasHandlers source, final NotifyLevel level,
- final java.lang.String title, final java.lang.String message, final Boolean closeable) {
- final UserNotifyEvent event = new UserNotifyEvent(level, title, message, closeable);
- source.fireEvent(event);
- return event;
- }
-
- public static Type<UserNotifyHandler> getType() {
- return TYPE;
- }
-
- private ClickHandler clickHandler;
- private final Boolean closeable;
- private UserNotifyCloser closer;
- private java.lang.String id;
- private final NotifyLevel level;
- private final java.lang.String message;
- private final java.lang.String title;
-
- public UserNotifyEvent(final NotifyLevel level, final java.lang.String message) {
- this(level, "", message, false);
- }
-
- public UserNotifyEvent(final NotifyLevel level, final java.lang.String message, final Boolean closeable) {
- this(level, "", message, closeable);
- }
-
- public UserNotifyEvent(final NotifyLevel level, final java.lang.String title,
- final java.lang.String message) {
- this(level, title, message, false);
- }
-
- public UserNotifyEvent(final NotifyLevel level, final java.lang.String title,
- final java.lang.String message, final Boolean closeable) {
- this.level = level;
- this.title = title;
- this.message = message;
- this.closeable = closeable;
- }
-
- public UserNotifyEvent(final String message) {
- this(NotifyLevel.info, message);
- }
-
- @Override
- protected void dispatch(final UserNotifyHandler handler) {
- handler.onUserNotify(this);
- }
-
- @Override
- public Type<UserNotifyHandler> getAssociatedType() {
- return TYPE;
- }
-
- public ClickHandler getClickHandler() {
- return clickHandler;
- }
-
- public Boolean getCloseable() {
- return closeable;
- }
-
- public UserNotifyCloser getCloser() {
- return closer;
- }
-
- public java.lang.String getId() {
- return id;
- }
-
- public NotifyLevel getLevel() {
- return level;
- }
-
- public java.lang.String getMessage() {
- return message;
- }
-
- public java.lang.String getTitle() {
- return title;
- }
-
- public void setClickHandler(final ClickHandler clickHandler) {
- this.clickHandler = clickHandler;
- }
-
- public void setCloser(final UserNotifyCloser closer) {
- this.closer = closer;
- }
-
- public void setId(final String id) {
- this.id = id;
- }
-
-}
Modified: trunk/src/main/java/cc/kune/core/client/CoreGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -20,8 +20,8 @@
package cc.kune.core.client;
import cc.kune.common.client.actions.gxtui.GxtGuiProvider;
-import cc.kune.common.client.actions.ui.bind.DefaultGuiProvider;
-import cc.kune.common.client.actions.ui.bind.GuiProvider;
+import cc.kune.common.client.actions.ui.DefaultGuiProvider;
+import cc.kune.common.client.actions.ui.GuiProvider;
import cc.kune.common.client.log.EventBusWithLogging;
import cc.kune.common.client.shortcuts.DefaultGlobalShortcutRegister;
import cc.kune.common.client.shortcuts.GlobalShortcutRegister;
@@ -98,6 +98,7 @@
import cc.kune.core.client.state.HistoryWrapperDefault;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.SessionDefault;
+import cc.kune.core.client.state.SessionExpirationManager;
import cc.kune.core.client.state.SiteTokenListeners;
import cc.kune.core.client.state.SiteTokens;
import cc.kune.core.client.state.StateManager;
@@ -201,6 +202,7 @@
// Core App
bind(Session.class).to(SessionDefault.class).in(Singleton.class);
+ s(SessionExpirationManager.class);
s(ErrorHandler.class);
s(StateManagerDefault.class);
bind(StateManager.class).to(StateManagerDefault.class).in(Singleton.class);
Modified: trunk/src/main/java/cc/kune/core/client/auth/AnonUsersManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/AnonUsersManager.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/client/auth/AnonUsersManager.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -19,8 +19,8 @@
*/
package cc.kune.core.client.auth;
-import cc.kune.common.client.events.UserNotifyEvent;
import cc.kune.common.client.notify.NotifyLevel;
+import cc.kune.common.client.notify.UserNotifyEvent;
import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.cookies.CookiesManager;
import cc.kune.core.client.i18n.I18nUITranslationService;
Modified: trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -19,10 +19,10 @@
*/
package cc.kune.core.client.auth;
-import cc.kune.common.client.events.ProgressHideEvent;
-import cc.kune.common.client.events.ProgressShowEvent;
import cc.kune.common.client.log.Log;
import cc.kune.common.client.notify.NotifyLevel;
+import cc.kune.common.client.notify.ProgressHideEvent;
+import cc.kune.common.client.notify.ProgressShowEvent;
import cc.kune.common.client.utils.OnAcceptCallback;
import cc.kune.common.client.utils.TimerWrapper;
import cc.kune.common.client.utils.TimerWrapper.Executer;
Modified: trunk/src/main/java/cc/kune/core/client/cnt/ActionContentToolbarImpl.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/cnt/ActionContentToolbarImpl.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/client/cnt/ActionContentToolbarImpl.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -20,7 +20,7 @@
package cc.kune.core.client.cnt;
import cc.kune.common.client.actions.ui.ActionFlowPanel;
-import cc.kune.common.client.actions.ui.bind.GuiProvider;
+import cc.kune.common.client.actions.ui.GuiProvider;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.gspace.client.GSpaceArmor;
Modified: trunk/src/main/java/cc/kune/core/client/errors/ErrorHandler.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/errors/ErrorHandler.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/client/errors/ErrorHandler.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -19,19 +19,16 @@
*/
package cc.kune.core.client.errors;
-import org.waveprotocol.wave.client.common.safehtml.SafeHtml;
-import org.waveprotocol.wave.client.common.util.AsyncHolder.Accessor;
-
-import cc.kune.common.client.events.ProgressHideEvent;
-import cc.kune.common.client.events.UserNotifyEvent;
import cc.kune.common.client.log.Log;
import cc.kune.common.client.notify.NotifyLevel;
import cc.kune.common.client.notify.NotifyUser;
+import cc.kune.common.client.notify.ProgressHideEvent;
+import cc.kune.common.client.notify.UserNotifyEvent;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.common.shared.utils.TextUtils;
-import cc.kune.core.client.state.Session;
-import cc.kune.core.client.state.StateManager;
-import cc.kune.wave.client.WaveClientProvider;
+import cc.kune.core.client.events.GoHomeEvent;
+import cc.kune.core.client.events.StackErrorEvent;
+import cc.kune.core.client.events.UserMustBeLoggedEvent;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException;
@@ -41,28 +38,19 @@
private final EventBus eventBus;
private final I18nTranslationService i18n;
- private final Session session;
- private final StateManager stateManager;
- private final WaveClientProvider waveClient;
@Inject
- public ErrorHandler(final Session session, final I18nTranslationService i18n,
- final StateManager stateManager, final EventBus eventBus, final WaveClientProvider waveClient) {
- this.session = session;
+ public ErrorHandler(final I18nTranslationService i18n, final EventBus eventBus) {
this.i18n = i18n;
- this.stateManager = stateManager;
this.eventBus = eventBus;
- this.waveClient = waveClient;
}
public void doSessionExpired() {
eventBus.fireEvent(new SessionExpiredEvent());
- eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.info,
- "Your session has expired. Please log in again."));
}
private void goHome() {
- stateManager.gotoDefaultHomepage();
+ GoHomeEvent.fire(eventBus);
}
private void logException(final Throwable caught) {
@@ -91,12 +79,7 @@
doSessionExpired();
} else if (caught instanceof UserMustBeLoggedException) {
logException(caught);
- if (session.isLogged()) {
- doSessionExpired();
- } else {
- eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.important,
- i18n.t("Please sign in or register to collaborate")));
- }
+ UserMustBeLoggedEvent.fire(eventBus);
} else if (caught instanceof GroupNotFoundException) {
logException(caught);
eventBus.fireEvent(new UserNotifyEvent(NotifyLevel.veryImportant, i18n.t("Group not found")));
@@ -148,14 +131,7 @@
i18n.t("Oops! Something has gone wrong with our servers. Retry later, please.")));
final String error = "Other kind of exception received in ErrorHandler";
Log.error(error, caught);
- waveClient.get().getStackTraceAsync(caught, new Accessor<SafeHtml>() {
- @Override
- public void use(final SafeHtml stack) {
- final String stackAsString = stack.asString().replace("<br>", "\n");
- NotifyUser.logError(stackAsString);
- Log.error("Stack: " + stackAsString);
- }
- });
+ StackErrorEvent.fire(eventBus, caught);
}
}
Added: trunk/src/main/java/cc/kune/core/client/events/GoHomeEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/events/GoHomeEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/events/GoHomeEvent.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -0,0 +1,58 @@
+package cc.kune.core.client.events;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+
+import com.google.gwt.event.shared.HasHandlers;
+
+public class GoHomeEvent extends GwtEvent<GoHomeEvent.GoHomeHandler> {
+
+ public interface HasGoHomeHandlers extends HasHandlers {
+ HandlerRegistration addGoHomeHandler(GoHomeHandler handler);
+ }
+
+ public interface GoHomeHandler extends EventHandler {
+ public void onGoHome(GoHomeEvent event);
+ }
+
+ private static final Type<GoHomeHandler> TYPE = new Type<GoHomeHandler>();
+
+ public static void fire(HasHandlers source) {
+ source.fireEvent(new GoHomeEvent());
+ }
+
+ public static Type<GoHomeHandler> getType() {
+ return TYPE;
+ }
+
+
+ public GoHomeEvent() {
+ }
+
+ @Override
+ public Type<GoHomeHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ protected void dispatch(GoHomeHandler handler) {
+ handler.onGoHome(this);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return super.equals(obj);
+ }
+
+ @Override
+ public int hashCode() {
+ return super.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return "GoHomeEvent["
+ + "]";
+ }
+}
Added: trunk/src/main/java/cc/kune/core/client/events/StackErrorEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/events/StackErrorEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/events/StackErrorEvent.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -0,0 +1,83 @@
+package cc.kune.core.client.events;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+
+import com.google.gwt.event.shared.HasHandlers;
+
+public class StackErrorEvent extends GwtEvent<StackErrorEvent.StackErrorHandler> {
+
+ public interface HasStackErrorHandlers extends HasHandlers {
+ HandlerRegistration addStackErrorHandler(StackErrorHandler handler);
+ }
+
+ public interface StackErrorHandler extends EventHandler {
+ public void onStackError(StackErrorEvent event);
+ }
+
+ private static final Type<StackErrorHandler> TYPE = new Type<StackErrorHandler>();
+
+ public static void fire(HasHandlers source, java.lang.Throwable exception) {
+ source.fireEvent(new StackErrorEvent(exception));
+ }
+
+ public static Type<StackErrorHandler> getType() {
+ return TYPE;
+ }
+
+ java.lang.Throwable exception;
+
+ public StackErrorEvent(java.lang.Throwable exception) {
+ this.exception = exception;
+ }
+
+ protected StackErrorEvent() {
+ // Possibly for serialization.
+ }
+
+ @Override
+ public Type<StackErrorHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ public java.lang.Throwable getException() {
+ return exception;
+ }
+
+ @Override
+ protected void dispatch(StackErrorHandler handler) {
+ handler.onStackError(this);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ StackErrorEvent other = (StackErrorEvent) obj;
+ if (exception == null) {
+ if (other.exception != null)
+ return false;
+ } else if (!exception.equals(other.exception))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 23;
+ hashCode = (hashCode * 37) + (exception == null ? 1 : exception.hashCode());
+ return hashCode;
+ }
+
+ @Override
+ public String toString() {
+ return "StackErrorEvent["
+ + exception
+ + "]";
+ }
+}
Added: trunk/src/main/java/cc/kune/core/client/events/UserMustBeLoggedEvent.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/events/UserMustBeLoggedEvent.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/events/UserMustBeLoggedEvent.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -0,0 +1,55 @@
+package cc.kune.core.client.events;
+
+import com.google.gwt.event.shared.EventHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.event.shared.HasHandlers;
+
+public class UserMustBeLoggedEvent extends GwtEvent<UserMustBeLoggedEvent.UserMustBeLoggedHandler> {
+
+ public interface HasUserMustBeLoggedHandlers extends HasHandlers {
+ HandlerRegistration addUserMustBeLoggedHandler(UserMustBeLoggedHandler handler);
+ }
+
+ public interface UserMustBeLoggedHandler extends EventHandler {
+ public void onUserMustBeLogged(UserMustBeLoggedEvent event);
+ }
+
+ private static final Type<UserMustBeLoggedHandler> TYPE = new Type<UserMustBeLoggedHandler>();
+
+ public static void fire(final HasHandlers source) {
+ source.fireEvent(new UserMustBeLoggedEvent());
+ }
+
+ public static Type<UserMustBeLoggedHandler> getType() {
+ return TYPE;
+ }
+
+ public UserMustBeLoggedEvent() {
+ }
+
+ @Override
+ protected void dispatch(final UserMustBeLoggedHandler handler) {
+ handler.onUserMustBeLogged(this);
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ return super.equals(obj);
+ }
+
+ @Override
+ public Type<UserMustBeLoggedHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ @Override
+ public int hashCode() {
+ return super.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return "UserMustBeLoggedEvent[" + "]";
+ }
+}
Modified: trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -125,6 +125,7 @@
});
}
});
+
session.onUserSignIn(true, new UserSignInHandler() {
@Override
public void onUserSignIn(final UserSignInEvent event) {
Modified: trunk/src/main/java/cc/kune/core/client/init/AppStarterDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/init/AppStarterDefault.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/client/init/AppStarterDefault.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -19,11 +19,11 @@
*/
package cc.kune.core.client.init;
-import cc.kune.common.client.events.ProgressHideEvent;
-import cc.kune.common.client.events.UserNotifyEvent;
import cc.kune.common.client.log.Log;
import cc.kune.common.client.notify.NotifyLevel;
import cc.kune.common.client.notify.NotifyUser;
+import cc.kune.common.client.notify.ProgressHideEvent;
+import cc.kune.common.client.notify.UserNotifyEvent;
import cc.kune.common.client.resources.CommonResources;
import cc.kune.common.client.utils.SimpleResponseCallback;
import cc.kune.core.client.rpcservices.SiteServiceAsync;
Modified: trunk/src/main/java/cc/kune/core/client/notify/msgs/UserNotifierPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/notify/msgs/UserNotifierPresenter.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/client/notify/msgs/UserNotifierPresenter.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -19,8 +19,8 @@
*/
package cc.kune.core.client.notify.msgs;
-import cc.kune.common.client.events.UserNotifyEvent;
import cc.kune.common.client.notify.NotifyLevel;
+import cc.kune.common.client.notify.UserNotifyEvent;
import cc.kune.core.client.notify.msgs.UserNotifierPresenter.UserNotifierProxy;
import cc.kune.core.client.notify.msgs.UserNotifierPresenter.UserNotifierView;
Modified: trunk/src/main/java/cc/kune/core/client/notify/msgs/UserNotifierViewImpl.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/notify/msgs/UserNotifierViewImpl.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/client/notify/msgs/UserNotifierViewImpl.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -19,7 +19,7 @@
*/
package cc.kune.core.client.notify.msgs;
-import cc.kune.common.client.events.UserNotifyEvent;
+import cc.kune.common.client.notify.UserNotifyEvent;
import cc.kune.common.client.ui.PopupBottomPanel;
import cc.kune.core.client.notify.msgs.UserNotifierPresenter.UserNotifierView;
import cc.kune.msgs.client.CloseCallback;
Modified: trunk/src/main/java/cc/kune/core/client/notify/spiner/SpinerPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/notify/spiner/SpinerPresenter.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/client/notify/spiner/SpinerPresenter.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -19,8 +19,8 @@
*/
package cc.kune.core.client.notify.spiner;
-import cc.kune.common.client.events.ProgressHideEvent;
-import cc.kune.common.client.events.ProgressShowEvent;
+import cc.kune.common.client.notify.ProgressHideEvent;
+import cc.kune.common.client.notify.ProgressShowEvent;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.i18n.I18nReadyEvent;
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/ErrorsDialog.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/ErrorsDialog.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/ErrorsDialog.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -19,8 +19,8 @@
*/
package cc.kune.core.client.sitebar;
-import cc.kune.common.client.events.UserNotifyEvent;
import cc.kune.common.client.notify.NotifyLevel;
+import cc.kune.common.client.notify.UserNotifyEvent;
import cc.kune.common.client.ui.IconLabel;
import cc.kune.common.client.ui.dialogs.BasicTopDialog;
import cc.kune.common.shared.i18n.I18nTranslationService;
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarSignOutLink.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -25,8 +25,8 @@
import cc.kune.common.client.actions.BeforeActionCollection;
import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
import cc.kune.common.client.errors.UIException;
-import cc.kune.common.client.events.ProgressHideEvent;
-import cc.kune.common.client.events.ProgressShowEvent;
+import cc.kune.common.client.notify.ProgressHideEvent;
+import cc.kune.common.client.notify.ProgressShowEvent;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.auth.WaveClientSimpleAuthenticator;
import cc.kune.core.client.cookies.CookiesManager;
Modified: trunk/src/main/java/cc/kune/core/client/sn/AbstractSNPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/AbstractSNPanel.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/client/sn/AbstractSNPanel.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -22,8 +22,8 @@
import cc.kune.common.client.actions.gxtui.AbstractGxtMenuGui;
import cc.kune.common.client.actions.ui.ActionFlowPanel;
import cc.kune.common.client.actions.ui.ActionSimplePanel;
+import cc.kune.common.client.actions.ui.GuiProvider;
import cc.kune.common.client.actions.ui.IsActionExtensible;
-import cc.kune.common.client.actions.ui.bind.GuiProvider;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
Modified: trunk/src/main/java/cc/kune/core/client/sn/GroupSNPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/GroupSNPanel.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/client/sn/GroupSNPanel.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -20,7 +20,7 @@
package cc.kune.core.client.sn;
import cc.kune.common.client.actions.ui.ActionFlowPanel;
-import cc.kune.common.client.actions.ui.bind.GuiProvider;
+import cc.kune.common.client.actions.ui.GuiProvider;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
import cc.kune.common.client.tooltip.Tooltip;
import cc.kune.common.shared.i18n.I18nTranslationService;
Modified: trunk/src/main/java/cc/kune/core/client/sn/UserSNPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/UserSNPanel.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/client/sn/UserSNPanel.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -20,7 +20,7 @@
package cc.kune.core.client.sn;
import cc.kune.common.client.actions.ui.ActionFlowPanel;
-import cc.kune.common.client.actions.ui.bind.GuiProvider;
+import cc.kune.common.client.actions.ui.GuiProvider;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.avatar.SmallAvatarDecorator;
Modified: trunk/src/main/java/cc/kune/core/client/state/ContentCacheDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/ContentCacheDefault.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/client/state/ContentCacheDefault.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -22,7 +22,7 @@
import java.util.HashMap;
import java.util.Map;
-import cc.kune.common.client.events.ProgressShowEvent;
+import cc.kune.common.client.notify.ProgressShowEvent;
import cc.kune.core.client.init.AppStartEvent;
import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
import cc.kune.core.client.rpcservices.ContentServiceAsync;
Modified: trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/client/state/SessionDefault.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -24,7 +24,6 @@
import cc.kune.common.client.log.Log;
import cc.kune.core.client.cookies.CookiesManager;
-import cc.kune.core.client.errors.SessionExpiredEvent;
import cc.kune.core.client.init.AppStartEvent;
import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
@@ -72,12 +71,6 @@
this.userHash = userHash == null || userHash.equals("null") ? null : userHash;
this.userServiceProvider = userServiceProvider;
languagesArray = null;
- eventBus.addHandler(SessionExpiredEvent.getType(), new SessionExpiredEvent.SessionExpiredHandler() {
- @Override
- public void onSessionExpired(final SessionExpiredEvent event) {
- signOut();
- }
- });
check(new AsyncCallbackSimple<Void>() {
@Override
public void onSuccess(final Void result) {
Added: trunk/src/main/java/cc/kune/core/client/state/SessionExpirationManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/SessionExpirationManager.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/state/SessionExpirationManager.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -0,0 +1,34 @@
+package cc.kune.core.client.state;
+
+import cc.kune.common.client.notify.NotifyUser;
+import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.core.client.errors.SessionExpiredEvent;
+import cc.kune.core.client.events.UserMustBeLoggedEvent;
+import cc.kune.core.client.events.UserMustBeLoggedEvent.UserMustBeLoggedHandler;
+
+import com.google.gwt.event.shared.EventBus;
+import com.google.inject.Inject;
+
+public class SessionExpirationManager {
+ @Inject
+ public SessionExpirationManager(final EventBus eventBus, final Session session,
+ final I18nTranslationService i18n) {
+ eventBus.addHandler(UserMustBeLoggedEvent.getType(), new UserMustBeLoggedHandler() {
+ @Override
+ public void onUserMustBeLogged(final UserMustBeLoggedEvent event) {
+ if (session.isLogged()) {
+ SessionExpiredEvent.fire(eventBus);
+ } else {
+ NotifyUser.important(i18n.t("Please sign in or register to collaborate"));
+ }
+ }
+ });
+ eventBus.addHandler(SessionExpiredEvent.getType(), new SessionExpiredEvent.SessionExpiredHandler() {
+ @Override
+ public void onSessionExpired(final SessionExpiredEvent event) {
+ NotifyUser.info(i18n.t("Please sign in again"));
+ }
+ });
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -27,9 +27,10 @@
import cc.kune.common.client.actions.BeforeActionCollection;
import cc.kune.common.client.actions.BeforeActionListener;
-import cc.kune.common.client.events.ProgressHideEvent;
import cc.kune.common.client.log.Log;
+import cc.kune.common.client.notify.ProgressHideEvent;
import cc.kune.common.client.utils.Pair;
+import cc.kune.core.client.events.GoHomeEvent;
import cc.kune.core.client.init.AppStartEvent;
import cc.kune.core.client.init.AppStartEvent.AppStartHandler;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
@@ -102,6 +103,12 @@
contentCache.removeCacheOfGroup(event.getState().getStateToken().getGroup());
}
});
+ eventBus.addHandler(GoHomeEvent.getType(), new GoHomeEvent.GoHomeHandler() {
+ @Override
+ public void onGoHome(final GoHomeEvent event) {
+ gotoDefaultHomepage();
+ }
+ });
}
@Override
Copied: trunk/src/main/java/cc/kune/core/client/state/StateTokenUtils.java (from rev 1647, trunk/src/main/java/cc/kune/core/shared/dto/StateTokenUtils.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/StateTokenUtils.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/state/StateTokenUtils.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -0,0 +1,62 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.core.client.state;
+
+import cc.kune.core.client.state.Session;
+import cc.kune.core.shared.domain.utils.StateToken;
+
+import com.google.inject.Inject;
+
+public class StateTokenUtils {
+
+ private static final String SEPARATOR = ".";
+ private final Session session;
+
+ @Inject
+ public StateTokenUtils(final Session session) {
+ this.session = session;
+ }
+
+ public String getPublicUrl(final StateToken token) {
+ String publicUrl = "";
+
+ final String group = token.getGroup();
+ final String tool = token.getTool();
+ final String folder = token.getFolder();
+ final String document = token.getDocument();
+
+ publicUrl += session.getSiteUrl() + "/public";
+
+ if (group != null) {
+ publicUrl += "/" + group;
+ }
+ if (tool != null) {
+ publicUrl += SEPARATOR + tool;
+ }
+ if (folder != null) {
+ publicUrl += SEPARATOR + folder;
+ }
+ if (document != null) {
+ publicUrl += SEPARATOR + document;
+ }
+
+ return publicUrl;
+ }
+}
Modified: trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -20,7 +20,7 @@
package cc.kune.core.client.ws.entheader;
import cc.kune.common.client.actions.ui.ActionFlowPanel;
-import cc.kune.common.client.actions.ui.bind.GuiProvider;
+import cc.kune.common.client.actions.ui.GuiProvider;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.common.shared.utils.UrlParam;
Modified: trunk/src/main/java/cc/kune/core/server/mail/FormatedString.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/mail/FormatedString.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/server/mail/FormatedString.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -5,7 +5,8 @@
/**
* The Class FormatedString is used to separate, String templates (usually html)
* from args (indicated with %s) and also to allow the translation of this
- * templates.
+ * templates. More info
+ * http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html#syntax
*/
public class FormatedString {
Modified: trunk/src/main/java/cc/kune/core/server/manager/SocialNetworkManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/SocialNetworkManager.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/server/manager/SocialNetworkManager.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -25,10 +25,10 @@
import cc.kune.core.client.errors.DefaultException;
import cc.kune.core.shared.dto.SocialNetworkRequestResult;
import cc.kune.domain.Group;
+import cc.kune.domain.ParticipationData;
import cc.kune.domain.SocialNetwork;
+import cc.kune.domain.SocialNetworkData;
import cc.kune.domain.User;
-import cc.kune.domain.utils.ParticipationData;
-import cc.kune.domain.utils.SocialNetworkData;
public interface SocialNetworkManager extends Manager<SocialNetwork, Long> {
Modified: trunk/src/main/java/cc/kune/core/server/manager/UserManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/UserManager.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/server/manager/UserManager.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -27,7 +27,7 @@
import cc.kune.core.shared.dto.I18nLanguageSimpleDTO;
import cc.kune.core.shared.dto.UserDTO;
import cc.kune.domain.User;
-import cc.kune.domain.utils.UserBuddiesData;
+import cc.kune.domain.UserBuddiesData;
public interface UserManager {
User changePasswd(Long userId, String oldPassword, String newPassword);
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/KuneWaveManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/KuneWaveManagerDefault.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/KuneWaveManagerDefault.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -34,8 +34,8 @@
import cc.kune.core.shared.domain.AccessRol;
import cc.kune.domain.Group;
import cc.kune.domain.User;
+import cc.kune.domain.UserBuddiesData;
import cc.kune.domain.finders.GroupFinder;
-import cc.kune.domain.utils.UserBuddiesData;
import cc.kune.wave.server.KuneWaveService;
import cc.kune.wave.server.KuneWaveUtils;
import cc.kune.wave.server.ParticipantUtils;
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -41,12 +41,12 @@
import cc.kune.core.shared.dto.GroupType;
import cc.kune.core.shared.dto.SocialNetworkRequestResult;
import cc.kune.domain.Group;
+import cc.kune.domain.ParticipationData;
import cc.kune.domain.SocialNetwork;
+import cc.kune.domain.SocialNetworkData;
import cc.kune.domain.User;
+import cc.kune.domain.UserBuddiesData;
import cc.kune.domain.finders.GroupFinder;
-import cc.kune.domain.utils.ParticipationData;
-import cc.kune.domain.utils.SocialNetworkData;
-import cc.kune.domain.utils.UserBuddiesData;
import com.google.inject.Inject;
import com.google.inject.Provider;
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -70,8 +70,8 @@
import cc.kune.domain.I18nCountry;
import cc.kune.domain.I18nLanguage;
import cc.kune.domain.User;
+import cc.kune.domain.UserBuddiesData;
import cc.kune.domain.finders.UserFinder;
-import cc.kune.domain.utils.UserBuddiesData;
import cc.kune.wave.server.CustomUserRegistrationServlet;
import cc.kune.wave.server.KuneWaveService;
import cc.kune.wave.server.ParticipantUtils;
Modified: trunk/src/main/java/cc/kune/core/server/state/StateAbstract.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/state/StateAbstract.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/server/state/StateAbstract.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -24,10 +24,10 @@
import cc.kune.core.shared.domain.utils.AccessRights;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.domain.Group;
+import cc.kune.domain.ParticipationData;
import cc.kune.domain.SocialNetwork;
-import cc.kune.domain.utils.ParticipationData;
-import cc.kune.domain.utils.SocialNetworkData;
-import cc.kune.domain.utils.UserBuddiesData;
+import cc.kune.domain.SocialNetworkData;
+import cc.kune.domain.UserBuddiesData;
public abstract class StateAbstract {
Modified: trunk/src/main/java/cc/kune/core/server/users/UserInfoServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/users/UserInfoServiceDefault.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/server/users/UserInfoServiceDefault.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -25,8 +25,8 @@
import cc.kune.core.server.manager.SocialNetworkManager;
import cc.kune.domain.Content;
import cc.kune.domain.Group;
+import cc.kune.domain.ParticipationData;
import cc.kune.domain.User;
-import cc.kune.domain.utils.ParticipationData;
import com.google.inject.Inject;
import com.google.inject.Singleton;
Modified: trunk/src/main/java/cc/kune/core/shared/FileConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/FileConstants.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/shared/FileConstants.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -29,10 +29,7 @@
public static final String DOWNLOADSERVLET = ASITE_PREFIX + "servlets/FileDownloadManager";
public final static String FILENAME = "filename";
public final static String GROUP_LOGO_FIELD = "k-glogov-ff";
- // public static final String GROUP_NO_AVATAR_IMAGE = ASITE_PREFIX +
- // "images/group-def-icon.png";
public static final String GROUP_NO_AVATAR_IMAGE = "others/defgroup.gif";
- public static final String GROUP_NO_AVATAR_IMAGE_PATH = ASITE_PREFIX + GROUP_NO_AVATAR_IMAGE;
public final static String HASH = "hash";
public final static String IMGSIZE = "imgsize";
@@ -41,8 +38,7 @@
public final static int LOGO_MIN_HEIGHT = 28;
public final static int LOGO_MIN_WIDTH = 468;
public static final String LOGODOWNLOADSERVLET = ASITE_PREFIX + "servlets/EntityLogoDownloadManager";
- public final static String PERSON_NO_AVATAR_IMAGE = "images/unknown.jpg";
- public final static String PERSON_NO_AVATAR_IMAGE_PATH = ASITE_PREFIX + PERSON_NO_AVATAR_IMAGE;
+ public final static String PERSON_NO_AVATAR_IMAGE = "others/unknown.jpg";
public final static String TOKEN = "token";
public final static String TYPE_ID = "typeid";
public final static String USER_LOGO_FIELD = "k-ulogov-ff";
Deleted: trunk/src/main/java/cc/kune/core/shared/dto/StateTokenUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/dto/StateTokenUtils.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/shared/dto/StateTokenUtils.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -1,62 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.core.shared.dto;
-
-import cc.kune.core.client.state.Session;
-import cc.kune.core.shared.domain.utils.StateToken;
-
-import com.google.inject.Inject;
-
-public class StateTokenUtils {
-
- private static final String SEPARATOR = ".";
- private final Session session;
-
- @Inject
- public StateTokenUtils(final Session session) {
- this.session = session;
- }
-
- public String getPublicUrl(final StateToken token) {
- String publicUrl = "";
-
- final String group = token.getGroup();
- final String tool = token.getTool();
- final String folder = token.getFolder();
- final String document = token.getDocument();
-
- publicUrl += session.getSiteUrl() + "/public";
-
- if (group != null) {
- publicUrl += "/" + group;
- }
- if (tool != null) {
- publicUrl += SEPARATOR + tool;
- }
- if (folder != null) {
- publicUrl += SEPARATOR + folder;
- }
- if (document != null) {
- publicUrl += SEPARATOR + document;
- }
-
- return publicUrl;
- }
-}
Modified: trunk/src/main/java/cc/kune/core/shared/utils/SharedFileDownloadUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/utils/SharedFileDownloadUtils.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/core/shared/utils/SharedFileDownloadUtils.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -21,8 +21,8 @@
public String getGroupLogo(final GroupDTO group) {
return prefix
+ (group.hasLogo() ? getLogoImageUrl(group.getShortName())
- : group.isPersonal() ? FileConstants.PERSON_NO_AVATAR_IMAGE_PATH
- : FileConstants.GROUP_NO_AVATAR_IMAGE_PATH);
+ : group.isPersonal() ? FileConstants.PERSON_NO_AVATAR_IMAGE
+ : FileConstants.GROUP_NO_AVATAR_IMAGE);
}
public String getLogoAvatarHtml(final String groupName, final boolean groupHasLogo,
@@ -49,8 +49,7 @@
public String getUserAvatar(final UserSimpleDTO user) {
return prefix
- + (user.hasLogo() ? getLogoImageUrl(user.getShortName())
- : FileConstants.PERSON_NO_AVATAR_IMAGE_PATH);
+ + (user.hasLogo() ? getLogoImageUrl(user.getShortName()) : FileConstants.PERSON_NO_AVATAR_IMAGE);
}
}
\ No newline at end of file
Copied: trunk/src/main/java/cc/kune/domain/ParticipationData.java (from rev 1647, trunk/src/main/java/cc/kune/domain/utils/ParticipationData.java)
===================================================================
--- trunk/src/main/java/cc/kune/domain/ParticipationData.java (rev 0)
+++ trunk/src/main/java/cc/kune/domain/ParticipationData.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -0,0 +1,54 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.domain;
+
+import java.util.Set;
+
+
+public class ParticipationData {
+ private Set<Group> groupsIsAdmin;
+ private Set<Group> groupsIsCollab;
+
+ public ParticipationData() {
+ this(null, null);
+ }
+
+ public ParticipationData(final Set<Group> groupsIsAdmin, final Set<Group> groupsIsCollab) {
+ this.groupsIsAdmin = groupsIsAdmin;
+ this.groupsIsCollab = groupsIsCollab;
+ }
+
+ public Set<Group> getGroupsIsAdmin() {
+ return groupsIsAdmin;
+ }
+
+ public Set<Group> getGroupsIsCollab() {
+ return groupsIsCollab;
+ }
+
+ public void setGroupsIsAdmin(final Set<Group> groupsIsAdmin) {
+ this.groupsIsAdmin = groupsIsAdmin;
+ }
+
+ public void setGroupsIsCollab(final Set<Group> groupsIsCollab) {
+ this.groupsIsCollab = groupsIsCollab;
+ }
+
+}
Copied: trunk/src/main/java/cc/kune/domain/SocialNetworkData.java (from rev 1647, trunk/src/main/java/cc/kune/domain/utils/SocialNetworkData.java)
===================================================================
--- trunk/src/main/java/cc/kune/domain/SocialNetworkData.java (rev 0)
+++ trunk/src/main/java/cc/kune/domain/SocialNetworkData.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -0,0 +1,133 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.domain;
+
+import cc.kune.core.shared.domain.SocialNetworkVisibility;
+import cc.kune.core.shared.domain.UserSNetVisibility;
+import cc.kune.core.shared.domain.utils.AccessRights;
+
+public class SocialNetworkData {
+ private SocialNetworkVisibility socialNetworkVisibility;
+ private SocialNetwork groupMembers;
+ private ParticipationData userParticipation;
+ private UserSNetVisibility userBuddiesVisibility;
+ private UserBuddiesData userBuddies;
+ private AccessRights groupRights;
+ private boolean isBuddiesVisible;
+ private boolean isMembersVisible;
+
+ public SocialNetworkData() {
+ this(null, null, null, null, null, null, false, false);
+ }
+
+ public SocialNetworkData(SocialNetworkVisibility socialNetworkVisibility, SocialNetwork groupMembers,
+ ParticipationData userParticipation, UserSNetVisibility userBuddiesVisibility,
+ UserBuddiesData userBuddies, AccessRights groupRights, boolean isBuddiesVisible, boolean isMembersVisible) {
+ this.socialNetworkVisibility = socialNetworkVisibility;
+ this.groupMembers = groupMembers;
+ this.userParticipation = userParticipation;
+ this.userBuddiesVisibility = userBuddiesVisibility;
+ this.userBuddies = userBuddies;
+ this.groupRights = groupRights;
+ this.isBuddiesVisible = isBuddiesVisible;
+ this.isMembersVisible = isMembersVisible;
+ }
+
+ public SocialNetwork getGroupMembers() {
+ return groupMembers;
+ }
+
+ public AccessRights getGroupRights() {
+ return groupRights;
+ }
+
+ public boolean getIsBuddiesVisible() {
+ return isBuddiesVisible;
+ }
+
+ public boolean getIsMembersVisible() {
+ return isMembersVisible;
+ }
+
+ public SocialNetworkVisibility getSocialNetworkVisibility() {
+ return socialNetworkVisibility;
+ }
+
+ public UserBuddiesData getUserBuddies() {
+ return userBuddies;
+ }
+
+ public UserSNetVisibility getUserBuddiesVisibility() {
+ return userBuddiesVisibility;
+ }
+
+ public ParticipationData getUserParticipation() {
+ return userParticipation;
+ }
+
+ public boolean isBuddiesVisible() {
+ return isBuddiesVisible;
+ }
+
+ public boolean isMembersVisible() {
+ return isMembersVisible;
+ }
+
+ public void setBuddiesVisible(boolean isBuddiesVisible) {
+ this.isBuddiesVisible = isBuddiesVisible;
+ }
+
+ public void setGroupMembers(SocialNetwork groupMembers) {
+ this.groupMembers = groupMembers;
+ }
+
+ public void setGroupRights(AccessRights groupRights) {
+ this.groupRights = groupRights;
+ }
+
+ public void setIsBuddiesVisible(boolean isBuddiesVisible) {
+ setBuddiesVisible(isBuddiesVisible);
+ }
+
+ public void setIsMembersVisible(boolean isMembersVisible) {
+ setMembersVisible(isMembersVisible);
+ }
+
+ public void setMembersVisible(boolean isMembersVisible) {
+ this.isMembersVisible = isMembersVisible;
+ }
+
+ public void setSocialNetworkVisibility(SocialNetworkVisibility socialNetworkVisibility) {
+ this.socialNetworkVisibility = socialNetworkVisibility;
+ }
+
+ public void setUserBuddies(UserBuddiesData userBuddies) {
+ this.userBuddies = userBuddies;
+ }
+
+ public void setUserBuddiesVisibility(UserSNetVisibility userBuddiesVisibility) {
+ this.userBuddiesVisibility = userBuddiesVisibility;
+ }
+
+ public void setUserParticipation(ParticipationData userParticipation) {
+ this.userParticipation = userParticipation;
+ }
+
+}
Copied: trunk/src/main/java/cc/kune/domain/UserBuddiesData.java (from rev 1647, trunk/src/main/java/cc/kune/domain/utils/UserBuddiesData.java)
===================================================================
--- trunk/src/main/java/cc/kune/domain/UserBuddiesData.java (rev 0)
+++ trunk/src/main/java/cc/kune/domain/UserBuddiesData.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -0,0 +1,67 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ \*/
+package cc.kune.domain;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class UserBuddiesData {
+
+ public static final UserBuddiesData EMPTY = new UserBuddiesData();
+
+ private List<User> buddies;
+ private int otherExtBuddies;
+
+ public UserBuddiesData() {
+ otherExtBuddies = 0;
+ buddies = new ArrayList<User>();
+ }
+
+ public boolean contains(final String shortName) {
+ for (User buddie : buddies) {
+ if (buddie.getShortName().equals(shortName)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public List<User> getBuddies() {
+ return buddies;
+ }
+
+ public int getOtherExtBuddies() {
+ return otherExtBuddies;
+ }
+
+ public void setBuddies(final List<User> buddies) {
+ this.buddies = buddies;
+ }
+
+ public void setOtherExtBuddies(final int otherExtBuddies) {
+ this.otherExtBuddies = otherExtBuddies;
+ }
+
+ @Override
+ public String toString() {
+ return "UserBuddiesData[ext: " + otherExtBuddies + " / int: " + buddies + "]";
+ }
+}
Deleted: trunk/src/main/java/cc/kune/domain/utils/ParticipationData.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/utils/ParticipationData.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/domain/utils/ParticipationData.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -1,55 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.domain.utils;
-
-import java.util.Set;
-
-import cc.kune.domain.Group;
-
-public class ParticipationData {
- private Set<Group> groupsIsAdmin;
- private Set<Group> groupsIsCollab;
-
- public ParticipationData() {
- this(null, null);
- }
-
- public ParticipationData(final Set<Group> groupsIsAdmin, final Set<Group> groupsIsCollab) {
- this.groupsIsAdmin = groupsIsAdmin;
- this.groupsIsCollab = groupsIsCollab;
- }
-
- public Set<Group> getGroupsIsAdmin() {
- return groupsIsAdmin;
- }
-
- public Set<Group> getGroupsIsCollab() {
- return groupsIsCollab;
- }
-
- public void setGroupsIsAdmin(final Set<Group> groupsIsAdmin) {
- this.groupsIsAdmin = groupsIsAdmin;
- }
-
- public void setGroupsIsCollab(final Set<Group> groupsIsCollab) {
- this.groupsIsCollab = groupsIsCollab;
- }
-
-}
Deleted: trunk/src/main/java/cc/kune/domain/utils/SocialNetworkData.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/utils/SocialNetworkData.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/domain/utils/SocialNetworkData.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -1,134 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.domain.utils;
-
-import cc.kune.core.shared.domain.SocialNetworkVisibility;
-import cc.kune.core.shared.domain.UserSNetVisibility;
-import cc.kune.core.shared.domain.utils.AccessRights;
-import cc.kune.domain.SocialNetwork;
-
-public class SocialNetworkData {
- private SocialNetworkVisibility socialNetworkVisibility;
- private SocialNetwork groupMembers;
- private ParticipationData userParticipation;
- private UserSNetVisibility userBuddiesVisibility;
- private UserBuddiesData userBuddies;
- private AccessRights groupRights;
- private boolean isBuddiesVisible;
- private boolean isMembersVisible;
-
- public SocialNetworkData() {
- this(null, null, null, null, null, null, false, false);
- }
-
- public SocialNetworkData(SocialNetworkVisibility socialNetworkVisibility, SocialNetwork groupMembers,
- ParticipationData userParticipation, UserSNetVisibility userBuddiesVisibility,
- UserBuddiesData userBuddies, AccessRights groupRights, boolean isBuddiesVisible, boolean isMembersVisible) {
- this.socialNetworkVisibility = socialNetworkVisibility;
- this.groupMembers = groupMembers;
- this.userParticipation = userParticipation;
- this.userBuddiesVisibility = userBuddiesVisibility;
- this.userBuddies = userBuddies;
- this.groupRights = groupRights;
- this.isBuddiesVisible = isBuddiesVisible;
- this.isMembersVisible = isMembersVisible;
- }
-
- public SocialNetwork getGroupMembers() {
- return groupMembers;
- }
-
- public AccessRights getGroupRights() {
- return groupRights;
- }
-
- public boolean getIsBuddiesVisible() {
- return isBuddiesVisible;
- }
-
- public boolean getIsMembersVisible() {
- return isMembersVisible;
- }
-
- public SocialNetworkVisibility getSocialNetworkVisibility() {
- return socialNetworkVisibility;
- }
-
- public UserBuddiesData getUserBuddies() {
- return userBuddies;
- }
-
- public UserSNetVisibility getUserBuddiesVisibility() {
- return userBuddiesVisibility;
- }
-
- public ParticipationData getUserParticipation() {
- return userParticipation;
- }
-
- public boolean isBuddiesVisible() {
- return isBuddiesVisible;
- }
-
- public boolean isMembersVisible() {
- return isMembersVisible;
- }
-
- public void setBuddiesVisible(boolean isBuddiesVisible) {
- this.isBuddiesVisible = isBuddiesVisible;
- }
-
- public void setGroupMembers(SocialNetwork groupMembers) {
- this.groupMembers = groupMembers;
- }
-
- public void setGroupRights(AccessRights groupRights) {
- this.groupRights = groupRights;
- }
-
- public void setIsBuddiesVisible(boolean isBuddiesVisible) {
- setBuddiesVisible(isBuddiesVisible);
- }
-
- public void setIsMembersVisible(boolean isMembersVisible) {
- setMembersVisible(isMembersVisible);
- }
-
- public void setMembersVisible(boolean isMembersVisible) {
- this.isMembersVisible = isMembersVisible;
- }
-
- public void setSocialNetworkVisibility(SocialNetworkVisibility socialNetworkVisibility) {
- this.socialNetworkVisibility = socialNetworkVisibility;
- }
-
- public void setUserBuddies(UserBuddiesData userBuddies) {
- this.userBuddies = userBuddies;
- }
-
- public void setUserBuddiesVisibility(UserSNetVisibility userBuddiesVisibility) {
- this.userBuddiesVisibility = userBuddiesVisibility;
- }
-
- public void setUserParticipation(ParticipationData userParticipation) {
- this.userParticipation = userParticipation;
- }
-
-}
Deleted: trunk/src/main/java/cc/kune/domain/utils/UserBuddiesData.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/utils/UserBuddiesData.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/domain/utils/UserBuddiesData.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -1,68 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- \*/
-package cc.kune.domain.utils;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import cc.kune.domain.User;
-
-public class UserBuddiesData {
-
- public static final UserBuddiesData EMPTY = new UserBuddiesData();
-
- private List<User> buddies;
- private int otherExtBuddies;
-
- public UserBuddiesData() {
- otherExtBuddies = 0;
- buddies = new ArrayList<User>();
- }
-
- public boolean contains(final String shortName) {
- for (User buddie : buddies) {
- if (buddie.getShortName().equals(shortName)) {
- return true;
- }
- }
- return false;
- }
-
- public List<User> getBuddies() {
- return buddies;
- }
-
- public int getOtherExtBuddies() {
- return otherExtBuddies;
- }
-
- public void setBuddies(final List<User> buddies) {
- this.buddies = buddies;
- }
-
- public void setOtherExtBuddies(final int otherExtBuddies) {
- this.otherExtBuddies = otherExtBuddies;
- }
-
- @Override
- public String toString() {
- return "UserBuddiesData[ext: " + otherExtBuddies + " / int: " + buddies + "]";
- }
-}
Modified: trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/events/client/viewer/CalendarViewerPanel.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -3,7 +3,7 @@
import java.util.ArrayList;
import java.util.Date;
-import cc.kune.common.client.actions.ui.bind.GuiProvider;
+import cc.kune.common.client.actions.ui.GuiProvider;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.dnd.FolderViewerDropController;
import cc.kune.core.client.dnd.KuneDragController;
Modified: trunk/src/main/java/cc/kune/gspace/client/themes/GSpaceThemeSelectorPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/themes/GSpaceThemeSelectorPanel.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/gspace/client/themes/GSpaceThemeSelectorPanel.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -21,7 +21,7 @@
import cc.kune.common.client.actions.ui.ActionExtensibleView;
import cc.kune.common.client.actions.ui.ActionFlowPanel;
-import cc.kune.common.client.actions.ui.bind.GuiProvider;
+import cc.kune.common.client.actions.ui.GuiProvider;
import cc.kune.common.shared.i18n.I18nTranslationService;
import com.google.inject.Inject;
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsTablePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsTablePanel.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerAsTablePanel.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -22,7 +22,7 @@
import org.waveprotocol.wave.client.common.util.DateUtils;
import cc.kune.common.client.actions.ui.ActionSimplePanel;
-import cc.kune.common.client.actions.ui.bind.GuiProvider;
+import cc.kune.common.client.actions.ui.GuiProvider;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
Modified: trunk/src/main/java/cc/kune/pspace/client/PSpacePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/pspace/client/PSpacePanel.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/pspace/client/PSpacePanel.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -20,8 +20,8 @@
package cc.kune.pspace.client;
import cc.kune.common.client.actions.ui.ActionFlowPanel;
+import cc.kune.common.client.actions.ui.GuiProvider;
import cc.kune.common.client.actions.ui.IsActionExtensible;
-import cc.kune.common.client.actions.ui.bind.GuiProvider;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.gspace.client.GSpaceArmor;
Modified: trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -27,13 +27,13 @@
import cc.kune.core.client.state.StateChangedEvent;
import cc.kune.core.client.state.StateChangedEvent.StateChangedHandler;
import cc.kune.core.client.state.StateManager;
+import cc.kune.core.client.state.StateTokenUtils;
import cc.kune.core.shared.domain.ContentStatus;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.GroupListDTO;
import cc.kune.core.shared.dto.StateAbstractDTO;
import cc.kune.core.shared.dto.StateContainerDTO;
import cc.kune.core.shared.dto.StateContentDTO;
-import cc.kune.core.shared.dto.StateTokenUtils;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.user.client.ui.HasText;
Modified: trunk/src/main/java/cc/kune/wave/client/WebClient.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WebClient.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/cc/kune/wave/client/WebClient.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -71,6 +71,7 @@
import cc.kune.common.client.notify.NotifyUser;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.errors.DefaultException;
+import cc.kune.core.client.events.StackErrorEvent;
import cc.kune.core.client.sitebar.spaces.Space;
import cc.kune.core.client.sitebar.spaces.SpaceConfEvent;
import cc.kune.core.client.state.SiteTokens;
@@ -278,6 +279,19 @@
this.i18n = i18n;
searchPanel = new SearchPanelWidget(new SearchPanelRenderer(profiles));
ErrorHandler.install();
+ eventBus.addHandler(StackErrorEvent.getType(), new StackErrorEvent.StackErrorHandler() {
+ @Override
+ public void onStackError(final StackErrorEvent event) {
+ getStackTraceAsync(event.getException(), new Accessor<SafeHtml>() {
+ @Override
+ public void use(final SafeHtml stack) {
+ final String stackAsString = stack.asString().replace("<br>", "\n");
+ NotifyUser.logError(stackAsString);
+ cc.kune.common.client.log.Log.error("Stack: " + stackAsString);
+ }
+ });
+ }
+ });
ClientEvents.get().addWaveCreationEventHandler(
new WaveCreationEventHandler() {
Modified: trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java
===================================================================
--- trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -153,7 +153,7 @@
avatar = new Url(FileConstants.AVATARDOWNLOADSERVLET, new UrlParam(FileConstants.USERNAME,
address.split("@")[0])).toString();
} else {
- avatar = FileConstants.PERSON_NO_AVATAR_IMAGE_PATH;
+ avatar = FileConstants.PERSON_NO_AVATAR_IMAGE;
}
return avatar;
}
Modified: trunk/src/main/resources/dozerBeanMapping.xml
===================================================================
--- trunk/src/main/resources/dozerBeanMapping.xml 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/main/resources/dozerBeanMapping.xml 2012-01-02 20:12:42 UTC (rev 1653)
@@ -187,7 +187,7 @@
</mapping>
<mapping>
<class-a> cc.kune.core.shared.dto.ParticipationDataDTO </class-a>
- <class-b> cc.kune.domain.utils.ParticipationData </class-b>
+ <class-b> cc.kune.domain.ParticipationData </class-b>
</mapping>
<mapping>
<class-a> cc.kune.core.shared.dto.I18nLanguageDTO </class-a>
@@ -231,11 +231,11 @@
</mapping>
<mapping>
<class-a> cc.kune.core.shared.dto.UserBuddiesDataDTO </class-a>
- <class-b> cc.kune.domain.utils.UserBuddiesData </class-b>
+ <class-b> cc.kune.domain.UserBuddiesData </class-b>
</mapping>
<mapping>
<class-a> cc.kune.core.shared.dto.SocialNetworkDataDTO </class-a>
- <class-b> cc.kune.domain.utils.SocialNetworkData </class-b>
+ <class-b> cc.kune.domain.SocialNetworkData </class-b>
</mapping>
<mapping>
<class-a> cc.kune.core.shared.dto.HomeStatsDTO </class-a>
Modified: trunk/src/test/java/cc/kune/core/server/manager/impl/SocialNetworkManagerMoreTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/manager/impl/SocialNetworkManagerMoreTest.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/test/java/cc/kune/core/server/manager/impl/SocialNetworkManagerMoreTest.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -33,8 +33,8 @@
import cc.kune.core.shared.domain.GroupListMode;
import cc.kune.core.shared.dto.GroupType;
import cc.kune.core.shared.dto.SocialNetworkRequestResult;
+import cc.kune.domain.ParticipationData;
import cc.kune.domain.User;
-import cc.kune.domain.utils.ParticipationData;
import com.google.inject.Inject;
Modified: trunk/src/test/java/cc/kune/core/server/mapper/MapperTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/mapper/MapperTest.java 2012-01-01 17:58:40 UTC (rev 1652)
+++ trunk/src/test/java/cc/kune/core/server/mapper/MapperTest.java 2012-01-02 20:12:42 UTC (rev 1653)
@@ -61,12 +61,12 @@
import cc.kune.domain.Group;
import cc.kune.domain.GroupList;
import cc.kune.domain.License;
+import cc.kune.domain.ParticipationData;
import cc.kune.domain.Revision;
import cc.kune.domain.SocialNetwork;
+import cc.kune.domain.SocialNetworkData;
import cc.kune.domain.User;
-import cc.kune.domain.utils.ParticipationData;
-import cc.kune.domain.utils.SocialNetworkData;
-import cc.kune.domain.utils.UserBuddiesData;
+import cc.kune.domain.UserBuddiesData;
import com.google.inject.Inject;
1
0
Author: vjrj_
Date: 2012-01-01 18:58:40 +0100 (Sun, 01 Jan 2012)
New Revision: 1652
Added:
trunk/src/main/java/cc/kune/common/shared/utils/
trunk/src/main/java/cc/kune/common/shared/utils/TextUtils.java
trunk/src/main/java/cc/kune/common/shared/utils/Url.java
trunk/src/main/java/cc/kune/common/shared/utils/UrlParam.java
trunk/src/main/java/cc/kune/core/client/services/ClientFileDownloadUtils.java
trunk/src/main/java/cc/kune/core/server/mail/FormatedString.java
trunk/src/main/java/cc/kune/core/server/notifier/NotifyHtmlHelper.java
trunk/src/main/java/cc/kune/core/server/notifier/NotifySender.java
trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java
trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java
trunk/src/main/java/cc/kune/core/server/utils/AbsoluteFileDownloadUtils.java
trunk/src/main/java/cc/kune/core/shared/utils/
trunk/src/main/java/cc/kune/core/shared/utils/SharedFileDownloadUtils.java
trunk/src/test/java/cc/kune/core/server/mail/FormatedStringTest.java
trunk/src/test/java/cc/kune/core/server/notifier/
trunk/src/test/java/cc/kune/core/server/notifier/NotifyHtmlHelperTest.java
Removed:
trunk/src/main/java/cc/kune/common/client/utils/TextUtils.java
trunk/src/main/java/cc/kune/common/client/utils/Url.java
trunk/src/main/java/cc/kune/common/client/utils/UrlParam.java
trunk/src/main/java/cc/kune/core/client/services/FileDownloadUtils.java
trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java
trunk/src/main/java/cc/kune/core/server/notifier/NotifyServiceDefault.java
Modified:
trunk/img/webtemplate/web_template-2011.svg
trunk/src/main/java/cc/kune/chat/client/AvatarDecoratorImpl.java
trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java
trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java
trunk/src/main/java/cc/kune/chat/client/KuneChatNotifier.java
trunk/src/main/java/cc/kune/chat/client/KuneHablarSignals.java
trunk/src/main/java/cc/kune/chat/client/actions/NewRoomBtn.java
trunk/src/main/java/cc/kune/common/client/actions/gxtui/AbstractGxtMenuItemGui.java
trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtMenuGui.java
trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtMenuTitleItemGui.java
trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtSubMenuGui.java
trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java
trunk/src/main/java/cc/kune/common/client/notify/NotifyUser.java
trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java
trunk/src/main/java/cc/kune/common/client/ui/BasicThumb.java
trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicDialog.java
trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java
trunk/src/main/java/cc/kune/common/shared/i18n/I18nTranslationServiceMocked.java
trunk/src/main/java/cc/kune/core/client/actions/xml/XMLActionsParser.java
trunk/src/main/java/cc/kune/core/client/auth/AnonUsersManager.java
trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java
trunk/src/main/java/cc/kune/core/client/auth/UserFieldFactory.java
trunk/src/main/java/cc/kune/core/client/cnt/FoldableContentPresenter.java
trunk/src/main/java/cc/kune/core/client/dnd/FolderViewerDropController.java
trunk/src/main/java/cc/kune/core/client/dnd/NotImplementedDropController.java
trunk/src/main/java/cc/kune/core/client/errors/ErrorHandler.java
trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java
trunk/src/main/java/cc/kune/core/client/i18n/I18nUrlUtils.java
trunk/src/main/java/cc/kune/core/client/i18n/I18nUtils.java
trunk/src/main/java/cc/kune/core/client/registry/IdGenerator.java
trunk/src/main/java/cc/kune/core/client/services/MediaUtils.java
trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java
trunk/src/main/java/cc/kune/core/client/sn/AbstractSNPresenter.java
trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java
trunk/src/main/java/cc/kune/core/client/sn/UserSNPresenter.java
trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java
trunk/src/main/java/cc/kune/core/client/ui/dialogs/tabbed/TabTitleGenerator.java
trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java
trunk/src/main/java/cc/kune/core/server/InitData.java
trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java
trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceDefault.java
trunk/src/main/java/cc/kune/core/server/mail/MailService.java
trunk/src/main/java/cc/kune/core/server/mail/MailServiceDefault.java
trunk/src/main/java/cc/kune/core/server/manager/TagUserContentManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoDownloadManager.java
trunk/src/main/java/cc/kune/core/server/manager/impl/I18nTranslationManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
trunk/src/main/java/cc/kune/core/server/properties/KuneBasicProperties.java
trunk/src/main/java/cc/kune/core/server/rpc/SiteRPC.java
trunk/src/main/java/cc/kune/core/server/rpc/SocialNetworkRPC.java
trunk/src/main/java/cc/kune/core/server/utils/FilenameUtils.java
trunk/src/main/java/cc/kune/core/server/xmpp/XmppManagerDefault.java
trunk/src/main/java/cc/kune/core/shared/FileConstants.java
trunk/src/main/java/cc/kune/core/shared/dto/InitDataDTO.java
trunk/src/main/java/cc/kune/events/client/actions/EventEditMenuItem.java
trunk/src/main/java/cc/kune/events/client/actions/EventRemoveMenuItem.java
trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslatorForm.java
trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFirstForm.java
trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePresenter.java
trunk/src/main/java/cc/kune/gspace/client/options/style/GroupOptStylePresenter.java
trunk/src/main/java/cc/kune/gspace/client/options/style/UserOptStylePresenter.java
trunk/src/main/java/cc/kune/gspace/client/style/GSpaceBackManagerImpl.java
trunk/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorPresenter.java
trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerUtils.java
trunk/src/main/java/cc/kune/gspace/client/viewers/PathToolbarUtils.java
trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.java
trunk/src/main/java/cc/kune/msgs/client/UserMessageWidget.java
trunk/src/main/java/cc/kune/pspace/client/PSpaceInDevelopment.java
trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java
trunk/src/main/java/cc/kune/wave/client/KuneWaveProfileManager.java
trunk/src/main/java/cc/kune/wave/server/KuneWaveServiceDefault.java
trunk/src/main/java/cc/kune/wave/server/WaveEmailNotifier.java
trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java
trunk/src/main/resources/kune.properties
trunk/src/test/java/cc/kune/core/server/mail/MailServiceDefaultTest.java
trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java
Log:
Notifications and some refactorization
Modified: trunk/img/webtemplate/web_template-2011.svg
===================================================================
--- trunk/img/webtemplate/web_template-2011.svg 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/img/webtemplate/web_template-2011.svg 2012-01-01 17:58:40 UTC (rev 1652)
@@ -14,7 +14,7 @@
height="768"
id="svg3182"
version="1.1"
- inkscape:version="0.48.1 r9760"
+ inkscape:version="0.48.2 r9819"
sodipodi:docname="web_template-2011.svg"
inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/web_template-2011.png"
inkscape:export-xdpi="90"
@@ -78,17 +78,17 @@
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
- inkscape:zoom="0.16135477"
- inkscape:cx="512"
+ inkscape:zoom="1.1201172"
+ inkscape:cx="-265.55632"
inkscape:cy="384"
- inkscape:current-layer="g8450"
+ inkscape:current-layer="layer1"
inkscape:document-units="px"
showgrid="false"
- inkscape:window-width="1078"
- inkscape:window-height="897"
+ inkscape:window-width="1280"
+ inkscape:window-height="776"
inkscape:window-x="0"
- inkscape:window-y="947"
- inkscape:window-maximized="0"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1"
inkscape:snap-bbox="false"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
@@ -258,7 +258,7 @@
id="g5365">
<path
transform="matrix(0.102065,0,0,0.102065,387.7515,-17.05636)"
- d="m 277.35793,332.62314 a 26.82268,26.82268 0 1 1 -53.64536,0 26.82268,26.82268 0 1 1 53.64536,0 z"
+ d="m 277.35793,332.62314 c 0,14.81376 -12.00893,26.82268 -26.82268,26.82268 -14.81376,0 -26.82268,-12.00892 -26.82268,-26.82268 0,-14.81376 12.00892,-26.82268 26.82268,-26.82268 14.81375,0 26.82268,12.00892 26.82268,26.82268 z"
sodipodi:ry="26.82268"
sodipodi:rx="26.82268"
sodipodi:cy="332.62314"
@@ -268,7 +268,7 @@
sodipodi:type="arc" />
<path
transform="matrix(0.05245387,0,0,0.05245387,400.1808,-0.554549)"
- d="m 277.35793,332.62314 a 26.82268,26.82268 0 1 1 -53.64536,0 26.82268,26.82268 0 1 1 53.64536,0 z"
+ d="m 277.35793,332.62314 c 0,14.81376 -12.00893,26.82268 -26.82268,26.82268 -14.81376,0 -26.82268,-12.00892 -26.82268,-26.82268 0,-14.81376 12.00892,-26.82268 26.82268,-26.82268 14.81375,0 26.82268,12.00892 26.82268,26.82268 z"
sodipodi:ry="26.82268"
sodipodi:rx="26.82268"
sodipodi:cy="332.62314"
@@ -546,7 +546,7 @@
transform="translate(-751,-12)">
<path
transform="translate(0,-3)"
- d="m 333,232 a 11,11 0 1 1 -22,0 11,11 0 1 1 22,0 z"
+ d="m 333,232 c 0,6.07513 -4.92487,11 -11,11 -6.07513,0 -11,-4.92487 -11,-11 0,-6.07513 4.92487,-11 11,-11 6.07513,0 11,4.92487 11,11 z"
sodipodi:ry="11"
sodipodi:rx="11"
sodipodi:cy="232"
@@ -2177,7 +2177,7 @@
inkscape:export-xdpi="90"
inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/icons/from-private-to-public.png"
transform="matrix(0.475,0,0,0.95,-21.570622,377.21335)"
- d="m 110,32.362183 a 20,10 0 1 1 -40,0 20,10 0 1 1 40,0 z"
+ d="m 110,32.362183 c 0,5.522847 -8.95431,10 -20,10 -11.045695,0 -20,-4.477153 -20,-10 0,-5.522848 8.954305,-10 20,-10 11.04569,0 20,4.477152 20,10 z"
sodipodi:ry="10"
sodipodi:rx="20"
sodipodi:cy="32.362183"
@@ -2190,7 +2190,7 @@
inkscape:export-xdpi="90"
inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/icons/from-private-to-public.png"
transform="matrix(1.8840121,0.6711918,-0.6711918,1.8840121,8.0842525,364.37023)"
- d="m 16,16.362183 a 1,1 0 1 1 -2,0 1,1 0 1 1 2,0 z"
+ d="m 16,16.362183 c 0,0.552284 -0.447715,1 -1,1 -0.552285,0 -1,-0.447716 -1,-1 0,-0.552285 0.447715,-1 1,-1 0.552285,0 1,0.447715 1,1 z"
sodipodi:ry="1"
sodipodi:rx="1"
sodipodi:cy="16.362183"
@@ -2209,14 +2209,14 @@
sodipodi:cy="16.362183"
sodipodi:rx="1"
sodipodi:ry="1"
- d="m 16,16.362183 a 1,1 0 1 1 -2,0 1,1 0 1 1 2,0 z"
+ d="m 16,16.362183 c 0,0.552284 -0.447715,1 -1,1 -0.552285,0 -1,-0.447716 -1,-1 0,-0.552285 0.447715,-1 1,-1 0.552285,0 1,0.447715 1,1 z"
transform="matrix(1.8840121,0.6711918,-0.6711918,1.8840121,2.7154875,362.20909)" />
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/icons/from-private-to-public.png"
transform="matrix(1.8840121,0.6711918,-0.6711918,1.8840121,7.7663825,370.24449)"
- d="m 16,16.362183 a 1,1 0 1 1 -2,0 1,1 0 1 1 2,0 z"
+ d="m 16,16.362183 c 0,0.552284 -0.447715,1 -1,1 -0.552285,0 -1,-0.447716 -1,-1 0,-0.552285 0.447715,-1 1,-1 0.552285,0 1,0.447715 1,1 z"
sodipodi:ry="1"
sodipodi:rx="1"
sodipodi:cy="16.362183"
@@ -2235,14 +2235,14 @@
sodipodi:cy="16.362183"
sodipodi:rx="1"
sodipodi:ry="1"
- d="m 16,16.362183 a 1,1 0 1 1 -2,0 1,1 0 1 1 2,0 z"
+ d="m 16,16.362183 c 0,0.552284 -0.447715,1 -1,1 -0.552285,0 -1,-0.447716 -1,-1 0,-0.552285 0.447715,-1 1,-1 0.552285,0 1,0.447715 1,1 z"
transform="matrix(1.8840121,0.6711918,-0.6711918,1.8840121,2.2467045,371.75097)" />
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/icons/from-private-to-public.png"
transform="matrix(1.8840121,0.6711918,-0.6711918,1.8840121,-0.8112855,366.96948)"
- d="m 16,16.362183 a 1,1 0 1 1 -2,0 1,1 0 1 1 2,0 z"
+ d="m 16,16.362183 c 0,0.552284 -0.447715,1 -1,1 -0.552285,0 -1,-0.447716 -1,-1 0,-0.552285 0.447715,-1 1,-1 0.552285,0 1,0.447715 1,1 z"
sodipodi:ry="1"
sodipodi:rx="1"
sodipodi:cy="16.362183"
@@ -4035,7 +4035,81 @@
x="-505.18716"
y="159.15428"
ry="3.5237386" />
- </g>
+ <image
+ style="display:inline"
+ width="50"
+ height="50"
+ xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABkAGQDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iii gAooooAKY7rGpZ2Cj1JxWZqmqfZAYoQDLjknoo9ff6Vzsksksu+RmdiTgk5IH9KuMG9SHNJ2OxS7 t5DtSeJm9A4JqeuAkQFeeTn86bZ67d6VMAXMttnDRk5x9Cen8v5hunbYFPueg0VXtbmK8to7iFw0 bjKkVYrMsKKKKACiiigAooooASmSyLFE8jfdVST9AKkqjqr+Xpk59QB+ZA/rQtxM5WSVppXlc5Zi SeeB7e1M5ySSDx+VAIx1PToKDyTxj6iuowGuODxkkevSsm+HBHBPt2rWkPB4zwayb08Ec/lQxo3v A98xe50+RjgASxg9hnDfqR+tdrXmXhCUp4ngUDiRXQ8+ik/j0Fem1zzWprHYKKKKkoKKKKACiiig AqnqieZps6+ilvy5/pVymSIJI2RujAgj60LRiZw579h/OgnoScDHAFDApIyMCHUkN7GkJGB06+vT /GuowGSnCEDIH0rFvXySMkjPY9K0rqXg9ck81hXMm44BwPek2M2fBsYl8SRt/wA80duvTIx/WvSx XDeAbbMt5dEYAVY1Prnk/wAh+ddzWE3qax2CiiipKCiiigAooooAKKKKAOL8QQGx1IygHy58sMDo 3cf1/Gsh7sADnt0B6V3er2UF9p8sNwwRfvCQn7hHQ15XK7xyFCc4OMjoa3hLQyktSzc3OSew+tZ5 JcjHJz6fp70E5JyMn3NdH4MsbS81NpZ5EMkADRxHALH+97gfzIP1G7K4Ja2Ox8OaadL0aGCQYmb9 5J/vHt+AwPwrXNFJWD1NRaKKKACiiigAoo7VSvr9LKIMRuduFUd6EribLbMEUsxAA6knisu71y3g ysX71/Y4X8+/4ZrBub2e7YtMxIB4UHAH4f1qD19cdMVtGn3Ic+xLfXlxfZEj/KOQo+6P8awbu0yT gcVs4Bzkkk+9RtGrk9CMHv1rSySsiLtnLNAwONpwT370+CGVZQ6MyuDlShIII7gjp9a3mtFJJwMC nR2ip2ANKwGxpPiK4WNYr8GUY/1q8MPqOn+e9dJb3cF2m6CVXHcA4I+o6iuLVAFHtTGDKwdGZWBy GU4I+hFQ6aexam+p6BRXH6X4meKZbfUG3RkgLMeCp/2vUe/866+smmty077C0UUUhiZwMnpXHX10 by6eTtnCj2H8v/r10uqS+Tp0zDqV2/mcVyJOBwCTjsela0l1M5voB4AGMnPbvQAc4GRkY5/zxSYx xwCBSnggDk/yrYzADgdScdh0oPAPTpQc4POKOAcZJP8AKgAI5PA6dqTqAegzwAOv+NL256+nrRwA ACSfYUABxk8frTWAK46nH+fpTiMEdc5/KkY/KcZJx2PSgDKvkwDwM57d66zwhqZvNOa1kJMtsQuT 3U9PywR+ArlrwYUjjIHNS+ErkweJI4x92ZGRvbjI/UD86zmrouL1PSaKKKwNTK14/wCgKPWQA/ka 5odvpRRW9LYxnuIOh/GjFFFaEinv9f6U0nCgiiigBcdKF+YjNFFAAOWx7Udh9KKKAM27+4341U0p jHr9gV4JuIx+bYooqHsyo7nrFFFFc5sf/9k= "
+ id="image15327-2"
+ x="-819.83234"
+ y="352.556"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/web_template-2011.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <image
+ style="display:inline"
+ y="493.54968"
+ x="-697.43127"
+ id="image4197-7"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAABHNCSVQICAgIfAhkiAAAB71JREFU aIHVml9IXGcah5+j49SZ4zmHOOl0G4Wdtqvp0A6RqknTJt1cJNltWAiFtltKoBakgwy5sA2kF8WL QlZy6V6YSRmUtRZSJA32oliSQiBNyPonmRUJiiSkVNJEE6zOycyoM+fdC3WjiX9mnKNmX/jdfPOd 9/2eec98h/P9RhER7AhFUbyaRpeisK2ggNvJJP95+JB24Gexq8haQkRyFuBXVe7W1zM9OIh0dSGN jaR9PiZVlXtOJyeAMjtqZb02G+CK3W5Gw2HSS03p60Pq6khoGnFd5yKw6/8KUNO4EAqRXG1qIoE0 NZH2eHhoGFwG9jz1gE4nx/x+zKmpzC+bmkLCYSyvF9Mw6Ab2PZWAQJWqEh8eXluKmRmkpQWrpATT MLgOHHhqAIE8TWOotRUr1zWkUkh7O+LzETMMBoBDmw7ocBCqrMS088tOp5GODqSsjJhhMAQcBpQN BwQ8LhexaNT2u0lEEMtCOjuR8nJiuk4UqNhQQE2jLRhcfde0o6PNzViaRryoiAiwZd0BgSrDID4+ vr5wCzU2htTUkHC7mcjPpzbb2zYbOEXXGYhEct9Y1qKeHiQQwNR1BoAq2wHz86kNBDAta+Ph5mVZ SCSCZRjENY02wGMLILDF7Waip2fz4BZqfBwJBkm6XMQcDkJAXk6ARUVEampIbDbY44pGkcpKTE1j aLnbNpPuVWga8bGxzQdaTq2tWKpK3OnkWFaAcxtLtLl5czaWbDQ8jPj9mJrGBaA4U8DD5eXE0unN B8hEU1NIKETS7WYU8K8KaBgMdXZuzOJ++QX57jvkp5+Q33/PLVc4TFpVuQt4V+reobIyYuv1WLAs 5NSpPDl0SBev1yXFxars379Tqqu3S2GhQ8rLNfnwQ1UuXVpb/vp6pjWNayt1b6CjY33gbt5E3nrL La+//qqcOXNGbt68KQtjampKent7pampSZ57TpdPP3VKIpFdjcFBRNe5u1z3Dvh86/Pbi0QU8XgK 5eTJE5JKpWS1GBsbk/ff/5ts3+6W69czr9PVhXg8XF2ue9fb2+2Hu3QJ2bbNkBs3bqwK9ni0trbI iy+qEotlVquxkbSqcnqp7u0rKcFMpeyFM03kpZfccu7cuazh5uOjj/4uwWBhRvV8PiaBvUt1r7ul xf7nXl3dM/LBB4fXDCciMj4+LqWlHvnxx5Vr9fUhqso9QHm8e3u8XsyZGXvhRkcRt7tA7t+/nxOg iMjZs2elulpbsV5dHQmnkxMijz0HDYPL4bD93fvhB+TNNwM5w4mImKYpLpdDpqeXrpVIIJpGfP6g OW/+hFtRlF0OBxUff4xi16n5fPT25lFd/Wdbcqmqygsv/IGBgaU//+orLEWhW0SGgUeAus7JhgYK nU5b1rEoenqKqK7ebVu+qqqdXLv25Pj0NHz5JcnJSY7Pj+UBKIpSJsLOTz55BGxn/PorlJaW2pav pORPjIw8eaO1tiKpFFER+ff8WB6A00nNkSMohYW2rWFR7NgxQzQatS1ff/8VAoHFhlUqBQ0NxCcm HnUPIE9RFKWggNraWtYJD6qrE/T2XrItX19fP6+9tnjs66+RqSluiMjPj8/f6/MxaffOuVBXryIv v1xqyy46MjIixcXPLMqfSiElJZgs4XPkqSpHgkFU277eJWLHDnjw4D5XrlzJOdepU//k4EHHorEz Z8A0GRaRi09c4PFwtatr/bo3r2+/RbZvL5VEIrHm7nV3d4vX65LffnuUN52e9TVYxrxB17k7OLj+ gCLIe++55Nixo2uCSyQS4vf/Ub75ZvG5b0cHYhgMLFcUTeNafT3TGwE4NoY8/3yhfPHFcZmens4Y bmRkRA4e3CvvvONelM+yZs0aVnCkALyqyt3lLGi7dfs2sn+/WyoqyqS/v39VuLa2f8nWrUXy+ecF kkwuztXZiRgGQysVnKf0u92MhkIks3Frc9Hp04ps3eqSd9/9izQ2/kPOnz8vDx48kFu3bklHR4cc P/6ZvPFGQF55RZWlDpzT6VkHCji8KuAcZLGmccHvx1yra5ut7txB2tqQo0edsnu3IS6XQ559tlDe fluXhoY8+f57nujavJqbsebstRXNmCcGnE6OqSpxO9zbbJXpEcnY2P/eGFb1DpcehCpNY6iyEnO9 jM5cVFNDoqiISCaTl/8A8hwOQi4XsWCQ5EZ6giuppwdxu5kgQ0N09Qng0TTaDIN4JIK12fZZIICZ n09tphdlnB2o0nUGAgHMzbLRIhGsOQM0Y5c3qwqAkp9PrdvNRE0NiY10nMbHEcMgThbubtaAC0C3 FBUR0TTizc1YG2HOBIMkNY22rNeaS1WgQteJlpcT6+yc/Y2sB1w0irhcxMjAsrYVcA5SAQ4bBkNl ZcQ6OjJ/nmWqykpMh4PQmtZn50qAQ4bBgM9HrL199kU017StrVhzFvWyPvyGAS4APWAYXC8pwWxp wVrrQfLwMKKq2W8s6w64AHSfYdDt9WKGw1jZ/u3S78dcynd/agAXgO4xDC57PDxsaiKdidcXCpHU NC7kXHsjABeA7tJ1Lmoa8bo6En19S08Nh0nP+ezFOdfcSMAFoGVOJydUlXs+H5ONjaS7umZd2fp6 puf8db8dtZS5gpsSiqIowB5V5UhhITtmZvCJcCcW468iMmpHjf8C6MILrTFT1g8AAAAASUVORK5C YII= "
+ height="50"
+ width="50"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/web_template-2011.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <flowRoot
+ transform="translate(-1742.5553,146.8489)"
+ id="flowRoot22983-8"
+ xml:space="preserve"
+ style="font-size:13px;display:inline"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/web_template-2011.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ inkscape:transform-center-x="-69.722141"
+ inkscape:transform-center-y="5.0305176"><flowRegion
+ id="flowRegion22985-0"><rect
+ y="337.25836"
+ x="1105.337"
+ height="98.930603"
+ width="725.66296"
+ id="rect22987-4"
+ style="font-size:13px" /></flowRegion><flowPara
+ id="flowPara22989-2"
+ style="font-size:13px;font-weight:bold">Some Group</flowPara></flowRoot> <flowRoot
+ style="display:inline"
+ xml:space="preserve"
+ id="flowRoot17968-64"
+ transform="translate(-1740.9728,166.94552)"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/web_template-2011.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"><flowRegion
+ id="flowRegion17970-1"><rect
+ id="rect17972-2"
+ width="725.66296"
+ height="98.930603"
+ x="1105.337"
+ y="337.25836" /></flowRegion><flowPara
+ id="flowPara8076">You are now admin of this group</flowPara><flowPara
+ id="flowPara8078">You are now a collaborator of this group</flowPara><flowPara
+ id="flowPara8105">You are not a member of this group</flowPara><flowPara
+ id="flowPara8101">Your membership to this group where not accepted by the admins</flowPara><flowPara
+ id="flowPara8099">There is a pending member in this group, please accept/deny this petition</flowPara><flowPara
+ id="flowPara8097" /></flowRoot> <flowRoot
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/webtemplate/web_template-2011.png"
+ transform="translate(-1740.9728,246.55145)"
+ id="flowRoot8080"
+ xml:space="preserve"
+ style="fill:#0000ff;display:inline"><flowRegion
+ id="flowRegion8082"><rect
+ y="337.25836"
+ x="1105.337"
+ height="98.930603"
+ width="725.66296"
+ id="rect8084"
+ style="fill:#0000ff" /></flowRegion><flowPara
+ id="flowPara8090">More info</flowPara></flowRoot> </g>
<g
inkscape:groupmode="layer"
id="layer7"
Modified: trunk/src/main/java/cc/kune/chat/client/AvatarDecoratorImpl.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/AvatarDecoratorImpl.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/chat/client/AvatarDecoratorImpl.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -20,8 +20,8 @@
package cc.kune.chat.client;
import cc.kune.common.client.ui.AbstractDecorator;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.avatar.AvatarDecorator;
import com.calclab.emite.core.client.events.StateChangedEvent;
Modified: trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/chat/client/ChatClientDefault.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -37,15 +37,15 @@
import cc.kune.common.client.notify.NotifyUser;
import cc.kune.common.client.shortcuts.GlobalShortcutRegister;
import cc.kune.common.client.utils.SimpleResponseCallback;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.client.utils.WindowUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.events.AvatarChangedEvent;
import cc.kune.core.client.events.NewUserRegisteredEvent;
import cc.kune.core.client.init.AppStartEvent;
import cc.kune.core.client.init.AppStopEvent;
import cc.kune.core.client.resources.CoreResources;
-import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.sitebar.SitebarActions;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.UserSignInEvent;
@@ -133,7 +133,7 @@
private final ChatOptions chatOptions;
private final ChatResources chatResources;
private Dialog dialog;
- private final FileDownloadUtils downUtils;
+ private final ClientFileDownloadUtils downUtils;
private final I18nTranslationService i18n;
private final EventBus kuneEventBus;
private final CoreResources res;
@@ -149,7 +149,7 @@
@Inject
public ChatClientDefault(final EventBus kuneEventBus, final I18nTranslationService i18n,
final SitebarActions siteActions, final Session session, final CoreResources res,
- final FileDownloadUtils downUtils, final GlobalShortcutRegister shorcutRegister,
+ final ClientFileDownloadUtils downUtils, final GlobalShortcutRegister shorcutRegister,
final ChatOptions chatOptions, final ChatResources chatResources, final ChatInstances chatInstances) {
this.kuneEventBus = kuneEventBus;
this.i18n = i18n;
Modified: trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/chat/client/ChatClientTool.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -22,7 +22,7 @@
import static cc.kune.chat.shared.ChatConstants.NAME;
import static cc.kune.chat.shared.ChatConstants.TYPE_ROOM;
import cc.kune.chat.client.resources.ChatResources;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.i18n.I18nUITranslationService;
import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
import cc.kune.core.client.resources.nav.NavResources;
Modified: trunk/src/main/java/cc/kune/chat/client/KuneChatNotifier.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/KuneChatNotifier.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/chat/client/KuneChatNotifier.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -21,7 +21,7 @@
import cc.kune.common.client.notify.NotifyUser;
import cc.kune.common.shared.i18n.I18nTranslationService;
-import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.client.services.ClientFileDownloadUtils;
import com.calclab.hablar.signals.client.notifications.HablarNotifier;
import com.google.gwt.event.dom.client.ClickEvent;
@@ -31,12 +31,12 @@
import com.google.gwt.regexp.shared.RegExp;
public class KuneChatNotifier implements HablarNotifier {
- private final FileDownloadUtils downUtils;
+ private final ClientFileDownloadUtils downUtils;
private final EventBus eventBus;
private final I18nTranslationService i18n;
private final RegExp regExp;
- public KuneChatNotifier(final I18nTranslationService i18n, final FileDownloadUtils downUtils,
+ public KuneChatNotifier(final I18nTranslationService i18n, final ClientFileDownloadUtils downUtils,
final EventBus eventBus) {
this.i18n = i18n;
this.downUtils = downUtils;
Modified: trunk/src/main/java/cc/kune/chat/client/KuneHablarSignals.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/KuneHablarSignals.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/chat/client/KuneHablarSignals.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -21,7 +21,7 @@
import cc.kune.chat.client.ChatClientDefault.ChatClientAction;
import cc.kune.common.shared.i18n.I18nTranslationService;
-import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.client.services.ClientFileDownloadUtils;
import com.calclab.emite.core.client.xmpp.session.XmppSession;
import com.calclab.emite.xep.storage.client.PrivateStorageManager;
@@ -72,7 +72,7 @@
@SuppressWarnings("deprecation")
public KuneHablarSignals(final EventBus kuneEventBus, final XmppSession session, final Hablar hablar,
final ChatClientAction action, final ChatInstances chatInstances,
- final I18nTranslationService i18n, final FileDownloadUtils downUtils) {
+ final I18nTranslationService i18n, final ClientFileDownloadUtils downUtils) {
final HablarEventBus hablarEventBus = hablar.getEventBus();
final PrivateStorageManager storageManager = chatInstances.privateStorageManager;
Modified: trunk/src/main/java/cc/kune/chat/client/actions/NewRoomBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/NewRoomBtn.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/chat/client/actions/NewRoomBtn.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -24,8 +24,8 @@
import cc.kune.common.client.notify.NotifyUser;
import cc.kune.common.client.ui.dialogs.PromptTopDialog;
import cc.kune.common.client.ui.dialogs.PromptTopDialog.Builder;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.actions.RolAction;
import cc.kune.core.client.resources.CoreMessages;
import cc.kune.core.client.resources.nav.NavResources;
Modified: trunk/src/main/java/cc/kune/common/client/actions/gxtui/AbstractGxtMenuItemGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gxtui/AbstractGxtMenuItemGui.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/common/client/actions/gxtui/AbstractGxtMenuItemGui.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -32,7 +32,7 @@
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuRadioItemDescriptor;
import cc.kune.common.client.errors.NotImplementedException;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import com.extjs.gxt.ui.client.event.MenuEvent;
import com.extjs.gxt.ui.client.event.SelectionListener;
Modified: trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtMenuGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtMenuGui.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtMenuGui.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -26,7 +26,7 @@
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
import cc.kune.common.client.errors.NotImplementedException;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import com.extjs.gxt.ui.client.Style.ButtonScale;
import com.extjs.gxt.ui.client.event.ButtonEvent;
Modified: trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtMenuTitleItemGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtMenuTitleItemGui.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtMenuTitleItemGui.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -24,7 +24,7 @@
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.common.client.errors.NotImplementedException;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import com.extjs.gxt.ui.client.widget.menu.HeaderMenuItem;
Modified: trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtSubMenuGui.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtSubMenuGui.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/common/client/actions/gxtui/GxtSubMenuGui.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -22,7 +22,7 @@
import cc.kune.common.client.actions.ui.AbstractGuiItem;
import cc.kune.common.client.actions.ui.ParentWidget;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import com.extjs.gxt.ui.client.widget.menu.MenuItem;
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/AbstractGuiItem.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -28,7 +28,7 @@
import cc.kune.common.client.actions.ui.descrip.DropTarget;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
import cc.kune.common.client.errors.NotImplementedException;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.user.client.ui.Composite;
Modified: trunk/src/main/java/cc/kune/common/client/notify/NotifyUser.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/notify/NotifyUser.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/common/client/notify/NotifyUser.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -23,8 +23,8 @@
import cc.kune.common.client.events.ProgressShowEvent;
import cc.kune.common.client.events.UserNotifyEvent;
import cc.kune.common.client.utils.SimpleResponseCallback;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.shared.EventBus;
Modified: trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -19,9 +19,9 @@
*/
package cc.kune.common.client.tooltip;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.client.utils.TimerWrapper;
import cc.kune.common.client.utils.TimerWrapper.Executer;
+import cc.kune.common.shared.utils.TextUtils;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Unit;
Modified: trunk/src/main/java/cc/kune/common/client/ui/BasicThumb.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/ui/BasicThumb.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/common/client/ui/BasicThumb.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -21,7 +21,7 @@
import cc.kune.common.client.log.Log;
import cc.kune.common.client.tooltip.Tooltip;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
Modified: trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicDialog.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicDialog.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicDialog.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -20,7 +20,7 @@
package cc.kune.common.client.ui.dialogs;
import cc.kune.common.client.ui.IconLabel;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.HasClickHandlers;
Modified: trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -21,7 +21,7 @@
import cc.kune.common.client.tooltip.Tooltip;
import cc.kune.common.client.ui.PopupTopPanel;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
Deleted: trunk/src/main/java/cc/kune/common/client/utils/TextUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/utils/TextUtils.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/common/client/utils/TextUtils.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -1,254 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- */
-package cc.kune.common.client.utils;
-
-import java.util.ArrayList;
-
-import org.apache.commons.lang.WordUtils;
-
-import cc.kune.common.client.errors.NotImplementedException;
-import cc.kune.common.client.errors.UIException;
-
-import com.google.gwt.safehtml.shared.SimpleHtmlSanitizer;
-import com.google.gwt.safehtml.shared.UriUtils;
-
-public class TextUtils {
-
- // Original regexp from http://www.regular-expressions.info/email.html
- public static final String EMAIL_REGEXP = "[-!#$%&\'*+/=?_`{|}~a-z0-9^]+(\\.[-!#$%&\'*+/=?_`{|}~a-z0-9^]+)*@(localhost|([a-z0-9]([-a-z0-9]*[a-z0-9])?\\.)+[a-z0-9]([-a-z0-9]*[a-z0-9]))?";
- public static final String IN_DEVELOPMENT = "In development";
-
- public static final String IN_DEVELOPMENT_P = " (in development)";
-
- public static final String NUM_REGEXP = "^[0-9]+$";
-
- public static final String UNIX_NAME = "^[a-z0-9_\\-]+$";
-
- // Original regexp from http://snippets.dzone.com/posts/show/452
- public static final String URL_REGEXP = "((ftp|http|https|mailto):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?)";
-
- /**
- * @see WordUtils#abbreviate
- */
- public static String abbreviate(final String str, int lower, int upper, final String appendToEnd) {
- // initial parameter checks
- if (str == null) {
- return null;
- }
- if (str.length() == 0) {
- return "";
- }
-
- // if the lower value is greater than the length of the string,
- // set to the length of the string
- if (lower > str.length()) {
- lower = str.length();
- }
- // if the upper value is -1 (i.e. no limit) or is greater
- // than the length of the string, set to the length of the string
- if (upper == -1 || upper > str.length()) {
- upper = str.length();
- }
- // if upper is less than lower, raise it to lower
- if (upper < lower) {
- upper = lower;
- }
-
- final StringBuffer result = new StringBuffer();
- final int index = str.indexOf(" ", lower);
- if (index == -1) {
- result.append(str.substring(0, upper));
- // only if abbreviation has occured do we append the appendToEnd value
- if (upper != str.length()) {
- result.append(defaultString(appendToEnd));
- }
- } else if (index > upper) {
- result.append(str.substring(0, upper));
- result.append(defaultString(appendToEnd));
- } else {
- result.append(str.substring(0, index));
- result.append(defaultString(appendToEnd));
- }
- return result.toString();
- }
-
- public static String br() {
- return "<br/>";
- }
-
- public static String brbr() {
- return "<br/><br/>";
- }
-
- /**
- * @see WordUtils#capitalize(String, char[])
- * @return
- */
- public static String capitalize(final String str, final char[] delimiters) {
- final int delimLen = (delimiters == null ? -1 : delimiters.length);
- if (str == null || str.length() == 0 || delimLen == 0) {
- return str;
- }
- final int strLen = str.length();
- final StringBuffer buffer = new StringBuffer(strLen);
- boolean capitalizeNext = true;
- for (int i = 0; i < strLen; i++) {
- final char ch = str.charAt(i);
-
- if (isDelimiter(ch, delimiters)) {
- buffer.append(ch);
- capitalizeNext = true;
- } else if (capitalizeNext) {
- // Original:in WordUtils buffer.append(Character.toTitleCase(ch));
- buffer.append(String.valueOf(ch).toUpperCase());
- capitalizeNext = false;
- } else {
- buffer.append(ch);
- }
- }
- return buffer.toString();
- }
-
- /**
- * @see WordUtils#capitalizeFully(String)
- */
- public static String capitalizeFully(String str, final char[] delimiters) {
- final int delimLen = (delimiters == null ? -1 : delimiters.length);
- if (str == null || str.length() == 0 || delimLen == 0) {
- return str;
- }
- str = str.toLowerCase();
- return capitalize(str, delimiters);
- }
-
- private static String defaultString(final String str) {
- return str == null ? "" : str;
- }
-
- public static String ellipsis(final String text, final int length) {
- return text == null ? "" : length <= 0 ? text : text.length() > length ? text.substring(0,
- length - 3) + "..." : text;
- }
-
- public static boolean empty(final String string) {
- return !notEmpty(string);
- }
-
- /**
- * This method escape only some dangerous html chars
- *
- * Try to use {@link SimpleHtmlSanitizer} better
- *
- */
- public static String escapeHtmlLight(final String source) {
- String result = source;
- if (source != null) {
- result = result.replaceAll("&", "&");
- result = result.replaceAll("\"", """);
- // text = text.replaceAll("\'", "'");
- result = result.replaceAll("<", "<");
- result = result.replaceAll(">", ">");
- result = result.replaceAll("—", "—");
- }
- return result;
- }
-
- /**
- * Generates a href link (with target="_blank")
- *
- */
- public static String generateHtmlLink(final String href, final String text) {
- return generateHtmlLink(href, text, true);
- }
-
- /**
- * Generates a href link
- *
- */
- public static String generateHtmlLink(final String href, final String text, final boolean targetBlank) {
- if (!UriUtils.isSafeUri(href)) {
- throw new UIException("Unsafe href");
- }
- return "<a href=\"" + UriUtils.sanitizeUri(href) + "\"" + (targetBlank ? "target=\"_blank\"" : "")
- + ">" + text + "</a>";
- }
-
- private static boolean isDelimiter(final char ch, final char[] delimiters) {
- if (delimiters == null) {
- throw new NotImplementedException();
- // return Character.isWhitespace(ch);
- }
- for (final char delimiter : delimiters) {
- if (ch == delimiter) {
- return true;
- }
- }
- return false;
- }
-
- public static boolean notEmpty(final String string) {
- return string != null && string.length() > 0;
- }
-
- public static String removeLastSlash(final String text) {
- return text.replaceFirst("/$", "");
- }
-
- public static ArrayList<String> splitTags(final String tagsString) {
- final ArrayList<String> tagsList = new ArrayList<String>();
- String tagsCopy = tagsString;
- // remove commas and quotes
- if (tagsString == null) {
- return tagsList;
- }
- tagsCopy = tagsCopy.replaceAll(",", " ");
- tagsCopy = tagsCopy.replaceAll("\"", "");
- tagsCopy = tagsCopy.replaceAll("\'", "");
- final String[] splitted = tagsCopy.split("\\s+");
- for (String tag : splitted) {
- tag = tag.replaceAll("\\s$", "");
- if (tag.length() > 0) {
- tagsList.add(tag);
- }
- }
- return tagsList;
- }
-
- /*
- * This method unescape only some dangerous html chars for use in GWT Html
- * widget for instance
- */
- public static String unescape(final String source) {
- if (source == null) {
- return null;
- }
- String result = source;
- result = result.replaceAll("&", "&");
- result = result.replaceAll(""", "\"");
- result = result.replaceAll("'", "\'");
- result = result.replaceAll("<", "<");
- result = result.replaceAll(">", ">");
- result = result.replaceAll("—", "—");
- return result;
- }
-
- public TextUtils() {
- }
-}
Deleted: trunk/src/main/java/cc/kune/common/client/utils/Url.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/utils/Url.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/common/client/utils/Url.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -1,63 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- \*/
-package cc.kune.common.client.utils;
-
-import java.util.ArrayList;
-
-public class Url {
- private final String base;
- private final ArrayList<UrlParam> params;
-
- public Url(final String base) {
- this.base = base;
- params = new ArrayList<UrlParam>();
- }
-
- public Url(final String base, final UrlParam... iniParams) {
- this(base);
- for (final UrlParam param : iniParams) {
- addImpl(param);
- }
- }
-
- public void add(final UrlParam param) {
- addImpl(param);
- }
-
- private void addImpl(final UrlParam param) {
- params.add(param);
- }
-
- @Override
- public String toString() {
- String paramPart = "";
- boolean first = true;
- for (final UrlParam param : params) {
- if (first) {
- paramPart = "?" + param;
- first = false;
- } else {
- paramPart += "&" + param;
- }
- }
- return base + paramPart;
- }
-
-}
Deleted: trunk/src/main/java/cc/kune/common/client/utils/UrlParam.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/utils/UrlParam.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/common/client/utils/UrlParam.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -1,56 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- \*/
-package cc.kune.common.client.utils;
-
-import java.util.Date;
-
-public class UrlParam {
- public static String noCacheStringSuffix() {
- final String noCache = "&nocache=" + new Date().getTime();
- return noCache;
- }
- private final String name;
-
- private final String value;
-
- public UrlParam(final String name, final boolean value) {
- this.name = name;
- this.value = value ? "true" : "false";
- }
-
- public UrlParam(final String name, final String value) {
- this.name = name;
- this.value = value;
- }
-
- public String getName() {
- return name;
- }
-
- public String getValue() {
- return value;
- }
-
- @Override
- public String toString() {
- return name + "=" + value;
- }
-
-}
Modified: trunk/src/main/java/cc/kune/common/shared/i18n/I18nTranslationServiceMocked.java
===================================================================
--- trunk/src/main/java/cc/kune/common/shared/i18n/I18nTranslationServiceMocked.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/common/shared/i18n/I18nTranslationServiceMocked.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -19,7 +19,7 @@
*/
package cc.kune.common.shared.i18n;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
public class I18nTranslationServiceMocked extends I18nTranslationService {
@Override
Copied: trunk/src/main/java/cc/kune/common/shared/utils/TextUtils.java (from rev 1647, trunk/src/main/java/cc/kune/common/client/utils/TextUtils.java)
===================================================================
--- trunk/src/main/java/cc/kune/common/shared/utils/TextUtils.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/shared/utils/TextUtils.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -0,0 +1,254 @@
+/*
+ *
+ * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+package cc.kune.common.shared.utils;
+
+import java.util.ArrayList;
+
+import org.apache.commons.lang.WordUtils;
+
+import cc.kune.common.client.errors.NotImplementedException;
+import cc.kune.common.client.errors.UIException;
+
+import com.google.gwt.safehtml.shared.SimpleHtmlSanitizer;
+import com.google.gwt.safehtml.shared.UriUtils;
+
+public class TextUtils {
+
+ // Original regexp from http://www.regular-expressions.info/email.html
+ public static final String EMAIL_REGEXP = "[-!#$%&\'*+/=?_`{|}~a-z0-9^]+(\\.[-!#$%&\'*+/=?_`{|}~a-z0-9^]+)*@(localhost|([a-z0-9]([-a-z0-9]*[a-z0-9])?\\.)+[a-z0-9]([-a-z0-9]*[a-z0-9]))?";
+ public static final String IN_DEVELOPMENT = "In development";
+
+ public static final String IN_DEVELOPMENT_P = " (in development)";
+
+ public static final String NUM_REGEXP = "^[0-9]+$";
+
+ public static final String UNIX_NAME = "^[a-z0-9_\\-]+$";
+
+ // Original regexp from http://snippets.dzone.com/posts/show/452
+ public static final String URL_REGEXP = "((ftp|http|https|mailto):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?)";
+
+ /**
+ * @see WordUtils#abbreviate
+ */
+ public static String abbreviate(final String str, int lower, int upper, final String appendToEnd) {
+ // initial parameter checks
+ if (str == null) {
+ return null;
+ }
+ if (str.length() == 0) {
+ return "";
+ }
+
+ // if the lower value is greater than the length of the string,
+ // set to the length of the string
+ if (lower > str.length()) {
+ lower = str.length();
+ }
+ // if the upper value is -1 (i.e. no limit) or is greater
+ // than the length of the string, set to the length of the string
+ if (upper == -1 || upper > str.length()) {
+ upper = str.length();
+ }
+ // if upper is less than lower, raise it to lower
+ if (upper < lower) {
+ upper = lower;
+ }
+
+ final StringBuffer result = new StringBuffer();
+ final int index = str.indexOf(" ", lower);
+ if (index == -1) {
+ result.append(str.substring(0, upper));
+ // only if abbreviation has occured do we append the appendToEnd value
+ if (upper != str.length()) {
+ result.append(defaultString(appendToEnd));
+ }
+ } else if (index > upper) {
+ result.append(str.substring(0, upper));
+ result.append(defaultString(appendToEnd));
+ } else {
+ result.append(str.substring(0, index));
+ result.append(defaultString(appendToEnd));
+ }
+ return result.toString();
+ }
+
+ public static String br() {
+ return "<br/>";
+ }
+
+ public static String brbr() {
+ return "<br/><br/>";
+ }
+
+ /**
+ * @see WordUtils#capitalize(String, char[])
+ * @return
+ */
+ public static String capitalize(final String str, final char[] delimiters) {
+ final int delimLen = (delimiters == null ? -1 : delimiters.length);
+ if (str == null || str.length() == 0 || delimLen == 0) {
+ return str;
+ }
+ final int strLen = str.length();
+ final StringBuffer buffer = new StringBuffer(strLen);
+ boolean capitalizeNext = true;
+ for (int i = 0; i < strLen; i++) {
+ final char ch = str.charAt(i);
+
+ if (isDelimiter(ch, delimiters)) {
+ buffer.append(ch);
+ capitalizeNext = true;
+ } else if (capitalizeNext) {
+ // Original:in WordUtils buffer.append(Character.toTitleCase(ch));
+ buffer.append(String.valueOf(ch).toUpperCase());
+ capitalizeNext = false;
+ } else {
+ buffer.append(ch);
+ }
+ }
+ return buffer.toString();
+ }
+
+ /**
+ * @see WordUtils#capitalizeFully(String)
+ */
+ public static String capitalizeFully(String str, final char[] delimiters) {
+ final int delimLen = (delimiters == null ? -1 : delimiters.length);
+ if (str == null || str.length() == 0 || delimLen == 0) {
+ return str;
+ }
+ str = str.toLowerCase();
+ return capitalize(str, delimiters);
+ }
+
+ private static String defaultString(final String str) {
+ return str == null ? "" : str;
+ }
+
+ public static String ellipsis(final String text, final int length) {
+ return text == null ? "" : length <= 0 ? text : text.length() > length ? text.substring(0,
+ length - 3) + "..." : text;
+ }
+
+ public static boolean empty(final String string) {
+ return !notEmpty(string);
+ }
+
+ /**
+ * This method escape only some dangerous html chars
+ *
+ * Try to use {@link SimpleHtmlSanitizer} better
+ *
+ */
+ public static String escapeHtmlLight(final String source) {
+ String result = source;
+ if (source != null) {
+ result = result.replaceAll("&", "&");
+ result = result.replaceAll("\"", """);
+ // text = text.replaceAll("\'", "'");
+ result = result.replaceAll("<", "<");
+ result = result.replaceAll(">", ">");
+ result = result.replaceAll("—", "—");
+ }
+ return result;
+ }
+
+ /**
+ * Generates a href link (with target="_blank")
+ *
+ */
+ public static String generateHtmlLink(final String href, final String text) {
+ return generateHtmlLink(href, text, true);
+ }
+
+ /**
+ * Generates a href link
+ *
+ */
+ public static String generateHtmlLink(final String href, final String text, final boolean targetBlank) {
+ if (!UriUtils.isSafeUri(href)) {
+ throw new UIException("Unsafe href");
+ }
+ return "<a href=\"" + UriUtils.sanitizeUri(href) + "\"" + (targetBlank ? "target=\"_blank\"" : "")
+ + ">" + text + "</a>";
+ }
+
+ private static boolean isDelimiter(final char ch, final char[] delimiters) {
+ if (delimiters == null) {
+ throw new NotImplementedException();
+ // return Character.isWhitespace(ch);
+ }
+ for (final char delimiter : delimiters) {
+ if (ch == delimiter) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static boolean notEmpty(final String string) {
+ return string != null && string.length() > 0;
+ }
+
+ public static String removeLastSlash(final String text) {
+ return text.replaceFirst("/$", "");
+ }
+
+ public static ArrayList<String> splitTags(final String tagsString) {
+ final ArrayList<String> tagsList = new ArrayList<String>();
+ String tagsCopy = tagsString;
+ // remove commas and quotes
+ if (tagsString == null) {
+ return tagsList;
+ }
+ tagsCopy = tagsCopy.replaceAll(",", " ");
+ tagsCopy = tagsCopy.replaceAll("\"", "");
+ tagsCopy = tagsCopy.replaceAll("\'", "");
+ final String[] splitted = tagsCopy.split("\\s+");
+ for (String tag : splitted) {
+ tag = tag.replaceAll("\\s$", "");
+ if (tag.length() > 0) {
+ tagsList.add(tag);
+ }
+ }
+ return tagsList;
+ }
+
+ /*
+ * This method unescape only some dangerous html chars for use in GWT Html
+ * widget for instance
+ */
+ public static String unescape(final String source) {
+ if (source == null) {
+ return null;
+ }
+ String result = source;
+ result = result.replaceAll("&", "&");
+ result = result.replaceAll(""", "\"");
+ result = result.replaceAll("'", "\'");
+ result = result.replaceAll("<", "<");
+ result = result.replaceAll(">", ">");
+ result = result.replaceAll("—", "—");
+ return result;
+ }
+
+ public TextUtils() {
+ }
+}
Copied: trunk/src/main/java/cc/kune/common/shared/utils/Url.java (from rev 1647, trunk/src/main/java/cc/kune/common/client/utils/Url.java)
===================================================================
--- trunk/src/main/java/cc/kune/common/shared/utils/Url.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/shared/utils/Url.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -0,0 +1,63 @@
+/*
+ *
+ * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ \*/
+package cc.kune.common.shared.utils;
+
+import java.util.ArrayList;
+
+public class Url {
+ private final String base;
+ private final ArrayList<UrlParam> params;
+
+ public Url(final String base) {
+ this.base = base;
+ params = new ArrayList<UrlParam>();
+ }
+
+ public Url(final String base, final UrlParam... iniParams) {
+ this(base);
+ for (final UrlParam param : iniParams) {
+ addImpl(param);
+ }
+ }
+
+ public void add(final UrlParam param) {
+ addImpl(param);
+ }
+
+ private void addImpl(final UrlParam param) {
+ params.add(param);
+ }
+
+ @Override
+ public String toString() {
+ String paramPart = "";
+ boolean first = true;
+ for (final UrlParam param : params) {
+ if (first) {
+ paramPart = "?" + param;
+ first = false;
+ } else {
+ paramPart += "&" + param;
+ }
+ }
+ return base + paramPart;
+ }
+
+}
Copied: trunk/src/main/java/cc/kune/common/shared/utils/UrlParam.java (from rev 1647, trunk/src/main/java/cc/kune/common/client/utils/UrlParam.java)
===================================================================
--- trunk/src/main/java/cc/kune/common/shared/utils/UrlParam.java (rev 0)
+++ trunk/src/main/java/cc/kune/common/shared/utils/UrlParam.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -0,0 +1,56 @@
+/*
+ *
+ * Copyright (C) 2007-2009 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ \*/
+package cc.kune.common.shared.utils;
+
+import java.util.Date;
+
+public class UrlParam {
+ public static String noCacheStringSuffix() {
+ final String noCache = "&nocache=" + new Date().getTime();
+ return noCache;
+ }
+ private final String name;
+
+ private final String value;
+
+ public UrlParam(final String name, final boolean value) {
+ this.name = name;
+ this.value = value ? "true" : "false";
+ }
+
+ public UrlParam(final String name, final String value) {
+ this.name = name;
+ this.value = value;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return name + "=" + value;
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/core/client/actions/xml/XMLActionsParser.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/xml/XMLActionsParser.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/actions/xml/XMLActionsParser.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -27,8 +27,8 @@
import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.SubMenuDescriptor;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.actions.ActionRegistryByType;
import cc.kune.core.client.errors.ErrorHandler;
import cc.kune.core.client.registry.NewMenusForTypeIdsRegistry;
Modified: trunk/src/main/java/cc/kune/core/client/auth/AnonUsersManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/AnonUsersManager.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/auth/AnonUsersManager.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -21,7 +21,7 @@
import cc.kune.common.client.events.UserNotifyEvent;
import cc.kune.common.client.notify.NotifyLevel;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.cookies.CookiesManager;
import cc.kune.core.client.i18n.I18nUITranslationService;
import cc.kune.core.client.init.AppStartEvent;
Modified: trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -24,9 +24,9 @@
import cc.kune.common.client.log.Log;
import cc.kune.common.client.notify.NotifyLevel;
import cc.kune.common.client.utils.OnAcceptCallback;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.client.utils.TimerWrapper;
import cc.kune.common.client.utils.TimerWrapper.Executer;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.auth.SignInPresenter.SignInView;
import cc.kune.core.client.cookies.CookiesManager;
import cc.kune.core.client.errors.UserAuthException;
Modified: trunk/src/main/java/cc/kune/core/client/auth/UserFieldFactory.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/UserFieldFactory.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/auth/UserFieldFactory.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -19,8 +19,8 @@
*/
package cc.kune.core.client.auth;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.resources.CoreMessages;
import cc.kune.core.client.ui.DefaultForm;
Modified: trunk/src/main/java/cc/kune/core/client/cnt/FoldableContentPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/cnt/FoldableContentPresenter.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/cnt/FoldableContentPresenter.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -22,7 +22,7 @@
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
import cc.kune.common.client.notify.NotifyUser;
import cc.kune.common.shared.i18n.I18nTranslationService;
-import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.services.ImageSize;
import cc.kune.core.client.services.MediaUtils;
import cc.kune.core.client.state.Session;
@@ -41,7 +41,7 @@
FoldableContent {
private final GuiActionDescCollection actionRegistry;
- private final Provider<FileDownloadUtils> downloadProvider;
+ private final Provider<ClientFileDownloadUtils> downloadProvider;
private final I18nTranslationService i18n;
private final Provider<MediaUtils> mediaUtils;
protected final Session session;
@@ -52,7 +52,7 @@
public FoldableContentPresenter(final String toolName, final StateManager stateManager,
final Session session, final ActionContentToolbar toolbar,
- final GuiActionDescCollection actionRegistry, final Provider<FileDownloadUtils> downloadProvider,
+ final GuiActionDescCollection actionRegistry, final Provider<ClientFileDownloadUtils> downloadProvider,
final I18nTranslationService i18n, final Provider<MediaUtils> mediaUtils) {
this.toolName = toolName;
this.session = session;
@@ -154,7 +154,7 @@
final StateToken token = state.getStateToken();
final BasicMimeTypeDTO mimeType = state.getMimeType();
if (mimeType != null) {
- final FileDownloadUtils fileDownloadUtils = downloadProvider.get();
+ final ClientFileDownloadUtils fileDownloadUtils = downloadProvider.get();
if (mimeType.isImage()) {
view.showImage(fileDownloadUtils.getImageUrl(token),
fileDownloadUtils.getImageResizedUrl(token, ImageSize.sized), false);
Modified: trunk/src/main/java/cc/kune/core/client/dnd/FolderViewerDropController.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/dnd/FolderViewerDropController.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/dnd/FolderViewerDropController.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -21,8 +21,8 @@
import cc.kune.common.client.actions.ui.descrip.DropTarget;
import cc.kune.common.client.notify.NotifyUser;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.errors.ErrorHandler;
import cc.kune.core.client.rpcservices.ContentServiceAsync;
import cc.kune.core.client.state.ContentCache;
Modified: trunk/src/main/java/cc/kune/core/client/dnd/NotImplementedDropController.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/dnd/NotImplementedDropController.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/dnd/NotImplementedDropController.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -20,8 +20,8 @@
package cc.kune.core.client.dnd;
import cc.kune.common.client.notify.NotifyUser;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import com.allen_sauer.gwt.dnd.client.DragContext;
import com.allen_sauer.gwt.dnd.client.VetoDragException;
Modified: trunk/src/main/java/cc/kune/core/client/errors/ErrorHandler.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/errors/ErrorHandler.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/errors/ErrorHandler.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -27,8 +27,8 @@
import cc.kune.common.client.log.Log;
import cc.kune.common.client.notify.NotifyLevel;
import cc.kune.common.client.notify.NotifyUser;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
import cc.kune.wave.client.WaveClientProvider;
Modified: trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/i18n/I18nUITranslationService.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -32,9 +32,9 @@
import cc.kune.common.client.utils.MetaUtils;
import cc.kune.common.client.utils.Pair;
import cc.kune.common.client.utils.SimpleResponseCallback;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.client.utils.WindowUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.rpcservices.I18nServiceAsync;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.UserSignInEvent;
Modified: trunk/src/main/java/cc/kune/core/client/i18n/I18nUrlUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/i18n/I18nUrlUtils.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/i18n/I18nUrlUtils.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -19,9 +19,9 @@
*/
package cc.kune.core.client.i18n;
-import cc.kune.common.client.utils.TextUtils;
-import cc.kune.common.client.utils.Url;
-import cc.kune.common.client.utils.UrlParam;
+import cc.kune.common.shared.utils.TextUtils;
+import cc.kune.common.shared.utils.Url;
+import cc.kune.common.shared.utils.UrlParam;
public class I18nUrlUtils {
Modified: trunk/src/main/java/cc/kune/core/client/i18n/I18nUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/i18n/I18nUtils.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/i18n/I18nUtils.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -21,7 +21,7 @@
import cc.kune.common.client.errors.UIException;
import cc.kune.common.client.log.Log;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
/**
* Copied some methods from org.apache.commons.lang.WordUtils
Modified: trunk/src/main/java/cc/kune/core/client/registry/IdGenerator.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/registry/IdGenerator.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/registry/IdGenerator.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -19,7 +19,7 @@
*/
package cc.kune.core.client.registry;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import com.google.gxp.com.google.common.base.Nullable;
Copied: trunk/src/main/java/cc/kune/core/client/services/ClientFileDownloadUtils.java (from rev 1647, trunk/src/main/java/cc/kune/core/client/services/FileDownloadUtils.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/services/ClientFileDownloadUtils.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/services/ClientFileDownloadUtils.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -0,0 +1,99 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ \*/
+package cc.kune.core.client.services;
+
+import cc.kune.common.shared.utils.Url;
+import cc.kune.common.shared.utils.UrlParam;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.shared.FileConstants;
+import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.core.shared.utils.SharedFileDownloadUtils;
+
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.ui.RootPanel;
+import com.google.inject.Inject;
+
+public class ClientFileDownloadUtils extends SharedFileDownloadUtils {
+
+ private final ImageUtils imageUtils;
+ private final Session session;
+
+ @Inject
+ public ClientFileDownloadUtils(final Session session, final ImageUtils imageUtils) {
+ this.session = session;
+ this.imageUtils = imageUtils;
+ }
+
+ private String calculateUrl(final StateToken token, final boolean download, final boolean useHash) {
+ final Url url = new Url(FileConstants.DOWNLOADSERVLET, new UrlParam(FileConstants.TOKEN,
+ token.toString()));
+ if (download) {
+ url.add(new UrlParam(FileConstants.DOWNLOAD, download));
+ }
+ if (useHash) {
+ final String hash = session.getUserHash();
+ if (hash != null) {
+ url.add(new UrlParam(FileConstants.HASH, hash));
+ }
+ }
+ return url.toString();
+ }
+
+ public void downloadFile(final StateToken token) {
+ final String url = calculateUrl(token, true, true);
+ DOM.setElementAttribute(RootPanel.get("__download").getElement(), "src", url);
+ }
+
+ public String getBackgroundImageUrl(final StateToken token) {
+ return new Url(FileConstants.BACKDOWNLOADSERVLET,
+ new UrlParam(FileConstants.TOKEN, token.toString())).toString();
+ }
+
+ public String getBackgroundResizedUrl(final StateToken token, final ImageSize imageSize) {
+ return new Url(FileConstants.BACKDOWNLOADSERVLET,
+ new UrlParam(FileConstants.TOKEN, token.toString()), new UrlParam(FileConstants.IMGSIZE,
+ imageSize.toString())).toString();
+ }
+
+ public String getImageResizedUrl(final StateToken token, final ImageSize imageSize) {
+ return calculateUrl(token, false, true) + "&"
+ + new UrlParam(FileConstants.IMGSIZE, imageSize.toString());
+ }
+
+ public String getImageUrl(final StateToken token) {
+ return calculateUrl(token, false, true);
+ }
+
+ public String getLogoAvatarHtml(final StateToken groupToken, final boolean groupHasLogo,
+ final boolean isPersonal, final int size, final int hvspace) {
+ if (groupHasLogo) {
+ return "<img hspace='" + hvspace + "' vspace='" + hvspace + "' align='left' style='width: " + size
+ + "px; height: " + size + "px;' src='" + getLogoImageUrl(groupToken.getGroup()) + "'>";
+ } else {
+ return isPersonal ? imageUtils.getImageHtml(ImageDescriptor.personDef)
+ : imageUtils.getImageHtml(ImageDescriptor.groupDefIcon);
+ }
+ }
+
+ public String getUrl(final StateToken token) {
+ return calculateUrl(token, false, false);
+ }
+
+}
Deleted: trunk/src/main/java/cc/kune/core/client/services/FileDownloadUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/services/FileDownloadUtils.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/services/FileDownloadUtils.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -1,118 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 <http://www.gnu.org/licenses/>.
- *
- \*/
-package cc.kune.core.client.services;
-
-import cc.kune.common.client.utils.Url;
-import cc.kune.common.client.utils.UrlParam;
-import cc.kune.core.client.state.Session;
-import cc.kune.core.shared.FileConstants;
-import cc.kune.core.shared.domain.utils.StateToken;
-import cc.kune.core.shared.dto.GroupDTO;
-import cc.kune.core.shared.dto.UserSimpleDTO;
-
-import com.google.gwt.user.client.DOM;
-import com.google.gwt.user.client.ui.RootPanel;
-import com.google.inject.Inject;
-
-public class FileDownloadUtils {
-
- private final ImageUtils imageUtils;
- private final Session session;
-
- @Inject
- public FileDownloadUtils(final Session session, final ImageUtils imageUtils) {
- this.session = session;
- this.imageUtils = imageUtils;
- }
-
- private String calculateUrl(final StateToken token, final boolean download, final boolean useHash) {
- final Url url = new Url(FileConstants.DOWNLOADSERVLET, new UrlParam(FileConstants.TOKEN,
- token.toString()));
- if (download) {
- url.add(new UrlParam(FileConstants.DOWNLOAD, download));
- }
- if (useHash) {
- final String hash = session.getUserHash();
- if (hash != null) {
- url.add(new UrlParam(FileConstants.HASH, hash));
- }
- }
- return url.toString();
- }
-
- public void downloadFile(final StateToken token) {
- final String url = calculateUrl(token, true, true);
- DOM.setElementAttribute(RootPanel.get("__download").getElement(), "src", url);
- }
-
- public String getBackgroundImageUrl(final StateToken token) {
- return new Url(FileConstants.BACKDOWNLOADSERVLET,
- new UrlParam(FileConstants.TOKEN, token.toString())).toString();
- }
-
- public String getBackgroundResizedUrl(final StateToken token, final ImageSize imageSize) {
- return new Url(FileConstants.BACKDOWNLOADSERVLET,
- new UrlParam(FileConstants.TOKEN, token.toString()), new UrlParam(FileConstants.IMGSIZE,
- imageSize.toString())).toString();
- }
-
- public String getGroupLogo(final GroupDTO group) {
- return group.hasLogo() ? getLogoImageUrl(group.getStateToken())
- : group.isPersonal() ? FileConstants.PERSON_NO_AVATAR_IMAGE
- : FileConstants.GROUP_NO_AVATAR_IMAGE;
- }
-
- public String getImageResizedUrl(final StateToken token, final ImageSize imageSize) {
- return calculateUrl(token, false, true) + "&"
- + new UrlParam(FileConstants.IMGSIZE, imageSize.toString());
- }
-
- public String getImageUrl(final StateToken token) {
- return calculateUrl(token, false, true);
- }
-
- public String getLogoAvatarHtml(final StateToken groupToken, final boolean groupHasLogo,
- final boolean isPersonal, final int size, final int hvspace) {
- if (groupHasLogo) {
- return "<img hspace='" + hvspace + "' vspace='" + hvspace + "' align='left' style='width: " + size
- + "px; height: " + size + "px;' src='" + getLogoImageUrl(groupToken) + "'>";
- } else {
- return isPersonal ? imageUtils.getImageHtml(ImageDescriptor.personDef)
- : imageUtils.getImageHtml(ImageDescriptor.groupDefIcon);
- }
- }
-
- public String getLogoImageUrl(final StateToken token) {
- return new Url(FileConstants.LOGODOWNLOADSERVLET,
- new UrlParam(FileConstants.TOKEN, token.toString())).toString();
- }
-
- public String getUrl(final StateToken token) {
- return calculateUrl(token, false, false);
- }
-
- public String getUserAvatar(final String username) {
- return new Url(FileConstants.AVATARDOWNLOADSERVLET, new UrlParam(FileConstants.USERNAME, username)).toString();
- }
-
- public String getUserAvatar(final UserSimpleDTO user) {
- return user.hasLogo() ? getLogoImageUrl(user.getStateToken()) : FileConstants.PERSON_NO_AVATAR_IMAGE;
- }
-}
Modified: trunk/src/main/java/cc/kune/core/client/services/MediaUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/services/MediaUtils.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/services/MediaUtils.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -30,9 +30,9 @@
private final Session session;
- private final FileDownloadUtils downloadUtils;
+ private final ClientFileDownloadUtils downloadUtils;
- public MediaUtils(final Session session, final FileDownloadUtils downloadUtils) {
+ public MediaUtils(final Session session, final ClientFileDownloadUtils downloadUtils) {
this.session = session;
this.downloadUtils = downloadUtils;
}
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -33,7 +33,7 @@
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.resources.CoreMessages;
import cc.kune.core.client.resources.CoreResources;
-import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.sn.actions.GotoGroupAction;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
@@ -53,7 +53,7 @@
public static final MenuDescriptor LOGGED_USER_MENU = new MenuDescriptor();
public static final String LOGGED_USER_MENU_ID = "kune-sump-lum";
- private final Provider<FileDownloadUtils> downloadProvider;
+ private final Provider<ClientFileDownloadUtils> downloadProvider;
private final GotoGroupAction gotoGroupAction;
private final I18nTranslationService i18n;
private SubMenuDescriptor partiMenu;
@@ -65,7 +65,7 @@
@Inject
public SiteUserOptionsPresenter(final Session session, final StateManager stateManager,
- final Provider<FileDownloadUtils> downloadProvider, final I18nTranslationService i18n,
+ final Provider<ClientFileDownloadUtils> downloadProvider, final I18nTranslationService i18n,
final CoreResources img, final SitebarActions siteOptions, final GotoGroupAction gotoGroupAction) {
super();
this.session = session;
Modified: trunk/src/main/java/cc/kune/core/client/sn/AbstractSNPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/AbstractSNPresenter.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/sn/AbstractSNPresenter.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -22,7 +22,7 @@
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.common.client.actions.ui.descrip.MenuTitleItemDescriptor;
-import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.sn.actions.registry.AbstractSNMembersActionsRegistry;
import cc.kune.core.shared.dto.GroupDTO;
@@ -37,10 +37,10 @@
private static final int MAX_NUM_AVATAR_IN_A_ROW = 6;
- protected final Provider<FileDownloadUtils> downloadProvider;
+ protected final Provider<ClientFileDownloadUtils> downloadProvider;
public AbstractSNPresenter(final EventBus eventBus, final View view, final Proxy<?> proxy,
- final Provider<FileDownloadUtils> downloadProvider) {
+ final Provider<ClientFileDownloadUtils> downloadProvider) {
super(eventBus, view, proxy);
this.downloadProvider = downloadProvider;
}
Modified: trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -23,7 +23,7 @@
import cc.kune.common.client.actions.ui.IsActionExtensible;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
-import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.sn.actions.registry.GroupSNAdminsMenuItemsRegistry;
import cc.kune.core.client.sn.actions.registry.GroupSNCollabsMenuItemsRegistry;
import cc.kune.core.client.sn.actions.registry.GroupSNConfActions;
@@ -101,7 +101,7 @@
@Inject
public GroupSNPresenter(final EventBus eventBus, final GroupSNView view, final GroupSNProxy proxy,
final StateManager stateManager, final Session session,
- final Provider<FileDownloadUtils> downloadProvider,
+ final Provider<ClientFileDownloadUtils> downloadProvider,
final GroupSNAdminsMenuItemsRegistry adminsMenuItemsRegistry,
final GroupSNCollabsMenuItemsRegistry collabsMenuItemsRegistry,
final GroupSNPendingsMenuItemsRegistry pendingsMenuItemsRegistry,
Modified: trunk/src/main/java/cc/kune/core/client/sn/UserSNPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/UserSNPresenter.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/sn/UserSNPresenter.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -24,7 +24,7 @@
import cc.kune.common.client.actions.ui.IsActionExtensible;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
import cc.kune.common.shared.i18n.I18nTranslationService;
-import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.sn.UserSNPresenter.UserSNProxy;
import cc.kune.core.client.sn.UserSNPresenter.UserSNView;
import cc.kune.core.client.sn.actions.registry.UserSNConfActions;
@@ -95,7 +95,7 @@
@Inject
public UserSNPresenter(final EventBus eventBus, final UserSNView view, final UserSNProxy proxy,
final I18nTranslationService i18n, final StateManager stateManager, final Session session,
- final Provider<FileDownloadUtils> downloadProvider,
+ final Provider<ClientFileDownloadUtils> downloadProvider,
final UserSNMenuItemsRegistry userMenuItemsRegistry, final UserSNConfActions confActionsRegistry) {
super(eventBus, view, proxy, downloadProvider);
this.i18n = i18n;
Modified: trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -21,7 +21,7 @@
import cc.kune.common.client.utils.Base64Utils;
import cc.kune.common.client.utils.SimpleCallback;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.state.StateManager;
import com.google.gwt.event.shared.EventBus;
Modified: trunk/src/main/java/cc/kune/core/client/ui/dialogs/tabbed/TabTitleGenerator.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/ui/dialogs/tabbed/TabTitleGenerator.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/ui/dialogs/tabbed/TabTitleGenerator.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -21,7 +21,7 @@
import cc.kune.common.client.tooltip.Tooltip;
import cc.kune.common.client.ui.IconLabel;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import com.google.gwt.i18n.client.HasDirection.Direction;
import com.google.gwt.resources.client.ImageResource;
Modified: trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -22,10 +22,10 @@
import cc.kune.common.client.actions.ui.ActionFlowPanel;
import cc.kune.common.client.actions.ui.bind.GuiProvider;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
-import cc.kune.common.client.utils.UrlParam;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.UrlParam;
import cc.kune.core.client.resources.CoreResources;
-import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.ws.entheader.EntityHeaderPresenter.EntityHeaderView;
import cc.kune.core.shared.FileConstants;
import cc.kune.core.shared.domain.utils.StateToken;
@@ -44,7 +44,7 @@
public class EntityHeaderPanel extends ViewImpl implements EntityHeaderView {
- private final Provider<FileDownloadUtils> downloadProvider;
+ private final Provider<ClientFileDownloadUtils> downloadProvider;
private final EntityTextLogo entityTextLogo;
private final CoreResources images;
private final HorizontalPanel mainPanel;
@@ -52,7 +52,7 @@
private final VerticalPanel vpanel;
@Inject
- public EntityHeaderPanel(final Provider<FileDownloadUtils> downloadProvider,
+ public EntityHeaderPanel(final Provider<ClientFileDownloadUtils> downloadProvider,
final CoreResources images, final GuiProvider bindings, final GSpaceArmor armor,
final EntityTextLogo entityTextLogo, final I18nTranslationService i18n) {
this.entityTextLogo = entityTextLogo;
@@ -108,7 +108,7 @@
@Override
public void setLogoImage(final GroupDTO group, final boolean noCache) {
- entityTextLogo.setLogoImage(downloadProvider.get().getLogoImageUrl(group.getStateToken())
+ entityTextLogo.setLogoImage(downloadProvider.get().getLogoImageUrl(group.getShortName())
+ (noCache ? UrlParam.noCacheStringSuffix() : ""));
}
Modified: trunk/src/main/java/cc/kune/core/server/InitData.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/InitData.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/server/InitData.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -165,11 +165,6 @@
return siteCommonName;
}
- @Deprecated
- public String getSiteDomain() {
- return siteDomain;
- }
-
public String getSiteLogoUrl() {
return siteLogoUrl;
}
@@ -306,11 +301,6 @@
this.siteCommonName = siteCommonName;
}
- @Deprecated
- public void setSiteDomain(final String siteDomain) {
- this.siteDomain = siteDomain;
- }
-
public void setSiteLogoUrl(final String siteLogoUrl) {
this.siteLogoUrl = siteLogoUrl;
}
Modified: trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -86,8 +86,8 @@
import cc.kune.core.server.manager.impl.UserManagerDefault;
import cc.kune.core.server.mapper.DozerMapper;
import cc.kune.core.server.mapper.Mapper;
-import cc.kune.core.server.notifier.NotifyService;
-import cc.kune.core.server.notifier.NotifyServiceDefault;
+import cc.kune.core.server.notifier.NotifySender;
+import cc.kune.core.server.notifier.NotifySenderDefault;
import cc.kune.core.server.notifier.UsersOnline;
import cc.kune.core.server.rpc.ContentRPC;
import cc.kune.core.server.rpc.GroupRPC;
@@ -195,7 +195,7 @@
bind(UsersOnline.class).to(UserSessionManager.class).in(Singleton.class);
requestStaticInjection(AccessRightsUtils.class);
bind(CronServerTasksManager.class).in(Singleton.class);
- bind(NotifyService.class).to(NotifyServiceDefault.class).in(Singleton.class);
+ bind(NotifySender.class).to(NotifySenderDefault.class).in(Singleton.class);
bind(WaveEmailNotifier.class).in(Singleton.class);
bindInterceptor(Matchers.any(), Matchers.annotatedWith(Authenticated.class),
outermostCall(new AuthenticatedMethodInterceptor()));
Modified: trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceDefault.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceDefault.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -19,8 +19,8 @@
*/
package cc.kune.core.server.i18n;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.server.UserSessionManager;
import cc.kune.core.server.manager.I18nTranslationManager;
import cc.kune.domain.I18nTranslation;
Added: trunk/src/main/java/cc/kune/core/server/mail/FormatedString.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/mail/FormatedString.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/mail/FormatedString.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -0,0 +1,141 @@
+package cc.kune.core.server.mail;
+
+import com.google.common.base.Preconditions;
+
+/**
+ * The Class FormatedString is used to separate, String templates (usually html)
+ * from args (indicated with %s) and also to allow the translation of this
+ * templates.
+ */
+public class FormatedString {
+
+ public static FormatedString build(final boolean shouldBeTranslated, final String template,
+ final Object... args) {
+ return new FormatedString(shouldBeTranslated, template, args);
+ }
+
+ /**
+ * Builds with only a message without args.
+ *
+ * @param plainMsg
+ * the plain msg
+ * @return the formated string
+ */
+ public static FormatedString build(final String plainMsg) {
+ return new FormatedString(plainMsg);
+ }
+
+ /**
+ * Builds the.
+ *
+ * @param template
+ * the template
+ * @param args
+ * the args
+ * @return the formated string
+ */
+ public static FormatedString build(final String template, final Object... args) {
+ return new FormatedString(template, args);
+ }
+
+ /** The args. */
+ private final Object[] args;
+
+ /** The should be translated. */
+ private boolean shouldBeTranslated;
+
+ /** The template. */
+ private String template;
+
+ /**
+ * Instantiates a new formated string.
+ *
+ * @param template
+ * the template
+ * @param shouldBeTranslated
+ * the should be translated
+ * @param args
+ * the args that will be formatted inside the template (%s, etc)
+ */
+ public FormatedString(final boolean shouldBeTranslated, final String template, final Object... args) {
+ this.template = template;
+ this.shouldBeTranslated = shouldBeTranslated;
+ this.args = args;
+ }
+
+ /**
+ * Instantiates a new formated string.
+ *
+ * @param plainMsg
+ * the plain msg
+ */
+ public FormatedString(final String plainMsg) {
+ template = plainMsg;
+ args = null;
+ shouldBeTranslated = true;
+ }
+
+ /**
+ * Instantiates a new formated string.
+ *
+ * @param template
+ * the template
+ * @param args
+ * the args that will be formatted inside the template (%s, etc)
+ */
+ public FormatedString(final String template, final Object... args) {
+ this.template = template;
+ this.args = args;
+ this.shouldBeTranslated = true;
+ }
+
+ /**
+ * Gets the string.
+ *
+ * @return the string
+ */
+ public String getString() {
+ Preconditions.checkNotNull(template, "Template of FormatedString cannot be null");
+ return args == null ? template : String.format(template, args);
+ }
+
+ /**
+ * Gets the template.
+ *
+ * @return the template
+ */
+ public String getTemplate() {
+ return template;
+ }
+
+ /**
+ * Sets the should be translated.
+ *
+ * @param shouldBeTranslated
+ * the new should be translated
+ */
+ public void setShouldBeTranslated(final boolean shouldBeTranslated) {
+ this.shouldBeTranslated = shouldBeTranslated;
+ }
+
+ /**
+ * Sets the template. Used to translate the template to the user language
+ * (when you don't know already the language of the user)
+ *
+ * @param template
+ * the new template
+ */
+ public void setTemplate(final String template) {
+ this.template = template;
+ }
+
+ /**
+ * If should be translated (sometimes the template is only html and should not
+ * be translated)
+ *
+ * @return true, if should be
+ */
+ public boolean shouldBeTranslated() {
+ return shouldBeTranslated;
+ }
+}
Modified: trunk/src/main/java/cc/kune/core/server/mail/MailService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/mail/MailService.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/server/mail/MailService.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -19,8 +19,6 @@
*/
package cc.kune.core.server.mail;
-import cc.kune.core.server.mail.MailServiceDefault.FormatedString;
-
public interface MailService {
/**
Modified: trunk/src/main/java/cc/kune/core/server/mail/MailServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/mail/MailServiceDefault.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/server/mail/MailServiceDefault.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -35,7 +35,6 @@
import cc.kune.core.server.LogThis;
import cc.kune.core.server.properties.KuneProperties;
-import com.google.common.base.Preconditions;
import com.google.inject.Inject;
import com.google.inject.Singleton;
@@ -43,46 +42,6 @@
@LogThis
public class MailServiceDefault implements MailService {
- public static class FormatedString {
- public static FormatedString build(final String plainMsg) {
- return new FormatedString(plainMsg);
- }
-
- public static FormatedString build(final String template, final Object... args) {
- return new FormatedString(template, args);
- }
-
- private final Object[] args;
- private String template;
-
- public FormatedString(final String plainMsg) {
- template = plainMsg;
- args = null;
- }
-
- public FormatedString(final String template, final Object... args) {
- this.template = template;
- this.args = args;
- }
-
- public String getString() {
- Preconditions.checkNotNull(template, "Template of FormatedString cannot be null");
- return args == null ? template : String.format(template, args);
- }
-
- public String getTemplate() {
- return template;
- }
-
- /*
- * Used to translate the template to the user language (when you don't know
- * already the language of the user)
- */
- public void setTemplate(final String template) {
- this.template = template;
- }
- }
-
Log log = LogFactory.getLog(MailServiceDefault.class);
private final Properties props;
private final String smtpDefaultFrom;
Modified: trunk/src/main/java/cc/kune/core/server/manager/TagUserContentManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/TagUserContentManagerDefault.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/server/manager/TagUserContentManagerDefault.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -26,7 +26,7 @@
import javax.persistence.NoResultException;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.server.manager.impl.DefaultManager;
import cc.kune.core.shared.domain.TagCloudResult;
import cc.kune.core.shared.domain.TagCount;
Modified: trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoDownloadManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoDownloadManager.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoDownloadManager.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -55,8 +55,9 @@
}
if (!group.hasLogo()) {
- FileDownloadManagerUtils.returnFile("src/main/webapp/others/defgroup.gif",
- resp.getOutputStream());
+ FileDownloadManagerUtils.returnFile("src/main/webapp/"
+ + (group.isPersonal() ? FileConstants.PERSON_NO_AVATAR_IMAGE
+ : FileConstants.GROUP_NO_AVATAR_IMAGE), resp.getOutputStream());
} else {
// Has logo
final byte[] logo = group.getLogo();
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/I18nTranslationManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/I18nTranslationManagerDefault.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/I18nTranslationManagerDefault.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -25,7 +25,7 @@
import javax.persistence.EntityManager;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.errors.DefaultException;
import cc.kune.core.server.manager.I18nLanguageManager;
import cc.kune.core.server.manager.I18nTranslationManager;
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -43,8 +43,8 @@
import org.waveprotocol.wave.model.wave.ParticipantId;
import org.waveprotocol.wave.model.waveref.WaveRef;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.errors.DefaultException;
import cc.kune.core.client.errors.EmailAddressInUseException;
import cc.kune.core.client.errors.GroupLongNameInUseException;
@@ -52,8 +52,8 @@
import cc.kune.core.client.errors.I18nNotFoundException;
import cc.kune.core.client.errors.UserRegistrationException;
import cc.kune.core.client.errors.WrongCurrentPasswordException;
+import cc.kune.core.server.mail.FormatedString;
import cc.kune.core.server.mail.MailService;
-import cc.kune.core.server.mail.MailServiceDefault.FormatedString;
import cc.kune.core.server.manager.GroupManager;
import cc.kune.core.server.manager.I18nCountryManager;
import cc.kune.core.server.manager.I18nLanguageManager;
Added: trunk/src/main/java/cc/kune/core/server/notifier/NotifyHtmlHelper.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/notifier/NotifyHtmlHelper.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/notifier/NotifyHtmlHelper.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -0,0 +1,59 @@
+package cc.kune.core.server.notifier;
+
+import cc.kune.core.server.mail.FormatedString;
+import cc.kune.core.server.utils.AbsoluteFileDownloadUtils;
+import cc.kune.core.shared.utils.SharedFileDownloadUtils;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+/**
+ * The Class NotifyHtmlHelper is used to get html snippets for email
+ * notifications.
+ */
+@Singleton
+public class NotifyHtmlHelper {
+
+ /** The template used from messages snippets from a group */
+ private static String GROUP_TEMPLATE = "<table style=\"FIXME\" border=\"0\" cellpadding=\"2\" cellspacing=\"2\" width=\"100%%\">"
+ + "<tbody><tr>"
+ + "<td style=\"\" valign=\"top\"><a href=\"%s\">%s</a></td>"
+ + "<td style=\"\" valign=\"top\" width=\"100%%\">"
+ + "<a href=\"%s\">%s</a><br>"
+ + "%s"
+ + "</td></tr></tbody></table>";
+
+ private final SharedFileDownloadUtils fileDownloadUtils;
+
+ /**
+ * Instantiates a new notify html helper.
+ *
+ * @param fileDownloadUtils
+ * the file download utils
+ */
+ @Inject
+ public NotifyHtmlHelper(final AbsoluteFileDownloadUtils fileDownloadUtils) {
+ this.fileDownloadUtils = fileDownloadUtils;
+ }
+
+ /**
+ * Generates a group notification in html like [logo|message]
+ *
+ * @param groupName
+ * the group name you want to get the notification
+ * @param hasLogo
+ * the has logo?
+ * @param message
+ * the message to show close to the logo
+ * @param readMoreMsg
+ * the read more msg
+ * @return the html string
+ */
+ public FormatedString groupNotification(final String groupName, final boolean hasLogo,
+ final String message) {
+ final String groupUrl = fileDownloadUtils.getPrefix() + "#" + groupName;
+ return FormatedString.build(false, GROUP_TEMPLATE, groupUrl,
+ fileDownloadUtils.getLogoAvatarHtml(groupName, hasLogo, false, 50, 50), groupUrl, groupName,
+ message);
+ }
+}
Copied: trunk/src/main/java/cc/kune/core/server/notifier/NotifySender.java (from rev 1648, trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/server/notifier/NotifySender.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/notifier/NotifySender.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -0,0 +1,45 @@
+package cc.kune.core.server.notifier;
+
+import cc.kune.core.server.mail.FormatedString;
+
+/**
+ * The Interface NotifySender.
+ */
+public interface NotifySender {
+
+ /**
+ * Send a message to the recipients (also translate the subject/body using the
+ * user language)
+ *
+ * @param notifyType
+ * the notify type (email, etc)
+ * @param subject
+ * the subject of the message (not translated)
+ * @param body
+ * the body of the message (not translated) but with %s
+ * {@link String.format} args
+ * @param isHtml
+ * if the body is html
+ * @param recipients
+ * the recipients shortnames (without domain)
+ */
+ void send(NotifyType notifyType, FormatedString subject, FormatedString body, boolean isHtml,
+ String... recipients);
+
+ /**
+ * Send a message to the recipients (also translate the subject/body using the
+ * user language)
+ *
+ * @param notifyType
+ * the notify type (email, etc)
+ * @param subject
+ * the subject of the message
+ * @param body
+ * the body of the message (no translated) but with some %s
+ * {@link String.format} args
+ * @param recipients
+ * the recipients shortnames (without domain)
+ */
+ void send(NotifyType notifyType, FormatedString subject, FormatedString body, String... recipients);
+
+}
Copied: trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java (from rev 1649, trunk/src/main/java/cc/kune/core/server/notifier/NotifyServiceDefault.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -0,0 +1,109 @@
+package cc.kune.core.server.notifier;
+
+import java.io.File;
+import java.io.IOException;
+
+import javax.persistence.NoResultException;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import cc.kune.common.shared.utils.TextUtils;
+import cc.kune.core.server.mail.FormatedString;
+import cc.kune.core.server.mail.MailService;
+import cc.kune.core.server.manager.I18nTranslationManager;
+import cc.kune.core.server.manager.UserManager;
+import cc.kune.core.server.properties.KuneProperties;
+import cc.kune.core.server.xmpp.XmppManager;
+import cc.kune.core.shared.domain.dto.EmailNotificationFrequency;
+import cc.kune.domain.User;
+import cc.kune.wave.server.KuneWaveService;
+
+import com.google.common.base.Preconditions;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+@Singleton
+public class NotifySenderDefault implements NotifySender {
+ public static final Log LOG = LogFactory.getLog(NotifySenderDefault.class);
+ private final String emailTemplate;
+ private final I18nTranslationManager i18n;
+ private final MailService mailService;
+ private final UserManager userManager;
+ private final KuneWaveService waveService;
+ private final XmppManager xmppManager;
+
+ @Inject
+ public NotifySenderDefault(final MailService mailService, final KuneWaveService waveService,
+ final XmppManager xmppManager, final UserManager userManager, final I18nTranslationManager i18n,
+ final KuneProperties kuneProperties) throws IOException {
+ this.mailService = mailService;
+ this.waveService = waveService;
+ this.xmppManager = xmppManager;
+ this.userManager = userManager;
+ this.i18n = i18n;
+ emailTemplate = FileUtils.readFileToString(new File(
+ kuneProperties.get(KuneProperties.SITE_EMAIL_TEMPLATE)));
+ Preconditions.checkNotNull(emailTemplate);
+ Preconditions.checkArgument(TextUtils.notEmpty(emailTemplate));
+ }
+
+ @Override
+ public void send(final NotifyType notifyType, final FormatedString subject, final FormatedString body,
+ final boolean isHtml, final String... recipients) {
+ for (final String recipient : recipients) {
+ User user;
+ try {
+ user = userManager.findByShortname(recipient);
+ } catch (final NoResultException e) {
+ LOG.info(String.format("The recipient %s is not a local user, don't notify", recipient));
+ continue;
+ }
+ if (subject.shouldBeTranslated()) {
+ // Translate per recipient language
+ final String subjectTranslation = i18n.getTranslation(user.getLanguage().getCode(),
+ subject.getTemplate(), "");
+ if (subjectTranslation != null) {
+ // Right now commented because we are only testing
+ // subject.setTemplate(subjectTranslation);
+ }
+ }
+ if (body.shouldBeTranslated()) {
+ final String bodyTranslation = i18n.getTranslation(user.getLanguage().getCode(),
+ body.getTemplate(), "");
+ if (bodyTranslation != null) {
+ // Right now commented because we are only testing
+ // body.setTemplate(bodyTranslation);
+ }
+ }
+ switch (notifyType) {
+ case chat:
+ xmppManager.sendMessage(recipient,
+ String.format("<b>%s</b>%s", subject.getString(), body.getString()));
+ break;
+ case email:
+ if (user.getEmailNotifFreq().equals(EmailNotificationFrequency.immediately)) {
+ mailService.send(subject, FormatedString.build(emailTemplate.replace("%s", body.getString())),
+ isHtml, user.getEmail());
+ } else {
+ // TODO: handle other types of notifications frequencies
+ }
+ break;
+ case wave:
+ if (isHtml) {
+ LOG.error("Wave html messages not supported yet");
+ }
+ waveService.createWave(subject.getString(), body.getString(), recipient);
+ break;
+ }
+ }
+ }
+
+ @Override
+ public void send(final NotifyType notifyType, final FormatedString subject, final FormatedString body,
+ final String... dests) {
+ send(notifyType, subject, body, false, dests);
+ }
+
+}
Deleted: trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -1,45 +0,0 @@
-package cc.kune.core.server.notifier;
-
-import cc.kune.core.server.mail.MailServiceDefault.FormatedString;
-
-/**
- * The Interface NotifyService.
- */
-public interface NotifyService {
-
- /**
- * Send a message to the recipients (also translate the subject/body using the
- * user language)
- *
- * @param notifyType
- * the notify type (email, etc)
- * @param subject
- * the subject of the message (not translated)
- * @param body
- * the body of the message (not translated) but with %s
- * {@link String.format} args
- * @param isHtml
- * if the body is html
- * @param recipients
- * the recipients shortnames (without domain)
- */
- void send(NotifyType notifyType, FormatedString subject, FormatedString body, boolean isHtml,
- String... recipients);
-
- /**
- * Send a message to the recipients (also translate the subject/body using the
- * user language)
- *
- * @param notifyType
- * the notify type (email, etc)
- * @param subject
- * the subject of the message
- * @param body
- * the body of the message (no translated) but with some %s
- * {@link String.format} args
- * @param recipients
- * the recipients shortnames (without domain)
- */
- void send(NotifyType notifyType, FormatedString subject, FormatedString body, String... recipients);
-
-}
Copied: trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java (from rev 1649, trunk/src/main/java/cc/kune/core/server/notifier/NotifyServiceDefault.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -0,0 +1,55 @@
+package cc.kune.core.server.notifier;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.collections.CollectionUtils;
+
+import cc.kune.core.server.mail.FormatedString;
+import cc.kune.domain.Group;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+@Singleton
+public class NotifyService {
+
+ private final NotifyHtmlHelper helper;
+ private final NotifySender sender;
+
+ @Inject
+ NotifyService(final NotifySender sender, final NotifyHtmlHelper helper) {
+ this.sender = sender;
+ this.helper = helper;
+ }
+
+ @SuppressWarnings("unchecked")
+ public void notifyGroup(final Group groupToNotify, final Group groupSender, final String subject,
+ final String message) {
+ final Set<Group> admins = groupToNotify.getSocialNetwork().getAccessLists().getAdmins().getList();
+ final Set<Group> collabs = groupToNotify.getSocialNetwork().getAccessLists().getEditors().getList();
+ final List<Group> groups = (List<Group>) CollectionUtils.union(admins, collabs);
+ notifyToAll(groupSender, subject, message, groups);
+ }
+
+ public void notifyGroupAdmins(final Group groupToNotify, final Group groupSender,
+ final String subject, final String message) {
+ final Set<Group> admins = groupToNotify.getSocialNetwork().getAccessLists().getAdmins().getList();
+ notifyToAll(groupSender, subject, message, admins);
+ }
+
+ private void notifyToAll(final Group groupSender, final String subject, final String message,
+ final Collection<Group> groups) {
+ for (final Group to : groups) {
+ sender.send(NotifyType.email, FormatedString.build(subject),
+ helper.groupNotification(groupSender.getShortName(), groupSender.hasLogo(), message),
+ to.getShortName());
+ }
+ }
+
+ public void notifyUser(final String to, final Group group, final String subject, final String message) {
+ sender.send(NotifyType.email, FormatedString.build(subject),
+ helper.groupNotification(group.getShortName(), group.hasLogo(), message), to);
+ }
+}
Deleted: trunk/src/main/java/cc/kune/core/server/notifier/NotifyServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/notifier/NotifyServiceDefault.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/server/notifier/NotifyServiceDefault.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -1,105 +0,0 @@
-package cc.kune.core.server.notifier;
-
-import java.io.File;
-import java.io.IOException;
-
-import javax.persistence.NoResultException;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import cc.kune.common.client.utils.TextUtils;
-import cc.kune.core.server.mail.MailService;
-import cc.kune.core.server.mail.MailServiceDefault.FormatedString;
-import cc.kune.core.server.manager.I18nTranslationManager;
-import cc.kune.core.server.manager.UserManager;
-import cc.kune.core.server.properties.KuneProperties;
-import cc.kune.core.server.xmpp.XmppManager;
-import cc.kune.core.shared.domain.dto.EmailNotificationFrequency;
-import cc.kune.domain.User;
-import cc.kune.wave.server.KuneWaveService;
-
-import com.google.common.base.Preconditions;
-import com.google.inject.Inject;
-import com.google.inject.Singleton;
-
-@Singleton
-public class NotifyServiceDefault implements NotifyService {
- public static final Log LOG = LogFactory.getLog(NotifyServiceDefault.class);
- private final String emailTemplate;
- private final I18nTranslationManager i18n;
- private final MailService mailService;
- private final UserManager userManager;
- private final KuneWaveService waveService;
- private final XmppManager xmppManager;
-
- @Inject
- public NotifyServiceDefault(final MailService mailService, final KuneWaveService waveService,
- final XmppManager xmppManager, final UserManager userManager, final I18nTranslationManager i18n,
- final KuneProperties kuneProperties) throws IOException {
- this.mailService = mailService;
- this.waveService = waveService;
- this.xmppManager = xmppManager;
- this.userManager = userManager;
- this.i18n = i18n;
- emailTemplate = FileUtils.readFileToString(new File(
- kuneProperties.get(KuneProperties.SITE_EMAIL_TEMPLATE)));
- Preconditions.checkNotNull(emailTemplate);
- Preconditions.checkArgument(TextUtils.notEmpty(emailTemplate));
- }
-
- @Override
- public void send(final NotifyType notifyType, final FormatedString subject, final FormatedString body,
- final boolean isHtml, final String... recipients) {
- for (final String recipient : recipients) {
- User user;
- try {
- user = userManager.findByShortname(recipient);
- } catch (final NoResultException e) {
- LOG.info(String.format("The recipient %s is not a local user, don't notify", recipient));
- continue;
- }
- // Translate per recipient language
- final String subjectTranslation = i18n.getTranslation(user.getLanguage().getCode(),
- subject.getTemplate(), "");
- if (subjectTranslation != null) {
- // Right now commented because we are only testing
- // subject.setTemplate(subjectTranslation);
- }
- final String bodyTranslation = i18n.getTranslation(user.getLanguage().getCode(),
- body.getTemplate(), "");
- if (bodyTranslation != null) {
- // Right now commented because we are only testing
- // body.setTemplate(bodyTranslation);
- }
- switch (notifyType) {
- case chat:
- xmppManager.sendMessage(recipient,
- String.format("<b>%s</b>%s", subject.getString(), body.getString()));
- break;
- case email:
- if (user.getEmailNotifFreq().equals(EmailNotificationFrequency.immediately)) {
- mailService.send(subject, FormatedString.build(emailTemplate.replace("%s", body.getString())),
- isHtml, user.getEmail());
- } else {
- // TODO: handle other types of notifications frequencies
- }
- break;
- case wave:
- if (isHtml) {
- LOG.error("Wave html messages not supported yet");
- }
- waveService.createWave(subject.getString(), body.getString(), recipient);
- break;
- }
- }
- }
-
- @Override
- public void send(final NotifyType notifyType, final FormatedString subject, final FormatedString body,
- final String... dests) {
- send(notifyType, subject, body, false, dests);
- }
-
-}
Modified: trunk/src/main/java/cc/kune/core/server/properties/KuneBasicProperties.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/properties/KuneBasicProperties.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/server/properties/KuneBasicProperties.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -72,13 +72,8 @@
return properties.get(KuneProperties.SITE_COMMON_NAME);
}
- /**
- * Gets the site domain (something like example.org)
- *
- * @return the site domain
- */
- public String getSiteDomain() {
- return properties.get(KuneProperties.SITE_DOMAIN);
+ public String getSiteUrl() {
+ return properties.get(KuneProperties.SITE_URL);
}
public String getWelcomewave() {
Modified: trunk/src/main/java/cc/kune/core/server/rpc/SiteRPC.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/SiteRPC.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/server/rpc/SiteRPC.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -127,7 +127,6 @@
data.setTimezones(TimeZone.getAvailableIDs());
data.setChatHttpBase(chatProperties.getHttpBase());
data.setChatDomain(chatProperties.getDomain());
- data.setSiteDomain(kuneProperties.get(KuneProperties.SITE_DOMAIN));
data.setChatRoomHost(chatProperties.getRoomHost());
data.setDefaultLicense(licenseManager.getDefLicense());
data.setCurrentCCversion(this.kuneProperties.get(KuneProperties.CURRENT_CC_VERSION));
Modified: trunk/src/main/java/cc/kune/core/server/rpc/SocialNetworkRPC.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/SocialNetworkRPC.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/server/rpc/SocialNetworkRPC.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -28,6 +28,7 @@
import cc.kune.core.server.manager.GroupManager;
import cc.kune.core.server.manager.SocialNetworkManager;
import cc.kune.core.server.mapper.Mapper;
+import cc.kune.core.server.notifier.NotifyService;
import cc.kune.core.shared.domain.AccessRol;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.SocialNetworkDataDTO;
@@ -42,16 +43,19 @@
private final GroupManager groupManager;
private final Mapper mapper;
+ private final NotifyService notifyService;
private final SocialNetworkManager socialNetworkManager;
private final UserSessionManager userSessionManager;
@Inject
public SocialNetworkRPC(final UserSessionManager userSessionManager, final GroupManager groupManager,
- final SocialNetworkManager socialNetworkManager, final Mapper mapper) {
+ final SocialNetworkManager socialNetworkManager, final Mapper mapper,
+ final NotifyService notifyService) {
this.userSessionManager = userSessionManager;
this.groupManager = groupManager;
this.socialNetworkManager = socialNetworkManager;
this.mapper = mapper;
+ this.notifyService = notifyService;
}
@Override
@@ -65,6 +69,8 @@
checkIsNotPersonalGroup(group);
final Group groupToAccept = groupManager.findByShortName(groupToAcceptShortName);
socialNetworkManager.acceptJoinGroup(userLogged, groupToAccept, group);
+ notifyService.notifyGroup(groupToAccept, group, "Accepted as member",
+ "You are now member of this group");
return generateResponse(userLogged, group);
}
@@ -79,6 +85,7 @@
checkIsNotPersonalGroup(group);
final Group groupToAdd = groupManager.findByShortName(groupToAddShortName);
socialNetworkManager.addGroupToAdmins(userLogged, groupToAdd, group);
+ notifyService.notifyGroup(groupToAdd, group, "Accepted as admin", "You are now admin of this group");
return generateResponse(userLogged, group);
}
@@ -93,6 +100,8 @@
checkIsNotPersonalGroup(group);
final Group groupToAdd = groupManager.findByShortName(groupToAddShortName);
socialNetworkManager.addGroupToCollabs(userLogged, groupToAdd, group);
+ notifyService.notifyGroup(groupToAdd, group, "Accepted as collaborator",
+ "You are now a collaborator of this group");
return generateResponse(userLogged, group);
}
@@ -128,6 +137,8 @@
checkIsNotPersonalGroup(group);
final Group groupToDelete = groupManager.findByShortName(groupToDeleleShortName);
socialNetworkManager.deleteMember(userLogged, groupToDelete, group);
+ notifyService.notifyGroup(groupToDelete, group, "Removed as collaborator",
+ "You have been remove as collaborator of this group");
return generateResponse(userLogged, group);
}
@@ -142,6 +153,8 @@
checkIsNotPersonalGroup(group);
final Group groupToDenyJoin = groupManager.findByShortName(groupToDenyShortName);
socialNetworkManager.denyJoinGroup(userLogged, groupToDenyJoin, group);
+ notifyService.notifyGroup(groupToDenyJoin, group, "Membership denied",
+ "Your membership to this group has been rejected");
return generateResponse(userLogged, group);
}
@@ -170,6 +183,8 @@
final User user = userSessionManager.getUser();
final Group group = groupManager.findByShortName(groupToken.getGroup());
checkIsNotPersonalGroup(group);
+ notifyService.notifyGroupAdmins(group, group, "Pending collaborator",
+ "There is a pending collaborator in this group. Please accept or deny him/her");
return socialNetworkManager.requestToJoin(user, group);
}
@@ -184,6 +199,8 @@
checkIsNotPersonalGroup(group);
final Group groupToSetCollab = groupManager.findByShortName(groupToSetCollabShortName);
socialNetworkManager.setAdminAsCollab(userLogged, groupToSetCollab, group);
+ notifyService.notifyGroup(groupToSetCollab, group, "Membership changed",
+ "Your membership to this group have changed. You are now a collaborator of this group");
return generateResponse(userLogged, group);
}
@@ -198,6 +215,8 @@
checkIsNotPersonalGroup(group);
final Group groupToSetAdmin = groupManager.findByShortName(groupToSetAdminShortName);
socialNetworkManager.setCollabAsAdmin(userLogged, groupToSetAdmin, group);
+ notifyService.notifyGroup(groupToSetAdmin, group, "Membership changed",
+ "Your membership to this group have changed. You are now an admin of this group");
return generateResponse(userLogged, group);
}
@@ -209,6 +228,8 @@
final Group group = groupManager.findByShortName(groupToken.getGroup());
checkIsNotPersonalGroup(group);
socialNetworkManager.unJoinGroup(userLogged.getUserGroup(), group);
+ notifyService.notifyGroupAdmins(group, userLogged.getUserGroup(), "Some member left this group",
+ "Some member have left this group");
}
}
Added: trunk/src/main/java/cc/kune/core/server/utils/AbsoluteFileDownloadUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/utils/AbsoluteFileDownloadUtils.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/utils/AbsoluteFileDownloadUtils.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -0,0 +1,20 @@
+package cc.kune.core.server.utils;
+
+import cc.kune.core.server.properties.KuneBasicProperties;
+import cc.kune.core.shared.utils.SharedFileDownloadUtils;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+/**
+ * The Class AbsoluteFileDownloadUtils get url of avatars etc, with absolute
+ * urls (with domain, etc).
+ */
+@Singleton
+public class AbsoluteFileDownloadUtils extends SharedFileDownloadUtils {
+
+ @Inject
+ public AbsoluteFileDownloadUtils(final KuneBasicProperties properties) {
+ super(properties.getSiteUrl());
+ }
+}
Modified: trunk/src/main/java/cc/kune/core/server/utils/FilenameUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/utils/FilenameUtils.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/server/utils/FilenameUtils.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -21,7 +21,7 @@
import org.apache.commons.lang.StringUtils;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.errors.NameNotPermittedException;
public class FilenameUtils {
Modified: trunk/src/main/java/cc/kune/core/server/xmpp/XmppManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/xmpp/XmppManagerDefault.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/server/xmpp/XmppManagerDefault.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -39,7 +39,7 @@
import org.jivesoftware.smackx.FormField;
import org.jivesoftware.smackx.muc.MultiUserChat;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.server.properties.ChatProperties;
import com.google.inject.Inject;
Modified: trunk/src/main/java/cc/kune/core/shared/FileConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/FileConstants.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/shared/FileConstants.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -29,7 +29,11 @@
public static final String DOWNLOADSERVLET = ASITE_PREFIX + "servlets/FileDownloadManager";
public final static String FILENAME = "filename";
public final static String GROUP_LOGO_FIELD = "k-glogov-ff";
- public static final String GROUP_NO_AVATAR_IMAGE = ASITE_PREFIX + "images/group-def-icon.png";
+ // public static final String GROUP_NO_AVATAR_IMAGE = ASITE_PREFIX +
+ // "images/group-def-icon.png";
+ public static final String GROUP_NO_AVATAR_IMAGE = "others/defgroup.gif";
+ public static final String GROUP_NO_AVATAR_IMAGE_PATH = ASITE_PREFIX + GROUP_NO_AVATAR_IMAGE;
+
public final static String HASH = "hash";
public final static String IMGSIZE = "imgsize";
public final static int LOGO_DEF_HEIGHT = 60;
@@ -37,7 +41,8 @@
public final static int LOGO_MIN_HEIGHT = 28;
public final static int LOGO_MIN_WIDTH = 468;
public static final String LOGODOWNLOADSERVLET = ASITE_PREFIX + "servlets/EntityLogoDownloadManager";
- public final static String PERSON_NO_AVATAR_IMAGE = ASITE_PREFIX + "images/unknown.jpg";
+ public final static String PERSON_NO_AVATAR_IMAGE = "images/unknown.jpg";
+ public final static String PERSON_NO_AVATAR_IMAGE_PATH = ASITE_PREFIX + PERSON_NO_AVATAR_IMAGE;
public final static String TOKEN = "token";
public final static String TYPE_ID = "typeid";
public final static String USER_LOGO_FIELD = "k-ulogov-ff";
Modified: trunk/src/main/java/cc/kune/core/shared/dto/InitDataDTO.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/dto/InitDataDTO.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/core/shared/dto/InitDataDTO.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -50,7 +50,6 @@
private String mp3EmbedObject;
private String oggEmbedObject;
private ReservedWordsRegistryDTO reservedWords;
- private String siteDomain;
private String siteLogoUrl;
private String siteLogoUrlOnOver;
private String siteShortName;
@@ -157,10 +156,6 @@
}
@Deprecated
- public String getSiteDomain() {
- return siteDomain;
- }
-
public String getSiteLogoUrl() {
return siteLogoUrl;
}
@@ -297,11 +292,6 @@
this.reservedWords = reservedWords;
}
- @Deprecated
- public void setSiteDomain(final String siteDomain) {
- this.siteDomain = siteDomain;
- }
-
public void setSiteLogoUrl(final String siteLogoUrl) {
this.siteLogoUrl = siteLogoUrl;
}
Added: trunk/src/main/java/cc/kune/core/shared/utils/SharedFileDownloadUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/utils/SharedFileDownloadUtils.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/shared/utils/SharedFileDownloadUtils.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -0,0 +1,56 @@
+package cc.kune.core.shared.utils;
+
+import cc.kune.common.shared.utils.Url;
+import cc.kune.common.shared.utils.UrlParam;
+import cc.kune.core.shared.FileConstants;
+import cc.kune.core.shared.dto.GroupDTO;
+import cc.kune.core.shared.dto.UserSimpleDTO;
+
+public class SharedFileDownloadUtils {
+
+ private final String prefix;
+
+ public SharedFileDownloadUtils() {
+ this.prefix = "";
+ }
+
+ public SharedFileDownloadUtils(final String prefix) {
+ this.prefix = prefix;
+ }
+
+ public String getGroupLogo(final GroupDTO group) {
+ return prefix
+ + (group.hasLogo() ? getLogoImageUrl(group.getShortName())
+ : group.isPersonal() ? FileConstants.PERSON_NO_AVATAR_IMAGE_PATH
+ : FileConstants.GROUP_NO_AVATAR_IMAGE_PATH);
+ }
+
+ public String getLogoAvatarHtml(final String groupName, final boolean groupHasLogo,
+ final boolean isPersonal, final int size, final int hvspace) {
+ final String imgUrl = groupHasLogo ? getLogoImageUrl(groupName)
+ : isPersonal ? FileConstants.PERSON_NO_AVATAR_IMAGE : FileConstants.GROUP_NO_AVATAR_IMAGE;
+ return "<img hspace='" + hvspace + "' vspace='" + hvspace + "' align='left' style='width: " + size
+ + "px; height: " + size + "px;' src='" + prefix + imgUrl + "'>";
+ }
+
+ public String getLogoImageUrl(final String groupName) {
+ return prefix
+ + new Url(FileConstants.LOGODOWNLOADSERVLET, new UrlParam(FileConstants.TOKEN, groupName)).toString();
+ }
+
+ public String getPrefix() {
+ return prefix;
+ }
+
+ public String getUserAvatar(final String username) {
+ return prefix
+ + new Url(FileConstants.AVATARDOWNLOADSERVLET, new UrlParam(FileConstants.USERNAME, username)).toString();
+ }
+
+ public String getUserAvatar(final UserSimpleDTO user) {
+ return prefix
+ + (user.hasLogo() ? getLogoImageUrl(user.getShortName())
+ : FileConstants.PERSON_NO_AVATAR_IMAGE_PATH);
+ }
+
+}
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/events/client/actions/EventEditMenuItem.java
===================================================================
--- trunk/src/main/java/cc/kune/events/client/actions/EventEditMenuItem.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/events/client/actions/EventEditMenuItem.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -4,8 +4,8 @@
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.common.client.notify.NotifyUser;
import cc.kune.common.client.ui.dialogs.PromptTopDialog;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.actions.RolAction;
import cc.kune.core.client.resources.nav.NavResources;
import cc.kune.core.shared.dto.AccessRolDTO;
Modified: trunk/src/main/java/cc/kune/events/client/actions/EventRemoveMenuItem.java
===================================================================
--- trunk/src/main/java/cc/kune/events/client/actions/EventRemoveMenuItem.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/events/client/actions/EventRemoveMenuItem.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -4,8 +4,8 @@
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.common.client.notify.NotifyUser;
import cc.kune.common.client.ui.dialogs.PromptTopDialog;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.actions.RolAction;
import cc.kune.core.client.resources.CoreResources;
import cc.kune.core.shared.dto.AccessRolDTO;
Modified: trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslatorForm.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslatorForm.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslatorForm.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -16,8 +16,8 @@
package cc.kune.gspace.client.i18n;
import cc.kune.common.client.tooltip.Tooltip;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.shared.dto.I18nLanguageSimpleDTO;
import cc.kune.core.shared.dto.I18nTranslationDTO;
Modified: trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFirstForm.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFirstForm.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/gspace/client/licensewizard/pages/LicenseWizardFirstForm.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -20,8 +20,8 @@
package cc.kune.gspace.client.licensewizard.pages;
import cc.kune.common.client.utils.SimpleCallback;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.ui.DefaultForm;
import cc.kune.core.client.ui.DefaultFormUtils;
Modified: trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePresenter.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePresenter.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -24,11 +24,11 @@
import gwtupload.client.IUploader.OnFinishUploaderHandler;
import gwtupload.client.IUploader.OnStartUploaderHandler;
import cc.kune.common.client.notify.NotifyUser;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.rpcservices.GroupServiceAsync;
-import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.services.ImageSize;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateChangedEvent;
@@ -53,7 +53,7 @@
private final GSpaceBackManager backManager;
private final EntityOptions entityOptions;
private final EventBus eventBus;
- private final FileDownloadUtils fileDownloadUtils;
+ private final ClientFileDownloadUtils fileDownloadUtils;
private final Provider<GroupServiceAsync> groupService;
private final I18nTranslationService i18n;
private final Session session;
@@ -64,7 +64,7 @@
final StateManager stateManager, final EntityOptions entityOptions,
final Provider<GroupServiceAsync> groupService, final GSpaceBackManager backManager,
final GSpaceThemeSelectorPresenter styleSelector, final I18nTranslationService i18n,
- final FileDownloadUtils fileDownloadUtils) {
+ final ClientFileDownloadUtils fileDownloadUtils) {
this.eventBus = eventBus;
this.session = session;
this.stateManager = stateManager;
Modified: trunk/src/main/java/cc/kune/gspace/client/options/style/GroupOptStylePresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/style/GroupOptStylePresenter.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/gspace/client/options/style/GroupOptStylePresenter.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -21,7 +21,7 @@
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.rpcservices.GroupServiceAsync;
-import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
import cc.kune.gspace.client.options.GroupOptions;
@@ -40,7 +40,7 @@
final StateManager stateManager, final GroupOptions entityOptions,
final Provider<GroupServiceAsync> groupService, final GSpaceBackManager backManager,
final GroupOptStyleView view, final GSpaceThemeSelectorPresenter styleSelector,
- final I18nTranslationService i18n, final FileDownloadUtils fileDownUtils) {
+ final I18nTranslationService i18n, final ClientFileDownloadUtils fileDownUtils) {
super(eventBus, session, stateManager, entityOptions, groupService, backManager, styleSelector,
i18n, fileDownUtils);
init(view);
Modified: trunk/src/main/java/cc/kune/gspace/client/options/style/UserOptStylePresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/style/UserOptStylePresenter.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/gspace/client/options/style/UserOptStylePresenter.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -21,7 +21,7 @@
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.rpcservices.GroupServiceAsync;
-import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
import cc.kune.gspace.client.options.UserOptions;
@@ -42,7 +42,7 @@
final StateManager stateManager, final UserOptions entityOptions,
final Provider<GroupServiceAsync> groupService, final GSpaceBackManager backManager,
final UserOptStyleView view, final GSpaceThemeSelectorPresenter styleSelector,
- final I18nTranslationService i18n, final FileDownloadUtils fileDownUtils) {
+ final I18nTranslationService i18n, final ClientFileDownloadUtils fileDownUtils) {
super(eventBus, session, stateManager, entityOptions, groupService, backManager, styleSelector,
i18n, fileDownUtils);
init(view);
Modified: trunk/src/main/java/cc/kune/gspace/client/style/GSpaceBackManagerImpl.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/style/GSpaceBackManagerImpl.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/gspace/client/style/GSpaceBackManagerImpl.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -21,7 +21,7 @@
import javax.annotation.Nonnull;
-import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.gspace.client.GSpaceArmor;
@@ -31,13 +31,13 @@
public class GSpaceBackManagerImpl implements GSpaceBackManager {
private static final StateToken NO_TOKEN = new StateToken("none.none.0.0");
- private final FileDownloadUtils downloadUtils;
+ private final ClientFileDownloadUtils downloadUtils;
private final GSpaceArmor gSpaceArmor;
private StateToken lastToken;
private final StateManager stateManager;
@Inject
- public GSpaceBackManagerImpl(final FileDownloadUtils downloadUtils, final GSpaceArmor gSpaceArmor,
+ public GSpaceBackManagerImpl(final ClientFileDownloadUtils downloadUtils, final GSpaceArmor gSpaceArmor,
final StateManager stateManager) {
this.downloadUtils = downloadUtils;
this.gSpaceArmor = gSpaceArmor;
Modified: trunk/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorPresenter.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/gspace/client/tool/selector/ToolSelectorPresenter.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -24,7 +24,7 @@
import cc.kune.common.client.errors.UIException;
import cc.kune.common.client.log.Log;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.state.GroupChangedEvent;
import cc.kune.core.client.state.GroupChangedEvent.GroupChangedHandler;
import cc.kune.core.client.state.StateChangedEvent;
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerUtils.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/FolderViewerUtils.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -3,12 +3,12 @@
import javax.annotation.Nonnull;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.actions.ActionRegistryByType;
import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
import cc.kune.core.client.registry.IconsRegistry;
-import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.services.ImageSize;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateManager;
@@ -36,7 +36,7 @@
private final ActionRegistryByType actionsRegistry;
private final ContentCapabilitiesRegistry capabilitiesRegistry;
- private final Provider<FileDownloadUtils> downloadUtilsProvider;
+ private final Provider<ClientFileDownloadUtils> downloadUtilsProvider;
private final I18nTranslationService i18n;
private final IconsRegistry iconsRegistry;
private final PathToolbarUtils pathToolbarUtils;
@@ -46,7 +46,7 @@
@Inject
public FolderViewerUtils(final ContentCapabilitiesRegistry capabilitiesRegistry,
- final Session session, final Provider<FileDownloadUtils> downloadUtilsProvider,
+ final Session session, final Provider<ClientFileDownloadUtils> downloadUtilsProvider,
final I18nTranslationService i18n, final ActionRegistryByType actionsRegistry,
final StateManager stateManager, final PathToolbarUtils pathToolbarUtils) {
this.capabilitiesRegistry = capabilitiesRegistry;
Modified: trunk/src/main/java/cc/kune/gspace/client/viewers/PathToolbarUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/viewers/PathToolbarUtils.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/gspace/client/viewers/PathToolbarUtils.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -21,8 +21,8 @@
import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.dnd.FolderViewerDropController;
import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
import cc.kune.core.client.registry.IconsRegistry;
Modified: trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/hspace/client/HSpacePanel.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -25,11 +25,11 @@
import cc.kune.common.client.ui.DottedTabPanel;
import cc.kune.common.shared.i18n.I18nTranslationService;
-import cc.kune.core.client.services.FileDownloadUtils;
import cc.kune.core.client.state.SiteTokens;
import cc.kune.core.shared.domain.utils.StateToken;
import cc.kune.core.shared.dto.ContentSimpleDTO;
import cc.kune.core.shared.dto.GroupDTO;
+import cc.kune.core.shared.utils.SharedFileDownloadUtils;
import cc.kune.gspace.client.GSpaceArmor;
import cc.kune.hspace.client.HSpacePresenter.HSpaceView;
@@ -58,7 +58,7 @@
private static HSpacePanelUiBinder uiBinder = GWT.create(HSpacePanelUiBinder.class);
- private final FileDownloadUtils downUtils;
+ private final SharedFileDownloadUtils downUtils;
@UiField
FlowPanel globalStats;
private final RootPanel globalStatsParent;
@@ -103,7 +103,7 @@
@Inject
public HSpacePanel(final I18nTranslationService i18n, final GSpaceArmor armor,
- final Provider<GroupContentHomeLink> linkProv, final FileDownloadUtils downUtils) {
+ final Provider<GroupContentHomeLink> linkProv, final SharedFileDownloadUtils downUtils) {
this.linkProv = linkProv;
this.downUtils = downUtils;
widget = uiBinder.createAndBindUi(this);
@@ -165,7 +165,7 @@
for (final ContentSimpleDTO content : lastContentsOfMyGroupsList) {
final GroupContentHomeLink link = linkProv.get();
final StateToken token = content.getStateToken();
- link.setValues(downUtils.getLogoImageUrl(token.copy().clearDocument().clearFolder()),
+ link.setValues(downUtils.getLogoImageUrl(token.getGroup()),
format(content.getModifiedOn(), content.getName()), token.toString());
lastActivityInYourGroup.add(link);
}
@@ -176,7 +176,7 @@
lastGroups.clear();
for (final GroupDTO group : lastGroupsList) {
final GroupContentHomeLink link = linkProv.get();
- link.setValues(downUtils.getLogoImageUrl(group.getStateToken()),
+ link.setValues(downUtils.getLogoImageUrl(group.getShortName()),
format(group.getCreatedOn(), group.getLongName()), group.getShortName());
lastGroups.add(link);
}
@@ -189,7 +189,7 @@
final GroupContentHomeLink link = linkProv.get();
final StateToken token = content.getStateToken();
link.setValues(
- downUtils.getLogoImageUrl(token.copy().clearDocument().clearFolder()),
+ downUtils.getLogoImageUrl(token.getGroup()),
format(content.getModifiedOn(),
"(" + content.getStateToken().getGroup() + ") " + content.getName()), token.toString());
lastPublishedContents.add(link);
Modified: trunk/src/main/java/cc/kune/msgs/client/UserMessageWidget.java
===================================================================
--- trunk/src/main/java/cc/kune/msgs/client/UserMessageWidget.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/msgs/client/UserMessageWidget.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -25,7 +25,7 @@
import org.adamtacy.client.ui.effects.examples.Show;
import cc.kune.common.client.notify.NotifyLevel;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.msgs.client.resources.UserMessageImagesUtil;
import com.google.gwt.core.client.GWT;
Modified: trunk/src/main/java/cc/kune/pspace/client/PSpaceInDevelopment.java
===================================================================
--- trunk/src/main/java/cc/kune/pspace/client/PSpaceInDevelopment.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/pspace/client/PSpaceInDevelopment.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -19,11 +19,11 @@
*/
package cc.kune.pspace.client;
-import cc.kune.common.client.utils.TextUtils;
-import cc.kune.common.client.utils.UrlParam;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
+import cc.kune.common.shared.utils.UrlParam;
import cc.kune.core.client.resources.CoreResources;
-import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.state.GroupChangedEvent;
import cc.kune.core.client.state.GroupChangedEvent.GroupChangedHandler;
import cc.kune.core.client.state.Session;
@@ -57,7 +57,7 @@
FlowPanel container;
@UiField
FlowPanel contentPanel;
- private final Provider<FileDownloadUtils> downloadProvider;
+ private final Provider<ClientFileDownloadUtils> downloadProvider;
@UiField
Image entityLogo;
@UiField
@@ -76,7 +76,7 @@
@Inject
public PSpaceInDevelopment(final StateManager stateManager, final CoreResources images,
- final Session session, final Provider<FileDownloadUtils> downloadProvider,
+ final Session session, final Provider<ClientFileDownloadUtils> downloadProvider,
final I18nTranslationService i18n, final EventBus eventBus) {
this.images = images;
this.downloadProvider = downloadProvider;
@@ -116,7 +116,7 @@
}
private void setLogoImage(final StateToken stateToken, final boolean noCache) {
- entityLogo.setUrl(downloadProvider.get().getLogoImageUrl(stateToken)
+ entityLogo.setUrl(downloadProvider.get().getLogoImageUrl(stateToken.getGroup())
+ (noCache ? UrlParam.noCacheStringSuffix() : ""));
}
Modified: trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/pspace/client/PSpacePresenter.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -20,8 +20,8 @@
package cc.kune.pspace.client;
import cc.kune.common.client.actions.ui.IsActionExtensible;
-import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.shared.i18n.I18nTranslationService;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.init.AppStartEvent;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.StateChangedEvent;
Modified: trunk/src/main/java/cc/kune/wave/client/KuneWaveProfileManager.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/KuneWaveProfileManager.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/wave/client/KuneWaveProfileManager.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -25,7 +25,7 @@
import org.waveprotocol.wave.client.account.impl.ProfileImpl;
import org.waveprotocol.wave.model.wave.ParticipantId;
-import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.shared.FileConstants;
import com.google.inject.Inject;
@@ -39,11 +39,11 @@
public class KuneWaveProfileManager extends AbstractProfileManager<ProfileImpl> implements
ProfileManager {
- private final FileDownloadUtils downloadUtils;
+ private final ClientFileDownloadUtils downloadUtils;
private String localDomain;
@Inject
- public KuneWaveProfileManager(final FileDownloadUtils downloadUtils) {
+ public KuneWaveProfileManager(final ClientFileDownloadUtils downloadUtils) {
this.downloadUtils = downloadUtils;
}
Modified: trunk/src/main/java/cc/kune/wave/server/KuneWaveServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/KuneWaveServiceDefault.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/wave/server/KuneWaveServiceDefault.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -48,7 +48,7 @@
import org.waveprotocol.wave.model.wave.ParticipantId;
import org.waveprotocol.wave.model.waveref.WaveRef;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
import cc.kune.core.client.errors.DefaultException;
import com.google.common.collect.ImmutableMap;
Modified: trunk/src/main/java/cc/kune/wave/server/WaveEmailNotifier.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/WaveEmailNotifier.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/cc/kune/wave/server/WaveEmailNotifier.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -18,8 +18,8 @@
import org.waveprotocol.wave.model.waveref.WaveRef;
import cc.kune.core.server.LogThis;
-import cc.kune.core.server.mail.MailServiceDefault.FormatedString;
-import cc.kune.core.server.notifier.NotifyService;
+import cc.kune.core.server.mail.FormatedString;
+import cc.kune.core.server.notifier.NotifySender;
import cc.kune.core.server.notifier.NotifyType;
import cc.kune.core.server.notifier.UsersOnline;
import cc.kune.core.server.properties.KuneBasicProperties;
@@ -31,7 +31,7 @@
public static final Log LOG = LogFactory.getLog(WaveEmailNotifier.class);
@Inject
- public WaveEmailNotifier(final WaveBus waveBus, final NotifyService notifyService,
+ public WaveEmailNotifier(final WaveBus waveBus, final NotifySender notifyService,
final UsersOnline usersOnline, final KuneBasicProperties basicProperties,
final ParticipantUtils partUtils) {
waveBus.subscribe(new Subscriber() {
@@ -51,12 +51,12 @@
final ParticipantId user = ((AddParticipant) op).getParticipantId();
final String url = KuneWaveUtils.getUrl(WaveRef.of(wavelet.getWaveId(), waveletId));
final FormatedString body = FormatedString.build(
- // FIXME when SSL/ssl support
- "Hi there,<br><br>You have a new message in %s. <a href=\"http://%s/#%s\">Read more</a>.<br>",
- basicProperties.getSiteCommonName(), basicProperties.getSiteDomain(), url);
+ "Hi there,<br><br>You have a new message in %s. <a href=\"%s#%s\">Read more</a>.<br>",
+ basicProperties.getSiteCommonName(), basicProperties.getSiteUrl(), url);
final String address = user.getAddress();
if (partUtils.isLocal(address)) {
final String userName = partUtils.getAddressName(address);
+ // FIXME only for testing
if (true || !usersOnline.isLogged(userName)) {
notifyService.send(NotifyType.email, FormatedString.build("You have a new message"),
body, true, userName);
Modified: trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java
===================================================================
--- trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -24,8 +24,8 @@
import org.waveprotocol.box.server.CoreSettings;
-import cc.kune.common.client.utils.Url;
-import cc.kune.common.client.utils.UrlParam;
+import cc.kune.common.shared.utils.Url;
+import cc.kune.common.shared.utils.UrlParam;
import cc.kune.core.shared.FileConstants;
import com.google.common.base.Preconditions;
@@ -153,7 +153,7 @@
avatar = new Url(FileConstants.AVATARDOWNLOADSERVLET, new UrlParam(FileConstants.USERNAME,
address.split("@")[0])).toString();
} else {
- avatar = FileConstants.PERSON_NO_AVATAR_IMAGE;
+ avatar = FileConstants.PERSON_NO_AVATAR_IMAGE_PATH;
}
return avatar;
}
Modified: trunk/src/main/resources/kune.properties
===================================================================
--- trunk/src/main/resources/kune.properties 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/main/resources/kune.properties 2012-01-01 17:58:40 UTC (rev 1652)
@@ -2,7 +2,8 @@
### general site config
-kune.siteurl = http://localhost:8080
+# Your site url. Please end with a slash
+kune.siteurl = http://localhost:8080/
kune.sitelogourl = ws/images/kune-logo-16px.png
kune.sitelogourl.onover = ws/images/kune-logo-onover-16px.png
@@ -14,7 +15,6 @@
kune.default.site.name = Site Administration
kune.default.site.shortName = site
-kune.site.domain = localhost
# In the server side we will use this string for mention this site in messages
# like: "Thanks for joining this site"
Added: trunk/src/test/java/cc/kune/core/server/mail/FormatedStringTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/mail/FormatedStringTest.java (rev 0)
+++ trunk/src/test/java/cc/kune/core/server/mail/FormatedStringTest.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -0,0 +1,15 @@
+package cc.kune.core.server.mail;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import org.junit.Test;
+
+public class FormatedStringTest {
+
+ @Test
+ public void testQuotes() {
+ assertNotNull(FormatedString.build("'%s''''\"%s\"", "test", "test2kl").getString());
+ assertEquals("test 100%", FormatedString.build("%s 100%%", "test").getString());
+ }
+}
Modified: trunk/src/test/java/cc/kune/core/server/mail/MailServiceDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/mail/MailServiceDefaultTest.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/test/java/cc/kune/core/server/mail/MailServiceDefaultTest.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -5,7 +5,6 @@
import org.junit.Before;
import org.junit.Test;
-import cc.kune.core.server.mail.MailServiceDefault.FormatedString;
import cc.kune.core.server.properties.KunePropertiesDefault;
public class MailServiceDefaultTest {
Added: trunk/src/test/java/cc/kune/core/server/notifier/NotifyHtmlHelperTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/notifier/NotifyHtmlHelperTest.java (rev 0)
+++ trunk/src/test/java/cc/kune/core/server/notifier/NotifyHtmlHelperTest.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -0,0 +1,30 @@
+package cc.kune.core.server.notifier;
+
+import static org.junit.Assert.assertNotNull;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import cc.kune.core.server.properties.KuneBasicProperties;
+import cc.kune.core.server.properties.KunePropertiesDefault;
+import cc.kune.core.server.utils.AbsoluteFileDownloadUtils;
+
+public class NotifyHtmlHelperTest {
+ private static final String GROUP_NAME = "groupShortName";
+ private static final String MESSAGE = "some message";
+
+ NotifyHtmlHelper helper;
+
+ @Test
+ public void basicTest() {
+ assertNotNull(helper.groupNotification(GROUP_NAME, false, MESSAGE).getString());
+ assertNotNull(helper.groupNotification(GROUP_NAME, true, MESSAGE).getString());
+ }
+
+ @Before
+ public void before() {
+ helper = new NotifyHtmlHelper(new AbsoluteFileDownloadUtils(new KuneBasicProperties(
+ new KunePropertiesDefault("kune.properties"))));
+ }
+
+}
Modified: trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java 2011-12-29 22:15:28 UTC (rev 1651)
+++ trunk/src/test/java/cc/kune/selenium/SeleniumUtils.java 2012-01-01 17:58:40 UTC (rev 1652)
@@ -34,7 +34,7 @@
import org.openqa.selenium.interactions.Actions;
import org.testng.Assert;
-import cc.kune.common.client.utils.TextUtils;
+import cc.kune.common.shared.utils.TextUtils;
public class SeleniumUtils {
1
0